[Repo] Shellcode Loader

Satria Ady Pradana
Reversing.ID
Published in
2 min readAug 30, 2022
Pick your tricks and let it rolls

Shellcode, bagi yang sering berinteraksi dengan reverse engineering dan offensive operation (pentest, exploit development, adversary emulation) pasti pernah mendengar istilah ini.

Shellcode adalah potongan kode/instruksi mesin yang dapat dieksekusi oleh processor. Istilah “shellcode” diberikan karena sebagian besar bertujuan menjalankan (spawn) shell atau menjalankan command tertentu.

Karakteristik shellcode adalah Position-Independent. Artinya semua referensi kode dan data di dalam shellcode menggunakan alamat yang relatif sehingga dapat bekerja dimana saja shellcode diletakkan dan dieksekusi.

Satu hal yang pasti, shellcode tidak berdiri sendiri.

Ada banyak project untuk mengumpulkan dan mengindeks shellcode, seperti:

Dalam praktiknya, hanya beberapa shellcode saja yang sering digunakan, seperti shellcode yang dibangkitkan oleh metasploit (meterpreter) untuk spawn bind shell maupun reverse shell.

Namun sebenarnya, ada banyak hal yang bisa digunakan dengan shellcode. Beberapa project bahkan bertujuan untuk mengubah sebuah executable binary (exe, dll) menjadi sebuah shellcode yang bisa dieksekusi, seperti:

Penggunaan shellcode semakin luas dimana awalnya shellcode hanya digunakan untuk menjalankan fungsi sederhana, kini dapat digunakan untuk mengeksekusi sebuah aplikasi utuh.

Beberapa skenario dimana shellcode digunakan, antara lain:

  • Sebagai payload: shellcode dikirimkan sebagai payload dan dieksekusi setelah bug (misal: stack overflow, heap overflow, use-after-free, dsb) berhasil dipicu.
  • Sebagai backdoor: shellcode ditanam di area kosong di dalam (legit) executable dan akan dieksekusi ketika program berjalan.
  • Sebagai stagers: shellcode digunakan malware/implant untuk mengunduh payload tambahan yang bersifat malicious.

Tentu saja dalam offensive operation, musuh terbesar adalah detection. Apabila shellcode dapat dideteksi oleh AntiVirus/EDR maka besar kemungkinan eksekusi tidak bisa dilakukan. Untuk mengatasi kendala deteksi dikembangkanlah beberapa trik untuk menghindari deteksi (evasion).

Reversing.ID memperkenalkan sebuah repository, Shellcode-Loader. Repository ini berisi kumpulan trik yang berhasil diidentifikasi untuk load dan execute shellcode. Sebagian trik merupakan real case yang digunakan oleh malware.

Repository ini dibangun untuk tujuan edukasi. Malware reverse engineer dapat mempelajari trik yang ada sehingga dapat mengidentifikasinya pada malware sample yang ada. Red Team dapat juga mempelajari trik untuk mendesain implant sesuai kebutuhan engagement.

Saat ini terdapat puluhan hingga ratusan trik yang tersedia dan akan terus diperbarui seiring perkembangan. Seperti biasa, pull request sangat dinantikan.

--

--

Satria Ady Pradana
Reversing.ID

A man who is obsessed to low level technology; Reversing.ID Community Leader;