Scapy는 컴퓨터 네트워크를 위한 패킷 조작 도구입니다.
패킷을 위조 또는 디코딩하고, 유선으로 전송하고, 캡처하고, 요청과 응답을 일치시킬 수 있습니다.
[위키피디아 참고]
Scapy 문서 : https://scapy.readthedocs.io/en/latest/index.html
패킷을 이용한 파이썬 코딩
참고 : http://github.com/secdev/scapy
같은 망(와이파이), 네트워크 안에 있는 디바이스 간의 패킷을 주것 받는 것
배우는 것 : 패킷
선행지식 : 파이썬
득템 가능 지식 : 같은 네트워크망에 패킷 날리기 (scapy)
필요한 아이템 : 집에 사람이 오면 알려주는 프로그램
Scapy
Sniffing : 패킷 염탐하기
Spoofing : 다른 사람인척 하기
Manipulating : 패킷 조작하기
설치 라이브러리
pip install --pre scapy[basic]
기본적인 코드 코드
import scapy.layers.l2
net = 'ip주소/24' # 공유기 ip 주소를 넣어준다. => 공유기 주소/24 => '/24'를 붙여주는 이유는 주소의 범위가 0-255 사이라는걸 알려주기 위해서
ans, unans = scapy.layers.l2.arping(net, timeout=1, verbose=False) # 공유기에 연결된 기기들에 패킷을 보내고 응답을 받는다
# net의 주소를 받고(net), 응답시간은 1초(timeout=1), 로그 기록은 보는것으로(verbose= True)
# 응답받은것은 ans에 저장, 응답을 받지 못한 것은 unans에 저장
for sent, received in ans.res:
ip = received.psrc #응답한 기기의 ip주소
mac = received.hwsrc # 응답한 기기의 MAC 주소
print('%s\t%s' %(ip, mac))
같은 망에 접속 했을 때 응답이 오게 하는 코드
import scapy.layers.l2
import time
net = 'ip주소/24' # 공유기 ip 주소를 넣어준다. => 공유기 주소/24 => '/24'를 붙여주는 이유는 주소의 범위가 0-255 사이라는걸 알려주기 위해서
someone = '특정디바이스의 mac주소'
while True:
ans, unans = scapy.layers.l2.arping(net, timeout=1, verbose=False) # 공유기에 연결된 기기들에 패킷을 보내고 응답을 받는다
# net의 주소를 받고(net), 응답시간은 1초(timeout=1), 로그 기록은 보는것으로(verbose= True)
# 응답받은것은 ans에 저장, 응답을 받지 못한 것은 unans에 저장
for sent, received in ans.res:
ip = received.psrc #응답한 기기의 ip주소
mac = received.hwsrc # 응답한 기기의 MAC 주소
if mac == someone:
print('someone is detected')
time.sleep(0.2) # 0.2 초 딜레이
# print('%s\t%s' %(ip, mac))
scapy 에러 - winpcap
RuntimeError: Sniffing and sending packets is not available at layer 2: winpcap is not installed. You may use conf.L3socket orconf.L3sockett6 to access layer 3
해결법 ⇒ 구글에 winPcap 설치 검색 → winpcap 설치
'오늘 배운 내용' 카테고리의 다른 글
[Python]파이썬 라이브러리 : 크롬드라이버 자동설치 chromedriver-autoinstaller (0) | 2020.09.23 |
---|---|
파이썬 Python[활용] : 동영상에서 물체 추적해서 동영상 만들기 (0) | 2020.09.17 |
Python 파이썬[활용] : 동영상을 한프레임 씩 읽어와서 변환하기 (0) | 2020.09.08 |
파이썬 : Python 웹스크랩핑 or 크롤링 정리 (0) | 2020.08.23 |
Python 공부, selenium 공부 : 웹스크랩핑 or 웹 크롤링 관련 (0) | 2020.08.22 |