Python模拟ICMP包
主要使用Scapy来完成
基础环境
VM1(192.168.1.226)
|
|
VM2(192.168.1.125)
vm1封装icmp包发给vm2
vm1脚本:
#! /usr/bin/env python from scapy.all import * target = "192.168.1.125" ip = IP() icmp = ICMP() ip.dst = target icmp.type = 0 icmp.code = 0 send(ip/icmp)
vm2脚本
from scapy.all import * packetCount = 0 def customAction(packet): global packetCount packetCount += 1 if len(packet)>0 and len(packet[0])>1: if hasattr(packet[0][1],'src') and packet[0][1].src == '192.168.1.226' and packet[0][1].dst=='192.168.1.125': print packet.show() #return "Packet #%s: %s ==> %s" % (packetCount, packet[0][1].src, packet[0][1].dst) return None sniff(filter="ip",prn=customAction)
这样我们就可以使用iptables来添加规则限制icmp的各种type各种code包了
参考