Tomcat Penetrasyon Testi
- Laboratuvar Kurulumu
- Kurulum
- Yapılandırma
- Sayım
- Metasploit Çerçevesi kullanılarak yapılan sömürü
- Manuel Olarak İstismar Etme (Reverse Shell)
- Manuel Olarak İstismar Etme (Web Shell)
Laboratuvar Kurulumu
Bu makalede, Ubuntu makinesine Tomcat sunucusunu kurup dosya yükleme güvenlik açığından yararlanacağız. Makineler şunlardır:
Hedef Makine: Ubuntu (192.168.1.5)
Saldırgan Makinesi: Kali Linux (192.168.1.7)
Kurulum
Apache Tomcat, Java tabanlıdır, yani sunucunuzda Java JDK’nın yüklü olması gerekir. Aşağıdaki komutu çalıştırarak yükleyebilirsiniz:

Aşağıdaki komutu kullanarak tomcat adında yeni bir kullanıcı ekleyin :

Daha sonra Tomcat tar.gz dosyasını resmi web sitesinden indirin.

Daha sonra web sitesinden son sürümü ubuntu makinenize indirin ve indirdiğiniz dosyaları çıkartın.

Çıkarılan klasörü /opt/tomcat dizinine taşıyın, sahiplik izinlerini tomcat kullanıcısına verin ve ikili dosyalarda çalıştırma izinlerini ayarlayın.

/etc/systemd/system/ dizininde bir tomcat.service dosyası oluşturun ve dosyaya aşağıdaki içeriği ekleyin:

Değişiklikleri uygulamak için systemd daemon’unu aşağıdaki komutu kullanarak yeniden yükleyin:
Ayrıca, tomcat servisinin sistem yeniden başlatıldığında başlamasını sağlayın.
Tomcat sunucusunun durumunu kontrol ediyoruz:

Yapılandırma
Kurulum tamamlandıktan sonra Tomcat sunucusunu yapılandırmanın zamanı geldi.
Yönetici kullanıcı şifresini oluşturmak için aşağıdaki dosyada değişiklik yapın:
Aşağıdaki kodu </tomcat-users> kodunun üstüne ekleyin :

Tomcat Manager için uzaktan erişimi etkinleştirmek için, manager ve host-manager dizininde bulunan context.xml dosyasında aşağıdaki değişiklikleri yapın .
Yukarıdaki her iki dosyadan da aşağıdaki satırı aşağıda gösterildiği gibi kaldırın:


Değişiklikler tamamlandıktan sonra Ubuntu’da Tomcat servisini yeniden başlatın.

Ubuntu makinesinde Tomcat sunucusunun 8080 portunda çalışır durumda olduğunu gözlemleyin.

Sayım
Kurulum ve yapılandırma tamamlandıktan sonra şimdi numaralandırma aşamasına geçiyoruz.
Saldırgan makinesi olarak Kali Linux kullanıldığında, nmap kullanılarak ilk sayım yapılabilir.

Metasploit Çerçevesi kullanılarak yapılan sömürü
Tomcat dosya yükleme güvenlik açığı için Metasploit’i bir exploit olarak kullanarak işlevselliği ilk kez deneyebilirsiniz . Burada kullanılan exploit: exploit/multi/http/tomcat_mgr_upload .
Metasploit’in içine, exploit’i çalıştırmak için aşağıdaki komutları yazın:

Yukarıdan bakıldığında ters bir kabuğun elde edildiği ve komutların meterpreter kabuğu kullanılarak çalıştırılabildiği görülebilir .
Manuel Olarak Sömürme (Reverse Shell)
Saldırganlar ayrıca yukarıdaki istismar sürecini manuel olarak da gerçekleştirebilirler . Bunu yapmak için öncelikle msfvenom kullanarak bir .war dosyası oluşturmaları gerekir .

Daha sonra shell.war dosyası oluşturulduktan sonra saldırganların bu dosyayı Tomcat Manager Uygulamasına yüklemeleri gerekmektedir .
Yönetici Uygulamasına erişmek için kullanıcıların temel kimlik doğrulaması sağlamaları gerekir . Genellikle, Tomcat yönetici uygulamasına erişim sağlamak için kullanıcı adı adminve parola kullanılır .password

Giriş yaptıktan sonra, WAR dosyası dağıtım işlevini kullanarak daha önce oluşturulan shell.war dosyasını yükleyebilirler .

Dosya yüklendikten sonra yüklenen dosyalar bölümünde görülebilir.

Yüklenen dosyaya erişmeden önce 1234 portunda bir netcat dinleyicisi başlatın .
Ters kabuğu elde etmek için dosyaya erişmek üzere /shell’e tıklayın .

Ters kabuk 1234 numaralı porttan elde edilir.

Manuel Olarak İstismar Etme (Web Shell)
Saldırganlar, bir web kabuğu elde etmek için .jsp dosyaları içeren bir .war dosyası kullanabilirler . .war dosyası sunucuya yüklendiğinde, web kabuğuna erişim sağlar .
.jsp dosyalarını içeren bir .war dosyası oluşturmak için kullanıcıların Kali Linux makinesine Java yüklemeleri gerekir .

Şimdi bir webshell dizini oluşturalım, içine index.jsp dosyasını yerleştirelim .

Aşağıdaki kodu web shell için index.jsp dosyasına kopyalayın.

index.jsp dosyası oluşturulduktan sonra , dizini .war dosyasına dönüştürerek paket oluşturulabilir .

Webshell.war dosyası oluşturulduktan sonra dağıtım fonksiyonuna yükleniyor.

Yüklenen webshell dizini içerisinde index.jsp sayfasına ulaşılabilir ve bir webshell elde edilir.


Yukarıdaki manuel istismarı yapmanın alternatif bir yolu cmd.jsp dosyasını indirip zip kullanarak bir webshell.war dosyası oluşturmaktır .
Webshell jsp dosyası buradan indirilebilir:
https://github.com/tennc/webshell/tree/master/fuzzdb-webshell/jsp

Daha sonra cmd.jsp dosyası indirildikten sonra aşağıdaki komut kullanılarak revshell.war dosyası oluşturulabilir:

Dağıtım işlevine revshell.war dosyasını yükledikten sonra, daha önce tartışılan prosedürü tekrarlıyoruz . Web kabuğu, şu yoldaki dosyaya erişildikten sonra elde edilir: http://192.168.1.5:8080/revshell/cmd.jsp

Özünde, Apache Tomcat, geliştiricilerin ve yöneticilerin çeşitli ihtiyaçlarını karşılayan çok yönlülük ve güvenliğin bir karışımını sunarak, Java web uygulamalarını dağıtmak için tercih edilen bir seçenek olmaya devam ediyor . Bununla birlikte, yanlış yapılandırmalar nedeniyle saldırganlar, Uzaktan Kod Yürütme gibi istenmeyen eylemleri gerçekleştirmek için bunu kötüye kullanabilir .

YORUMLAR