掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施

admin 2025年1月17日08:25:01评论19 views字数 6644阅读22分8秒阅读模式

现代红队中,建立安全隐蔽命令和控制 (C2) 基础设施对于成功至关重要。在博文第 1 部分中获取并重新分类域后 ,下一步是构建一个有效的系统,该系统不被发现并确保操作安全。在这篇文章中,我将分享如何使用 Sliver 和 NGINX Proxy Manager 创建分层 C2 设置,以及 Cloudflare提供额外的保护和匿名层。此外,我还对 Sliver 的网络流量进行了混淆和强化,以绕过 NDRIDS/IPS和其他网络监控工具。为了完成设置,我开发了一个自定义 C++ dropper,它通过代理链直接在堆内存中下载和执行有效负载。这种设置确保了安全和隐蔽的操作,同时保持匿名并有效地绕过了高级网络防御。

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施

目录

  1. 基础设施设计
  2. 利用 Cloud-flare 代理流量
  3. 将 NGINX 配置为 Re-director
  4. 部署 Sliver 并混淆其网络流量模式
  5. 配置防火墙规则以保护 Sliver 服务器访问
  6. 构建自定义 C++ Dropper 以下载和执行有效负载
  7. 其他 OPSEC:静态内容sliver 侦听器上的合法网站)
  8. 最后的思考

基础设施设计

该项目的基础在于创建一个隐蔽的多层命令和控制 (C2) 基础设施。设置包括:

  • Cloudflare 代理
    :隐藏流量并添加额外的匿名层。
  • Alpha VPS 上的 NGINX 代理管理器
    :充当重定向器,确保所有流量都流经此中间层。
  • Contabo VPS 上的 Sliver C2 服务器
    :用于管理有效负载和会话的核心服务器,由严格的防火墙规则保护。

设计概述: 来自 Cloudflare 上托管的诱饵域“onlin-notifications.net”的流量被代理到 Alpha VPS,NGINX 代理管理器在那里将其路由到 Sliver C2 服务器。

流量:自定义 C++ Dropper → Cloudflare Proxy → NGINX Proxy Manager → Sliver C2 Server。

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
流量

利用 Cloudflare 代理流量

在第 1 部分中,我们通过 Cloudflare 购买了域 online-notifications.net。现在,我们将 Cloudflare 配置为中间代理,以匿名化流量。请执行以下步骤:

  1. 在 Cloudflare 中为域 online-notifications.net 和 www.online-notifications.net 添加 A 记录
  2. 将记录指向 Nginx 代理服务器 IP (130.185.249.223)。
  3. 在 Cloudflare 中启用代理 (Orange Cloud) 选项以掩盖服务器的真实 IP 地址并安全地路由流量。
掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
添加 DNS A 记录

现在,解析 online-notifications.net 和 www.online-notifications.net 的 DNS 将返回 Cloudflare 的 IP 地址,而不是我们的 NGINX IP。这种设置通过使用 Cloudflare 作为受信任的中介来增强操作安全性 (OPSEC),有效地掩盖了我们 NGINX 代理服务器的真实 IP 地址并增加了额外的匿名层。

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
Nslookup返回Cloudflare IP,而不是NGINX IP和Whois,确认与Cloudflare相关的IP

此外,Cloudflare 将隐藏敏感的 WHOIS 信息,例如您的电子邮件地址、组织名称和其他个人详细信息。这确保了更大的隐私和匿名性,进一步增强了使用诱饵域时的操作安全性 (OPSEC)。

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
确认 WHOIS 信息 隐藏

作为一项额外练习,另一项 OPSEC 措施是限制通过 Cloudflare 访问您的 C2 和活动域,仅允许来自客户所在国家/地区的连接。此策略将有助于防止其他威胁情报团队和外部事件响应 (IR) 团队访问您的域。

将 NGINX 配置为 Re-director

重定向器充当中介,将流量从cloudflare 转发到实际的 C2 服务器。您可以使用下面的链接从 Alpha 购买 VPS 服务器。价格从 3.50 美元起,这已经足够了,因为我们只需要最少的资源进行重定向器。成本较低的选项将有效地满足要求。购买 VPS 后,我们将安装 Nginx 作为 Docker 容器。

https://alphavps.com/cheap-vps.html#plansTbl

  1. 在 Alpha VPS 上安装 Docker 和 Docker Compose
sudo apt updatesudo apt install -y docker.iosudo systemctl enable dockersudo systemctl start dockersudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose

2. 为 Nginx 创建一个名为 docker-compose.yml 的 Docker Compose 文件

