🖊️ Author: Nairuz Abulhul

🌐 Blog: R3dbuck3t

Table of Contents

Tools and Techniques

Kerbrute

Installation

To install Kerbrute, we need to download the binary from kerbrute releases, select the latest one for Linux kerbrute_linux_amd64, and change its privileges to be executable.

@htb[/htb]$ mv ~/Downloads/kerbrute_linux_amd64 kerbrute
$ chmod +x ./kerbrute
$ ./kerbrute

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

Version: v1.0.3 (9dad6e1) - 04/06/23 - 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)
  -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.

Identifying Usernames

<aside> 💡 When you fail in finding username from other ports, attempt kerbrute with teh list of username to identify valid users

</aside>

./kerbrute userenum --domain htb.local  --dc 10.10.10.52 ~/Downloads/wordlists/xato-net-10-million-usernames.txt

2023/05/23 13:45:54 >  [+] VALID USERNAME:       [email protected]
2023/05/23 13:45:55 >  [+] VALID USERNAME:       [email protected]
2023/05/23 13:46:00 >  [+] VALID USERNAME:       [email protected]
2023/05/23 13:46:05 >  [+] VALID USERNAME:       [email protected]
2023/05/23 13:46:17 >  [+] VALID USERNAME:       [email protected]
2023/05/23 13:46:41 >  [+] VALID USERNAME:       [email protected]
2023/05/23 13:47:03 >  [+] VALID USERNAME:       [email protected]
htb[/htb]$ kerbrute userenum users.txt --dc dc01.inlanefreight.local -d inlanefreight.local

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

Version: v1.0.3 (9dad6e1) - 08/25/20 - Ronnie Flathers @ropnop

2020/08/25 23:14:51 >  Using KDC(s):
2020/08/25 23:14:51 >   dc01.inlanefreight.local:88

2020/08/25 23:14:51 >  [+] VALID USERNAME:   [email protected]
2020/08/25 23:14:51 >  [+] VALID USERNAME:   [email protected]
2020/08/25 23:14:51 >  [+] VALID USERNAME:   [email protected]
2020/08/25 23:14:51 >  [+] VALID USERNAME:   [email protected]
2020/08/25 23:14:51 >  [+] VALID USERNAME:   [email protected]
2020/08/25 23:14:51 >  [+] VALID USERNAME:   [email protected]
2020/08/25 23:14:51 >  [+] VALID USERNAME:   [email protected]
2020/08/25 23:14:51 >  [+] VALID USERNAME:   [email protected]

2020/08/25 23:14:51 >  Done! Tested 117 usernames (8 valid) in 0.347 seconds

Use Kerbrute in conjunction with the jsmith.txt or jsmith2.txt user lists from Insidetrust.