Sıfırdan Web Antivirüsü Kodlayalım!! |Runtime Waf Yapımı Giriş Seviyesi|

'CaptainKanka

Ar-Ge Ekibi
14 Eki 2012
1,705
1,350
localhost/admin.php

Merhaba Dostlar

Bu gün sizlere Waf ı tanıtıp sizlerle birlikte waf kodlayacağız.

66e2lra.jpg


Waf açılımı Web application firewall yani web uygulamaları güvenlik duvarı.

Bu aynı bilgisayarımızdaki antivirüslerin web sitesinde uygulanmış halidir.

Örneğin bir hacker sisteminize sızmaya çalışır ve bunun için belirli parametreler uygular. Bu uygulanan parametrelerin hepsini index.php den geçirip bu parametreleri kontrol etmeye çalışacağız. Tabiki siz geliştirip girilen parametreleri xss sql vs kontrol edebilirsiniz benim yoğunlaştığım şey waf ın sunucuya yüklenmiş webshellerini otomatikman algılayıp çalıştırmaması üstüne olacak.

Şimdi ilk olarak htaccess dosyamızla tüm yapılan istekleri index.php den geçirelim.

Kod:
RewriteEngine On[/COLOR][/CENTER]
[COLOR=rgb(226, 80, 65)][CENTER]RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]


Artık websitemizde bir sayfaya erişeceksek siteadı.com?url=dosyaadı şeklinde erişeceğiz. Yani anasayfa.php sayfamızı açmak için siteadı.com?url=anasayfa olarak istek atacağız. Bu sisteme göre sitemizi kodlayıp kendi wafımıza uyarlayacağız ancak ben eğitim amacıyla detaya girmeyeceğim.

PHP:
error_reporting(0);
// URL'den gelen isteği al
$url = isset($_GET['url']) ? $_GET['url'] : '/';

// İstenen dosyanın adını belirleyin
$dosya_yolu = __DIR__ . '/'. $url . '.php';

Burada error reporting ile hata mesajlarını kapattık ve url ile gelen get parametresini aldık ve dosya yoluna ekledik. Güvenlik kontrollerini kendiniz sağlayın ben devam ediyorum.

Şimdi ise web shellerinden topladığımız verileri ekleyelim ki waf istek atılan dosyayı çektiğinde aynı veri varsa virüs uyarısı versin.

PHP:
$arananKelimeler = array("base64_decode(",
"base64_decode (",
"eval(",
"eval (",
"str_rot13(",
"str_rot13 (",
"shell_exec (",
"shell_exec(",
"gzinflate (",
"gzinflate("
);

Ben buraya php de shell şifreleme kodlarından bazılarını yazdım sizde direk shell kaynak dosyasından farklı shelleri bulup ekleyebilirsiniz.
Şimdi ise urlden gelen isimde dosyamız var mı onu kontrol ettirip sonrasında shell den topladığımız kod parçacıklarının istek yapılan dosyanın kaynak kodlarında var mı yokmu kontrolünü sağlayıp uyarılarımızı veriyoruz.

PHP:
if (file_exists($dosya_yolu)) {
// Dosya varsa

$dosyaIcerigi = file_get_contents($dosya_yolu);//istek yapılan dosyanın çekimi
foreach($arananKelimeler as $kelime) {//shellerden toplanan verilerin değişkene eklenip döngü ile araması
$kosul1='multipart/form-data';
$kosul2='$_SESSION';

if(strpos($dosyaIcerigi, $kelime) !== false) {//istenen dosyada virüslü kodun olmasının kontrolü

echo 'Virüs İsteği!!';
exit();//bu kod olmalı çünkü bu kod ile çıkış yapılır eğer yapılmazsa dosya virüs uyarısı vermesine rağmen açılır!!
break;
}


if (strpos($dosyaIcerigi, $kosul1) !== false) {//eğer dosya yükleme alanı olup session ile kontrol edilmediyse yine virüslü algıla
if (strpos($dosyaIcerigi, $kosul2) === false) {

echo 'Virüs İsteği!!';
break;
exit();
}
}



include($dosya_yolu);//virüs değilse dosyayı çağır
exit();
}

} else {
// Dosya yoksa, 404 hatası gösterin veya başka bir şey yapın
echo 'Sayfa bulunamadı!';
exit();
}

?>

Artık Test edelim. Ben bir adet bootcamp shell oluşturdum sağ ok tuşuna basınca direk dosya yükleme alanı açılıyor. Bir adet alfashell buldum ve bir adet hello world yazılı shell olmayan bir sayfa hazırladım.
İsteklerimi yapıyorum...









