En la maquina de hoy estaremos tocando los siguientes temas:
Enumeración Web
File Upload
Subiendo archivo con BurpSuite (Intruder)
Abusando de binario SUID (python)
Link máquina
Reconocimiento
Comprobamos que tengamos conexión con la máquina victima.
Ping
ping -c 1 10.10.161.60
PING 10.10.161.60 (10.10.161.60) 56(84) bytes of data.
64 bytes from 10.10.161.60: icmp_seq=1 ttl=63 time=48.5 ms
--- 10.10.161.60 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 48.471/48.471/48.471/0.000 ms
Con el TTL podemos saber que nos enfrentamos a una máquina Linux, ya que es ttl=63, así que es lo más cercano al 64 que es de Linux.
¿Cuales son los TTLs por defecto en los S.O?
Linux --> 64
Windows --> 128
Solaris/AIX -->254
Igualmente el TTL se puede modificar así que no es 100% fiable.
Nmap
# Nmap 7.93 scan initiated Fri Mar 31 11:26:38 2023 as: nmap -sSCV -p- --open --min-rate 4000 -v -n -Pn -oN nmapScan 10.10.161.60
Nmap scan report for 10.10.161.60
Host is up (0.049s latency).
Not shown: 65527 closed tcp ports (reset), 6 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 4ab9160884c25448ba5cfd3f225f2214 (RSA)
| 256 a9a686e8ec96c3f003cd16d54973d082 (ECDSA)
|_ 256 22f6b5a654d9787c26035a95f3f9dfcd (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-title: HackIT - Home
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.4.29 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Read data files from: /usr/bin/../share/nmap
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Fri Mar 31 11:27:05 2023 -- 1 IP address (1 host up) scanned in 26.64 seconds
Parámetro
Descripción
-sS
Escaneo SYN Port scan, agiliza el escaneo
-sC
Para que envíe unos scripts básicos de reconocimiento que tiene Nmap en lua
-sV
Para que los puertos que encuentre abiertos nos muestre las versiones
-p-
Escanee todo el rango de puertos, que en total hay 65535
--open
Solo los puertos abiertos
--min-rate
Que no envíe paquetes más lentos que X
-v
Verbose, que muestre por pantalla los puertos que vaya encontrando antes de acabar el escaneo
-n
Para que no haga resolución DNS
-Pn
Para que no haga Host Discovery
-oN
Que el escaneo actual lo ponga en X archivo en formato normal (nmap).
Encontramos los siguientes puertos
22 --> OpenSSH 7.6p1
80 --> Apache httpd 2.4.29
Enumeración
Puerto 80
En el código fuente no encontramos gran cosa
Fuzzing con wfuzz
wfuzz -c --hc=404 -t 400 -w /usr/share/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://10.10.161.60/FUZZ
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: http://10.10.161.60/FUZZ
Total requests: 220560
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000000001: 200 25 L 44 W 616 Ch "# directory-list-2.3-medium.txt"
000000003: 200 25 L 44 W 616 Ch "# Copyright 2007 James Fisher"
000000007: 200 25 L 44 W 616 Ch "# license, visit http://creativecommons.org/licenses/by-sa/3.0/"
000000550: 301 9 L 28 W 310 Ch "css"
000000014: 200 25 L 44 W 616 Ch "http://10.10.161.60/"
000000008: 200 25 L 44 W 616 Ch "# or send a letter to Creative Commons, 171 Second Street,"
000000012: 200 25 L 44 W 616 Ch "# on at least 2 different hosts"
000000004: 200 25 L 44 W 616 Ch "#"
000000002: 200 25 L 44 W 616 Ch "#"
000000005: 200 25 L 44 W 616 Ch "# This work is licensed under the Creative Commons"
000000011: 200 25 L 44 W 616 Ch "# Priority ordered case-sensitive list, where entries were found"
000000009: 200 25 L 44 W 616 Ch "# Suite 300, San Francisco, California, 94105, USA."
000000010: 200 25 L 44 W 616 Ch "#"
000000006: 200 25 L 44 W 616 Ch "# Attribution-Share Alike 3.0 License. To view a copy of this"
000000013: 200 25 L 44 W 616 Ch "#"
000000953: 301 9 L 28 W 309 Ch "js"
000005520: 301 9 L 28 W 312 Ch "panel"
000000164: 301 9 L 28 W 314 Ch "uploads"
000045240: 200 25 L 44 W 616 Ch "http://10.10.161.60/"
Parámetro
Descripción
-c
Formato coloreado
--hc
Que no muestre el código que le establezcas [Ej: --hc=404,403)
-t
Numero de hilos
-w
Wordlist
-u
URL
Encontramos 2 directorios que pueden ser interesantes:
Panel
Uploads
Panel
Encontramos un panel para subir ficheros a la máquina victima
Uploads
Parece que se pueden listar los archivos que podemos subir.
Explotación
Vamos a subir un archivo .php con el siguiente código:
Si ejecutamos esto en la máquina nos dará una shell como root.
Despedida
Para mi fue una máquina muy interesante que me ayudo a reforzar el File Upload y aprender bien como realizar un ataque con el Intruder en BurpSuite, fue una máquina divertida aunque bastante fácil.