Featured Posts

Saldırıyı bilmeden savunmayı öğrenemezsiniz

12 Ocak 2015 Pazartesi

Linux'ta Samba ile Dosya/Klasör Paylaşımı

Kurumsal ortamlarda Windows işletim sistemleri üzerinde etkin olarak dosya ve klasör paylaşımları kullanılmaktadır. Bu özellik elbette Linux platformlarında da mevcuttur. Bu makalede bir Linux dağıtımı (Ubuntu) üzerinden klasör paylaşıma açılıp Windows üzerinden klasöre ulaşma hakkında bilgi paylaşımı yapılacaktır.


Öncelikle Linux'a Samba yüklemesi yapacağız. Samba yükleme komutu:
# apt-get install samba

Masaüstünde paylasalim isminde yeni bir klasör oluşturup everyone (read-write) yetkisi verelim:

# cd Desktop
# mkdir -p paylasalim
# chmod 777 paylasalim

18 Kasım 2014 Salı

Python Simple PhpBug Finder

Merhaba Arkadaşlar,

Farkındayım uzun zamandır bloga yazı girmiyorum ama mazeretim var, uzun süredir iş yoğunluğum mevcut. Bu yüzden maalesef pek fırsatım olmuyor..

Bugün yedek alırken eski arşivlere göz attım. Programlamaya yeni başladığım zamanlarda yazdığım birkaç programcığa rastladım :)
Vakti zamanında Linux ortamında çalışıp Linux'un komut gücünü kullanarak php scriptler üzerinde basit bir bug bulucu yapmışım :)

Ekran görüntüsü:

Örneğin yukarıdaki çıktıya bakacak olursak;

cat.php dosyasının 5. satırındaki " pageID= $_GET['pid']; " ibaresi potansiyel bir XSS açığının olduğunu söylemektedir.

Programın kodlarını buradan indirebilirsiniz: http://pastebin.com/tUs0w2u7

Umarım yararlı olur, iyi günler.

24 Haziran 2014 Salı

Xenotix XSS Exploit Framework ile XSS Tespiti

XSS (Cross-site Scripting) Zafiyeti Nedir?

Kaba yorum ile; web uygulamasında açığın meydana geldiği input/inject point (veri girişi) alanına gönderilen kötü niyetli javascript kodlarının, kullanıcının web tarayıcısında çalıştırıldığı bir saldırı türüdür. Yani Client-Side (kullanıcı taraflı) bir saldırıdır.
URL adreslerindeki query stringler ve form alanlarında sıklıkla görülür.
Phishing saldırılarına zemin oluşturur.
Genellikle POST ve GET metotlarının kullanıldığı alanlarda olur.

Çeşitleri:
Reflected (Yansıyan), Stored (Depolanan) ve Dom-based olarak üç çeşittir.

Reflected XSS

Stored XSS

Etkileri:
Yazılım betiklerinin kullanıcı tarafında çalıştırılması sonucunda kullanıcının oturum bilgileri çalınabilir, web tarayıcısı (browser) ele geçirilebilir veya bilgisayarına zararlı kodlar enjekte edilebilir ve bilgisayar yönetimi ele geçirilebilir...

XSS Zafiyeti Nasıl Oluşur?

Temel olarak web uygulamada kullanıcının veri girişi yaptığı alanlarda meta-karakterlerin filtrelenmemesinden kaynaklanmaktdır.

XSS Zafiyetine Nasıl Önlem Alınabilir?

  • Web uygulamasında kullanıcının veri girişine izin verilen alanlarda filtreleme yaparak bu açıkları kapatabilirsiniz. Veri girişinin filtrelenmesi kadar veri çıkışının da incelenmesi web uygulamalarının güvenliğini arttıracaktır.Aşağıda belirtilen meta-karakterlerin filtrelenmesi web uygulamaların XSS saldırılarına karşı güvenliğini sağlayacaktır:
