帝国
发布于 2022年 05月 19日 13:15
Empire是一款针对Windows平台的、使用Powershell脚本作为攻击载荷的渗透攻击框架工具,具有从stager生成、提权到渗透维持的一系列功能。Empire实现了无需powshell.exe就可运行Powershell代理的功能,还可以快速在后期部署漏洞利用模块,其内置模块有键盘记录、Mimikatz、绕过UAC、内网扫描等,使用能够躲避内网检测和大部分安全防护工具的查杀,简单来说就有点类似Metasploit,是一个基于PowerShell的远程控制木马。
Empire运行在linux平台上
官方下载地址,不过很久没有更新,需要Python 2.6/2.7环境
https://github.com/EmpireProject/Empire
KALI示例:
git clone https://github.com/EmpireProject/Empire.git
然后安装Empire的依赖,命令如下
cd Empire
cd setup
pip install -r requirements.txt(若没有安装pip库,则需要先通过apt-get install pip进行安装)
./install.sh
在安装完依赖以后,返回上一级文件,启动Empire工具,命令如下:
cd Empire
./empire
若启动失败,则可能是因为依赖未完全安装好,只需要手动通过pip install xxx安装未安装好的依赖即可。
启动时如果遇到如下报错
可以将urllib3版本降级
pip install urllib3==1.22
重新设定
bash reset.sh
基本使用会涉及如下内容:
1.帮助文档
2.设置监听
3.生成木马
4.连接主机和基本使用
5.信息收集
6.权限提升
帮助文档
运行Empire后,输入help命令查看具体的使用帮助。
设置监听步骤如下:
listeners #进入监听线程界面
uselistener #设置监听模式
info #查看具体参数设置
set #设置相应参数
execute #开始监听
输入Listeners命令进入监听界面,按TAB键可以补全命令,按两次TAB键或者help可以显示可以利用的模块
输入uselistener来设置采用何种监听模式,双击TAB可以看到有以下可以使用的模式。
设置监听
这里采用http监听模式,输入uselistener http。
然后输入info命令查看具体参数设置。其中Require为True的值都需要被设置。
通过set配置参数,并提供execeute执行,需要注意的是Empire不同于Metasploit,Empire命令是区分大小写的
通过back返回上一级,使用listeners或者list可以查看所设置的监听器
生成木马
输入usestager后 空格加TAB键 查看可以设置的木马模式
木马就类似Metasploit中的payload,其中multi为通用模块,osx是Mac操作系统的模块,剩下的是Windows的模块。
我们以 windows/launcher_bat为例,给大家说下过程,其他的使用都类似
要使用launcher_bat,首先输入usestager windows/launcher_bat,然后输入info命令查看详细参数
通过set配置参数,我们需要设置一个 Listener 参数,即监听的名字(前面我们给监听起得一个名字test1),通过execeute执行,
文件会生成到 tmp 目录下,如下所示
在目标主机上运行生成的launcher.bat,输入 agents 可以查看已经获得的会话
我们再介绍另一种生成木马方式:launcher
如果只需要简单的powershell 代码,在设置完相应的参数后,可直接在监听器(listeners)中输入命令 launcher <language> <Listener Name> 生成base64编码的代码
然后复制生成的payload 在目标机器上执行
可以看到有会话生成,输入 agents 可以查看已经获得的会话
连接主机和基本使用
在目标主机反弹成功以后,可以通过agents命令列出当前已连接的主机,这里要注意如果有带有(*)的是已提权成功的主机。
然后使用interact命令连接主机,可以使用Tab键补全主机的名称,连接成功以后可以通过rename修改会话名称
可以通过help查看可以使用的命令输入help agentcmds可以查看可供使用的常用命令输入help agentcmds可以查看可供使用的常用命令可以通过pwd查看当前目录upload可以上传文件,通过cat查看文件内容
使用某些CMD命令时,要使用“shell+命令的形式” ,如下
Empire主要用于后渗透。所以信息收集是比较常用的一个模块,可以使用searchmodule命令搜索需要使用的模块,这里通过键如usemodule collection然后按Tab查看完整的列表
1.屏幕截图
输入以下命令,然后执行即可
2.键盘记录
输入以下命令usemodule collection/keylogger,通过info可以查看详细信息,execute执行
可以通过jobs kill JOB_name停止键盘记录
3.ARP扫描
Empire也内置了ARP扫描模块,输入以下命令即可使用该模块,这里要设置Range参数
4.查找域管登陆服务器IP
在内网渗透中,要想拿到内网中某台机器的域管权限,方法之一就是找到域管登录的机器,然后横向渗透进去,窃取域管权限,从而拿下整个域,以下这个模块就是用来查找域管登录的机器的。
使用模块usemodule situational_awareness/network/powerview/user_hunter
如果想执行 windows 系统自带的命令,可以通过 shell 加命令的格式,例如查看当前 shell 的权限,我们输入 shell whoami /groups,返回了 medium 即非高权限,如下图:
非高权限的话,很多命令使用会有限制,例如 mimikatz,所以下面需要提升权限,这里我们使用 bypassuac,首先 empire 提供了很多使用模块,这里我们通过 usemodule 空格加两下 tab 可查看全部模块,有二百多个,如下图:
bypassuac 提权我们使用 usemodule privesc/bypassuac 这个模块,然后 info 查看其信息,如下图:
这里我们需要设置的参数还是 Listener,即监听的名称,这里是 test,如下图:
设置后通过 execute 执行,成功后会返回一个新的 shell,随后我们通过 agents 查看已有的 shell,username 前带 * 号的就是高权限已经提权成功的 shell。
这时 mimikatz 已可以使用,输入 mimikatz 来获取目标账号密码,如下
图:
通过 mimikatz 获取后,若在内网机器较多,为了查看方便,我们可以通过 creds 命令来直接列出其密码,如下图:
通过 mimikatz 获取后,若在内网机器较多,为了查看方便,我们可以通过 creds 命令来直接列出其密码,如下图: