Parçalanmış Paketlerle Uygulama Seviyesi Güvenlik Duvarı Atlatma

BGA Security Wiki sitesinden
Şuraya atla: kullan, ara

Amaç:

Güvenlik duvarlarının bypass edilebilmesi için, paketlerin parçalanarak yollanması.

Lab Senaryosu:

Güvenlik duvarına bir paket geldiğinde onu başlık bilgilerine bakarak filtreleyebilir fakat paket parçalanmış bir paket ise sadece ilk parça paketi filtreleyebilecektir, diğer parça paketler firewall'dan süzülerek geçecektir. Güvenlik duvarları gelip giden paketleri kural tablosu ile karşılaştırabilmesi için paketlerin parçalı olmaması gerekir. Bu da güvenlik duvarlarının paket birleştirme özelliğine sahip olmalarını zorunlu tutar. OpenBSD PF güvenlik duvarındaki scrub özelliği kullanılarak parçalanmış paketlerin güvenlik duvarında tekrar birleştirilmesi ve hedefe bu şekilde ulaştırılması sağlanabilir.

OpenBSD PF Scrub özelliği;

Gelen parçalanmış paketleri hedefe iletmeden önce birleştirerek göndermek için kullanılır. Bu seçeneğin yararı güvenlik duvarları paket tamamlanmadan kuralları tam uygulamayacağı için fragment paketlerin güvenlik duvarı kurallarına gelmeden birleştirilmesi gerekir. Ek olarak fragment crop, fragment drop-ovl, no-df seçenekleri de incelenebilir.

Parçalanmış Paketler ve Saldırı Tespit Sistemleri

Parçalanmış paketler konusunda en sıkıntılı sistemler IDS/IPS’lerdir. Bunun nedeni bu sistemlerin temel işinin ağ trafiği inceleme olmasıdır. Saldırı tespit sistemleri gelen bir paketin/paket grubunun saldırı içerikli olup olmadığını anlamak için çeşitli kontrollerden geçirir. Eğer bu kontrolleri geçirmeden önce paketleri birleştirmezse çok rahatlıkla kandırılabilir.

Örneğin HTTP trafiği içerisinde “/bin/bash” stringi arayan bir saldırı imzası olsun. IDS sistemi 80.porta gelen giden her trafiği inceleyerek içerisinde /bin/bash geçen paketleri arar ve bu tanıma uyan paketleri bloklar. Eğer IDS sistemi paket birleştirme işlemini uygun bir şekilde yapamıyorsa fragroute veya benzeri bir araç kullanarak /bin/sh stringini birden fazla paket olacak şekilde (1. Paket /bin, 2.paket /bash)gönderip IDS sistemini atlatmak mümkündür. ngrep aracını IDS olarak kullanarak fragroute ile atlatılabilir.

İlk olarak ngrep aracını kullanarak /etc/passwd string ifadesinin yakalanması test edilecektir.

Ngrep.png

Görüldüğü üzere telnet ile kurulan bağlantıda /etc/passwd ifadesi yakalanmış ve ekrana basılmıştır. Ama aynı istek fragroute aracı ile parçalanmış paketler halinde gönderilirse IDS görevi gören ngrep aracı bu isteği yakalayamayacaktır. Bu durumda istek IDS’e takılmadan ve başarılı bir şekilde gerçekleşecektir. Aşağıdaki ekran görüntüsünde aynı isteğin parçalanmış paketler halinde gönderilmesi gösterilmiştir.

Ngrep2.png