Metasploit Framework, Bahagian 1

sploit (n.) Exploit. A defect in the game code (see bug) or design that can be used to gain unfair advantages. sploit (n.) Exploit. A defect in the game code (see bug) or design that can be used to gain unfair advantages. (Sumber: Kamus Terma MMORPG)

Pada masa ini, masyarakat mengeksploitasi pembangunan (penggodam dan profesional keselamatan sama) adalah lebih yg dpt merasa berbanding sebelum ini. Garis masa antara pelepasan nasihat dan pembangunan mengeksploitasi 1 telah merosot sehingga ke tahap yang hebat. Mengeksploitasi pembangunan, yang dianggap lebih Wicca seni, telah mencapai jisim yang besar. Pentadbir rangkaian keselamatan perlu lebih berhati-hati kemudian sebelum ini sebagai musuh sentiasa satu langkah ke hadapan dengan mengeksploitasi terkini di tangannya.

Mengeksploitasi peralatan pembangunan dan rangka kerja automatik untuk ujian mengeksploitasi dan simulasi adalah penting saat ini. Metasploit Framework (MSF) adalah sesuatu yang sesuai dengan rang undang-undang itu. Pelepasan terbaru telah ketangkasan dan otot yang agak setanding dengan rakan yang tinggi harga komersil dan lethality kod mengeksploitasi dalam jangka masa sesingkat mungkin, kerana antara muka yang sangat baik ditakrifkan untuk pembangunan. Dengan persekitaran mengeksploitasi lengkap, bekerja eksploitasi, payloads berkesan dan pengendali tambah, ini adalah satu alat penguji penembusan yang mesti menggunakan.

Artikel ini memberi kefahaman tentang asas-asas rangka kerja pembangunan mengeksploitasi, dengan tumpuan khas pada Rangka Kerja Metasploit dan bagaimana ia boleh dieksploitasikan untuk menjimatkan masa dan sumber. Kami menerangkan penggunaan dengan ilustrasi grafik, detail pelbagai arahan yang ada, menerangkan ciri-ciri, memberikan contoh-contoh praktikal, dan yang paling penting, menggunakan kemahiran ini untuk membangunkan eksploitasi baru dan menguji teknik-teknik baru. Artikel ini diakhiri dengan elucidating mengapa MSF akan mempengaruhi masa depan eksploitasi dengan cara yang bersejarah dan positif.

 

1. Sekapur Sirih

Saya ingin memulakan artikel saya dengan merujuk kepada beberapa kejadian yang agak semasa. Nasihat Microsoft (MS04-011) dibincangkan dan tetap banyak kelemahan keselamatan yang kritikal dalam sistem Windows pelbagai operasi [ref 1 ] . Dua yang berminat saya telah PCT SSL dan Pihak Berkuasa Tempatan Keselamatan limpahan yang boleh membawa kepada kompromi jauh. Seperti yang hampir serta-merta, bekerja eksploitasi dikeluarkan kepada orang awam, menangkap pentadbir dan profesional keselamatan tidak sedar dan tidak bersedia.

Meletakkan diri anda dalam minda pentadbir keselamatan di sebuah syarikat IT yang tipikal, eksploitasi tambah yang lebih membebankan keselamatan yang sedia ada. Sudah diperkatakan dan dilakukan, ini mengejar angsa liar di mana penyerang berniat jahat mendahului permainan, tetapi dengan pendekatan yang teratur profesional keselamatan boleh menukar kad.

Patch keselamatan, IDS, firewall, dan sebagainya tidak seharusnya menjadi satu-satunya kriteria keselamatan. Tunduk kepada tekanan keadaan, nooks banyak dan penjuru rangkaian boleh pergi yang tidak dilindungi dan unlatched, yang pada umumnya menjadi sumber kompromi. Ini adalah apa yang berlaku apabila kita mendengar berita tentang rangkaian yang besar dan sistem secara keseluruhan oleh penggodam yang menggunakan kelemahan yang diketahui. Dan itulah sebab mengapa cacing Sasser mencecah 250,000 komputer, walaupun dua minggu selepas MS mengeluarkan patch keselamatan yang berprofil tinggi.

