DEFCON Conference 17. Tertawalah pada virus Anda! Bagian 1Kemudian Anda dapat memuatnya ke IDA dan melihat bahwa semua yang ada di tabel alamat yang diimpor terlihat baik-baik saja, dan kita dapat mengikuti cross-link untuk mengatur pointer ke file yang diinginkan. Jadi kita sampai ke lokasi yang tepat dari kode enkripsi yang bergantung.

Jadi, dengan hanya beberapa perintah untuk membuang memori, kami menemukan tempat di mana Coreflood bersembunyi. Kami membongkar, mengambil, dan menyisipkan header PE bahkan tanpa memilikinya, dan mendapat tabel alamat yang sepenuhnya pulih dalam waktu kurang dari 20 detik.
Kisah selanjutnya disebut "Sayang, saya minta maaf mengganggu Anda lagi - saya tersengat oleh internet!" Kisah ini memberi tahu kita bahwa generator IP Conficker.B yang rusak hanya memindai sebagian dari Internet. Di sini kita kembali lagi ke fungsi rand. Bagian penting dari fungsi ini adalah instruksi terakhir yang saya tandai dengan panah hijau - ini mengeksekusi nilai akhir dalam EAX dengan nilai 7FFF. Jika Anda tidak terbiasa dengan prinsip-prinsip perakitan dan tidak tahu apa yang bisa dilakukan instruksi ini, maka berikut adalah demo kecil tentang ini.

Kami memindahkan nilai maksimum yang dapat dimuat EAX ke registri ini dan menjalankan instruksi terakhir. Anda dapat melihat bahwa ia "memotong" bagian atas dari nilai dan kemudian mengurangi 7FFF, yang dikonversi menjadi 32767 dalam sistem desimal. Rupanya, penulis tidak menyadari bahwa pembatasan yang menjalankan Windows ini tidak mengembalikan ukuran yang mereka inginkan ke bilangan bulat . Ini "memotong" itu sehingga nilainya tidak melebihi 7FFF, sehingga satu byte dari 7F tidak akan pernah lebih besar dari nilai 7F ini, yaitu, tidak akan pernah sama dengan 80 atau sesuatu seperti itu.
Lebih jauh di sisi kiri slide, yang saya sebut "Metode Vicious", Anda melihat kode Conficker.B. Ini menunjukkan satu panggilan ke rand yang memulai oktet pertama dari alamat IP, yang dimaksudkan untuk dipindai setelah kembali dari rand. Panggilan sistem rand berikut memulai oktet ketiga dan keempat dari alamat IP, tetapi karena hal di atas, dua oktet ini tidak akan pernah lebih besar dari 7F. Dengan demikian, sebagian besar Internet tidak akan dapat dipindai karena Conficker.B menggunakan algoritma ini.
Di sisi kanan slide adalah bagian dari kode sumber yang menunjukkan assembler. Sulit dibaca di layar, tetapi contoh ini tersedia untuk umum, dan Anda dapat membacanya secara online jika Anda tertarik.

Tautan ke alat ini terletak di bagian bawah slide berikutnya, berjudul "Simulasi metode setan". Anda juga dapat melihat bahwa alamat IP dibuat dengan PRNG tetapi tidak dipindai.

Saya ingin mengucapkan terima kasih banyak kepada Brandon Enright, yang membuat jadwal pada slide berikutnya. Grafik ini disebut "kurva Hilbert," dan sekarang saya akan memperbesar gambar sehingga Anda dapat melihat lebih baik di layar. Warna biru pada grafik menunjukkan kisaran alamat IP yang tidak tersedia untuk pemindaian oleh Conficker.B menggunakan algoritma ganas ini. Warna merah gelap menunjukkan apa yang dapat dipindai. Anda melihat bahwa sebagian besar grafik tidak merah tua, tetapi ungu, dan Anda tidak akan melihat mengapa ini terjadi sampai Anda meningkatkan persegi panjang yang sesuai.

Bahkan dalam kotak yang diperbesar ini, di setiap blok / 16, Anda melihat banyak fragmen biru yang mengubah merah tua menjadi ungu. Ini adalah bagian dari alamat yang tidak dapat dipindai oleh Conficker.B.

Ini cukup menarik karena banyak orang yakin bahwa Conficker.B menciptakan "pikiran yang hebat." Mungkin memang demikian, tetapi pikiran ini tidak menyadari keterbatasan yang ada pada Windows rand ().
Matthew Richard: kembali ke orang-orang yang, seperti yang saya katakan, tidak mengelola virus mereka dengan sangat baik, jadi dalam kejahatan dunia maya ini mirip dengan pepatah "manusia ke manusia serigala", sehingga orang-orang ini tidak dihormati di lingkaran mereka.
Mari kita bicara tentang alat hacker Neosploit, yang "membuat" semua orang. Kita dapat mengatakan bahwa moto para pengembangnya adalah "Terima kasih atas uang tunai, sekarang saatnya untuk berjalan." Neosploit adalah toolkit untuk mengatur serangan web, jadi orang-orang dari cybercrime akan membelinya dan mengkonfigurasinya terhadap orang-orang di server, meretas server, mengunduh kode, dan sebagainya.

Pembuat Neosploit melakukan investasi yang baik dengan menjual alat mereka, tetapi tidak membiarkannya diubah, dimodifikasi atau digunakan di bagian-bagiannya. Versi ketiga dari toolkit ini dirilis pada April 2008, dan sebagian besar eksploit unik ditulis dalam C, jadi ini bukan PHP atau semacam aplikasi web sampah. Pelanggan menerima distribusi biner dengan serangkaian eksploitasi CGI.
Neosploit memiliki fitur yang mencegah pelanggan membelah atau memangkas eksploitasi. Untuk melakukan ini, semua eksploit disajikan dalam format biner, dienkripsi menggunakan XOR. Pencipta membuatnya sehingga tidak ada yang bisa memotong, merekatkan dan membuat set eksploitasi mereka sendiri berdasarkan Neosploit. Ada 40-50-60 jenis serangan web, yang didasarkan pada kode yang dicuri dan disalin dimasukkan ke dalam eksploitasi mereka sendiri, sehingga orang-orang Neosploit sedikit lebih pintar dengan mengenkripsi eksploit mereka dari dalam. Pada tangkapan layar Anda melihat bahwa mereka memiliki file dengan kunci neosploit.key, jadi ini adalah perangkat lunak berlisensi penuh.

Saya tidak ragu bahwa mereka memiliki banyak pelanggan yang benar-benar baik yang menghasilkan banyak uang. Pelanggan mereka yang paling terkenal adalah Torpig. Saya pikir Anda pernah mendengar tentang rootkit Mebroot, yang dengannya mereka mengkompromikan sistem untuk membuat jaringan botnet. Tetapi pencipta Neosploit memiliki banyak pelanggan lain. Pada Mei 2008, mereka merilis perbaikan baru - versi ke 3 dari toolkit mereka. Pelanggan diminta untuk membayar di muka paket eksploitasi dengan semua pembaruan berikutnya sebesar $ 1000. Nanti saya akan membicarakan hal ini secara lebih terperinci, untuk saat ini saya akan melihat bahwa mereka benar-benar mengkhawatirkan para perompak dan berusaha melindungi produk mereka dari mereka sebanyak mungkin, jadi itu pasti sangat menyenangkan.

Bahkan media menulis bahwa eksploitasi ini ada di mana-mana. Jadi tentu saja, kami akan mencoba membongkar kode dan menunjukkan cara kerja Neosploit.
Hal lucu pertama yang mereka lakukan, setelah mereka secara intensif mempromosikan serangkaian eksploitasi ini dari bulan April hingga Juli, adalah dukungan mereka dari 20 Juli 2008. Penjelasan yang mereka pasang di situs web mereka mengatakan sebagai berikut: “Sayangnya Dukungan produk lebih lanjut tidak layak. Kami mohon maaf atas ketidaknyamanan ini, tetapi bisnis adalah bisnis, dan waktu yang dihabiskan untuk proyek tidak membenarkan dirinya sendiri. Dalam beberapa bulan terakhir, kami telah mencoba yang terakhir untuk memenuhi persyaratan pelanggan, tetapi suatu hari nanti dukungan seharusnya berhenti. Kami telah bersama Anda selama satu setengah tahun dan kami berharap ini bukan waktu terburuk untuk bisnis Anda. Sekarang kami tidak akan berada di dekat Anda, tetapi, bagaimanapun, kami berharap bisnis Anda berkembang untuk waktu yang sangat lama. " Secara umum, kami menerima uang Anda, Anda membayar untuk berlangganan, jadi sehatlah!
Namun, mereka hanya bercanda dan pada Agustus 2008 kembali dan merilis versi 3.1 yang benar-benar baru, yang mereka berikan kepada pelanggan utama mereka, yang menunjukkan bahwa semua pelanggan lain akan menerima pembaruan setelah mereka membayarnya. Pembaruan ini mencakup beberapa eksploitasi baru untuk Adobe PDF, Shockwave Flash, dan Quicktime untuk Firefox.
Kemudian mereka kembali memutuskan untuk serius dan mengumumkan bahwa mereka benar-benar menghentikan rilis pembaruan, sehingga semua orang yang membuat langganan prabayar mengacau.
Jadi, mari kita beralih ke Neosploit, kit keren ini untuk mengatur serangan web. Karena pengembangnya memerangi bajak laut dan mencuri eksploitasi yang dapat disalin dan ditempelkan ke dalam kit orang lain, mereka mengambil setiap exploit dan meletakkannya dalam file CGI, menyandikan sedemikian rupa sehingga sangat sulit untuk mengeluarkannya dari sana. C mengeksploitasi binari sedikit berbeda dari skrip PHP.

