sábado, 13 de octubre de 2018

Solución al reto Node


Hola amigos, en esta ocasión, vamos a ver cómo resolver el reto Node, descargable de https://www.vulnhub.com/entry/node-1,252/ y cuyo objetivo es llegar a ser root.

Máquina atacante: 192.168.1.131
Máquina víctima: 192.168.1.41

En primer lugar, hacemos un nmap

nmap -sS -sV -O 192.168.1.41

Starting Nmap 7.25BETA1 ( https://nmap.org ) at 2018-09-20 11:44 CEST
Nmap scan report for node.home (192.168.1.41)
Host is up (0.0043s latency).
Not shown: 998 filtered ports
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
3000/tcp open  http    Node.js Express framework
MAC Address: 08:00:27:A2:8A:95 (Oracle VirtualBox virtual NIC)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
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.10 - 4.1, Linux 3.16 - 3.19, Linux 3.2 - 4.4, Linux 4.4
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 25.16 seconds

Como vemos, tenemos un servidor web en el puerto 3000

Aunque no es necesario, yo me descargué la página con httrack (instalada ya en kali) y empecé a husmear. Me encontré con esto:


Y fuí a la página:

Tiene usuarios, con sus respectivo hashes, los copié en un archivo por comodidad:

Y los comprobé con hash-identifier, para ver de qué tipo de codificación tenían:

Bueno, pues tienen la codificación sha-256. Pude desencriptar los dos primeros:




Seguí husmeando en el código de las páginas, y me encontré que existía otra página:

Tenía otro usuario más, de modo que desencripté el hash:


Me descargué el archivo.

Base 64 es un sistema de codificación (no encriptación), formado por letras de la a a la z, de la A a la Z y con los signos +, / e =. Por lo que parece que está en base 64.


Como sabemos, el código ASCII son los 256 caracteres que podemos representar , cada uno formado por 8 bits. Por temas de compatibilidad a la hora de enviar información por red, con equipos antiguos, se utiliza base64.

Si os interesa, este video explica muy bien en qué consiste, y como se realiza la codificación y decodificación.

Pues bien, decodificamos de la siguente manera:

Vemos qué tipo de archivo es, porque no tenemos extensión:

Vale, es zip, pero tiene contraseña; la craqueamos:
Nos dá un montón de archivos:

Me encontré con este archivo, que tiene la contraseña ssh de mark:

Miré que tipo de contraseña era:

Busqué su exploit, lo descargué, y lo compilé:
Lo ejecuté:
Ya somos root, y vemos la flag que nos tienen preparada: