Home Grown Red Team: Dari Workstation Menjadi Pengontrol Domain Dengan Havoc C2 dan Microsoft EDR

Nov 28 2022
Selamat datang kembali! Dalam entri blog ini kita akan berhadapan dengan Microsoft's Defender For Endpoint EDR sekali lagi untuk melihat apakah kita dapat beralih dari konteks integritas rendah ke Admin Domain dan mendapatkan eksekusi kode jarak jauh pada Pengontrol Domain! Selama beberapa bulan terakhir saya telah mendalami teknik yang berbeda untuk melihat apa yang bisa kita lakukan dengan perkakas open source terhadap salah satu EDR paling populer di luar sana. Di blog ini saya akan membahas beberapa konsep umum untuk masuk ke Pengontrol Domain tetapi dengan teknik berbeda yang saya temukan.

Selamat datang kembali! Dalam entri blog ini kita akan berhadapan dengan Microsoft's Defender For Endpoint EDR sekali lagi untuk melihat apakah kita dapat beralih dari konteks integritas rendah ke Admin Domain dan mendapatkan eksekusi kode jarak jauh pada Pengontrol Domain!

Selama beberapa bulan terakhir saya telah mendalami teknik yang berbeda untuk melihat apa yang bisa kita lakukan dengan perkakas open source terhadap salah satu EDR paling populer di luar sana.

Di blog ini saya akan membahas beberapa konsep umum untuk masuk ke Pengontrol Domain tetapi dengan teknik berbeda yang saya temukan.

Ini termasuk:

  • Bypass UAC dengan biner kustom UACME
  • Gerakan lateral dengan CrackMapExec dan SharpWMI.exe
  • Sesi diteruskan ke Kovenan
  • DCSync dengan Perjanjian

Malapetaka C2

Saya sudah membahas cara mengaktifkan dan menjalankan Havoc. Jika Anda tidak terbiasa dengannya, Anda dapat melihat posting saya Mendapatkan Sistem Pada Windows 11 Dengan Havoc C2 .

Dengan C2 saya, saya akan membuat beberapa shellcode dan menjalankannya melalui alat shellcode saya sendiri, Harriet.

Sekarang saya memiliki biner FUD, saya dapat mentransfernya ke workstation pertama di lingkungan AD saya.

Sesuai posting saya sebelumnya, kami memiliki lingkungan AD yang sangat kecil di sini. Untuk tujuan waktu dan ruang blog, kami akan memulai dengan DA yang dikenal dalam konteks menengah.

Saya mentransfer implan saya ke Win11-Blue.blueteam.local dan mendapatkan suar awal kami kembali.

Mari kita periksa EDR dan lihat apakah eksekusi awal berhasil.

Semua diam! Oke! Kita bisa melanjutkan. Melakukan perintah "whoami" sederhana menunjukkan kepada kita bahwa Danny ada di grup DA.

Menjalankan SharpUp memberi tahu kita bahwa kita dapat melakukan bypass UAC untuk mendapatkan hak istimewa admin.

Biner UACME khusus

Dalam posting sebelumnya saya menggunakan metode ComputerDefaults untuk mendapatkan admin, tetapi saat ini tertangkap oleh Defender For Endpoint. Kami ingin mendapatkan DA tanpa peringatan, jadi kami akan melakukan sesuatu yang keterlaluan: jatuhkan sesuatu ke disk!

Di mesin Pengembangan Windows 11 saya, saya mengkloning proyek UACME.

git clone https://github.com/hfiref0x/UACME.git

Kami memuat file sln dan proyek kami dimuat.

Saat dikompilasi, biner UACME diberi nama Akagi, jadi kita akan mulai menyesuaikan file yang ditemukan di bagian penjelajah solusi tersebut.

Memperluas proyek, kami melihat beberapa bagian untuk file header, sumber daya, dll.

Kami dapat memulai proses kami dengan melakukan pencarian cepat dan mengganti string umum yang ditemukan dalam proyek.

Beberapa string lain yang bisa kita ganti adalah di bawah ini:

Akagi

UACME

UAC

MUATAN

Jika kami mencoba membangun solusinya sekarang, itu gagal.

Itu tidak dapat menemukan file ikon karena kami belum mengubah namanya. Jadi kita perlu mengubah namanya di folder Akagi.

