[[improve]]
Scapy ist eine [[coding:python|Python]] Bibliothek um [[datenpaket|Pakete]] einer Vielzahl von Protokollen zu fälschen oder zu decodieren, sie über die Leitung zu senden, sie zu erfassen, Anfragen und Antworten abzugleichen und vieles mehr. Es kann die meisten klassischen Aufgaben wie Scannen, Tracerouting, Sondieren, Komponententests, Angriffe oder Netzwerkerkennung problemlos bewältigen (es kann hping, 85% von nmap, arpspoof, arp-sk, arping, tcpdump, tshark, p0f usw. ersetzen).
from scapy.all import *
IFACES // show interfaces
// interactive
eth=Ether()
eth.src="aa:bb:cc:dd:ee:ff"
eth.dst="11:22:33:44:55:66"
ip=IP()
ip.src="1.1.1.1"
ip.dst="2.2.2.2"
tcp=TCP()
tcp.sport=22
tcp.dport=33
pkt=(eth/ip/tcp)
pkt.show()
send(pkt)
answer = sr1(pkt)
// 1 liner
send(IP(dst="1.1.1.1"),ICMP())
pkt=IP(dst="8.8.8.8")/UDP(dport=53)/DNS(rd=1,qd=DNSQR(qname="zarat.ml", qtype="A"))
Analyze
packet = IP(dst="192.168.0.1")/TCP(dport=80)
response = sr1(packet)
print(response[TCP].payload)
Packet handler
from scapy.all import *
def packet_handler(packet):
if ICMP in packet:
print(packet[IP].src, " --> ", packet[IP].dst)
sniff(filter="icmp", prn=packet_handler)
Alter
packet = IP(dst="192.168.0.1")/ICMP()
packet[IP].dst = "10.0.0.1"
send(packet)
DNS tracert
ans,unans=traceroute("8.8.8.8",l4=UDP(sport=RandShort())/DNS(qd=DNSQR(qname="mbcdn.lima-city.de")))
=====Links=====
* [[https://scapy.net/|Homepage]]
* [[https://github.com/secdev/scapy|Github Repo]]
* [[https://github.com/cssaheel/dissectors|Dissectors (Github)]]