Pada pendapat saya, penyelesaian yang biasa, "berfikir seperti penyerang" pendekatan. Penguji penembusan perlu pergi bersenang-senang hacking dengan menguji rangkaian sendiri, apa yang saya panggil Ujian Penembusan Pelarian Ancaman. Ini adalah di mana rangka kerja mengeksploitasi mula bermain, yang mengautomasikan seni eksploitasi.

 

2. Asas

Eksploitasi masih mempunyai perasaan kagum yang dilampirkan padanya. Pen-penguji sibuk mengangkat bahu idea pembangunan mengeksploitasi sebagai masa yang terbiar lalu seorang hacker. Ini adalah cara yang sebenar. Mengeksploitasi pembangunan itu sendiri adalah seni. Ia memerlukan pengetahuan yang penting, kesabaran, masa berharga dan ke atas semua semangat abadi pembelajaran melalui percubaan dan kesilapan-.

2.1 Ingatan organisasi

Teknik-teknik asas eksploitasi boleh dikategorikan teratur, seperti apa-apa isu teknikal yang lain. Sebelum pergi lagi, bagaimanapun, pembaca harus sedar bahawa proses asas organisasi memori [ref 2 ] . Satu proses yang berjalan dalam ingatan yang berikut sub-struktur:
Data dan BSS segmen ditulis mengandungi statik, global, dimulakan dan tidak-dimulakan data segmen dan pembolehubah.
 
Stack adalah struktur data yang berdasarkan Last-In-First-Out pesanan . Item menolak ed dan pop Brash dari atas tindanan. Penuding Tindakan (SP) adalah suatu daftar yang menunjukkan bahagian atas timbunan (dalam kebanyakan kes). Apabila data ditolak pada timbunan, SP mata kepada (bahagian tepi). Stack tumbuh ke arah alamat-alamat ingatan negatif. Ia digunakan untuk menyimpan konteks proses. Proses yang menolak semua data tempatan dan dinamik ke timbunan. Penuding (IP) adalah satu daftar yang digunakan untuk menunjuk kepada alamat arahan seterusnya untuk dilaksanakan . Pemproses kelihatan IP masing-masing pada bila-bila masa untuk mencari arahan seterusnya untuk dilaksanakan. Apabila redirection program mendadak berlaku (kerana JMP atau hubungi) alamat arahan seterusnya, selepas pulang kembali dari redirection, boleh hilang. Dalam usaha untuk mengatasi masalah ini program ini menyimpan alamat arahan seterusnya untuk dilaksanakan (selepas pulang dari JMP atau hubungi) pada timbunan, dan ia dipanggil alamat kembali (yang dilaksanakan melalui RET arahan pemasangan) . Ini adalah program biasa yang mengandungi banyak panggilan fungsi dan arahan goto menjejaki jalan yang lurus pelaksanaan .
 
Timbunan pada dasarnya adalah ruang memori yang diberikan kepada proses yang lain. Ia menyimpan data yang seumur hidup di antara pemboleh ubah global dan pembolehubah tempatan. Kerja-kerja pengagih dan deallocator untuk menetapkan ruang untuk data dinamik dan memori timbunan bebas masing-masing [ ref 3 ].
    Kod segmen baca sahaja yang mengandungi kod boleh laksana yang disusun program.
Ini adalah terbang ringkas mengenai asas-asas organisasi proses. Sekarang saya menerangkan beberapa teknik recurrently digunakan untuk penyalahgunaan keharmonian organisasi proses.

 

2,2 Penimbal limpahan

Perkataan memberikan lebam angsa kepada mana-mana orang yang telah menangani dengan mereka, ia satu alat sandi, penguji permohonan atau pentadbir keselamatan. Ada yang mengatakan ia risiko keselamatan yang terbesar dekad [ref 4 ] . Teknik eksploitasi adalah mudah dan boleh membawa maut. Susunan program ini menyimpan data dalam perintah yang mana parameter yang diserahkan kepada majlis itu disimpan dahulu, maka alamat kembali, maka penunjuk timbunan sebelumnya dan seterusnya pemboleh ubah tempatan. Jika pemboleh ubah (seperti tatasusunan) yang diluluskan tanpa cek sempadan, mereka boleh melimpah oleh shoving dalam jumlah besar data yang merosakkan timbunan, yang membawa kepada yang menulis ganti alamat kembali dan seterusnya suatu kesalahan segmentasi. Jika silap mata tersebut dilakukan dgn licin, kita boleh mengubah suai penampan untuk menunjukkan kepada mana-mana lokasi, membawa kepada pelaksanaan kod menentu [ref 5 ] .

 

