


Cara menjalankan analisis mendalam terhadap sampel serangan APT Vietnam
1. Kata Pengantar
APT telah menjadi topik hangat dalam bidang keselamatan.
Innovación y laboratorio, anak syarikat Eleven Paths, menerbitkan laporan "Docless Vietnam APT" pada bulan April:
Maklumat di atas menyatakan bahawa kami telah mengesan beberapa yang berniat jahat E-mel telah dihantar ke peti mel milik kerajaan Vietnam Tarikh e-mel Vietnam ini ialah 13 Mac 2019. Terdapat unsur-unsur yang mencurigakan dalam e-mel ini, yang mungkin datang dari dalam kerajaan Vietnam, tetapi tidak boleh diketepikan bahawa seseorang menghantar e-mel itu kepada jabatan keselamatan.
TKCT quy I nama 2019.doc.lnk.malw maklumat sampel adalah seperti berikut:
Gambar 1: TKCT quy I nam 2019.doc.lnk .malw
2. Analisis statik
1. Selepas TKCT quy I nama 2019.doc.lnk.malw sampel dimuat turun secara tempatan, ia dengan bijak menyamar sebagai pintasan Word, menipu mangsa untuk menjalankan atau lazimnya mengklik dua kali padanya. Lihatnya seperti berikut:
Gambar 2: Menyamar pintasan dokumen
Pertama sekali, dokumen perkataan biasanya tidak Pautan .lnk, dan saiz pautan itu adalah kira-kira 1kb, tetapi pintasan sampel APT ialah 126kb Jelas sekali bahawa ada sesuatu yang tersembunyi Banyak virus menyamar nama fail sebagai .dat, .docx, dll. Dalam hakikatnya, akhiran ialah .exe Anda boleh melihatnya dengan menghidupkan sambungan nama fail.
2. Ekstrak kod hasad yang terkandung dalam sasaran dalam atribut sampel dan dapatkan bahawa ia adalah perintah cmd yang dikaburkan dan disulitkan, dan laksanakan powershell, seperti yang ditunjukkan di bawah:
Oleh itu, virus dan perisian hasad pada masa lalu mempunyai persamaan ini Contohnya, Man Linghua, Xbash dan perisian tebusan semuanya suka melaksanakan powershell sebagai "muatan" pertama dan memberikannya kepada komputer sebagai kejutan.
3. Selepas menghuraikan arahan yang dikelirukan, kami mendapati bahawa pintasan TKCT quy I nam 2019.doc.lnk telah diubah hala ke fail s.sp1, sebenarnya, pintasan desktop ialah fail skrip powershell pembolehubah yang dikelirukan diisih seperti berikut:
Akhirnya ubah hala TKCT quy I nama 2019.doc.lnk ke folder temp, namakannya s.ps1 dan laksanakan powershell, sebagai ditunjukkan di bawah:
4 Ia juga boleh mengalih keluar pengeliruan iex secara manual ". Powershell menjalankan format arahan: Nama fail (asal) >> s.sp1 (nama fail baharu). Fail ubah hala adalah seperti berikut:
5 Seperti yang ditunjukkan dalam Rajah 5, dua keping data berkod Base64 telah ditemui untuk melaksanakan data berniat jahat yang dikodkan, dan laksanakan penciptaan setiap 9 minit Gunakan Perkhidmatan InstallUtil menyedari permulaan dan kegigihan adalah menarik untuk menggunakan Wscript.Shell untuk melaksanakan, dan semakin tidak dijangka, semakin tidak dijangka kesannya, seperti yang ditunjukkan di bawah:
6 Selepas menghuraikan data yang dikodkan Base64, sebenarnya terdapat dua fail boleh laku iaitu malicious .net dan .doc. Kaedah pelaksanaan ditunjukkan dalam rajah di bawah:
7. Analisis tmp_pFWwjd.dat.exe dan nyahhimpunkannya melalui alat dnSpy Akhirnya, kod itu kelihatan dengan jelas walaupun terdapat sedikit kekeliruan (anda boleh menggunakan de4dot.exe untuk mengelirukannya), ia tidak menjejaskan tahap kod.
Cari fungsi utama Exec() dan cari data yang dikodkan Base64String Menurut proses pelaksanaan, .NET mewakilkan untuk memanggil fungsi Panggilan, dan ia boleh dibaca dan boleh ditulis Kemudian anda perlu memohon memori VirtualAlloc (), dan Salin kod shell Base64 ke memori yang diminta, dapatkan penuding CreateThread() dan amanahkan penuding panggil balik pelaksanaan untuk melaksanakan kod shell berniat jahat, seperti ditunjukkan di bawah:
Gambar 8: .net disassembly
Bagaimana untuk memahami shellcode atau muatan? Pada asasnya, ia boleh dikatakan sebagai sekumpulan data heksadesimal Untuk fail boleh laku, ia adalah data yang boleh ditafsir dan dilaksanakan oleh enjin pemasangan.
Oleh kerana perkara berikut akan melibatkan pengekstrakan data binari dan analisis pemasangan, berikut ialah rajah ringkas untuk memperkenalkan konsep asas kod shell atau muatan (untuk kod berniat jahat), seperti yang ditunjukkan dalam rajah berikut:
Gambar 9: muatan
Seperti yang ditunjukkan dalam Rajah 9, untuk virus, terutamanya serangan yang bermula sendiri dan berterusan, sukar untuk dilaksanakan tanpa pintu belakang (kelemahan berterusan ( kecuali untuk menarik sedikit trafik setiap kali untuk kecurian data).
Sebagai contoh, alamat asas rawak alamat ASLR akan berubah setiap kali sistem dimulakan semula, atau ia akan disuntik ke dalam ruang proses baharu Alamat asas fungsi kod itu sendiri adalah salah mendapatkan alamat fungsi? Untuk mencapai operasi yang sempurna, beberapa operasi tambahan diperlukan Sudah tentu, ini bukan masalah, dan teknologinya agak matang.
Dengan mengandaikan bahawa pembaca mempunyai pengetahuan tertentu tentang format Windows PE, pemasangan dan kernel, penjelasan pengetahuan berikut akan lebih mudah difahami. Saya tidak akan mempopularkan pengetahuan asas Saya akan menganalisis cara melakukan kod shell ini dari format PE dan tahap pemasangan, bagaimana untuk mendapatkan alamat pangkalan modul secara dinamik seperti kernel32.dll, cara menggunakan nilai hash atau Hash untuk melintasi eksport jadual, dan elakkan membunuh rentetan sensitif dan API fungsi sensitif, dsb.
3. Bercakap tentang PE dan virus
Mengambil kod hasad di atas sebagai contoh, kerana .net menghadapi banyak masalah semasa penyahpepijatan kod shell, c/c++ telah digunakan untuk memulihkan tmp_pFWwjd.dat.exe sampel.
Sekali lagi, OD digunakan untuk penyahpepijatan dinamik Sudah tentu, anda boleh membuangnya untuk analisis Mengikut pilihan peribadi anda, anda boleh terus mengganggu apabila melaksanakan kod shell, seperti yang ditunjukkan di bawah:
Gambar 14: Dapatkan pangkalan modul
Gambar 15: Langkah-langkah untuk mendapatkan alamat pangkalan modul persekitaran semasa
5. Lulus Proses di atas akan berjaya mendapatkan ntdll.dll, seperti yang ditunjukkan di bawah:
Gambar 16: Dapatkan Alamat modul
6 fungsi 1E0B2A, dua parameter Menurut konvensyen panggilan fungsi, parameter 1 ialah alamat pangkalan kernel32, parameter 2 ialah nilai cincang nama fungsi, dan fungsi ini ialah fungsi GetProcAddress() yang dilaksanakan sendiri, seperti yang ditunjukkan di bawah:
Gambar 17: GetProcAddress
Tujuan fungsi ini adalah untuk menyemak sama ada ia mematuhi format standard PE dan mendapatkan pengepala NT dan jadual eksport. Jadual eksport menyimpan alamat tiga jadual Mari kita lihat struktur jadual eksport, seperti yang ditunjukkan di bawah:
Kod hasad perlu mencari alamat ketiga-tiga jadual ini, melintasi jadual nama fungsi AddressOfName, dapatkan nama fungsi dan mengira nilai cincangan jika nilai cincang adalah sama parameter 2, ia bermakna adalah fungsi yang sama.
Kembalikan subskrip yang sedang dilalui, gunakan subskrip untuk pergi ke jadual nombor jujukan fungsi AddressOfNameOrdinals untuk mencari nombor jujukan yang sepadan, dapatkan nilai yang disimpan dalam jadual nombor jujukan dan dapatkan AddressOfFunctions dalam jadual alamat fungsi . Jadual nombor siri dan jadual nama sepadan dengan satu dengan satu, dan subskrip dan subskrip berada dalam Nilai yang disimpan adalah berkaitan.
Perlu diingatkan bahawa nombor siri tidak teratur dan akan ada jurang. Sesetengah fungsi dalam jadual alamat tidak mempunyai nama fungsi, iaitu jadual alamat mempunyai alamat tetapi tidak boleh dikaitkan dengan jadual nama Pada masa ini, nombor siri digunakan untuk memanggil kandungan nombor siri ditambah nombor siri Pangkalan alamat asas ialah nombor panggilan sebenar.
9 Keputusan pengesahan akhir berjaya, seperti yang ditunjukkan di bawah:
Gambar 20: Pengesahan
11 Urutan baharu dibuat , seperti yang ditunjukkan di bawah:
Gambar 21: Cipta direktori
Buat fail dan laluan nama direktori c:User...AppDataRoaming
11 Pelayan membalas dan memuat turun kod hasad, yang akan memulakan perjalanan baharu, seperti yang ditunjukkan di bawah:
Gambar 22: DownLoader
4. Analisis modul vkT2
1 Selepas mengikuti fungsi, kami menemui sejumlah besar nilai cincang, secara dinamik memperoleh alamat fungsi, dan fungsi di atas Panggilan adalah konsisten, dan nama fungsi sikat adalah seperti berikut:
Penyahsulitan fungsi 1E0AAA adalah seperti berikut:
2. Operasi prapemanasan dilakukan , sebenarnya, berdasarkan nama fungsi, anda harus meneka apa yang akan berlaku seterusnya, seperti yang ditunjukkan dalam rajah berikut:
Gambar 23: InternetOpenA
Gambar 24: InternetConnectA
Gambar 25: HttpOpenRequestA
4. Analisis vkT2, mula-mula menyahsulit data, dan kemudian secara dinamik mendapatkan alamat fungsi, yang merupakan rutin lama yang digunakan oleh sampel.
Data setiap bahagian (jadual bahagian) disambung secara kitaran Di sini, menurut VirtualAddress, alamat setiap bahagian selepas dimuatkan ke dalam memori disambung secara kitaran Kod ciri pengepala DOS dipadamkan untuk membentuk fail Format PE, seperti yang ditunjukkan di bawah:
Gambar 28: Pengembangan memori
5. Memandangkan ia adalah format PE Dikembangkan ke dalam memori, langkah seterusnya adalah untuk membaiki jadual IAT dan penempatan semula Terdapat banyak aspek yang terlibat di sini, dan ia juga merupakan kandungan format PE Panduan", seperti yang ditunjukkan dalam rajah di bawah:
Gambar 29: Membaiki IAT
6. Seterusnya, analisa perkara utama, dapatkan pembolehubah sistem, dan tentukan sama ada ia berjalan pada sistem 64bit, seperti yang ditunjukkan di bawah:
Gambar 30 : Menentukan persekitaran operasi
8 Data sistem, IP hos, Nama hos dan maklumat lain dikumpul seperti berikut:
Gambar 31: Pengumpulan data
9 Pusingan baharu komunikasi C&C bermula, seperti yang ditunjukkan dalam rajah berikut:
<.>
Seperti yang ditunjukkan dalam Rajah 35, pelayan untuk komunikasi pelanggan semuanya harus menjadi pelayan proksi Sebenarnya, persekitaran sebenar jauh lebih rumit daripada proses di atas, yang juga merupakan kesukaran untuk mengesan sumber. Seperti yang ditunjukkan dalam Rajah 33, maklumat data utama diekstrak daripada memori tindanan, yang berbeza daripada data permintaan biasa yang kita lihat adalah seperti berikut:
Kaedah komunikasi APT menjadi lebih berhati-hati Jika analisis sampel terperinci, operasi simulasi kotak pasir, forensik memori dan alat penangkapan paket tidak digunakan untuk menganalisis tahap rangkaian, hasilnya mungkin berbeza daripada data yang dikehendaki sampel berkomunikasi, ia sebenarnya menggunakan teknologi serangan rangkaian bahagian hadapan domain.
Apakah itu teknologi serangan rangkaian bahagian hadapan domain? Ringkasnya, pasukan seperti msf dan cs (Cobalt Strike) boleh mengawal trafik pelayan untuk memintas tahap tembok api dan pengesan tertentu Beberapa pengeluar yang lebih besar akan menyediakan perkhidmatan, jadi alatan seperti msf atau cs boleh digunakan untuk memintas firewall dan pengesan pada tahap tertentu Ia boleh dicapai.
Kami menggunakan Cobalt Strike sebagai contoh, yang menyepadukan penghantaran port, mengimbas port multi-mod Listener, penjanaan program Windows exe, penjanaan perpustakaan pautan dinamik Windows dll, penjanaan program java, penjanaan kod makro pejabat, termasuk pengklonan tapak untuk mendapatkan maklumat berkaitan pelayar, dsb.
Salah satu fungsi yang lebih berguna ialah gelagat muatan Beacon, mengubah suai nilai atribut lalai rangka kerja, menukar kekerapan daftar masuk dan mengubah suai trafik rangkaian Beacon berada dalam fail Mudah Tempa C2.
Fungsi Malleable-C2-Profiles boleh membina trafik menyamar Web biasa, dan akhirnya mencapai kesan penyembunyian komunikasi Kami mengambil amazon.profile sebagai contoh, seperti yang ditunjukkan di bawah:
set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko";http-get {Seturi"/s/ref=nb_sb_noss_1/167-3294888-0262949/field-keywords=books";client {header "Accept" "*/*";header "Host" " www.amazon.com ";metadata {base64;prepend "session-token=";prepend "skin=noskin;";append "csm-hit=s-24KU11BB82RZSYGJ3BDK|1419899012996";header "Cookie";}http-post {set uri "/N4215/adj/amzn.us.sr.aps";client {header "Accept" "*/*";header "Content-Type" "text/xml";header "X-Requested-With" "XMLHttpRequest";header "Host" " www.amazon.com ";parameter "sz" "160x600";parameter "oe" "oe=ISO-8859-1;";id {parameter "sn";}parameter "s" "3717";parameter "dc_ref" "http%3A%2F%2F www.amazon.com ";}
The. kod di atas sepadan sepenuhnya dengan ciri komunikasi sampel vkT2.shellcode Dengan memuatkan fail profil yang sepadan, ciri trafik hos sasaran dan pelayan ditukar untuk menyembunyikan trafik dan akhirnya mencapai tujuan menyembunyikan komunikasi.
Atas ialah kandungan terperinci Cara menjalankan analisis mendalam terhadap sampel serangan APT Vietnam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Data dalam talian pada ZoomEye berada dalam mod tulis ganti dan kemas kini, yang bermaksud bahawa jika tiada data diimbas dalam imbasan kedua, data yang dikemas kini tidak akan ditimpa Data pada ZoomEye akan mengekalkan data sepanduk yang diperoleh dalam imbasan pertama ada di sini Sebenarnya terdapat adegan yang sesuai dalam kebolehkesanan jenis serangan berniat jahat ini: pelayan muat turun yang digunakan oleh serangan berniat jahat seperti Botnet, APT dan serangan lain biasanya dinyahaktifkan secara langsung dan ditinggalkan selepas ditemui Sudah tentu, ada yang digodam sasaran, dan mereka juga sangat ganas Pergi ke luar talian secara langsung! Oleh itu, banyak tapak serangan mungkin dicache dalam talian oleh ZoomEye. Sudah tentu, dengan data yang disediakan dalam api sejarah ZoomEye, anda boleh menanyakan bilangan sepanduk yang diperolehi oleh setiap imbasan tanpa mengira sama ada anda menutupnya atau tidak.

Secara umumnya, sistem Linux terkenal pada asasnya dibahagikan kepada dua kategori: Siri RedHat: Redhat, Centos, Fedora, dll.; yum (YellowdogUpdater, Modified) ialah pengurus pakej hadapan Shell dalam Fedora, RedHat dan SUSE. apt (AdvancedPackagingTool) ialah pengurus pakej bahagian hadapan shell dalam Debian dan Ubuntu. Gambaran Keseluruhan Secara umumnya, sistem Linux yang terkenal pada asasnya dibahagikan kepada dua kategori: Siri RedHat: Redhat, Cento

Mengenai Model Kitaran Pemprosesan Perisikan Ancaman Istilah "Kitaran Pemprosesan Perisikan Ancaman" (F3EAD) berasal daripada tentera Ia adalah kaedah untuk mengatur sumber dan mengerahkan tentera yang direka oleh komander Tentera AS di semua peringkat senjata tempur utama. Pusat Tindak Balas Kecemasan Rangkaian menggunakan kaedah ini dan memproses maklumat perisikan ancaman dalam enam peringkat berikut: Kitaran Pemprosesan Perisikan Ancaman Aplikasi Model Kitaran Pemprosesan Perisikan Ancaman F3EAD Langkah 1: Cari tarikh pada bulan tertentu dan gunakannya pada orang ramai rakan kongsi. pelayan awan Penggera sistem "Onion" menemui program kuda Trojan yang disyaki, jadi pasukan tindak balas kecemasan dengan cepat memulakan proses tindak balas kecemasan: pihak berkepentingan dan yang lain mengumpulkan kumpulan dengan satu klik dan memanggil masuk. Sistem mangsa diasingkan untuk siasatan. Sistem keselamatan dan log audit dieksport untuk analisis kebolehkesanan. Penyediaan seni bina sistem perniagaan dan maklumat berkaitan kod untuk menganalisis pelanggaran pencerobohan dan mangsa

Untuk memasang PHP8 pada sistem Deepin, anda boleh mengikuti langkah di bawah: Kemas kini sistem: Buka terminal dan laksanakan arahan berikut untuk mengemas kini pakej sistem: sudoaptupdatesudoaptupgrade Tambah sumber Ondřej SurýPPA: PHP8 boleh dipasang melalui sumber Ondřej SurýPPA. Jalankan arahan berikut untuk menambah sumber: sudoaptinstallsoftware-properties-commonsudoadd-apt-repositoryppa:ondrej/php Kemas kini senarai pakej: Jalankan arahan berikut untuk mengemas kini senarai pakej untuk mendapatkan PHP dalam sumber PPA

Ubah suai sumber apt-get Ubuntu secara manual 1. Gunakan alat ssh untuk menyambung ke Ubuntu (saya menggunakan xshell) 2. Taip cd/etc/apt/3 pada baris arahan dan sandarkan fail source.list dalam direktori ini (anda mesti mempunyai kebenaran sudo) ), maka terdapat fail source.list.bak 4. Kosongkan kandungan fail source.list (nota: ia tidak boleh dipulihkan selepas mengosongkan, jadi anda perlu melakukan langkah sebelumnya untuk membuat sandaran fail dalam. advance). Pada masa ini, gunakan sudo untuk meminta kebenaran tidak mencukupi. Tukar terus kepada pengguna root dan laksanakan arahan ini alamat sumber untuk diubah suai, dan kemudian tekan

