Lompat ke konten
dokumentasi.id
Commit 64d2a9a
v2
Star4,9 rb

3.1

Kerberos Delegation dan Penyalahgunaan Tiket

Delegation membuat satu layanan Kerberos dapat bertindak atas nama pengguna ketika mengakses layanan lain. Repository memperlakukannya sebagai subbagian tersendiri di dalam Privilege Escalation, dengan 18 tautan yang dipecah menurut bentuk konfigurasinya. README.md:99-102

Paragraf pembuka subbagian itu menambatkan CVE-2020-17049 (Kerberos Bronze Bit) sejajar dengan dua dokumen praktik, Constructing Kerberos Attacks with Delegation Primitives dan No Shells Required. Artinya penyalahgunaan tiket delegation diperlakukan sebagai satu keluarga serangan, bukan sebagai catatan tambahan pada satu tool saja. README.md:99-102

Peta tiga bentuk delegation

Bahan delegation di repository dipisah menurut bentuk konfigurasinya, bukan menurut nama tool. Tabel berikut memetakan subbagian, jumlah tautan, dan tautan yang menjadi penanda tiap bentuk.

SubbagianBarisJumlah tautanTautan penanda
#### Unconstrained Delegation104-1106Exploiting Unconstrained Delegation
#### Constrained Delegation112-1164S4U2Pwnage
#### Resource-Based Constrained Delegation118-1235Wagging the Dog dan A Case Study in Wagging the Dog: Computer Takeover

Subbagian unconstrained memuat tautan terbanyak, 6 dari 18, dan judul-judulnya berbicara tentang kerugian berskala domain serta forest. README.md:104-110 Subbagian constrained berpusat pada primitif S4U lewat tautan S4U2Pwnage dan From Kekeo to Rubeus. README.md:112-116 Subbagian resource-based berpusat pada pengambilalihan objek komputer lewat Wagging the Dog. README.md:118-123

graph TD
  D["Kerberos Delegation - 18 tautan"] --> UD["Unconstrained Delegation - 6 tautan"]
  D --> CD["Constrained Delegation - 4 tautan"]
  D --> RBCD["Resource-Based Constrained Delegation - 5 tautan"]
  D --> BB["CVE-2020-17049 Kerberos Bronze Bit"]
  UD --> UD1["AD Security Risk #101 - satu server dapat menggugurkan domain"]
  UD --> UD2["ADV190006 - panduan mitigasi delegation"]
  CD --> CD1["S4U2Pwnage dan From Kekeo to Rubeus"]
  RBCD --> RBCD1["Wagging the Dog - computer take over"]
  BB --> BB1["Bypass pembatasan pada tiket hasil S4U2Proxy"]
  SEEN["SeEnableDelegationPrivilege"] -.-> CD
  style UD fill:#dc2626,color:#fff
  style UD1 fill:#dc2626,color:#fff
  style UD2 fill:#dc2626,color:#fff
  style CD fill:#2d7d46,color:#fff
  style CD1 fill:#2d7d46,color:#fff
  style RBCD fill:#f59e0b,color:#000
  style RBCD1 fill:#f59e0b,color:#000
  style BB fill:#8b5cf6,color:#fff
  style BB1 fill:#8b5cf6,color:#fff
  style SEEN fill:#f59e0b,color:#000
%% fig: Peta tiga bentuk delegation dan penanda serangannya
%% desc: Empat klaster bahan delegation di repository beserta tautan penanda dan hak istimewa yang menjadi pintu konfigurasinya.
Fig. 1: Peta tiga bentuk delegation dan penanda serangannyaEmpat klaster bahan delegation di repository beserta tautan penanda dan hak istimewa yang menjadi pintu konfigurasinya.

Siklus S4U2Self, S4U2Proxy, dan Bronze Bit

Delegation terbatas berjalan dalam dua langkah pertukaran tiket: layanan meminta tiket untuk dirinya sendiri atas nama pengguna (S4U2Self), lalu menukarnya menjadi tiket ke layanan tujuan (S4U2Proxy). Penyerang yang memegang kendali atas akun layanan memakai kedua langkah itu untuk meminjam identitas pengguna tanpa mengetahui kredensialnya. Rujukan praktik untuk rangkaian ini ada pada tautan S4U2Pwnage. README.md:112-116

