0

这是一个冗长的问题,它可能很成熟,对不起,我是编程新手;我想设计一个基于控制台的应用程序来测试拒绝服务 (DOS) 攻击。假设ping example.com -t -l 65000是唯一需要在控制台中执行的事情。我希望控制台在后台运行。但我想说,5 个不同的控制台在后台执行 ICMP 泛洪。要杀死进程,我们需要手动杀死进程。测试将在实时环境中进行。我需要制作一个 .exe 文件以便在 Windows 上运行它。

我正在使用 MS Visual Studio 2010 在 c# 中构建程序,可以做什么?

任何建议将不胜感激。

4

2 回答 2

3

您是否试图通过 ping 请求杀死服务器?Ping 请求对服务器来说非常容易处理。理论上,您可以通过第 4 层攻击,淹没管道,但除了回显请求之外,您最好使用其他任何东西。

如果您尝试 DoS 攻击(我希望它仅用于研究),您可能需要查看部分 GET 请求。我已经设法对他们进行了非常有效的攻击,只要我想要,服务器就注定没有响应。尽管 HTTP 服务器没有响应,但 ping 请求始终返回完全相同的行程时间,就好像什么也没发生一样。

部分 GET / POST 请求,工作得很好,比现在应该的时间更长,似乎很难克服这个问题,Apache 很清楚这种情况。

我听说 IIS 对部分 POST 也有相同的反应,但对部分 GET 没有。

关于这项技术的一些数字:

~5000bytes/s,持续 2-3 秒,每 30 秒。那是带宽使用,基本上是偶尔 150 个 GET 请求。

apache 服务器的所有开放插槽立即填满。

很难检测到正在发生的事情,攻击期间 CPU 大约为 0.05%,网络连接也不是很紧张。

当然,几乎没有其他 HTTP 请求能够到达服务器。当服务器读取超时并且所有连接必须再次重新启动时,它们可以到达。

我还没有在用于 HTTP 连接的插槽超过 150 个的服务器上尝试过这个。

于 2013-07-05T16:00:53.493 回答
0
System.Diagnostics.Process proc;

cmd = "/C ping example.com -t -l 65000";
for (i = 0; i < 5; i++)
{
    proc = new System.Diagnostics.Process();
    proc.EnableRaisingEvents = false;
    proc.StartInfo.FileName = "cmd";
    proc.StartInfo.Arguments = cmd;
    proc.Start();
}
于 2013-04-19T08:07:27.030 回答