Versija 4 nuo 2014-04-14 06:46:40

Išvalyti žinutę
Locked History Actions

Metasploit Framework

Įvadas

Metasploit – kompiuterių ir jų sistemų apsaugos projektas, teikiantis informacija apie sistemų ir jų duomenų pažeidžiamumus, taip pat orientuotas į pažeidžiamumų išnaudojimo testavimo programinės įrangos kūrimą. Šis projektas į informacijos saugos pasaulį įsiveržė 2004 metais, o projekto rezultatas bene geriausia pažeidžiamumų išnaudojimo testavimo programinės įrangos sistema Metasploit Framework (toliau – MSF). MSF yra pažangi atviro kodo struktūrinė sistema, skirta kurti, tobulinti ir naudoti pažeidžiamumų išnaudojimo kodus. Pridėtiniai modeliai, kurių pagalba pažeidžiamumų turiniai (angl. payloads), šifratoriai, no-op generatoriai ir pažeidžiamumų išnaudojimo kodai gali būti integruoti į MSF, padarė šią sistemą vieną iš pagrindinių įrankių pažangiame pažeidžiamumų tyrinėjime. Pačioje sistemoje pagal nutylėjimą jau yra įkelta šimtai pažeidžiamumų išnaudojimo kodų, kuriuos galima peržiūrėti modulių sąraše. Tokia egzistuojančių pažeidžiamumų išnaudojimo kodų gausa tik palengvina naujų išnaudojimo kodų kūrimą. Pagrindiniai šios sistemos naudotojai yra profesionalūs pažeidžiamumų testuotojai, kurie atlieka pažeidžiamumų kodų tobulinimą ir pačių techninių pažeidžiamumų tyrimus, tačiau ši sistema yra laisvai prieinama kiekvienam, besidominčiam informacijos sauga ir techninių pažeidžiamumų valdymų.

Atsiradimo istorija

2003 metais H.D. Moore‘as pradėjo Metasploit Project projektą, kuris buvo skirtas informacijos saugos bendruomenei su viešai prieinama pažeidžiamumų išnaudojimo tobulinimo programine įranga. Šio projekto rezultate atsirado MSF struktūrinė sistema.

Pirmoji MSF versija buvo pradėta H.D. Moore‘o naudojant Perl programavimo kalbą. Moore‘as sudarė pradinį sistemos vaizdą ir bazinį veikimo principą. Antrasis kūrėjas, žinomas Spoonm‘o vardu prisidėjo prie projekto 2003 metų gale ir pradėjo sumodeliuoti bendrą sistemos veikimo principą, kuris naudojamas iki šios dienos. 2004 metais prie Metasploit Project projekto prisidėjo ir trečiasis kūrėjas Matt‘as Miller‘is, dar žinomas Skape‘o vardu.

Pirmosios dvi MSF versijos buvo parašytos naudojant Perl programinę kalbą. Kadangi Perl programinė kalba turėjo daug trūkumų kūrėjams teko perrašyti sistemą naudojant Ruby programavimo kalbą. Šis darbas trūko dvejus metus, nuo 2005 m. iki 2007 m. 2007 metų pabaigoje Spoonm‘as ir Matt‘as Miller‘is paliko projektą ir nešini naujų idėjų subūrė naują kūrėjų komandą ir perėmė šaltinio kodo trijų sąlygų BSD (angl. three-clause BSD) licencijas pradedant nuo 3.2 versijos (2008 metai). Licencijos pasikeitimas, suderintas su naujai suburtos kūrėjų komandos energija ir idėjomis leido Metasploit projektui išlikti gyvam.

2009 metų lapkričio 21 dieną pažeidžiamumų valdymo sprendimų kompanija „Rapid7“ įsigijo Metasploit Project projektą. Prieš įsigijimą MSF sistemos tobulinimas vykdavo tik laisvų kūrėjų laiku, dažniausiai vakarais ir savaitgaliais. Kompanija „Rapid7“ sutiko kūrėjams finansuoti pilną darbo dieną ir paliko programiniam kodui galioti trijų sąlygų BSD licenciją.

Taigi, atviro kodo bendruomenės ir kompanijos „Rapid7“ bendradarbiavimas padėjo sukurti dar įvairesnę ir galingesnę Metasploit programinę įrangą, kuri padeda informacinių technologijų saugos profesionalams aptikti sistemų saugumo spragas, atrasti pažeidžiamumų mažinimo būdus, valdyti ekspertų atliekamus saugumo įvertinimus, bei suteikti tikslų sistemos pažeidžiamumų rizikos vertinimą. Į sistemos galimybes įeina: išmanusis pažeidžiamumų kodo išnaudojimas, slaptažodžių auditas, WEB aplikacijų skenavimas ir socialinės inžinerijos testai.

Metasploit architektūra

msfarch.png

1 pav. Metasploit architektūros blokinis vaizdas