version:'3.8'services:app:image:'jc21/nginx-proxy-manager:latest'restart:unless-stoppedports:# These ports are in format <host-port>:<container-port>-'80:80'# Public HTTP Port-'443:443'# Public HTTPS Port-'81:81'# Admin Web Portvolumes:-./data:/data-./letsencrypt:/etc/letsencrypt

3- 使用 docker compose 将 Nginx 键入 docker compose up -d 安装在您保存 .yml 文件的同一目录上。然后 用于验证 NGINX 容器是否正在运行。docker ps

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
使用 docker compose 安装 Nginx 并验证

4. 登录 NGINX GUI 并配置重定向规则

安装后打开端口 81 的 VPS IP 以使用默认管理员用户登录电子邮件:[email protected] 密码:changeme 然后立即使用此默认用户登录后,系统会要求您修改详细信息并更改密码

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
登录到 NGINX GUI

访问 Nginx Proxy Manager GUI 后,我们将添加代理主机,如下所示:

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
添加代理主机

添加以下内容:当使用域 online-notification.com 收到连接时,将流量路由到端口 443 上 IP 为 157.173.198.175 的 Sliver VPS。

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
将 onlin-notifications.net 路由到 sliver C2 端口 443

然后单击自定义位置,点击并添加以下内容:如果对文件 online-notifications.net/microsofta-updates 发出请求,请将其路由到 IP 为 157.173.198.175 但位于端口 80 的同一 Sliver VPS,Apache 服务器在该端口托管信标有效负载。此有效负载将由 dropper 下载以建立反向 shell。

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
  • 现在规则已经在 Nginx Proxy Manager 中创建了,所有传入的流量都将被重定向到 sliver C2 真实 IP

部署 Sliver C2 并混淆其网络流量模式

我们将在 Contabo VPS 上部署 Sliver。您可以从下面的链接购买 VPS,计划起价为 4.50 美元

云 VPS 1 |低价格、高性能的虚拟专用服务器 |Contabo

快速、灵活的 VPS:4 个 vCPU 内核、6 GB RAM、100 GB NVMe/400 GB SSD、1 个快照、32 TB 流量。经济实惠的云托管...

contabo.com

  1. Sliver:简介

我发现 Sliver 是最好的开源之一,我在许多真正的红队活动中使用了它,它非常有效。此外,我使用了 havoc,但我发现 Sliver 框架更健壮、成熟且用途广泛,可以取代 Cobalt Strike 和跨平台参与等工具。它适用于需要稳定性、加密和高级后开发的大型操作和红队成员。Sliver 是 Bishop Fox 的一个项目,他们将其描述为“开源跨平台的对手仿真 / 红队框架”。它是用 Go 编写的,面向 Windows、Linux 和 MacOS,可能还有所有其他 Go 编译器目标,尽管维护者不保证这一点。

Sliver 支持多用户操作,包括多个 C2 通道,所有通道都具有加密内置、旋转、BOF 等功能。该界面是基于文本的。注意:如果您正在寻找商业和更成熟的 C2 和最好的红队集,我建议使用 Fortra 的 Outflank 安全工具 (OST),您将轻松绕过所有 AV/EDR。

2. 安装 Sliver 服务器

sudo wget https://github.com/BishopFox/sliver/releases/download/v1.5.42/sliver-server_linuxchmod +x /opt/sliver/sliver-server_linux sudo /opt/sliver/sliver-server_linux
掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
在 /opt/sliver 安装 Sliver

在更现实的情况下,将有一个团队共享服务器,您需要启用多人游戏模式。但是,作为使用此服务器的单个人,我可以从这里进行操作。

3. 混淆 Sliver C2 网络流量模式

安装 Sliver 后,所有日志和配置文件都位于 $HOME/.sliver 目录中。首先,我们将对 Sliver 的网络通信模式进行混淆处理,以绕过 NDR(网络检测和响应)。

查看默认模式文件的一些内容: cat ~/.sliver/configs/http-c2.json

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
默认 Sliver Pattern 文件

,然后备份原始配置文件

cp ~/.sliver/configs/http-c2.json ~/.sliver/configs/http-c2.json.backup.
  • 现在我们可以编辑 http-c2.json 文件,如果有任何问题,我们可以恢复原始配置文件。

让我们打开文件并通过更改目录名称、文件名和添加额外的 Web 服务器标头来混淆网络模式以混入合法流量。

Vim ~/.sliver/configs/http-c2.json

下面是我的 GitHub 上更新的混淆通信文件

主 Sliver/Obfuscate-Sliver-Network-http-c2.json ·0xFFF-cmd/裂片卒

通过在 GitHub 上创建帐户,为 0xFFF-cmd/Sliver 开发做出贡献。

github.com

混淆网络流量后,让我们重新打开 sliver server

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施

然后启动 https 侦听器

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施

