こんにちは、みらい(@Minimal_Mirai)です。
今回は私がCTF(HTB, VulnHub, OSCP)でよく使うツール等の紹介です。同じような分野を学ぶ一助になれば幸いです。
第三者所有のサーバーや、管理外のネットワークに対する攻撃は絶対に行わないで下さい。
前提
先駆者の自動化ツールは頼るべきだが、内部の挙動やオプションをある程度把握するべきであり、何をしているか理解しながら脆弱性の列挙を行いましょう(自敬)。
個人的にはWeb系の脆弱性を列挙する際に使うツールの挙動を把握したい時などは、
Proxychains(場合によっては使用) -> BurpSuiteでキャプチャしてどんなPayloadを送信しているか見ると勉強になるのでおすすめします。
ポートスキャン
nmap
言わずとしれたポートスキャンツール、ただし実際の環境ではパケットに特徴がありFW等でブロックされるケースあり。
netcat
revシェルの取得で最も利用する事が多いが、nmapの出力の確認等で利用することがあります。
nc -nv <target-ip> <port>
また個人的には以下のコマンドで特定のポート番号から終了ポート番号までを指定し、ポートスキャンを行う事があります。
Web
Nikto
誤検知も多いが稼働しているWebサーバーによっては/usr/share/wordlists/dirbuster/.*等のsmall, midumサイズのファイルでは発見の遅れが発生する(最終行に近い)ページを列挙してくれたりする(MS-IS鯖であれば.aspxや.asp等の拡張子の付与等もした上で列挙してくれる)
DirBuster
言わずとしれたWebディレクトリの総当りツール、Webページを再帰的に列挙してくれる点がとても良い。
DIRBにも再帰的に列挙するオプションはあるがDirBusterの方をよく使用している。
SQL Map
SQL Injection等に特化した自動化ツール、場合によってはPHPのWebシェルをアップロード(--os-shell オプション)して自動で引っ張ってきてくれる。
便利ではあるが特に挙動を理解して使用する事をおすすめする。
またSQLiのPayloadに関しては以下3つの記事が大変参考になるのでおすすめします。
PayloadsAllTheThings/SQL Injection at master · swisskyrepo/PayloadsAllTheThings · GitHub
FFUF
ファジングツール、オプションが多く把握しきれていない点も多いが詳細な値を設定して結果をフィルタできる点が特徴的。
以下の記事が大変参考になる。
WEBファジングツール FFUFのすゝめ: NECセキュリティブログ | NEC
BurpSuite
Webのパケットキャプチャ等で重宝しているツール。
その他、Proxychainsと合わせて使用する事が多い。
ProxyChains
一般的なプロキシ用途からSSHポートフォワード等、汎用性の高いツール。
proxychains-ng | Kali Linux Tools
Windows権限昇格
winpeas.exe
権限昇格に繋がる脆弱性を自動で列挙してくれる。
オプションも含め理解するとかなり便利なツールの1つ。
PEASS-ng/winPEAS at master · carlospolop/PEASS-ng · GitHub
PowerSploit系
PowerShellを使用した攻撃系ツール全般。
権限昇格に繋がる脆弱性の列挙(PowerUp.ps1)やリバースシェル、AD鯖への攻撃に使用する事が多い。
GitHub - PowerShellMafia/PowerSploit: PowerSploit - A PowerShell Post-Exploitation Framework
Mimikatz
サイバー界のAK47の異名を持つ有名ツール。
大体の操作には管理者権限, SeDebugPrivilege権限等が必要なため、権限昇格後のローカル/DCユーザー等の列挙に使用する事が多い。
また一般的な環境(FW/AVが稼働している)では検知されるため、Bypassする方法やdump等についても頭に入れておくと良い。
以下聖書
wes.py
systeminfoコマンドの出力結果やWindowsのバージョン等からどのカーネルエクスプロイトに対して脆弱か判定してくれる。
攻撃対象マシンで動き回る必要がなく、検知リスクを回避できるため便利。
GitHub - bitsadmin/wesng: Windows Exploit Suggester - Next Generation
Juicy Potato
Windows権限昇格ツール。
使用には条件を満たしている必要あり。
Abusing Token Privileges For Windows Local Privilege Escalation
SharpUp
個人的にあまり使用する頻度は高くないが一応。
GitHub - GhostPack/SharpUp: SharpUp is a C# port of various PowerUp functionality.
BloodHound
AD系の情報を整理する時に利用する。
Apexとの関連はありません。
以下の記事と動画がとても参考になりました。
BloodHoundを使用したWindows Active Directory環境の分析 - Qiita
chisel.exe
ポートフォワードする際に利用。
バイナリから起動するだけなのでかなり楽。
使用できない環境も存在するため、netshを利用したポートフォワード等も覚えておくことをおすすめします。
Pivoting: Setting up a port proxy with netsh on Windows - David Hamann
pth-winexec / evil-winrm
ユーザーの資格情報でログインを試したい場合や、Pass-The-Hashでrevシェルを取得したい際等に利用。
LISTENは通常5985ポートを利用する。
5985,5986 - Pentesting WinRM - HackTricks
icaclsコマンド / accesschk.exe
パーミッション設定の確認に利用。
Security Professionals Network Inc. - 【SPN通信】Windowsオブジェクトのアクセス権を表示するAccessChk
AccessChk - Windows Sysinternals | Microsoft Docs
Linux権限昇格
linpeas.sh
言わずとしれた権限昇格ツール、オプションも含め覚えておくと重宝すること間違いなし。
PEASS-ng/linPEAS at master · carlospolop/PEASS-ng · GitHub
GTFOBins
Linux上でSUID/SGIDが付与されているアプリケーションから権限昇格する手法がまとめられている。
SUID/SGIDが付与されているアプリケーションの列挙はfindコマンドやlinpeas.shから出力されたものを見る事が多いです。
意外なものも列挙されていたりして、見るだけでも勉強になる。
SSHポートフォワード(Proxychains併用)
怪しげなプロセスがローカルポートで動いていたり、ネットワークの横展開する際に役立つ。
その他
SMB Clientを用いた再帰的なファイルダウンロード
SMB Map
SMBの列挙を行うツール。
知り得た資格情報の流用や、SMBディレクトリのR/W権限の確認で使うことが多い。
crackmapexec
SMBポートが開放されている場合、Windowsのバージョンやビルド番号まで列挙するため非常に有用なツール。
crackmapexec | Kali Linux Tools
・OS情報の列挙
metasploit
便利すぎる。ただしOSCP試験では使用制限があるため、頼りすぎず学習することをおすすめする。