['],[<],[>],[;],[/],[?],[=],[&],[#],[%],[{],[}],[|],[@],[\],["]
  • Çerezlerin güvenli hale getirilmesi web uygulamalarının güvenliğini arttırmak adına yapılabilecek en önemli işlemlerdendir. Çerezler içinde kullanıcı adı, şifre ve oturum durumunun saklanmasından kaçınılmalıdır. Eğer tutulması gerekiyorsa şifreli olarak tutulması tercih edilmelidir.
  • Donanımsal/Yazılımsal Web Application Firewall (WAF) ile web uygulamasında varolan bir zafiyetin saldırgan tarafından keşfedilme aşamasını zorlaştırıp, loglayıp, bloklayabilirsiniz.
  • Belirli periyotlarda içeriden ve dışarıdan web uygulama güvenlik testleri (penetrasyon testi) yaptırarak güvenlik açıklarının keşfi ve önlem alınması sisteminizi daha güvenli kılacaktır.

14 Mayıs 2014 Çarşamba

PHP Scriptlerde SQLi Tespiti ve Exploit Etme

NŞA'da PHP scriptler üzerinde iki yöntem ile zafiyet araştırmaları yapılabilir.

  1. Manuel Araştırma
  2. Otomatik Taramalarla

Biz bu makalede iki yöntemi de kullanarak temel anlamda PHP scriptlerde zafiyetler (SQLi, XSS, RCE, LFI vb.) nasıl keşfedilir ve nasıl exploit (sömürme) edilebilir bunlara değineceğiz.

SQL Injection Nedir?

Web uygulamalarında birçok işlem için kullanıcıdan alınan veri ile dinamik SQL cümlecikleri oluşturulur. Örneğin; "SELECT * FROM Products" örnek SQL cümleciği basit şekilde veritabanından web uygulamasına tüm ürünleri döndürecektir. Bu SQL cümlecikleri oluşturulurken araya sıkıştırılan herhangi bir meta-karakter SQL Injection'a neden olabilir.

3 Nisan 2014 Perşembe

Pentest Hikayeleri #1

Bu sefer teknik olmayan bir konuyla karşınızdayım. Başlıktan da anlaşıldığı gibi sizlere hikaye anlatacağım :)
Gerçekleştirmiş olduğum(uz) penetrasyon testlerinde karşılaştığımız problemleri, çözümleri, tecrübe edindiğimiz konuları, komik olayları vs.. anlatan ama detaylarında yeni başlayan arkadaşlar için faydalı olabilecek bir yazı dizisi planlamaktayım. Belki ileride bir kitap haline bile getirebilirim: "Bir Siber Güvenlik Polisiyesi" diye.. :)
Bu arada sizin de gerçekleştirdiğiniz ve hikayeye dökerek anlatmak istediğiniz penetrasyon testleriniz varsa bana e-posta gönderirseniz burada yayınlayabilirim.

Klasik olacak ama öncelikle birkaç tanım ile başlamak istiyorum;

Penetrasyon Testi Nedir?

Kısaca Pentest diyebilirsiniz. Penetrasyon testi; firmaların bilişim sistemlerini oluşturan ağ altyapılarını, donanım, yazılım ve uygulamalara kötü niyetli birinin (hacker) saldırmasını öngören yöntemler kullanılarak yapılan saldırı ve müdahaleler ile güvenlik açıklarının tespit edilip bu açıklarla sisteme sızılmaya çalışılmasının simüle edilmesi ve tüm bu işlemlerin raporlanmasıdır.

Test sırasında uzmanlar tıpkı bir saldırgan gibi hareket eder ve sistemin tüm açıklarını, riskleri ve erişilebilirliği ortaya çıkarırlar. Çok farklı yöntemler ve değişkenler söz konusu olduğundan uzmanlar tarafından gerçekleştirilmesi gerekmektedir.

Penetrasyon Testlerinin Çeşitleri

White Box, Black Box ve Gray Box olmak üzere üç çeşittir.

White Box

Güvenlik uzmanı, firma içinde yetkili kişilerce bilgilendirilir ve firma hakkındaki tüm sistemler hakkında bilgi sahibi olur. Bu yöntemde daha önce firmada yer almış, hala çalışmakta olan veya misafir olarak ağa sonradan dahil olan kişilerin sistemlere verebilecekleri zararlar gözetilir ve raporlanır.

Black Box

Bu yöntemde sızma testini gerçekleştiren firmayla herhangi bir bilgi paylaşımında bulunulmaz sadece hedef verilir.. Bilgi sızdırmak yada zarar vermek amacıyla sızmaya çalışan bir hacker gibi davranılarak verilebilecek zararlar gözetilir ve raporlanır.

Gray Box

White Box ile Black Box testlerini kapsayan yani hem içeriden hem dışarıdan olarak yapılan test diye tanımlayabiliriz.. Bu çeşitte ek olarak Sosyal Mühendislik ve Kablosuz Ağ Saldırıları da eklenmektedir.

14 Mart 2014 Cuma

Python ile Banner Grabbing Mantığı

Genellikle Vulnerability Assessment tarayıcılarının çalışma mantığı; hedef sistemi tararken öncelike port taramasıyla hedef sistemin açık veya filtreli portlarını keşfeder. Açık portlarda yer alan servis bilgisini (hizmet, software vb.) keşfettikten sonra tarayıcının kendi veritabanında bulunan güvenlik zafiyeti barındıran servis ismiyleyle karşılaştırır eğer eşleşiyor ise bu sistemde XYZ zafiyeti vardır demektedir...

Tabi bu sadece possible yani olabilir demektir. Çünkü Vulnerability Assessment tarayıcıları keşfedilen zafiyeti sistemde gerçekten olup olmadığını doğrulamaz.
Evet belki hedef sistemin bir portunda çalışan XYZ servisinde daha önceden Security Reseacher'ler tarafından keşfedilmiş bir zafiyet olabilir fakat hedef sistemde belki bu zafiyet fixlenmiştir (kapatılmıştır)? Veya serviste sorun vardır tam çalışmıyordur bile.. İşte bu saydığım ve bunun gibi tarayıcılardan tarafından keşfedilen zafiyetlerin durumuna false-positive demekteyiz.

False-Positive kavramını basitçe anlatan bir diyagram çizdim:

Yukarıdaki belirttiğim konuya istinaden Vulnerability Assessment tarayıcıların temel çalışma mantığını Python'da socket modülünü kullanarak belirlenen hedef sisteme 21 FTP portundan bağlanıp önceden belirlediğimiz zafiyet barındıran FTP servislerinin karşı tarafta olup olmadığını eşleştiren küçük bir uygulama yapacağız.