Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hacklenmiş Web Sunucu Analizi

6,022 views

Published on

Hacklenmiş Web Sunucu Analizi @BGASecurity | Ömer Günal

Published in: Technology
  • Login to see the comments

Hacklenmiş Web Sunucu Analizi

  1. 1. HACKLENMİŞ WEB SUNUCU ANALİZİ Yazar:Ömer Günal Baskı:2018
  2. 2. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity İÇİNDEKİLER 1. Giriş..............................................................................................................................3 Log Analizine Giriş.............................................................................................................3 Web Sunucularında Log Analizi..........................................................................................4 Apache..................................................................................................................................... 4 Log Kayıtları .....................................................................................................................................4 Saldırı Nasıl Gerçekleşti? .................................................................................................................5 Nginx ....................................................................................................................................... 7 Log Kayıtları .....................................................................................................................................7 Saldırı Nasıl Gerçekleşti? .................................................................................................................7 IIS ............................................................................................................................................ 8 Web Sunucularına Yönelik Saldırılar ..................................................................................9 Uygulama Sunucuları................................................................................................................ 9 Tomcat.............................................................................................................................................9 GlassFish ........................................................................................................................................12 Jboss ..............................................................................................................................................16 Web Uygulamaları.................................................................................................................. 19 Injection.........................................................................................................................................19 Broken Authentication and Session Management .......................................................................23 Cross-Site Scripting (XSS)...............................................................................................................26 Security Misconfiguration .............................................................................................................29 Cross-Site Request Forgery (CSRF) ................................................................................................29 Sunucu Zafiyetleri...........................................................................................................31 Apache................................................................................................................................... 31 Örnek Saldırı ..................................................................................................................................31 Nginx ..................................................................................................................................... 34 IIS .......................................................................................................................................... 35 Programlama Dili Zafiyetleri............................................................................................39 PHP........................................................................................................................................ 39 Örnek Saldırı ..................................................................................................................................39 Java ....................................................................................................................................... 41 Örnek Saldırı ..................................................................................................................................41 Sunucuya Yüklenmiş Shell’i Bulmak.................................................................................44 Shell Gizleme Yöntemleri........................................................................................................ 46 Uzaktan Çağırma............................................................................................................................46 Şifrelenmiş Kod..............................................................................................................................46 Resim İçerisine Gizleme.................................................................................................................46 Hacklenmiş Web Sunucu Analizi......................................................................................48 Sonuç .............................................................................................................................52 Referanslar .....................................................................................................................52
  3. 3. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity 1. Giriş İnternetin her eve girmesiyle beraber web hizmetleri de hayatın bir parçası haline gelmiştir. Bu durum saldırganların bu servisleri hedef olarak almasına sebep olmuştur. Saldırganlar web servislerinden bilgi çalabilmek, çalışmaz duruma getirmek, şöhret vb. illegal işler için web sunucularına saldırılar düzenlemektedirler. Kitapçık boyunca web sunucularına yapılan saldırı yöntemleri farklı bakış açılarıyla incelenecektir. Log Analizine Giriş Log kaydı, sunucuda meydana gelen olayların kayıt altında tutulmasıdır. Log kayıtları sayesinde sistem hataları, güvenlik riskleri gibi istenmeyen durumların analizi yapılabilmektedir. Log analizinde analiz yapan kişinin neyi aradığını bilmesi büyük önem arz etmektedir. Log dosyalarının içerisinde her türlü aktivite kaydının bulunduğunu düşünürsek filtreleme yapmadan sonuca ulaşmak epey zahmetli olacaktır. Sıralayacak olursak log analizi için 3 adıma dikkat etmek gerekmektedir: 1. Log kayıtlarına erişmek 2. Log analizinin hangi amaçla yapılacağını belirlemek 3. Amaç doğrultusunda log kayıtlarını filtreleyerek verileri ayıklamak Bundan sonraki bölümlerde log analizi yapılırken UNIX araçları kullanılacaktır.
  4. 4. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Web Sunucularında Log Analizi Web sunucularında log kaydı yapılırken POST metoduyla yapılan isteklerin kaydı varsayılan olarak tutulmayabilir. Bu durumda mod_forensic veya mod_security modülleri kullanılarak durum telafi edilebilir. POST metoduyla gönderilen veriler loglar içerisinde bulunmamaktadır. Verilere erişmek için ağ trafiğinin incelenmesi gerekmektedir. Yukarıda POST metodu ile gönderilmiş bir isteğin log kaydına ait ekran görüntüsü verilmiştir. Görüldüğü üzere ilgili istekte hangi adrese istek gönderildiği gözükmektedir. Gönderilen paketin kendisine bakıldığında istemcinin sunucuya gönderdiği veriler, yönlendiren sayfa gibi bilgiler de bulunmaktadır. Anlaşılması adına aşağıya örnek bir post isteği eklenmiştir. Apache Bu bölümde Apache sunucusunda barındırılan bir web uygulamasının SQL Injection saldırısına nasıl maruz kaldığını log kayıtlarını inceleyerek görmüş olacağız. Log Kayıtları Apache web sunucusunda log kayıtları /var/log/apache2 klasörü altında access.log ve error.log dosyalarında tutulmaktadır. “access.log” içerisinde sunucuya yapılan isteklerin kaydı tutulmaktadır. Yukarıdaki ekran görüntüsünde “192.168.2.232” IP adresinden “/index.php” sayfasına “GET” metodunda “[18/Aug/2017:15:02:05 +0000]” zaman diliminde, ”Mozilla/5.0 (X11; Linux
  5. 5. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity x86_64) AppleWebKit/537.36 (KHTML, lıke Genco) Chrome/60.0.3112.78 Safari/537.36” User- Agent başlığı ile istek gönderilmiştir. “error.log” dosyasında ise sunucunun istekleri işlerken karşılaştığı hatalar bulunmaktadır. Aşağıdaki ekran görüntüsünde “/test” dizinine gitmeye çalışan istemci başarısız olduğu görülmektedir. Saldırı Nasıl Gerçekleşti? SQL Injection saldırısına maruz kalan sunucunun loglarını incelemek için /var/log/apache2 klasörüne gidilir. cat access.log Yukarıdaki komut ile log dosyasına genel olarak bakıldığı zaman aynı IP adresi tarafından çok sayıda SQL lnjection denemesi yapıldığı açıkça gözükmektedir. Eğer injection denemeleri gözle görülür derecede çok yapılmış olmasaydı loglar içerisinde sql saldırılarında en çok kullanılan parametreler aratılırdı.Bunlar union,select,from,or,version gibi parametrelerdir.Bu parametreler grep komutu ile log dosyaları içerisinde aratılabilir. cat access.log | grep -E “%27|--|union|select|from|or|@|version|char|varchar|exec Aşağıda “access.log” dosyası içerisindeki SQL injection kayıtlarına ait ekran görüntüsü verilmiştir. Denemelerin başarılı olanlarını görüntüleyebilmek için sunucudan 200 kodu dönen yanıtların filtrelenmesi gerekmektedir. cat access.log | grep 200 komutu ile filtreleme gerçekleştirilir.
  6. 6. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Gerçekleştirilen filtrelemeden sonra görülür ki kullanıcı adı ve parolanın çekildiği SQL sorgusuna 200 yanıtı dönmüştür. Yukarıdaki istek URL decode edildiğinde /cat.php?id=1 UNION SELECT 1,concat(login,':',password),3,4 FROM users; şeklinde bir injection saldırısı gerçekleştiği görülür. Bilgilere erişen saldırganın “admin” paneline giriş yapıp yapmadığını kontrol etmek için cat access.log | grep 192.168.2.232 | grep admin/index.php komutu kullanabiliriz. Admin paneline istekte bulunan saldırganın kayıtlarına ait ekran görüntüsü aşağıda verilmiştir.
  7. 7. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Ekran görüntüsünde saldırganın admin paneline POST metodu ile istek gönderdiği görülmektedir. Gönderilen POST isteği Wireshark ile incelendiğinde saldırganın panele giriş yapmış olduğu kesinleşmiştir. Admin paneline gönderilen POST isteğinin detayları aşağıdaki ekran görüntüsünde verilmiştir. Nginx Bu bölümde Nginx sunucuda çalışan uygulamaya gerçekleştirilen sistem üzerindeki dizinlere izinsiz erişim sağlama saldırısı olan directory traversal (dizin listeleme) denemelerinin log kayıtları incelenecektir. Bu saldırıda genellikle nokta-nokta-eğik çizgi ( ../ ) ile dizin değiştirerek farklı dosyalara ulaşılır. Log Kayıtları Nginx sunucularda log dosyaları /var/log/nginx dizini altında Apache sunucularda da olduğu gibi access.log ve error.log dosyaları içerisinde tutulmaktadır. Saldırı Nasıl Gerçekleşti? Saldırının tespiti için “../” veya “..” karakterlerini filtrelememiz saldırıyı analiz etmemiz açısından daha uygun olacaktır. Bunun için cat acess.log | grep ../ komutu kullanılmaktadır. Yukarıdaki çıktıda da görüldüğü üzere saldırgan passwd dosyasını okumaya çalışmıştır. Üçüncü denemeden sonra wget komutu ile sayfayı kendine aktarmıştır.
  8. 8. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Aktarılan sayfa incelendiğinde “passwd” dosyası içerisindeki bilgilerin ifşa olduğu görülmektedir. Saldırganın kopyaladığı sayfaya ait ekran görüntüsü aşağıda verilmiştir. IIS IIS sunucuda log kayıtları C:inetpublogsLogFilesW3SVC1 klasörü altında tutulmaktadır. IIS sunucularda bulunan log kayıtların ait örnek ekran görüntüsü aşağıda verilmiştir.
  9. 9. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Web Sunucularına Yönelik Saldırılar Web sunuculara yönelik gerçekleştirilen saldırılar genellikle web sunucusunun kendi barındırdığı zafiyetten, uygulama sunucusunun zafiyetinden veya yeterli güvenlik önlemi alınmamış web uygulamasından kaynaklanmaktadır. Uygulama Sunucuları Bu bölümde uygulama sunucularından olan tomcat, jboss, glassfish gibi sunuculardan kaynaklanan güvenlik açıklıklarını inceleyeceğiz. Tomcat Zafiyet mod_jk kullanan sunucudan ve istemci tarafından gönderilen URL adreslerinin decode edilmesine izin veren uygulama sunucusundan kaynaklanmaktadır. Burada amaç directory traversal zafiyetini “..” parametresini 2 kere encode ederek kullanmaktır. “..” → “%2e” →“%252e” Hedef adresin /manager/html uzantısına gidildiğinde sayfaya erişim sağlanamamaktadır. Ancak “/examples/jps/%252e%252e/%252e%252e/manager/html” uzantısına gidilmeye çalışıldığında ise giriş paneli ile karşılaşılmaktadır. Varsayılan kullanıcı adı ve parola denendikten sonra admin paneline erişim sağlanmıştır. Hazırlanmış olan webshell yüklenmeden önce deploy butonunun action kısmının başına “/examples/jsp/%252e%252e/%252e%252e/” eklenir. Bunun nedeni webshell i ana dizine yükleyip giriş paneline ulaşıldığı gibi ana dizin üzerinden webshell e ulaşmaktır. İşlemin ardından webshell yüklenir.
  10. 10. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Deploy butonunun action kısmına ait ekran görüntüsü aşağıda verilmiştir. Ardından /examples/jsp/%252e%252e/%252e%252e/test uzantısına gidilerek istenilen komutlar çalıştırılabilir. Webshell’in bulunduğu uzantıya ait ekran görüntüsü aşağıda verilmiştir. Log Kayıtları cat access.log | grep manager/html | grep 200 komutu ile giriş paneline ulaşabilen isteklerin filtrelendiği ve daha sonra URL encode yöntemi ile adrese ulaşıldığı görülmektedir. İlgili ekran görüntüsü aşağıda verilmiştir.
  11. 11. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Panele ulaşan saldırganın IP adresi ile loglarda filtreleme yapıldığında; saldırganın gönderdiği istekler incelenmiştir. Gönderilen POST isteği dikkat çekmektedir. cat access.log | grep 192.168.68.1 | grep 200 komutu ile hedefe ait tüm 200 kodlu istekler listelenir. Wireshark’da ip.src == 192.168.68.1 && http.request.method == POST filtresi ile ilgili istek bulunur ve incelemeye alınır. Yukarıdaki ekran görüntüsünde de görüldüğü üzere saldırgan sisteme test.war dosyasını yüklemiştir. Korunma Yöntemleri ● “mod_jk” güncellenerek zafiyet önlenebilir.
  12. 12. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity GlassFish Bu bölümde CVE-2011-0807 ile uzaktan kod çalıştırma güvenlik açıklığı ele alınacaktır. Kimlik doğrulama atlatması, varsayılan kullanıcı adı ve parola gibi çeşitli metodlarla panele giriş yapılır ve sisteme zararlı dosya yüklenerek uzaktan erişim sağlanır. Hedef sistemde Sun GlassFish Enterprise Server 2.1 ve Java System Application Server 9.1 bulunmaktadır. Bu durumda Metasploit Framework’de bulunan “exploit/multi/http/glassfish_deployer” exploiti kullanılarak hedef sistem istismar edilir. Öncelikle hedef nmap ile taratılarak sistem üzerindeki açık portlar ve portların ne amaçla kullanıldığı tespit edilmeye çalışılır. Yukarıdaki görselde görüldüğü gibi hedef sistemde GlassFish 2.1 çalışmaktadır. Msfconsole yardımı ile GlassFish için oluşturulmuş exploitler aratılır.
  13. 13. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Exploit “use” komutu ile seçilir ve gerekli ayarlamaları yapılır. Exploit için geçekleştirilen ayarlar aşağıdaki ekran görüntüsünde verilmiştir.
  14. 14. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity “run” komutu verilerek exploit çalıştırılır. Exploit çalıştırıldıktan sonra meterpreter oturumumuz hazırlanmış ve hedefte komut çalıştırabilir hale gelmiş oluruz. Meterpreter oturumunun aktif olduğu ve hedefte komut çalıştırılabilir olduğuna dair ekran görüntüsü aşağıda verilmiştir.
  15. 15. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Log Kayıtları “netstat -an” komutu ile sistemin iletişim kurduğu adresler görüntülenir ve tanınmayan bir adres ile 4444 portundan haberleştiği görülür. Ağ trafiği incelendiğinde saldırganın üç farklı GET isteği gönderdiği görülmektedir. İlgili istekler aşağıdaki ekran görüntüsünde verilmiştir. GET isteklerinin ardından çok sayıda 4444 portu üzerinden TCP trafiği oluşmaktadır. Fakat Metasploit verileri AES ile şifrelediğinden dolayı ağ trafiği üzerinden saldırganın hangi komutları çalıştırdığını öğrenememekteyiz. Korunma Yöntemleri ● Kullanıcı adı ve parolayı varsayılan olarak bırakmamak. ● Güncellemeleri yüklemek.
  16. 16. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Jboss Bu bölümde Jboss AS 3,4,5, ve 6. versiyonlarında çalışan uzaktan kod çalıştırma zafiyeti incelenecektir. Hedef sistem Ubuntu 14.04 üzerinde Jboss 6 çalıştırmaktadır. Exploit-db de bulunan 36575 ID numaralı exploit; ● https://www.exploit-db.com/exploits/36575/ …ile zafiyet istismar edilecektir. Exploit indirildikten sonra hedef adres ve port numarası belirtilerek python 36575.py http://192.168.2.105:8080 scripti ile saldırı başlatılır. Ardından istismar işlemi gerçekleştirilir ve shell ekrana gelir. Bu ekranda whoami ve uname - a komutları çalıştırılmıştır.
  17. 17. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Log Kayıtları Sunucuya gelen HTTP istekleri incelendiğinde id, whoami, uname -a gibi parametreler dikkat çekmektedir. İlgili paketlerin detayları incelendiğinde sunucunun döndürdüğü yanıt ve isteğin yapıldığı adres görülmektedir. Kayıtlarda görüldüğü gibi istekler /jbossass/jbossass.jps adresine yapılmaktadır.
  18. 18. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity İsteğin yapıldığı dosya sunucuda find /opt/jboss-6.0.0.Final/ -type f -name "jbossass.jsp" komutu ile aratılır. Aşağıda bulunan “jbossass.jsp” dosyasının kaynak koduna ait ekran görüntüsü verilmiştir. İlgili dosya incelemeye alındığında bir webshell olduğu görülmektedir. Korunma Yöntemleri ● JBoss EAP 7 ye yükseltme yapmak. ● Yazılımları yetkisiz bir kullanıcı ile çalıştırmak.
  19. 19. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Web Uygulamaları OWASP’ın 2017 yılında yayınladığı verilere göre web uygulamalarında en çok karşılaşılan güvenlik zafiyetleri şunlardır: ● A1-Injection ● A2-Broken Authentication and Session Management ● A3-Cross-Site Scripting (XSS) ● A4-Broken Access Control ● A5-Security Misconfiguration ● A6-Sensitive Data Exposure ● A7-Insufficient Attack Protection ● A8-Cross-Site Request Forgery (CSRF) ● A9-Using Components with Known Vulnerabilities ● A10-Underprotected APIs Injection Injcetion, sunucuya gönderilen sorguya çeşitli parametreler eklenerek manipüle edilmesidir. SQL Injection, SQL sorgularının manipüle edilerek veritabanına istenilen sorgunun gönderilmesidir. Bu makale SQL injection saldırısını temel düzeyde bilindiği varsayılarak anlatılmıştır. SQL injection hakkında detaylı bilgi için; ● https://www.bgasecurity.com/makale/sql-sql-injection-ve-sqlmap-kullanimi/ …makalesini inceleyebilirsiniz. Burada SQL injection saldırısını tespit etmek isteyen bir kişinin hangi aşamaları denemesi gerektiğine kısaca değineceğiz. Tespit aşamalarındaki asıl amacımız hata mesajları almaktır. Aldığımız hata mesajlarında kullanılan veritabanı bilgisi vb. detayları elde edeceğiz. Bunun için; ● Kullanılan en temel payload ‘ (tek tırnak) karakteridir. ● Sütun sayısı tespit edilebilir. Bunun için aşağıda verilen payload kullanılabilir. ?id=6 ORDER BY 6-- ● Bir sütundaki tüm verilerin aynı veri türüne sahip olması gerekmektedir. Bunun için aşağıda verilen payload kullanılarak sütun türü tespit edilebilir. ?id=6 UNION SELECT 1,null,null--
  20. 20. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity ● Mantık tabanlı SOL injection zafiyetinin tespiti için aşağıda verilen payloadlar kullanılabilir. test.php?id=6 test.php?id=7-1 test.php?id=6 OR 1=1 test.php?id=6 OR 11-5=6 ● Zaman tabanlı SOL injection zafiyetinin tespiti için aşağıda verilen payloadlar kullanılabilir. SLEEP(25)-- SELECT BENCHMARK(1000000,MD5('A')); userID=1 OR SLEEP(25)=0 LIMIT 1-- userID=1) OR SLEEP(25)=0 LIMIT 1-- userID=1' OR SLEEP(25)=0 LIMIT 1-- userID=1') OR SLEEP(25)=0 LIMIT 1-- userID=1)) OR SLEEP(25)=0 LIMIT 1-- userID=SELECT SLEEP(25)-- Örnek SQL Injection Saldırısı Bu örnekte sadece kullanıcıdan user id numarasını isteyen bir web uygulamasını ele alacağız. ID numarası girildiğinde girilen numaraya ait kullanıcının ad ve soyad bilgileri dönmektedir. ID’ si 2 olan kullanıcıya ait bilgilere ait detaylar aşağıdaki ekran görüntüsünde verilmiştir.
  21. 21. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Fakat uygulamanın beklemediği manipüle edilmiş bir sorgu gönderilirse güvenlik önlemi alınmamış web uygulaması injection saldırısına maruz kalmış olacaktır. Örneğin aşağıda ' or 0=0 union select null, version() # sorgusu ile veritabanı versiyonu çekilmiştir.Bu sorguda tırnak işareti ile bir önceki sorgunun tamamlanması sağlanırken “or 0=0” ifadesi ile sonucun her zaman doğru olması sağlanmıştır.”union select null, version()” ile de versiyon bilgisi çekilmiştir.Son olarak “#” işareti ile de sorgunun devamının yorum satırı olarak kalması sağlanmıştır. Yukarıdaki gibi id bilgisi bekleyen bir sql sorgulu sql injection saldırısı ile aşağıdaki hale bürünerek manipüle edilmiştir ve veri sızıntısına neden olmuştur. Alttaki görselde çalıştırılan sorgunun döndürdüğü yanıt gösterilmektedir.
  22. 22. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Log Kayıtları SQL Injection saldırılarında en çok kullanılan karakter ve kelimeler ‘ , -- , union , select , from , or , @ , version , char , varchar , exec olduğu tespit edilmiştir. İlgili karakterler URL encode edildiğinde aşağıdaki gibi bir Linux komutu oluşmaktadır. cat access.log | grep -E “%27|--|union|select|from|or|@|version|char|varchar|exec İlgili komut kullanılarak alınan “access.log” dosyasına ait çıktı aşağıdaki ekran görüntüsünde verilmiştir. acces.log dosyasındaki kayıt URL decode edildiğinde ' or 0=0 union select null, version() # sorgusu gönderildiği anlaşılmaktadır. Korunma Yöntemleri ● Hazırlanmış sorgu ifadeleri kullanmak ● Gönderilen veriyi kontrol etmek ● Gönderilen veriyi filtrelemek ● Kullanıcı yetkilerini kısıtlamak …alınabilecek önlemlerdir.
  23. 23. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Broken Authentication and Session Management Oturum güvenliğinin tam olarak sağlanmamasından kaynaklanan güvenlik zafiyetidir. Örnek Saldırı Bu saldırıda amaç cookie bilgilerinin değiştirilerek herhangi bir kimlik doğrulama mekanizmasına takılmadan istenilen kullanıcı hesabına geçmek olacaktır. İlk olarak sisteme giriş yapılır. Sisteme “user1” olarak giriş yapılmıştır. Ardından cookie değeri kontrol edilir. “user1” kullanıcısının cookie değerine ait ekran görüntüsü aşağıda verilmiştir. Görüldüğü gibi cookie değeri kullanıcı adı ile aynı olmaktadır. Cookie değeri admin olarak değiştirildiğinde eğer sistemde admin kullanıcısı var ise admin kullanıcısına geçiş yapılmış olunacaktır.
  24. 24. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Cookie verisinin değiştirilmesine ait ekran görüntüsü aşağıda verilmiştir. Admin kullanıcısına geçildiğine dair ekran görüntüsü aşağıda verilmiştir. Sonuç olarak herhangi bir parola kullanılmadan, sadece cookie değeri değiştirilerek admin kullanıcısına geçiş yapılmıştır. Log Kayıtları Log kayıtları incelendiğinde dikkat çeken herhangi bir durum olmadığı görülmektedir. İncelenen log kayıtlarında “user1” kullanıcısı ile giriş yapıldığına dair ekran görüntüsü aşağıda verilmiştir.
  25. 25. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Fakat ağ trafiği ile gönderilen isteklerin detaylarına bakıldığı zaman cookie değerlerinde anormallik olduğu görülmüştür. Aşağıda 192.168.68.1. adresinden sisteme giren kullanıcının cookie değerine ait ekran görüntüsü verilmiştir. Aynı IP adresinden sisteme gönderilen 2. istekteki cookie değerine ait ekran görüntüsü ise aşağıda verilmiştir. Ekran görüntülerinde de görüldüğü üzere aynı IP adresinden sisteme bağlanan kişi, cookie değerlerini değiştirerek “admin” kullanıcısına geçiş yapmıştır. Korunma Yöntemleri ● Güçlü kimlik kontrolü ve oturum yönetimi sağlamak ● Cookie bilgilerinin çalınmaması için XSS saldırılarını önlemek
  26. 26. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Cross-Site Scripting (XSS) XSS, HTML ve JavaScript yardımı ile birlikte bir sitede istemci tarafından kod çalıştırılmasına olanak sağlayan saldırı türüdür. Bununla beraber cookie çalma, sayfa yönlendirme gibi saldırılar da düzenlenebilir. XSS genelde GET ve POST metodlarının kullanıldığı bölümlerde bulunmaktadır. Arama kutusu, galeri, mesajlar, üyelikler gibi girdi alan alanlarda bulunur. Tespiti için kullanılan payload genelde "><script>alert(1)</script> şeklindedir. Tabi bu payload çok klasik bir örnektir. Filtreleme durumuna göre farklı event handler (onclick, onload, onmouseover vb.) kullanılabilir. XSS hakkında detaylı bilgi ve örnekler için; ● https://wiki.bgasecurity.com/index.php?search=XSS&title=%C3%96zel%3AAra&go=Git …sitesini ziyaret edebilirsiniz. Örnek Saldırı Bu örnek saldırıda ziyaretçi defteri için mesaj yazılması gereken bölüme JavaScript kodu eklenerek zafiyet sömürülecektir. Bunun için ilk olarak mesaj bölümüne uygun JavaScript kodu yazılıp gönderilir. Örnek olarak yazılan kodla birlikte açıklık istismar edilirse ekrana pop-up mesajı olarak “1” yazılacaktır. Ziyaretçi defterine beklenilen iletinin dışında JS kodu yazılarak uygulama istismar edilmeye çalışılır. Mesaj gönderildikten sonra sayfayı ziyaret eden kullanıcılar yazılan koddan etkilenirler.
  27. 27. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Aşağıda sayfayı ziyaret eden kullanıcının JavaScript kodundan etkilendiğine dair ekran görüntüsü verilmiştir. Sayfanın kaynak koduna bakıldığında javascript kodunun eklendiği görülür. Log Kayıtları Log kayıtları incelendiğinde POST metodu ile ilgili sayfaya veri gönderildiği görülmüştür. Ayrıntıları görebilmek için ağ trafiği incelenir.
  28. 28. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity İncelenen trafikte kayıtlarda da görüldüğü üzere saldırgan mesaj bölümüne JavaScript kodu enjekte edilmiştir. GET metodu ile gerçekleştirilen XSS saldırılarının tespiti için log dosyalarında bazı anahtar kelimeleri filtrelemek gerekmektedir. XSS saldırılarında en çok kullanılan karakter ve kelimeler <, >, alert, script, src, cookie, onerror, document’ tir. Grep komutu ile arama filtreleme yapılırken ‘<’ ve ‘>’ karakterlerinin URL encode edilmiş halini aratmak gerekmektedir. Sonuç olarak ortaya; cat access.log | grep -E "%3C|%3E|alert|script|src|cookie|onerror|document …şeklinde bir komut çıkmaktadır. Örnek bir XSS saldırı tespitine dair ekran görüntüsü aşağıda verilmiştir. Korunma Yöntemleri ● Girdiyi doğrulamak (girilen verinin gerçekten istenen türden bir veri olduğunu kontrol etmek). ● Blacklist yerine whitelist kullanmak.
  29. 29. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Security Misconfiguration Bu zafiyet, güvenlik yapılandırmalarının yanlış, zayıf veya varsayılan şekilde bırakılmasından kaynaklanmaktadır. Örnek Saldırı Bu örnek saldırıda, sistemin otomatik oluşturduğu “admin” kullanıcısının parolasının değiştirilmemesi sonucu saldırgan varsayılan kullanıcı adı ve parola ile sisteme giriş yapabilmektedir. Korunma Yöntemleri ● Varsayılan yapılandırmaları düzenlemek. ● Yazılımları güncel tutmak. ● Kullanılmayan servis ve portları devre dışı bırakmak. Cross-Site Request Forgery (CSRF) CSRF, siteler arası istek sahteciliği anlamına gelmektedir. Kullanıcıya kendi isteği dışında saldırganlar tarafından işlemler yaptırılmasıyla gerçekleştirilen bir saldırı türüdür. Örnek Saldırı Bu örnek saldırıda amacımız, sahte bir web sayfası ile hedef uygulamaya istek göndererek kurbanın parolasını değiştirmek olacaktır. Sahte web sayfasında sadece “tıkla” butonu bulunmaktadır. İlgili butona ait ekran görüntüsü aşağıda verilmiştir. Sahte sayfanın kaynak koduna dair ekran görüntüsü aşağıda verilmiştir.
  30. 30. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Sahte sayfamızda şu işlem gerçekleştirilecektir; eğer kurban “tıkla” butonuna tıklarsa hedef uygulamaya parolasını 123456 olarak değiştirmek istediğine dair bir istek göndermiş olacaktır. …ve butona tıklamış olan kullanıcının parolası değişecektir. İlgili ekran görüntüsü aşağıda verilmiştir. Log Kayıtları Gerçekleştirilen saldırı üzerine log kayıtları incelendiğinde, kurban tarafından uygulamaya parola dair istek geldiği ve kullanıcının parolasının değiştiği görülmektedir. Korunma Yöntemleri ● Frameworklerin sunduğu CSRF korunma mekanizmalarını kullanmak. ● Token ve session kullanmak.
  31. 31. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Sunucu Zafiyetleri Bu bölümde sunucunun kendisinden kaynaklanan zafiyetler incelenecektir. İncelenen zafiyetlerin dışında daha fazlası için; ● http://www.cvedetails.com …adresi ziyaret edilebilir. Apache Apache sunucu için “Shellshock” olarak anılan ve uzaktan komut çalıştırmaya yarayan CVE- 2014-6271 kodlu zafiyet ele alınacaktır. Apache sunucularında genellikle mod_cgi ve mod_cgid modüllerini kullanan sitemler zafiyetten etkilenmekte ve 1.14 ile 4.3 arası olan bash sürümleri tehdit altında olmaktadır. HTTP_USER_AGENT çevre değişkeni kötü amaçlı olacak şekilde değiştirilip CGI komut dosyalarına hedefleyerek zafiyet istismar edilebilmektedir. Örnek Saldırı Gerçekleştirilecek örnek saldırı için hedef üzerinde sunucudan “uptime” ve “kerne”l bilgilerini çeken script çalışmaktadır. Aşağıdaki komut ile hedef adresin “passwd” dosyası okunmak istenmektedir. echo -e "HEAD /cgi-bin/status HTTP/1.1rnUser-Agent: () { :;}; echo $(</etc/passwd)rnHost: HEDEF_ADRESrnConnection: closernrn" | nc HEDEF_ADRES 80 Gelen yanıtın HTTP başlığı incelendiğinde “passwd” dosyasının içeriği görüntülenmektedir.
  32. 32. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity User-agent başlık bilgisi değiştirilmiş isteğin hedefe gönderildiğine dair ekran görüntüsü aşağıda verilmiştir. Log Kayıtları Log kayıtları incelendiğinde /cgi-bin/status adresine HEAD isteği gönderildiği dikkat çekmektedir. Aynı zamanda çeşitli parametreler ile gönderilen /etc/passwd bölümü göze çarpmaktadır. Dönen yanıtı görüntülemek üzere ağ trafiği incelenir. …“cgi-bin/status” dosyasına gönderilen istek aşağıdaki ekran görüntüsünde verilmiştir.
  33. 33. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Gerçekleştirilen isteğe sunucu tarafından döndürülen yanıta dair ekran görüntüsü aşağıda verilmiştir. Dönen yanıta incelendiğinde sunucu bilgilerinin ifşa olduğu görülmektedir. Korunma Yöntemleri ● Bash’i güncel versiyona yükseltmektir. Bunun için kullanılması gereken komut; sudo apt-get update && sudo apt-get install --only-upgrade bash
  34. 34. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Nginx Nginx sunucusu için bulunan güvenlik açıklıklarına bakıldığında son yıllarda kritik düzeyde bulunan bir zafiyet görünmemektedir.
  35. 35. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity IIS Bu bölümde 2 adet zafiyetten bahsedilecektir. Bunlar CVE-2017-7269 ve MS15-034 tür. MS15-034 Bu güvenlik açıklığında windows sisteme özel hazırlanmış bir HTTP isteği gönderildiğinde uzaktan kod çalıştırması mümkün kılınmaktadır. Zafiyetten etkilenen versiyonlar: Windows 7, Windows Server 2008 R2, Windows 8, Windows Server 2012, Windows 8.1, and Windows Server 2012 R2 işletim sistemlerinde HTTP.sys in kullanıldığı herhangi bir IIS sürümü barındıran makineler. Hedef nmap ile taratıldığında Windows Vista,2000 veya 7 kullandığı ve aynı zamanda IIS 7.5 in aktif olduğu görülür. İlgili zafiyetin hedef için geçerli olup olmadığını anlamak için hedefe “Range” başlığı eklenmiş http talebi gönderilir. Eklenen aralık sunucu tarafından işlenecektir. wget --header="Range: bytes=0-18446744073709551615" http://192.168.10.169/welcome.png Yukarıdaki komut girilir ve alınan “416 Requested Range Not Satisfiable” çıktısından dolayı zafiyetin mevcut olduğu anlaşılır. Ardından Range aralığı değiştirilerek tekrar gönderilir ve aşırı yük altında kalmış olur. wget --header="Range: bytes=18-18446744073709551615" http://192.168.10.169/welcome.png
  36. 36. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Windows güncelleştirmelerinin kurulmasıyla ilgili zafiyetten kurtulmak mümkündür. CVE-2017-7269 Windows Server 2003 R2 üzerinde IIS 6.0 çalışan makinede bulunan CVE-2017-7269 güvenlik açıklığı ele alınacaktır. Açıklık IIS 6.0’daki WebDAV servisinde bulunan ScStoragePathFromUrl fonksiyonunun buffer overflow saldırısına maruz kalmasından kaynaklanmaktadır. Metasploitte bulunan “iis_webdav_scstoragepathfromurl” exploiti kullanılarak zafiyet istismar edilebilmektedir.
  37. 37. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Exploit için gerçekleştirilen ayarlara ait ekran görüntüsü aşağıda verilmiştir.
  38. 38. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Zafiyetin istismarı sonucu elde edilen meterpreter oturumuna dair ekran görüntüsü aşağıda verilmiştir.
  39. 39. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Programlama Dili Zafiyetleri PHP PHP’nin barındırdığı mail() fonksiyonu ve bunu kullanan “Phpmailer” kütüphanesi milyonlarca kişi tarafından kullanılmaktadır. “mail()” fonksiyonunun fazladan parametre gönderme özelliğinin tam olarak denetlenmeden kullanılmasından dolayı uzaktan kod çalıştırma zafiyeti meydana gelmektedir. İlgili açıklığın kodu “CVE-2016-10033” tür. Örnek Saldırı Örnek olması için güvenlik açığı barındıran bir uygulama kurulur. Ardından daha önce bu açıklık için hazırlanmış olan exploit çalıştırılır. İlgili exploit aşağıda verilen link üzerinden indirilebilir. ● https://github.com/opsxcq/exploit-CVE-2016-10033 Hedef adrese gerçekleştirilen exploit işlemine dair ekran görüntüsü aşağıda verilmiştir. Exploit işlemi gerçekleştirildikten sonra uzaktan komut çalıştırılabilir bir halde sistem beklemektedir.
  40. 40. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Zafiyetin istismar edildiği ve uzaktan komut çalıştırıldığına dair ekran görüntüsü aşağıda verilmiştir. Log Kayıtları Zafiyete ait ağ trafiği incelendiğinde “backdoor.php” uzantısına GET istekleri gönderildiği farkedilmektedir. Gönderilen komutlar base64 ile decode edildiğinde saldırganın çalıştırdığı komutlar ifşa olmaktadır. Korunma Yöntemleri ● Zafiyet 5.2.18 altındaki sürümleri etkilemektedir. Güncelleme yaparak zafiyetten korunulabilir.
  41. 41. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Java Bu başlık altında Java Play Framework’de oluşan “Session Injection” zafiyeti incelenecektir. Zafiyet oturum kodlamasından (session encode) kaynaklanmaktadır. Örnek Saldırı Hedef uygulama ekrana kullanıcının admin haklarına sahip olup olmadığını söylüyor. Burada saldırganın amacı admin haklarına erişmek olacaktır. İlk olarak normal bir şekilde user adı altında kayıt yapılır ve gönderilen istekler incelenir. Burada admin kullanıcısının olduğunu varsayılarak admin kullanıcısına geçmek için null byte’lardan faydalanılır. Yeni bir kayıt oluşturulur ve kullanıcı adından sonra %00%00admin%3a1%00 parametresi eklenerek injection tamamlanır. Burada oluşturulacak yeni oturumun admin:1 parametresi ile sunucu tarafından yanlış yorumlanıp admin haklarına erişmesi sağlanmaktadır.Boş karakterler kullanılarak admin:1 parametresinin bir önceki parametre olan kullanıcı adından ayrılması sağlanır.
  42. 42. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Kayıt ekranına ait kullanıcı arayüzü aşağıda verilmiştir. Gönderilen istek üzerinde kullanıcı adının sonuna %00%00admin%3a1%00 parametresi eklenir. Gerçekleştirilen istek sonrası uygulama üzerinde admin haklarına erişim sağlandığına dair ekran görüntüsü aşağıda verilmiştir. Log Kayıtları Log kayıtları incelendiğinde “test” kullanıcısının normal bir şekilde kayıt olmuş gibi gözüktüğü fakat cookie değeri incelendiğinde injection saldırısı gerçekleştiği görülmektedir.
  43. 43. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Register sayfasına gönderilen POST isteğine dair ekran görüntüsü aşağıda verilmiştir. Kayıt sonrası istek ve sunucunun döndürdüğü yanıta dair ekran görüntüsü aşağıda verilmiştir. Korunma Yöntemleri ● Bu zafiyet güncelleme ile giderilmiştir. Güncelleme yapılarak zafiyetten korunulabilir.
  44. 44. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Sunucuya Yüklenmiş Shell’i Bulmak Shell, yüklendiği sunucu üzerinde yükleyen kişiye sahip olduğu hakları aktaran scripttir. c99,r57 bilinen en popüler shell’lerdendir. Bu bölümde PHP shellerinden bahsedeceğiz. Basit bir komut çalıştırma olanağı sağlayan shell örneğine bakacak olursak sıradan komutların dışında system() fonksiyonunu çalıştırdığı görülür. Aşağıda basit bir PHP shell’ine ait ekran görüntüsü verilmiştir. Bu durumda eğer sunucu içerisinde system() fonksiyonunu çağıran dosyalar ayıklanırsa yüzlerce dosya arasından aranan zararlı dosya daha rahat bulunabilir. grep -Rn "system *(" /var/www komutu ile /var/www dizini altındaki system fonksiyonunu çağıran bütün dosyaları taranmış olur. Farklı bir PHP shell incelendiğinde ise system fonksiyonu yerine shell_exec() fonksiyonunun tercih edildiği görülmektedir. Daha önce bahsedildiği gibi kullanılmış farklı fonksiyonlara dikkat edildiğinde shell_exec() ve eval() fonksiyonu da göze çarpmaktadır.
  45. 45. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Yani shell araması yapılırken shell_exec ve eval fonksiyonları da taratılmalıdır. PHP shell’ler incelendiğinde genellikle passthru, shell_exec, system, phpinfo, base64_decode, edoced_46esab, chmod, mkdir, fopen, fclose, readfile, php_uname ve eval gibi paremetreler içerdiği gözlenmiştir. Bunun için aşağıdaki tablo içerisinde verilen komut ile gerçekleştirilen bir taramada sunucu içerisindeki shel’leri bulmak mümkündür. grep -RPn "(passthru|shell_exec|system|phpinfo|base64_decode|chmod|mkdir| fopen|fclose|readfile|php_uname|eval) *(" /var/www
  46. 46. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Shell Gizleme Yöntemleri Sistem yöneticisi tarafından veya dosya yükleme işlemi gerçekleştirirken güvenlik duvarına takılmamak için saldırganlar bazı shell gizleme yöntemleri uygulamaktadır. Bu başlık altında bu yöntemlere değineceğiz. Uzaktan Çağırma Bu yöntemde shell aslında hedef sunucuda barındırılmaz. Başka bir adresten shell’e ait olan kodlar çekilir ve hedef sunucuda çalıştırılır. Şifrelenmiş Kod Shell’in kodunun şifrelenmesi ile eğer varsa güvenlik duvarı atlatılmaya çalışılır. Resim İçerisine Gizleme Burada zararlı kod herhangi bir resmin exif bilgileri içerisine yerleştirilir ve PHP ile resmin exif bilgileri okunarak kod çalıştırılır. İlk olarak exiftool yardımı ile görselin exif bilgilerine istenilen kodlar yerleştirilir. “exif” bilgileri değiştirilen görsele ait ekran görüntüsü aşağıda verilmiştir.
  47. 47. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Daha sonra resim içerisinden exif bilgilerini okuyacak PHP kodu yazılır. Bu tarz gizleme yöntemleri ile güvenlik duvarları aşılabilmektedir. İş shell’i bulmaya gelince sunucudaki dosyaların grep yardımı ile tek tek aratılmasıyla çok da zor olmamaktadır. Fakat daha önce bahsedilen fonksiyonların dışında exif_read_data() ve preg_replace() fonksiyonlarını da taratmak gerekecektir. Yukarıda görüldüğü gibi şifrelenmiş shell, resim içerisine gizlenmiş shell ve uzaktan çağırılan shelllerin hepsinin yeri tespit edilmiştir.
  48. 48. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Hacklenmiş Web Sunucu Analizi Bu bölümde tamamıyla ele geçirilmiş, içerisinde Wordpress bulunan web sunucusunun saldırı sonrası analizi ile nasıl ele geçirildiği incelenecektir. İlk olarak saldırganın admin paneline erişip erişmediğini anlamak için; cat access.log | grep POST | grep wp-login …komutu girilir. Yukarıda verilen ekran görüntüsündeki çıktıda görüldüğü gibi aynı IP üzerinden admin paneli giriş sayfasına çok sayıda POST isteği gönderilmiştir. İstekle beraber gönderilen veriyi kontrol etmek için ağ trafiği incelenir. Bunun için Wireshark’da; ip.src == 192.168.2.232 && ip.dst == 192.168.2.31 && http.request.method == POST …filtresi kullanılarak saldırgan üzerinden web sunucusuna giden POST istekleri listelenir.
  49. 49. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity İstekler incelendiğinde “wp-login” sayfasına kaba kuvvet saldırısı gerçekleştirildiği tespit edilmiştir. Saldırı sonucunda admin:admin olarak doğru kullanıcı adı ve parola bulunmuştur. “error.log” dosyası incelendiğinde ise fscockopen() fonksiyonunun devreye sokulmak istendiği görülmektedir. Böylece saldırganın admin panelinde ne yaptığı tahmin edilebilmektedir. cat error.log komutu ile error.log sayfası okunur. Dosya detaylarına bakıldığında /wordress/test123123 sayfasına istek gönderidiği tespit edilmiştir. İlgili ekran görüntüsü aşağıda verilmiştir. Saldırgan erişilemeyen bir sayfaya giderek 404 hatası almak istemiştir. Böylece klasik 404 hata sayfası yerine kendi yerleştirmiş olduğu kodun çalışacağı düşünülür. Ağ trafiğini inceleyerek veya admin paneline giriş yaparak değişikliğe bakalabiliriz.
  50. 50. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Değişikliklere bakıldığında 404 hata sayfasının içeriğinin saldırgan tarafından değiştirildiği tespit edilmiştir. Saldırganın hata sayfası için kullandığı kod parçası aşağıdaki ekran görüntüsünde verilmiştir. Saldırganın 404 hata kodu sayfası için kullandığı kod incelendiğinde kendi adresine 1234 portundan erişim açtığı görülmektedir. Saldırgan kendine açtığı bu kapı ile www-data hakları ile sunucuya erişim sağlamış olacaktır. Bu durumda “www-data” kullanıcısının sunucuda çalıştırdığı komutlar incelemeye alınır.
  51. 51. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Saldırganın sunucuda çalıştırdığı komutlara dair ekran görüntüsü aşağıda verilmiştir. …“wp-config.php” dosyasını okuyan saldırgan root kullanıcısına geçmiştir. wp-config.php dosyasına bakıldığı zaman root kullanıcısının parolası ile aynı olan database parolası gözükmektedir. wp-config.php dosyasının içeriğine dair ekran görüntüsü aşağıda verilmiştir. Yukarıdaki parola ile saldırgan root yetkisine ulaşarak sunucunun tamamını ele geçirmiştir.
  52. 52. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity Sonuç Kitapçıkta incelendiği gibi saldırganlar web sunucusunu ele geçirebilmek için çeşitli yollardan saldırabilmektedirler. Saldırıların tespiti için log analizi ve ağ trafiğinin iyi kontrol edilmesi gerekmektedir. Bunun için etkili analiz için saldırı vektörlerini bilmek ve iyi anlamak gerekir. Bazen güvenlik açıklığı kullandığınız sunucudan ya da programlama dilinden kaynaklanabilir. Bundan dolayı sunucudaki bileşenleri sürekli güncel tutmak gerekmektedir. Referanslar ● https://www.acunetix.com/blog/articles/using-logs-to-investigate-a-web- application-attack/ ● https://httpd.apache.org/docs/1.3/logs.html ● https://www.owasp.org/index.php/Top_10_2017-Top_10 ● https://www.conetix.com.au/blog/root-cause-analysis-hacked-wordpress-website ● https://docs.microsoft.com/en- us/iis/configuration/system.applicationhost/sites/sitedefaults/logfile/ ● https://www.cisecurity.org/advisory/a-vulnerability-in-jboss-application-server- could-allow-for-remote-code-execution/ ● https://pentesterlab.com/ ● https://www.rapid7.com ● https://th3w1tch.wordpress.com/2012/06/21/finding-vulnerabilities-backdoor-php- shell-script-on-a-server/ ● http://resources.infosecinstitute.com/checking-out-backdoor-shells/#gref ● https://www.trustwave.com/Resources/SpiderLabs-Blog/Hiding-Webshell-Backdoor- Code-in-Image-Files/ ● https://vexatioustendencies.com/php-backdoor-obfuscation-techniques/ ● https://github.com/opsxcq/exploit-CVE-2016-10033 ● https://www.netsparker.com.tr/blog/web-guvenligi/Meraklisi-icin-PwnScriptum- Zafiyeti-PHP-Mailer-Remote-Code-Execution/ ● http://www.sqlinjectionwiki.com/categories/2/mysql-sql-injection-cheat-sheet/ ● https://wiki.bgasecurity.com/Ana_Sayfa
  53. 53. [HACKLENMİŞ WEB SUNUCU ANALİZİ] BGA Bilgi Güvenliği A.Ş. | bgasecurity.com | @bgasecurity BGA Bilgi Güvenliği A.Ş. Hakkında BGA Bilgi Güvenliği A.Ş. 2008 yılından bu yana siber güvenlik alanında faaliyet göstermektedir. Ülkemizdeki bilgi güvenliği sektörüne profesyonel anlamda destek olmak amacı ile kurulan BGA Bilgi Güvenliği, stratejik siber güvenlik danışmanlığı ve güvenlik eğitimleri konularında kurumlara hizmet vermektedir. Uluslararası geçerliliğe sahip sertifikalı 50 kişilik teknik ekibi ile, faaliyetlerini Ankara ve İstanbul ve USA’da sürdüren BGA Bilgi Güvenliği’nin ilgi alanlarını “Sızma Testleri, Güvenlik Denetimi, SOME, SOC Danışmanlığı, Açık Kaynak Siber Güvenlik Çözümleri, Büyük Veri Güvenlik Analizi ve Yeni Nesil Güvenlik Çözümleri” oluşturmaktadır. Gerçekleştirdiği başarılı danışmanlık projeleri ve eğitimlerle sektörde saygın bir yer edinen BGA Bilgi Güvenliği, kurulduğu günden bugüne alanında lider finans, enerji, telekom ve kamu kuruluşlarına 1.000'den fazla eğitim ve danışmanlık projeleri gerçekleştirmiştir. BGA Bilgi Güvenliği, kurulduğu 2008 yılından beri ülkemizde bilgi güvenliği konusundaki bilgi ve paylaşımların artması amacı ile güvenlik e-posta listeleri oluşturulması, seminerler, güvenlik etkinlikleri düzenlenmesi, üniversite öğrencilerine kariyer ve bilgi sağlamak için siber güvenlik kampları düzenlenmesi ve sosyal sorumluluk projeleri gibi birçok konuda gönüllü faaliyetlerde bulunmuştur. BGA Bilgi Güvenliği AKADEMİSİ Hakkında BGA Bilgi Güvenliği A.Ş.’nin eğitim ve sosyal sorumluluk markası olarak çalışan Bilgi Güvenliği AKADEMİSİ, siber güvenlik konusunda ticari, gönüllü eğitimlerin düzenlenmesi ve siber güvenlik farkındalığını arttırıcı gönüllü faaliyetleri yürütülmesinden sorumludur. Bilgi Güvenliği AKADEMİSİ markasıyla bugüne kadar “Siber Güvenlik Kampları”, “Siber Güvenlik Staj Okulu”, “Siber Güvenlik Ar- Ge Destek Bursu”, “Ethical Hacking yarışmaları” ve “Siber Güvenlik Kütüphanesi” gibi birçok gönüllü faaliyetin destekleyici olmuştur.

×