문제

네트워크 패킷 (Part1- 간단한 부분)을 스니핑하는 프로그램을 작성해야합니다.
그리고 연결을 종료 할 수 있도록 프로그램 (Part2)을 업데이트해야합니다.
특정 요구 사항은 다음과 같습니다.

적절한 소스 및 대상 Mac 및 IP 주소를 포함한 데이터 링크 계층 및 네트워크 계층 정보를 지정하여 원시 패킷을 구성하십시오. 이 패킷은 연결을 종료하기위한 것입니다. 그렇게하려면 Sock_Raw를 소켓 유형으로 사용하여 헤더 정보를 직접 설정할 수 있어야합니다.

누구든지 두 번째 부분에 대한 아이디어를 줄 수 있습니까?
세션을 납치하고 사용자 중 한 사람에게 DOS 공격을 적용해야합니까?

필요한 것은 연결을 종료하는 방법에 대한 몇 가지 팁입니다. C 프로그래밍 언어를 사용하고 있으며 보안 과정에 대한 과정 과정입니다.

도움이 되었습니까?

해결책

연결을 종료하여 의미하는 바에 따라 다릅니다. TCP 회로 또는 UDP 스트림에 대한 엔드 포인트를 제공한다는 의미 일 수 있습니다.

또는 스트림의 끝을 나타 내기 위해 TCP 스트림의 중간에 허용 가능한 RST를 보내는 것을 의미 할 수 있습니다. 이를 달성하려면 다른 측면에서 기대하는 시퀀스 번호를 알아야합니다.

어느 쪽이든 수업 시간에주의를 기울이지 않았다는 것이 분명합니다. 과제의 요점은 IP 패킷의 원시 레이아웃과 아마도 TCP/UDP를 이해하는 것 같습니다. 주제에 관한 교과서 (강사가 권장하지 않음)에 대한 교과서를 구입하거나 Wikipedia를 읽는 것이 좋습니다.

다른 팁

이 과제를 위해 나는 사용할 것입니다 pypacp, 파이썬 패킷 캡처 및 주입 라이브러리입니다. PYPCAP는 원시 소켓을 사용하여 패킷을 위조합니다. 이상한 이유 때문에 C를 사용해야한다면이 프로젝트는 더 어려울 것입니다. 이 경우 libpcap을 사용하여 선을 스니핑해야하며 원시 소켓 라이브러리는 개발 플랫폼에 따라 다릅니다.

TCP 시퀀스 ID를 찾는 줄을 스니핑 할 수 있습니다. 이 ID를 기반으로 RST 또는 FIN을 위조하여 연결의 한쪽면을 깰 수 있습니다. 어려운 부분은 원시 소켓을 사용하여 TCP 연결을 유지하려고 노력할 것입니다. 애플리케이션 계층 연결을 유지하는 것은 거의 불가능할 것입니다. HTTP는 유지하기가 더 쉬운 프로토콜이지만 HTTP 인 경우 쿠키를 납치하는 것이 더 쉬울 것입니다.

나는 당신을 C 라이브러리로 도울 수 없다 - 내 장점이 아니라, 거기에 무언가가 있어야하는 것 같다.

그러나 파트 2에서하려는 것은 DOS를 방지하는 것 같습니다.

여기에서 확인하십시오 :

http://en.wikipedia.org/wiki/denial-of-service_attack

DOS 공격에 대한 물건. PP가 말했듯이, 연결 오용과 관련된 많은 공격이 있으므로, 당신은 당신의 어마 예를 들어, 위의 Wiki 페이지는 SYN 홍수를 언급하지만 거의 모든 연결 지향 프로토콜은 연결 요청이 너무 많으면 연결 풀을 채우고 닫지 않는 공격의 위험이 있습니다.

나는 과제를 읽고, 당신의 임무는 공격자가 열린 연결을 닫아서 이것을 고치는 방법을 알아내는 것이라고 가정합니다. 즉, 공격이 어떻게 작동하는지 알아 내고 회복하는 방법을 알아 내야합니다.

힌트 : 밀접한 연결 요청이 홍수로 서버를 치는 것은 공격이 아닙니다. 당신이 반드시 열려있는 연결을 닫을 필요는 없기 때문에 그렇게 유용하지 않습니다. 그러나 피해는 공개 연결 요청으로 인해 발생합니다. 여기를 봐:

http://en.wikipedia.org/wiki/syn_flood

예를 들어.

libpcap을 사용하여 패킷 스니핑에 도움을 줄 수 있습니다. LIBPCAP는 TCPDUMP 팀에 의해 개발되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top