Hướng dẫn viết Tool DDoS đơn giản bằng Python

Lưu ý 1: Tools này chỉ với mục đích nghiên cứu và học hỏi vui lòng các bạn không nên sử dụng tools vào các mục đích xấu và thực hiện các hành vi phạm pháp luật.

Lưu ý 2: Bài viết này để các bạn làm quen với Python và các Module Python, chứ không phải viết Tool DDoS để đi tấn công người khác, khi viết xong, tuyệt đối không sử dụng Tool lên hệ thống không phải do bạn của bạn quản lý.

Lưu ý 3: Thật ra đây là Tool DoS, không phải DDoS, mình ghi DDoS trong tiêu đề để các bạn dễ phân biệt giữa Deny of service và MS-DOS

Hôm nay mình sẽ hướng dẫn cho các bạn cách làm tool TCP Flood đơn giản bằng Python. Đây là 1 công cụ khá là mạnh, có thể khiến máy các bạn hoặc máy các bạn mà muốn tấn công sẽ tràn ngập 1 số gói rác được gửi đến và khiến cho CPU tăng cao lên đến 100%. Nếu máy nào yếu thì chắc sẽ bị sập hoặc mua máy mới quá.

Trước khi vào viết tools thì mình muốn cho các bạn hiểu biết về Dos và nâng cao của DoS là DDoS. Vậy, Dos là gì? Và cách thức hoạt động của DoS ra sao? Bạn cần đọc kỹ bài DDOS là gì trước khi thực hành nội dung bên dưới.

Bắt đầu viết Tool DDoS đơn giản bằng Python

Đầu tiên các bạn phải Download Python. Các bạn có thể lên Youtube xem cách tải, tải Python cũng khá đơn giản lên mình cũng không hướng dẫn trong bài viết này.

Cài đặt Python: ở màn hình cài đầu tiên nhớ check vào dòng Add python x.x to path

Bây giờ các bạn mở CMD trên máy Windows lên và nhập lệnh: pip install termcolor , đây là thư viện màu chữ thôi, còn ai không thích có thể bỏ qua.

Do đây là Tool DoS, sử dụng tài nguyên từ Modem và PC của bạn nên chỉ hoạt động tốt trong môi trường mạng LAN, nếu tấn công ra bên ngoài thì khá yếu và đôi khi bị phản dame nhé.

Ok, giờ thì các bạn sẽ import các module sau:

import module ddos python

Sau khi import xong, các bạn tiến hành trang trí giao diện cho tool, cái này trang trí cho đẹp, còn ai không thích trang trí có thể vào viết code luôn.

code tool ddos python

Các bạn nào muốn trang trí giống như mình thì có thể lên google gõ từ khóa figlet online rồi vào trang web bất kì để lấy mẫu.

Như các bạn thấy đấy, câu code os.system('cls') đây là dòng code thực thi lệnh trên cmd của hệ thống, khi các bạn chạy tool thì câu code này sẽ xóa hết tất cả các chữ hiện có trên cmd chỉ còn lại một mình dòng chữ DOS bự chà bá to ở dưới.

À mà còn 1 một vấn đề nữa là từ colored đây là 1 module của termcolor và các bạn để ý có những từ như ‘red’, ‘green’,….. ở cuối câu code thì đó là màu sắc của chữ mà bạn muốn in ra.

OK, vậy chúng ta sẽ thực hiện bước tiếp theo thôi:

Giờ chúng ta viết 1 đoạn code ngắn để lấy dữ liệu đầu vào của người dùng hay còn gọi là “input”.

viet tool ddos python

Tại đây, các bạn có thể tạo 1 biến bất kì, rồi chúng ta sẽ lấy input của người dùng. 

Các bạn có thể thấy đấy,str là 1 chuỗi kí tự trong Python, nên vì các số IP thường có các chuỗi kí tự khác nhau được cách bởi dấu chấm nên mình đặt nó là ‘str’. Còn ‘int’ viết tắt là Integer một kiểu dữ liệu, được sử dụng trong Python để biểu diễn các số nguyên.

Như vậy đã xong. Giờ mình sẽ tiến hành trang trí phần tấn công. Mình trang trí để nhìn cho bố đời, còn các bạn nào không thích thì bỏ qua cũng được.

tool ddos python

Ok, đây chính là giao diện code khi tool hoạt động tấn công. Câu code đầu, câu code 2 và thư viện màu chữ mình cũng đã giải thích rồi nên thôi.

Giờ vào vấn đề quan trọng nhất cho tool hoạt động đây.

cach su dung ddos python

Các bạn tiến hành tạo cho mình một hàm và 2 biến bất kì như trong hình.

Tại đây mình tạo 1 hàm tên là syn() và 2 biến có tên là hevin và bb.

Các bạn thấy thấy biến 1. Mình đã gọi module random có sẵn trong Python và đã import nó ở bước đầu tiên, sau từ random là từ urandom , cả 2 đều là hàm băm ngẫu nghiên được cài đặt một bộ tạo số giả ngẫu nhiên và chứa các hàm cho phép chúng ta giải quyết trực tiếp nhiều vấn đề lập trình khác nhau sử dụng đến tính ngẫu nhiên. Còn về biến bb thì mình để số nguyên là 0.

