Scapy는 강력한 Python 기반 대화형 패킷 조작 프로그램 및 라이브러리입니다.
다양한 프로토콜의 패킷을 위조 또는 디코딩하고, 유선으로 전송하고, 캡처하고, pcap 파일을 사용하여 저장하거나 읽고, 요청과 응답을 일치시키는 등의 작업을 수행할 수 있습니다. 작동하는 기본값을 사용하여 빠른 패킷 프로토타입을 허용하도록 설계되었습니다.
스캐닝, 경로 추적, 프로빙, 단위 테스트, 공격 또는 네트워크 검색과 같은 대부분의 고전적인 작업을 쉽게 처리할 수 있습니다( hping
, 85% nmap
, arpspoof
, arp-sk
, arping
, tcpdump
, wireshark
, p0f
등을 대체할 수 있음). 또한 유효하지 않은 프레임 전송, 자체 802.11 프레임 삽입, 기술 결합(VLAN 호핑+ARP 캐시 중독, WEP 보호 채널의 VoIP 디코딩 등)과 같이 대부분의 다른 도구가 처리할 수 없는 많은 다른 특정 작업에서도 매우 잘 수행됩니다. ..), 등.
Scapy는 Python 3.7 이상을 지원합니다. 이는 크로스 플랫폼으로 설계되었으며 다양한 플랫폼(Linux, OSX, *BSD 및 Windows)에서 실행됩니다.
Scapy는 쉘 이나 라이브러리 로 사용할 수 있습니다. 자세한 내용은 문서의 일부인 Scapy 시작하기를 참조하세요.
Scapy는 네트워크와 상호작용하는 대화형 쉘로 쉽게 사용될 수 있습니다. 다음 예에서는 ICMP 에코 요청 메시지를 github.com
으로 보낸 다음 응답 소스 IP 주소를 표시하는 방법을 보여줍니다.
sudo ./run_scapyScapy에 오신 것을 환영합니다>>> p = IP(dst="github.com")/ICMP()>>> r = sr1(p) 방출 시작: .1개의 패킷 전송이 완료되었습니다.*2개의 패킷을 받았고, 1개의 응답을 받았고, 남은 0개의 패킷>>> r[IP].src'192.30.253.113'
문서에는 고급 사용 사례와 예제가 포함되어 있습니다.
기타 유용한 리소스:
20분 안에 Scapy
대화형 튜토리얼(문서의 일부)
빠른 데모: 대화형 세션(일부 예는 오래되었을 수 있음)
HTTP/2 노트북
TLS 노트북
Scapy는 Linux 및 BSD와 같은 운영 체제에서 외부 Python 모듈 없이 작동합니다. Windows에서는 설명서에 설명된 대로 일부 필수 종속성을 설치해야 합니다.
대부분의 시스템에서 Scapy를 사용하는 것은 다음 명령을 실행하는 것만큼 간단합니다:
자식 클론 https://github.com/secdev/scapycd scapy ./run_scapy
플로팅과 같은 모든 Scapy 기능을 활용하려면 matplotlib
또는 cryptography
와 같은 Python 모듈을 설치하는 것이 좋습니다. 설명서를 참조하고 지침에 따라 설치하세요.
Scapy의 코드, 테스트 및 도구는 GPL v2에 따라 라이센스가 부여됩니다. 문서( doc/
에 다르게 표시되지 않은 모든 것, 로고를 제외한 모든 것)는 CC BY-NC-SA 2.5에 따라 라이센스가 부여됩니다.
기여하고 싶나요? 엄청난! 잠시 시간을 내어 이 내용을 읽어 보십시오!