İndirme Linki

Virüs Total 28/64 (İçinde Web shelleri olduğu için normal güvenmiyorsanız yukarıdaki kodları kopyalayın kullanın)

İyi Forumlar


274zv4c.png
 

ExeOweR

Ar-Ge Ekibi Deneyimli
5 Mar 2012
3,408
1,116
exe.php
Bir tık hızlı oldu sanırım :)
Peki genel olarak waflar bypass oluyor bu konu hakkında görüşünüz nedir acaba doktor bey?
Web sitesi olan kişiler nasıl bir önlem almalı?
 

Maveraün Nehr

Blue Team Lideri
25 Haz 2021
1,086
2,152
41.303921, -81.901693
Şimdi tam olarak idrak edemeyenler için kısacık açıklama; örneğin siz bir websitesi açtınız ve birisi sizin sitenizi ele geçirdi diyelim. Bu kodu sitenize enjekte ederseniz kod runtime olduğu için heykır abimiz kullanmış olduğu shell ile herhangi bir şey yapmaya çalıştığı zaman Shell i tespit edip sistemden silecek.
 

WHITERUBY

Uzman üye
20 Şub 2023
1,741
1,699

Merhaba Dostlar

Bu gün sizlere Waf ı tanıtıp sizlerle birlikte waf kodlayacağız.

66e2lra.jpg


Waf açılımı Web application firewall yani web uygulamaları güvenlik duvarı.

Bu aynı bilgisayarımızdaki antivirüslerin web sitesinde uygulanmış halidir.

Örneğin bir hacker sisteminize sızmaya çalışır ve bunun için belirli parametreler uygular. Bu uygulanan parametrelerin hepsini index.php den geçirip bu parametreleri kontrol etmeye çalışacağız. Tabiki siz geliştirip girilen parametreleri xss sql vs kontrol edebilirsiniz benim yoğunlaştığım şey waf ın sunucuya yüklenmiş webshellerini otomatikman algılayıp çalıştırmaması üstüne olacak.

Şimdi ilk olarak htaccess dosyamızla tüm yapılan istekleri index.php den geçirelim.

Kod:
RewriteEngine On[/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(226, 80, 65)][CENTER][COLOR=rgb(226, 80, 65)][CENTER]RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]



Artık websitemizde bir sayfaya erişeceksek siteadı.com?url=dosyaadı şeklinde erişeceğiz. Yani anasayfa.php sayfamızı açmak için siteadı.com?url=anasayfa olarak istek atacağız. Bu sisteme göre sitemizi kodlayıp kendi wafımıza uyarlayacağız ancak ben eğitim amacıyla detaya girmeyeceğim.

PHP:
error_reporting(0);
// URL'den gelen isteği al
$url = isset($_GET['url']) ? $_GET['url'] : '/';

// İstenen dosyanın adını belirleyin
$dosya_yolu = __DIR__ . '/'. $url . '.php';

Burada error reporting ile hata mesajlarını kapattık ve url ile gelen get parametresini aldık ve dosya yoluna ekledik. Güvenlik kontrollerini kendiniz sağlayın ben devam ediyorum.

Şimdi ise web shellerinden topladığımız verileri ekleyelim ki waf istek atılan dosyayı çektiğinde aynı veri varsa virüs uyarısı versin.

PHP:
$arananKelimeler = array("base64_decode(",
"base64_decode (",
"eval(",
"eval (",
"str_rot13(",
"str_rot13 (",
"shell_exec (",
"shell_exec(",
"gzinflate (",
"gzinflate("
);

Ben buraya php de shell şifreleme kodlarından bazılarını yazdım sizde direk shell kaynak dosyasından farklı shelleri bulup ekleyebilirsiniz.
Şimdi ise urlden gelen isimde dosyamız var mı onu kontrol ettirip sonrasında shell den topladığımız kod parçacıklarının istek yapılan dosyanın kaynak kodlarında var mı yokmu kontrolünü sağlayıp uyarılarımızı veriyoruz.

PHP:
if (file_exists($dosya_yolu)) {
// Dosya varsa

$dosyaIcerigi = file_get_contents($dosya_yolu);//istek yapılan dosyanın çekimi
foreach($arananKelimeler as $kelime) {//shellerden toplanan verilerin değişkene eklenip döngü ile araması
$kosul1='multipart/form-data';
$kosul2='$_SESSION';

if(strpos($dosyaIcerigi, $kelime) !== false) {//istenen dosyada virüslü kodun olmasının kontrolü

echo 'Virüs İsteği!!';
exit();//bu kod olmalı çünkü bu kod ile çıkış yapılır eğer yapılmazsa dosya virüs uyarısı vermesine rağmen açılır!!
break;
}


if (strpos($dosyaIcerigi, $kosul1) !== false) {//eğer dosya yükleme alanı olup session ile kontrol edilmediyse yine virüslü algıla
if (strpos($dosyaIcerigi, $kosul2) === false) {

echo 'Virüs İsteği!!';
break;
exit();
}
}



include($dosya_yolu);//virüs değilse dosyayı çağır
exit();
}

} else {
// Dosya yoksa, 404 hatası gösterin veya başka bir şey yapın
echo 'Sayfa bulunamadı!';
exit();
}

?>

Artık Test edelim. Ben bir adet bootcamp shell oluşturdum sağ ok tuşuna basınca direk dosya yükleme alanı açılıyor. Bir adet alfashell buldum ve bir adet hello world yazılı shell olmayan bir sayfa hazırladım.
İsteklerimi yapıyorum...









İndirme Linki

Virüs Total 28/64 (İçinde Web shelleri olduğu için normal güvenmiyorsanız yukarıdaki kodları kopyalayın kullanın)

İyi Forumlar


274zv4c.png
eline sağlık üstad
Şimdi tam olarak idrak edemeyenler için kısacık açıklama; örneğin siz bir websitesi açtınız ve birisi sizin sitenizi ele geçirdi diyelim. Bu kodu sitenize enjekte ederseniz kod runtime olduğu için heykır abimiz kullanmış olduğu shell ile herhangi bir şey yapmaya çalıştığı zaman Shell i tespit edip sistemden silecek.
Parçanız bulunmaz hocam 💯
 

Amonkus

Üye
9 Kas 2023
192
31

Merhaba Dostlar

Bu gün sizlere Waf ı tanıtıp sizlerle birlikte waf kodlayacağız.

66e2lra.jpg


Waf açılımı Web application firewall yani web uygulamaları güvenlik duvarı.

Bu aynı bilgisayarımızdaki antivirüslerin web sitesinde uygulanmış halidir.

Örneğin bir hacker sisteminize sızmaya çalışır ve bunun için belirli parametreler uygular. Bu uygulanan parametrelerin hepsini index.php den geçirip bu parametreleri kontrol etmeye çalışacağız. Tabiki siz geliştirip girilen parametreleri xss sql vs kontrol edebilirsiniz benim yoğunlaştığım şey waf ın sunucuya yüklenmiş webshellerini otomatikman algılayıp çalıştırmaması üstüne olacak.

Şimdi ilk olarak htaccess dosyamızla tüm yapılan istekleri index.php den geçirelim.

Kod:
RewriteEngine On[/COLOR][/CENTER][/COLOR][/CENTER]
[COLOR=rgb(226, 80, 65)][CENTER][COLOR=rgb(226, 80, 65)][CENTER]RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]



Artık websitemizde bir sayfaya erişeceksek siteadı.com?url=dosyaadı şeklinde erişeceğiz. Yani anasayfa.php sayfamızı açmak için siteadı.com?url=anasayfa olarak istek atacağız. Bu sisteme göre sitemizi kodlayıp kendi wafımıza uyarlayacağız ancak ben eğitim amacıyla detaya girmeyeceğim.

PHP:
error_reporting(0);
// URL'den gelen isteği al
$url = isset($_GET['url']) ? $_GET['url'] : '/';

// İstenen dosyanın adını belirleyin
$dosya_yolu = __DIR__ . '/'. $url . '.php';

Burada error reporting ile hata mesajlarını kapattık ve url ile gelen get parametresini aldık ve dosya yoluna ekledik. Güvenlik kontrollerini kendiniz sağlayın ben devam ediyorum.

Şimdi ise web shellerinden topladığımız verileri ekleyelim ki waf istek atılan dosyayı çektiğinde aynı veri varsa virüs uyarısı versin.

PHP:
$arananKelimeler = array("base64_decode(",
"base64_decode (",
"eval(",
"eval (",
"str_rot13(",
"str_rot13 (",
"shell_exec (",
"shell_exec(",
"gzinflate (",
"gzinflate("
);

Ben buraya php de shell şifreleme kodlarından bazılarını yazdım sizde direk shell kaynak dosyasından farklı shelleri bulup ekleyebilirsiniz.
Şimdi ise urlden gelen isimde dosyamız var mı onu kontrol ettirip sonrasında shell den topladığımız kod parçacıklarının istek yapılan dosyanın kaynak kodlarında var mı yokmu kontrolünü sağlayıp uyarılarımızı veriyoruz.