Nào, các bạn hãy tạo cho mình 1 vòng lặp while True: đây là vòng lặp giúp 1 đoạn mã nào đó hoạt động lặp đi lặp lại cho đến khi mình muốn dừng thì thôi.

Giờ các bạn tạo 1 cặp try, except để bắt lỗi trong Python:

Đầu tiên mình tạo 1 biến có tên là h trong biến đó mình đã gọi module socket được tích hợp sẵn trong Python. Socket là các endpoint ca mt kênh giao tiếp hai chiu. Nó s dng để kết ni vi mt chương trình khác chy trên mt máy tính khác trên Internet. Mt chương trình mng có th s dng nhiu socket cùng mt lúc, nh đó nhiu chương trình có th s dng Internet cùng mt lúc.

Tiếp theo là h.connect đây là mình kết nối với ip và port của máy tấn công

Tiếp đến là h.send(hevin), mình dùng câu code này để gửi cho máy nạn nhân những thông số ngẫu nghiên từ 0 đến 900, như vậy là đủ rồi, còn các bạn nào muốn chỉnh cao hơn thì tùy ý.

Tiếp theo nữa :>>, chính là Hàm range() trong Python vốn được sử dụng để tạo ra một đối tượng chứa các phần tử là dãy số gồm các số liên tiếp từ 0 đến một giá trị, mà giá trị đó không vượt qua đối số được chỉ định mà các bạn đã tạo input cho người dùng nhập

Câu code tiếp theo thì mình đã giải thích lúc nãy rồi nhé bây giờ chúng ta sẽ giải thích bb+=1 nhé:

Câu code có thể được dịch là “thêm bất cứ thứ gì ở bên phải dấu += vào biến ở bên trái dấu +=.

Ví dụ. Nếu bạn cóa = 10 thì a += 5 sẽ là: a = a + 5

Vì vậy, “a” bây giờ bằng 15.

Còn phần in kia mình cũng đã giải thích như trên rồi

Chúng ta đến phần ‘except’ nào

Tại đây mình dùng KeyboardInterrupt để khắc phục lỗi khi dừng tool. Để tool dừng lại chúng ta nhấn tổ hợp phím Ctrl+C để dừng. Còn nếu bạn nào không thích thì các bạn dùng except:  thôi cũng được.

Đến phần h.close() mình đã gọi hàm close() để mỗi lần dừng lại thì tool sẽ ngừng chạy. Còn phần print(….) mình sẽ giải thích qua là mỗi khi bạn cho tool dừng lại thì sẽ hiện ra Done.

Đến phần cuối cũng thôi !!!!

Ở phần cuối là phần for i in range(thread) mình cũng đã giải thích cho các bạn như ở trên rồi nên bỏ qua

Tiếp đến 2 câu code cuối cũng, mình đã tiến hành gọi module threads được có sẵn trong Python đây là 1 module đa luồng. Như vậy ta có thể hiểu Thread là một đơn vị cơ bản trong CPU. Một luồng sẽ chia sẻ với các luồng khác trong cùng process về thông tin data, các dữ liệu của mình. Việc tạo ra thread giúp cho các chương trình có thể chạy được nhiều công việc cùng một lúc.

Không những vậy Python cung cấp thread Module và threading Module để bạn có thể bắt đầu một thread mới cũng như một số tác vụ khác trong khi lập trình đa luồng. Mỗi một Thread đều có vòng đời chung là bắt đầu, chạy và kết thúc. Một Thread có thể bị ngắt (interrupt), hoặc tạm thời bị dừng (sleeping) trong khi các Thread khác đang chạy – được gọi là yielding.

Tổng hợp Code DoS ở trên bạn có tải từ Github của mình. Nhưng mình khuyên bạn nên tập code theo hướng dẫn bên trên để hiểu hơn về Python thay vì tải sẵn về sử dụng, như vậy sẽ không nâng cao được kiến thức lập trình.

Cách sử dụng Tool:

Sau khi làm xong, các bạn mở cmd trên máy và trỏ đến tệp mà các bạn đã đặt (name).py rồi nhập lệnh

python (name).py

Lúc này giao diện tool của các bạn đã làm sẽ hiện trên màn hình cmd yêu cầu các bạn nhập các thông số: IP máy cần tấn công, Port ( cổng ) máy tính, Threads ( luồng tấn công ), Packet ( số lượng gói cần gửi ).

ddos lan

 

Kết Quả Tấn Công:

Hướng dẫn viết Tool DDoS đơn giản bằng Python 2

 

Như các bạn thấy đấy, mình nhập thông số vô cùng thấp nhưng kết quả của cuộc tấn công đạt hiệu quả rất cao. Các bạn lưu ý khi test trên chính máy của mình đấy =)). Mình để có hơn 5s máy mình đã lên đến 76% CPU rồi

cpu ddos lan

VẬY LÀ MÌNH ĐÃ HƯỚNG DẪN CÁC BẠN XONG CÁCH VIẾT TOOL DOS BẰNG PYTHON. Hy vọng bạn sẽ bắt đầu tìm hiểu Python cơ bản với bài viết này. Mình mong các bạn không nên sử dụng tool Dos này vào mục đích xấu thay vào đó các bạn có thể nghiên cứu cách phòng chống và ngăn chặn nhé.

Tác giả: Van Son

Previous Post Next Post