简介
前些天看到这么一个类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即可将其置入目标主机,这个在目标主机的注册表是可以看到的。
需要注意的是,这里的后门因为是开机启动,所以在用户重启后开机是会弹出小黑窗的,这个需要想办法来解决。