HackingMéxico - Libro Certificacion de Seguridad Ofensiva Nivel 1
HackingMéxico - Libro Certificacion de Seguridad Ofensiva Nivel 1
www.hackingmexico.one
PHKERVIRTUAL
PHKV
Todos los nombres propios de programas, sistemas operativos, equipos, etcétera, que aparezcan en este libro
son marcas registradas de sus respectivas compañías u organizaciones.
Reservados todos los derechos. El contenido de esta obra está protegido por la ley, que establece penas de prisión y/o
multas, además de las correspondientes indemnizaciones por daños y prejuicios, para quienes reprodujesen, plagiaren,
distribuyeren o comunicasen públicamente, en todo o en parte, una obra literaria, artística o científica, o su
trasformación, interpretación o ejecución artística fijada en cualquier tipo de soporte o comunicada a través de cualquier
medio, sin la preceptiva autorización.
Ciudad De México
Impreso México
PHKV
A mis padres, a toda la familia Torres Ramírez por todo lo que hicieron por mí, hasta la fecha.
A mi amigo Raúl Robles por su recorrido y enorme noble labor que hizo al fundar HackingMexico, sobre todo
lo que aporto para la comunidad informática en México,
QEPD.
PHKV
TABLA DE CONTENIDOS
Capítulo 1: Hacking de Aplicaciones Web
PHKV
❖ Uso OWASP-ZAP para identificar fallos de seguridad ........................................................ 50
❖ Módulo Wmap en Metasploit ................................................................................................
53
Explotación ...................................57
❖ Ataques por fuerza bruta ....................................................................................................... 57
▪ Elaboración de Wordlists (diccionarios) con Cewl .................................................................................. 58 ▪
Elaboración de Wordlists (diccionarios) con John the Ripper ............................................................... 60 ▪
Ataque por fuerza bruta mediante THC-Hydra ........................................................................................ 61 ▪
Ataque por fuerza bruta mediante OWASP-ZAP ..................................................................................... 65
Clickjacking ................................... 97
❖ Despistando mediante acortadores...................................................................................98
❖ Método de ocultación de barra de estado.……………………………………..…………..99
❖ Forzando un clic..................................................................................................................101
PHKV
Local File Inclusion (LFI) .................. 103 ❖ Shell
php..............................................................................................................................105 ❖
Ataque DDos. ……………………………………………………………………………………111
Capítulo 2: SPOOFING
❖ Introducción Spoofing…………………………………………………………………………...113
• Web Spoofing………………………………………………………………………………………………..…114 •
Mail Spoofing………………………………………………………………………………………………......114 •
Preparando nuestro entorno de trabajo…………………………………………………………………114 •
Requerimientos mínimos……………………………………………………………………………………..115 •
Herramientas necesarias………………………………………………………………………………….....115 •
Notepad ++…………………………………………………………………………………………………….115 •
FileZilla FTP Client………………………………………………………………………………………………115 •
Hosting…………………………………………………………………………………………………………..116
❖ Creando un Scam………………………………………………………………………………..116
❖ Spoofing
Facebook………………………………………………………………………………137
PHKV
m)
❖ Introducción. ..........................................................................................................................
177
▪ ¿Por qué Metasploit? .................................................................................................................................. 177
❖ Post-Explotación
....................................................................................................................... 238 ▪
Manteniendo el Acceso (Persistencia) ..................................................................................................... 238 ▪
Creación de un Backdoor Persistente ....................................................................................................... 238
▪ Extracción de información y monitoreo del equipo comprometido ................................................... 242
▪ Uso de un Keysniffer ......................................................................................................................................
242
▪ Captura de Screenshots, monitoreo del sistema comprometido ....................................................... 244 ▪
Exploración de los directorios del sistema ................................................................................................ 246
PHKV
Exiv2 ...................................................................................................................................
287
❖ Explotación vía remota mediante protocolo SSH. .........................................................
288
▪ Herramientas .................................................................................................................................................
289 ▪ ¿Que es el protocol SSH? Y como aprovecharnos de el
..................................................................... 291 ▪ Explotación y robo de Información almacenada del
dispositivo ...................................................... 292
❖ Introducción. .........................................................................................................................
302
❖ Explotación mediante apk infectada y control remoto del dispositivo. ................................
302
▪ Herramientas .................................................................................................................................................
302
▪ Elaboración de Apk maliciosa mediante Msfpayload y explotación del dispositivo ...................... 303 ▪
Interacción remota con dispositivo mediante meterpreter ................................................................. 307
Introducción…………………………………..……………………………………………………..326
• Languaje ensamblador………………………………….……………………………..................................291 •
Conceptos básicos……………………………………………………………………………………………..291 •
Registros del procesador………………………………………………………………………………………326 •
Registros de base…………………………………………………………..……………………………………327 •
Registros de índice………………………………………………………………………………………………327 •
Instrucciones básicas………………………………………………………………..………………………….329 •
Conociendo nuestro entorno de trabajo………………………………..…………………………………332
❖ OllyDbg
……………………………………………………………………………………………....232
• Configurando OllyDbg…………………………………………………………………………………………233 •
Partes de OllyDbg……………………………………………………………………………………..………...235 •
Analizando nuestros primeros ejecutables……………………………………………………..………….340 •
Crackme 0 – Noob.exe………………………………………………..……………………………………….340
PHKV
• Crackme.exe………………………………………………………………………………………………..……354 •
Crackme 2.exe…………………………………………………………………………………………………..366 •
Crackme 3.exe…………………………………………………………………………………………………..374
❖ Creación de un parche………………………………………………………………………….391
❖ Cracking en
.NET…………………………………..………………………………………………..399
• Introducción……………………………………………………………………………..…………….…………399 •
¿Qué es .NET?..........................................................................................................................................399 • El
CLR, Common Language Runtime……………………………………………….…….…………….…..400
• El CTS, Common Type
System…………………………………………………………….……………….….400
• Prueba Cracking Login.exe…………………….……………………………………………………………..401 •
Herramientas…………………………………………………………………………………………………..…401 •
Ejemplo #2 LoginVB.exe………..………………………………………………………………………….…..407 •
Serial.exe………………………..…………………………………………………………………………..…….411
❖ Cracking en
Java…………………………………………………………………………………..415
• Introducción………………………………………………………………………………...……………………416 •
SimplePasswordCheck.class………………………………………………………………………..…………423 •
Ejercicio Crackme01.jar…………………………………………………………………...……………...……425 •
Construyendo Keygen en Java………………………………………………………………..…………….427
❖ Cracking .apk
(Android)………………………………………………………………..…………432
• Introducción……………………………………………………………………………………………….……..432 •
Preparando nuestro entorno de trabajo……………………………………….…………………………..433 •
Advanced Apk Tool…………………….………………………………………………………………………433 •
Dex2jar……………………………………………………………………………………………………….……333 •
Ejercicio Crackme1.apk…………………………………………………………………………...…..………433
PHKV
Lo que necesitarás para este libro:
Se hará uso de varias máquinas virtuales y demás software que constituirá nuestro
laboratorio virtual para pentesting, para para poder realizar los ejercicios necesitarás lo
siguiente:
▪ Hardware: Tu maquina debe contar al menos con 4GB de RAM, 90GB libres en HDD, y
procesador Core i3 o superior.
Lo que se cubre en nuestro libro:
PHKV
inyecciones SQL, Clickjacking y demás ataques, todos guiados paso a paso y a detalle
usando las herramientas incluidas en el repertorio de las distros para pentesting que
usaremos.
Capítulo 2: spoofing: En este capítulo explicaremos las diferentes técnicas de spoofing de las
cuales un atacante, generalmente con usos maliciosos o de investigación, se hace pasar
por una entidad distinta a través de la falsificación de los datos en una comunicación y de
esta forma robar credenciales de acceso usando de ejemplo robo de cuentas en redes
sociales. Se puede englobar dentro de spoofing cualquier tecnología de red susceptible de
sufrir suplantaciones de identidad.
Capítulo 3: METASPLOIT Framework Y ATAQUES Man i n the Middle: En este apartado se harán las
configuraciones necesarias para trabajar en nuestro laboratorio virtual, incluyendo la
mención del software requerido para ello, asi como la se hará la introducción tanto teórica
como practica a la recopilación de información y sus distintas maneras de realizarla,
también se demostrará el potencial del Framework de Metasploit, con múltiples pruebas y
ejercicios, cada uno guidados paso a paso. Asi como también ataques MITM y el uso de las
herramientas para poder hacer sniffing, capturar credenciales e interceptar tráfico.
PHKV
dentro del repertorio de estas, se puede encontrar una amplia gama de
herramientas para estos propósitos.
VENTAJAS:
PHKV
la edición Full o la edición Lite, esta última es una versión aún más ligera y
portable, ya que no trae todas las herramientas precargadas, se encuentran el
su página oficial de Parrot en la sección de
descargas: https://www.parrotsec.org/download.fx Pasos
de Instalación:
❖ Descargar la imagen en formato ISO
❖ Descargar e instalar la version de prueba por 30 días o comprar la licencia de
uso de VMware Workstation o VMware Fusion en el caso de Mac. ❖ Ya instalado
el software, abrimos VMware y hacemos clic en “Create a New Virtual
Machine”:
Imagen 1.1: Visualización de VMware.
PHKV
❖ Hacemos clic en Next, lo que sigue es escoger el Sistema operativo, hay veces
en las que VMware reconoce la arquitectura y Sistema operativo que
compone al .iso, pero en este caso no, por lo que nosotros tendremos que
especificarlo, en este caso el Sistema es Linux con la version Debian 8 de
arquitectura de 64 bits :
❖ Seguido aparecerá otra ventana donde le asignaremos un nombre y un
directorio de locación a nuestra máquina virtual, en este caso se le asignó
“Parrot OS” como nombre y el directorio por Default que se muestra:
Imagen 1.5: Nombrando nuestra máquina virtual y seleccionada la locación en donde se instalará.
PHKV
Imagen 1.6: Espacio de disco duro que se le asignará a la VM y almacenando el disco virtual como un solo archivo.
❖ Después asignarlo hacemos clic en Next y veremos la última ventana donde
se muestra la configuración con la que se creará la VM (virtual machine), es
importante que la configuración del adaptador de red esté en NAT:
PHKV
Imagen 1.9: Selección de método de
instalación.
PHKV
❖ Ya iniciando sesión, asi luce la GUI de Parrot OS:
PHKV
❖ Al ejecutarlo se abre VMware y está lista para su uso:
PHKV
Imagen 1.1.6 y 1.1.7: VM de OWASP BWA creada e iniciada, en donde se muestran su acceso.
PHKV
Kali Linux, Parrot Security OS, Backtrack y demás distros son utilizadas por
profesionales de la seguridad para llevar a cabo las tareas de seguridad
ofensivas.
Estas distribuciones vienen con un gran repertorio de herramientas de hacking
que están listas para su uso con todos los requisitos previos instalados. Vamos a
profundizar en las herramientas y como se utilizan para realizar Pentesting a las
aplicaciones web que son vulnerables a los principales defectos que se
encuentran en las aplicaciones web hoy en día en el mundo real.
Hay casos en los que los servidores de seguridad de red y dispositivos de proxy
nunca fueron diseñados para bloquear tales intrusiones; que necesitan para
probar las aplicaciones hasta qué punto el atacante podría hacerlo y eso es
exactamente lo que vamos a cubrir.
PHKV
Imagen 1.1.8: Repertorio de Herramientas incluidas en Parrot, mostrando la categoría de “Análisis de Aplicaciones
PHKV
Recopilación de información
En un escenario de Pentesting de una red, el reconocimiento/recopilación de
información es la fase donde los Pentesters deben identificar todos los activos
en los sistemas de red, firewalls y IPS (Sistema de prevención de intrusos)
también obtener información sobre la compañía, la red hasta incluso los
empleados. En nuestro caso, en el Pentesting de aplicaciones web, esta
etapa será todo acerca de conocer a la aplicación, la base de datos, los
usuarios, el servidor, y la relación entre la aplicación y nosotros.
Encontrando Hosts.
PHKV
NOTA: Nuestra máquina virtual OWASP BWA debe estar encendida y
configurada en modo NAT para que este en la misma red que la maquina
atacante.
fueron 4 :
Imagen 1.2.1: Resultados arrojados por Nmap.
❖Podemos ver que se muestra “Alive” nuestra VM OWASP, donde nos indica su
IP, nombre del HOST y demás:
PHKV
PHKV
• Vemos que el sistema es un Linux con Kernel 2.6, Apache versión 2.2.14,
PHP 5.3.2 y demás detalles sobre el sistema dentro de este Host.
-sS Realiza un escaneo de tipo SYN, en donde se lleva a cabo un escaneo más cauteloso o
de tipo “Stealth”
-sV Este parámetro indica que en el escaneo se identifiquen los servicios que estén en
ejecución en los puertos abiertos en el Host.
-p Indica el rango de puertos que abarcará el escaneo de un Host, Ejemplo: nmap –sV “IP
del Host” –p 1-4444
PHKV
❖Para realizar un escaneo de todo el rango de nuestra IP, basta con ingresar
en el campo de la IP, nuestra IP, y en el último identificador de host
escribimos: “0/24” para realizar el escaneo del host 1 al 255.
❖Al terminar se arrojaran los resultados del escaneo, indicando lo que pueden
demostrar los parámetros de configuración involucrados en el escaneo, asi
como un mejor informe acerca de los resultados:
PHKV
♦ Realizar Ataques y pruebas a las aplicaciones cuantas veces queramos para entender
mejor como es que se lleva a cabo esto.
PHKV
Imagen 1.2.7: Ingreso a la VM de OWASP BWA desde el navegador web, solo colocando
la IP de la VM OWASPBWA.
Imagen 1.2.8: Listado de Aplicaciones que contienen más aplicaciones para la realizar
Imagen 1.2.9: Aplicaciones que proporcionan un ambiente más real para las simulaciones
PHKV
iniciarlo, se puede encontrar en el menú de Parrot o lo podemos iniciar con el
comando “owasp-mantra-ff”:
• Ya iniciado, nos abrirá un nuevo navegador junto con todos los “add-ons” o
extensiones para análisis web, desde este navegador ingresaremos a nuestro
servidor OWASP, colocando la dirección IP de esta máquina virtual en la barra
del navegador, dentro entraremos a la aplicación de “WackoPicko”
Imagen 1.3.1: Vista de como luce el navegador “Mantra” y la ubicación de algunas de sus herramientas.
• Firebug nos permite analizar los elementos y poder modificarlos, así para alterar
la forma en el que el navegador los interpreta, asi dándonos cuenta de los
fallos o vulnerabilidades que tienen estas aplicaciones web, que
comúnmente ocurren al momento del desarrollo de estas mismas, la
herramienta es de gran ayuda al momento de que nosotros exploremos de
forma manual las aplicaciones y asi encontrar estos puntos débiles.
Crawlers y spiders.
Como parte de la fase de recopilacion de información, en una prueba de
penetración web, tendremos que navegar por cada link o URL incluido en una
página web y mantener un registro de cada archivo que se muestra por ella.
Existen herramientas llamadas “Crawlers y Spiders”, estas nos ayudan a
automatizar tareas de este tipo. Estas herramientas lo que hacen es navegar
por una página web siguiendo todos los enlaces y referencias a archivos
externos o incluso descargar una página para posteriormente realizar un
análisis a esta.
ZAP es una herramienta desarrollada por el grupo de OWASP, esta nos permite
realizar múltiples tareas relacionadas con la auditoria y pentesting web, entre
ellas escaneos en busca de vulnerabilidades y fallos de seguridad, recopilar
información acerca de un dominio y de más. Es esta aproximación la usaremos
para encontrar todos los archivos y demás contenido que este dentro de un
dominio, esto con el fin de obtener un panorama mayor acerca de lo que
contiene un dominio.
PHKV
Para configurarlo se hace lo siguiente:
PHKV
• Dentro de la terminal donde iniciamos el proxy, también se muestra el progreso
de búsqueda de directorios y archivos mediante la técnica de “Forced
Browse Directory”:
Imagen 1.3.7: Resultados mostrados en la Terminal desde donde se inicializó OWASP ZAP
Burp es una herramienta que quizás es la preferida cuando se trata del análisis
del comportamiento de una aplicación web, puesto que trae muchas
PHKV
funciones y una interfaz gráfica de fácil uso, ya que aún estamos en la parte
de recopilación de información, lo utilizaremos para hacer “crawling” a una
aplicación web.
• Hay que configurar el Proxy de nuestro navegador web, para que funcione
con BURP.
• Abrimos Burp Suite, se encuentra en: Análisis de aplicaciones web, Proxies de
aplicaciones web y Burp Suite:
PHKV
• Usaremos un spider que tiene Burp para seguir todos los enlaces en los que
naveguemos. Hacemos clic derecho en nuestro host:
PHKV
• Al hacer Submit el Spider seguirá con su trabajo, seguido de esto, nos pedirá
de nuevo que ingresemos el usuario y contraseña para el registro que está en
la página, ignoraremos esto presionando el botón de “Ignore this form”.
PHKV
A diferencia de otros Spiders, este funciona de una forma más cautelosa y
diferente, podemos seguir con nuestra navegación y el spider seguirá
alojando los resultados en otro lado.
• Hecho esto nos dirigimos a la pestaña del Repeater para ver qué es lo que
sucede con él, en el lado de Request está la información que enviamos, y en
donde aparecen los valores asignados a las variables de loggeo. Hacemos
clic en Go para poder ver la reacción del servidor en el lado derecho donde
dice Response:
PHKV
Imagen 1.4.4: Enviando petición del paquete hacia el servidor para ver su respuesta de este.
Imagen 1.4.6: Vista de la página donde reside el paquete del que se envió petición.
PHKV
Identificando vulnerabilidades
Después de haber utilizado varias herramientas de recopilación de información
y haber encontrado posibles puntos débiles dentro de algunas aplicaciones
web, lo que se hará a continuación será utilizar herramientas automatizadas
PHKV
para encontrar vulnerabilidades en las aplicaciones web a las que queremos
hacer un Pentesting. Esta parte es de suma importancia, ya que aquí se
determinan los numerosos factores que implican los vectores de ataque que
nos permitirán realizar algo perjudicial a una aplicación web o a un servidor
completo, aquí es donde la información arrojada al principio en la recolección
y la información que se obtiene aquí nos permiten aproximarnos más a la
explotación de nuestro objetivo
PHKV
PHKV
• No hubo errores, lo que tenemos aquí es una posible Inyección SQL, se puede
intentar con números distintos, ahora ejecutaremos comandos basicos que
funcionan como vectores de ataque en el “input” o entrada de datos: ‘ or
‘1=’1 La ejecución de comandos en situaciones como esta es de gran
utilidad ya que lejos de arrojarnos un error de validación como el anterior, se
pueden mostrar mayores cosas como más usuarios, información diferente o
incluso las tablas en esta base de datos. Al ejecutar el comando anterior se
muestran todos los nombres que están dentro de la tabla relacionada al ID,
aquí ya sabemos con certeza que tenemos un problema de inyecciones SQL,
ya que no está autenticado correctamente el ingreso de datos en ese input:
La inyección de Imagen 1.5.2: Información obtenida de la base de datos. SQL toma lugar cuando
la entrada de datos o “input” no tiene validación o la configuración correcta
al hacer una consulta en la base de datos, esto permitiéndonos la ejecución
comandos referentes a la base datos que se use. Lejos de ver un simple listado
de usuarios, este ataque puede ser mucho más peligroso, puede comprometer
un servidor por completo y manipularlo al gusto de atacante/s… como se verá
más adelante.
Uso de Tamper Data para alterar paquetes
Dentro del repertorio de herramientas de Mantra, no encontramos con Tamper
Data que nos perimite visualizar, entender y manipular partes o parámetros a
los que a simple vista no tenemos acceso en la aplicación web.
PHKV
• En el navegador Mantra, abrimos la pestaña Dentro de la pestaña “Tools”, nos
dirigimos al menú desplegable de “Application Auditing” y escogemos
“Tamper Data” :
PHKV
Escáneres Automatizados
• Abrimos una Terminal de comandos y escribimos: “nikto -h” para que nos
muestre los múltiples parámetros de configuración:
reportó:
Imagen 1.6.1: Resultados obtenidos por Nikto exportados en formato .HTML
PHKV
Imagen 1.6.2:
Visualización de reporte en el Navegador Web.
Imagen 1.6.3: Estadísticas del escaneo y tiempo que tomo para llevarse a cabo.
En nuestro reporte podremos ver la información recopilada sobre el host,
varios resúmenes acerca de distintas asi como también las vulnerabilidades
encontradas. Como se menciona antes, también hay múltiples
configuraciones para realizar nuestros escaneos, utilizando el comando “nikto
–h”.
Previamente usado, ZAP nos permite realizar varias tareas tiene muchas
herramientas, entre ellas un escáner automatizado, el cual nos permite realizar
escaneos más a fondo que algunas otras herramientas gracias a su extensa
variedad de funcionalidades, asi como la generación de reportes, en este
ejercicio utilizaremos el escáner.
PHKV
• Configuramos el proxy de nuestro navegador para que funcione junto con
ZAP.
• Abrimos OWASP – ZAP desde la terminal de comandos o el menú de
aplicaciones
• Dentro de nuestro navegador web entramos a nuestra maquina OWASP ZAP,
nos dirigimos a la página de Cyclone:
PHKV
• Una vez terminado el proceso, abrimos las pestaña de “alerts” para ver
información relevante sobre las posibles vulnerabilidades encontradas en la
aplicación web gracias al escaneo que se realizó junto con las tecnologías
que habilitamos para la búsqueda:
Imagen 1.6.8: Pestaña “Alerts” donde se mostrarán los respectivos fallos de seguridad.
PHKV
• Para realizar la generación y exportación de un reporte de los resultados
obtenidos, en la barra de herramientas superior escogemos “Report” y luego
en “Generate HTML Report”, no necesariamente se tiene que generar en
formato HTML, hay múltiples extensiones tanto en ZAP como en demás
escáneres. Seguido de escoger la extensión del archivo de salida,
escogeremos el directorio donde se guardara nuestro output (Reporte) y el
nombre que se le quiera poner, para posteriormente abrirlo con nuestro
navegador web preferencial:
PHKV
Imagen 1.7.2: Creación de las bases de datos.
• Con los comandos “help” visualizamos la lista de los modos de uso para el
modulo en el que estamos dentro:
Imagen 1.7.4: Opciones de uso para Wmap.
PHKV
Imagen 1.7.5: Parámetros
de configuracion para la
opción i
• Luego de haber sido creado el sitio, para mostrar la lista de hosts o URLs
añadidos utilizamos el comando “ wmap_sites -l”:
PHKV
• Después de una larga espera (en el caso del escaneo de este sitio), para ver
el listado de vulnerabilidades, utilizamos los comando “vulns” para entrar al
módulo donde se encuentran las vulnerabilidades del host especificado y el
comando “wmap_vulns –l” para visualizar todas la vulnerabilidades o fallos de
seguridad identificados en el proceso de escaneo para ese host (el listado de
las vulnerabilidades puede variar):
Imagen 1.8.0: Uso del comando “vulns” para enumerar en un
listado las vulnerabilidades encontradas.
PHKV
Wmap funciona mediante el apoyo de los demás módulos de Metasploit para
poder realizar el escaneo y enviar los resultados a la base de datos, el
framework integra estos módulos, así entrando a cada directorio o enlace
dentro de la aplicación y realizar un escaneo más profundo del host
especificado en los parámetros de configuración.
Explotación.
PHKV
• La manera en que haremos la lista o diccionario será analizando una
aplicación web, en este caso tomaremos como ejemplo a la página de
WackoPicko, en donde se recopilarán todas las palabras o combinaciones
que estén dentro para después agregarlas a esta lista, de donde sacaremos
la lista que queremos, ejecutamos: “cewl –w cewl_Wacko.txt –c –m 5
http://192.168.28.129/WackoPicko/” Donde “–w” especificará el archivo de
salida, “-c” contará el total de veces que una palabra se encuentre y “-m” es
el mínimo de dígitos que se establecerá para la búsqueda de palabras.(La
dirección cambia depende de la IP de su máquina vulnerable):
Imagen 1.8.2: Configuración de comando para construir un diccionario basado en el contenido dentro del dominio
id
• Ejecutado con éxito y creada la lista, vamos a su ubicación (root por defecto),
abrimos el archivo, aparecerá con el nombre que se le haya dado, y lo
abrimos. Se mostrará la lista generada tras el análisis de la aplicación y
posteriormente utilizaremos esta lista para hacer un ataque de tipo Fuerza
Bruta.
Imagen 1.8.3: Contenido del diccionario elaborado con Cewl.
PHKV
Elaboración de diccionarios con John the Ripper.
• Mencionado antes, John tiene la opción de mostrar las palabras que el usaría
para hacer el ataque. Ejecutamos el siguiente comando: john --stdout -
wordlist=cewl_Wacko.txt :
Imagen 1.8.6: Combinación de palabras y numerosas exitosa, aumentando asi el tamaño de nuestro
diccionario, con 3496 palabras.
• Nos dirigimos a Damn Vulnerable Web Application (El link Puede variar):
PHKV
Imagen 1.8.8: Configuración de comando para obtención de diccionario en base al contenido del dominio especificado.
• Ya
abierto el file, vemos las palabras recopiladas de la página para nuestra lista de
usuarios, nosotros le agregaremos unas cuantas, de forma manual añadimos los
7 usuarios que están seleccionados, les quitaremos los números, dejando
solamente las comas al costado de cada palabra, quedando asi el archivo:
Imagen 1.8.9: Adición manual de combinaciones a nuestro diccionario.
• Luego de configurar esto, abrimos Burp Suite para que empiece a interceptar
el tráfico y paquetes que se envían: Dejando listo esto, navegamos a la
aplicación de DVWA, dentro, en la forma de loggeo enviamos un usuario y
password errorenos.
PHKV
• Ya vimos cómo es que funciona, estamos listos para realizar el ataque, asi que
ejecutaremos el siguiente comando:
hydra 192.168.28.129 http-form-post
"/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:login.ph
p" -L cewl_users.txt -e ns -u -t 2 -w 15 -o resultadoBruteForceHydraDVWA.txt
• Donde http-form-post indica que el ataque será contra una forma HTTP con
solicitudes de tipo POST.
• -L es la lista que se usara para los usuarios
• -e ns se indica para usar el nombre de usuario como contraseña y también
intenta dejando el campo de la contraseña vacío.
• -u este parámetro se usa para comenzar las iteraciones con los usuarios y no
con los passwords, asi evitando el bloqueo de la cuenta si se presentará el caso.
• -t 2 Significa que vamos a usar 2 “threads” (hilos) al mismo tiempo, así sin hacer
flooding del servidor.
• -o será para indicar el nombre de nuestro archivo de salida.
Al ejecutarlo comienza el proceso de envío de peticiones, comprobando cual
o cuales son las credenciales correctas para completar este loggeo, asi como
también se muestra el archivo de salida generado por la herramienta, este se
guarda por default en la locación de “root”:
PHKV
Imagen 1.9.3: ataque completado y obtención de usuarios y passwords correctos para el loggeo.
En resumen, lo que hicimos fue analizar el request de loggeo para saber cómo
funcionaba y como estaba constituido, esto gracias al proxy que utilizamos
que fue Burp Suite para después realizar un ataque de fuerza bruta con Hydra
mediante los parámetros de configuración adecuados y una lista de usuarios
que ya teníamos y que modificamos, como se vio, hicimos uso de Hydra y sus
funciones como cracker de passwords de servicios online.
PHKV
poder hacer testing de aplicaciones web. Estas herramientas ya vienen
instaladas en la distro de Parrot.
• Abrimos el navegador y nos dirigimos a Damn Vulnerable Web Application, nos
loggeamos y dentro escogemos la pestaña de Brute Force que será donde
realizaremos el Ejercicio:
“Add”:
Imagen 1.9.7: Selección de vector en donde se realizará el Fuzzing.
PHKV
• Al seleccionarlo se mostrará un parte del código con la que se hace
interacción, como también la respuesta que se obtiene con ese payload,
donde nos muestra las credenciales válidas.
Imagen 1.10.1: Obtención de las credenciales legítimas, junto con demás detalles sobre esta petición
NOTA: Aquí se utilizó Firebug y se cambió el tipo de campo para la contraseña fuese
visible.
Lo que hicimos aquí en este ejercicio fue hacer uso de un Web proxy (ZAP) y
poder analizar el funcionamiento del servicio de loggeo en el ejercicio de
Brute Force en DVWA, así enviando un Fuzzer al campo de del password para
que inyectará el vector de ataque antes seleccionado. Y así mostrando los
Fuzzers
PHKV
reflejados junto con los payloads que dieron resultado, en este caso fue el de
“admin”.
Un fuzzer o también Fuzzing es una técnica de pruebas de software utilizado
para descubrir los errores de codificación y los agujeros de seguridad en el
software, sistemas operativos o una red mediante la introducción de
cantidades masivas de datos aleatorios al sistema provocando incluso que
este caiga.
Es un ataque que está dirigido a las bases de datos, en donde se lleva a cabo
la inyección de vectores de ataque en un input especificado, este fallo de
seguridad o vulnerabilidad se deben comúnmente a que la entrada de datos
o inputs no autentican de forma correcta el ingreso de datos (como se vio
anteriormente)aquí es donde un atacante puedea provecharse para realizar
acciones perjudiciales, este tipo de ataques pueden llegar a ser bastante
comprometedores, en la mejor situación, acceso a información sensible, en el
peor de los caso, comprometer por completo un host o servidor.
Este tipo de ataques pueden ser de proceso muy laborioso, ya que los factores
a considerar pueden ser numerosos, en nuestras distros para Pentesting
(Kali/Parrot) se incluye una herramienta que facilita este proceso, SQLmap. Esta
es una de las herramientas opensource más poderosas para pentesters que
automatiza el proceso de búsqueda y explotación de inyección SQL, para
robar datos o capturar a un host remoto. Lo que hace sqlmap diferente de
otras herramientas para la explotación de inyecciones SQL, sqlmap es capaz
no sólo de encontrar un fallo de seguridad, sino que también explotarlo en su
totalidad, además tiene una gran funcionalidad, que va desde la posibilidad
de determinar el sistema de gestor de base de datos (DBMS), realizar volcados
(copias) de los datos y puede terminar con la obtención del acceso al sistema
con la capacidad para acceder a archivos en el host y ejecutar comandos
arbitrarios en el servidor .
PHKV
• Navegamos a:
“http://192.168.28.129/mutillidae/index.php?page=userinfo.php” (La dirección
varia). En donde veremos una forma de loggeo, la cual atacaremos.
PHKV
• Viendo el modo de uso y escogiendo los parámetros de configuración
adecuados, ejecutaremos el siguiente comando, la dirección puede cambiar:
“sqlmap –u "192.168.28.129/mutillidae/index.php?page=user
info.php&username=usuario&password=sqlinject&user-info-php
submitbutton=View+Account+Details" -p username --current-user --current
db”.
PHKV
Imagen 1.10.6: Especificando si queremos continuar con la revisión en busca de demás GDBD.
• El proceso de continuará, hasta que se confirma que el método “GET” es
inyectable y es a base de errores:
Imagen 1.10.7: Indicación de que el parámetro GET “username” puede ser inyectable.
• Seguido de esto, nos indica que el objetivo URL tiene 7 columnas inyectables
en su BD. Al igual que el parámetro “GET” es una consulta de tipo “UNION” y
tiene de 1 a 20 columnas inyectables en esa BD:
PHKV
• También nos arroja información acerca del servidor, asi como también sobre la
base de datos, incluido el nombre de ella y del usuario actual:
Imagen 1.10.9: Información sobre el servidor donde se hospedan las bases de datos, asi como el usuario
y base de datos actual.
• Ejecutaremos el comando anterior, solo que con unos cambios, al terminar “–
p username” le agregaremos: “-D nowasp” y “--tables”. Donde “-D” es el
nombre de la BD, y “--tables” para que nos muestre las tablas.
SQLmap tiene un registro, dentro de él se almacena la info o el estado
anterior de la inyección, así podremos retomar el punto en el que la dejamos
sin tener que comenzar de nuevo:
• Nos muestra las tablas que están dentro de la base de datos que
seleccionamos, para posteriormente visualizar la información dentro de ellas:
PHKV
Imagen 1.11.3: Ejecución de comando para conseguir un volcado de la tabla indicada, “credit_cards”.
Imagen 1.11.4: Volcado o copia de la información realizada con éxito, asi como su ubicación de su directorio donde se
almacena.
PHKV
• Lo mismo se hace con la tabla de “accounts” solo se cambia el comando y se
ejecuta:
Lo que hicimos
Imagen 1.11.7: Ubicación del directorio que contiene la copia que se realizó de la información.
Clasificación de ataques.
Ataques Sql-injection.
PHKV
1. <?php
2.
3. $user = $_POST [ 'username' ] ;
4.
5. $pass = md5 (
$_POST [ 'password' ])
; 6. 7. $result =
m ysql_query ( "
SELECT * FROM "
. $tabla .
"login
WHERE username = ' $user
' AND password = '
$pass '" )
8.
9. or die ( "<p><i>"
. mysql_error
() . "</i></p>\n");
10.
11. ?>
Ahora el código está logueando mal el user y la pass, no está bien el código,
entonces si nosotros pusiéramos en el login: username : admin ' or ' 1=1
password : xxxxx
$result = mysql_query("SELECT * FROM " . $tabla . "login WHERE username = 'admin' '
or ' 1=1 AND password = 'xxxxx'")
Ahora nosotros solo tendríamos que poner un usuario que exista y entraríamos
como tal.
Para aquellos que solo sabían que si ponían la inyección entraban ya saben
porque es y bueno para evitar esto pasaríamos al anexo de como fortificar tus
formularios y base de datos.
• Ahora veamos como poder encontrar una web que tenga ese tipo de
ataque mediante su formulario: