Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

PHPz
PHPzke hadapan
2023-05-27 21:04:301367semak imbas

Untuk beberapa lama, penyelidik ESET telah menjejaki aktiviti Winnti, kumpulan yang telah aktif sejak 2012 dan telah menyasarkan rantaian bekalan industri permainan video dan perisian. Pintu belakang yang tidak didaftarkan sebelum ini telah ditemui baru-baru ini yang menyasarkan sistem Microsoft SQL (MSSQL). Pintu belakang ini mempunyai banyak persamaan dengan pintu belakang PortReuse, alat lain yang digunakan oleh Kumpulan Winnti dan pertama kali didokumentasikan pada Oktober 2019.

Ahli kumpulan Winnti mengeluarkan sampel pintu belakang baharu bernama Skip-2.0, yang dikesan tahun ini. Pintu belakang ini menyasarkan pelayan MSSQL 11 dan 12 dan membenarkan penyerang menyambung ke mana-mana akaun MSSQL menggunakan kata laluan ajaib sambil menyembunyikan sambungan ini secara automatik dalam log. Penyerang boleh menggunakan pintu belakang untuk memasuki pangkalan data, menyalin, mengubah suai atau memadam kandungannya, dengan itu memanipulasi mata wang dalam permainan untuk keuntungan kewangan. Mengikut pengetahuan kami, Skip-2.0 ialah pintu belakang pelayan MSSQL pertama yang direkodkan secara terbuka.

Artikel ini akan menumpukan pada butiran teknikal dan fungsi pintu belakang pelayan mssql, serta persamaan teknikal antara skip.2-0 dan senjata winnti yang diketahui (terutama pintu belakang portreuse dan pad bayangan).

pelancar vmprotected

Kami menemui langkau-2.0 semasa mencari pelancar vmprotected, yang muatannya biasanya portreuse atau pad bayangan.

Muat Terbenam

Seperti muatan portreuse dan pad bayangan yang disulitkan, skip-2.0 dibenamkan ke dalam pelancar vmprotected seperti ditunjukkan dalam Rajah 1:

Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

Penyulitan

Sama seperti pelancar lain yang menggunakan VMProtect, muatan juga disulitkan. Kaedah penyulitan ini menggunakan algoritma RC5, dan kuncinya terdiri daripada volumeID dan rentetan "f@ukd!RCTO R$".

Kegigihan

Seperti portreuse dan shadowpad, program permulaan mungkin berterusan dengan mengeksploitasi rampasan dll dengan memasangnya dalam c:windowssystem32tsvipsrv.dll. Ini menyebabkan perkhidmatan Windows SessionEnv standard memuatkan DLL apabila sistem dimulakan.

Pembungkus

membenamkan penyahsulitan muatan, yang sebenarnya merupakan pembungkus tersuai daripada kumpulan winnti. Pembungkus ini adalah kod yang sama yang kami dokumentasikan dalam kertas putih. Alat ini digunakan untuk membungkus pintu belakang PortReuse dan membenamkan muatan ke dalam permainan video yang terjejas.

Konfigurasi

Konfigurasi pembungkusan program mengandungi kunci yang diperlukan untuk menyahsulit fail binari, serta nama, saiz dan jenis pelaksanaan (exe atau dll) bagi fail asal. Konfigurasi muatan ditunjukkan dalam Jadual 1.

Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

Konfigurasi pembungkus Seperti yang dapat dilihat, muatan dipanggil pemuat dalaman. Pemuat dalaman ialah nama penyuntik yang merupakan sebahagian daripada senjata kumpulan winnti dan digunakan untuk menyuntik pintu belakang portreuse ke dalam proses mendengar pada port tertentu.

Pemuat Dalaman

Ini ialah variasi pemuat dalaman yang bukannya mencari proses mendengar pada port tertentu seperti apabila pintu belakang portreuse disuntik, ia mencari proses bernama sqlserv. exe , yang merupakan nama proses konvensional pelayan mssql. Jika ditemui, pemuat dalaman menyuntik muatan ke dalam proses ini. Muatan ini dibungkus dengan pembungkus tersuai yang konfigurasinya disenaraikan dalam Jadual 2.

Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

Nama fail asal muatan yang disuntik ini ialah langkau-2.0.dll.

skip-2.0

Selepas disuntik dan dimulakan oleh pemuat dalaman, skip-2.0 terlebih dahulu menyemak sama ada ia dilaksanakan dalam proses sqlserv.exe, dan jika ya, dapatkan semula pemegang ke sqllang .dll , pemegang dimuatkan oleh sqlserv.exe. Kemudian teruskan mencari dan mengaitkan pelbagai fungsi daripada dll itu. Rajah 2 menerangkan proses berjalan skip-2.0.

Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

Hooking sqllang.dll

Proses hooking yang digunakan oleh skip-2.0 sangat serupa dengan netagent, iaitu modul portreuse yang bertanggungjawab untuk memasang cangkuk rangkaian. Pustaka cangkuk ini dibina pada pembongkar distorm sumber terbuka, yang juga digunakan oleh pelbagai rangka kerja pengait sumber terbuka. Pustaka pembongkaran diperlukan untuk mengira dengan betul saiz arahan yang akan disambungkan. Proses cangkuk yang hampir sama digunakan oleh NetAgent dan Skip-2.0, seperti yang ditunjukkan dalam rajah di bawah.

Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

