광팔이 보안이야기

[Scapy] Scapy 모듈(DOS[smurf attack]) 본문

Programming/Network

[Scapy] Scapy 모듈(DOS[smurf attack])

광팔2 2021. 2. 26. 22:34
반응형

smurf attack : ICMP 프로토콜을 이용한 공격 방법으로 공격자가 피해자 IP주소로 스푸핑을 하고 목적지 주소를 브로드캐스트 주소로 설정하여 ping 메시지를 수신한 네트워크 내의 모든 시스템에서 ping reply 응답을 동시에 전송 받음으로써 목표 대상을 다운되게 만든다.

 

[실습 환경]

공격자 : 우분투

피해자 : XP(172.30.1.7)

 

[smurf 순서]

1. 공격자가 피해자 IP주소를 스푸핑한다.

2. 공격자는 피해자 IP주소를 직접 브로드캐스트 주소로 ping 메시지를 전송한다.

3. ping 메시지를 전송받은 네트워크 내의 모든 시스템이 ping reply 메시지를 출발지인 피해자 ip로 전송한다.

4. 네트워크 내의 모든 시스템이 전송됨으로써 피해자 시스템은 마비가 된다.

 

[tool]

*hping3 사용

hping3 [172.30.1.255] [-a 172.30.1.7] [--icmp] [-i u100]

hping3 [브로드캐스트 주소] [출발지 IP 변경] [프로토콜] [패킷 간격 조정(초당 100개의 패킷)]

 

피해자 IP에서 브로드캐스트 주소로 ICMP 패킷을 계속 보내는 것을 볼 수 있다.

 

네트워크 내에서 ping을 받은 시스템에서 피해자 ip로 응답 패킷을 보내는 것도 볼 수 있다.

 

[scapy를 이용한 코드]

이번에 처음으로 thread를 이용하여 속도를 조금 올릴 수 있었다.

 

*코드 해석

5 ~ 9. 일반적으로 브로드 캐스트 주소는 255가 된다.(서브 넷팅을 안 하면....)

connect_ip로 C class까지 주소를 입력받고, 스푸핑 할 주소를 target_ip에 넣는다.

connect_ip로 받은 주소를 broadcast_ip로 받는다.

 

11 ~ 13. 함수 smurf() 작성 : IP()/ICMP() 프로토콜을 사용한다.

출발지 주소를 피해자 IP, 목적지 주소를 브로드캐스트 주소로 보낸다.

 

15 ~ 24. 스레드 이용 : 스레드를 받을 배열을 만든다.

반복을 하여 smurf 함수 쓰레드를 배열에 넣는다.

쓰레드들를 무한 반복을 한다.

툴을 이용한 방법과 똑같은 결과가 나온다.

 

 

반응형
Comments