Kerberoast
Last updated
Last updated
Kerberos biletlərlə fəaliyyət göstərən autentifikasiya protokoludur. Bu protokol, birbaşa parolları paylaşmaq əvəzinə, istifadəcinin kim olduğunu sübut etməsi üçün "ticket"dən (bilet) istifadə edir. Kerberos həm istifadəçinin, həm də serverin autentifikasiya edildiyi bir protokoldur, buna görə də təhlükəsizlik üçün yaxşı bir seçimdir.
Kerberos autentifikasiya prosesi aşağıdakı kimidir:
İstifadəçi İstəyi: İstifadəçi Ticket Granting Ticket (TGT) tələb edir.
Doğrulama və TGT Verilməsi(AS-REP): Key Distribution Center(KDC) istifadəçinin məlumatların (credentials) yoxlayır və şifrələnmiş TGT verir.
Xidmətə Giriş İstəyi(TGS-REQ): İstifadəçi şifrələnmiş TGT'i və giriş etmək istədiyi xidmətin SPN(Service Principal Name) Ticket Granting Server'ə (TGS) göndərir.
TGS Cavabı (TGS-REP): Key Distribution Center (KDC) istifadəçinin TGT'i yoxlayır, hər şey doğudursa, istifadəçinin giriş etmək istədiyi xidmət üçün bir sessiya açarı göndərir.
Xidmət Autentifikasiya İstəyi (AP-REQ): İstifadəçi xidmətə giriş etmək üçün sessiya açarını göndərir.
Giriş Verilir (AP-REP): Xidmət girişi təsdiqləyir.
Kerberoasting, istifadəçiyə hər hansı xidmət üçün bilet tələb etməyə imkan verir, daha sonra həmin bilet xidmətin parolunu sındırmaq üçün istifadə olunur. Xidmətin SPN'i varsa, o, Kerberoast hücumuna həssas ola bilər, lakin hücumun uğuru parolun nə qədər güclü olmasından və sındırılmış xidmət hesabının səlahiyyətlərindən asılıdır. Kerberoast hücumu ediləcək hesabları listələmək üçün BloodHound alətindən istifadə edilə bilər. "Domain Enumeration" hissəsində qeyd edilən bu alət, domen istifadəçiləri, kerberoast edə biləcəyimiz hesabların domenin qalan hissəsi ilə hansı əlaqələrinin olduğu kimi məlumatları əldə etməyə imkan verir.
PowerView, Windows Active Directory (AD) mühiti haqqında məlumat toplamaq üçün penetration testing'də geniş istifadə olunan PowerShell alətidir. Yükləmək üçün bu keçiddən istifadə edə bilərsiniz.
Bu əmr xidmət hesabları kimi konfiqurasiya edilmiş və Service Principal Name (SPN) ilə əlaqələndirilmiş istifadəçi hesablarını əldə etmək üçün istifadə olunur.
Bu əmr Kerberoasting metodundan istifadə edir. O, domendəki mövcud SPN hesablarını çəkir, hər bir hesab üçün Ticket Granting Service (TGS) bileti tələb edir və sonra hash'i çıxarmaq üçün TGT'i sındırmağa ( və ya "roast"a) cəhd edir. Bu, xidmət hesablarının məlumatlarını(credentials) əldə etmək üçün ümumi hücum üsullarından biridir.
Bu əmr müəyyən bir hesab üçün TGS'i sorğulayır. Bu, təcavüzkarın müəyyən bir xidmət hesabını hədəf almasına və sonradan potensial hücumlar üçün təhlil edilə biləcək TGS biletini əldə etməyə imkan verir.
Bu əmr Kerberos funksionallığı üçün Mimikatz alətindən istifadə edir. Bu əmr ilə Kerberos biletləri əldə edilə bilər.
Aşağıdakı əmr, boş olmayan ServicePrincipalName xassəsinə malik istifadəçi hesablarının siyahısını qaytaracaq ki, bu da onların xidmət hesabları kimi istifadə olunduğunu göstərir:
Get-ADUser: Bu cmdlet PowerShell-də Active Directory modulunun bir hissəsidir və istifadəçi hesablarını əldə etmək üçün istifadə olunur.
-Filter {ServicePrincipalName -ne "$null"}: Əmrin bu hissəsi filtr şərtini təyin edir. O, ServicePrincipalName xassəsinin $null-a bərabər olmadığı istifadəçi hesablarını alır, yəni boş deyil.
-Properties ServicePrincipalName: Əmrin bu hissəsi təyin edir ki, ServicePrincipalName xassəsi çıxışa daxil edilməlidir. Bu, istifadəçi hesabları ilə əlaqəli xidmətin adları haqqında məlumat əldə etmək üçün istifadə olunur.
Impacket 0.9.19'u yükləmək üçün bu keçiddən istifadə edin.
'cd' əmri ilə impacket qovluğuna keçin:
Daha sonra aşağıdakı əmrdən istifadə edərək impacket'i quraşdırın:
Cari qovluğu GetUserSPNs.py skriptinin yerləşdiyi yerə dəyişdirin. Bu skript Impacket nümunələrinin bir hissəsidir və Kerberos biletlərini çıxarmaq üçün istifadə olunur. Bunun üçün aşağıdakı əmri icra edin:
Bu əmr qeyd edilən istifadəçi adı və paroldan istifadə edərək verilmiş domendə Kerberoasting hücumu həyata keçirir. Bunun üçün GetUserSPNs.py skriptindən istifadə edir və hücumun nəticəsi qeyd edilən faylda saxlanılır.
Rubeus Kerberos ilə qarşılıqlı əlaqə və sui-istifadə üçün istifadə olunan C# alətlər dəstidir. O, Kerberos biletləri ilə qarşılıqlı əlaqədə olmaq və autentifikasiya axınını anlamaq üçün xüsusi olaraq hazırlanmış vasitədir.
Yükləmək üçün bu keçiddən istifadə edə bilərsiniz.
Praktikada istifadə edəcəyim TryHackMe lab'ı üçün bu keçiddən istifadə edə bilərsiniz.
'Rubeus.exe kerberoast' əmri ilə istifadəçilərin kerberos krb5tgs hashını əldə edirəm.
Hash dəyərini hash.txt faylına yazıram:
İndi isə aşağıdakı hashcat əmri ilə parolu əldə etməyə çalışıram:
Və plaintext parolu əldə edirəm!