Raskolnikov
Üye
Başlamadan önce;
CGI Nedir ?
Web sunucuları ile bu sunucuların dışındaki programlar arasında etkileşim, diğer deyişle ortak çalışma platformu oluşturmak için geliştirilmiş bir standarttır. CGI bir proglamlama dili değil, bir programdır. HTML kodu içerisinden çağrılan CGI programları, Web’in statik yapısına dinamik bir yapı kazandırmaktadır. Özetlenecek olursa CGI Web kullanıcılarının sunucu üzerinde belirlediğin programları çalıştırdığı bir arayüz programıdır.
CGI, Linux kernel kullanan sistemlerde bash komutlarını çalıştırmaya olanak sağlar. Shellshock zafiyeti, CGI üzerinden bash script kullanılarak bash komutlarının çalıştırılmasına olanak sağlar.
Makine IP: 10.10.10.56
Nmap:
80 portunda Apache çalıştığını görüntülüyoruz…
Dizin taraması yapmak için “gobuster” aracını kullanıyoruz.
cgi-bin” dizini için 403 durum kodu döndüğünü görüyoruz.
Bu kez “gobuster” ile daha detaylı bir taramaya devam ediyoruz. sh ve pl dosyalarıda dahil edildi.
Yukardaki çıktıda sh,pl taraması yaptık. Ve “user.sh” diye bir dosyanın olduğunu görüntülüyoruz.
Burp kullanarak 127.0.0.1 üzerinden 10.10.10.56 IP’sine redirect ediyoruz.
“cgi-bin” dizinine isteği yakalarak User-Agent bölümünü " () { :; } ; echo; echo “…” " şeklinde payloadı giriyoruz.
Burada zafiyete sebep olan bölüm User-Agent oluyor. Paketi “repeater” sekmesine gönderip dönen cevapta echo komutunun çalıştığını görüntülüyoruz.
Whoami içinde denediğimde de olumlu sonuç aldım.
“nc” ile reverse shell alıyoruz.
Shelly userı için oturum aldık.
“sudo –l” ile root yetkileri ile çalışan komutları görüntülüyoruz.
Perl root yetkileri ile çalıştığı için perl ile system komutunu kullanıp root yetkilerini elde edeceğiz. root.pl scripti içine system( ‘su root’) kodunu yazıyorum.
Perl ile çalıştırdığımda system içerisine yazdığım komut çalışıyor ve root oluyorum.
Kendime hatırlatma olarak yazdığım ve biryerde paylaşmadığım çözümü burada paylaşıyorum. Anlatımda eksiklikler olabilir. Forum kültürünü yıllar önce unutmuştum. Umarım burada eski tadı yakalayabiliriz
CGI Nedir ?
Web sunucuları ile bu sunucuların dışındaki programlar arasında etkileşim, diğer deyişle ortak çalışma platformu oluşturmak için geliştirilmiş bir standarttır. CGI bir proglamlama dili değil, bir programdır. HTML kodu içerisinden çağrılan CGI programları, Web’in statik yapısına dinamik bir yapı kazandırmaktadır. Özetlenecek olursa CGI Web kullanıcılarının sunucu üzerinde belirlediğin programları çalıştırdığı bir arayüz programıdır.
CGI, Linux kernel kullanan sistemlerde bash komutlarını çalıştırmaya olanak sağlar. Shellshock zafiyeti, CGI üzerinden bash script kullanılarak bash komutlarının çalıştırılmasına olanak sağlar.
Makine IP: 10.10.10.56
Nmap:
80 portunda Apache çalıştığını görüntülüyoruz…
Dizin taraması yapmak için “gobuster” aracını kullanıyoruz.
cgi-bin” dizini için 403 durum kodu döndüğünü görüyoruz.
Bu kez “gobuster” ile daha detaylı bir taramaya devam ediyoruz. sh ve pl dosyalarıda dahil edildi.
Yukardaki çıktıda sh,pl taraması yaptık. Ve “user.sh” diye bir dosyanın olduğunu görüntülüyoruz.
Burp kullanarak 127.0.0.1 üzerinden 10.10.10.56 IP’sine redirect ediyoruz.
“cgi-bin” dizinine isteği yakalarak User-Agent bölümünü " () { :; } ; echo; echo “…” " şeklinde payloadı giriyoruz.
Burada zafiyete sebep olan bölüm User-Agent oluyor. Paketi “repeater” sekmesine gönderip dönen cevapta echo komutunun çalıştığını görüntülüyoruz.
Whoami içinde denediğimde de olumlu sonuç aldım.
“nc” ile reverse shell alıyoruz.
Shelly userı için oturum aldık.
“sudo –l” ile root yetkileri ile çalışan komutları görüntülüyoruz.
Perl root yetkileri ile çalıştığı için perl ile system komutunu kullanıp root yetkilerini elde edeceğiz. root.pl scripti içine system( ‘su root’) kodunu yazıyorum.
Perl ile çalıştırdığımda system içerisine yazdığım komut çalışıyor ve root oluyorum.
Kendime hatırlatma olarak yazdığım ve biryerde paylaşmadığım çözümü burada paylaşıyorum. Anlatımda eksiklikler olabilir. Forum kültürünü yıllar önce unutmuştum. Umarım burada eski tadı yakalayabiliriz
Moderatör tarafında düzenlendi: