Corrosion2 VulnHub

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-06-09 06:41 EDT
Nmap scan report for 192.168.5.176
Host is up (0.00034s latency).

PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 6a:d8:44:60:80:39:7e:f0:2d:08:2f:e5:83:63:f0:70 (RSA)
|   256 f2:a6:62:d7:e7:6a:94:be:7b:6b:a5:12:69:2e:fe:d7 (ECDSA)
|_  256 28:e1:0d:04:80:19:be:44:a6:48:73:aa:e8:6a:65:44 (ED25519)
80/tcp   open  http    Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
8080/tcp open  http    Apache Tomcat 9.0.53
|_http-title: Apache Tomcat/9.0.53
|_http-favicon: Apache Tomcat
MAC Address: 00:0C:29:AA:39:7A (VMware)
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.01 seconds

Gobuster

Info:

Vemos que hay un /readme.txt y si vemos su contenido veremos lo siguiente...

Vemos que nos da una pista de un usuario llamado randy que es administrador y por alguna parte de la pagina o de algun sitio estan las credenciales de la misma...

Nikto

Info:

Por lo que vemos nos descubre varias cosas, entre ellas un panel de login /manager/html y un archivo .zip bastante interesante, por lo que nos descargaremos ese archivo .zip y veremos su contenido...

Si intentamos descomprimirlo con unzip veremos que tiene contraseña, por lo que haremos lo siguiente...

Info:

Se nos generara un archivo hash codificado, por lo que lo tendremos que crackear...

Contenido del hash

Info:

Nos saca la password para descomprimir el .zip...

Y cuando metemos la password llamada @administrator_hi5 nos descomprimira todo el contenido...

Si leemos el archivo llamado tomcat-users.xml veremos lo siguiente bastante interesante...

Por lo que si nos vamos a la URL...

Nos saltara un panel de login y si metemos las credenciales que hemos descubierto de manager nos logeara como administradores...

Credentials

Una vez dentro haremos una Reverse Shell de la siguiente manera...

Desde nuestro host creamos un archivo malicioso con el formato que admite tomcat .war para luego subirlo y ejecutarlo...

Una vez creado este archivo lo subimos desde el panel del tomcat y lo ejecutamos entrando dentro del mismo estando a la escucha...

Hecho esto estariamos dentro con una shell rara, por lo que la sanitizamos...

Si nos vamos a la /home de randy veremos la primera flag...

user.txt (flag1)

Vemos que hay un note.txt que contiene lo siguiente...

Si probamos a reutilizar la contraseña con el usuario jaye nos cambiaremos a ese usuario, por lo que...

Si hacemos lo siguiente...

Veremos una linea interesante...

Y si vamos a GTFOBins veremos que se puede explotar pudiendo leer cualquier archivo...

URL = https://gtfobins.github.io/gtfobins/look/

Por lo que podremos leer la flag de root...

root.txt (flag2)

Pero si queremos ser root haremos lo siguiente...

Miraremos el /etc/shadow...

Info:

Y cogeremos la password de randy para crackearla con el john...

Info:

Por lo que vemos obtuvimos las credenciales...

Hecho esto ya estaremos dentro con el usuario randy, por lo que si hacemos sudo -l veremos lo siguiente...

Si leemos lo que hace ese script...

Vemos que codifica lo que le pongas a Base64, pero tambien vemos que importa un Base64 que parece sospechoso...

Info:

Vemos la siguiente linea muy sospechosa...

Si leemos los permisos que tiene...

Vemos que podemos editarlo, por lo que si editamos esto con una Reverse Shell y al ejecutarlo como root importara este .py y nos creara la Reverse Shell por lo que borramos el contenido de ese .py...

Vamos a crear un archivo que borre su interior...

Una vez hecho esto ya estara vacio, por lo que ponemos una Reverse Shell...

Una vez hecho esto, haremos lo siguiente...

Estaremos a la escucha antes...

Despues lo ejecutamos...

Y nos habria creado una shell un poco mala pero autenticados como root por lo que dentro de esa shell para mejorarla haremos lo siguiente...

Y si nos salimos de esa shell y volvemos a nuestro usuario randy hacemos lo siguiente ya que otorgamos con root SUID a la bash...

Y ya seriamos root, por lo que podremos leer la flag...

Last updated