在本文中,我们将详细介绍 Red Team 操作配置流程,将内容分为两个主要部分。在第一部分中,我们将重点介绍如何设置网络钓鱼服务器,这对于社交工程活动和有效捕获凭据至关重要。为此,我们将探索 Evilginx 和 Gophish 等工具的使用,这些工具因其在模拟欺诈网站和捕获凭据方面的效率和灵活性而得到广泛认可。我们还将介绍如何设置 Postfix,这是一个邮件传输代理 (MTA),这对于有效发送网络钓鱼电子邮件至关重要。
在第二部分中,我们将继续配置我们的命令和控制 (C2),而不使用重定向器。这套工具和技术是 Red Team 运营和攻击模拟的基础,使安全专家能够识别漏洞并评估其组织对高级威胁的防御准备情况。
介绍
要开始配置我们的 Red Team 操作,第一步是在 Digital Ocean 中创建一个项目。Digital Ocean 提供了一个云平台,由于其易用性、灵活性和可扩展性,非常适合托管和管理我们的红队运营所需的组件,例如网络钓鱼和命令与控制 (C2)。
最初,如果您还没有 Digital Ocean 帐户,则需要创建一个。创建并验证您的帐户后,登录您的控制面板。在面板中,找到 “Projects” 部分,然后单击 “Create Project”。为您的项目命名,该名称可以是与您的 Red Team 操作相关的名称,例如“Red Team Operations Infrastructure”,并提供简要说明。选择最能描述项目用途的选项,以便进行组织和管理。
Evilginx3 配置
仪表板访问:登录到您的 Digital Ocean 仪表板。
开始创建:在控制面板中,查找位于右上角的“创建”按钮并单击它。从下拉菜单中,选择 “Droplets”。这将带您进入 Droplet 配置页面。
Region Selection(区域选择):选择要托管 Droplet 的区域。德国 (法兰克福)、阿姆斯特丹 (荷兰) 或新加坡等地区因其强大的基础设施和连通性而广受欢迎。选择区域可能会影响您的服务器延迟,因此请选择离您或目标受众最近的区域。
操作系统选择:选择快捷批处理的操作系统。Ubuntu 因其易用性和广泛的文档而成为热门选择。您将看到可用的不同版本的 Ubuntu;选择最新的或最适合您需求的一个。
计划选择: Digital Ocean 提供了多种计划,在 CPU、内存、存储和数据传输方面各不相同。选择满足您当前需求的计划。请记住,如果您需要更多资源,您以后可以随时调整快捷批处理的大小。
身份验证:强烈建议使用 SSH 密钥而不是密码进行身份验证。SSH 密钥更安全,无需输入密码即可更轻松地登录。如果您还没有 SSH 密钥,您可以按照 Digital Ocean 提供的说明创建一个。创建密钥后,通过选择适当的选项并粘贴公钥将其添加到 Droplet 中。
其他详细信息:您可以配置其他选项,例如为 Droplet 启用备份、为组织添加标签以及根据需要选择高级网络选项。
快捷批处理创建:配置所有选项后,检查您的选择以确保一切正确。对配置感到满意后,单击页面底部的“Create Droplet”按钮。
快捷批处理访问:创建快捷批处理后,将为您分配一个公共 IP 地址。您可以使用此 IP 地址和 SSH 密钥通过您选择的 SSH 客户端访问您的服务器。
无论何时引导新系统,最好运行 apt-get update 命令以确保系统软件包得到更新。此命令将可用软件包及其版本的列表与 Ubuntu 存储库同步,确保您可以访问已安装软件的最新更新和安全修复程序。通过保持系统更新,您可以最大限度地减少潜在漏洞,并确保机器运行更稳定、更安全。
为了确保我们运营的安全性和可靠性,必须在我们的服务器上配置 SSL 证书。因此,我们将安装 Certbot,这是一种自动且免费的工具,可简化获取和更新 Let's Encrypt 颁发的证书的过程。Certbot 不仅有助于配置 SSL 证书,还有助于在服务器和最终用户之间创建加密连接,确保传输数据的隐私和完整性。这一步对于建立安全可靠的操作环境、加强我们的通信和 Red Team 基础设施的真实性和安全性至关重要。
apt install certbot
我们需要安装 GoLang,这是开发 Evilginx2 的编程语言,允许它在我们的环境中运行。
apt install golang
为了利用 Evilginx2 的高级功能,Evilginx2 是红队武器库中用于进行复杂网络钓鱼攻击的重要工具,我们需要获取该软件的最新版本。访问 GitHub 上的 Evilginx2 版本页面,特别是 URL https://github.com/kgretzky/evilginx2/releases/tag/v3.2.0,并下载版本部分提供的源代码。此操作可确保您能够访问最新版本的 Evilginx2,从而使您能够实施最先进的社会工程技术。
wget "url"
下载后,我们将使用 unzip 进行解压缩
解压后,转到 evilginx 文件夹
让我们构建 evilginx
make
# or
make install
编译完成后,只需访问 build 文件夹,您就会找到 evilginx 可执行文件
为了最大限度地提高 Evilginx2 在我们的社会工程操作中的有效性,必须获取各种网络钓鱼,这些网络钓鱼是该工具用来拦截凭据和身份验证会话的关键组件。Phishlets 被配置为模仿特定网站,允许它们以令人信服且无法检测的方式捕获登录信息。为此,我们建议从以下可靠和最新的来源下载 phishlet:
https://github.com/An0nUD4Y/Evilginx2-Phishlets
https://github.com/simplerhacking/Evilginx3-Phishlets
https://github.com/hash3liZer/phishlets
https://github.com/ArchonLabs/evilginx2-phishlets
https://github.com/charlesbel/Evilginx2-Phishlets
通过从上述来源中选择网络钓鱼,您将可以访问最新版本,这对于避免重定向和检测问题至关重要。
克隆 phishlets 文件夹中的存储库
您也可以添加其他 phishlet 或创建自己的 phishlet,我将在以后的文章中更详细地逐步演示此步骤。
简单快速的配置后,您可以使用以下命令启动 evilginx:
./evilginx -p ../phishlets
为了提高您对高级网络钓鱼和社会工程操作的技能和理解,我强烈建议您参加 BreakDev Academy 提供的“Evilginx Mastery”课程。本课程深入介绍了 Evilginx,它是用于中间人攻击模拟的最强大、最灵活的工具之一。通过链接访问课程:Evilginx Mastery。
尽管存在其他反向代理工具,例如 Modlishka,但 Evilginx 以其全面性和有效性而著称,使其成为我在网络安全领域最喜欢的工具之一。该课程涵盖从基础知识到高级技术的所有内容,教授如何配置和操作 Evilginx 以捕获凭据和会话令牌。
运行它后,它将向我们显示所有加载的网络钓鱼
现在我们需要配置我们的域,如果您已经有一个域,只需进行以下设置。
如果您通过 GoDaddy 注册了您的域名并打算使用 Digital Ocean 的服务来托管您的项目,您将需要更新您的名称服务器以确保您的域名正确指向 Digital Ocean 的服务器。此步骤对于确保向您的域发出的请求被定向到项目所在的托管环境至关重要,从而允许访问托管在 Digital Ocean 上的网站或应用程序
访问域/DNS 设置
将您的域添加到 DigitalOcean
在您的主机的域管理器中配置这些名称服务器
ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com
在 GoDaddy 控制面板中更改名称服务器记录后,下一步是简单地保存更改。提交更改后,您需要等待一段时间,以便新的 DNS 配置在 Internet 上传播。
要修改系统上的 DNS 解析设置,您需要编辑 /etc/systemd/resolved.conf 文件。此文件是 systemd-resolved 的一部分,systemd-resolved 是一种系统服务,可为操作系统提供网络名称解析功能。通过更改此文件中的设置,您可以定义自定义 DNS 服务器、提高隐私和 DNS 解析性能,并根据需要调整名称解析系统的行为。
DNS=1.1.1.1:此行定义系统将用于域名解析的默认 DNS 服务器。在这种情况下,1.1.1.1 是 Cloudflare 提供的公共 DNS 服务器,以其隐私和速度而闻名。
resolved.conf 配置文件中的 DNSStubListener=no 行表示 systemd-resolved 未侦听 DNS 查询的环回接口(默认为 127.0.0.53:53)。“Stub Listener” 是一项功能,它允许 systemd-resolved 提供本地 DNS 侦听点,该点将查询转发到系统上配置的实际 DNS 服务器。
当 DNSStubListener 设置为 no 时,这样做通常是为了避免与系统上可能正在运行的其他 DNS 服务器发生冲突,例如 BIND 或 dnsmasq,它们也希望侦听端口 53,这是 DNS 的默认端口。
禁用 DNSStubListener 要求您将备用 DNS 服务器(如果使用)配置为直接侦听端口 53 并提供来自系统和本地应用程序的所有 DNS 查询。
使用命令重新启动解析服务
systemctl restart systemd-resolved
要为您的域和子域配置 DNS 条目,您需要适当地设置 A 记录。A 记录将域名定向到 IP 地址,这对于用户能够访问您的网站或服务至关重要。
对于主域,使用符号 (@) 创建 A 记录,该符号充当根域的占位符,不带任何前缀。例如,如果您的域为“example.com”,则设置值为 (@) 的 A 记录将直接指向“example.com”。
如果要建立子域,例如 “login.example.com” 或 “console.example.com”,您将为每个子域创建额外的 A 记录。在这种情况下,您将使用 'login'、'console'、'live' 或您选择的其他前缀,后跟主域,而不是使用 (@)。这会将每个子域链接到指定的 IP 地址,从而允许在每个子域上托管不同的服务或页面。
为了确保您的域和子域上通信的安全性和加密性,我们需要生成 TLS/SSL 证书。让我们使用 Certbot 来做到这一点,Certbot 是一种自动化工具,可以轻松地从 Let's Encrypt 获取和更新证书,Let's Encrypt 是一个提供免费证书以启用 HTTPS (SSL/TLS) 的证书颁发机构。
我们将使用的命令是:
certbot certonly --standalone -d "seudominio.com" -d "subdominio.seudominio.com" --register-unsafely-without-email
让我们详细说明该命令:
Certonly:此命令指示 Certbot 获取证书,但不会自动安装证书。
— standalone:告知 Certbot 使用自己的临时 Web 服务器来执行域验证质询。
-d:用于指定证书将对其有效的域名。您应该将 “yourdomain.com” 和 “subdomain.yourdomain.com” 替换为您的实际域。
— register-unsafely-without-email:选择不提供用于证书过期通知和 Let's Encrypt 服务条款的电子邮件地址。
执行此命令时,Certbot 将对指定域执行验证,如果成功,则颁发证书。
使用 Certbot 成功颁发 TLS/SSL 证书后,下一步是将它们整合到 Evilginx 中,以便它可以为网络钓鱼页面提供额外的安全层。此过程包括找到 Certbot 生成的证书文件,并将它们移动到 Evilginx 使用的适当目录。
通常,Certbot 将生成的证书存储在 /etc/letsencrypt/live/domain/ 目录中,您可以在其中找到 fullchain.pem 和 privkey.pem 文件。fullchain.pem 包含证书链,包括您的域的证书和任何中介,而 privkey.pem 是与您的证书关联的私有密钥。
在 /root/.evilginx/crt/<domain 或 subdomain> 目录中创建一个文件夹
并将 /etc/letsecrnypt/live/domain/* 文件夹中的证书复制到 /root/.evilginx/crt/<domain 中创建的文件夹中>
进行域和 IP 设置,只需键入命令:
config domain example.com
config ipv4 external "vps ip"
现在让我们配置我们的 phishlet
apt install golang0
apt install golang1
设置 phishlet 和 TLS/SSL 证书的过程完成后,通常会显示一条成功消息,指示一切按预期工作。这意味着您的网络钓鱼环境已准备就绪,您的流量已得到安全加密。
但是,如果您遇到错误,请务必仔细查看它们,因为它们可能会指出需要解决的常见问题。常见的错误可能包括:
缺少 A 记录:如果缺少所需的 DNS A 记录,例如 login、www、live 或其他相关子域,您的 phishlet 将无法正确解析。验证 phishlet 中使用的所有子域是否具有指向服务器的正确 IP 地址的相应 A 记录。
证书问题:如果 TLS/SSL 证书未颁发给正确的域,或者生成证书时出现问题,则需要查看颁发过程。确保证书涵盖所有必需的子域,并且在使用 Certbot 颁发过程中未发生错误。
如果您要使用 o365 网络钓鱼,请不要忘记注释sub_filters行
apt install golang2
要确保 phishlet 正确重定向未经身份验证的用户,必须在 phishlet 配置文件中配置 unauth_url。unauth_url 是如果用户不满足网络钓鱼所需的身份验证条件,用户将被重定向到的 URL。
诱饵命令在 Evilginx2 中用于创建和管理“诱饵”,这些诱饵是将受害者重定向到配置的网络钓鱼 URL。通过运行此命令,您可以生成将发送给受害者的链接,这些链接看起来是合法的,但实际上是通过 Evilginx2 配置的网络钓鱼服务器。
apt install golang3
apt install golang4
在 Evilginx2 上建立 phishlet 时,重定向配置是一个关键步骤。此重定向用于在与网络钓鱼页面交互后将受害者带到合法网站,有助于维持合法性的错觉。在本例中,您配置了指向网站 live.com 的重定向,该属于 Microsoft。
设置重定向后,您就可以分发网络钓鱼链接了。为此,可以使用像 Gophish 这样的工具来编排电子邮件活动。
使用 Evilginx2 成功设置 phishlet 的最终结果是创建了一个虚假的子域,该子域准确模仿合法网站以收集凭据。例如,您将有一个类似于 login.yourdomain.com 的子域,它似乎是您正在模拟的实体的官方登录页面。此子域将链接到在 phishlet 上配置的特定身份验证路径。
当用户在此网络钓鱼子域中键入他们的凭据并尝试登录时,不仅 Evilginx2 会捕获凭据,而且在多因素身份验证 (MFA) 的情况下,还会收集身份验证 cookie。这些 cookie 可以允许访问用户的会话,从而绕过第二个身份验证因素的需要。
捕获凭据后,输入命令:
apt install golang5
您可以改进您的 evilginx 设置,我强烈推荐训练营学习一些技巧并创建自己的 phishlet。
莫德利什卡
让我们配置 Modlishka,它是 evilginx 的一个非常好的替代品。
apt install certbot
安装 certbot,因为它是必不可少的。
apt install golang7
下载最新版本的 modlishka
apt install golang8
放置具有执行权限的可执行文件
这是一个modlishka.json配置文件的示例,请根据您的需要进行配置
apt install golang9
将其复制并粘贴到与 modlishka 可执行文件相同的文件夹中
wget "url"0
使用 certbot 通过 let's encrypt 生成数字证书。此外,我建议您还为将要克隆的应用程序和反向代理使用的每个域和子域生成它们。
wget "url"1
wget "url"2
上面的命令提取了生成的 key 的内容,展示完内容后,粘贴到 modlishka 配置文件中。
1) Fullchain.pem 的内容,粘贴到 cert 函数中
2) Privkey 内容,粘贴到 certKey 函数中
免责声明:为应用程序中的每个子域生成一个证书,并将子域注释放在 VPS 上的 A 记录中
现在,使用所做的设置启动 modlishka。
并访问你的钓鱼网址,经过用户认证后,会带来会话 cookie。
现在使用 cookie 编辑器并导入会话 cookie
单击 Import
粘贴会话 Cookie 并单击 import (导入),最后只需按 F5。
Gophish 配置
创建一个新的 droplet 来上传您的 gophish,将 evilginx 与 gophish 分开是我给出的一个 OpSec 提示,因为我已经检测到暴露的服务器与 gophish 和 cobalt strike 完全烧毁了当时在那里发生的操作。
在命名 Digital Ocean 或任何云托管提供商的液滴或服务器时,考虑安全性和谨慎性非常重要。使用可预测的名称(如 gophish-server 或 evilginx-server)可以使您的服务器更容易成为利用特定漏洞或寻找某些类型基础设施的攻击者的目标。
以下是安全命名 Droplet 的一些建议:
使用随机名称: Digital Ocean 会生成可用作安全选项的随机名称,因为它们不会透露服务器的目的或内容。保留自动生成的名称是一种简单而安全的做法。
创建唯一的非描述性模式:如果您更喜欢自定义 Droplet 的名称,请开发一个唯一且不会直接显示服务器角色的模式。例如,您可以使用行星名称、化学元素或与服务器功能没有直接关系的任何其他集合的组合。
包括非连续标识符:为了在不泄露信息的情况下促进内部管理,您可以在名称中包含非连续数字或字母。例如,srv-x7yB3 可能是一个无法实现服务器目的并避免可预测模式的选项。
访问 SSH 后,从存储库下载 gophish 并将其解压缩 https://github.com/gophish/gophish/releases
wget "url"
访问 gophish 文件夹并更改config.json,我建议将端口 3333 更改为另一个端口,在 ip 中您可以输入 0.0.0.0 或直接输入 vps 的 ip。
收集密码并使用您修改的端口登录到 gophish 管理面板,不要忘记 HTTPS。
首次登录时,您将被迫更改密码,输入复杂的密码,忘记著名的 admin/admin。
现在只需设置您的网络钓鱼活动并将 evilginx 与 gophish 合并,即可在您的网络钓鱼活动中取得最大成功。
最大的问题是 SMTP 服务器,因此我建议您根据您获得的域配置自己的中继以启动活动。
使用 Postfix 的 SMTP 配置
我建议您为此创建另一个 Droplet,但是为了让我的生活更轻松,我将使用 gophish 所在的同一服务器,但我不建议这种做法,我强调您将中继和 SMTP 重定向器放在不同的服务器上。
让我们安装 postfix,只需键入
wget "url"4
并选择 Internet 站点选项
输入您的电子邮件系统的名称,在本例中,我输入了我配置的域的名称。
以这种方式配置 DNS 条目,其中 MX 是域 mail.yourdomain.com,A 是 mail.yourdomain.com
现在尝试使用 telnet 或任何其他工具进行连接以退出通信类型:^]
在 Postfix 中设置中继允许您通过外部 SMTP 服务器路由电子邮件,这可能很有用,原因有很多,例如绕过直接发送电子邮件的 IP 限制、提高电子邮件送达的可靠性,或者只是为了使用已建立的电子邮件提供商的功能和安全性。让我们在 Postfix 配置文件 main.cf 中详细介绍中继配置过程。
第 1 步:访问配置文件
在安装了 Postfix 的服务器上打开终端。
输入命令 sudo nano /etc/postfix/main.cf 以在 Nano 文本编辑器中打开 main.cf 配置文件。如果您愿意,您可以将 nano 替换为您选择的其他文本编辑器。
第 2 步:配置目标
查找 mydestination 行。此选项定义 Postfix 将接受其电子邮件的本地域。如有必要,您可以将其配置为包含您自己的域和子域。例如:
wget "url"5
将 yourdomain.com 和 sub.yourdomain.com 替换为您的实际域和子域。
第 3 步:配置 Relayhost
查找 relayhost 行。此选项定义 Postfix 将路由电子邮件的外部 SMTP 服务器。您可以将其配置为使用特定服务,例如 Gmail 的 SMTP 或您选择的其他 SMTP 服务器。例如:
wget "url"6
将 [smtp.gmail.com]:587 替换为您首选的外部 SMTP 服务器的地址和端口。如果您使用的是没有身份验证的自定义 SMTP 服务器,则只需输入服务器地址和端口即可。
第 4 步:保存并退出
进行更改后,按 Ctrl+O 保存文件,按 Ctrl+X 退出 Nano。
第 5 步:应用设置
要应用更改,请使用以下命令重新启动 Postfix 服务:
保存设置并重新启动 postfix 服务
wget "url"7
让我们安装 mailutils 来测试发送
wget "url"8
如果一切顺利,它会向你的消息框发送一封电子邮件,但它最终会变成垃圾邮件,所以有必要配置 SPF、DKIM/DMARC,最好有一个良好的电子邮件中继。
结论
配置 evilginx、gophish 和 postfix 后,您就可以开始您的网络钓鱼活动了。
该图为红队基础设施提供了一个精心设计的结构,分为多个 VLAN,清楚地描绘了不同的组件,例如用于网络钓鱼的 SMTP 服务器、反向代理 VLAN 和命令和控制 (C2) 服务器。考虑运营安全 (OpSec) 以保护 Red Team 基础设施的完整性至关重要。
这种方法不仅有助于以合乎逻辑和安全的方式组织和扩展基础设施,还有助于最大限度地降低风险并最大限度地提高攻击模拟的有效性。基本组件包括 GoPhish 等网络钓鱼服务器、Modlishka 或 Evilginx2 等反向代理、用于重定向的 Web 服务器、用于多个域的 DNS 重定向器以及使用 CDN 进行伪装。
为每个功能详细划分为不同的 VLAN 有助于限制攻击面并保持网络流量井井有条并处于受控状态。在战略点使用 HTTPS 和 DNS 重定向器,以及为短期和长期操作精心选择 C2 服务器,这些都是增强运营效率和安全性的细节。
其它相关课程
详细目录
QT开发底层原理与安全逆向视频教程
linux文件系统存储与文件过滤安全开发视频教程(2024最新)
linux高级usb安全开发与源码分析视频教程
linux程序设计与安全开发
windows恶意软件开发与对抗视频教程
windows网络安全防火墙与虚拟网卡(更新完成)
windows文件过滤(更新完成)
USB过滤(更新完成)
游戏安全(更新中)
ios逆向
windbg
还有很多免费教程(限学员)
rust语言全栈开发视频教程
更多详细内容添加作者微信
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...