Python 기반의 대화형 패킷 조작 라이브러리로, 광범위한 프로토콜에 걸쳐 네트워크 패킷을 위조, 디코딩, 전송, 캡처, 분석할 수 있으며 스캐닝, 트레이서우팅, 공격, 네트워크 탐색을 지원합니다.
ScapyScapy는 강력한 Python 기반 대화형 패킷 조작 프로그램이자 라이브러리입니다.
다양한 프로토콜의 패킷을 위조하거나 디코딩하고, 와이어에 전송하고, 캡처하고, pcap 파일을 사용하여 저장하거나 읽고, 요청과 응답을 일치시키는 등 많은 작업을 수행할 수 있습니다. 기본값으로 작동하도록 설계되어 빠른 패킷 프로토타이핑이 가능합니다.
스캐닝, 트레이스라우팅, 프로빙, 단위 테스트, 공격 또는 네트워크 검색과 같은 대부분의 일반적인 작업을 쉽게 처리할 수 있습니다(, 의 85%, , , , , , 등을 대체할 수 있음). 또한 잘못된 프레임 전송, 자체 802.11 프레임 주입, 기술 결합(VLAN 호핑 + ARP 캐시 중독, WEP 보호 채널의 VoIP 디코딩 등)과 같은 다른 도구는 처리하지 못하는 특정 작업도 매우 잘 수행합니다.
hpingnmaparpspoofarp-skarpingtcpdumpwiresharkp0fScapy는 Python 3.7+를 지원합니다. 크로스 플랫폼을 지향하며 Linux, OSX, *BSD 및 Windows 등 다양한 플랫폼에서 실행됩니다.
Scapy는 셸 또는 라이브러리로 사용할 수 있습니다. 자세한 내용은 문서의 일부인 Scapy 시작하기를 참조하세요.
Scapy는 네트워크와 상호작용하기 위한 대화형 셸로 쉽게 사용할 수 있습니다. 다음 예제는 github.com에 ICMP Echo Request 메시지를 보낸 다음 응답 소스 IP 주소를 표시하는 방법을 보여줍니다.
sudo ./run_scapy
Welcome to Scapy
>>> p = IP(dst="github.com")/ICMP()
>>> r = sr1(p)
Begin emission:
.Finished to send 1 packets.
*
Received 2 packets, got 1 answers, remaining 0 packets
>>> r[IP].src
'192.30.253.113'
문서에는 더 고급 사용 사례와 예제가 포함되어 있습니다.
기타 유용한 리소스:
Scapy는 Linux 및 BSD 계열 운영 체제에서 외부 Python 모듈 없이 작동합니다. Windows에서는 문서에 설명된 대로 일부 필수 종속성을 설치해야 합니다.
대부분의 시스템에서 Scapy를 사용하는 것은 다음 명령을 실행하는 것만큼 간단합니다.
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
플로팅과 같은 모든 Scapy 기능을 활용하려면 matplotlib 또는 cryptography와 같은 Python 모듈을 설치해야 할 수 있습니다. 문서를 참조하고 지침에 따라 설치하세요.
Scapy의 코드, 테스트 및 도구는 GPL v2에 따라 라이선스가 부여됩니다.
(로고를 제외하고 doc/에서 달리 표시되지 않은 모든 것의) 문서는 CC BY-NC-SA 2.5에 따라 라이선스가 부여됩니다.
기여하고 싶으신가요? 좋습니다! 잠시 시간을 내어 이 문서를 읽어주세요!