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
Instalarlasextensiones básicasdeBurpsuiteAñadireldominioy sussubdominiosalscopeHacer un
escaneo generalconBurpsuite. Comotipo de escaneomarcaremosCrawl and audity comoconfiguración de escaneousaremosDeepEscanearemos partes específicas de la peticiónusando elescáner de Burpsuite. Paraescanearlosinsertion pointsdebemos seleccionar entipo de escaneola opciónAudit selected itemsSi los
datosno se están transmitiendo en formatoXML, cambiaremos a este formato usando la extensiónContent Type ConverterdeBurpsuiteyrepetiremos los escaneosEjecutar un
ataque de fuerza brutacon losdiccionariosmencionados enhacking toolsque contengan payloads paraXXESi nos encontramos ante una
subida de archivos, también podremos explotar unXXE, para ello, nos revisaremos laguía de file upload vulnerabilitieshttps://justice-reaper.github.io/posts/File-Upload-Vulnerabilities-Guide/. Podemos usar herramientas comoOxml_xxeoDocempara laexplotación, pero personalmente prefiero hacerlo deforma manualSi los
datosse transmiten en formatoXMLy existe unasubida de archivos, procederemos a intentar buscar unXXEmediante lospayloadsdePayloadsAllTheThingsy si no encontramos nada, procederemos a seguir lametodologíadeHacktricks. Podemos usar herramientas comoXXEinjectoroXXExploiterpara laexplotación, pero personalmente prefiero hacerlo deforma manual
Clickjacking
Usaremos herramientas como
Security HeadersoShcheckparaidentificarlascabeceras de seguridadde unaweby ver si esvulnerableCreamosunPoCusandoClickbandit
CORS
Instalarlasextensiones básicasdeBurpsuite. También debemosinstalarlas extensionesCORS* - Additional CORS ChecksyTrusted Domain CORS ScannerAñadireldominioy sussubdominiosalscopeHacer un
escaneo generalconBurpsuite. Comotipo de escaneomarcaremosCrawl and audity comoconfiguración de escaneousaremosDeepEscanearemos partes específicas de la peticiónusando elescáner de Burpsuite. Paraescanearlosinsertion pointsdebemos seleccionar entipo de escaneola opciónAudit selected itemsSi preferimos usar herramientas por consola podemos usar
CORScanner,CorsOneoCorsMe. La que más gustan sonCORScanneryCorsOne, ya queCorsMetienen el problema de que para detectar si elOriginacepta como valornull, solo prueban con el valorNully no conNULLonull, y esto puede provocar queno detecten la vulnerabilidad en ciertas ocasionesSi tenemos dudas de cómo explotar el ataque,
Corsynos da pistas sobre elloSi en este punto
no podemos explotar CORS, tenemos que buscar undominio de confianzaque seavulnerableaXSS. Para ello, debemos revisar laguía de XSSpara saber comoidentificarlosSi no encontramos nada, procedemos a buscar de
forma manualsiguiendo los pasos dePayloadsAllTheThingsyHacktricksPara crear un
PoCusaremosC0rsPwn3ro lo haremos de formamanualEn el caso de estar en una
intranetusaremosof-CORSpara laexplotación
CSRF
Instalarlasextensiones básicasdeBurpsuitey la extensiónCSRF ScannerAñadireldominioy sussubdominiosalscopeHacer un
escaneo generalconBurpsuite. Comotipo de escaneomarcaremosCrawl and audity comoconfiguración de escaneousaremosDeepPodemos usar
BoltoXSRFProbepara 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 complejaSi no encontramos nada, podemos usar la
metodologíadePayloadsAllTheThingsparadetectar si es posible llevar a cabo un ataque CSRFy para una mayor variedad de ataques consultaremosHacktricksPor último, debemos
generarunPoCusandoProject Forgeryo elCSRF PoC GeneratordeBurpsuite
SQLI
Instalarlasextensiones básicasdeBurpsuiteAñadireldominioy sussubdominiosalscopeHacer un
escaneo generalconBurpsuite. Comotipo de escaneomarcaremosCrawl and audity comoconfiguración de escaneousaremosDeepEscanearemos partes específicas de la peticiónusando elescáner de Burpsuite. Paraescanearlosinsertion pointsdebemos seleccionar entipo de escaneola opciónAudit selected itemsAnalizar la query con sqlmap 2 veces, debido a quepuede fallar en ocasionesAnalizar la query con ghauri 2 vecesparaconfirmar que sqlmap no se saltó nadaRealizar un
ataque de fuerza brutacon elIntrudery losdiccionariosdeLoxs. Si no encontramos nada, usaremos lospayloadsde losdiccionariosmencionados enhacking toolsque contenganpayloadsdeSQLIy si tampoco encontramos nada, usar la extensiónAgarthadeBurpsuite. Es recomendable setear la opciónDelay between requestsen1y desactivar elAutomatic throttlingpara queel tiempo de respuesta del servidor varíe lo menos posible. También debemosdisminuirelnúmero de hilosparano colapsarelservidorSi lo anterior no funciona, nos centraremos en buscar
inyecciones SQL de forma manualutilizando lascheatsheetsdePortswigger, PayloadsAllTheThings y Hacktricks. Si vemospayloadsodiccionariospara aplicarfuerza brutadebemos probarlos
XSS
Instalarlasextensiones básicasdeBurpsuiteAñadireldominioy sussubdominiosalscopeHacer un
escaneo generalconBurpsuite. Comotipo de escaneomarcaremosCrawl and audity comoconfiguración de escaneousaremosDeepEscanearemos partes específicas de la peticiónusando elescáner de Burpsuite. Paraescanearlosinsertion pointsdebemos seleccionar entipo de escaneola opciónAudit selected itemsCon el objetivo de encontrar
vulnerabilidadesde tipoDOM XSSusamos elDOM Invaderpara testear todos losinputsUna vez hecho esto, usamos
XSStrikecon el parámetro--crawlpara poderidentificarsi hay algunavulnerabilidado algúnsink, el cual pueda conducir a unXSSUsamos
XSStrikenuevamente, pero esta vez con el objetivo dedetectarunXSSSi no encontramos nada y la
URLes de este estilohttps://0a42008c0326fbeb803d129600e6006e.web-security-academy.net/?search=testo de este otrohttp://stock.0a1b001e03ee4b4480f30dd1005a0015.web-security-academy.net/?productId=3&storeId=1, vamos a usarLoxsyXSSuccessorSi no encontramos nada, usaremos
LoxsyXSSuccessornuevamente pero con losdiccionariosque se muestranhacking toolsque contenganpayloadsparaXSS. A estosdiccionariostambién le podemos añadir el dePortswiggerque podemosobtenermedianteDalfoxy los dePayloadsAllTheThings. PodemoslistarlospayloadsdePortswiggercon este comandodalfox --remote-payloadboxSi
LoxsyXSSuccessorno encuentran nada, usaremosDalfox, el cual tiene soporte paraDOM XSS,Reflected XSSyStored XSS. Como dije anteriormente,Dalfoxcuenta con lospayloadsdePortswiggerpara descubrirXSSy con losdiccionariosdeBurpsuiteyAssetnotepara descubrirparámetrosen laURLque seanvulnerablesSi sospechamos de un
stored XSS, podemos usar lospayloadsdeLoxs,XSSuccessor, los dePortswiggerque se obtienen medianteDalfox, los de losdiccionariosdehacking toolso los dePayloadsAllTheThingscon elIntruderdeBurpsuite. Si necesitamosinyectar payloadsenvarias posicionesseleccionaremosPitchforkcomotipo de ataque.Puede ser complicado encontrar el payload correcto si mandamos muchos a la vez, por eso, recomiendo usar la herramientapayloadSplitterparadividirunagran lista de payloadsenlistas mucho más pequeñas y manejablesEn el caso en que haya algunos
tagsoatributosblacklisteados, podemos usarXSSDynaGeno elfuzzer de XSStrikepara ver quecaracterespodemos usar. Sin embargo, yo prefiero usar elIntruderdeBurpsuitejunto con lacheatsheet de Portswiggerpara averiguarlo, debido a que esta forma es másprecisaSi no encontramos nada, nos centraremos en buscar los
XSS de forma manualutilizando la metodología deHacktricksy usando como apoyo lascheatsheetsdePortswiggery dePayloadsAllTheThingsEn el caso de que sospechemos de un
Blind XSS, podemos usar variasherramientasparaidentificarlo. Si disponemos de unVPS, podemos usarXSSHunter Expressy si no disponemos de uno, podemos usarXXHunter,BXSSHunteroXSSReport
SSTI
Instalarlasextensiones básicasdeBurpsuiteAñadireldominioy sussubdominiosalscopeHacer un
escaneo generalconBurpsuite. Comotipo de escaneomarcaremosCrawl and audity comoconfiguración de escaneousaremosDeepEscanearemos partes específicas de la peticiónusando elescáner de Burpsuite. Paraescanearlosinsertion pointsdebemos seleccionar entipo de escaneola opciónAudit selected itemsJugaremos con las opciones de
Tplmapy deSSTImappara intentarexplotarelSSTISi no podemos explotarlo de primeras, vamos a usar la herramienta
TInjApara intentaridentificarlaplantillaque se estáusandoSi esto no da resultado, usaremos
Template Injection TableSi no podemos explotarlo con estas herramientas, ejecutamos una
ataque de fuerza brutacon elIntruderdeBurpsuiteempleando variosdiccionarios. Primeramente vamos a usar eldiccionario integrado de BurpsuitellamadoFuzzing - template injection, posteriormente usaremos los diccionarios que contenganpayloadspara estavulnerabilidadSi no encontramos nada,
checkearemoslascheatsheetsdePayloadsAllTheThingsyHacktrickse iremostesteando de forma manual. Si vemospayloadsodiccionariospara aplicarfuerza brutadebemos probarlosSi hemos logrado
identificar el motor de plantillasperono llevar a cabo una explotacióndebemosbuscar vulnerabilidades para esa plantilla. Si no encontramos ninguna,revisaremos su documentaciónpara ver si podemosaprovecharnos de alguna característica para obtener información interesante
SSRF
Instalarlasextensiones básicasdeBurpsuiteAñadireldominioy sussubdominiosalscopeHacer un
escaneo generalconBurpsuite. Comotipo de escaneomarcaremosCrawl and audity comoconfiguración de escaneousaremosDeepEscanearemos partes específicas de la peticiónusando elescáner de Burpsuite. Paraescanearlosinsertion pointsdebemos seleccionar entipo de escaneola opciónAudit selected itemsSi el
escánerdeBurpsuiteno encuentra nada, procedemos a buscar deforma manualsiguiendo los pasos dePayloadsAllTheThingsyHacktricks. Si vemospayloadsodiccionariospara aplicarfuerza brutadebemos probarlosUna vez detectada la vulnerabilidad, si tiene este aspecto
http://192.168.0.1:8080/product/stock/check?productId=1&storeId=1vamos a ver si tiene algo corriendo en el localhosthttp://127.0.0.1:FUZZ, para ello podemos usar elIntruderu otrofuzzer. Podemos escanear los65535puertos existentes o usar la herramientagetTopPortsparaobtenerlospuertos más comunesy efectuar elescaneomásrápidoSi no encontramos nada en el
localhost,escanearemosposibles rutashttp://192.168.0.1:8080/FUZZpara ver si hay algo interesante. En mi caso uso losdiccionariosdeSecListsEn el caso de no encontrar nada, procederemos a buscar si hay servicios en otros puertos
http://192.168.0.1:FUZZSi no encontramos nada, vamos a
fuzzearpara ver si hay algún otro dispositivo que estécorriendoalgúnserviciopor el mismo puertohttp://192.168.0.FUZZ:8080Si no hay nada procederemos a buscar otros dispositivos conectados a la red, para ello
fuzzearemosde esta formahttp://192.168.0.FUZZ:FUZZ. Para elprimer elementoafuzzearusaremosnúmerosdesde el0 al 255y para elsegundo elementousaremospuertosSi no encontramos nada, ampliamos la búsqueda
http://192.168.FUZZ.FUZZ:FUZZ. Para losdos primeros elementosafuzzearusaremosnúmerosdesde el0 al 255y para eltercer elementousaremospuertosSi no encontramos nada, ampliamos la búsqueda
http://192.FUZZ.FUZZ.FUZZ:FUZZ. Para lostres primeros elementosafuzzearusaremosnúmerosdesde el0 al 255y para elcuarto elementousaremospuertosSi no encontramos nada, ampliamos la búsqueda
http://FUZZ.FUZZ.FUZZ.FUZZ:FUZZ. Para loscuatro primeros elementosafuzzearusaremosnúmerosdesde el0 al 255y para elquinto elementousaremospuertosSabremos que hemos encontrado otro
dispositivoporque nosdevolverá un código de estado o error diferente, puede ser un200, 404 etc. Una vez hecho esto vamos afuzzearpor rutashttp://192.168.0.1:8080/FUZZPuede ser que se nos
devuelva algún código de estado o error diferenteindicando que hay algunadirección IP blacklisteada. Para estas situaciones usaremos la extensiónEncode IPdeBurpsuitey las herramientasIpfuscatorySSRF Payload Generator, en ese orden. En el caso en el que esté la dirección127.0.0.1o ellocalhostblacklistado podemos usar lacheatsheet de PortswiggeroSSRF PayloadMaker. Aunque estas dos últimasherramientasno estén hechas para esta función disponen de unmayor número de payloadspara estassituaciones. Si ninguna de estas funciona debemos checkearPayloadsAllTheThingsyPortswiggerpara ver si se puede efectuar otrobypassque no estécontempladoSi recibimos un
código de estado o error diferenteindicando que hay algunadirección ruta blacklisteada, podemos usarRecollapsepara efectuar unbypass. En el caso de no funcionar, deberemos echar un vistazo primeramente a estaguía de ofuscaciónhttps://justice-reaper.github.io/posts/Ofuscation-Guide/ y si no funciona deberemos checkearHacktricksSi estamos ante un
Blind SSRFusaremos lacheatsheet de PortswiggeroSSRF PayloadMakerparadetectarlo. Estaúltima herramientanos proporciona unmayor número de payloadsSi encontramos un
open redirectdebemos fijarnos en si podemosderivarloa unSSRFDesafortunadamente en los laboratorios de
Portswiggerno funcionaSSRFmap, pero es unaherramientamuyrecomendablesi es posible usarla
Command injection
Instalarlasextensiones básicasdeBurpsuitey también la extensiónCommand injection attackerAñadireldominioy sussubdominiosalscopeHacer un
escaneo generalconBurpsuite. Comotipo de escaneomarcaremosCrawl and audity comoconfiguración de escaneousaremosDeepEscanearemos partes específicas de la peticiónusando elescáner de Burpsuite. Paraescanearlosinsertion pointsdebemos seleccionar entipo de escaneola opciónAudit selected itemsDesafortunadamente,
Commixno funciona al100%en loslaboratorios de Portswiggerpor elfirewallque tienen implementado pero es unaherramientamuyrecomendablesi es posible usarlaRealizar un
ataque de fuerza brutacon elIntrudery los diccionarios mencionados enhacking tools. Si no encontramos nada, usar lospayloadsde la extensiónAgarthadeBurpsuitey si tampoco encontramos nada, usar la extensiónCommand injection attackerdeBurpsuite. Es recomendablesetearla opciónDelay between requestsen1y desactivar elAutomatic throttlingpara queel tiempo de respuesta del servidor varíe lo menos posible, esto es importante para poderidentificarsi hay unblind command injection. También debemosdisminuirelnúmero de hilosparano colapsarelservidorSi no encontramos nada con los
escánerespodemoscheckearlascheatsheetsdePayloadsAllTheThingsyHacktrickspero lo más seguro es que no haya uncommand injection
Path traversal
Instalarlasextensiones básicasdeBurpsuitey también la extensiónNginx Alias TraversalAñadireldominioy sussubdominiosalscopeHacer un
escaneo generalconBurpsuite. Comotipo de escaneomarcaremosCrawl and audity comoconfiguración de escaneousaremosDeepEscanearemos partes específicas de la peticiónusando elescáner de Burpsuite. Paraescanearlosinsertion pointsdebemos seleccionar entipo de escaneola opciónAudit selected itemsEfectuamos un
ataque de fuerza brutautilizando lospayloadsdeAgarthaHaremos otro
ataque de fuerza brutautilizando eldiccionarioque traeBurpsuitellamadoFuzzing - path traversal (single file). En la parte depayload processingagregamos la reglaMatch/replace. Seguidamente, en el apartadoMatch regexdebemosescapar los caracteres especiales, así que se quedaría tal que así\{file\}. Finalmente, en el apartadoReplace withpondremos elnombre del ficheroque queramosfuzzearHacemos lo mismo con el
diccionario integrado de BurpsuitellamadoFuzzing - path traversal. Deberemos hacer lo mismo que en el apartado anterior en la parte depayload processing, pero en este caso agregaremos\{base\}en el primer apartadoSi aún seguimos sin encontrar nada, usaremos el
diccionariodeLoxspara realizar unataque de fuerza brutaconBurpsuiteSi no hemos podido
explotarelpath traversalhasta ahora, puede ser porquese han implementado medidas de seguridad adicionales. Para intentarbypassearlasvamos a usar primeramenteLFISuite, seguidamenteLFITestery por último,LiffySi no encontramos nada,
checkearemoslascheatsheetsdePayloadsAllTheThingsyHacktrickse iremostesteando de forma manual. Si vemospayloadsodiccionariospara aplicarfuerza brutadebemos probarlosUna vez hayamos conseguido
explotarelpath traversal, podemos intentarconvertirloen unRCEusandoLFISuite,LFITesteroLiffy. Si no podemos, deberemos hacerlomanualmenteEn el caso de que
no podamos convertir el path traversal en un RCE, vamos alistar información sensiblede lamáquinausandoPanoptic. En el caso en el que se nos complique usar la herramienta, podemos usar elIntruderdeBurpsuitecon eldiccionarioque usaPanoptico con otrosdiccionarios