Metasploit architektūra sudaro penki pagrindiniai blokai, kurių viduje yra atskiri objektai. Žemiau pateikiamas blokų (paryškintas šriftas) ir juos sudarančių objektų (pasviręs šriftas) sąrašas su paaiškinimais. Grafinis Metasploit architektūros vaizdas pateiktas 1 pav..

  1. Bibliotekos:

    1.1. Rex – pagrindinė biblioteka, skirta atlikti daugumai užduočių. Ši biblioteka valdo jungtis (angl. socket), įvairaus tipo protokolus, teksto transformacija ir kt. Pvz.: SSL, SMB, HTTP, XOR, Base64, Unicode.

    1.2. MSF CORE – pagrindinė aplikacijos programavimo sąsaja (API). Nusako MSF struktūrinę sistemą.

    1.3. MSF BASE – suteikia supaprastintą, vartotojui „draugišką“ aplikacijos programavimo sąsają.

  2. Moduliai:

    2.1. Pažeidžiamumo išnaudojimo kodo turinys (angl. payload) – programinio kodo dalis, kuri veikia nuotolinėje aukos sistemoje.

    2.2. Pažeidžiamumo išnaudojimas (angl. exploit) – programinio kodo dalis, duomenų rinkinys arba kodo seka, kuri pasinaudoja sistemos pažeidžiamumu ar klaidomis. Dar nusakomas kaip modulis, kuris naudoja pažeidžiamumo kodo išnaudojimo turinį.

    2.3. Pagalbiniai moduliai (angl. auxiliary) – naudojami skenavimui, sistemos užtvindymui duomenimis (angl. fuzzing) siekiant aptikti sistemos klaidas ir atlikti kitas įvairias užduotis.

    2.4. Post moduliai – skirti jau sukompromituotoms sistemoms siekiant surinkti įrodymams, kad į sistemą buvo įsilaužta arba naudoti šiuos modulius gilesniam įsibrovimui į tinklą ir pan. Post moduliai skirstomi į: Windows, Linux, OS X, Multi OS, Cisco, AIX, Solaris, Firefox.

    2.5. Šifratorius (angl. encoder) – speciali programa, kuri šifruoja pažeidžiamumo išnaudojimo kodo turinį siekiant apeiti antivirusinių programų patikrą.

  3. Sąsajos:

    3.1. msfconsole – bene populiariausia MSF sistemos sąsaja. Ši sąsaja suteikia taip vadinamas „viskas viename“ konsolės galimybes ir leidžia efektyviai pasiekti visas Metasploit Framework opcijas ir funkcijas. msfconsole sąsaja turi savitą komandų sistemą, kuri ne iškarto būną visiems suprantama. Tačiau perpratus šios sąsajos principą ir komandas msfconsole tinkamose rankose gali pavirsti į labai galingą pažeidžiamumų išnaudojimo ir testavimo įrankį.

Privalumai:

  • Vienintelis palaikomas kelias pasiekti dauguma MSF funkcijų.
  • Sąsaja su sistema paremta konsolės langu.
  • Turi daugiausia funkcijų ir ypatybių ir yra stabiliausia MSF sąsaja.
  • Galimas išorinių komandų vykdymas MSF konsolės lange, pvz., ping, nmap ir t.t.

Plačiau msfconsole sąsaja, jos pagrindinės funkcijos bei komandos aptariamos 4 skyriuje.

  • 3.2. msfcli – suteikia komandinės eilutės sąsają, susietą su MSF sistemą. Tai leidžia lengvai pridėti Metasploit išnaudojimo kodus į bet kokius kuriamus skriptus. msfcli sąsaja didžiausia dėmesį teikia skriptų rašymui ir jų interpretavimui. Šis įrankis taip pat labai pasitarnauja tuomet, kai yra tiksliai žinomas pažeidžiamumo išnaudojimas ir jo turinys.

Privalumai:

  • Palaiko išnaudojimo kodų ir papildomų modulių naudojimą.
  • Naudingas atliekant specifines užduotis.
  • Tinkamas mokymuisi.
  • Patogus kuriant ir tobulinant naujus pažeidžiamumų išnaudojimus.

Vienas iš msfcli trūkumų yra nepalaikomas toks didelis funkcijų kiekis kaip msfconsole sąsajoje bei palaiko tik vieną vartotojo sąsają (angl. shell) vienu metu. Taip pat nepalaiko patobulintų automatizavimo ypatybių.

  • 3.3. WEB grafinės sąsajos (Community, PRO)

Metasploit Community – nemokama MSF versija, skirta studentams ir smulkaus verslo įmonėms. Metasploit Comumnity suteikia galimybę naudotojams grafinės vartotojo sąsajos pagalba lengvai atlikti tinklo komponentų nustatymą, pažeidžiamumų aptikimą ir jų išnaudojimą.

Ypatybės:

  • Tinkle esančių komponentų nustatymas: sistemų identifikavimas, prievadų skenavimas, sistemose veikiančių OS nustatymas.
  • Integracija su pažeidžiamumų skeneriais: galimas skenavimo rezultatų importavimas į Metasploit Community iš Nessus, NMAP, NeXpose, Qualys ir kitų skenerių. NeXpose skenavimas gali būti inicijuotas tiesiogiai iš Metasploit Community grafinės vartotojo aplinkos.

  • Aptikus pažeidžiamumus Metasploit Community parenka tinkamus pažeidžiamumų išnaudojimo modulius.
  • 3.4. ARMITAGE – specialus priekinės (angl. frond-end) sąsajos įrankis, skirtas MSF sistemai. ARMITAGE yra atviro kodo programinė įranga sukurta Raphael‘io Mudget‘o kompanijos, leidžianti geriau suprasti pažeidžiamumų testavimo procesą ir pačią MSF sistemą.

  • Įrankiai:

    • Tai yra specialūs įrankiai, kurie yra naudojami specifiniams veiksmams atlikti. Pvz., testuotojas norėdamas gauti aukos ekrano vaizdą pasinaudoją atitinkamu įrankiu.
  • Įskiepiai:

    • Integruojamos specialios paslaugų programos (angl. utilities), tokios kaip: Nmap, NeXpose, Nessus ir t.t.