简介

前些天看到这么一个类MSF的渗透测试的框架,但是二者的应用场景稍微有些不一样,遂来学习学习。

这个框架比较特殊的是主要使用powershell,比较容易绕过杀软

(官网)[http://www.powershellempire.com]看这里
(github)[https://github.com/EmpireProject/Empire]看这里

使用的话直接git clone 下来然后进入setup文件夹管理员权限运行install.sh,

不出意外的话会缺少很多python的模块,大部分pip就行,部分特殊的稍微搜寻下也能解决;

(pip install flask, pyopenssl, iptools, netifaces, pydispatcher, zlib_wrapper, macholib, pefile, xlrd, xlutils, pycrypto, dropbox, pyminifier)

使用

需要注意的是进去之前要切换成管理员权限,不然就会提示写入只读数据库然后失败

然后我们可以输入help看下它提供的命令

主要有四大模块:listeners,stagers,modules,agents

我们使用的话,一般就是先设置listeners,之后选择不同的stager,开始通过与agent进行交互后选择不同的module来实现想要的功能

Listeners

首先第一步当然是配置listeners;

输入Listeners,根据help看下相关的设置,可以看到主要是关于建立后的相关操作,当然也有相关的设置

输入uselistener 加两下tab,看下相关选项

可以看到五个http相关的,应该是根据客户端的不同来进行不同的配置,还有个msf的meterpreter,一个dropbox的dbx,还有其他两个

这里我们直接使用http,输入uselistener http,输入info查看参数
设置好Name,Port,Host,输入execute启动监听器即可

stagers

之后我们需要一个stager,实际上就是一个powershell的脚本;
我们输入back可以返回界面,使用usestager 加两下tab看看选项

可以看到有一些选择,其中osx是mac下的,windows不用多说,multi是面向多平台的

这里我们选择multi/launcher,输入options查看需要设置的选项

这里主要设置下Listener为我们前面的listener,然后需要注意的一点是SafeChecks选项,用来检测运行环境是否合适,这里默认的是开启,要求写的也是开启,但是开启的话是可能会没有反应,所以这里顺便把设置为False了。

还有点要注意是这样生成的脚本指令有可能会被杀软给拦截掉,原因的话看这里,也就是windows defender检测到了脚本中的Invoke-Empire,所以只需要将相关脚本(Empire/data/agent/stagers/http.ps1 与 Empire/data/agent/agent.ps1)中的Invoke-Empire修改为一个其他的名称就行

配置完成输入execute即可生成一串powershell的指令,可以将其写入到bat脚本里面;置入目标主机运行即可

这里尝试使用windows下的那几个stagers,均会被windows defender直接检测并删除,甚至都没有报毒提示…

Agent

然后等待主机即可,主机上线后我们这边会直接有响应

输入agents即可查看主机,也可以输入list查看,list stale可以查看已经不在线的主机,如果想要删除主机使用remove 加主机名即可,只是这样仍然会收到目标主机反弹的shell

一般的话就先rename 主机名为一些好记的名字,之后interact 加主机名与其交互

可以看到又一些选项比如说sc可以截屏,mimikatz可以拿用户密码但是需要高权限,bypassuac可以尝试提权,shell加命令可以执行一些常见的操作。

需要注意的是这里提供的并非交互性的shell,所以会有短暂的延迟;大概是使用前面的http请求,因此隐蔽性较好

Module

使用usemodule 可以查看可以使用的模块,比如说关于代码执行的code_execution模块,还有关于后门persistence模块来实现持续的渗透

关于模块的描述可以看这篇文章

这里我们选择用户域的注册表后门

查看选项

我们可以设置监听的主机,使用的监听器,注册表的位置及键的名字等
设置为执行execute即可将其置入目标主机,这个在目标主机的注册表是可以看到的。

需要注意的是,这里的后门因为是开机启动,所以在用户重启后开机是会弹出小黑窗的,这个需要想办法来解决。