DarkHole 2

arp-scan -I eth0 --localnet --ignoredups
Interface: eth0, type: EN10MB, MAC: 00:0c:29:07:19:cb, IPv4: 192.168.1.139
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
192.168.1.1	64:66:24:39:6c:a8	(Unknown)
192.168.1.129	38:f9:d3:39:de:c0	(Unknown)
192.168.1.145	00:0c:29:c1:f5:01	(Unknown)
192.168.1.144	00:7c:2d:1f:c0:93	(Unknown)

Hacenos un escaneo a nivel de red local y la 145 es la de la maquina victima.


sudo nmap -sS -Pn -n -vvv --open --min-rate 5000 192.168.1.145 -oG port | tail -n 8

PORT   STATE SERVICE REASON
22/tcp open  ssh     syn-ack ttl 64
80/tcp open  http    syn-ack ttl 64
MAC Address: 00:0C:29:C1:F5:01 (VMware)

Tenemos dos puertos abiertos en el Host.


nmap -sCV -p22,80 192.168.1.145 -oN target.txt
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-26 06:32 EST
Nmap scan report for 192.168.1.145
Host is up (0.00083s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 57:b1:f5:64:28:98:91:51:6d:70:76:6e:a5:52:43:5d (RSA)
|   256 cc:64:fd:7c:d8:5e:48:8a:28:98:91:b9:e4:1e:6d:a8 (ECDSA)
|_  256 9e:77:08:a4:52:9f:33:8d:96:19:ba:75:71:27:bd:60 (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: DarkHole V2
| http-git: 
|   192.168.1.145:80/.git/
|     Git repository found!
|     Repository description: Unnamed repository; edit this file 'description' to name the...
|_    Last commit message: i changed login.php file for more secure 
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Versiones y servicios que corren para cada uno de esos dos puertos.


En el propio escaneo de Nmap nos esta soplando un subdirectorio este .git, Usaremos git-dumper para tratarlo ya que es un proyecto.

Aca dejo el enlace a la herramienta donde la misma explica como se usar pero basicamente seria asi.

git-dumper http://website.com/.git ~/CreaTuPropioDirectorio

Ahora despues entras al directorio donde recreastes el proyecto usando la anterior herramienta, observamos los logs de los pull que se hace con git al proyecto y encontramos credenciales de inicio de session.


Iniciamos session.


Ya en el dashboard hay una inyeccion SQL de primeras descubrimos con order by que hay 6 columnas esta peticion la pasaremos ah BurpSuite para un mejor trato.


Si en la Query preguntamos por la actual base de datos nos la pasa.


Empezamos de primeras usamos schema_name que indica el nombre de un esquema en la base de datos, usado para organizar y agrupar objetos como tablas, vistas y funciones.


Nostros vamos por la base de datos que se llama igual que la maquina, enumerando las tablas observamos que tenemos dos ssh y users.


Ahora vamos por las columnas, la Query se lee asi, de la base de datos darkhole_2 que tiene una tabla llamada ssh pasame las columnas que tiene dicha tabla. Observamos tres columnas id,user y pass.


Ahora haciendo uso de group_conat nos traemos la info de user y pass que estan en la tabla ssh de la base de datos darkhole_2, y tenemos credenciales de ssh Supuestamente.


history | head  -n 150

  109  netstat -tulpn | grep LISTEN
  110  ssh -L 127.0.0.1:9999:192.168.135.129:9999 jehad@192.168.135.129
  111  curl http://localhost:9999
  112  curl "http://localhost:999/?cmd=id" 
  113  curl "http://localhost:9999/?cmd=id" 
  114  curl http://localhost:9999/

Si observamos el history de la maquina al parecer estan intentando hacer un PortForwarding, lo que significa que habra un servicio que corre internamente.


Lo consultamos y es correcto, ellos por lo que se ve lo hicieron via ssh yo lo hare con chisel, dejare el enlace a un articulo mio de como se usa y de donde descargarla.

Como se usa.

Herramienta.


Creamos el tunel usando chisell para llegar hasta ese puerto 9999.


En el puerto 9999 que lo redirigimos a mi 5000 en mi localhost esta esta web que directamente ya te dice lo que hay que hacer, si le pasamos un whoami somos losy, ahora nos enviaremos una revershell y nos la deberia enviar como losy.

Basicamente haremos un userPivoting pasamos del usuario jehad a losy.


Nos enviamos la rev.


Escuchando con NC recivimos la conexion como losy, y bueno ahora somos otro usario y ya no jehad.


De la misma manera que con el anterior usuario el history nos da pista, esta vez en el history esta la contraseña para el usuario losy.

Ahora si hacemos un sudo -l observamos que podemos ejecutar python3 de manera privilegiada.


Somos root maquina resuelta.

Última actualización