This blog talks about Computer, Security, Information technology, SEO, Video, etc. Now you can find all free things, Information Technology and Tips and Trick in this blog. JOIN ME KANG ASU

Breaking

Friday, 5 March 2021

ScareCrow - Kerangka Kerja Pembuatan Muatan yang Dirancang Di Sekitar EDR Bypass

 Kang Asu

ScareCrow - Kerangka Kerja Pembuatan Muatan yang Dirancang Di Sekitar EDR Bypass



Jika Anda ingin mempelajari lebih lanjut tentang teknik yang digunakan dalam kerangka ini, lihat Bagian 1 dan Bagian 2




Deskripsi

ScareCrow adalah kerangka kerja pembuatan muatan untuk menghasilkan pemuat untuk penggunaan pemuatan samping (bukan injeksi) ke dalam proses Windows yang sah (melewati kontrol Daftar Putih Aplikasi ). Setelah DLL loader dimuat ke dalam memori, menggunakan teknik untuk membersihkan pengait EDR dari sistem DLL yang berjalan di memori proses. Ini berfungsi karena kita tahu kait EDR ditempatkan saat proses muncul. ScareCrow dapat menargetkan DLL ini dan memanipulasinya dalam memori dengan menggunakan fungsi API VirtualProtect, yang mengubah bagian izin memori proses ke nilai yang berbeda, khususnya dari Execute – Read menjadi Read-Write-Execute.

Saat dijalankan, ScareCrow akan menyalin byte dari sistem DLL yang disimpan pada disk C:\Windows\System32\DLL ini disimpan di disk "bersih" dari kait EDR karena digunakan oleh sistem untuk memuat salinan yang tidak diubah ke dalam proses baru saat dimunculkan. Karena EDR hanya mengaitkan proses ini dalam memori, proses tersebut tetap tidak berubah. ScareCrow tidak menyalin seluruh file DLL, melainkan hanya berfokus pada bagian .text dari DLL. Bagian DLL ini berisi rakitan yang dapat dieksekusi, dan dengan melakukan ini ScareCrow membantu mengurangi kemungkinan deteksi karena membaca ulang seluruh file dapat menyebabkan EDR mendeteksi adanya modifikasike sumber daya sistem. Data tersebut kemudian disalin ke wilayah kanan memori dengan menggunakan offset masing-masing fungsi. Setiap fungsi memiliki offset yang menunjukkan jumlah byte yang tepat dari alamat dasar tempat mereka res ide, memberikan lokasi fungsi di stack. Untuk melakukan ini, ScareCrow mengubah izin wilayah .text memori menggunakan VirtualProtect. Meskipun ini adalah DLL sistem, karena telah dimuat ke dalam proses kami (yang kami kontrol), kami dapat mengubah izin memori tanpa memerlukan hak istimewa yang lebih tinggi.

Setelah kait ini dilepas, ScareCrow kemudian menggunakan Panggilan Sistem kustom untuk memuat dan menjalankan shellcode di memori. ScareCrow melakukan ini bahkan setelah kait EDR dilepas untuk membantu menghindari pendeteksian oleh alat pengumpulan telemetri berbasis hooked non-userland seperti Event Tracing untuk Windows (ETW) atau mekanisme pencatatan kejadian lainnya. Panggilan sistem kustom ini juga digunakan untuk melakukan panggilan VirtualProtect untuk melepaskan hook yang ditempatkan oleh EDR, yang dijelaskan di atas, untuk menghindari terdeteksi kontrol anti-perusakan EDR. Ini dilakukan dengan memanggil versi kustom dari syscall VirtualProtect, NtProtectVirtualMemory. ScareCrow menggunakan Golang untuk menghasilkan loader ini dan kemudian menyusun untuk fungsi syscall kustom ini.

ScareCrow memuat kode shell ke dalam memori dengan mendekripsi kode shell terlebih dahulu, yang dienkripsi secara default menggunakan enkripsi AES dengan kunci vektor dekripsi dan inisialisasi. Setelah didekripsi dan dimuat, kode shell kemudian dijalankan. Bergantung pada opsi pemuat yang ditentukan ScareCrow akan mengatur fungsi ekspor yang berbeda untuk DLL. DLL yang dimuat juga tidak berisi fungsi utama DLL standar yang biasanya perlu dioperasikan oleh semua DLL. DLL akan tetap dijalankan tanpa masalah karena proses yang kita muat akan mencari fungsi ekspor tersebut dan tidak khawatir tentang DLLMain yang ada di sana.


Sampel Biner



Setelah


  

