광팔이 보안이야기

[Scapy] Scapy 모듈(DOS[SYN Flooding]) 본문

Programming/Network

[Scapy] Scapy 모듈(DOS[SYN Flooding])

광팔2 2021. 2. 28. 23:48
반응형

SYN Flooding : TCP 연결 과정은 일반적으로 3-Way Handshaking 완료한다. 3-Way Handshaking 설명은 생략하겠다.

SYN Flooding 공격은 3-Way Handshaking의 처음 단계인 SYN 패킷 전송 과정에서 공격자가 대량의 SYN 패킷을 생성하여 피해자에게 보낸다. 여기서 피해자는 연결 요청을 수락할 때 보내는 SYN+ACK를 보낸다. 하지만 공격자는 다음 응답을 보내지 않고 피해자는 계속 기다는 상태가 된다. 그래서 대량의 SYN 패킷을 기다리게 되면 대기 큐가 가득 차게 되다. 이후 들어오는 연결 요청을 무시하도록 하는 마비 공격이 된다.

 

[실습 환경]

공격자 : 우분투(랜덤)

피해자 : XP(172.30.1.7)

 

[tool]

*hping3 사용

hping3 [--rand-source] [172.30.1.7] [-S] [-i u100]

hping3 [랜덤 공격자 IP] [피해자 IP] [SYN패킷] [패킷 간격 조정(초당 100개의 패킷)]

TCP프로토콜의 SYN 요청만 지속적으로 계속 보낸다.

 

[scapy를 이용한 코드]

코드는 간단하다. IP와 TCP 프로토콜을 이용했으며 RandIP를 이용하여 공격자의 IP를 랜덤으로 했다.

TCP의 Source Port는 123으로 주었다. 여기서 공격자의 ip가 랜덤이 아니었다면 재전송이 계속되었을 것이다.

랜덤으로 공격자를 주기 싫고, 재전송을 피할려면 sport의 번호만 증가시켜 주면 된다.

 

반응형
Comments