




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常用IP发包工具介绍 第1页共14页AntPower 技术文章三款常用IP发包工具介绍小蚁雄心成员郎国军著URL修订版本版本时间修订人说明AntPower版权所有?2003技术文章第2页共14页1简介在从事网络产品尤其是网络安全产品开发时,我们一直面临着一个问题,就是对 产品的TCP/IP协议栈进行稳定性或安全性测试,确保开发产品在遇到各种不规则的 错误的IP包时仍可正常稳定高效地工作,我们知道,在正常的网络环境中,很难产生错误的IP 包,也很难产生我们想要的错误的IP包,为此,要完成对产品的测试,我们必须自己来 制造各种各 样错误的IP包,本篇的目的就是介绍如何利用各种发包工具来制造自己 想
2、要的错误的IP包。2. IP发包工具介绍目前,有很多常用的产生IP包的工具,如sendip、nessus、ipsend、 ippacketv sniffer等,下面我们介绍三种比较常用的工具sen dip、n essus和sniffer o2.1. SENDIP 工具SENDIP是一个LINUX下的命令行工具,可以通过命令行参数的方式发送各种 格 式的IP包,它有大量的命令行参数来规定各种协议的头格式,目前可支持NTP, BGP, RIP, RIPng,TCP, UDP, ICMP或raw IPv4和IPv6包格式,并且可以随意在包中添加数据。 SENDIP可在各种UNIX或LINUX版本中运
3、行,本人使用的是SLACKWARE 8.0和 REDHAT 9.0两个版本。可在网站中下载最新的源代码或RP M包,目前版本为25,源码包大小只有54K o2.1.1安装过程SENDIP的安装过程非常简单,首先从前面介绍的网站中下载最新的源代码包,目 前为 sendip-2.5.tar.gzo在LINUX系统中执行:#tar xzvf sen dip-2.5.tar.gz#cd sen dip-2.5#make#make install在系统的/usr/local/bin目录下会产生一个SENDIP命令文件,同时,在/usr/local/lib 目录下建立一个 sendip 目录,并在其下放置
4、 ipv4.so、ipv6.so、tcp.so等与协议相关的模块文 件。通过在命令行下运行这个文件,我们可以产生各种各样我们需要的IP包,还可以通 过运行 脚本自动发送大量的IP包。AntPower版权所有?2003技术文章第3页共14页2.1.2.发包方法SENDIP 可以发送 NTP, BGP, RIP, RIPng, TCP, UDP, ICMP、IPv4 和 IPv6 等 各种格式的数据包,SENDIP本身是以模块的方式发送各种协议的数据包,用p参数 指定协议类型,要发送每种协议的数据包,必须对该协议的数据包格式有一定的了解。通常发送TCP/UDP/ICMP数据包时,都必须以IP包进行
5、封装 撚后才可以发出去。本节我 们将以T CP数据包为例进行讲述。下面介绍一下SENDIP的命令行格式,以下为直接执行SENDIP时的输出:Usage: sendip -v -d data -h -f datafile -p module module options hostnam e-d data add this data as a string to the end of the packetData can be:rN to gen erate N random (ish data bytes;Ox or OX followed by hex digits;0 followed by
6、 octal digits;any other stream of bytes以(指定字节的随机数据填充包中的数据段-f datafile read packet data from file (以指定数据文件中的内容填充包中的数据 段 -h print this message 输(出帮助信息p module load the specified module (see below 指定协议类型-v be verbose运行时输出详细运行信息,如不指定,运行时不输出信息(协议类型是以模块的方式指定的,用p参数指定Modules are loaded in the order the p op
7、tion appears. The headers fromeach module are put immediately inside the headers from the previos model in the final packet. For example, to embed bgp inside tcp in side ipv4, dosen dip p ipv4 p tcp p bgp .Modules available at compile time:ipv4 ipv6 icmp tcp udp bgp rip ntp (支持的协议类型通常执行格式如下:#sendip
8、v d r64 p ipv4 -iv 4 Th 5 一I 128 -is id p tcp -ts 1379 -td 23 -tt 8 -v :运行时输出详细运行信息,如不指定,运行时不输出信息-d r64用64字节的随机数值填充IP包中的数据段-p ipv4:指定协议类型为IP协议(IP协议有自己的相应参数,以i开头 -V4:协议版本为4,即IPV4ih 5:指定IP头的长度为5冶=20字节-il 128指定IP包的总长度为128字节-is :指定IP包的源地址Td30.00.1:指定IP包的目的地址AntPower版权所有
9、?2003技术文章第4页共14页-ptcp指定IP包中封装的包的协议类型(TCP协议有自己的相应参数,以t开头-ts 1379:指定TCP包的源端口 1379-td23:指定TCP包的目的端口为23-tt 8指定TCP包的偏移量即TCP头的长度,没有TCP选项时为5,即20字节, 有TCP选项时需要增加。 :指定发包的目的主机以上部分为利用SENDIP发送一个简单的TCP数据包的方法,下面结合IP和TCP数据 包的格式详细介绍IP和TCP协议的各种参数。具体各种协议的数据包格式可参考TCP/IP协议中对各种协议数据包格式的介绍,下面我们只介绍IP数据包的格式和TCP数据包的格式
10、:IP数据包的格式:根据IP数据包的格式,SENDIP有如下命令行参数可以指定对应的IP数据包中参数的值。Field nameSize(bitsSendlPoptionDescriptionVersion 4 -iv Always 4(对应 “ 4 位版本”通,常值为 4,表示 IPV4 Header length4 - ihIP header len gth, measured in 32bit words, 5 if there are no opti on 对应 “位首咅E长度表,示以32位即4字节为单位的IP首咅长度,如果没有IP参数的话,通常为5,表示首咅长度为20字节,如有IP参数
11、的话,需要调整该值Type ofService/DifferentiatedServices8-iy服务类型(TOS字段由8位组成,其中包括3位的优先权字段(现已被忽略、4 位的TOS子字段和1位未用位但必须置0,4位TOS子字段分别代表最小 时延、 最大吞吐量、最高可靠性和最小费用。4位只能置其中1位,使用时只要将设置相应 位后运算出十进制值即可。如要设置最大吞吐量位(00001000,只需添加参数iy8 即可。Total Length 16 il Total le ngth of IP packet in eluding header and data, AntPower 版 权所有?20
12、03技术文章第5页共14页measured in octets指(定IP包的总长度,包括IP头部 分和数据部分,以8位字节为单位,最长为 65535 Identification 16 -iiUsed to help reassembled fragme nted packetSi (定 IP包的标识号,用来帮助重新组装分段的IP包-ifr 1 bit: reserved, should be 0-ifd 1 bit: dont fragme nt (可指定ifd x,下可为 0、1 或 r Flags 3 -ifm 1 bit: morefragmets (可指定-ifm x ,T可为 0、
13、1 或 rFragment offset 13 -ifWhere in the reconstructed datagram this fragment belongs, measured in 64bit words starting from 0以(8字节长度为单位 指定段偏移量Time to Live 8 -itNumber of routers the packet can pass through before being discarded (值的范围 从0到255,指定TTL,表 示该包可通过的路由器的数目,用于防止包在循环路 径上无休止地传递Protocol 8 -ipProt
14、ocol associated with the data. See iana for anuptodate list of assig ned nu mbers 用于定义 IP 包内咅 E封装的上层协议的协议号,如TCP为6,可在IANA的网站上获得最新的协议号表Header checksum 16 -icChecksum of the IP header data (with checksum set to zero (可指定 IP 首咅校验 和的值,通常由SENDIP自动生成,不指定该参数,除非要发出带有错误校验和 的包Source Address 32 -is Duhh.源(地址,以点
15、分十进制方式表示DestinationAddress 32 -id Cabbage目(的地址,以点分十进制方式表示Options Variable -io.No options are required. Any number can be added. Seebelow for details徒义各种IP选项,如果定义了 IP选项,则前面的IP头的长度值要 包括IP选项的长度,不带IP选项时,该值为20,带IP选项时,可设定该值,如果要 故意制造不匹配的包,可不符合规范。如果有IP选项,还可指定IP选项的值,SENDIP支持的IP选项如下表所示NameSendlPoptio nRFC Cop
16、y Class NumberType(seeaboveLength(0 notpresentDescripti onEOL -ioeol 791 0 0 0 0 0Used as padding if needed(使用该选项后,会自动在IP头中未用到的位补0NOP -ionop 791 0 0 1 1 0Do nothing. Often used as padd ing so the n ext opti on starts on a 32 bit An tPow版 权所有?2003技术文章 第6页共14页boundaryRR -iorr 791 0 0 7 7 variable791,1
17、108会自Used to record the route of apacket.(记录包走过的每个路由器,通常用法是:iorr Of:ff.ff.ff.ff:34 -ioeol,其中iorr表示记录路由,此时 系统 动将IP选项号置为07, Of表示指针,即记录的最后一个IP地址的指针,系统会自动运算该IP选项的长度TS -iots 791 0 2 4 68 variableUsed to record the time at which a packet was processed by anintermediate systemLSR -iolsr 791 1 0 3 1
18、31 vairableLoose Source Route let the source specify the route for a packet.SIDiosid 791 1 08 136 4Rarely used, carries the SATNET stream identifier.SSR -iossr 791 1 0 9 137 variableStrict Source Route same as LSR,but extra hops are not allowed.791,1108SEC1 0 2 130 variable Security, rarely usedE-SE
19、C 1108 1 0 5 133 variable Extended Security, rarely used通常在SENDIP中指定IP选项时,格式比较特别,下面我们以RR记录路由选项 为例介绍一下,如果要发送一个记录三个IP的数据包,需要考虑如下,一是指定IP头 的长度要包括IP选项的长度,而是要指定RR记录路由选项的指针位置和IP地址(本来 是由系统自动记录IP和更新指针位置,但现在必须手工指定,那么记录三个IP包后,指针的位 置应是3+4 3+1 =16,造好后,数据包的格式应该如下:IP 头 07 15 16 34(IP1 34(IP2 30.0.0
20、.234(IP3 00(ioeol tcp20B RR len ptr 4bytes 4bytes 4bytes Ptr具体命令行如下:#sendip -d r64 -p ipv4 iv 4 ih 10 一I 128 -is id iorr 10:10.0. 0.234: 34: 34-ioeol -p tcp -ts 1379 td 23 tt 8 ih10表示IP头的长度为10 4为40个字节,去除标准的20个字节长度,为IP 选项预留为20个字节-iorr 10: 34:
21、34: 34 中第一个 10 表示用 16 进制表示的 指针的位置,后面为用冒号分隔的三个用点分十进制表示的IP地址ioeol表示用00结束IP选项,并用随机数填充后面未用的IP头位置以上部分只是以RR记录路由IP选项为例,介绍了 sendip中指定IP选项的方法, 当然 也可以根据自己的要求发送IP选项不符合常规的数据包。其他的IP选项与此雷 同,但发送AntPower版权所有?2003技术文章第7页共14页前需要详细了解IP选项的格式,才可正确发送。TCP数据包的格式:根据TCP数据包的格式,SENDIP有如下命令行参数可以指定对应的TCP数据包 中参数的值。Field n
22、ameSize(bitsSendlPoptio nDescriptionSource port 16 -tsSource port number for the connection(以十进制的方式指定TCP原端口Destination port 16 -tdDestination port number(以十进制的方式指定TCP目的端口Sequence number 32 -tnNumber of the first data octet in this packet. If SYN bit is set, this is the number of the first data octet
23、 of the stream too.指(定TCP序列号,如果不指定则随机产生 Acknowledgmentnumber32 -taIf ACK bit is set, the next sequence number the sender is expecting to receive.Data offset 4 -ttLength of TCP header in 32 bit words (指定 TCP 头的长 度,单位是以 32bits 也就 是4字节为单位Reserved 4 -trShould be 0. Note, rfc793 defines this as a 6 bit f
24、ield, but the last 2 are used by rfc2481 for ECN as below.Flags: ECN 1 -tfeFlags: CWR 1 -tfcECN extension flags, see rfc2481.指(定TCP标志位,如果要打开哪一位,就在命 令行参数中指定相应位的值,如要设置SYN状态,只需在命令行加入-tfs 1即可Flags: URG 1 -tfu Urgent pointer is significant (同上 Flags: ACK 1 -tfaAck no wledgme nt field is significant (同上 F
25、lags: PSH 1 tfp Push functi on (同上Flags: RST 1 -tfr Reset the connection 同(上Flags: SYN 1 tfs Synchronize seque nee nu mbers 同上 An tPower 版权所有?2003技术文章第8页共14页Flags: FIN 1 -tff No more data from sender (同上 Window 16 -twNumber of octet starting from the one in the Acknowledgement field that the sender
26、is willing toacceptChecksum 16 -tcChecksum of the TCP header (with checksum set to 0, data, and a psuedo-header including the source and destination IP addresses, IP protocol field and a 16 bit length of the TCP header and data.Urgent pointer 16 -tuIf URG bit is set, tHe offset of the last octet of
27、urgent data in this packet.Options Variable -to.No options are required. Any number can be added. See below for details.如果有TCP选项,还可指定TCP选项的值,SENDIP支持的TCP选项如下表所 示。NameSendlPoptio nRFC TypeLength (0notpresentDescripti onEOL -toeol 793 0 0Used as padd ing if needed 用 00 填充,表示 TCP选项结束,把TCP头后面的位置用随机数填充NO
28、P -tonop 793 1 0Do nothing. Often used as padding so the next option starts on a 32 bit boundaryMSS -tomss 793 2 4Specify the maximum recieve segment size of the sender as a 16 bit number. Only valid when SYN is also setWSOPT -towscale 1323 3 3The window size should be leftshifted by the value of th
29、e option (an 8 bit number.Only valid when SYN is also set.SACKOK -tosackok 2018 4 2Selective Ackno wledgeme nt is permitted on this conn ectionSACK -tosack 2018 5 variableSelective Acknowledgement of non-contiguous blocks of data. The data in the optionis a series of (left edge-(right edge pairs giv
30、ing, respectively, the first sequeneenu mber the has bee n recieved and the first that has nt.TSOPT -tots 1323 8 10Timestamp. The first 4 bytes (TSval are the time that the packet was sent, the remaining 4 (TSecrecho the TSval of a packet that was recieved. TSecris only valid when the ACK bit is set
31、.从上表所示,可以看出,TCP选项可能只有一个单字节参数,如-toeol和-tonop , 也可 能由一个Type号和一个length长度以及该length长度指定的字节数的数据组 成 的参数,使用时sendip会自动运算length的长度,所以,不能随意设定TCP选项的长度,但需要设定TCP选项的值AntPower版权所有?2003技术文章第9页共14页在设定TCP选项时,同样要考虑到TCP头的长度要包括TCP选项的长度TCP选项数据包的格式大致如下:Kind=3 Len=3数据:移位数TCP选项号TCP选项长度TCP选项数据占一个字节,总长度为三个字节具体命令行格式可参照如下格式#send
32、ip -d r64 -p ipv4 iv 4ih 101 128 -is -id iorr 10:34:34:34-ioeol -p tcp -ts 1379 -td 23 -tt 8 -tfa 0 -tfs 1 -towscale 0 -toeol - towscale 0:指设置TCP选项3,长度为自动3, TCP选项的值即移位数为0-toeol :表示TCP选项结束,后面用随机数填满TCP头因为用SENDIP设定TCP选项时,不能设定长度,所以,如果要设定长度不正确 的 包,还要借助其他
33、工具,如SNIFFER,用SNIFFER抓到SENDIP发送的包后,再将对应 的TCP选项的长度改为不规则的值即可。根据前面介绍的内容,我们已经基本可以掌握用SENDIP发送各种协议数据包的方 法,当然我们还可以利用他发送各种不符合标准的数据包,如校验和错误、长度不正 确、状态位不正确等各种我们需要的数据包,在使用时,建议与SNIFFER搭配使用,以 验证SENDIP发出的包是否正确,进行有针对性的测试。22 NESSUS 工具NESSUS是一个非常庞大的工具,它可以提供功能完善的安全扫描服务,还可以提 供全面的发包功能,用以构造各种格式的网络通信包。本篇只关注NESSUS的发包功能。NESS
34、US由两个部分组成,一部分是服务器,通常运行在POSIX系统如 LINUX/UNIX系统中,负责扫描和攻击,并收集数据,另一部分是客户端,可以运行在 LINUX/UNIX系 统或WINDOWS系统中,负责接收和显示数据。如果只是用来发包,则只需要服务端即可。NESSUS有专门的维护网站,可以随时到网站下载最新的源代码,并获得全面的帮 助。目前,NESSUS最新的版本为2.0.8ao2.2.1. NESSUS安装方法安装NESSUS前要知道NESSUS可能需要的支撑软件包,一个是GTK ,通常 POSIX系统下的NESSUS客户端需要GTK,如果你的系统安装了 GTK贝必须确保 安装了gtk-c
35、onfig程序,可到网站下载最新的GTK程序,如果只在LINUX/UNIX系统下安装服务端,则可以不需要GTK包;另一个是OPENSSL包, 如果希望客户端和服务端的通信采用SSL方式贝需要OPENSSL包,可到 http:/www.ope nssl.下载最新的OPENSSL包,OPENSSL包是可选的。NESSUS有三种安装方法:第一种是利用LINUX下的LYNX I具直接从网上 安 装,这种方法很容易,但安全性低,在此不予详细介绍,可到NESSUS网站上获取相 关信息。第二种方法是使用NESSUS提供的nessus-installer.sh I具,直接安装,这 种方法简单且安全性比较高。第
36、三种方法是获取源码包,然后分别编译再进行安装。下面分别介绍 第二种和第三种方法。AntPower版权所有?2003技术文章第10页共14页221.1. 采用 n essus-i nstaller.sh方式安装从NESSUS网站下载最新的nessusinstaller.sh文件到本地LINUX目录撚后执行 #sh nessus-installer.sh系统会自动安装NESSUS到你的系统中,中间会需要你提供相关的提示信息,一 直按回车即可。.采用源码包方式安装如果采用源码包方式进行安装,需要下载四个软件包,并按顺序进行安装。四个 软件包分别如下:nessus-librariesli
37、bnasln essus-coren essus-plugi ns安装时必须按顺序安装这四个软件包。安装前,我们必须获得上面所说的四个软件包,目前版本为2.0.8a :nessus-libraries-x.x.tar.gzlibnasl-x.x.tar.gznessus-core.x.x.tar.gznessus-plugi ns.xxtar.gz然后开始进行安装。1安装 nessus-libraries#tar xzvf n essus-libraries-x.x.tar.gz#cd nessus-libraries-x.x#./con figure#make#make install2.安
38、装libnasl-xxtar.gz (执行与上面相同的操作3. 安装n essus-corexx.tar.gz执行与上面相同的操作4. 安装nessus-plugins.x.x.tar.gz执(行与上面相同的操作5. 如果使用的是LINUX系统,必须确保/usr/local/lib路径在/etc/ld.so.conf文件中,如 果是 SOLARIS 系统,必须执行 export LD_LIBRARY_PATH= $LD_LIBRARY_PATH :/usr/local/lib 命令。6. 执行Idconfig命令7. 如果不想或不能使用GTK的客户端,可强制使用命令行方式,这时,在执行第三步编
39、译nessuscore时,可以使用如下命令:#tar xzvf n essus-libraries-x.x.tar.gz#cd nessus-libraries-x.x#./c on figure -disable-gtk#make#make installAntPower版权所有?2003技术文章第11页共14页执行以上命令后,NESSUS就已经安装在您的系统中了。2.2.2. NESSUS的发包方法NESSUS通常采用脚本方式控制发出的包,下面我们以发送圣诞老人攻击包为例,来介绍如何利用NESSUS发送数据包。圣诞老人包是通过发送TCP Flag中同时有SYN和FIN标志的数据包,穿透防火
40、墙,来达到攻击的目的。为使用NESSUS发送攻击包,首先要定义一个脚本,在LINUX下,执行vi sendp 命令,输入如下内容:srcaddr=this_host(;注:自动获取当前主机的IP地址ip = forge_ip_packet( ip_v : 4,注:IP 协议版本为 IPV4ip_hl : 5,注:IP头的长度为5冶=20字节ip_tos : 0,ipjen : 40,注:在这里输入实际的长度40,因为IP头和TCP头都为20ip_id : OxABA,ip_p : IPPROTO_TCP,注:内部数据包协议为TCPip_ttl : 255,ip_off: 0,ip_src : srcaddr;注:可在此直接输入IPport = get_host_open
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宝鸡三和职业学院《清洁生产与循环经济》2023-2024学年第二学期期末试卷
- 河北劳动关系职业学院《古典园林设计》2023-2024学年第二学期期末试卷
- 北京外国语大学《生物育种综合实验技术》2023-2024学年第二学期期末试卷
- 赣州职业技术学院《突发公共卫生事件应急管理》2023-2024学年第二学期期末试卷
- 长沙师范学院《计算机辅助绘图基础》2023-2024学年第二学期期末试卷
- 大兴安岭职业学院《医学信息导论》2023-2024学年第二学期期末试卷
- 巴中职业技术学院《信息安全技术》2023-2024学年第二学期期末试卷
- 昆明理工大学津桥学院《固体表面物理化学》2023-2024学年第二学期期末试卷
- 武汉商学院《国际贸易实务英语(一)》2023-2024学年第二学期期末试卷
- 喀什理工职业技术学院《江南丝竹》2023-2024学年第二学期期末试卷
- 人工智能在食品检测中的创新应用探讨
- 2025-2030中国骨形态发生蛋白2行业市场发展趋势与前景展望战略研究报告
- 2025年高考语文备考之新题型:成语填空专项训练(含答案)
- 职场沟通职场沟通与人际关系处理知到课后答案智慧树章节测试答案2025年春山东管理学院
- 安徽省C20教育联盟2025年九年级中考“功夫”卷(二)数学
- 人教PEP版英语四年级下册 图片和单词专项练习
- 智慧树知到《运动生理学(湖南师范大学)》2025章节测试附答案
- 实验06 探究凸透镜成像的规律-中考物理实验之真题汇编(解析版)
- 2025年徐州市专业技术人员公需课程 - 心理调适
- 标准实施情况报告
- 《中国餐桌礼仪》课件
评论
0/150
提交评论