2,3 Heap limpahan

Memori yang diperuntukkan dalam timbunan dianjurkan sebagai satu senarai duanya adalah terpakai dikaitkan. Dengan melaksanakan limpahan kita boleh mengubah suai petunjuk senarai dikaitkan dengan titik ke dalam ingatan. Limpahan timbunan keras untuk mengeksploitasi dan lebih kerap berlaku di Windows kerana ia mengandungi data yang lebih penting yang boleh dieksploitasikan. Dalam mana-mana yang peruntukan memori sistem malloc, maklumat mengenai memori yang bebas dan memperuntukkan disimpan dalam timbunan itu. Limpahan boleh dicetuskan oleh mengeksploitasi maklumat ini pengurusan apa-apa yang kita boleh menulis kepada kawasan memori rawak kemudian, yang boleh membawa kepada pelaksanaan kod [ ref 6 ].

Jadi bagaimana limpahan dicetuskan? Terdapat senjata yang banyak dalam stok penimbal seperti rentetan dan rentetan fungsi, rentetan format, penunjuk nol, limpahan integer, isu-isu yang ditandatangani dan syarat-syarat yang bangsa yang boleh membantu untuk menjana syarat-syarat yang luar biasa dalam proses [ref 7].

Saya menekankan fakta bahawa artikel ini adalah tidak bertujuan untuk menjadi panduan yang muktamad kepada pelbagai teknik eksploitasi. Kami hanya menyediakan satu gambaran keseluruhan cepat apa yang penting, untuk mendapatkan pemahaman yang kukuh sesuatu yang akan datang dalam bahagian-bahagian yang berikutnya artikel ini. Mereka hanya bertindak sebagai petunjuk untuk rujukan lanjut.

 

3. Kelahiran Mengeksploitasi 1

Sekarang datang bahagian yang paling menarik, pengekodan mengeksploitasi. Badan atau struktur mengeksploitasi 1 boleh dibahagikan kepada pelbagai komponen, seperti yang dijelaskan dalam Rajah 1 [ ref 8 ]. Kami menerangkan beberapa kepusparagaman mengeksploitasi yang akan membantu kita untuk menganalisis angka seperti yang ditunjukkan.
Rajah 1
Rajah 1

 

3,1 Shellcode

Ini adalah muatan yang akan dilaksanakan selepas eksploitasi. Dalam kebanyakan kes, kami peralihan jalan pelaksanaan supaya muatan disuntik dilaksanakan [ ref 9 ]. Oleh itu alamat kembali ke titik shellcode ini. Ia terdiri daripada arahan pemasangan yang dikodkan sebagai rentetan perduaan yang menjalankan operasi seperti pembiakan cangkerang. Sekeping yang baik shellcode perlu menjadi trade-off antara saiz dan dan kerumitan. Terdapat banyak pengesahan yang dibuat semasa pengekodan muatan seperti menjaga pemeriksaan ke atas watak-watak yang terhad. Pada masa kini, payloads telah disesuaikan dengan sangat pendek dan memerlukan ruang yang kurang. Mereka boleh melaksanakan banyak operasi kompleks daripada membuka soket mendengar untuk memuatkan pengkompil pada komputer jauh.

 

3.2 Suntikan vektor

Penunjuk atau diimbangi di mana shellcode diletakkan dalam proses dan alamat nyata diubah suai untuk menunjukkan.

 

3.3 Permintaan pembina

Ini adalah kod yang mencetuskan mengeksploitasi. Jika ia berkaitan dengan fungsi-fungsi rentetan, maka bahasa skrip pilihan.

 

3.4 Handler Rutin

Bahagian ini pada amnya menggunakan majoriti kod. Ini adalah pengendali selama shellcode yang melakukan operasi seperti yang menghubungkan kepada bindshell, atau menyambungkan konsol ke soket.

 

3,5 pengendali pilihan pengguna

