Senin, 18 April 2011

Tutorial Injeksi Executable – MessageBox

Sebuah aplikasi executable pada Microsoft Windows seperti *.exe, *.dll, *.sys, dan lainnya meskipun
memiliki fungsi berbeda antara satu dan lainnya namun tetap tergolong sebagai satu tipe yaitu Portable
Executable (PE). Sebagai acuan Saya menyarankan Anda membaca buku karangan Mat Pietrek “Peering
Inside the PE: A Tour of the Win32 Portable Executable File Format” buku hebat yang membahas tentang
Portable Executable. Saya sengaja tidak membahasnya disini, karena hanya akan menghabiskan banyak
halaman yang akhirnya membuat mata Anda rusak dan harus memakai kacamata minus seperti Saya :(
File tipe portable Executable tersebut memiliki resiko yang sangat tinggi terhadap berbagai
kemungkinan manipulasi, baik oleh virus maupun hacker. Tidak ada satupun di dunia komputer yang
benar-benar aman dari serangan hacker. Jika ada orang yang mengklaim bahwa dia bisa menjamin
keamanan sebuah aplikasi sampai 90%, berarti orang tersebut adalah orang gila sok tahu! :)
Injeksi Executable hanya bisa dilakukan dengan Reverse Engineering, teknik Reverse Engineering sendiri
merupakan dasar dari seluruh ilmu hacking. Baik hacking (atau lebih tepatnya Cracking:)) sederhana
seperti mengubah tampilan website (Deface atau Poisoning), mencuri data shopping online (Carding),
Serial fishing (Shareware Cracking) sampai dengan hacking tingkat advance (733t) seperti membuat
worm, exploit atau shellcode dan lain sebagainya. Tanpa memiliki dasar Reverse Engineering, belum
tepat jika seseorang mengklaim dirinya sebagai hacker ataupun cracker. Apalagi jika hanya meniru
teknik orang lain. Semoga ini bisa menjawab semua pertanyaan dari teman-teman semua melalui email
Saya tentang bagaimana cara menjadi hacker.
Artikel ini Saya tulis untuk menggambarkan kepada Anda tentang proses injeksi executable.
Pengkodean, pembahasan dan hal lainnya sengaja disederhanakan untuk memudahkan Anda dalam
memahaminya. Maaf, Saya tidak membahas proses injeksi advance dan elit, karena pastinya terlalu
membosankan bagi kebanyakan orang. Mengingat artikel ini ditujukan untuk semua kalangan pembaca.
Alasan lainnya Saya bukanlah juru ketik dan selalu mengantuk saat mengetik dan menulis :)
Beberapa hal yang perlu Anda persiapkan adalah :
  1. Debuger (Saya merekomendasikan Ollydbg, tool gratis dan powerful di http://www.ollydbg.de/) atau Hexa editor (jika Anda 733t hacker seperti orakanggo, tomero, +m03n+, Jowy, anak_tk, CodeMaker dan Apakekdah.. :) )
  2. Notepad atau teks editor yang Anda sukai.
  3. Sedikit pengetahuan tentang Assembly
  4. Target file executable (Untuk menghindari UU Copyright dan DMCA, Saya sudah menyertakan file target bersama artikel ini atau Anda bisa mendownloadnya di website Saya)
  5. Palmall cigarettes, a cup of coffe and Cradle of Filth-Beyond Eleventh Hour.mp3 (Anti ngantuk :) )

Step 1 :
Buka file target “Target.exe” dengan mempergunakan OllyDbg seperti pada Gambar 1.

Gambar 1. OllyDbg load file
Step 2 :
Mencari “Code Cave” program. Code Cave terdiri dari 00 dan 90 yang terdapat pada ruang sebuah
program. Kita bisa mempergunakan Code Cave sebagai tempat injeksi kode kita sendiri. Secara
sederhana bisa dikatakan Code Cave semacam apartemen atau ruang yang tidak terpakai jadi kita bisa
menempatinya dengan bebas dan gratis :)

Gambar 2. Code Cave
Step 3 :
Blok dengan menggunakan cursor mouse pada area Code Cave sesuai dengan bytes yang dibutuhkan,
klik kanan pilih Binary->Edit->OK

Gambar 3. Binary Edit
Step 4 :
Membuat Caption Text. Masukkan karakter pada kolom ASCII, misal “YOU’VE GOT HACKED” tanpa tanda
petik. Lalu tekan OK. Karakter yang Anda ketikkan tersebut akan diasumsikan sebagai bahasa Assembly
bukan sebagai ASCII oleh Ollydbg, untuk merapikannya cukup klik kanan pilih Analysis->Analyze code
(Anda juga bisa mempergunakan CTRL+A atau dengan menggunakan bantuan Plugin “Analyze this!”
untuk mempercepat kerja Anda). Jika berjalan lancar, karakter Anda akan terlihat sebagai ASCII.

Gambar 4. Caption Text

Gambar 5. Analyze

Gambar 6. ASCII Character
Step 5 :
Untuk membuat Message Content atau isi pesan, caranya sama dengan Step 4. Misal isi pesan tersebut
“THIS IS MY STUPID CODE” tanpa tanda petik.

Gambar 7. Message Content
Step 6 :
Sekarang saatnya sedikit bermain dengan bahasa Assembly.. Tenang, Saya tidak akan membahas bahasa
pemrograman yang rumit. Berpikir rumit hanya akan membuat diri kita cepat tua dan membuat kepala
botak.. (sudah pakai kacamata, botak pula, apa kata dunia??? :) )
Disini kita akan menyisipkan sebuah message box (dialog pesan) dengan menggunakan bahasa
Assembly. Ingat, ini adalah metode Reverse Engineering dengan menggunakan Ollydbg jadi hanya ada 2
pilihan pakai bahasa assembly atau hexa, apakah tidak ada yang lebih mudah?
Jawabannya ada.. yaitu matikan komputer, hidupkan MP3 Player lalu tidur:)
MessageBox (Win32 Programmer’s Reference)
Fungsi MessageBox menciptakan, menampilkan dan mengoperasikan sebuah dialog pesan. Dialog pesan
berisi suatu gambaran-aplikasi pesan dan judul, ditambah berbagai kombinasi dari tombol tekan dan
ikon yang dikenal.
Info
Windows NT : Yes
Win95 : Yes
Win32s : Yes
Import Library : user32.lib
Header File : winuser.h
Unicode : WinNT; Win95
Platform Notes : None
Syntax
int MessageBox(
HWND hWnd, // handle of owner window
LPCTSTR lpText, // address of text in message box
LPCTSTR lpCaption, // address of title of message box
UINT uType // style of message box
);
Untuk menyisipkan kode Assembly, klik kanan pilih “Assemble” atau tekan tombol Space pada keyboard
Anda. Pada kolom yang tersedia ketikkan perintah yang ingin Anda sisipkan pada kolom Disassembly,
misal :

Assembly Code Injection
CATATAN, Address pada setiap komputer tidak sama. Jadi sesuaikan dengan Address yang terdapat
pada komputer Anda bukan Address pada artikel ini. Address pada Ollydbg terletak pada kolom sebelah
kiri. Selalu perhatikan dan catat Address yang dipergunakan pada setiap Step artikel ini.

Gambar 8. Assemble

Gambar 9. Injeksi kode Assembly
Step 7 :
Setelah itu saatnya menuju Program Origin, karena tanpa hal itu kode yang Anda sisipkan tidak akan
berjalan. Klik kanan pilih Go to->Origin

Gambar 10. Go to Origin
Saya sarankan Anda mencatat Address, Disassembly dan Hex dump pada Program Origin karena nanti
akan dipergunakan sebagai acuan lompatan Address.
Blok dengan menggunakan cursor mouse 2 Address tersebut, klik kanan pilih Binary->Binary copy

Gambar 11. Binary Copy
Paste kode binary tersebut pada Code Cave yang masih belum dipergunakan, blok area Code Cave
sesuai dengan bytes yang dibutuhkan dengan cursor mouse, klik kanan pilih Binary->Binary paste

Gambar 12. Binary Paste
Step 8 :
Langkah berikutnya adalah mengubah perintah program agar program memanggil kode yang disisipkan.
Pada address 00401019 rubahlah “call 00401BA0″ menjadi “jmp 00401019″. Address 00401019
diperoleh dari Program Origin.

Gambar 13. Merubah Instruksi pada Code Cave
Tahap selanjutnya adalah kembali menuju Program Origin seperti pada Step 7, pada address 00401014
rubahlah “push 00401749″ menjadi “jmp 00404A91″.

Gambar 14. Merubah instruksi pada Program Origin

Gambar 15. Kode Hacked
Proses injeksi sudah lengkap, sekarang simpan program yang telah disisipi kode injeksi tersebut dengan
cara klik kanan pilih Copy to executable->All modifications->Copy all->klik kanan->Save file.

Gambar 16. Preview
Selanjutnya silahkan jalankan file tersebut, jika semua instruksi sudah benar, Anda akan menjumpai
sebuah message box (dialog pesan) di awal program dijalankan. Jika tidak bisa, teliti dari awal karena
mungkin terdapat kesalahan pengkodean. Jika masih tidak bisa, sepertinya Anda tidak hoki mendalami
bidang ilmu komputer. Bagaimana jika menekuni dunia peternakan saja seperti Saya???
Final notes :
Proses injeksi executable bisa Anda kembangkan dengan menggunakan syntax dan metode yang lain,
metode ini juga bisa Anda pergunakan untuk jenis executable lain yang terdapat di komputer Anda,
bahkan untuk executable yang sudah di pack. Misal menggunakan metode Memory Address dan lain
sebagainya.
Setelah membaca artikel ini, bagi Anda yang sering melakukan aktifitas download software terutama di
situs penyedia software bajakan (Cracked Software), ada baiknya Anda melakukan verifikasi integritas
file dengan menggunakan CRC32, MD5 atau file SFV. Hal tersebut bisa membantu Anda mengetahui
keaslian software yang Anda download, apakah sudah ada yang memanipulasinya atau original. Karena
Antivirus sampai saat ini belum bisa diandalkan mengidentifikasi hal tersebut kecuali untuk bundled file.
Untuk menghindari penyalahgunaan dalam hal kejahatan cyber (Contoh: Exploit, Shellcode, Trojan, dan
lainnya) baik oleh lamer, scriptkiddies dan pihak lain yang tidak bertanggungjawab (kecuali 733t..:) ),
Saya sengaja meletakkan “Software Bug (Cacat Program)” yang artinya file target “Target.exe” (ataupun
file lain yang Anda jadikan sebagai target) bisa dijalankan ratusan kali bahkan lebih dengan
menggunakan metode ini namun akan rusak secara otomatis dan tidak dapat dijalankan lagi setelah
komputer Anda direstart. Jadi Anda harus mengulangi lagi setiap tahapan dari awal Semoga artikel ini
bisa memberi manfaat bagi Anda dan membantu Anda menjaga diri Anda dari kejahatan cyber. Terima
kasih.
MRHPx regards and messages :
  • My family for love, peace and emphaty.. Allah SWT and Muhammad SAW for life, light and everything..
  • Reverse Code Engineering scene, Astalavista.MS, Blackhat Community, Indonesia veteran hAxx0r (You know who you are.. :) )
  • Source code semua program atau hack tool (EXCEPT PRIVATE-SECRET TOOLS!) dari seluruh artikel dan rilis NeMeSiS_ByTe dan MRHPx bisa diperoleh dengan cara kontak melalui email baru Saya di atas.. Ehm, sori ganti Nickname sejak 2008 tidak lagi sebagai NeMeSiS_ByTe :) Juga ganti email, ganti website, ganti peruntungan! :) Long live reverser..!
PENTING :
  • Jika Anda request software atau tool yang tidak terdapat di website Saya atau sulit didapatkan (baik software gratis atau berbayar), harap mengganti biaya bandwith internet (Download Broadband) dan biaya pengiriman (CD Distribusi Pos). Harap maklum, Saya bukan milyuner yang mempunyai banyak uang, Saya tidak mungkin membiayai setiap request software dan tool yang Anda butuhkan.
  • Untuk keperluan apapun harap menghubungi Saya melalui email Yahoo atau Facebook, karena nomer telpon Saya hanya untuk keperluan bisnis dan pekerjaan. Bukan dipergunakan untuk CHAT dan tanya jawab.

Tidak ada komentar:

Posting Komentar