Setelah kami mengubah nama ikon, itu berhasil dibuat.

Sekarang jika kita melihat detail biner yang dibangun, kita melihat bahwa ada beberapa properti jitu.

Kami melakukan pencarian cepat untuk APT 92 di proyek kami, kami menemukan file Resources.rc dengan deskripsi ini.

Melalui file Sumber, kita melihat folder metode.

Masing-masing file metode ini mewakili bypass UAC yang berbeda untuk digunakan dalam biner yang dikompilasi. Jika kita melalui masing-masing metode ini, kita melihat berbagai komentar dengan nama metodenya. Untuk melewati Defender dan mesin AV lainnya, kita perlu menghapus komentar ini dari setiap file metode.

Menghapus semua komentar dari file metode bisa memakan waktu lama, tetapi kita hanya perlu melakukannya sekali sebelum memiliki biner yang tidak tertangkap oleh AV.

Dan setelah kami menghapus semua komentar dari file dan mengkompilasi ulang, kami mendapatkan biner kami. Menjalankannya melawan AntiScan.me kami melihat bahwa kami telah melewati beberapa vendor AV.

Memindainya dengan Windows Defender, kami melihat bahwa itu tidak terdeteksi.

Mendapatkan Admin

Kembali ke Havoc, kita hanya perlu mengunggah biner ke target kita.

Mari kita periksa dengan EDR Microsoft untuk melihat apakah kita sudah ketahuan.

Tidak terlihat seperti itu. Ayo lanjutkan!

Dengan biner UACME kami pada target, kami perlu mengeksekusinya dengan metode kami. Powershell dan perintah shell bisa membuat kita ketahuan, jadi mari kita gunakan WMI. Untungnya, SharpWMI memungkinkan kita menjalankan perintah di memori.

Tapi pertama-tama, kita membutuhkan metode untuk Windows 11.

59 terlihat bagus. Sebut saja metode kita dengan SharpWMI.

dotnet inline-execute /home/user/Desktop/SharpWMI.exe action=exec computername=WIN11-BLUE.blueteam.local command=”C:\Users\danny\Downloads\Acaji.exe 59 C:\Users\danny\Downloads \Inj3c13.exe”

Dan kami mendapatkan suar Admin kami kembali!

Memeriksa kembali EDR kami, kami tidak memiliki deteksi.

Besar! Jadi sekarang kami telah menentukan bahwa kami bisa mendapatkan eksekusi kode tanpa memicu EDR, kami dapat menggunakan metode yang sama untuk berpindah melintasi domain ke DC.

CATATAN: Tentu saja Anda tidak akan melakukan ini di aplikasi dunia nyata. Kami memiliki DA sehingga kami hanya dapat DCsync, tetapi kami ingin melihat apakah kami dapat bergerak tanpa mengubah EDR.

Gerakan Ke Samping

Jadi pada WIN11-BLUE kami memiliki kemampuan untuk mengunggah biner kami, tetapi bagaimana kami melakukannya ketika kami tidak memiliki suar di DC?

Di postingan sebelumnya, saya membuktikan bahwa kami dapat melakukan ini dengan Powershell dan tugas terjadwal. Dalam tulisan ini, kami akan menggunakan metode yang berbeda. Kami akan mengunggah biner kami ke target menggunakan CrackMapExec dan kemudian memanggilnya dengan SharpWMI.

Menyiapkan Serangan Kita

Jadi untuk POC ini kita akan berpura-pura sekali lagi bahwa ada dokumen rahasia di DC yang perlu kita keluarkan. Hal pertama yang perlu kita lakukan adalah mendapatkan kata sandi atau hash untuk pengguna kita Danny.

Karena kami adalah admin, kami dapat menggunakan beberapa metode untuk mendapatkan hash tetapi yang paling mudah bagi saya adalah melewati sesi ke Covenant dan menggunakan perintah DCsync mereka.

Jadi di Kovenan, kami menyiapkan file shellcode kami dan mengunduhnya ke sistem lokal kami.

Untuk mempermudah, saya akan mengubah nama file menjadi grunt.bin dan kemudian saya akan menjalankannya melalui Harriet. Ini akan mengenkripsi sehingga kita bisa melewati EDR.