Selama proses pembuatan loader, ScareCrow menggunakan perpustakaan untuk membaur dengan latar belakang setelah suar menelepon ke rumah. Perpustakaan ini melakukan dua hal:

  • Kode menandatangani Loader: File yang ditandatangani dengan sertifikat penandatanganan kode sering kali tidak terlalu diawasi, sehingga lebih mudah untuk dieksekusi tanpa ditantang, karena file yang ditandatangani dengan nama tepercaya seringkali kurang mencurigakan daripada yang lain. Sebagian besar produk antimalware tidak memiliki waktu untuk memvalidasi dan memverifikasi sertifikat ini (sekarang beberapa melakukannya tetapi biasanya nama vendor yang umum disertakan dalam daftar putih) ScareCrow membuat sertifikat ini dengan menggunakan versi paket go alat limelighteruntuk membuat file pfx12. Paket ini mengambil nama domain yang dimasukkan, ditentukan oleh pengguna, untuk membuat sertifikat penandatanganan kode untuk domain itu. Jika perlu, Anda juga dapat menggunakan sertifikat penandatanganan kode Anda sendiri jika ada, menggunakan opsi baris perintah yang valid.
  • Spoof atribut loader: Ini dilakukan dengan menggunakan file syso yang merupakan bentuk file sumber daya yang disematkan yang ketika dikompilasi bersama dengan loader kami, akan mengubah bagian atribut dari kode yang kami kompilasi. Sebelum membuat file syso, ScareCrow akan membuat nama file acak (berdasarkan jenis pemuat) untuk digunakan. Setelah dipilih, nama file ini akan dipetakan ke atribut terkait untuk nama file tersebut, memastikan bahwa nilai yang benar diberikan.


Contoh Atribut File


 

Dengan file-file ini dan kode go, ScareCrow akan mengkompilasinya menjadi DLL menggunakan opsi c-shared library. Setelah DLL dikompilasi, DLL dikaburkan menjadi string base64 rusak yang akan disematkan ke dalam file. Hal ini memungkinkan file ditarik, diakses, dan dijalankan secara terprogram dari jarak jauh.


Install

Langkah pertama seperti biasa adalah mengkloning repo. Sebelum Anda mengkompilasi ScareCrow Anda harus menginstal dependensi.

Untuk menginstalnya, jalankan perintah berikut:

go get github.com/fatih/color
go get github.com/yeka/zip
go get github.com/josephspurrier/goversioninfo

Pastikan bahwa yang berikut ini diinstal pada OS Anda:

openssl
osslsigncode
mingw-w64

Lalu bangunlah

go build ScareCrow.go


Tolong


./ScareCrow -h

_________ _________
/ _____/ ____ _____ _______ ____ \_ ___ \_______ ______ _ __
\_____ \_/ ___\\__ \\_ __ \_/ __ \/ \ \/\_ __ \/ _ \ \/ \/ /
/ \ \___ / __ \| | \/\ ___/\ \____| | \( <_> ) /
/_______ /\___ >____ /__| \___ >\______ /|__| \____/ \/\_/
\/ \/ \/ \/ \/
(@Tyl0us)
“Fear, you must understand is more than a mere obstacle.
Fear is a TEACHER. the first one you ever had.”

Usage of ./ScareCrow:
-I string
Path to the raw 64-bit shellcode.
-Loader string
Sets the type of process that will sideload the malicious payload:
[*] binary - Generates a binary based payload. (This type does not benfit from any sideloading)
[*] control - Loads a hidden control applet - the process name would be rundll32.
[*] dll - Generates just a DLL file. Can executed with commands such as rundll32 or regsvr32 with DllRegisterServer, DllGetClassObject as export functions.
[*] excel - Loads into a hidden Excel process.
[*] wscript - Loads into WScript process.
(default "dll")
-O string
Name of output file (e.g. loader.js or loader.hta). If Loader is set to dll or binary this option is not required.
-console
Only for Binary Payloads - Generates verbose console information when the payload is executed. This will disable the hidden window feature.
-delivery string
Generates a one-liner command to download and execute the payload remotely:
[*] bits - Generates a Bitsadmin one liner command to download, execute and remove the loader.
[*] hta - Generates a blank hta file co ntaining the loader along with a MSHTA command to execute the loader remotely in the background.
[*] macro - Generates an Office macro that will download and execute the loader remotely.
-domain string
The domain name to use for creating a fake code signing cert. (e.g. Acme.com)
-password string
The password for code signing cert. Required when -valid is used.
-sandbox string
Enables sandbox evasion using IsDomainedJoined calls.
-url string
URL associated with the Delivery option to retrieve the payload. (e.g. https://acme.com/)
-valid string
The path to a valid code signing cert. Used instead of -domain if a valid code signing cert is desired.


Pemuat

Loader menentukan jenis teknik untuk memuat kode shell ke dalam sistem target. Jika tidak ada opsi Loader yang dipilih, ScareCrow hanya akan mengkompilasi file DLL standar, yang dapat digunakan oleh rundll32, regsvr32, atau teknik lain yang menggunakan DLL. ScareCrow menggunakan tiga jenis pemuat berbeda untuk memuat kode shell ke dalam memori:

  • Control Panel - Ini menghasilkan applet panel kontrol (Program dan Fitur IE, atau AutoPlay). Dengan mengompilasi pemuat agar memiliki fungsi ekspor DLL tertentu yang dikombinasikan dengan ekstensi file .cpl, itu akan menelurkan proses panel kontrol (rundll32.exe) dan pemuat akan dimuat ke dalam memori.
  • WScript - Memunculkan proses WScript yang menggunakan file manifes dan teknik Com bebas registrasi ke loader DLL yang memuat berdampingan (tidak disuntikkan) ke dalam prosesnya sendiri. Ini menghindari pendaftaran DLL dalam memori karena file manifes memberi tahu proses mana, di mana, dan versi DLL apa yang akan dimuat.
  • Excel - Menghasilkan file XLL yang merupakan file DLL berbasis Excel yang ketika dimuat ke Excel akan mengeksekusi loader. Proses Excel tersembunyi akan muncul, memaksa file XLL dimuat.

ScareCrow juga dapat menghasilkan muatan berbasis biner jika diperlukan dengan menggunakan opsi -loader baris perintah . Biner ini tidak mendapatkan keuntungan dari teknik pemuatan berdampingan tetapi berfungsi sebagai teknik tambahan untuk mengeksekusi kode shell tergantung pada situasinya.


Menghibur

ScareCrow menggunakan teknik untuk membuat proses terlebih dahulu dan kemudian memindahkannya ke latar belakang. Ini melakukan dua hal, pertama membantu menjaga proses tetap tersembunyi dan kedua, menghindari terdeteksi oleh produk EDR apa pun. Memunculkan proses secara langsung di latar belakang bisa sangat mencurigakan dan merupakan indikator kejahatan. ScareCrow melakukan ini dengan memanggil fungsi Windows 'GetConsoleWindow' dan 'ShowWindow' setelah proses dibuat dan kait EDR dimuat, dan kemudian mengubah atribut jendela menjadi tersembunyi. ScareCrow menggunakan API ini daripada menggunakan API tradisional -ldflags -H=windowsguikarena ini sangat ditandai dan diklasifikasikan di sebagian besar produk keamanan sebagai Indikator Kompromi.

Jika -consoleopsi baris perintah dipilih, ScareCrow tidak akan menyembunyikan proses di latar belakang. Sebaliknya, ScareCrow akan menambahkan beberapa pesan debug yang menampilkan apa yang dilakukan loader.


Pengiriman

Argumen baris perintah pengiriman memungkinkan Anda menghasilkan perintah atau string kode (dalam kasus makro) untuk menarik file dari jarak jauh dari sumber jarak jauh ke host korban. Metode pengiriman ini meliputi:

  • Bits - Ini akan menghasilkan perintah bitsadmin yang saat mengunduh loader dari jarak jauh, jalankan dan hapus.
  • HTA - Ini akan menghasilkan file HTA kosong yang berisi loader. Opsi ini juga akan memberikan baris perintah yang akan menjalankan HTA dari jarak jauh.
  • Makro - Ini akan menghasilkan makro Office yang dapat dimasukkan ke dalam dokumen makro Excel atau Word. Saat makro ini dijalankan, pemuat akan diunduh dari sumber jarak jauh dan dijalankan, lalu dihapus.


Melakukan

  • Saat ini hanya mendukung payload x64
  • Beberapa versi Windows OS yang lebih lama (yaitu Windows 7 atau Windows 8.1), mengalami masalah saat memuat ulang DLL sistem, akibatnya pemeriksaan verison sudah terpasang untuk memastikan stabilitas


Kredit

  • Terima kasih khusus kepada seniman, Luciano Buonamici untuk karya seninya
  • Terima kasih khusus kepada josephspurrier untuk nya repo




Regards

Kang Asu

No comments:

Post a Comment

# Silahkan berkomentar, bertanya dan kritik dengan sopan
# Disini anda boleh menyisipkan Link di kolom komentar
# Tetapi akan saya moderasi atau Review terlebih dahulu tiap komentar
# Jangan sampai komentar anda mengandung SPAM.

# Terima Kasih - Regards Muhammad Sobri Maulana