Rajah 3 Perbandingan keluaran Sinar-Hex antara prosedur pengait NetAgent (kiri) dan langkau-2.0 (kanan)

Satu perbezaan ketara ialah langkau- The fungsi cangkuk dalam 2.0 mengambil alamat cangkuk yang hendak dipasang sebagai parameter, tetapi untuk netagen, alamat cangkuk yang hendak dipasang adalah berkod keras. Ini kerana skip-2.0 mesti mengaitkan berbilang fungsi dalam qllang.dll untuk berjalan dengan betul, manakala netagent hanya menyasarkan satu fungsi.

Untuk mencari setiap fungsi sqllang.dll cangkuk, langkau-2.0 mula-mula mendapatkan semula saiz dll yang dimuatkan ke dalam ingatan (iaitu saiz mayanya) dengan menghuraikan pengepala pe. Seterusnya, tatasusunan bait yang perlu dipadankan dalam sqllang.dll perlu dimulakan, lihat Rajah 4. Setelah alamat padanan pertama dengan tatasusunan bait ditemui, cangkuk dipasang menggunakan proses yang ditunjukkan dalam Rajah 3.

Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

Kemudian, selepas cangkuk berjaya dipasang, ia akan direkodkan dalam cleartext Fail terletak dalam laluan berkod keras c: windowstemptsu 2ce1.tmp, seperti yang ditunjukkan dalam Rajah 5.

Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

Jika fungsi sasaran tidak ditemui, pemasang cangkuk akan mencari fungsi sandaran dengan set corak bait yang berbeza.

Dengan memadankan jujukan bait untuk mencari alamat fungsi sasaran dan bukannya menggunakan offset statik, ditambah dengan penggunaan jujukan bait sandaran, langkau-2.0 boleh menyesuaikan diri dengan kemas kini mssql dengan lebih fleksibel dan boleh Kemas kini untuk berbilang sqllang.dll.

Kawalan Kata Laluan

Fungsi sasaran langkau-2.0 adalah berkaitan dengan pengesahan dan pengelogan peristiwa. Fungsi sasaran termasuk:

CPwdPolicyManager::ValidatePwdForLogin
CSECAuthenticate::AuthenticateLoginIdentity
ReportLoginSuccess
IssueLoginSuccessReport
FExecuteLogonTriggers
XeSqlPkg::sql_statement_completed::Publish
XeSqlPkg::sql_batch_completed::Publish
SecAuditPkg::audit_event::Publish
XeSqlPkg::login::Publish
XeSqlPkg::ual_instrument_called::Publish

Yang paling menarik ialah yang pertama (cpwdpolicymanager::validatepwdforlogin), yang bertanggungjawab untuk mengesahkan kata laluan yang disediakan untuk pengguna tertentu.

Kail fungsi ini menyemak sama ada kata laluan yang dibekalkan pengguna sepadan dengan kata laluan ajaib jika ya, fungsi asal tidak akan dipanggil dan cangkuk akan mengembalikan 0, membenarkan sambungan. Seterusnya, bendera global disediakan untuk disemak oleh fungsi cangkuk lain yang bertanggungjawab untuk pengelogan acara. Proses penyahkompilasi yang sepadan ditunjukkan dalam Rajah 6. Dengan set bendera global ini, fungsi pengelogan cangkuk akan kembali secara senyap tanpa memanggil fungsi asalnya yang sepadan, jadi operasi tidak akan dilog.

Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti

Kait reportloginaccess dan issueloginsuccessreport tidak akan memanggil fungsi asal jika anda log masuk dengan kata laluan ajaib. Tingkah laku yang sama berlaku untuk feexecutelogontriggers. Ciri pengelogan lain, seperti xesqlpkg::sql_completed::publish atau xesqlpkg::sql_batch_completed::publish, juga akan dilumpuhkan dalam kes di mana pengguna log masuk dengan kata laluan ajaib. Beberapa acara audit juga dilumpuhkan, termasuk secauditpkg::audit_event::publish, xesqlpkg::login::publish dan xesqlpkg::uau instrument_called::publish.

Bukan sahaja siri cangkuk ini membolehkan penyerang mendapat kawalan berterusan dalam pelayan mssql mangsa melalui kata laluan khas, ia juga melumpuhkan berbilang log apabila menggunakan kata laluan itu, menjadikannya mustahil untuk mengesan penyerang.

Penyelidik menguji Skip-2.0 pada berbilang versi MSSQL Server dan mendapati bahawa mereka berjaya log masuk menggunakan kata laluan untuk MSSQL Server 11 dan 12. Untuk menyemak sama ada langkau-2.0 menyasarkan versi sqllang.dll tertentu, peraturan yara telah dibuat yang boleh didapati dalam repositori github.

Sambungan dengan Winnti

skip-2.0 mempunyai banyak persamaan dengan alatan lain daripada winnti. Pelancar vmprotected, pembungkus tersuai, pemuat dalaman dan rangka kerja cangkuk adalah sebahagian daripada set alat winnti.

Atas ialah kandungan terperinci Contoh analisis pintu belakang MSSQL daripada kumpulan penggodam Winnti. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam