Cleartext credential capture (pcap group)
Muchos protocolos viajan sin cifrar: FTP, HTTP, Telnet, SMTP, POP3... Si conseguimos esnifar el tráfico de un servicio que autentica en claro, capturamos usuario y contraseña directamente. En una máquina comprometida, la clave es tener permiso para poner una interfaz en modo captura.
La vía habitual es pertenecer al grupo pcap (o tener CAP_NET_RAW), que permite ejecutar tcpdump sin ser root. Combinado con un proceso interno que hace peticiones en claro (lo delata pspy: un cron que llama a un cliente FTP, por ejemplo), se captura ese loopback y se extraen las credenciales:
id # ...groups=...,pcap
tcpdump -i lo -w captura.cap -v # capturar en la interfaz de loopbackLa captura se traslada a la máquina atacante y se filtra por protocolo con tshark (o Wireshark), buscando los comandos de autenticación:
tshark -r captura.cap -Y "ftp" 2>/dev/null
# ... FTP Request: USER hades
# ... FTP Request: PASS <pass>El motivo de capturar en lo es que el proceso interno suele conectarse a 127.0.0.1; ese tráfico no sale por la interfaz de red externa, solo por loopback.
Otras formas de exprimir la captura:
python3 Pcredz -f captura.cap # extrae credenciales de muchos protocolos
net-creds.py -p captura.cap
tshark -r captura.cap -Y 'http.authorization' -T fields -e http.authorization
tshark -r captura.cap -Y 'telnet or pop or imap' 2>/dev/nullRequisitos. Un servicio que autentique en claro, tráfico que realmente pase por una interfaz que podamos capturar, y permiso de captura (grupo pcap / CAP_NET_RAW). Las credenciales obtenidas se prueban después con reutilización en SSH, su, etc.
Cómo detectarlo. La firma es un proceso no root abriendo un socket de captura (AF_PACKET/raw): con auditd sobre la syscall socket o la ejecución de tcpdump/tshark por un usuario del grupo pcap (execve), algo que casi ningún flujo legítimo hace. La escritura de un fichero .cap/.pcap en un home (FIM) y la puesta de una interfaz en modo promiscuo (mensaje de kernel entered promiscuous mode) refuerzan el indicio. En reposo, un usuario normal en el grupo pcap o con CAP_NET_RAW es la exposición a auditar.
Defensa. Cifrar todos los servicios (FTPS/SFTP, HTTPS, SMTPS), no meter a usuarios normales en el grupo pcap, y evitar que procesos automáticos manden credenciales en claro aunque sea por localhost.
Máquinas donde se aplica
- Symfonos 3VulnHub