josé selvi - unprivileged network post-exploitation [rootedcon 2011]
TRANSCRIPT
Unprivileged NetworkPost-Exploitation
$ whois jselvi
Jose Selvi
Ethical Hacking & Pentesting
S21sec (http://www.s21sec.com)
Pentester.Es (http://www.pentester.es)
ÍndicePost-Explotación
Acceso No-Privilegiado
Relaying Clásico
Relaying 2.0
Route + Socks4a
Multi-Relaying
ToDo
Post-Explotación
RECON PORTSCAN VULNSCAN EXPLOITPOST-EXPLOIT
Post-ExplotaciónElevación de Privilegios
Password Cracking
Pass-the-Hash
Sniffing
BackDoors
Pivoting
Buscar Información
ÍndicePost-Explotación
Acceso No-Privilegiado
Relaying Clásico
Relaying 2.0
Route + Socks4a
Multi-Relaying
ToDo
Privilegios
Privilegios Usuarios
Control Total
Administrador
Usuario Estándar
Invitado
rootSYSTEM
rootAdministrador
www-datajselvi
Invitado
Sistemas Operativos
Hardware
Operating System
App1 App2 App3
UserA UserB
Explotación
Exploit Process
UserA
ShellCode
Acceso No-PrivilegiadoPodemos:
- Leer/Escribir ALGUNOS Ficheros
- Ejecutar ALGUNOS binarios
- Establecer conexiones de red
NO podemos:
- Acceder a memoria
- Acceder a ficheros de contraseñas
- Acceder a la tarjeta de red
Post-ExplotaciónElevación de Privilegios
Password Cracking
Pass-the-Hash
Sniffing
BackDoors *
Pivoting
Buscar Información *
ÍndicePost-Explotación
Acceso No-Privilegiado
Relaying Clásico
Relaying 2.0
Route + Socks4a
Multi-Relaying
ToDo
Relaying Clásico
Concepto:
- Hacer de “pasarela” entre dos conexiones de red
Herramientas:
- NetCat
- /dev/tcp
Relaying Clásico
TARGET1 TARGET2ATACKER
NCSSH
Relaying Clásico
TARGET1 TARGET2ATACKER
NCSSH
NC
NetCat
Hobbit, 1996
- http://nc110.sourceforge.net/
- # aptitude install netcat
Apodada “la navaja suiza”
Versiones: Unix, Windows y MacOS
Conexiones TCP/UDP
NetCat Linux
NC NCHOST A HOST B
PIPE
|
$ mknod pipe p$ nc -l -p 2222 0<pipe | nc hostb 22 1>pipe
NetCat Windows
NC NCHOST A HOST B
> echo nc.exe hostb 22 > relay.bat> nc.exe -L -p 2222 -e relay.bat
Limitaciones NetCatNo persistente
- Tras cerrarse la conexión se cierra
- Bucle en Shell -> no muy efectivo
Mono-hilo
- Solo una conexión
No muy mantenido
Requiere subir el binario
ÍndicePost-Explotación
Acceso No-Privilegiado
Relaying Clásico
Relaying 2.0
Route + Socks4a
Multi-Relaying
ToDo
Relaying 2.0Mejoras:
- Cifrado, Persistencia, Multihilo
Herramientas:
- Socat
- Cryptcat
- Ncat
- Meterpreter
NCat
Fyodor, 2009
- http://nmap.org/ncat/
- # aptitude install nmap
Perteneciente a la Suite NMap
Versiones: Unix, Windows y MacOS
Conexiones TCP/UDP
NCat
NC NCHOST A HOST B
$ ncat -l 2222 --sh-exec “ncat hostb 22”
Ventajas y LimitacionesVentaja:
- Persistente
- Multihilo
- Sintaxis cómoda
Limitaciones:
- Poco portable.
- Requiere subir el binario
MeterpreterPayload de Metasploit Framework
- http://www.metasploit.com
Versiones Windows, Linux, BSD, ...
Completa Suite de Post-Explotación
Pivoting:
- Route
- Portfwd
Meterpreter Route
FW
Host A
Host B
Host C
MSF
M
Ventajas y LimitacionesVentajas:
- Da acceso automáticamente toda la red
- No requiere subir binarios
Limitaciones:
- Solo funciona dentro de MSF
- No se pueden utilizar herramientas externas
Meterpreter Portfwd
FW
Host A
Host B
Host C
MSF
M
Ventajas y Limitaciones
Ventajas:
- Se pueden usar herramientas externas
- No requiere subir binarios
Limitaciones:
- Hay que configurar puerto a puerto
- Requiere descubrimiento de red
ÍndicePost-Explotación
Acceso No-Privilegiado
Relaying Clásico
Relaying 2.0
Route + Socks4a
Multi-Relaying
ToDo
Route + Socks4a
FW
Host A
Host B
Host C
MSF
M
Socks4
NMAP
ProxyChains
# tail -1 /etc/proxychains.confsocks4 127.0.0.1 1080
# proxychains nmap 172.16.146.148ProxyChains-3.1 (http://proxychains.sf.net)
Starting Nmap 5.35DC1 ( http://nmap.org ) at 2011-02-27 14:27nexthost: failed to determine route to 172.16.146.148QUITTING!
# proxychains nmap -PN -sT --max-retries 1 172.16.146.148
Ventajas y LimitacionesVentajas:
- No requiere mapeo
- Se pueden usar herramientas externas
- No requiere subir binarios
- No requiere privilegios
Limitaciones:
- Lento para Discovery y PortScan
- Fallos ante muchas conexiones
ÍndicePost-Explotación
Acceso No-Privilegiado
Relaying Clásico
Relaying 2.0
Route + Socks4a
Multi-Relaying
ToDo
Acceso No-PrivilegiadoPodemos:
- Leer/Escribir ALGUNOS Ficheros
- Ejecutar ALGUNOS binarios
- Establecer conexiones de red
NO podemos:
- Acceder a memoria
- Acceder a ficheros de contraseñas
- Acceder a la tarjeta de red
RequisitosPodemos ejecutar ALGUNOS binarios
- Herramientas que no requieran privilegios
- Herramientas build-in de los SO
Podemos establecer conexiones de red
- Ping, Telnet, Ftp, Relay
Multi-versión
Multi-idioma
Multi-plataforma
Fases MultiRelay1.Discovery
- Ideal: ARP Scan (requiere privilegios)
- Real: Command Line Kung Fu...
2.PortScan
- Ideal: SYN Scan (requiere privilegios)
- Real: Command Line Kung Fu...
3.Relaying
- No se puede hacer build-in
Command Line Kung Fu
Discovery Fu
Windows:
FOR /L %i in (1,1,255) do @ping #NET#.%i -w 1 -n 1 > NUL & arp -a | find /V \"00-00-00-00-00-00\" | find " #NET#.%i "
Linux:
for i in `seq 1 255`; do ping -c 1 #NET#.$i > /dev/null ; /usr/sbin/arp -a | grep \"(#NET#.$i)\" | egrep \"[0-9a-fA-F]+\:[0-9a-fA-F]+\:[0-9a-fA-F]+\:[0-9a-fA-F]+\:[0-9a-fA-F]+\:[0-9a-fA-F]+\" ; done"
PortScan Fu
Windows:
FOR %i in (#PORTS#) do @netsh.exe diag connect iphost #IP# %i | find "[%i]"
Linux:
PPID=$$\nfor i in #PORTS#\ndo\nftp #IP# $i 1>/dev/null 2>/dev/null &\ndone\nnetstat -n | grep \" #IP#:\" | cut -d':' -f 3 | cut -d' ' -f 1 | sort | uniq\nkillall ftp 1>/dev/null 2>/dev/null\nexit\n
RelayingLevanta interfaces con cada IP descubierta
- MSF sobre Linux, como root
Meterpreter -> Script (Ruby) & API
- Multiplataforma
Meterpreter -> portfwd
- Cada vez disponible en más plataformas
Tuneliza a través de Meterpreter Session
Modulable cambiando de Scripts
Meterpreter Scripts
multirelayMeterpreterMSF
landiscovery
portscan
portfwd
ifconfig
Escenario Final
FW
Host A
Host B
Host C
MSF
A
B
C
M
landiscovery.rb
portscan.rb
multirelay.rb
DEMOMultiRelay
MSF FW
WIN
LIN
Ventajas y LimitacionesVentajas:
- Mapeo automático
- Se pueden usar herramientas externas
- No requiere subir binarios
- No requiere privilegios
Limitaciones:
- No detecta nuevos puertos abiertos
- Requiere Discovery y PortScan local
ÍndicePost-Explotación
Acceso No-Privilegiado
Relaying Clásico
Relaying 2.0
Route + Socks4a
Multi-Relaying
ToDo
ToDoMejorar el código Ruby
Mejorar el “Command Line Kung Fu”
Desarrollar nuevos módulos de Discovery y PortScan más eficientes
Errores TargetLAN = LocalLAN
Esperar mejoras de Meterpreter...
¿Combinar con Socks4a?
Ficha MultiRelay
Autor: Jose Selvi
Version 0.1: Marzo 2011
Descarga:
- http://tools.pentester.es
- http://www.pentester.es
Quizá más adelante... ¿MSF?
¡GRACIAS!Jose Selvi
http://twitter.com/JoseSelvi
[email protected]://www.s21sec.com
[email protected]://www.pentester.es