Hacking methodologies
Metodologías de hacking
Cheatsheet
Todos los términos
mencionados en las diferentes categorías
se encuentran
en la siguiente cheatsheet
:
- Hacking tools https://justice-reaper.github.io/posts/Hacking-Tools/
XXE
Instalar
lasextensiones básicas
deBurpsuite
Añadir
eldominio
y sussubdominios
alscope
Hacer un
escaneo general
conBurpsuite
. Comotipo de escaneo
marcaremosCrawl and audit
y comoconfiguración de escaneo
usaremosDeep
Escanearemos partes específicas de la petición
usando elescáner de Burpsuite
. Paraescanear
losinsertion points
debemos seleccionar entipo de escaneo
la opciónAudit selected items
Si los
datos
no se están transmitiendo en formatoXML
, cambiaremos a este formato usando la extensiónContent Type Converter
deBurpsuite
yrepetiremos los escaneos
Ejecutar un
ataque de fuerza bruta
con losdiccionarios
mencionados enhacking tools
que contengan payloads paraXXE
Si nos encontramos ante una
subida de archivos
, también podremos explotar unXXE
, para ello, nos revisaremos laguía de file upload
https://justice-reaper.github.io/posts/File-Upload-Guide/. Podemos usar herramientas comoOxml_xxe
oDocem
para laexplotación
, pero personalmente prefiero hacerlo deforma manual
Si los
datos
se transmiten en formatoXML
y existe unasubida de archivos
, procederemos a intentar buscar unXXE
mediante lospayloads
dePayloadsAllTheThings
y si no encontramos nada, procederemos a seguir lametodología
deHacktricks
. Podemos usar herramientas comoXXEinjector
oXXExploiter
para laexplotación
, pero personalmente prefiero hacerlo deforma manual
Clickjacking
Usaremos herramientas como
Security Headers
oShcheck
paraidentificar
lascabeceras de seguridad
de unaweb
y ver si esvulnerable
Creamos
unPoC
usandoClickbandit
CORS
Instalar
lasextensiones básicas
deBurpsuite
. También debemosinstalar
las extensionesCORS* - Additional CORS Checks
yTrusted Domain CORS Scanner
Añadir
eldominio
y sussubdominios
alscope
Hacer un
escaneo general
conBurpsuite
. Comotipo de escaneo
marcaremosCrawl and audit
y comoconfiguración de escaneo
usaremosDeep
Escanearemos partes específicas de la petición
usando elescáner de Burpsuite
. Paraescanear
losinsertion points
debemos seleccionar entipo de escaneo
la opciónAudit selected items
Si preferimos usar herramientas por consola podemos usar
CORScanner
,CorsOne
oCorsMe
. La que más gustan sonCORScanner
yCorsOne
, ya queCorsMe
tienen el problema de que para detectar si elOrigin
acepta como valornull
, solo prueban con el valorNull
y no conNULL
onull
, y esto puede provocar queno detecten la vulnerabilidad en ciertas ocasiones
Si tenemos dudas de cómo explotar el ataque,
Corsy
nos da pistas sobre elloSi en este punto
no podemos explotar CORS
, tenemos que buscar undominio de confianza
que seavulnerable
aXSS
. Para ello, debemos revisar laguía de XSS
para saber comoidentificarlos
Si no encontramos nada, procedemos a buscar de
forma manual
siguiendo los pasos dePayloadsAllTheThings
yHacktricks
Para crear un
PoC
usaremosC0rsPwn3r
o lo haremos de formamanual
En el caso de estar en una
intranet
usaremosof-CORS
para laexplotación
CSRF
Instalar
lasextensiones básicas
deBurpsuite
y la extensiónCSRF Scanner
Añadir
eldominio
y sussubdominios
alscope
Hacer un
escaneo general
conBurpsuite
. Comotipo de escaneo
marcaremosCrawl and audit
y comoconfiguración de escaneo
usaremosDeep
Podemos usar
Bolt
oXSRFProbe
para unadetección rápida
, pero debemos tener en cuenta queestas herramientas pueden no ser del todo efectivas si la forma de explotar el CSRF es compleja
Si no encontramos nada, podemos usar la
metodología
dePayloadsAllTheThings
paradetectar si es posible llevar a cabo un ataque CSRF
y para una mayor variedad de ataques consultaremosHacktricks
Por último, debemos
generar
unPoC
usandoProject Forgery
o elCSRF PoC Generator
deBurpsuite
SQLI
Instalar
lasextensiones básicas
deBurpsuite
Añadir
eldominio
y sussubdominios
alscope
Hacer un
escaneo general
conBurpsuite
. Comotipo de escaneo
marcaremosCrawl and audit
y comoconfiguración de escaneo
usaremosDeep
Escanearemos partes específicas de la petición
usando elescáner de Burpsuite
. Paraescanear
losinsertion points
debemos seleccionar entipo de escaneo
la opciónAudit selected items
Analizar la query con sqlmap 2 veces
, debido a quepuede fallar en ocasiones
Analizar la query con ghauri 2 veces
paraconfirmar que sqlmap no se saltó nada
Realizar un
ataque de fuerza bruta
con elIntruder
y losdiccionarios
deLoxs
. Si no encontramos nada, usaremos lospayloads
de losdiccionarios
mencionados enhacking tools
que contenganpayloads
deSQLI
y si tampoco encontramos nada, usar la extensiónAgartha
deBurpsuite
. Es recomendable setear la opciónDelay between requests
en1
y desactivar elAutomatic throttling
para queel tiempo de respuesta del servidor varíe lo menos posible
. También debemosdisminuir
elnúmero de hilos
parano colapsar
elservidor
Si lo anterior no funciona, nos centraremos en buscar
inyecciones SQL de forma manual
utilizando lascheatsheets
dePortswigger, PayloadsAllTheThings y Hacktricks
. Si vemospayloads
odiccionarios
para aplicarfuerza bruta
debemos probarlos
XSS
Instalar
lasextensiones básicas
deBurpsuite
Añadir
eldominio
y sussubdominios
alscope
Hacer un
escaneo general
conBurpsuite
. Comotipo de escaneo
marcaremosCrawl and audit
y comoconfiguración de escaneo
usaremosDeep
Escanearemos partes específicas de la petición
usando elescáner de Burpsuite
. Paraescanear
losinsertion points
debemos seleccionar entipo de escaneo
la opciónAudit selected items
Con el objetivo de encontrar
vulnerabilidades
de tipoDOM XSS
usamos elDOM Invader
para testear todos losinputs
Una vez hecho esto, usamos
XSStrike
con el parámetro--crawl
para poderidentificar
si hay algunavulnerabilidad
o algúnsink
, el cual pueda conducir a unXSS
Usamos
XSStrike
nuevamente, pero esta vez con el objetivo dedetectar
unXSS
Si no encontramos nada y la
URL
es de este estilohttps://0a42008c0326fbeb803d129600e6006e.web-security-academy.net/?search=test
o de este otrohttp://stock.0a1b001e03ee4b4480f30dd1005a0015.web-security-academy.net/?productId=3&storeId=1
, vamos a usarLoxs
yXSSuccessor
Si no encontramos nada, usaremos
Loxs
yXSSuccessor
nuevamente pero con losdiccionarios
que se muestranhacking tools
que contenganpayloads
paraXSS
. A estosdiccionarios
también le podemos añadir el dePortswigger
que podemosobtener
medianteDalfox
y los dePayloadsAllTheThings
. Podemoslistar
lospayloads
dePortswigger
con este comandodalfox --remote-payloadbox
Si
Loxs
yXSSuccessor
no encuentran nada, usaremosDalfox
, el cual tiene soporte paraDOM XSS
,Reflected XSS
yStored XSS
. Como dije anteriormente,Dalfox
cuenta con lospayloads
dePortswigger
para descubrirXSS
y con losdiccionarios
deBurpsuite
yAssetnote
para descubrirparámetros
en laURL
que seanvulnerables
Si sospechamos de un
stored XSS
, podemos usar lospayloads
deLoxs
,XSSuccessor
, los dePortswigger
que se obtienen medianteDalfox
, los de losdiccionarios
dehacking tools
o los dePayloadsAllTheThings
con elIntruder
deBurpsuite
. Si necesitamosinyectar payloads
envarias posiciones
seleccionaremosPitchfork
comotipo de ataque
.Puede ser complicado encontrar el payload correcto si mandamos muchos a la vez
, por eso, recomiendo usar la herramientapayloadSplitter
paradividir
unagran lista de payloads
enlistas mucho más pequeñas y manejables
En el caso en que haya algunos
tags
oatributos
blacklisteados, podemos usarXSSDynaGen
o elfuzzer de XSStrike
para ver quecaracteres
podemos usar. Sin embargo, yo prefiero usar elIntruder
deBurpsuite
junto con lacheatsheet de Portswigger
para averiguarlo, debido a que esta forma es másprecisa
Si no encontramos nada, nos centraremos en buscar los
XSS de forma manual
utilizando la metodología deHacktricks
y usando como apoyo lascheatsheets
dePortswigger
y dePayloadsAllTheThings
En el caso de que sospechemos de un
Blind XSS
, podemos usar variasherramientas
paraidentificarlo
. Si disponemos de unVPS
, podemos usarXSSHunter Express
y si no disponemos de uno, podemos usarXXHunter
,BXSSHunter
oXSSReport
SSTI
Instalar
lasextensiones básicas
deBurpsuite
Añadir
eldominio
y sussubdominios
alscope
Hacer un
escaneo general
conBurpsuite
. Comotipo de escaneo
marcaremosCrawl and audit
y comoconfiguración de escaneo
usaremosDeep
Escanearemos partes específicas de la petición
usando elescáner de Burpsuite
. Paraescanear
losinsertion points
debemos seleccionar entipo de escaneo
la opciónAudit selected items
Jugaremos con las opciones de
Tplmap
y deSSTImap
para intentarexplotar
elSSTI
Si no podemos explotarlo de primeras, vamos a usar la herramienta
TInjA
para intentaridentificar
laplantilla
que se estáusando
Si esto no da resultado, usaremos
Template Injection Table
Si no podemos explotarlo con estas herramientas, ejecutamos una
ataque de fuerza bruta
con elIntruder
deBurpsuite
empleando variosdiccionarios
. Primeramente vamos a usar eldiccionario integrado de Burpsuite
llamadoFuzzing - template injection
, posteriormente usaremos los diccionarios que contenganpayloads
para estavulnerabilidad
Si no encontramos nada,
checkearemos
lascheatsheets
dePayloadsAllTheThings
yHacktricks
e iremostesteando de forma manual
. Si vemospayloads
odiccionarios
para aplicarfuerza bruta
debemos probarlosSi hemos logrado
identificar el motor de plantillas
perono llevar a cabo una explotación
debemosbuscar vulnerabilidades para esa plantilla
. Si no encontramos ninguna,revisaremos su documentación
para ver si podemosaprovecharnos de alguna característica para obtener información interesante
SSRF
Instalar
lasextensiones básicas
deBurpsuite
Añadir
eldominio
y sussubdominios
alscope
Hacer un
escaneo general
conBurpsuite
. Comotipo de escaneo
marcaremosCrawl and audit
y comoconfiguración de escaneo
usaremosDeep
Escanearemos partes específicas de la petición
usando elescáner de Burpsuite
. Paraescanear
losinsertion points
debemos seleccionar entipo de escaneo
la opciónAudit selected items
Si el
escáner
deBurpsuite
no encuentra nada, procedemos a buscar deforma manual
siguiendo los pasos dePayloadsAllTheThings
yHacktricks
. Si vemospayloads
odiccionarios
para aplicarfuerza bruta
debemos probarlosUna vez detectada la vulnerabilidad, si tiene este aspecto
http://192.168.0.1:8080/product/stock/check?productId=1&storeId=1
vamos a ver si tiene algo corriendo en el localhosthttp://127.0.0.1:FUZZ
, para ello podemos usar elIntruder
u otrofuzzer
. Podemos escanear los65535
puertos existentes o usar la herramientagetTopPorts
paraobtener
lospuertos más comunes
y efectuar elescaneo
másrápido
Si no encontramos nada en el
localhost
,escanearemos
posibles rutashttp://192.168.0.1:8080/FUZZ
para ver si hay algo interesante. En mi caso uso losdiccionarios
deSecLists
En el caso de no encontrar nada, procederemos a buscar si hay servicios en otros puertos
http://192.168.0.1:FUZZ
Si no encontramos nada, vamos a
fuzzear
para ver si hay algún otro dispositivo que estécorriendo
algúnservicio
por el mismo puertohttp://192.168.0.FUZZ:8080
Si no hay nada procederemos a buscar otros dispositivos conectados a la red, para ello
fuzzearemos
de esta formahttp://192.168.0.FUZZ:FUZZ
. Para elprimer elemento
afuzzear
usaremosnúmeros
desde el0 al 255
y para elsegundo elemento
usaremospuertos
Si no encontramos nada, ampliamos la búsqueda
http://192.168.FUZZ.FUZZ:FUZZ
. Para losdos primeros elementos
afuzzear
usaremosnúmeros
desde el0 al 255
y para eltercer elemento
usaremospuertos
Si no encontramos nada, ampliamos la búsqueda
http://192.FUZZ.FUZZ.FUZZ:FUZZ
. Para lostres primeros elementos
afuzzear
usaremosnúmeros
desde el0 al 255
y para elcuarto elemento
usaremospuertos
Si no encontramos nada, ampliamos la búsqueda
http://FUZZ.FUZZ.FUZZ.FUZZ:FUZZ
. Para loscuatro primeros elementos
afuzzear
usaremosnúmeros
desde el0 al 255
y para elquinto elemento
usaremospuertos
Sabremos que hemos encontrado otro
dispositivo
porque nosdevolverá un código de estado o error diferente
, puede ser un200, 404 etc
. Una vez hecho esto vamos afuzzear
por rutashttp://192.168.0.1:8080/FUZZ
Puede ser que se nos
devuelva algún código de estado o error diferente
indicando que hay algunadirección IP blacklisteada
. Para estas situaciones usaremos la extensiónEncode IP
deBurpsuite
y las herramientasIpfuscator
ySSRF Payload Generator
, en ese orden. En el caso en el que esté la dirección127.0.0.1
o ellocalhost
blacklistado podemos usar lacheatsheet de Portswigger
oSSRF PayloadMaker
. Aunque estas dos últimasherramientas
no estén hechas para esta función disponen de unmayor número de payloads
para estassituaciones
. Si ninguna de estas funciona debemos checkearPayloadsAllTheThings
yPortswigger
para ver si se puede efectuar otrobypass
que no estécontemplado
Si recibimos un
código de estado o error diferente
indicando que hay algunadirección ruta blacklisteada
, podemos usarRecollapse
para efectuar unbypass
. En el caso de no funcionar, deberemos echar un vistazo primeramente a estaguía de ofuscación
https://justice-reaper.github.io/posts/Ofuscation-Guide/ y si no funciona deberemos checkearHacktricks
Si estamos ante un
Blind SSRF
usaremos lacheatsheet de Portswigger
oSSRF PayloadMaker
paradetectarlo
. Estaúltima herramienta
nos proporciona unmayor número de payloads
Si encontramos un
open redirect
debemos fijarnos en si podemosderivarlo
a unSSRF
Desafortunadamente en los laboratorios de
Portswigger
no funcionaSSRFmap
, pero es unaherramienta
muyrecomendable
si es posible usarla
Command injection
Instalar
lasextensiones básicas
deBurpsuite
y también la extensiónCommand injection attacker
Añadir
eldominio
y sussubdominios
alscope
Hacer un
escaneo general
conBurpsuite
. Comotipo de escaneo
marcaremosCrawl and audit
y comoconfiguración de escaneo
usaremosDeep
Escanearemos partes específicas de la petición
usando elescáner de Burpsuite
. Paraescanear
losinsertion points
debemos seleccionar entipo de escaneo
la opciónAudit selected items
Desafortunadamente,
Commix
no funciona al100%
en loslaboratorios de Portswigger
por elfirewall
que tienen implementado pero es unaherramienta
muyrecomendable
si es posible usarlaRealizar un
ataque de fuerza bruta
con elIntruder
y los diccionarios mencionados enhacking tools
. Si no encontramos nada, usar lospayloads
de la extensiónAgartha
deBurpsuite
y si tampoco encontramos nada, usar la extensiónCommand injection attacker
deBurpsuite
. Es recomendablesetear
la opciónDelay between requests
en1
y desactivar elAutomatic throttling
para queel tiempo de respuesta del servidor varíe lo menos posible
, esto es importante para poderidentificar
si hay unblind command injection
. También debemosdisminuir
elnúmero de hilos
parano colapsar
elservidor
Si no encontramos nada con los
escáneres
podemoscheckear
lascheatsheets
dePayloadsAllTheThings
yHacktricks
pero lo más seguro es que no haya uncommand injection