IAT Hooks

Juli 17, 2018 | ,

IAT Hooks
Import Address Table (IAT) adalah tabel lompatan "jmp dword ptr ds: [alamat]". Karena fungsi dalam dll mengubah alamat, bukannya memanggil fungsi dll secara langsung, aplikasi akan membuat panggilan ke jmp yang relevan di tabel lompatannya sendiri. Ketika aplikasi dijalankan, loader akan menempatkan pointer ke setiap fungsi dll yang diperlukan di alamat yang sesuai di IAT. jika rootkit disuntikkan sendiri di dalam aplikasi dan mengubah alamat di IAT, itu akan dapat menerima kontrol setiap kali fungsi target dipanggil.



Bypass
Karena Export Address Table (EAT) dari setiap dll tetap utuh, aplikasi dapat dengan mudah memotong hook IAT dengan hanya memanggil GetProcAddress untuk mendapatkan alamat sebenarnya dari setiap fungsi dll. Untuk mencegah bypass sederhana semacam itu, rootkit mungkin akan menggunakan GetProcAddress / LdrGetProcedureAddress dan menggunakannya untuk mengembalikan alamat palsu. hook ini dapat dilewati dengan menulis implementasi GetProcAddress Anda sendiri dan menggunakannya untuk mendapatkan alamat fungsi yang sebenarnya.



 
Read More

Inline Hooking

Juli 17, 2018 | ,

Apa itu Inline hooking ? 
Inline hooking adalah metode mencegat panggilan ke fungsi target, yang terutama digunakan oleh antivirus, sandbox, dan malware. Gagasan umum adalah untuk mengarahkan fungsi ke kita sendiri, sehingga kita dapat melakukan pemrosesan sebelum dan / atau setelah fungsi melakukan fungsinya; ini bisa termasuk: memeriksa parameter, shimming, logging, spoofing mengembalikan data, dan menyaring panggilan. Rootkit cenderung menggunakan Hooking untuk mengubah data yang dikembalikan dari panggilan sistem untuk menyembunyikan kehadirannya, sementara perangkat lunak keamanan menggunakannya untuk mencegah / memantau operasi yang berpotensi jahat. Hook ditempatkan dengan memodifikasi kode secara langsung dalam fungsi target (modifikasi inline), biasanya dengan menimpa beberapa byte pertama dengan lompatan; ini memungkinkan eksekusi untuk diarahkan sebelum fungsi melakukan pemrosesan apa pun. Kebanyakan mesin hooking menggunakan lompatan relatif 32-bit (opcode 0xE9), yang mengambil 5 byte ruang.




Bagaimana itu bekerja
Kami akan menggunakan hook berbasis trampolin, yang memungkinkan kami untuk mencegat fungsi, sementara masih dapat memanggil yang asli (tanpa melepasnya terlebih dahulu). hook ini terdiri dari 3 bagian:
  1. The Hook - Sebuah lompatan relatif 5 byte yang ditulis ke fungsi target untuk mengaitkannya, lompatan akan melompat dari fungsi yang terhubung ke kode kita.
  2. Proxy - Ini adalah fungsi yang kami tentukan. dimana hook yang ditempatkan pada fungsi target akan melompat ke Tempat Lain.
  3. The Trampoline - Digunakan untuk memotong hook sehingga kita dapat memanggil fungsi yang terhubung secara normal.

Mengapa Trampoline
Katakanlah kita ingin mengaitkan MessageBoxA, mencetak parameter dari dalam fungsi proxy, kemudian menampilkan kotak pesan: Untuk menampilkan kotak pesan, kita perlu memanggil MessageBoxA (yang mengalihkan fungsi proksi kita, yang kemudian memanggil MessageBoxA ). Jelas memanggil MessageBoxA dari dalam fungsi proksi kami hanya akan menyebabkan rekursi tanpa batas dan program dengan akhirnya crash karena tumpukan overflow.
kita hanya dapat melepas hooking MessageBoxA dari dalam fungsi proxy, memanggilnya, lalu meng hook bagian itu; tetapi jika beberapa utas memanggil MessageBoxA pada saat yang sama, ini akan menyebabkan kondisi balapan dan kemungkinan crash program.
Sebaliknya, apa yang bisa kita lakukan adalah menyimpan 5 byte pertama dari MessageBoxA (ini ditimpa oleh hook kita), maka ketika kita perlu memanggil MessageBoxA yang tidak terhubung, kita dapat mengeksekusi 5 byte pertama yang tersimpan, diikuti dengan lompatan 5 byte ke dalam MessageBoxA (langsung setelah hook). Jika Anda mengalami kesulitan memvisualisasikan itu, saya telah membuat grafik panggilan.
 
Gambar Atas adalah panggilan normal ke MessageBoxA yang belum di Hooking, bagian bawah adalah panggilan menggunakan trampolin kami untuk melewati Hooking.
 