Di blog Neosploit, frasa Dancho Danchev memposting bahwa "siapa pun dapat membuat exploit baru," tetapi itu cukup sulit. Saya memutuskan untuk mencari tahu betapa sulitnya dan mulai membongkar salah satu eksploitasi.
Setiap exploit disimpan dalam bentuk terenkripsi menggunakan kunci XOR 3-byte. Untuk setiap permintaan yang masuk, eksploit didekripsi dan diberikan kepada pengguna untuk bekerja, dan siklus seperti itu terus berulang.

Jadi, bahkan jika Anda bisa melalui memori dan menghapus dump memori masih cukup sulit, dan mendapatkan semua exploit, semua sama, buffer ini dihapus setiap saat.
Untungnya, jika Anda dapat menyalin dan menempelkan exploit ini ke dalam program yang Anda butuhkan, Anda dapat menemukan jawabannya. Untuk ini, alat dekripsi yang sangat kuat digunakan - IDA scripting. Dengan itu, Anda dapat mengomentari atau membuang area memori tertentu, memperbarui eksploit, dapat berguna untuk bekerja dengan malware yang menggunakan string yang rumit oleh xor, base64, dll. Saya menulis sebuah skrip IDE yang dengannya saya mencoba membongkar dump memori yang diambil dari exploit terenkripsi.

Ia melewati semua objek terenkripsi, mencari semua panggilan ke fungsi dekripsi, menangkap objek terenkripsi, mendekripsi mereka menggunakan XOR dan kemudian membuang dump. Ini satu cara, tapi saya pikir Anda bisa menulis skrip Anda sendiri, aplikasi yang melakukan hal yang sama. Jika Anda tahu cara menambahkan exploit baru ke Neosploit, Anda dapat melakukan sesuatu ke arah ini dan tentu saja, segera setelah Anda menghapus dump, Anda akan mengenali semua plaintext, Anda dapat “merobeknya” dari instrumentasi dan menjualnya kembali. Orang-orang baru yang mengembangkan eksploitasi baru saja menyerah karena seseorang menghasilkan uang tanpa peduli pada pelanggan mereka.
Jika ada yang pernah mendengar filsuf hip-hop besar, Biggie Smalls dari Notorius BIG, maka ia tahu lagunya yang berjudul Sepuluh Perintah, "Sepuluh Perintah dari Crack," yang berisi kebijaksanaan luar biasa. Jika Anda seorang pengedar narkoba, maka ikuti perintah 4: "Jangan pernah duduk di atas obat bius Anda sendiri yang Anda dorong." Mungkin orang yang saya panggil Peeper dan yang mendistribusikan kode jahatnya sendiri tidak pernah mendengar lagu ini karena dia menguji produknya sendiri.
Serangannya adalah sebagai berikut. Dia mengirim email, menyamar sebagai berbagai agen pemerintah dan memanggil orang-orang dengan nama: "Yang terhormat ini, seseorang mengajukan keluhan terhadap perusahaan Anda dengan Komisi Perdagangan Federal, jadi klik di sini untuk mengunduh dokumen yang menjelaskan esensi secara detail" .

Kemudian pengguna mengikuti tautan dan mencoba mengunduh dokumen ini, dan itu benar-benar dokumen Word dalam format .doc. Namun, ada satu fitur yang sangat rumit. Anda memiliki kesempatan untuk hanya menarik dan melepaskan file yang dapat dieksekusi dari dokumen Word dan kemudian mengganti namanya, tetapi ketika Anda mencoba untuk mengunduh file tersebut, pesan "Microsoft Word mendeteksi masalah dan dokumen tidak dapat diunduh. Silakan klik dua kali pada ikon dokumen untuk melanjutkan. " Ide yang luar biasa!

Secara alami, orang mengklik, mereka mengklik 6 kali untuk menerima pesan yang terinfeksi ini, jadi orang ini memiliki banyak korban. Saya menyukai pesan ini: "Mereka mencoba menipu saya, bla bla bla."
Hal berikutnya yang kami temukan saat melacak orang ini adalah direktori terbuka Drop Directory, tempat ia membuang informasi yang ia terima.