PHP:
if (file_exists($dosya_yolu)) {
// Dosya varsa

$dosyaIcerigi = file_get_contents($dosya_yolu);//istek yapılan dosyanın çekimi
foreach($arananKelimeler as $kelime) {//shellerden toplanan verilerin değişkene eklenip döngü ile araması
$kosul1='multipart/form-data';
$kosul2='$_SESSION';

if(strpos($dosyaIcerigi, $kelime) !== false) {//istenen dosyada virüslü kodun olmasının kontrolü

echo 'Virüs İsteği!!';
exit();//bu kod olmalı çünkü bu kod ile çıkış yapılır eğer yapılmazsa dosya virüs uyarısı vermesine rağmen açılır!!
break;
}


if (strpos($dosyaIcerigi, $kosul1) !== false) {//eğer dosya yükleme alanı olup session ile kontrol edilmediyse yine virüslü algıla
if (strpos($dosyaIcerigi, $kosul2) === false) {

echo 'Virüs İsteği!!';
break;
exit();
}
}



include($dosya_yolu);//virüs değilse dosyayı çağır
exit();
}

} else {
// Dosya yoksa, 404 hatası gösterin veya başka bir şey yapın
echo 'Sayfa bulunamadı!';
exit();
}

?>

Artık Test edelim. Ben bir adet bootcamp shell oluşturdum sağ ok tuşuna basınca direk dosya yükleme alanı açılıyor. Bir adet alfashell buldum ve bir adet hello world yazılı shell olmayan bir sayfa hazırladım.
İsteklerimi yapıyorum...









İndirme Linki

Virüs Total 28/64 (İçinde Web shelleri olduğu için normal güvenmiyorsanız yukarıdaki kodları kopyalayın kullanın)

İyi Forumlar


274zv4c.png
Kodlarda değişiklik falan gerekiyor mu? Mesela dosya yolunu belirlemek gerekiyor mu?( dosya yoluna bir şey yapacaksak ne yatağımı bilmiyorum)

Not: cahillimden dolayı kusura bakmayın
 

FrezzY*

Katılımcı Üye
3 May 2013
781
8
Uzay
Birlikte yapmaya ne dersiniz :LOL:

Ben biraz biraz başladım discord dan eklerseniz geliştirme için birlikte bişeyler yapabiliriz belki. Şu an yaptığım kısım hakkında biraz bilgi vereyim.

Python kullanıyorum python ile flask üzerinden web servisi oluşturdum uygulama şu şekilde işlem yapıyor.

web anti virüsü olduğu için ilk partta bi dosya yüklediğinizde clamav de tarama yapıyor, virustotal api aracılığı ile virustotalde tarama yapıyor ayrıca YARA kuralları aracılığı ile de analiz gerçekleştiriyor. Templateler var index results gibi burda basit html tasarımlar var belki buraları daha sonra geliştiririz. Şuan biraz sıkıntılar var bazı yerlerde hatalar oluşabiliyor uğraşıyorum hala dün baya bi kısmı bitti şu hataları giderirsem tamamlancak zaten ikinci kısımda da bunu bi şekilde belirttiğimiz dizini aktif olarak denetleyecek bişey koymayı düşünüyorum belirttiğimiz dizin mesela wwwroot olabilir web serverımızda bi zararlı dosya yüklenmesi mesela biri hackleyip shell yüklemeye çalıştı o shelli silse mesela çok iyi olur. daha sonra da gelen giden istekleri analiz etmesi için bi özellik eklemeyi düşünüyorum buda WAF gibi bi özellik sağlar tabii bu saydıklarım daha zorlu işler ilk kısım şuan dediğim gibi onu halledeyim gerisi gelir belki dediğin gibi birlikte yaparız
 

Ogehan

-
5 Haz 2016
2,184
277
$app->execute();
Speedy bir geri dönüş ve güzel bir proje ellerinize sağlık bu projenin devam sürümlerini ve gelişmiş boyutlarını geliştirip paylaşacağınızdan eminim emeğinize sağlık 🫡
 

KaptanTR

Administrator
17 Nis 2015
1,698
1,808
Eline sağlık , geliştirmeye açık bir fikir olmuş. Peki web site içindeki zararlı js kodlarını okuyabilir misin çoğu bypass tekniği javascript den geliyor. Bunu ürünleştire bilirsin Intelden web servis de sağlarız :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.