2013-04-19 9 views
0

오랜 질문과 그 amature 수 있습니다, 미안 해요 프로그래밍 때 새로운 해요; DoS (Denial of Service) 공격으로 테스트 할 콘솔 기반 응용 프로그램을 디자인하려고합니다. ping example.com -t -l 65000이 콘솔에서 실행되어야하는 유일한 것이라고 가정하십시오. 콘솔을 백그라운드에서 실행하고 싶습니다. 하지만 나는 백그라운드에서 ICMP 범람을 수행하는 5 가지 콘솔을 원한다. 프로세스를 죽이기 위해 수동으로 프로세스를 종료해야합니다. 테스트는 실시간 환경에서 수행됩니다. Windows에서 실행하려면 .exe 파일을 만들어야합니다.Visual Studio 2010 서비스 거부 (DoS) 응용 프로그램

나는 Visual Studio 2010을 사용하여 C#에서 프로그램을 작성하고 있습니다. 할 수있는 작업은 무엇입니까?

모든 의견을 크게 기뻐할 것입니다.

+0

ICMP 플러딩은 오늘날의 상황에서는 적절하지 않습니다. –

답변

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(); 
} 
3

ping 요청으로 서버를 종료하려고합니까? Ping 요청은 서버가 처리하기가 매우 쉽습니다. 이론적으로 레이어 4를 통해 파이프 라인을 넘치게 공격 할 수도 있지만 에코 요청 이외의 다른 방법을 사용하는 것이 좋습니다.

DoS 공격을 시도한 경우 (조사 만하기를 바란다면) 부분적인 GET 요청을 살펴볼 수 있습니다. 나는 그 (것)들과 가진 아주 효과적인 공격을 실행하는 것을 처리했다, 서버는 나가 원한 한 forresponsive 운명이다. HTTP 서버가 응답하지 않더라도 핑 요청은 아무 일도 일어나지 않는 것처럼 똑같은 여행 시간을 반환합니다.

부분적인 GET/POST 요청은 지금 당장해야 할 시간보다 더 잘 작동하며,이 문제를 극복하는 것이 매우 어려워 보입니다. Apache는 이러한 상황을 잘 알고 있습니다.

IIS에도 부분 POST와 동일한 반응이 있지만 부분 GET이 아닌 것으로 들었습니다. 이 techinique에 대한

일부 번호 : 2 ~ 3 초 동안

가 ~ 5000bytes/S, 30 초마다. 그것은 대역폭 사용으로, 기본적으로 한 번에 150 건의 GET 요청입니다.

아파치 서버의 모든 열린 슬롯이 즉시 채워집니다.

공격하는 동안 CPU가 약 0.05 % 가량을 감지하기 때문에 네트워크 연결에 큰 부담이되지 않습니다.

그리고 물론 다른 HTTP 요청도 서버에 도달 할 수 없었습니다. 서버 읽기 제한 시간에 도달하고 모든 연결을 다시 시작해야 할 때 도달 할 수 있습니다.

HTTP 연결을 위해 150 개 이상의 슬롯이있는 서버에서이 기능을 시도하지 않았습니다.