确认侦听器打开

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
作业和 netstat 命令

生成原始 shellcode 裂片信标

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
Sliver C2 Shellcode 信标

安装 Apache2 服务器

sudo apt update&& sudo apt install apache2

然后将 Beacon 复制到 Apache Server 目录以托管 Beacon 负载并授予文件下载权限

cp /opt/sliver/WOODEN_ENGINEER.bin /var/www/html/microsofta-updatessudo chown -R www-data:www-data /var/www/html/ microsofta-updates

配置防火墙规则以保护 Sliver 服务器访问

生成信标、托管信标并打开侦听器后,让我们配置防火墙规则,仅允许来自 sliver 上特定 IP 的流量,这将是 nginx 代理。

#1.  Allow traffic from a specific IP on port 80 and 443sudo iptables -A INPUT -p tcp -s 130.185.249.223 --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp -s 130.185.249.223 --dport 443 -j ACCEPT#2.  before dropping packets, i want to log any drop to see who want to access my machine sudo iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "IPTABLES-DROP-PORT80: " --log-level 4sudo iptables -A INPUT -p tcp --dport 443 -j LOG --log-prefix "IPTABLES-DROP-PORT443: " --log-level 4# 3. Add Rules to Drop Traffic from All Other IPs for port 80 and 443 sudo iptables -A INPUT -p tcp --dport 80 -j DROPsudo iptables -A INPUT -p tcp --dport 443 -j DROP

列出规则以确保它们被正确应用:sudo iptables -L -n -v

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施

通过使用 curl 或 Web 浏览器等工具将流量从不同 IP 发送到端口 80 和 443 来测试防火墙规则。

curl http://157.173.198.175:80 curl https://157.173.198.175:443
掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
阻止了 Direct Access 流量

查看防火墙日志:日志存储在系统日志文件中,可以使用以下方法查看:sudo tail -f /var/log/syslog

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
防火墙断开我的连接(我的 IP:176.44.54.82)

过滤端口 80 或端口 443 上丢弃的数据包的日志

sudo grep "IPTABLES-DROP-PORT80" /var/log/syslogsudo grep "IPTABLES-DROP-PORT443" /var/log/syslog

如果需要删除所有规则以用于测试目的以刷新所有链(INPUT、OUTPUT、FORWARD):sudo iptables -F

构建自定义 C++ Dropper 以下载和执行有效负载

我们将使用托管在我的 GitHub 上的自定义 dropper 下载 Sliver 信标并将其注入内存。

Dropper Link:https://github.com/0xFFF-cmd/Sliver/blob/main/Dropper.cpp

注意:此 dropper 是用 C++ 编写的,使用前应进行编译。目前,我们正在将其用于测试目的。在接下来的部分中,我将向您展示如何开发更高级的 dropper 来绕过 AV 和 EDR 解决方案。目前,要允许此 dropper 工作,您需要禁用防病毒软件或将文件夹列入白名单。这个 dropper 只是下载 beacon shellcode,将其注入堆内存,更改内存的权限使其可执行,然后执行它。

在 Visual Studio 中创建新项目并选择类型 console APP C++

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
C++ 控制台应用程序

现在将 dropper 代码作为发布版本,然后编译它(Build > Build Solution 或 Ctrl+Shift+B)并执行它。

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
构建并运行 Dropper 代码

执行 dropper 的可执行文件后,我们检查 Apache 和 Sliver 日志以观察 dropper 的动作。

  • Apache 日志确认 beacon shellcode 文件下载成功
掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
Apache 日志:tail -f /var/log/apache2/access.log
  • Sliver 日志使用新的混淆 URL、文件名和扩展名确认接收信标请求:tail -f ~/.sliver/logs/sliver.log
掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
裂片对数:tail -f ~/.sliver/logs/sliver.log
  • 在银色中,我们收到了 beacon revere 外壳,它现在可以工作了
掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
Beacon 反向 Shell

其他 OPSEC:静态内容(sliver 侦听器上的合法网站)

掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施
Sliver 的侦听器上的合法网站

最后的思考

通过利用 NGINX 作为代理并结合流量混淆和内存注入等高级技术,我们确保了基础设施在保持有效性的同时不受关注。此外,我们还实施了防火墙规则来限制访问,增加了额外的安全层。这种设置为现代红队提供了坚实的基础,既可靠又隐蔽。在以后的文章中,我们将更深入地研究更高级的技术,以进一步增强红队行动的安全性和隐蔽性。

其它相关课程

原文始发于微信公众号(安全狗的自我修养):掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月17日08:25:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   掌握现代红队基础设施 — 第 2 部分:使用 Sliver 和 Re-director 构建隐蔽的 C2 基础设施http://cn-sec.com/archives/3637287.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息