sendip
2016-09-30SENDIP 是一个Linux 下的命令行工具,可以通过命令行参数的方式发送各种格式的IP 包,它有大量的命令行参数来规定各种协议的头格式,目前可支持NTP, BGP, RIP, RIPng,TCP, UDP, ICMP 或raw IPv4 和IPv6 包格式,并且可以随意在包中添加数据。
sendip -v -p ipv4 -is 110.76.42.17 -p tcp -td 80 -v -f X 110.76.42.167
在从事网络产品尤其是网络安全产品开发时,我们一直面临着一个问题,就是对产品的TCP/IP 协议栈进行稳定性或安全性测试,确保开发产品在遇到各种不规则的错误的IP 包时仍可正常稳定高效地工作,我们知道,在正常的网络环境中,很难产生错误的IP 包,也很难产生我们想要的错误的IP 包,为此,要完成对产品的测试,我们必须自己来制造各种各样错误的IP 包,本篇的目的就是介绍如何利用各种发包工具来制造自己想要的错误的IP 包。
这篇文档主要是介绍sendip的报文构造方式,而sendip的缺陷就在于它不能连续的发送报文,所以这里提供一个简单的perl脚本,来循环的发送数据包,虽说不能形成flood的效果,但是对于测试可以达到数量控制的目的,有助于自动化脚本的测试,提高测试的效率。
#!/usr/bin/perl -w
$i=1;
while ($i<2)
{
for($j=0;$j<=65;++$j)
{
system "sendip -v -d r64 -p ipv4 -iv 4 -ih 5 -il 20 -ifm 1 -if 0 -iy 8 -is 13.1.1.2 -id 192.168.98.173 -p udp -us $j -ud $j -ul 56 192.168.98.173";
system "sendip -v -d r64 -p ipv4 -iv 4 -ih 5 -il 20 -ifm 0 -if 0x3 -iy 8 -is 13.1.1.2 -id 192.168.98.173 -p udp -us $j -ud $j -ul 56 192.168.98.173";
system "sendip -v -d r64 -p ipv4 -iv 4 -ih 5 -il 65535 -ifm 1 -if 10 -iy 4 -is 13.1.1.2 -id 192.168.98.173 -p tcp -ts $j -td $j -tt 8 192.168.98.173";
}
++$i
}
分类:Linux | 标签: |