Infosec


Sejarah Singkat tentang Metasploit

Metasploit awalnya dikembangkan dan dipahami oleh HD Moore ketika ia sedang bekerja di sebuah perusahaan keamanan. Ketika HD sadar bahwa dirinya telah banyak menghabiskan waktu untuk memvalidasi dan membersihkan kode eksploit publik, dia mulai membuat suatu framework yang fleksibel dan dapat di-maintain dalam pembuatan serta pengembangan exploit. Dia merilis edisi pertama dari  Metasploit dengan menggunakan bahasa pemograman Perl pada Oktober 2003 dengan total 11 exploit.

Dengan bantuan Spoonm, HD merilis sejumlah proyek yang ditulis ulang, yakni Metasploit 2.0, pada April 2004. Versi ini berisi 19 exploit dan lebih dari 27 payload. Tak lama setelah perilisan ini, Matt Miller (Skape) bergabung dengan tim pengembang Metasploit dan semakin terkenal proyek ini, Metasploit Framework menerima dukungan berat dari komunitas keamanan informasi dan secara cepat menjadi alat yang dibutuhkan untuk melakukan penetration testing dan eksploitasi.

Bersamaan dengan penulisan ulang pemograman bahasa Ruby pada Metasploit selesai, tim Metasploit merilis Metasploit 3.0 pada tahun 2007. Perpindahan Framework dari Perl menuju Ruby membutuhkan waktu 18 bulan dan menghasilkan lebih dari 150.000 baris kode baru. Dengan rilisnya versi Metasploit 3.0, Metasploit melihat adopsi luas pada komuitas keamanan dan sebuah peningkatan besar pada kontribusi pengguna.

Musim gugur tahun 2009, Metsploit diakuisisi oleh Rapid7, sebuah pemimpin (bukan pemimpin sih, lebih pelopor, leader tuisannya) di bidang vulnerability-scanning, yang memperbolehkan HD untuk membangun sebuah tim berfokus semata-mata pada pengembangan Framework Metasploit. Sejak masa akuisisi, perbaruan terjadi sangat cepat dari yang orang-orang bayangkan. Rapid7 merilis dua produk komersil berdasar pada cara kerja Framework Metasploit yakni Metasploit Express dan Metasploit Pro. Metasploit Express adalah versi yang ukurannya lebih ringan dari Framework Metasploit dengan GUI dan tambahan fungsional, termasuk fitur laporan antara masing-masing fitur. Metasploit Pro adalah versi perluasan dari Metasploit Express yang mengkolaborasikan mata-mata dan kelompok penetration testing serta fitur semacam one-click virtual private network (VPN) tunnel dan banyak lagi.

Metasploit

Pada situs web Metasploit disebutkan bahwa Metasploit adalah framework yang digunakan untuk melakukan penetration testing. Framework Metasploit bersifat open source yang menyediakan library terpercaya dan secara konsisten melakukan perbaruan eksploit serta menawarkan sebuah environment pengembangan komplit untuk membangun tools baru dan mengotomasi setiap aspek dari uji penetrasi. 

Komponen-Komponen Metasploit

  • Auxiliaries
Modul auxiliary pada Framework Metasploit adalah potongan-potongan kode yang ditujukan untuk menampilkan task spesifik (dalam scope penetration testing life cycle). Contohnya, pengguna bisa saja butuh untuk menampilkan sebuah task sederhana atau memverifikasi apakah sebuah sertificate dari server tertentu telah kadaluarsa atau belum, atau pengguna mungkin ingin men-scan subnet dan memeriksa apakah ada server FTP yang mengizinkan akses anonymous.

Gambar tabel berikut menampilkan ragam kategori modul auxiliary yang terdapat pada Framework Metasploit.

Modul auxiliary

Penggunaan command untuk auxiliary


  • Exploits
Exploit adalah momen ketika attcker (penyerang) atau pen tester mengambil keuntungan dari kelemahan sistem, aplikasi, atau suatu layanan. Seorang attcker menggunakan eksploit untuk menyerang sistem dengan cara tertentu untuk mendapatkan hasil yang diinginkan dan tidak terduga oleh korban.

Gambar tabel berikut menampilkan ragam kategori exploit yang terdapat pada Framework Metasploit.

Kategori exploit

  • Encoders
Fungsi encoder adalah untuk menyamarkan eksploit penyerang dan payload dengan berbagai cara sehingga tidak mudah diperhatikan oleh sistem keamanan pada sistem target.

Gambar tabel berikut menampilkan ragam kategori encoder yang terdapat pada Framework Metasploit.

Kategori encoder


  • Payloads
Payload adalah kode yang kita ingin sistem menjalankannya dan kode tersebut diseleksi dan dikirimkan oleh Framewok. 

Perumpaman pada dunia nyata yakni sebuah unit militer di suatu negara mengembangkan sebuah misil baru yang dapat melintas dalam jarak 500 km dengan kecepatan tinggi. Sekarang, badan misil itu tidak berguna kecuali diisi dengan amunisi yang tepat. Unit militer pun memutuskan untuk memuat bahan peledak di dalam misil sehingga ketika misil mencapai target, bahan peledak dalam misil meledak dan menyebabkan kerugian pada musuh. Jadi, pada kasus ini, bahan peledak di dalam misil adalah payload. Payload dapat diubah berdasarkan tingkat keparahan kerusakan yang disebabkan setelah misil meledak.

Sampel payload yang digunakan untuk mendapatkan reverse TCP  shell dari sistem Windows


  • Post

Modul post berisi bermacam-macam skrip dan utilities yang dapat memabntu pengguna untuk lebih jauh menyusup pada sistem target setelah sukses melakukan eksploitasi. Sekali pengguna berhasil mengeksploit sebuah kerentanan dan masuk ke dalam sistem target, post-exploitation dapat membantu pengguna dengan cara-cara berikut:

    • Memperluas hak istimewa pengguna
    • Membanjiri credentials OS
    • Mencuri cookies dan password yang tersimpan
    • Mendapatkan key logs dari sistem target
    • Menjalankan skrip PowerShell
    • Membuat akses tetap untuk penyerang 

Gambar tabel berikut menampilkan ragam kategori "post" yang tersedia pada Framework Metasploit.
Framework Metasploit memiliki lebih dari 250 skrip dan post-exploitation utilities.

Kategori post

Metasploit Interfaces (Antarmuka Metasploit)

  • MSFconsole

MSFconsole merupakan tools pendukung paling fleksibel, kaya akan fitur, dan bagian Framework Metasploit paling terkenal sejauh ini.

MSFconsole menyediakan interface  praktis pada hampir seluruh opsi dan pengaturan Metasploit. Pengguna dapat menggunakan msfconsole untuk melakukan eksploit, memuat modul bantuan, menampilkan enumerasi, membuat listeners, atau menjalankan massa eksploitasi terhadap keseluruhan jaringan.

msfconsole

Contoh command msfconsole untuk membantu menghubungkan ke suatu host

  • MSFcli
Berbeda dengan MSFconole yang menyediakan cara interaktif untuk mengakses seluruh fitur secara user-friendly, MSFcli meletakkan prioritas pada scipting dan interpretability dengan tools console lainnya. Disamping menyediakan interpreter unik pada Framework, msfcli dijalankan langsung dari command line, yang memperbolehkan pengguna untuk mengalihkan output dari tools lain ke msfcli dan mengarahkan msfcli output ke tools command-line lain. Msfcli juga mendukung peluncuran eksploit dan modul auxiliary serta dapat mempermudah ketika menguji modul atau mengembangkan eksploit baru untuk Framework.

Msfcli adalah tool yang cocok digunakan ketika pengguna tahu secara pasti eksploit dan opsi apa yang dibutuhkan. Msfcli memang tidak se-interaktif msfconsole, namun msfcli menawarkan bantuan-bantuan dasar dengan command msfcli -h.

msfcli
 Pada gambar penggunaan msfcli berikut ini 0 digunakan untuk melihat opsi tersedia pada modul ms08_067_netapi.
Contoh penggunaan msfcli

  • Armitage

Komponen armitage dari Metasploit adalah GUI interaktif yang dibuat oleh Raphael Mudge. Interface ini sangat mengeankan, kaya akan fitur, dan tersedia secara gratis. 

Untuk menjalankan armitage, gunakan command armitage. Pada saaat startup, pilih Start MSF, yang mana akan mengizinkan armitage untuk menghubungkan ke instance Metasploit.

armitage


Setelah armitage berjalan, klik pada menu bar untuk menampilkan serangan tertentu atau akses kegunaan Metasploit yang lain. Pada gambar berikut menampilkan menu eksploit browser armitage dari sisi client.

Menu eksploit browser armitage dari sisi client

Metasploit Utilities 

  • MSFpayload
Komponen MSfpayload Metasploit mengizinkan penggunanya untuk menghasilkan shellcode, menjalankan, dan  banyak penggunaan eksploit di luar Framework.

Shellcode dapat dihasilkan dari banyak format termasuk C, Ruby, JavaScript, dan bahkan Visual Basic for Applications. Masing-masing format output akan berguna di berbagai macam keadaan. Contoh, jika pengguna menggunakan Python, cocok dengan model output C; jika pengguna bekerja pada eksploit browser, maka cocok dengan model output format JavaScript. Setelah pengguna mendapatkan output yang diinginkan, pengguna dapat dengan mudah menambahkan payload secara langsung pada file HTML untuk memicu eksploit.

Berikut ini adalah command untuk menggunakan msfpayload.
root@bt:~#msfpayload -h *untuk melihat daftar opsi msfpayload
root@bt:~#msfpayload windows/shell_reverse_tcp 0 *0 dapat digunakan pada akhir command msfpayload ketika stuck pada opsi yang dibutuhkan untuk modul payload

  • MSFencode
MSFencode membantu pengguna Metasploit untuk menghindar dari karakter tak diinginkan dan antivirus serta IDs dengan mengenkoding payload asli yang tidak termasuk dalam "bad" chaarcters. Berikut ini adalah command untuk menggunakan msfencode.
root@bt:~#msfencode -h untuk melihat daftar opsi msfencode
root@bt:~#msfencode -l untuk melihat daftar encoder tersedia
  • Nasm Shell

nasm_shell.rb dapat menjadi jalan praktis ketika pengguna sedang mencoba memahami kode assembly, khususnya jika ketika pengembangan eksploitasi, pengguna butuh untuk mengidentifikasi opcodes (instruksi assembly) untuk sebuah command assembly yang diberikan.

Sebagai contoh, di sini kita menjalankan tool dan request opcodes untuk command jmp esp, yang mana nasm_shell memberitahu kita dengan FFE4.

nasm_shell