VulNyx - Fire
- Extracting Credentials - Firefox Profile
- Import SSH Key - Public
- Abuse Units Binary - Privesc
Escaneo de puertos
❯ nmap -p- -T5 -n -v 192.168.1.100
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
9090/tcp open zeus-admin
Escaneo de servicios
❯ nmap -sVC -v -Pn -p 21,22,80,9090 192.168.1.100
PORT STATE SERVICE VERSION
21/tcp open ftp pyftpdlib 1.5.7
| ftp-syst:
| STAT:
| FTP server status:
| Connected to: 192.168.1.100:21
| Waiting for username.
| TYPE: ASCII; STRUcture: File; MODE: Stream
| Data connection closed.
|_End of status.
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r-- 1 root root 4442576 Sep 29 18:52 backup.zip
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (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)
80/tcp open http Apache httpd 2.4.56 ((Debian))
|_http-server-header: Apache/2.4.56 (Debian)
|_http-title: Apache2 Debian Default Page: It works
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
9090/tcp open ssl/zeus-admin?
| ssl-cert: Subject: commonName=teste/organizationName=b8029c6b7a9c4c7d93fed3a3c6ab94bc
| Subject Alternative Name: IP Address:127.0.0.1, DNS:localhost
| Issuer: commonName=teste/organizationName=b8029c6b7a9c4c7d93fed3a3c6ab94bc
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2023-09-29T17:19:10
| Not valid after: 2024-09-28T17:19:10
| MD5: be59:4728:2274:7a3b:0c7e:d93f:900f:7034
|_SHA-1: 9abe:3c0e:577f:45b6:aac5:099a:4ff9:16c5:27d0:3ef0
| fingerprint-strings:
| GetRequest, HTTPOptions:
| HTTP/1.1 400 Bad request
| Content-Type: text/html; charset=utf8
| Transfer-Encoding: chunked
| X-DNS-Prefetch-Control: off
| Referrer-Policy: no-referrer
| X-Content-Type-Options: nosniff
| Cross-Origin-Resource-Policy: same-origin
| <!DOCTYPE html>
| <html>
| <head>
| <title>
| request
| </title>
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
| <meta name="viewport" content="width=device-width, initial-scale=1.0">
| <style>
| body {
| margin: 0;
| font-family: "RedHatDisplay", "Open Sans", Helvetica, Arial, sans-serif;
| font-size: 12px;
| line-height: 1.66666667;
| color: #333333;
| background-color: #f5f5f5;
| border: 0;
| vertical-align: middle;
| font-weight: 300;
|_ margin: 0 0 10p
FTP TCP - 21
Me conecto al servidor FTP y me descargo el archivo backup.zip
.
Al descomprimir backup.zip
veo un directorio con el nombre mozilla, en su interior perfiles del navegador firefox.
Me descargo firefox_decrypt.py y obtengo las credenciales del usuario marco.
HTTP TCP - 80
HTTP TCP - 9090
Al visitar el puerto 9090 me sale esta advertencia.
Después de ignorar la advertencia y aceptar los riesgos encuentro un panel de login.
Inicio sesión con las credenciales encontradas anteriormente.
Voy a Tools/Terminal
y veo que es una terminal del usuario marco.
Creo la carpeta .ssh
en el home de marco, dentro de la carpeta creo el archivo authorized_keys
, le añado mi id_rsa.pub
y ya puedo conectarme al sistema.
Enumero permisos de sudo.
marco@fire:~$ sudo -l
Matching Defaults entries for marco on fire:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User marco may run the following commands on fire:
(root) NOPASSWD: /usr/bin/units
En la ayuda del binario units encuentro la flag -f
la cual me permite “leer” archivos.
Lanzo units apuntando al id_rsa
de root y guardo la salida de la terminal en un archivo con el nombre id_rsa_sucia
.
Con awk y sed la dejo la llave casi lista para usarla.
❯ cat id_rsa_sucia | awk '{print $3}' | sed "s/'//g" > root_rsa
Al finalizar los retoques me queda de la siguiente forma.
Finalmente me conecto como root.
Y aquí termina la máquina Fire.
Saludos!