Mungkin dia tidak memiliki alat sendiri untuk mengelolanya, atau dia pikir direktori terbuka adalah hal yang baik, tetapi direktori terbuka itu buruk jika Anda menyimpan banyak informasi yang diterima dari orang yang berbeda. Server apa pun yang akan dikonfigurasikan untuk situs "pendaratan" -nya memiliki direktori terbuka, dan Anda bisa masuk ke sana dan melihat daftar semua korbannya dan masing-masing secara individual.
Di satu sisi, dia adalah pengembang yang baik karena dia menulis kode kualitas. Namun kekurangannya adalah ketika menyandikan kodenya ke server langsung, ia menggunakan alamat IP aslinya, dan Anda tidak akan bertahan lama menggunakan hal-hal seperti itu.

Jadi sebenarnya, ia memiliki modem DSL standar yang berhubungan dengan Ukraina, ia menguji semua kode dan malware-nya, yang memiliki fungsi bagus yang disebut "ikuti saya" atau "ikuti dia". Orang ini sibuk mencuri informasi perbankan, tetapi kadang-kadang dia hanya ingin menonton para korbannya untuk melihat apa yang mereka lakukan, jadi kami memanggilnya Peeper, atau "Pengamat." Dia tidak puas dengan fungsionalitas sederhana dari perangkat lunaknya, dia mulai memantau dirinya sendiri. Terlihat agak aneh, seolah-olah Anda membuka VNC windows akses jarak jauh di komputer Anda sendiri dan memutarnya, mendapatkan gambar yang lebih kecil dan lebih kecil. Bahkan, dia melakukan ini berkali-kali, pada banyak server "pendaratan", memang, itu sangat, sangat aneh. Jadi melihat melalui server "pendaratan" ini, orang dapat mengatakan: "Oh, lihat, ini adalah gambar di mana ia mengamati dirinya sendiri, mengamati dirinya sendiri, yang mengamati dirinya sendiri."

"Cahaya saya, cermin, katakan, siapa di dunia yang paling manis"?
Yang terpenting, saya menyukai apa yang dia lakukan untuk dirinya sendiri. Dia menggunakan fitur Follow Me ini dalam proses pengembangan kode. Bahkan, ia menulis kode, mengamati dirinya sendiri, mengirim semua ini kembali ke server perintah dan kontrol. Karena itu, ia memungkinkan para petugas untuk menerobos pintu belakang, membaringkan wajahnya di lantai dan menyita komputernya. Singkatnya, tidak ada yang membantu menyingkirkan Anda seperti gambar pohon sumber yang dilampirkan ke alamat IP Anda.

Bagian terakhir dari malware yang akan kita lihat pasti akan menarik minat orang yang akrab dengan Internet Explorer 7. Tapi jangan khawatir, Microsoft mengatakan bahwa semuanya terkendali, percayalah!

Jadi, Microsoft memiliki masalah besar dengan Internet Explorer 6, karena sangat mudah untuk mencuri kata sandi yang disimpan dari browser ini. Biasanya Anda pergi ke situs, mereka bertanya apakah Anda ingin menyimpan kata sandi, formulir khusus dipanggil, Anda menjawab "ya", dan disimpan dalam registri. Masalah dengan IE 6 adalah bahwa jika Anda masuk sebagai pengguna, Anda hanya perlu membuat satu panggilan sistem CryptUnprotectData () untuk mendekripsi kata sandi ini yang benar-benar tidak memiliki perlindungan.
Karenanya, malware yang berjalan dengan hak pengguna membaca kata sandi ini secara bebas dan mengirimkannya ke penyerang. Oleh karena itu, di IE 7 mereka memasang "tambalan" yang sangat baik - kata sandi dienkripsi dengan kunci 128-bit. Benar-benar bukan solusi yang dapat dipecahkan!
Jika Anda melihat lebih dalam, Anda dapat melihat hash yang tersedia di situs, saya akan menjelaskannya nanti, di mana ada file biner yang berisi nama pengguna dan kata sandi. Saya ingin mengutip filsuf besar lain, John Travolta, dari film Swordfish. Bagian favorit saya adalah ketika dia duduk di sana dan menjelaskan: "Kode ini sangat bagus sehingga bahkan saya tidak dapat memecahkannya." Saya pikir dia ada di pikiran enkripsi 512-bit, dan dia, enkripsi terbaik di dunia, mengapa dia dipekerjakan, mengatakan bahwa bahkan dia tidak bisa melakukannya.
Jadi inilah yang dilakukan Microsoft. Mereka mengenkripsi kata sandi, di mana mereka akan menghasilkan kunci 128-bit berdasarkan hash MD5 situs tempat mereka menyimpan kata sandi ini. Ini tampaknya cukup masuk akal, jadi jika Anda mengunjungi
www.bank.com/login.sp , mereka akan mengambil baris ini, membuat semua huruf menjadi huruf kecil, kemudian menyandikannya menjadi karakter besar dan menggunakan algoritma MD5, mengubah baris ini menjadi kunci yang akan digunakan untuk mengenkripsi kata sandi dalam registri untuk nama pengguna.
Kemudian, ketika Anda mengunjungi situs ini di mana ada kata sandi yang disimpan, mereka melakukan yang sebaliknya: IE menormalkan URL, mentranskode string dan melihat dalam registri untuk melihat apakah ada nilai yang disimpan untuk Anda. Secara detail, ini terjadi seperti ini:
- baca hash register untuk setiap URL di index.dat;
- URL dikonversi menjadi huruf kecil;
- Parameter GET dikurangi;
- URL dikonversi menjadi karakter besar;
- jika hash nilai URL sama dengan nilai apa pun dalam register, data didekripsi menggunakan URL ini.
Ini tampaknya cukup masuk akal, tetapi jika Anda memikirkannya, ada masalah kecil. Bahkan, ada terlalu sedikit entropi, dan peretas dapat dengan mudah mengatasinya. Ini tidak jauh lebih rumit daripada enkripsi kata sandi di IE 6.
Meretasnya cukup sederhana. Untuk menyimpan kata sandi, pengguna harus mengunjungi situs, yang kemudian dapat dengan mudah ditemukan di index.dat atau di bagian kunci registri "TypedURLS". Jika kami hanya mempertimbangkan Amerika Serikat, maka ada sekitar 15.000 situs bank dan serikat kredit, dan Anda dapat dengan mudah menemukannya. Anda tahu situs tempat Anda ingin menemukan kata sandi, dan setiap situs tersebut memiliki halaman masuk, jadi mudah untuk mengumpulkan seluruh kumpulan kunci. Seperti yang Anda lihat, perlindungan di sini jelas tidak cukup.
Tentu saja, jika Anda seorang penjahat, Anda mungkin tahu banyak situs yang membutuhkan kata sandi: Facebook, Myspace atau Twitter atau yang lain dengan halaman login, jadi Anda bisa mencari tahu situs-situs itu. Anda dapat menggunakan layanan Alexa, yang mengelola daftar situs paling populer, mengumpulkan statistik tentang lalu lintas mereka. Kunci-kunci ini sangat mudah untuk didekripsi, Anda dapat melakukan sesuatu seperti "rainbow table" Rainbow Table berdasarkan pada sumber-sumber umum ini dan kemudian Anda akan memiliki semua kunci untuk mendekripsi kata sandi.
, IE 7 : , .
? , . . , Mozilla Firefox, , . , , , «Remember My password». . Firefox IE 7 , , , , .
, , , .
Laqma. , , . - , , , command and control.

, . , , PHP -, PHP , – .
.
: , , , . , . Laqma, . , , Laqma , . , SSDT, IDA - .
, Volatility, . , Laqma, SSDT , , . SSDT, , SSDT, SSDT.

TOS, win32k, , . SSDT , , TOS win32k.
, , , , drv, .sys, . , . , SSDT . .
Proses ini sedikit otomatis menggunakan plugin SSDT. Anda melihat bagaimana BSOD melintas di layar, itu bekerja dengan program baris perintah IDA. Sebagai hasil dari pemrosesan otomatis, IDB dibuat, ini sedikit lebih otomasi, sebagai akibatnya fungsi IDB yang sesuai dengan fungsi SSDT "terhubung" ditandai.Jadi, dengan satu langkah kecil, kami mempelajari fungsi SSDT apa yang dikaitkan dengan dump yang memiliki modul IDB yang dibuat, dan kami bisa menamai mereka untuk mengetahui secara persis ke mana harus mencari di IDB ketika saya memulai reverse engineering.Saya harap Anda bersenang-senang!Terima kasih telah tinggal bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikannya kepada teman-teman Anda,
diskon 30% untuk pengguna Habr pada analog unik dari server entry-level yang kami temukan untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana membagi server? (opsi tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).
VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps hingga Desember secara gratis ketika membayar untuk jangka waktu enam bulan, Anda dapat memesan di
sini .
Dell R730xd 2 kali lebih murah? Hanya kami yang memiliki
2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV dari $ 249 di Belanda dan Amerika Serikat! Baca tentang
Cara Membangun Infrastruktur Bldg. kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?