Ia pada dasarnya depan pengguna peringkat akhir menyediakan pengguna dengan pelbagai pilihan kawalan seperti pemilihan sasaran jauh, mengimbangi pemilihan, penggunaan terlalu banyak kata, debugging dan lain-lain pilihan. Ini membentuk majoriti kod mengeksploitasi dan membuat kod agak bersaiz besar.

 

3,6 Rangkaian sambungan Handler

Ini terdiri daripada pelbagai rutin yang mengendalikan sambungan rangkaian seperti resolusi nama, soket penubuhan, pengendalian ralat dan sebagainya.
Seperti yang kita dapat lihat ada banyak kod yang tidak perlu dan berulang-ulang yang menjadikan mengeksploitasi benar-benar besar dan kesilapan yang sering dilanda.

 

4. Beberapa masalah bersama

Dalam kursus pembangunan, banyak masalah yang dihadapi yang menghalang proses pembangunan mengeksploitasi. Perlumbaan yang gila orang yang cuba untuk melepaskan mengeksploitasi mula-mula membawa kepada banyak kod lapuk dan tidak perlu rumit.

Sesetengah eksploitasi perlu memahami konsep dan penyelidikan yang lebih mendalam, seperti eksploitasi berdasarkan protokol rangkaian (RPC, SMB dan SSL) dan dikelirukan API. Juga, tidak banyak maklumat yang didedahkan dalam nasihat itu, terdapat keperluan untuk uji kaji.
Mencari nilai sasaran juga satu sakit kepala besar yang melibatkan banyak percubaan dan kesilapan.

Akhir sekali, kebanyakan payloads keras dikodkan dan apa-apa perubahan yang memecahkan mengeksploitasi.

Banyak firewall dan IPSes mengesan dan menyekat shellcode.

Masa adalah perkara utama, dan sesetengah eksploitasi mengambil agak banyak masa dan penumpuan, di mana kedua-duanya adalah aset berharga penyelidik keselamatan.

Semua dikatakan dan dilakukan, mengeksploitasi pengkodan adalah salah satu neraka kerja tidak kemas!

 

5. Di sini ia datang!

Masukkan Rangka Kerja Metasploit (MSF)! Menurut Kursus MSF Crash Pengguna [ ref 10 ] pengguna,:
    "Rangka Kerja Metasploit adalah persekitaran yang lengkap bagi bertulis, ujian, dan menggunakan kod mengeksploitasi alam sekitar ini menyediakan satu platform yang kukuh untuk ujian penembusan, pembangunan shellcode, dan penyelidikan kelemahan."
Dalam erti kata saya, Rangka Kerja Metasploit penyelesaian tunggal kepada semua masalah di atas dibincangkan. Rangka kerja ini telah matang dirinya cukup setakat dalam versi pelepasan 2,0. Ia lebih stabil, mempunyai ciri-ciri yang sangat menarik dan antara muka pengguna yang sangat naluri untuk pembangunan mengeksploitasi.
Ciri-ciri utama yang memberikan kelebihan kepada MSF lebih pilihan lain ialah:
  • Ia terutamanya ditulis dalam Perl (dengan beberapa bahagian dalam perhimpunan, Python dan C), yang bermakna kod bersih cekap dan pantas plug-dalam pembangunan.
  • Prapakej sokongan untuk alat extensible, perpustakaan dan ciri-ciri seperti debugging, pengekodan, pembalakan, timeouts dan nops rawak dan SSL.
  • Sesuatu difahami, intuitif, mengeksploitasi modular dan extensible API dan alam sekitar.
  • Sangat dioptimumkan Muti-platform, mutli berciri payloads yang dinamik loadable.
  • Pengendali dipertingkatkan dan sokongan panggil balik, yang benar-benar memendekkan kod mengeksploitasi.
  • Sokongan untuk pelbagai pilihan rangkaian dan protokol yang boleh digunakan untuk membangunkan kod protokol bergantung.
  • Eksploitasi tambahan dimasukkan, yang membantu kami untuk menguji teknik eksploitasi dan sampel mengeksploitasi maju.
  • Ia adalah Perisian Open Source dan mempunyai komuniti pemaju yang khusus untuk sokongan.
  • Sokongan untuk ciri-ciri canggih dan alat-alat pihak ketiga seperti InlineEgg, berhadas, UploadExec dan proksi chainable.
Ia jelas bahawa MSF pastinya alat penembusan penguji mesti mendapatkan acquaintained. Ia memberikan seni eksploitasi paradigma baru.

 

6. Pemasangan

Pada masa ini, Rangka Kerja Metasploit kerja-kerja dengan cekap pada Linux dan Windows. Terdapat beberapa isu-isu keserasian yang kecil, tetapi mereka boleh uncared untuk. Pengguna boleh memuat turun keluaran terbaru untuk Windows dan Linux dari http://www.metasploit.com/projects/Framework/downloads.html .

Pemasangan adalah sangat remeh dan intuitif, dan pakej download di ekstrak dan negeri yang diurus. Pemasangan Windows mudah menunjukkan dalam Rajah 2. Dalam mana-mana yang Linux, nyahmampat arkib (yang dalam format rangka kerja 2.xxtar.gz), di mana direktori rangka kerja mengandungi disusun binari yang pelbagai untuk utiliti. Sambil berjalan di Linux dimaklumkan bahawa Penggal:: ReadLine:: Gnu (bagi sokongan siap tab) dan bersih:: SSLeay (untuk menyokong SSL) modul dipasang (ini boleh didapati di dalam direktori tambahan).
Rajah 2
 
Rajah 2
Persekitaran Windows adalah berdasarkan Kerry Cygwin alam sekitar, yang merupakan satu penyelesaian yang bijak kerana ia menyediakan konsol yang sangat berguna kepada pengguna. Walau bagaimanapun, terdapat beberapa masalah dengan sokongan Aktif Negeri Perl, maka ia menyokong Cygwin Perl sahaja. Pemasangan dibungkus sebagai persediaan yang boleh dilaksanakan, yang memasang Rangka Kerja Metasploit dalam direktori yang ditentukan (lihat gambar 2) dan menambah pintasan kepada.

7. Menamatkan Satu

Dalam bahagian pertama artikel ini, kami telah berjalan kaki melalui pelbagai teknik eksploitasi yang sering digunakan. Kami menyelidiki asas pembangunan mengeksploitasi dan bagaimana kod mengeksploitasi boleh dipecahkan kepada sub-struktur logik. Kita menjadi sedar tentang masalah-masalah utama yang melanda proses pembangunan mengeksploitasi dan bagaimana Rangka Kerja Metasploit bertindak sebagai penyelesaian kepada masalah-masalah ini. Kami juga membincangkan beberapa ciri-ciri dan tatacara pemasangan.
Dalam dua bahagian , kita akan memberikan kefahaman tentang penggunaan pelbagai pilihan arahan, berlari dan menambah eksploitasi baru, mengubah tetapan alam sekitar dan lain-lain ciri-ciri canggih Rangka Kerja Metasploit.

 

2 . Stack, Penunjuk dan Memori, Lally Singh http://www.biglal.net/Memory.html
3 . Pengagih Memori, Doug Lea http://gee.cs.oswego.edu/dl/html/malloc.html
4 . Penimbal limpahan mungkin sekitar bagi dekad yang lain, Edward Hurley http://searchsecurity.techtarget.com/originalContent/0, 289142, sid14_gci860185, 00.html
5 . Limpahan Penimbal Demystified, Murat http://www.enderunix.org/docs/eng/bof-eng.txt
6 . Badc0ded - Bagaimana untuk mengeksploitasi kelemahan program, http://community.core-sdi.com/ ~ Juliano / bufo.html
7 . Sebaik sahaja apabila bebas (), Phrack 57 Perkara 9 oleh Anonymous http://www.phrack.org/show.php?p=57
8 . Pembentangan Pembangunan Mengeksploitasi Advanced di HITB, HD Moore (PDF) http://conference.hackinthebox.org/materials/hd_moore/HDMOORE-SLIDES.pdf
9 . Merekabentuk Shellcode Demystified, Murat http://www.enderunix.org/docs/en/sc-en.txt
10 . Panduan Pengguna Crash Course untuk Metasploit Framework, (PDF) http://metasploit.com/projects/Framework/docs/CrashCourse-2.0.pdf

 
Komen atau permintaan cetakan semula boleh dihantar kepada yang editor .

No comments:

Post a Comment