Berikut ialah tutorial untuk menyusun dan memasang Docker pada sistem Ubuntu18.04: Nyahpasang versi lama Docker (jika sudah dipasang): sudoaptremovedockerdocker-enginedocker.iocontainerdrunc Kemas kini pakej sistem: sudoaptupdatesudoaptupgrade Pasang kebergantungan Docker: sudoaptinstallapt-transport-httpsca-certificatescurlsoftware properties-commonAdd Docker Official GPG key: curl-

MySQL 5.7 boleh dipasang dengan menggunakan repositori rasmi MySQL APT. Berikut ialah langkah-langkah untuk memasang MySQL5.7 melalui repositori APT rasmi pada sistem Ubuntu20.04: Tambah repositori MySQLAPT: wgethttps://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.debsudodpkg- imysql -apt-config_0.8.17-1_all.deb Semasa proses pemasangan, anda akan melihat antara muka konfigurasi. Pilih versi MySQLServer sebagai 5.7, dan kemudian lengkapkan konfigurasi. Kemas kini senarai pakej: sud

yum ialah pengurus pakej dalam pengedaran siri RedHat (seperti RHEL dan CentOS), manakala Ubuntu menggunakan pengurus pakej lain yang dipanggil apt (AdvancedPackageTool). Dalam sistem Ubuntu, anda boleh menggunakan arahan apt untuk mengurus pakej perisian. Berikut ialah langkah asas untuk memasang pakej dalam sistem Ubuntu: Kemas kini indeks pakej Sebelum melakukan sebarang operasi pemasangan, mula-mula laksanakan arahan berikut untuk mengemas kini indeks pakej: sudoaptupdate Memasang pakej Gunakan arahan berikut untuk memasang pakej tertentu: sudoaptinstallpackage_name akan "package_name& #822
