empire 是一个针对内网针对域控的一个渗透测试框架,和 msf 类似。其中集成了很多内网的一些工具以及命令,使用方便,且 empire 生成的木马文件基于 powershell,所以在 windows 平台上有很好的免杀效果。结合 msf 使用更是如虎添翼。empire 安装下载命令如下:
git clone https://github.com/EmpireProject/Empire.git
cd /Empire/setup/
./install.sh
安装后,在其目录执行./empire 文件即可,打开后如下图:
empire 包含三个部分,一个是 modules 即自身的一些模块,一个是 listernes 即监听类似 msf 的 exploit/multi/handler 模块,一个是 agents 即已经链接上的会话类似 msf 存的 session。
使用 empire 首先设置一个监听,输入 listeners 命令进入监听模块,进入后需要使用监听种类,输入 uselistener 加空格然后两下 tab 可列出所有的可使用监听类,这里我们使用 http,随后输入 info 可查看吃类监听的详细信息,如下图:
这里需要设置下 name 参数,随意定义一个名字,例如 test,然后另外还要注意下 host 参数和 prot,即监听使用的 ip 和端口,一般默认即可,就是自己本机的 ip 和 80。设置无误后,通过 execute 执行,如下图:
ps:listeners 模块下通过 list 命令可查看已经设置的监听。
设置好监听后通过 back 命令返回上一级,然后使用 usestager 命令来指定生成木马的类型,老规矩,通过空格加两下 tab 可查看所有生成文件的类型,这里我们使用 windows/launcher_bat,即 windows 平台下的 bat 文件,同样,通过 info 查看此模块的详细信息,如下图:
生成的文件类型大体有三类,multi 开头的是通用类,osx 开头即 mac 使用,windows 即 win 平台使用。使用 launcher_bat 模块后,通过 info 我们看到了参数信息,这里需要设置一个 Listener 参数,即监听的名字,就是我们刚才的 test,设置后通过 execute 执行,文件会生成到 tmp 目录下,如下图:
我们打开这个文件看下,可以看到是 poershell 命令,然后通过 base64 编码,如下图:
这时我们 back 返回监听那一级,然后等待目标执行我们的木马文件就回得到其 shell,这里的 bat 我第一次运行 360 是没报毒,腾讯管家也没有报,火绒有报,第二次 360 报了,其他类型的文件有时会报,有时不报,原因还在看,大家下面可以试试,我们诱导目标机执行后,就会得到它的 shell,如下图:
这里我可能多点了一下执行力两边,我们通过 agents 就可查看目前得到的 shell,随后通过 interact 加 name 命令即可进入 shell 中,name 就是 shell 随机给的名称,进入后我们通过 help 可查看一些命令和一些提供的内网渗透常用的工具,如下图:
如果想执行 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 命令来直接列出其密码,如下图:
empire 若需要结合 msf 使用,则可以将得到的 shell 反给 msf,使用模块 code_execution/invoke_shellcode,info 信息如下:
这里需要设置下 lhost 和 lport,lhost 即 msf 所在机器的 ip,lport 即 msf 监听反弹 shell 的端口,还有一个参数注意下,就是 exploit,默认值是 reverse_https,这个不用改,我们 msf 设置监听时 payload 需要和其一致,也需要设置成 reverse_https, 我这里输出内容有点长没有截到那个参数,那个参数在最后,大家使用的时候可以顺便看一下,不用修改,设置后我们先不执行 execute 命令,先把 msf 监听设置好:
msf 的 payload 设置为 windows/meterpreter/reverse_https,lhost 为本机所在的 ip,lport 端口和刚才 empire 设置的一样,这里是 4444,然后 exploit 执行监听,这时返回 empire 执行 execute,停一会会看到 msf 已经收到了 shell,如下图:
我这里等待了十几秒返回的,返回的时候靶机 360 报提醒了,按理应该没事的,我这里就点了一下忽略,返回 shell 后,我们可以执行 whoami /groups 看下权限,可以看到返回的是高权限的 shell,如下图:
empire 是针对内网域渗透,且基于 windows 的 powershell,免杀效果不错,另外再结合 msf,使用更方便。
公众号推荐:aFa攻防实验室
分享关于信息搜集、Web安全、内网安全、代码审计、红蓝对抗、Java、Python等方面的东西。