๐Ÿ’ป๊ธฐ์ˆ /Python

[ Python ] scapy๋กœ ๋‚ด ์ปดํ“จํ„ฐ์˜ ํŒจํ‚ท ์บก์ณํ•˜๊ธฐ

DipokalHHJ 2020. 10. 13. 17:01
๋ฐ˜์‘ํ˜•

๋กœ๊ณ 

์•ˆ๋…•ํ•˜์„ธ์š”.

scapy๋Š” ํŒŒ์ด์ฌ ํŒจํ‚ท์„ ๋‹ค๋ฃจ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜๊ณ  ๊ธฐ๋Šฅ์ด ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๋‚ด ์ปดํ“จํ„ฐ์— ์˜ค๊ณ  ๊ฐ€๋Š” ํŒจํ‚ท์„ ์บก์ฒ˜ํ•˜๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

scapy.net

 

Scapy

Packet crafting for Python2 and Python3

scapy.net

 

pip install scapy 

์œ„ ๋ช…๋ น์–ด๋กœ scapy๋ฅผ ์„ค์น˜ํ•ด ์ค๋‹ˆ๋‹ค.

 

from scapy.all import *
from scapy.arch.windows import IFACES

import time
n = 50
iface = "Intel(R) Ethernet Connection (7) I219-V"
IFACES.show()

def cap():
    for i in range(0, n):
        packet = sniff(iface=iface, count = 6)
        data = (packet[0].payload)

        #packet.show()

        src_ip = packet[0][1].src
        dst_ip = packet[0][1].dst
        nowtime = time.strftime('%c', time.localtime(time.time()))
        print('\033[95m'+'[ '+nowtime+' ] '+'\033[92m'+src_ip+'\033[94m'+" -> "+'\033[92m'+dst_ip+' \033[96m'+ str(data)) #data

cap()

์ „์ฒด์ฝ”๋“œ ์ž…๋‹ˆ๋‹ค.

๋ณ€์ˆ˜ n์€ ๋ฐ˜๋ณตํ•  ํšŸ์ˆ˜๋ฅผ

iface๋Š” ์บก์ฒ˜ํ•  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด ์Šค์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•œ ์ ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!

์‹œ๊ฐ„ ๋‚  ๋•Œ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :)

๋ฐ˜์‘ํ˜•