Sekarang kita memiliki biner, kita dapat menggunakan Donut untuk mengubahnya kembali menjadi kode shell.

Dan bagian terakhir adalah memasukkannya ke dalam proses eksekusi Havoc kita.

Dengan shellcode yang berhasil disuntikkan, kami pergi ke Covenant dan kami memiliki grunt check in baru.

Mari kita intip EDR.

Tidak ada yang bisa dilihat di sini! Kita bisa bergerak bersama!

Kembali ke Covenant, kita bisa menggunakan perintah DCsync dan mendapatkan hash Danny. Dan setelah beberapa detik, Danny dan domainnya telah menjadi milik.

Baiklah, keren. Jadi kami telah menunjukkan bahwa kami bisa mendapatkan hash DA. Tapi apa yang Anda lakukan dengan itu setelah Anda memilikinya? Ingat, tujuan eksekusi kami bukan untuk mendapatkan kontrol domain, melainkan untuk mendapatkan dokumen rahasia di DC.

Pindah Ke Pengontrol Domain

Kami memiliki FUD yang dapat dieksekusi yang perlu kami unggah ke DC. Untuk ini, kita akan menggunakan CrackMapExec. Jadi, inilah perintah kami.

crackmapexec smb 192.168.1.9 -u danny -H 83c4be1a3fd33a182dafc8bd3bf53d00 -d blueteam.local — put-file /home/kali/Desktop/Inj3c13.exe \\WINDOWS\\TEMP\\25N0v3.exe

Kami menggunakan modul SMB dan kami memiliki IP ke pengontrol domain. Kemudian kami menggunakan nama pengguna danny dan memasukkan hash NTLM-nya. Kami memiliki domain dan kemudian menggunakan perintah " — put-file" dengan path ke FUD kami yang dapat dieksekusi dan kemudian direktori tempat kami ingin meletakkan file tersebut di DC.

Mari kita coba.

Dan begitu saja, executable kami ada di DC! Sekarang kita perlu menyebutnya. Kita dapat menggunakan SharpWMI.exe untuk melakukan ini di memori seperti yang kita lakukan dengan WIN11-BLUE.

Dan sekarang kami memiliki mercusuar dengan integritas tinggi di DC!

Ayo temukan harta rampasannya!

Setelah sedikit pencacahan, kami menemukannya di folder Dokumen Danny.

Ayo unduh.

Sebelum kita melihatnya, mari kita periksa dengan EDR.

Untuk apa benda ini bagus?

Dan inilah jarahannya!

Baiklah! Jadi sebagai penutup tulisan ini mari kita bicara sedikit tentang apa yang kami lakukan dan bagaimana kami melakukannya.

Kami memulai dengan beacon berintegritas rendah dan meningkatkan privasi kami dengan membuat biner UACME ubahsuaian yang melampaui Windows Defender dan Windows Defender untuk Endpoint.

Kami kemudian memanggil biner UACME dengan SharpWMI.exe di memori untuk pendekatan yang lebih tersembunyi ke Powershell atau perintah shell.

Setelah privasi kami dimaksimalkan, kami melakukan pengalihan sesi ke Kovenan untuk menggunakan perintah DCsync untuk mendapatkan hash NTLM DA. Kami kemudian menggunakan CrackMapExec untuk mengunggah suar ke DC dan menyebutnya menggunakan SharpWMI.exe.

Jadi, bagaimana lingkungan ini dicurangi untuk kesuksesan kita? WMI tidak diaktifkan secara default untuk Pengontrol Domain, Server Windows, atau workstation Windows 11.

Namun, dalam lingkungan korporat modern, sebagian besar mesin ini akan mengaktifkan WMI untuk memberikan waktu yang lebih mudah bagi sysadmin dalam pemecahan masalah. Kami juga memulai perjalanan kami dengan akun DA, tetapi itu hanya untuk membuat segalanya lebih nyaman untuk penulisan.

Penting juga untuk dipahami bahwa kami tidak menginstal AV lain di sistem. Jika Anda ingat, BitDefender menganggap biner UACME kami berbahaya. Jadi, berhati-hatilah saat menggunakannya pada pentest sungguhan.

Jika Anda menikmati tulisan ini dan ingin melihat apa pun yang saya lakukan, ikuti saya di sini atau di Twitter @assume_breach