Kerberoasting
Ý tưởng
Kerberroasting là kiểu tấn công lợi dụng hành vi đặc biệt của SPN (Service principal name).
Hiểu nôm na SPN là một user dùng để chạy services trong AD. Một số services sẽ cần quyền admin local để khởi chạy, do đó đôi khi SPN sẽ có quyền admin local, hoặc lý tưởng hơn SPN được set up có quyền domain admins. Tham khảo : https://en.hackndo.com/service-principal-name-spn/
SPN có một hành vi độc lạ, là ta có thể request TGS với bất kỳ SPN nào. Tức là ta có thể giả danh SPN để request TGS, vì TGS -REP sẽ được mã hóa bằng hash của user, nên khi ta nhận được TGS-REP ta cũng sẽ nhận được hash của user SPN, từ đây ta có thể crack và lấy được cleartext
Tóm lại mục đích của Kerberoasting là lấy được hash hoặc lý tưởng hơn là cleartext password của SPN. Tùy thuộc theo từng tình huống thì account SPN sẽ có quyền thấp hoặc cao trong hệ thống AD.
Điều kiện để exploit:
Có foothold trong hệ thống (máy join-domain hoặc creden hợp lệ)
Exploit Kerberoasting bằng Linux
Recon SPN users
Đầu tiên ta cần biết được trong AD có những SPN users nào, được phân quyền ra sao. Đánh giá xem có khả thi hoặc đáng để Kerberoasting hay không.
Ta dùng GetUserSPNs.py của impacket
GetUserSPNs.py -dc-ip <domain_ip> <domain_name>/<domain_user>:<domain_password>
GetUserSPNs.py -dc-ip 172.16.5.5 INLANEFREIGHT.LOCAL/sqldev:database!Request TGS ticket
Cracking
Cuối cùng là crack TGS với Hashcat
Exploit Kerberoasting bằng Windows
Manual
Enumerating SPNs with setspn.exe
Request TGS
Lúc này TGS đã ở trong memmory, ta dùng Mimikatz để dump
Ta có thể bỏ output base64 để ra trực tiếp file .kirby rồi dùng hashcat để crack
Cracking
Nếu output là base64 thì ta cần 1 bước decode rồi chuyển về file .kirbi
Bắt đầu crack
Automic tools
Dùng PowerView
Dùng Rubeus
Note
Tùy thuộc vào loại hash được sử dụng để mã hóa sẽ ảnh hưởng đến tỷ lệ thành công của Kerberoast. Ví dụ hash mã hóa RC4 thì dễ crack hơn AES126-256
Ta có thể check xem user SPN đang được dùng loại thuật toán mã hóa nào bằng câu lệnh:
Ta đối chiếu kết quả của cột msds-supportedencryptiontypes với bảng trong link này https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/decrypting-the-selection-of-supported-kerberos-encryption-types/ba-p/1628797
Hoặc kết quả của Rubeus cũng hiển thị
Tuy nhiên ta có thể bypass bằng cách dùng flag /tgtdeleg trong Rubeus. Flag này sẽ nói cho rubeus request và chỉ chấp nhận ticket trả về được mã hóa bởi RC4. Lúc này cho dù SPN users được setup với loại mã hóa nào đi nửa, thì cũng bị buộc chuyển sang RC4. Từ đó ta có thể dễ dàng crack hơn. Đây có thể coi là một trong những tính năng kỳ lạ của AD, có thể mục đích của nó là giúp tương thích ngược giữa hệ thống mới và cũ
Last updated