<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ddos attack korunma yolları arşivleri - Ertan Dönmez</title>
	<atom:link href="https://www.ertandonmez.org/tag/ddos-attack-korunma-yollari/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Ertan Dönmez Kişisel Blog Sitesi.</description>
	<lastBuildDate>Tue, 13 Apr 2010 23:41:06 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
	<item>
		<title>DDoS Nedir ? DDoS Nasıl Yapılır ? DDoS&#039;tan Korunma Yolları ?</title>
		<link>https://www.ertandonmez.org/ddos-nedir-ddos-nasil-yapilir-ddostan-korunma-yollari/</link>
					<comments>https://www.ertandonmez.org/ddos-nedir-ddos-nasil-yapilir-ddostan-korunma-yollari/#comments</comments>
		
		<dc:creator><![CDATA[Ertan]]></dc:creator>
		<pubDate>Tue, 13 Apr 2010 23:41:06 +0000</pubDate>
				<category><![CDATA[Güvenlik]]></category>
		<category><![CDATA[ddos]]></category>
		<category><![CDATA[ddos atak]]></category>
		<category><![CDATA[ddos atak korunma yolları]]></category>
		<category><![CDATA[ddos atak nedir]]></category>
		<category><![CDATA[ddos attack]]></category>
		<category><![CDATA[ddos attack korunma yolları]]></category>
		<category><![CDATA[ddos attack nasıl yapılır]]></category>
		<category><![CDATA[ddos nasıl yapılır]]></category>
		<category><![CDATA[ddos ne demek]]></category>
		<category><![CDATA[ddos nedir]]></category>
		<category><![CDATA[ddostan korunma yolları]]></category>
		<guid isPermaLink="false">https://www.ertandonmez.org/?p=672</guid>

					<description><![CDATA[<p>DDoS (Distributed Denial Of Service) Nedir, Nasıl Yapılır&#8230; DDoS atakları servis sağlayıcılarının korkulu rüyalarından biridir. DDoS tipi saldırılar özellikle büyük firmaların bu tür saldırılardan etkilenmesi DDoS adını ön plana çıkardı. Bu türden ilk saldırılar Avustralya ve Avrupada meydana geldi, fakat bu ataklarla ilgili kayda geçen ilk saldırı Minnesota Üniversitesine karşı yapılan saldırılardır (17 Ağustos 1999). [&#8230;]</p>
<p><a href="https://www.ertandonmez.org/ddos-nedir-ddos-nasil-yapilir-ddostan-korunma-yollari/">DDoS Nedir ? DDoS Nasıl Yapılır ? DDoS&#039;tan Korunma Yolları ?</a> yazısı ilk önce <a href="https://www.ertandonmez.org">Ertan Dönmez</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" class="alignleft" src="https://www.ertandonmez.org/wp-content/uploads/ddos_attack.gif" alt="ddos attack" width="306" height="229" /></p>
<h2>DDoS (Distributed Denial Of Service) Nedir, Nasıl  Yapılır&#8230;</h2>
<p>DDoS atakları servis sağlayıcılarının korkulu rüyalarından biridir.  DDoS tipi saldırılar özellikle büyük firmaların bu tür saldırılardan  etkilenmesi DDoS adını ön plana çıkardı. Bu türden ilk saldırılar  Avustralya ve Avrupada meydana geldi, fakat bu ataklarla ilgili kayda  geçen ilk saldırı Minnesota Üniversitesine karşı yapılan saldırılardır  (17 Ağustos 1999). Daha sonra saldırılar gitgide artmaya başladı.  Yapılan çeşitli araştırmalar DDoS türü saldırılarda artma gözlenmiştir.<span id="more-672"></span><br />
DoS  ve DDoS atakları özellikle 2001 yılında online ticaret kuruluşlarına  yapıldığı görülmektedir. Vnunet (www.vnunet.com) haberlerinde, internet  kullanıcıları ve e-ticaret site yöneticileri bu tür saldırılara karşı  uyarmıştı. Internet Security Systems (ISS) yüzlerce bilgisayara zombi  adı verilen ajanların yüklendiğini belirten haberler yayınlamıştı. Bu  küçük ajanlar sayesinde sisteme sızan kimseler, serverlara çok sayıda  veri göndererek serverların(sunucu) çökmesine neden olmaktadır. Bu  saldırıdan etkilenen Yahoo, Amazon ve eBay gibi ünlü internet  portallarının çökmesine ve milyonlarca dolar zarar uğramasına neden  olmuştu. Computer Security Institue (CSI, www.gocsi.org) anketine  katılanlardan bir e-ticaret sitesi sahibi olanların %55&#8217;i DDoS  saldırılarına maruz kaldıklarını belirttiler. DoS atakları sadece  e-ticaret ve web servislerine yapılmamaktadır. Bu saldırılardan  routerlar, sanal özel ağlar(VPN) ve IRC sunucularıda etkilenmektedirler.  Bir servis sağlayıcının router&#8217;ına yapılacak bir saldırı sonucu network  trafiği altüst olabilir ve sonucundada müşterilerinin bağlantıları  kopabilir. Daha önce en büyük IRC ağlarından Undernet&#8217;in bazı önemli  sunucuları DDoS yöntemiyle çökertilmişti. Saldırıda servis sağlayıcılar  saniyede yüzlerce MB veri bombardımanına tutulmuştu.<br />
<strong>DDoS  saldırıları nasıl gerçekleşmektedir?</strong><br />
Atak anında kişi, kendini gizlemek için önceden sızdığı  bilgisayarlara &#8216;zombi&#8217; adı verilen küçük programcıkları yerleştirir.  Böylece kendini saklama fırsatı elde eder. Ataklar bu zombiler üzerinden  yaparak birden fazla bilgisayarı istediği hedefler üzerine veri  bombardımanı yapabilir. Yüzlerce/binlerce bilgisayarlara yerleştirilen  zombiler, bilgisayarlara uzaktan kontrol (remote) imkanı vererek, bu  bilgisayarlar üzerinden istedikleri server&#8217;a çok sayıda veri göndererek,  server&#8217;i sistem dışı bırakıyor. Böylece saldırganlar, saldırıları başka  insanların bilgisayarları üzerinden gerçekleştirdiği için saptanmaları  zor hale gelmektedir.<br />
DDoS yöntemi genel olarak sistemlere belli bir  düzen çerçevesinde farklı noktalardan saldırarak server&#8217;i hizmet dışına  bırakma yoludur. Bir bilgisayar server&#8217;a kendi adresini yanlış veren bir  veri paketi yolluyor. Server, bilgisayarın verdiği adrese geri bilgi  vermek için ulaşmaya çalıştığında adrese ulaşamıyor. Bu esnada server  bağlantıyı kapatmadan bir müddet bekliyor. Bu tür bağlantı isteklerinin  milyonlarcası server&#8217;a yapıldığında server işlemez hale gelmektedir.<br />
<strong>&#8216;Zombiler&#8217;</strong><br />
DDoS  ataklarını gerçekleştirirken yakalanmamak için &#8220;zombi&#8221; denilen küçük  programcıkların kullanıldığından söz etmiştik. Ataklar bu zombiler  üzerinden gerçekleştirilerek aynı anda birden fazla bilgisayarın  hedeflere yönlendirilmesi sağlanarak, saldırıyı yapan kişinin IP  adresininde gizlenmesi sağlanır. Zombiler genellikle güvenliği zayıf  olan sistemlere yerleştirilirler. Yani hack&#8217;lenen sisteme yerleştirilen  zombiler kendi bünyesindeki daemonlar vasıtasıyla belirli bir porttan  (1524 tcp, 27665 tcp, 2744 udp, 31335 udp, 33270 tcp) gelecek olan DDoS  isteklerini gerçekleştirirler. Ayrıca daha çok Unix ve Linux tabanlı  sistemlerde zombiler kullanılsada Windows tabanlı sistemlerde de  zombiler kullanılmaktadır.<br />
<strong>DDoS için kullanılan  araçlar:</strong><br />
_ Trinoo(Trin00)<br />
_ The Tribe Flood Network  (TFN)<br />
_ Stacheldraht<br />
_ Trinity<br />
_ Shaft<br />
_ Tribe Flood  Network 2K (TFN2K)<br />
_ MStream<br />
DDoS ataklarından  korunmak için;<br />
Bu ataklar fark edildiğinde atakta bulunan  adresten gelen bağlantı isteklerinin iptal edilmesi gerekir. Ayriyeten  özel yazılım ve donanım kullanılarak saldırıların önüne geçme imkanı  vardır. Şirket ve bireysel kullanıcılar, güvenlik politikalarını  belirleyerek, müdahale tespit (intrusion detection) gibi yöntemlere  başvurmalı. Ayrıca saldırının başladığı an saldırının merkezi tespit  edilerek, o merkezin servis sağlyıcısıyla irtibata geçmek ve erişimi  engellemek gerekiyor.<br />
Sisteminizde bir DDoS aracının kurulup  kurulmadığını tespit etmek istiyorsanız find_ddos isimli programı  kullanabilirsiniz. Bu programı bulabileceğiniz adres:<br />
http://www.nipc.gov/warnings/alerts/1999/find_ddos_v42_linux.tar.Z<br />
Sistemde  tespit edebildiği DDoS araçları:<br />
* mstream master<br />
* mstream  server<br />
* stacheldraht client<br />
* stacheldraht daemon<br />
*  stacheldraht master<br />
* tfn-rush client<br />
* tfn client<br />
* tfn daemon<br />
*  tfn2k client<br />
* tfn2k daemon<br />
* trinoo daemon<br />
* trinoo master<br />
Bu  programı root yetkisinde çalıştırın.<br />
Eğer sisteminizde DDoS  aracı kurulmuşsa aşağıdakine benzer bir çıktı ile karşılaşma olasılığı  vardır.<br />
[root@CiLeK find]# ./find_ddos<br />
Logging output to: LOG<br />
Scanning running processes&#8230;<br />
Scanning  &#8220;/tmp&#8221;&#8230;<br />
Scanning &#8220;/&#8221;&#8230;<br />
/DoS/TFN/tfn: tfn client<br />
/DoS/TFN/tfn-rush: tfn-rush client<br />
/DoS/TFN/td:  tfn2k daemon<br />
ALERT: One or more DDOS tools were found on your system.<br />
Please  examine LOG and take appropriate action.<br />
Tarama işlemi sonucunda oluşturduğu LOG dosyasında detaylı bilgileri  barındırır.<br />
Eğer Windows sistemi altından networkünüzü kontrol etmek  istiyorsanız DDoSPing isimli programı kullanabilirsiniz. Bu programı  www.foundstone.com adresinde bulabilirsiniz.<br />
<img decoding="async" src="https://www.ertandonmez.org/wp-content/uploads/ddosping.png" border="0" alt="DDoSPing%202.0" width="389" height="461" /><br />
<img decoding="async" src="https://www.ertandonmez.org/wp-content/uploads/ddosping.png" border="0" alt="" width="389" height="460" /><br />
Sisteminize yapılan DDoS ataklarına karşı  yararlanabileceğiniz programlardan biri ZombieZapper isimli programdır.  Programın kaynak kodu aşağıda verilmiştir. Ayrıca programı  http://www.razor.bindview.com adresinden download edebilirsiniz.<br />
ZombieZapper,  zombie kurulmuş sistemlerden kaynaklanan yoğun trafiğin durdurulması  için kullanılmaktadır. Bu programın Trinioo, TFN, Stacheldraht, Trinioo  for Windows ve Shaft DDoS araclarına karşı etkili olduğu belirtiliyor.  ZombieZapper yazarları network yöneticilerinin bu programı kullanarak  kendi network&#8217;lerinden veya dışarıdaki bir sistemden kaynaklanan flood  saldırılarının tespit edilip, durdurulabileceği belirtilmekte.<br />
/*<br />
* zombie_zapper &#8211; distributed dos killer<br />
* written by Simple  Nomad<br />
* Requirements: Libnet 1.0 or higher  (http://www.packetfactory.net/libnet/)<br />
* Compilation instructions:<br />
*  gcc `libnet-config &#8211;defines` -o zz zz.c -lnet<br />
* Tested on RedHat,  Slackware, but should work most places that libnet compiles<br />
* and  installs properly.<br />
* Suggested usages:<br />
* zz -a 1 -v 192.168.1.1<br />
*  (stops trinoo daemon at 192.168.1.1 from flooding, uses verbose mode)<br />
*  zz -u 80 -c 192.168.1.0<br />
* (stops trinoo, tfn, stach, troj_trinoo on  192.168.1 network from<br />
* flooding, udp source port of 80 is being  used)<br />
* zz -a 5 -m www.whitehouse.gov -s 10.10.10.10 192.168.1.1<br />
*  (stops a shaft agent at 192.168.1.1 from flooding www.whitehouse.gov<br />
*  using a forged source address of 10.10.10.10)<br />
* Shouts to my homies  on BindView&#8217;s RAZOR team for all the help with this!<br />
*/<br />
#include<br />
int timer;<br />
/*<br />
* Based off of icmpquery, chain structs to store host names.<br />
*/<br />
struct  hosts<br />
{<br />
char *hostname;<br />
u_long hostaddr;<br />
struct hosts  *next;<br />
};<br />
struct hosts *hostnames;<br />
struct hosts *hosttail;<br />
/*<br />
* Build the targets<br />
*/<br />
void build_target(char *host,  u_long ip_addr)<br />
{<br />
if (hostnames == NULL)<br />
{<br />
hostnames =  (struct hosts *) malloc(sizeof(*hostnames));<br />
if (hostnames == NULL)<br />
{<br />
perror(&#8220;hostnames  malloc failed&#8221;);<br />
exit(-1);<br />
}<br />
hosttail = hostnames;<br />
}<br />
else<br />
{<br />
hosttail-&gt;next  = (struct hosts *) malloc(sizeof(*hostnames));<br />
if (hosttail-&gt;next  == NULL)<br />
{<br />
perror(&#8220;hosttail-&gt;next malloc failed&#8221;);<br />
exit(-1);<br />
}<br />
hosttail  = hosttail-&gt;next;<br />
}<br />
hosttail-&gt;hostname = strdup(host);<br />
if  (hosttail-&gt;hostname == NULL)<br />
{<br />
perror(&#8220;strdup failed&#8221;);<br />
exit(-1);<br />
}<br />
hosttail-&gt;hostaddr  = ip_addr;<br />
hosttail-&gt;next = NULL;<br />
}<br />
/*<br />
* Build a class C of targets<br />
*/<br />
void build_class_c(u_long  dst_ip)<br />
{<br />
int i;<br />
u_long class_c_ips[256];<br />
union<br />
{<br />
struct  in_addr addr;<br />
ulong temp_ip;<br />
} ip;<br />
for (i = 0; i &lt; 256;  i++)<br />
{<br />
class_c_ips[i] = htonl(dst_ip) + i;<br />
class_c_ips[i] =  htonl(class_c_ips[i]);<br />
ip.temp_ip = class_c_ips[i];<br />
build_target(inet_ntoa(ip.addr),ip.temp_ip);<br />
}<br />
}<br />
/*<br />
* Process the targets, resolve the hosts, set up the chain<br />
*/<br />
void  process_targets(char **hostlist, int verbose)<br />
{<br />
int i;<br />
u_long  tmpaddr;<br />
for (i = 0; hostlist[i]; i++)<br />
{<br />
tmpaddr =  libnet_name_resolve(hostlist[i], LIBNET_RESOLVE);<br />
/*<br />
* if a  &#8220;local&#8221; hostname is given it could &#8220;resolve&#8221; to a<br />
* broadcast  address if the local host is not set up properly,<br />
* so we need to  make sure we grab it and not send the packet<br />
*/<br />
if ((tmpaddr ==  0xffffffff) || (tmpaddr == -1))<br />
{<br />
if (verbose) printf(&#8220;%s not  resolved\n&#8221;,hostlist[i]);<br />
continue;<br />
};<br />
build_target(hostlist[i],tmpaddr);<br />
}<br />
}<br />
void caughtsig(int sig)<br />
{<br />
timer = 0;<br />
return;<br />
}<br />
/*<br />
* build and send the icmp packets<br />
*/<br />
void  send_packets(u_long src_ip, char *my_host, u_short sport, int antitype,  int flood, int verbose)<br />
{<br />
int packet_size, network, i, p, count,  data_len = 0;<br />
u_char *packet;<br />
u_short header, id, dport;<br />
u_char  proto;<br />
char data[87],sbuf[87];<br />
u_long dst_ip;<br />
struct hosts  *list;<br />
for (p=0;p&lt;87;p++) data[p] = 0;<br />
switch (antitype)<br />
{<br />
case 1: /* Trinoo */<br />
sprintf(sbuf,&#8221;d1e  l44adsl d1e&#8221;);<br />
header = LIBNET_UDP_H;<br />
id = 41072;<br />
dport =  27444;<br />
proto = IPPROTO_UDP;<br />
break;<br />
case 2: /* TFN */<br />
sprintf(sbuf,&#8221;12345&#8243;);<br />
header  = LIBNET_ICMP_ECHO_H;<br />
id = 567;<br />
proto = IPPROTO_ICMP;<br />
break;<br />
case  3: /* Stacheldraht */<br />
header = LIBNET_ICMP_ECHO_H;<br />
id = 3;<br />
proto  = IPPROTO_ICMP;<br />
break;<br />
case 4: /* Troj_Trinoo */<br />
sprintf(sbuf,&#8221;d1e  []..Ks l44&#8243;);<br />
header = LIBNET_UDP_H;<br />
id = 41072;<br />
dport =  34555;<br />
proto = IPPROTO_UDP;<br />
break;<br />
case 5: /* Shaft, part one  */<br />
sprintf(sbuf,&#8221;alive tijgu hi 5 2621&#8243;);<br />
header = LIBNET_UDP_H;<br />
id  = 41072;<br />
dport = 18753;<br />
proto = IPPROTO_UDP;<br />
break;<br />
case 0:  /* Shaft, part two */<br />
sprintf(sbuf,&#8221;end tijgu %s 5 2621&#8243;,my_host);<br />
header  = LIBNET_UDP_H;<br />
id = 41072;<br />
dport = 18753;<br />
proto =  IPPROTO_UDP;<br />
break;<br />
}<br />
if (antitype != 3) /* no payload for stach required */<br />
{<br />
data_len  = strlen(sbuf);<br />
for (p=0;pif (verbose) printf(&#8221; Payload is \&#8221;%s\&#8221;\n  Data length of %d\n&#8221;,data,data_len);<br />
}<br />
else if (verbose) printf(&#8221;  Payload is NULL\n Data length of 0\n&#8221;);<br />
count = 0;<br />
/* compute packet size */<br />
packet_size = LIBNET_IP_H + header +  data_len;<br />
if (verbose) printf(&#8221; Packet size is %d\n&#8221;,packet_size);<br />
/* get mem for packet */<br />
libnet_init_packet(packet_size,  &amp;packet);<br />
if (packet == NULL)<br />
{<br />
libnet_error(LIBNET_ERR_FATAL,  &#8220;unable to init packet mem\n&#8221;);<br />
}<br />
/* get network ready */<br />
network =  libnet_open_raw_sock(IPPROTO_RAW);<br />
if (network == -1)<br />
{<br />
libnet_error(LIBNET_ERR_FATAL,  &#8220;unable to open network for sending\n&#8221;);<br />
}<br />
list = hostnames;<br />
/* main sending loop */<br />
while (list != NULL)<br />
{<br />
/* get the  target address */<br />
dst_ip = list-&gt;hostaddr;<br />
/* build target section */<br />
switch (proto)<br />
{<br />
case  IPPROTO_ICMP:<br />
libnet_build_icmp_echo(ICMP_ECHOREPLY,0,id,0,data,data_len,packet  + LIBNET_IP_H);<br />
break;<br />
case IPPROTO_UDP:<br />
libnet_build_udp(sport,dport,data,data_len,packet  + LIBNET_IP_H);<br />
break;<br />
}<br />
/* build IP section */<br />
libnet_build_ip(header,0,id,0,64,proto,src_ip,dst_ip,NULL,0,packet);<br />
timer  = 1;<br />
signal(SIGALRM, caughtsig);<br />
alarm(flood);<br />
while(timer)<br />
{<br />
/* send the packet */<br />
i =  libnet_write_ip(network, packet, packet_size);<br />
if (i == -1)<br />
{<br />
libnet_error(LIBNET_ERR_FATAL,  &#8220;failed to write to network\n&#8221;);<br />
}<br />
if (i &lt; packet_size)<br />
{<br />
libnet_error(LIBNET_ERR_FATAL, &#8220;only  wrote %d bytes\n&#8221;, i);<br />
}<br />
if (verbose == 2)<br />
{<br />
printf(&#8220;Sent %d bytes for %s\n&#8221;, i,  list-&gt;hostname);<br />
}<br />
count++;<br />
/*<br />
* 1/10 sec delay between packets to prevent  overflowing the local<br />
* interface<br />
*/<br />
usleep(10000);<br />
}<br />
/* get next address, or NULL if done */<br />
list = list-&gt;next;<br />
}<br />
/*  clean things up */<br />
if (libnet_close_raw_sock(network) == -1)<br />
{<br />
libnet_error(LIBNET_ERR_WARNING,  &#8220;couldn&#8217;t close the interface after sending&#8221;);<br />
}<br />
libnet_destroy_packet(&amp;packet);<br />
if  (verbose) printf(&#8221; %d packets sent in %d seconds\n&#8221;,count,flood);<br />
}<br />
/*<br />
* usage<br />
*/<br />
void usage(char *prog)<br />
{<br />
fprintf(stderr,&#8221;USAGE:\n&#8221;);<br />
fprintf(stderr,&#8221;%s  [-a 0-5] [-c class C] [-d dev] [-h] [-m host] [-s src] [-u udp] [-v]  hosts\n\n&#8221;,prog);<br />
fprintf(stderr,&#8221; -a antiddos type to kill:\n&#8221;);<br />
fprintf(stderr,&#8221;  0 types 1-4 (default)\n&#8221;);<br />
fprintf(stderr,&#8221; 1 trinoo\n&#8221;);<br />
fprintf(stderr,&#8221;  2 tfn\n&#8221;);<br />
fprintf(stderr,&#8221; 3 stacheldraht\n&#8221;);<br />
fprintf(stderr,&#8221; 4  trinoo on Windows\n&#8221;);<br />
fprintf(stderr,&#8221; 5 shaft (requires you use  the -m option)\n&#8221;);<br />
fprintf(stderr,&#8221; -c class C in x.x.x.0 form\n&#8221;);<br />
fprintf(stderr,&#8221;  -f time in seconds to send packets (default 1)\n&#8221;);<br />
fprintf(stderr,&#8221;  -d grab local IP from dev (default eth0)\n&#8221;);<br />
fprintf(stderr,&#8221; -h  this help screen\n&#8221;);<br />
fprintf(stderr,&#8221; -m my host being flooded (used  with -a 5 above, only one host)\n&#8221;);<br />
fprintf(stderr,&#8221; -s spoofed  source address (just in case)\n&#8221;);<br />
fprintf(stderr,&#8221; -u UDP source  port for trinoo (default 53)\n&#8221;);<br />
fprintf(stderr,&#8221; -v verbose mode  (use twice for more verbosity)\n&#8221;);<br />
fprintf(stderr,&#8221; host(s) are  target hosts (ignored if using -c)\n&#8221;);<br />
fprintf(stderr,&#8221;\n&#8221;);<br />
}<br />
int main(int argc, char **argv)<br />
{<br />
char *prog;<br />
extern char  *optarg;<br />
extern int optind;<br />
extern int optopt;<br />
extern int  opterr;<br />
char ch;<br />
int spoof = 0, verbose = 0, setdev = 0;<br />
int  antitype = 0, class_c = 0, shaft = 0;<br />
int flood = 1;<br />
u_long  src_ip;<br />
char *my_host;<br />
u_long dst_ip = 0;<br />
u_long class_c_ip;<br />
u_short  sport = 53;<br />
u_long CLASS_C_MASK = 0x00ffffff;<br />
char *data[18];<br />
char  *dev;<br />
struct libnet_link_int *l;<br />
u_char *ebuf;<br />
prog = argv[0];<br />
dev = &#8220;eth0&#8221;;<br />
printf(&#8220;Zombie Zapper v1.2 &#8211; DDoS killer\n&#8221;);<br />
printf(&#8220;Bugs/comments  to thegnome@razor.bindview.com\n&#8221;);<br />
printf(&#8220;More info and free tools  at http://razor.bindview.com\n&#8221;);<br />
printf(&#8220;Copyright (c) 2000  BindView Development\n\n&#8221;);<br />
if(getuid()!=0)<br />
{<br />
fprintf(stderr, &#8220;=== You must be root to run  %s!\n&#8221;, prog);<br />
exit(-1);<br />
}<br />
while ((ch = getopt(argc, argv, &#8220;hvc:a:m:s:d:u:f:&#8221;)) != EOF)<br />
switch(ch)<br />
{<br />
case  &#8216;c&#8217;:<br />
dst_ip = libnet_name_resolve(optarg, LIBNET_RESOLVE);<br />
if  (dst_ip == -1)<br />
{<br />
printf(&#8220;=== Invalid class C %s\n&#8221;, optarg);<br />
usage(prog);<br />
exit(-1);<br />
}<br />
/*  get the last part of the address */<br />
class_c_ip = ((dst_ip |  CLASS_C_MASK) &#8211; CLASS_C_MASK);<br />
/* if it is not zero make it zero */<br />
if(class_c_ip)  dst_ip = dst_ip ^ class_c_ip;<br />
class_c = 1;<br />
break;<br />
case &#8216;d&#8217;:<br />
dev  = optarg;<br />
setdev = 1;<br />
break;<br />
case &#8216;f&#8217;:<br />
flood = (int)  strtol(optarg, NULL, 10);<br />
if (flood &lt; 1) flood = 1;<br />
if (flood  &gt; 360) flood = 360;<br />
break;<br />
case &#8216;h&#8217;:<br />
usage(prog);<br />
exit(0);<br />
case  &#8216;a&#8217;:<br />
antitype = (int) strtol(optarg, NULL, 10);<br />
break;<br />
case  &#8216;m&#8217;:<br />
if (!(libnet_name_resolve(optarg, LIBNET_RESOLVE)))<br />
{<br />
fprintf(stderr,&#8221;===  Unable to resolve hostname,\n&#8221;);<br />
fprintf(stderr,&#8221;=== try using the  IP address\n&#8221;);<br />
usage(prog);<br />
exit(-1);<br />
}<br />
if (strlen(optarg)  &gt; 70)<br />
{<br />
fprintf(stderr,&#8221;=== Very long hostname, try using just  an\n&#8221;);<br />
fprintf(stderr,&#8221;=== IP address.\n&#8221;);<br />
usage(prog);<br />
exit(-1);<br />
}<br />
my_host  = optarg;<br />
shaft = 1;<br />
break;<br />
case &#8216;s&#8217;:<br />
if (!(src_ip =  libnet_name_resolve(optarg, LIBNET_RESOLVE)))<br />
{<br />
fprintf(stderr,&#8221;===  Unable to resolve source host,\n&#8221;);<br />
fprintf(stderr,&#8221;=== try spoofing  with an IP address\n&#8221;);<br />
usage(prog);<br />
exit(-1);<br />
}<br />
spoof = 1;<br />
break;<br />
case  &#8216;u&#8217;:<br />
sport = (int) strtol(optarg, NULL, 10);<br />
break;<br />
case &#8216;v&#8217;:<br />
verbose++;<br />
if  (verbose &gt; 2) verbose = 2;<br />
break;<br />
default:<br />
usage(prog);<br />
exit(-1);<br />
}<br />
argc  -= optind;<br />
argv += optind;<br />
/* post arg processing */<br />
if ((!class_c) &amp;&amp; (!argv[0] ||  !strlen(argv[0])))<br />
{<br />
fprintf(stderr,&#8221;=== You must specify  target(s) or a class C to send to\n&#8221;);<br />
usage(prog);<br />
exit(-1);<br />
}<br />
if ((setdev) &amp;&amp; (spoof))<br />
{<br />
fprintf(stderr, &#8220;=== You  cannot specify a device for a source IP address\n&#8221;);<br />
fprintf(stderr,  &#8220;=== and spoof your source IP address at the same time.\n&#8221;);<br />
usage(prog);<br />
exit(-1);<br />
}<br />
if (antitype &gt; 5 || antitype &lt; 0)<br />
{<br />
fprintf(stderr,&#8221;===  Invalid or unsupported antiddos type\n&#8221;);<br />
usage(prog);<br />
exit(-1);<br />
}<br />
if (antitype == 5 &amp;&amp; (!shaft))<br />
{<br />
fprintf(stderr,&#8221;===  You must specify a host with the -m option when using\n&#8221;);<br />
fprintf(stderr,&#8221;===  the -a option of 5\n&#8221;);<br />
usage(prog);<br />
exit(-1);<br />
}<br />
if (!spoof)<br />
{<br />
src_ip = libnet_get_ipaddr(l, dev, ebuf);<br />
if  ((src_ip == -1) || (src_ip == 0))<br />
{<br />
fprintf(stderr, &#8220;=== Grabbing  address from %s failed,\n&#8221;,dev);<br />
fprintf(stderr, &#8220;=== try a different  device.\n&#8221;);<br />
usage(prog);<br />
exit(-1);<br />
}<br />
src_ip =  htonl(src_ip);<br />
}<br />
/* end post arg processing */<br />
if (verbose)<br />
{<br />
printf(&#8220;Sending packets to stop these possible  daemons from flooding\n\n&#8221;);<br />
switch(antitype)<br />
{<br />
case 0:<br />
printf(&#8220;\tTrinoo,  TFN, Stacheldraht, Troj_Trinoo\n\n&#8221;);<br />
break;<br />
case 1:<br />
printf(&#8220;\tTrinoo\n\n&#8221;);<br />
break;<br />
case  2:<br />
printf(&#8220;\tTFN\n\n&#8221;);<br />
break;<br />
case 3:<br />
printf(&#8220;\tStacheldraht\n\n&#8221;);<br />
break;<br />
case  4:<br />
printf(&#8220;\tTroj_Trinoo\n\n&#8221;);<br />
break;<br />
case 5:<br />
printf(&#8220;\tShaft\n\n&#8221;);<br />
break;<br />
}<br />
}<br />
/* build a class C full of addresses */<br />
if (class_c)  build_class_c(dst_ip);<br />
/* build target chain and get a count */<br />
else  process_targets(argv, verbose);<br />
if (antitype == 0 || antitype == 1)<br />
{<br />
if (verbose)  printf(&#8220;Building anti-Trinoo packets\n&#8221;);<br />
send_packets(src_ip,NULL,sport,1,flood,verbose);<br />
}<br />
if  (antitype == 0 || antitype == 2)<br />
{<br />
if (verbose) printf(&#8220;Building  anti-TFN packets\n&#8221;);<br />
send_packets(src_ip,NULL,sport,2,flood,verbose);<br />
}<br />
if  (antitype == 0 || antitype == 3)<br />
{<br />
if (verbose) printf(&#8220;Building  anti-Stacheldraht packets\n&#8221;);<br />
send_packets(src_ip,NULL,sport,3,flood,verbose);<br />
}<br />
if  (antitype == 0 || antitype == 4)<br />
{<br />
if (verbose) printf(&#8220;Building  anti-Troj_Trinoo packets\n&#8221;);<br />
send_packets(src_ip,NULL,sport,4,flood,verbose);<br />
}<br />
if  (antitype == 5)<br />
{<br />
if (verbose) printf(&#8220;Building first set of  anti-Shaft packets\n&#8221;);<br />
send_packets(src_ip,NULL,sport,5,flood,verbose);<br />
if  (verbose) printf(&#8220;Building second set of anti-Shaft packets\n&#8221;);<br />
send_packets(src_ip,my_host,sport,0,flood,verbose);<br />
}<br />
if  (verbose) printf(&#8220;Complete\n&#8221;);<br />
exit(0);<br />
}<br />
<strong>Kaynaklar</strong><br />
http://www.networkmagazine.com<br />
http://razor.bindview.com<br />
http://staff.washington.edu/dittrich/misc/ddos<br />
http://packetstormsecurity.org/distributed<br />
<strong>Ekleme Olarak :</strong><br />
<span style="font-family: verdana,arial,helvetica,sans-serif; font-size: x-small;"><br />
<span style="font-family: comic sans ms,sans-serif;"><strong>Neler Yapabilirsiniz? &#8211; Başınıza Neler  Gelebilir? </strong></span><br />
DoS  saldırılarını yukarıda belirttiğim gibi engellemek oldukça zordur.DoS  saldırılarından korunmak için çeşitli araçlar<br />
geliştirilmiştir ancak  bunların hiçbir tanesi %100 koruma sağlayamaz.Geçmişte Yahoo! ve eBay  gibi ticari siteler DoS saldırılarına mağruz kaldı,servisleri  kullanılamaz hale geldi.Bu onlara milyonlarca dolara mal oldu.Bu size  verebileceğimiz en iyi örnekti. DoS oldukça etkili bir saldırı  yöntemidir.Şimdi bazı DoS saldırılarından bahsedeceğim.Oldukça fazla saldırı  çeşidi olduğu için hepsine burada yer veremem, Packetstormsecurity ve  Security Focus gibi sitelerden yüzlerce çeşit DoS saldırısı hakkında  bilgi edinebilirsiniz.<br />
<strong>Neler DoS Saldırısı Olarak Nitelendirilebilir? </strong><br />
Unutmamanız gereken nokta şu;karşı sistemdeki servisi devre  dışı bırakacak her saldırı DoS saldırısı olarak nitelendiri-<br />
lebilir.Oldukça  anlamsız ve lame yollar mevcut ancak bunlar size bir şey kazandırmaz.<br />
<strong>Syn Flood </strong><br />
Syn packer üç yollu el sıkışma  yöntemi olarak tanımlanır (Tree way handshake).Karışık geldiyse şöyle  anlatayım;<br />
veri istemi client aracılığı ile server tarafına iletilir  ve server yanıtı aldığına dair bilgiyi client&#8221;a postalar böylece<br />
üç  yollu el sıkışma tamamlanmış olur.Şimdi istemi ölü bir ip adresi  üzerinden gerçekleştirdiğinizi düşünün,server yanıt-<br />
lamaya  çalışacaktır ancak ip adresi bulunmadığı için bir süre bekleyecektir.Bu  ölü istemlerin sürekli olarak (flooding)<br />
tekrarlanırsa sistem kaynak  yiyecektir.Yetersiz kaynak durumunda ya kendisine reset atar ya da  kilitlenip kalır.Bu saldırı-<br />
nın verdiği diğer bir zarar ise sitemin  bu sırada yediği bant genişliğidir.Bu saldırı farklı noktalardan  yapıldığında<br />
etkisi artmaktadır.Güçlü bir bağlantınız varsa  yapacağınız saldırılar özellikle mail sunucularında etkili olacaktır.<br />
Bunun  en büyük nedeni ise mail sunucularının basit donanıma sahip  olmalarıdır,bir web sunucusu kadar fazla ram ve yüksek<br />
işlemci gücü  istemezler.<br />
<strong>Land Flood </strong><br />
Bu  yöntem Syn Flood ile aynıdır.Tek farkı ölü ip adresi yerine istemi  saldıracağınız sistemin kendi ip adresi<br />
ya da sağlam bir server&#8221;ın  ip adresi ile yapmanızdır.Böylece bir döngü oluşacaktır.Yüksek bandwith  harcanır ve en sonunda<br />
sistem çöker. </span><br />
<span style="font-family: verdana,arial,helvetica,sans-serif; font-size: x-small;"><br />
<strong>Ping  Flood </strong><br />
Bu yöntemin tek sistem üzerinden pek bir  etkisi yoktur.Birden fazla noktadan yapılması halinde etkili olur.Eğer  amacınız<br />
bir dial-up bağlantısını düşürmek ise bunu rahatlıkla kablo  veya dsl bağlantı ile gerçekleştirebilirsiniz ancak büyük sunu-<br />
cularda  dediğim gibi bir etkisi olmaz.Eğer bir linux türevi kullanıyorsanız &#8221;  ping -s ip adresi &#8221; komutu ile 64kb boyutunda<br />
paketler  gönderebilirsiniz.Özellikle farklı noktalardan linux işletim sistemi  kullanılarak yapılan bu saldırılar oldukça<br />
etkilidir,sistemin  servisi kesmesine neden olur.Linux sistemler bu şekilde saldırı yetisine  sahip iken windows 9x<br />
tabanlı bir işletim sistemi ile linux  sistemin kilitlenmesine rahatlıkla neden olabilirsiniz.<br />
Bunun için &#8221;  Başlat (Start) -&gt; çalıştır (Run) &#8221; altına &#8221; ping -l 65510 ip adresi &#8221;  yazmanız yeterli olacaktır.<br />
<strong>Finger</strong><br />
Finger  hakkında yazdığım dökümanı okuyanlar ben daha bu saldırı yöntemini  anlatmadan ne yapılacağını anlamıştır sanırım.<br />
Farklı hostlar  üzerinden saldıracağınız sunucuya sürekli finger çekiyorsunuz.Bu işlem  sonucunde oldukça fazla bantwith<br />
götürmüş olursunuz.Saldırının çok  noktadan yapıldığını düşünün.. Bu saldırı yöntemi hakkında daha fazla  bilgi edinmek<br />
isterseniz finger hakkında yazdığım dökümanı  okuyabilirsiniz.<br />
<strong>Udp Flood </strong><br />
Udp  servislerini uzun süre meşgul etmek oldukça kolaydır.Bu yöntem ile  yukarıdakilerde olduğu gibi yüksek bandwith<br />
harcayabilirsiniz.Udp  flood için iki sistem kullanılır.İki sistemin udp servislerinin  birbirine sınırsız şekilde istemde<br />
bulunması sağlanır.Bu sayede iki  sisteminde servisleri bir süre sonra kullanılmaz hale gelir.Oldukça  zahmetsiz bir yoldur.<br />
Bir taşla iki kuş avlamış olursunuz.Udp flood  ayrıca sistemin kendisi kullanılarakta yapılabilir.<br />
</span><br />
<span style="font-family: verdana,arial,helvetica,sans-serif; font-size: x-small;"><strong>Araçlar </strong><br />
Saldırı yöntemlerini tam bilmeden,neyin ne olduğunu  anlamadan bu saldırıları gerçekleştiren araçları kullanmak ancak<br />
lamerların  yapacağı bir iştir.Bu yüzden DoS hakkında bilgi edinin.Yazıyı okumadan  bu bölüme geçerseniz<br />
zararlı çıkarsınız.Konu hakkında edindiğiniz  bilgi &#8220;0&#8221; olur ve lamerlıktan daha ileriye gidemezsiniz.<br />
Trinity,Nemesys,Trin00,FloodNet,Tribe  bilindik DoS araçlarıdır.Araçları kullanmadan önce internet<br />
üzerinden  bilgi edinmenizi tavsiye ederim.Tam download adreslerini  bilmiyorum.Copernic kullanarak<br />
hem bilgi edinebilir hem bu araçlara  ulaşabilirsiniz.Bazılarına Packetstorm üzerinden ulaşmanız mümkün.</span></p>
<p><a href="https://www.ertandonmez.org/ddos-nedir-ddos-nasil-yapilir-ddostan-korunma-yollari/">DDoS Nedir ? DDoS Nasıl Yapılır ? DDoS&#039;tan Korunma Yolları ?</a> yazısı ilk önce <a href="https://www.ertandonmez.org">Ertan Dönmez</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.ertandonmez.org/ddos-nedir-ddos-nasil-yapilir-ddostan-korunma-yollari/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
	</channel>
</rss>
