CheckList Alan Levy
Table of Contents
- 1. Recon
- 2. Anàlisis dinàmic de l'aplicació
- 2.1. Procés de registre d'usuaris
- 2.2. Proces de reseteix de password
- 2.3. Bloqueig de comptes per intents fallits
- 2.4. Política de contrasenyes
- 2.5. Actualització de la info del compte sense demanar contrasenya
- 2.6. Claus per defecte o fàcil trobar
- 2.7. Enumeració d'usuaris
- 2.8. Autenticació per HTTP
- 2.9. Bypass d'autenticació
- 2.10. Identificar canals d'autenticació alternatius
- 3. Autorització
- 4. Sessió
- 5. Generals
- 6. XSS
1 Recon
1.1 OSINT
1.1.4 Enumeració, dominis i subdominis
- Numeros ASNs (Número de Sistema Autònom)
- Cercar el nom de l'organització que ha registrat el domini mitjançant Whois.
- Buscar els ASNs a:
- ASN Map.
- BGP HE NET.
- MXToolBox.
- Spyse
- Dominis únics
for i in $(cat nombrearchivodominios.txt); do echo""; echo "ASN $i";echo ""; amass intel -active -asn $i;echo ""; done
- Findomain
- Sublist3r
- Acamar
- AssetFinder
- Amass
- AltDNS
- subdomainScanner
- SubJack
- Subzy
- Subdomain-takeover
- Can I take over XYX
- hakrevdns
1.1.5 Screenshot de Webs
1.2 Actiu
1.2.1 Cerca de directoris
El secreto es armarse un diccionario propio, personalizado! pero se pueden usar por ejemplo los siguientes:
- all.txt.
- dirbuster wordlists.
- SecLists.
- Personalitzades amb CeWL o BRUP - Wordlist Extractor.
1.2.3 Escanejar ports i serveis
- nmap
nmap target -sS -A -PN -sC -sV -vvv -p-65535
-sS syn scan -A OS + service fingerprint -PN No Ping -sC Scripts -sV Detección de versiones -vvv Verbosity -p-65535 (todos los puertos)
- Masscan.
Ejemplo: ./masscan -iL targets.txt -p0-65535 –max-rate 10000 -sS -Pn –randomize-hosts -banners -oX output.xml
-p0-65535 (todos los puertos) -max-rate 10000 (cantidad de paquetes por segundo a transmitir, por defecto 100 paquetes/segundo)
Escaneo de puertos Web mas comunes: ./masscan -p443,8443,80,8080,8000 165.183.102.0/23,165.183.106.0/24,165.183.108.0/24 –rate 1000
- Massdns
Resuelve los registros AAAA de una lista de dominios (domains.txt) y los guarda en results.txt:
./bin/massdns -r lists/resolvers.txt -t AAAA -w results.txt domains.txt (AAAA es el record para ipv6 mientras que el A es para ipv4)
Lista de resolvers actualizada: ./bin/massdns -r <(curl -s https://raw.githubusercontent.com/BBerastegui/fresh-dns-servers/master/resolvers.txt)
./bin/massdns -r lists/resolvers.txt -t AAAA -w results.txt domains.txt
(AAAA es el record para ipv6 mientras que el A es para ipv4)
./scripts/ptr.py | ./bin/massdns -r lists/resolvers.txt -t PTR -w ptr.txt
- HTTProbe
- Nikto
Ejemplo: nikto -host -output -port
- Virtual Host Discovery
1.3 Identificar entry points
Identificar "entry points" en la aplicación (Identificarlos desde campos ocultos, parámetros, metodos HTTP, análisis de headers)
1.5 Mapejar arquitectura
Identify application architecture including Web language, WAF, Reverse proxy, Application Server, Backend Database
1.6 Revisar Robots.txt
1.7 Revisar codi HTML
1.8 Revisar codi Javascript
1.8.1 Relative URL Extractor
1.8.2 JSParser
Busca end points en JS.
1.8.3 LinkFinder
Cerca URLs i paràmetres en JS.
1.8.4 Arthusu Crawler
2 Anàlisis dinàmic de l'aplicació
2.1 Procés de registre d'usuaris
2.2 Proces de reseteix de password
- Password reset tokens (caducidat / reutilització).
2.3 Bloqueig de comptes per intents fallits
2.4 Política de contrasenyes
2.5 Actualització de la info del compte sense demanar contrasenya
2.6 Claus per defecte o fàcil trobar
2.7 Enumeració d'usuaris
2.8 Autenticació per HTTP
2.9 Bypass d'autenticació
2.10 Identificar canals d'autenticació alternatius
Encontrar el mecanismo principal e identificar otros mecanismos secundarios (App Mobile, Call center, SSO)
3 Autorització
3.1 Directori Travesal
3.2 File inclusion
3.3 Accés a funcionalitats sense permissos (escalada de privilegis, moviment horitzontal i vertical)
3.4 IDORs
Ejemplo: La siguiente URL traería nuestra información personal: target.com/perfil?idUser=123 Cambiar por target.com/perfil?idUser=124 Trae información? Deberíamos tener acceso a 124?
4 Sessió
4.1 No validació de cookie
4.2 Session fixation
4.3 Coockie reversible (base64/ Hash ID)
4.4 Verificar secure/httponly
No setea HttpOnly? hay un XSS? <script>alert(document.cookie)</script>
4.5 Testing Cross Site Request Forgery
Eliminar token (parámetro y header) Forjar un token propio Usar un segundo parámetro CSRF idéntico Cambiar POST por GET
Funcionalidades donde conviene testear: . Agregar/Subir archivo · Cambio de Email · Eliminación de archivos · Cambio de Password · Transferencia de dinero · Edición de perfil
4.6 Logout
4.7 Timeout
4.8 JWT
Chequeo de firma Chequeo de claims (especialmente aud "salto de entorno") Algoritmo de firmado Información sensible dentro del token
4.8.1 c-jwt-cracker
Fuerza bruta, ejemplo: ./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.cAOIAifu3fykvhkHpbuhbvtH807-Z2rI1FS3vX1XMjE
4.8.2 jwttool
Chequea varias vulns, crackeo por diccionario Ejemplo: python3 jwttool.py
4.8.3 JWT2Jhon
Para convertir los JWT a formato crackeable por John python3 jwt2john.py
Ejecutar John: ./john /tmp/token.txt —wordlist=wordlist.txt
5 Generals
5.1 Mètodes HTTP
5.2 Injecció de capçaleres
X-Forwarded-Host: xxxx.com X-Forwarded-For: 127.0.0.1 X-Remote-IP: 127.0.0.1 X-Remote-Addr: 127.0.0.1 X-Originating-IP: 127.0.0.1
5.3 CORS
5.4 S3 AWS
5.4.1 LazyS3
5.4.2 AWS Cli
http://bucket.s3.amazonaws.com / http://s3.amazonaws.com/bucket aws s3 cp test.txt s3://target –no-sign-request aws s3 ls s3://target –no-sign-request