Selama 5 byte pertama bukanlah instruksi relatif, mereka dapat dieksekusi di mana saja (karena sangat jarang bagi fungsi untuk menggunakan instruksi relatif sejak awal, jadi kita tidak perlu benar-benar menangani ini). Masalah yang harus kita tangani adalah jika 5 byte pertama dari fungsi tidak membuat n seluruh instruksi).
Dalam contoh, 5 byte pertama dari fungsi membuat tepat 3 instruksi (mov edi, edi; push ebp; mov ebp, esp), namun, jika misalnya, instruksi pertama adalah 10 byte panjang dan kita hanya menyimpan 5 byte : trampolin akan mencoba menjalankan setengah instruksi dan program akan meledak. Untuk menyiasati ini, kita harus overhaul/bongkar pasang untuk mendapatkan panjang setiap instruksi, jadi kita dapat memastikan hanya untuk menyalin seluruh instruksi. Skenario kasus terbaik adalah yang pertama n instruksi menambahkan hingga tepat 5 byte, kasus terburuk adalah jika instruksi pertama adalah 4 byte dan yang kedua adalah 16 (panjang maksimum instruksi x86), kita harus menyimpan 20 byte (4 + 16), artinya trampolin kita harus berukuran 25 byte (ruang untuk instruksi hingga 20 byte dan lompatan 5 byte kembali ke fungsi yang terhubung). Penting untuk dicatat bahwa lompatan return harus melompat ke fungsi n byte yang terhubung, di mana n adalah banyak instruksi yang kita simpan di trampolin.
 
 
 
 

Read More

Mass Deface After Rooting (root) PHP Script

Februari 06, 2018 |


Udah rooting server eh tapi males deface 1 per 1
Daripada buang waktu kan ya :v
Keterangan:
taruh script deface kalian di dalam script mas tadi.
keterangan ada di script
Cara gunainya:
php nama_script.php
Simple kan :'v

Kudu root dulu ya kalo mau work
Tools: Disini

Oke segitu aja kalo kurang paham boleh tanya pada dirimu sendiri :v



Read More

PENGERTIAN/ISTILAH BACKDOOR

Februari 02, 2018 |

pernah denger ngak lu tod ? atau pernah denger tapi ngak tau artinya :v wkwkw

simak dulu penjelasan dari wikipedia

Sumber : Wikipedia
Backdoor atau "pintu belakang", dalam keamanan sistem komputer, merujuk kepada mekanisme yang dapat digunakan untuk mengakses sistem, aplikasi, atau jaringan, selain dari mekanisme yang umum digunakan (melalui proses logon atau proses autentikasi lainnya). Disebut juga sebagai  
back door.
Backdoor pada awalnya dibuat oleh para programer komputer sebagai mekanisme yang mengizinkan mereka untuk memperoleh akses khusus ke dalam program mereka, seringnya digunakan untuk membenarkan dan memperbaiki kode di dalam program yang mereka buat ketika sebuah crash akibat bug terjadi. Salah satu contoh dari pernyataan ini adalah ketika Kenneth Thompson
 (salah seorang pemrogram sistem operasi UNIX membuat sebuah program proses login pada tahun 1983 ketika memperoleh Turing Award), selain program login umum digunakan dalam sistem operasi UNIX dengan menggunakan bahasa pemrograman C, sehingga ia dapat mengakses sistem UNIX yang berjalan di dalam jaringan internal Bell Labs. Backdoor yang ia ciptakan itu melindungi dirinya dari pendeteksian dan pembuangan dari sistem, meskipun pengguna berhasil menemukannya, karena memang backdoor ini membuat dirinya sendiri kembali (melakukan rekompilasi sendiri).
Beberapa pengembang perangkat lunak menambahkan backdoor ke dalam program buatannya untuk tujuan merusak (atau tujuan yang mencurigakan). Sebagai contoh, sebuah backdoor dapat dimasukkan ke dalam kode di dalam sebuah situs belanja online (e-commerce) untuk mengizinkan pengembang tersebut memperoleh informasi mengenai transaksi yang terjadi antara pembeli dan penjual, termasuk di antaranya adalah kartu kredit.

Istilah backdoor sekarang digunakan oleh hacker-hacker untuk merujuk kepada mekanisme yang mengizinkan seorang peretas sistem dapat mengakses kembali sebuah sistem yang telah diserang sebelumnya tanpa harus mengulangi proses eksploitasi terhadap sistem atau jaringan tersebut, seperti yang ia lakukan pertama kali. Umumnya, setelah sebuah jaringan telah diserang dengan menggunakan exploit (terhadap sebuah kerawanan/vulnerability), seorang penyerang akan menutupi semua jejaknya di dalam sistem yang bersangkutan dengan memodifikasi berkas catatan sistem (log) atau menghapusnya, dan kemudian menginstalasikan sebuah backdoor yang berupa sebuah perangkat lunak khusus atau menambahkan sebuah akun pengguna yang memiliki hak akses sebagai administrator jaringan atau administrator sistem tersebut. Jika kemudian pemilik jaringan atau sistem tersebut menyadari bahwa sistemnya telah diserang, dan kemudian menutup semua kerawanan yang diketahui dalam sistemnya (tapi tidak mendeteksi adanya backdoor yang terinstalasi), penyerang yang sebelumnya masih akan dapat mengakses sistem yang bersangkutan, tanpa ketahuan oleh pemilik jaringan, apalagi setelah dirinya mendaftarkan diri sebagai pengguna yang sah di dalam sistem atau jaringan tersebut. Dengan memiliki hak sebagai administrator jaringan, ia pun dapat melakukan hal yang dapat merusak sistem atau menghilangkan data. Dalam kasus seperti di atas, cara yang umum digunakan adalah dengan melakukan instalasi ulang terhadap sistem atau jaringan, atau dengan melakukan restorasi dari cadangan/backup yang masih bersih dari backdoor.
Ada beberapa perangkat yang dapat digunakan untuk menginstalasikan backdoor, seperti halnya beberapa Trojan horse, tetapi yang populer adalah Netcat, yang dapat digunakan di dalam sistem operasi Windows ataupun UNIX.

:v mudeng ngak tods . kalo menurut inyong sih ya sama kaya di atas :)  

Read More