sequenceDiagram
    autonumber
    participant U as User
    participant K as KDC
    participant A as "Service A - trusted to delegate"
    participant B as "Service B - target SPN"
    U->>K: minta TGT
    K-->>U: TGT
    U->>A: service ticket untuk Service A
    A->>K: S4U2Self atas nama User
    K-->>A: tiket untuk A dengan flag forwardable
    A->>K: S4U2Proxy ke SPN Service B
    K-->>A: tiket Service B
    A->>B: impersonasi User
    Note over A,K: Bronze Bit mengubah flag forwardable sebelum S4U2Proxy
    A->>K: S4U2Proxy dengan tiket yang sudah dimodifikasi
    K-->>A: tiket diterima pada host yang belum dipatch
%% fig: Siklus S4U2Self lalu S4U2Proxy dengan jalur Bronze Bit
%% desc: Layanan A memperoleh tiket atas nama pengguna lewat S4U2Self, menukarnya lewat S4U2Proxy, dan titik flag forwardable menjadi celah CVE-2020-17049.
Fig. 2: Siklus S4U2Self lalu S4U2Proxy dengan jalur Bronze BitLayanan A memperoleh tiket atas nama pengguna lewat S4U2Self, menukarnya lewat S4U2Proxy, dan titik flag forwardable menjadi celah CVE-2020-17049.

Bronze Bit (CVE-2020-17049) menyentuh tepat langkah penukaran itu: tiket hasil S4U2Self yang seharusnya tidak dapat diteruskan tetap dipakai pada S4U2Proxy. Repository mencantumkannya di paragraf pembuka bagian delegation, bukan di daftar CVE umum. README.md:99-102 Rincian per CVE dan hubungannya dengan salah konfigurasi lain dibahas di Kerentanan CVE dan Salah Konfigurasi.

Di sisi lain, bentuk unconstrained tidak memerlukan dua langkah tersebut karena host yang dipercaya menerima tiket siapa pun yang melewatinya. Repository menandai risiko ini sebagai hal yang dapat menggugurkan satu domain penuh dari satu server yang berhasil diambil alih. README.md:104-110

Jejak deteksi pada event log

Repository memetakan sebagian serangan terkait tiket ke Event ID tertentu, dan pemetaan itu memakai nama primitif delegation secara langsung.

SinyalEvent ID yang dicatat repositoryBaris
S4U2Proxy4769: A Kerberos ticket was requested570
Kerberoasting4769: A Kerberos ticket was requested569
Kekeo4624: Account Logon, 4672: Admin Logon, 4768: Kerberos TGS Request562

Baris S4U2Proxy hanya berisi satu Event ID, yaitu 4769, sehingga penyalahgunaan delegation terlihat lewat permintaan tiket layanan, bukan lewat perubahan konfigurasi akun. README.md:557-570 Penyusunan aturan deteksi dari Event ID tersebut dibahas di Deteksi Berbasis Event ID dan Sysmon.

⚠️ Baris Kekeo menuliskan label Kerberos TGS Request untuk 4768. Kutip tabel apa adanya saat menulis aturan deteksi, lalu verifikasi sendiri pemetaan nomor Event ID terhadap maknanya sebelum dipakai sebagai alert.

Mitigasi yang tercatat di repository

  • Tandai akun admin sebagai sensitive & cannot be delegated dan masukkan ke grup Protected Users; keduanya mencegah tiket akun tersebut dipakai pada jalur delegation. README.md:492-495
  • Ikuti panduan ADV190006 untuk delegation dan perhatikan perubahan delegation TGT antar-trust pada Windows Server, karena bentuk unconstrained melewati batas domain dan forest. README.md:585-586
  • Batasi pemegang SeEnableDelegationPrivilege. Repository menempatkannya di bagian tersendiri pada halaman persistence, sejajar dengan teknik backdoor lain, karena hak ini dapat dipakai untuk mengaktifkan delegation pada akun mana pun. README.md:345-347
  • Perlakukan CVE yang menyentuh delegation lintas forest dan integritas NTLM sebagai bagian dari jalur yang sama: CVE-2019-0683 menyangkut permintaan delegation TGT dari forest lain, sedangkan CVE-2019-1040 menyangkut NTLM MIC. README.md:548-549

Repository juga mencatat penggabungan NTLM relay dengan Kerberos delegation sebagai teknik tersendiri, sehingga mitigasi relay dan mitigasi delegation perlu diterapkan bersamaan. README.md:182-184 Langkah hardening dan patch yang lebih luas ada di Defense & Detection: Hardening dan Patch.