Scapy的是一个强大的交互式数据包处理程序(使用python编写)。它能够伪造或者解码大量的网络协议数据包,能够发送、捕捉、匹配请求和回复包等等。它可以很容易地处理一些典型操作,比如端口扫描,tracerouting,探测,单元测试,攻击或网络发现(可替代hping,NMAP,arpspoof,ARP-SK,arping,tcpdump,tethereal,P0F等)。最重要的他还有很多更优秀的特性——发送无效数据帧、注入修改的802.11数据帧、在WEP上解码加密通道(VOIP)、ARP缓存攻击(VLAN)等,这也是其他工具无法处理完成的。
二层发现:
root@kali:~# scapy WARNING: No route found for IPv6 destination :: (no default route?) Welcome to Scapy (2.3.2) >>> a=ARP() >>> a.pdst="192.168.19.132" >>> b=sr1(a) Begin emission: *Finished to send 1 packets. Received 1 packets, got 1 answers, remaining 0 packets >>> b.display() ###[ ARP ]### hwtype= 0x1 ptype= 0x800 hwlen= 6 plen= 4 op= is-at hwsrc= 00:0c:29:d5:72:8c psrc= 192.168.19.132 hwdst= 00:0c:29:40:d7:6d pdst= 192.168.19.129 ###[ Padding ]### load= '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' >>>二层发现目标主机存在的标志:得到反映包数据包。 三层发现:
root@kali:~# scapy WARNING: No route found for IPv6 destination :: (no default route?) Welcome to Scapy (2.3.2) >>> a=IP() >>> b=ICMP() >>> c=(a/b) >>> c[IP].dst="192.168.19.132" >>> d=sr1(c) Begin emission: .Finished to send 1 packets. * Received 2 packets, got 1 answers, remaining 0 packets >>> d.display()三层发现目标存在的标志是:目标成功返回一个数据包。 四层发现:
root@kali:~# scapy WARNING: No route found for IPv6 destination :: (no default route?) Welcome to Scapy (2.3.2) >>> a=IP() >>> b=TCP() >>> c=(a/b) >>> c[IP].dst="192.168.19.132" >>> c[TCP].flags="A" >>> c.display() //发送的包 ###[ IP ]### version= 4 ihl= None tos= 0x0 len= None id= 1 flags= frag= 0 ttl= 64 proto= tcp chksum= None src= 192.168.19.129 dst= 192.168.19.132 \options\ ###[ TCP ]### sport= ftp_data dport= http seq= 0 ack= 0 dataofs= None reserved= 0 flags= A window= 8192 chksum= None urgptr= 0 options= {} >>> e=sr1(c) Begin emission: .Finished to send 1 packets. * Received 2 packets, got 1 answers, remaining 0 packets >>> e.display() //返回的包 ###[ IP ]### version= 4L ihl= 5L tos= 0x0 len= 40 id= 0 flags= DF frag= 0L ttl= 64 proto= tcp chksum= 0x927a src= 192.168.19.132 dst= 192.168.19.129 \options\ ###[ TCP ]### sport= http dport= ftp_data seq= 0 ack= 0 dataofs= 5L reserved= 0L flags= R window= 0 chksum= 0x727 urgptr= 0 options= {} ###[ Padding ]### load= '\x00\x00\x00\x00\x00\x00' >>> root@kali:~# scapy WARNING: No route found for IPv6 destination :: (no default route?) Welcome to Scapy (2.3.2) >>> a=IP() >>> b=TCP() >>> c=(a/b) >>> c[IP].dst="192.168.19.132" >>> c[TCP].flags="A" >>> e=sr1(c)四层发现目标存在的标志是:返回包中flags为R