导语:C2 长连接与短连接 - 长连接和短连接C2服务器在上面的“常规” 部分已经作过简要的介绍; 但是,重申一次:长连接的服务器只能用于恢复进入环境的通道。服务器应该从持久性接收回调,并且非常缓慢地接收检查,例如每十二小时进行
C2
长连接与短连接 - 长连接和短连接C2服务器在上面的“常规” 部分已经作过简要的介绍; 但是,重申一次:长连接的服务器只能用于恢复进入环境的通道。服务器应该从持久性接收回调,并且非常缓慢地接收检查,例如每十二小时进行一次检查。短连接服务器是用于所有主要操作的服务器。这些服务器将经常被摧毁并且需要最多的滚动操作。服务器应该比远程服务器的检查更为频繁,但大部分时间不需要交互。考虑在目标环境的不同部分使用不同的短连接服务器,这些服务器具有更多的安全控制措施。
服务器数量 - 你所需要的后端C2服务器的数量很大程度上取决于评估的时间长度以及你对蓝队的期望。较长时间的评估通常需要额外的远程服务器,并且可能需要一次性运行额外的短连接服务器。在评估的初始访问阶段,你可能需要额外的短连接服务器,以便能够快速恢复已被摧毁的基础架构并继续进行网络钓鱼。
协议的选择 - 你所使用的C2协议可能是设计你的基础设施的C2策略最重要的方面。最常见的C2协议是HTTP(S),DNS,Domain Fronting和C2等流行的第三方服务。每个协议都有自己的优势和弱点,其相关的检测往往功能不同。通过执行各种操作,延迟和压力测试来测试你计划用于安全评估的C2协议(包含重定向器)至关重要。测试应该包括运行常见的漏洞利用和执行一些上传/下载。
下面的图表显示了一些常见的C2协议的优点和缺点:
常见的C2协议图表
流量调整 - 流量调整提供了非常强大的功能,能够使你的流量融入目标环境,模拟真实的应用程序或特定的威胁参与者。后期漏洞利用框架提供了自己独特的可选择的流量塑造功能; 但是,它们通常允许修改请求URI,用户代理,标题和参数。所有服务器都应充分利用流量调整选项,并为每个服务器定制独特的配置文件。
C2重定向 - C2重定向在实践中类似于有效载荷重定向。它的目的是混淆后端C2服务器,并可能混淆或迷惑蓝队调查流量。C2重定向可以使用与有效载荷重定向(“dumb pipe”和过滤)相同的方法,但是也可以使用Domain Fronting或第三方服务作为C2重定向器。对后两种选择的支持根据后期漏洞利用框架而不同,但是它们提供的C2流量难以检测并且难以阻挡。你实施的C2重定向的级别应该由蓝队的预期或经验级别的响应来决定,可以投入多少资源来执行和测试。
SMTP
理想情况下,你的SMTP服务器(或服务)不会与钓鱼网站的主机位于同一台主机上。这样,你可以在所有的活动中使用相同的活动发布平台,而无需为每个新的在线诱骗活动部署平台。这有助于减少花费在保存多组日志上的时间和资源,并减少总体资产的数量。
自设置 – SMTP的第一个选项是设置你自己的服务器来发送网络钓鱼邮件。发送程序最终是个人的选择,但如果你计划使用网络钓鱼平台,请确保发送程序与你使用的平台一起工作。普遍的选择包括Sendmail和Postfix。每个自设SMTP服务器都应配置DKIM,SPF和PTR记录。服务器还应配置为删除所有以前的主机头,以避免公开你的后端基础设施IP。这个方法是最花时间的,但是你可以控制基础设施。
第三方 - 使用第三方服务可以立即获得发件人信誉; 然而,使用服务钓鱼可能违反服务条款,并向你开放潜在后果的提供商。在使用此方法之前,请确保你能接受这些风险。第三方电子邮件服务通常实施控制来防止发送垃圾邮件,例如限制发送速率或定期验证发送的邮件太多。在启动测试之前测试一下从服务器发送多个电子邮件是一个好主意。
开放的邮件中继 – 这是第三个,是选择发现一个无意中开放的邮件中继这也是最难得的。真正的攻击者经常使用与目标组织无关的邮件中继; 然而,这对于合法测试并不可取。如果你确定你的目标企业或组织拥有开放的邮件中继,这将是一个非常有趣的发起钓鱼的服务器,并可能会提高你的网络钓鱼邮件的声誉。使用开放中继可能需要一些试验和错误来确定实施了哪些反垃圾邮件控制,以及谁可以从中继发起或接收电子邮件。一些组织将只允许外部转发到内部邮件域,这正是我们通常需要的红色邮件。
基础结构示例图
以下三个例子包含了一系列设计隐蔽的红队攻击基础设施的场景,并包含了上面讨论的一些设计考虑。我们的目标是展示个别基础设施技巧如何融合在一起,最大限度地获得在现实的目标环境中立足的机会。
示例设计#1
在第一个示例的目标组织中,通过OSINT和初步的网络钓鱼我们发现:
· 电子邮件附件被阻止
· 电子邮件设备用于查看传入的电子邮件
· 电子邮件设备会抓取电子邮件中的所有链接
· 没有网页浏览限制
· 有Windows和MacOS主机在使用中
基础设施设计示例#1
在这种情况下,我们将托管我们的有效载荷,并提供钓鱼邮件中有效载荷的链接,因为附件完全被阻止。在发现网络钓鱼电子邮件(发送给测试和指纹控制的电子邮件,而不是尝试获取访问权限或凭证)的过程中,我们观察到电子邮件设备会抓取邮件正文中包含的所有链接。在使用电子邮件设备时查看日志请求通常会产生可辨别的指纹,可用于将来自该设备的所有请求重定向到不可访问的资源(如404页面)。在这些设备中查找的常见指纹是不规则的(或过时的)用户代理(UserAgent)。使用Apache 的mod_rewrite,我们可以重定向请求将设备的指纹指向目标的404页面。这将增加我们的电子邮件通过邮件设备检查机会,而不是被标记为垃圾邮件。鉴于混合操作系统环境,我们还可以使用Apache mod_rewrite有效载荷重定向器为我们的网络钓鱼受害者提供特定的操作系统的有效负载。最后,由于我们没有发现有关网页浏览限制的情况,这可能会阻止我们的基于HTTP的C2,所以我们可以利用DNS长连接C2服务器来最大化我们向外连接的机会。
示例设计#2
在第二个示例的目标企业组织中,通过OSINT和初步的网络钓鱼我们发现:
· 大约一半的环境中的用户不能访问互联网
· 那些与互联网接入的连接受到严格的限制
· 可公开访问的网络邮件和远程访问登录
基础设施设计示例#2
在场景#2中,大约一半的用户在生产网络上没有互联网访问的权限。在这样的情况下,用户可能会收到网络钓鱼邮件,但无法点击我们的链接或在生产网络中执行我们的有效负载。这通常会导致用户使用他们的移动设备与网络钓鱼通信。由于我们可能没有适合移动设备的有效载荷,因此我们希望将使用移动设备访问钓鱼链接的用户引导到克隆的网络邮件页面或远程访问门户网站进行登录凭证钓鱼。一旦捕获到登录凭证,我们就可以登录到目标的一个可以公共访问的登录站点。如果不能打开相应的站点,我们至少有登录凭证,而不仅仅是一个失败的有效载荷的执行尝试。鉴于环境中对网页浏览的严格限制,我们的有效载荷将需要利用一个高度可信的域名来最大限度地向外成功的连接外网。在这种情况下就是Domain Fronting发光的时候了。我们可以配置长连接的C2流量通过域名google.com穿过网络并到达我们的服务器。
示例设计#3
在最后的这个示例的目标组织中,通过OSINT和初步的网络钓鱼我们发现:
· 电子邮件附件被阻止
· 电子邮件设备将检查所有链接并阻止各种文件扩展名,但 .docx是允许的
· 同于钓鱼的电子邮件会被迅速的手动处理
· 目标企业或组织部署了流行的在线存储服务
基础设施设计示例#3
最后这个示例的情况是一个严格限制的环境。我们需要再一次的利用网络链接而不是邮件附件进行钓鱼攻击,并在我们的基础设施中加入对事件响应的混淆。电子邮件设备阻止了除了 .docx之外的许多文件扩展名,所以我们需要把精力集中在基于Word文档的有效载荷上,或者执行文件扩展名模糊处理将电子邮件发送给目标。该组织对电子邮件的强大控制也可能意味着其拥有强大的基于网络的控制能力。将这些信息与目标组织在环境中推出的流行的在线存储服务相结合,第三方C2则是一个强有力的选择。这将允许我们的有效载荷通过在线存储解决方案(上面的示例图中的Dropbox)与C2服务器通信,我们知道该组织是允许在线存储服务的通讯的。
对于目标会对钓鱼前执行的手动反应表明我们将尝试超越一个成熟的蓝队。在这种攻击中,我们需要在整个评估过程中监控我们的Web日志,并在攻击过程中建立额外的重定向或阻止对基础架构的控制。例如,如果我们发现带有用户代理的wget或curl请求了有效负载的链接,则可能会有两个假设:1)蓝队正在手动调查钓鱼邮件,2)该电子邮件活动已被摧毁或即将被摧毁。这一迹象将暗示我们需要将资源转向于在下一次电子邮件网络钓鱼攻击活动计划中使用。
总结
设计一个隐蔽的红军团队攻击基础设施是启动一个成功的红军团队评估的重要一步。我们不使用渗透测试谍报中的红军团队评估,那么为什么我们会使用更适合渗透测试的基础设施呢?一个有效的红队攻击基础设施将隔离其资产,并在每项资产前使用重定向器(理想情况下会进行过滤)。基础架构内的每一项资产都应该被彻底的记录下来,并对操作延迟进行压力测试 。最后,基础设施不应该过度设计。它只需要帮助你实现你的目标就好。
更多资源
· 分布式的红军团队战略运作愿景 – Raphael Mudge(@armitagehacker)
· 持续的红队运作的基础设施 – Raphael Mudge
· 高级威胁战术(2/9):基础设施 – Raphael Mudge
· 分布式攻击中基于云的重定向器 – Raphael Mudge
· 六个红队基础设施技巧 – Alex Rymdeko-Harvey(@ killswitch-gui)
· 如何用 Digital Ocean 构建C2基础设施 – 第一部分 – Lee Kagan(@invokethreatguy)