
pwnSpoof(Punk Security 提供)は、一般的なWebサーバー向けの現実的な偽装ログファイルを、カスタマイズ可能な攻撃シナリオとともに生成します。
ログバンドルは毎回ユニークで完全にカスタマイズ可能なため、CTFシナリオの作成やトレーニングシリーズに最適です。
攻撃者のセッションを見つけ、インシデントの全体像を構築できますか?
pwnSpoof は、Punk Security が顧客向けに実施した脅威ハンティングトレーニング演習をきっかけに作成されました。そのトレーニング演習では、Splunk などのログ分析ツール(他のログ分析ツールも利用可能)と IIS ログを使用して、ログインブルートフォース攻撃やコマンドインジェクションを検出するものでした。
pwnSpoof アプリケーションの背後にあるアイデアは以下の通りです。
ログセットを作成したら、Splunk にロードし、さまざまな手法を使って以下の質問に答えることを想定しています。
以下では、pwnSpoof の使い始め方を説明します。
pwnSpoof は Python で書かれており、python3 でテストされています。追加のモジュールは不要で、標準ライブラリのみを使用します。
以下のエラーメッセージが表示された場合は、pwnSpoof 実行時に python3 を指定してください。Python2 はサポートされていません。
File "pwnspoof.py", line 176
print("{:6.2f}% ".format(y * x), end="\r", flush=True)
^
SyntaxError: invalid syntax
git clone https://github.com/punk-security/pwnspoof
cd pwnspoof
python pwnspoof.py --help
positional arguments:
{banking,wordpress,generic}
App to emulate
options:
-h, --help show this help message and exit
--out OUT Output file (default: pwnspoof.log)
--iocs Do you want to know the attackers iocs for easier searching? (default: False)
log generator settings:
--log-start-date LOG_START_DATE
Initial start of logs, in the format YYYYMMDD i.e. "20210727"
--log-end-date LOG_END_DATE
End date for logs, in the format YYYYMMDD i.e. "20210727"
--session-count SESSION_COUNT
Number of legitimate sessions to spoof (default: 2000)
--max-sessions-per-user MAX_SESSIONS_PER_USER
Max number of legitimate sessions per user (default: 3)
--server-fqdn SERVER_FQDN
Override the emulated web apps default fqdn
--server-ip SERVER_IP
Override the emulated web apps randomised IP
--server-type {IIS,NGINX,CLF,CLOUDFLARE,AWS}
Server to spoof (default: IIS)
--uri-file URI_FILE File containing web uris to override defaults, do not include extensions
--noise-file NOISE_FILE
File containing noise uris to override defaults, include extensions
attack settings:
--spoofed-attacks SPOOFED_ATTACKS
Number of attacker sequences to spoof (default: 1)
--attack-type {bruteforce,command_injection}
Number of attacker sequences to spoof (default: bruteforce)
--attacker-geo ATTACKER_GEO
Set the attackers geo by 2 letter region. Use RD for random (default: RD)
--attacker-user-agent ATTACKER_USER_AGENT
Set the attackers user-agent. Use RD for random (default: RD)
--additional-attacker-ips ADDITIONAL_ATTACKER_IPS
Additional attackers ip addresses, comma separated (default: ). If you wish to exclusively use this list set spoofed-attacks to 0
以下の例では、pwnedbank.co.uk に対するブルートフォース攻撃の IIS ログセットを作成します。
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type bruteforce --server-type IIS --out iis-output.log
以下の例では、pwnedbank.co.uk に対するコマンドインジェクションの NGINX ログセットを作成します。
python pwnspoof.py banking --server-fqdn pwnedbank.co.uk --attack-type command_injection --server-type NGINX
以下の例では、5000 の通常セッションと 3 の攻撃セッションを含むログセットを作成します。
python pwnspoof.py banking --session-count 5000 --spoofed-attacks 3
以下の例では、ログセットを作成し、攻撃者の IP アドレスを出力します。
python pwnspoof.py banking --spoofed-attacks 3 --iocs
以下の例では、ログセットを作成し、指定された IP アドレスのみを使用します。
python pwnspoof.py banking --spoofed-attacks 0 --additional-attacker-ips 192.168.0.1,192.168.0.2
pwnSpoof は本物の Web 攻撃ログを生成するために構築されており、その点では非常に優れています。現在はコードのリファクタリング、テストスイートの構築、PyPi への初回プッシュに注力していますが、pwnSpoof には大きな野心があります。
ログにさらなる多様性を提供するため、銀行以外の Web アプリを追加予定。
追加の、より動的な Web 攻撃を追加予定。
トレーニングビデオ!
pwnSpoof はブルーチームのトレーニングに最適なツールとして構築されたため、その魅力を紹介するトレーニング資料を制作するのは理にかなっています。
Webログだけではない
pwnSpoof が、Sharepoint、OneDrive、AzureAD 向けの Office365 監査ログなど、あらゆる種類の脅威ハンティングログを生成できるようになることを期待しています。
Blackhat Arsenal
pwnSpoof を Blackhat Arsenal に提出しました。今年(2021年)の Blackhat London でデモを披露できれば素晴らしいです。
追加のアイデアがあれば、ぜひご連絡いただくか、プロジェクトに追加してください。
この製品には、https://lite.ip2location.com から入手可能な IP2Location LITE データが含まれています。