Programming/Python

[LINUX x Python2 x Socket] TCP 3 way handshake 중 SYN Flag 의 접근을 출력하는 코드

Talking1258 2020. 1. 2. 00:28

SYN Flooding 공격을 탐지하기 위해 만들어진 소스코드 입니다.

 

목적: SYN 플러딩 공격으로 서버가 마비되는 것을 방지하기 위함

제작년도: 2019년

공개일: 2020년 1월 1일

소프트웨어: Python 2

필요 모듈: 기본 설치 모듈

 

리눅스 에서는 잘 동작합니다

 

import sys
import binascii
import socket

def rawnetworkdata():
    rawsocket = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
    while True:
        data = rawsocket.recvfrom(65535)
        hexdata = binascii.hexlify(data[0])
        if sys.getsizeof(data[0]) >= 77 and hexdata[18:20] == '06' and hexdata[66:68] == '02':
            print("SYN INCOMING FROM " + str(int(hexdata[24:26], 16)) + "." + str(int(hexdata[26:28], 16)) + "." + str(int(hexdata[28:30], 16)) + "." + str(int(hexdata[30:32], 16)))
    time.sleep(3)

rawnetworkdata()

rawpacket.py
0.00MB