百度发包软件-发送长度大于的包的工具
发布时间:2022-05-30
1、百度外包软件:一种长度大于外包包长度的外包工具 SENDIP,可以在各种UNIX或LINUX版本上运行。我使用两个版本,SLACKWARE8、0

发送长度大于的包的工具

1、百度外包软件:一种长度大于外包包长度的外包工具

SENDIP,可以在各种UNIX或LINUX版本上运行。我使用两个版本,SLACKWARE8、0 和 seo百度发包工具。

REDHAT9、0、

您可以从网站上下载最新的源代码或RPM安卓抓包和发包工具。

包,当前版本是2、5、源代码包的大小只有。

安装过程

SENDIP的安装过程非常简单。首先从上面介绍的网站下载最新的源码包,目前是

sendip-。 百度发包点击工具。

在LINUX系统中执行:百度seo发包技术出售。

#tar–xzvfsendip-

#cdsendip-2、5

#make

#makeinstall

会在/usr/local/bin目录下生成系统一个SENDIP命令文件,同时在/usr/local/lib目录百度模拟点击软件判刑了。

下创建一个sendip目录,在其下放置ipv4、so、ipv6、so、tcp.so等协议相关的模块文件. 模拟点击发包程序。

通过在命令行运行这个文件,我们可以生成我们需要的各种IP包,也可以通过运行

脚本自动发送大量IP包。

AntPower 版权所有©技术文章

第 3 页,共 14 页

报文发送方式百度发包访问。

SENDIP 可以发送多种格式,如 NTP、BGP、RIP、RIPng、TCP、UDP、ICMP、IPv4 和 IPv6

数据包,SENDIP本身以模块的形式发送各种协议的数据包,协议类型用-p参数指定。要发送各个协议的数据包,必须对协议的数据包格式有所了解。通常,发送

TCP/UDP/ICMP数据包时,必须将它们封装在IP包中才能发送出去。在本节中,我们将以 TCP

数据包为例。 百度虚拟发包seo。

SENDIP 的命令行格式如下所述。以下是直接执行 SENDIP 时的输出:

用法:sendip[-v][-ddata][-h][-fdatafile][-pmole][moleoptions] hostname

-ddataaddthisdataasastringtotheendofthepacket

Datacanbe :

rNtogenerateNrandom(ish)databytes;

0followedbyoctaldigits;

anyotherstreamofbytes(用指定字节的随机数据填充数据包中的数据段)

-fdatafilereadpacketdatafromfile(将数据段填入带有指定数据文件内容的数据包)发包app。

-hprintthismessage(输出帮助信息)百度发包出售。

-pmoleloadthespecifiedmole(见下文)(指定协议类型)

-vbeverbose(运行时输出)详细运行信息,如果没有

(协议类型以模块的形式指定,使用 -p 参数指定)

Moles 按顺序加载 -p 选项出现。百度模拟点击。

每个moles 的headers 立即放置在百度模拟搜索点击源码。

finalpacket 中previos 模型的headers 中。例如,toembedbgpin sidetcpinsideipv4,do模拟发包。

sendip-pipv4-ptcp-pbgp....

Molesavailableatcompiletime:

(支持的协议类型)

通常的执行格式如下:百度K站神器。

#sendip–v–d --pipv4--iv4--ih5--il---ptcp--ts--

-v:运行时输出详细的运行信息,如果不指定,运行时不输出任何信息

--d:使用64字节填充IP包中随机取值的数据段

--pipv4:指定协议类型为IP协议(IP协议有自己对应的参数,以i开头)

--iv4:协议版本为4、即IPV4seo发包技术。

–ih5:指定IP头长度为5×4=20字节

–il:指定IP包总长度为字节真机发包。

–:指定源地址IP 包

--:指定 IP 包的目的地址 对应参数,以 t 开头) 百度seo点击软件。

--ts:指定 TCP 包的源端口 百度自动搜索关键词软件。

--:指定 TCP 的目的端口packet as 23

-tt8:指定 TCP 数据包的偏移量,即t 即 TCP header Length,如果没有 TCP 选项,则为 5、即 20 字节seo发包技术教程。

,有 TCP 选项时需要增加。

:指定发送数据包的目的主机

以上部分是使用SENDIP发送一个简单的TCP数据包的方法。下面结合IP和TCP数据

包的格式,详细介绍IP和TCP协议的各种参数。

各种协议的具体报文格式请参考TCP/IP协议中各种协议报文格式的介绍。下面

我们只介绍IP包的格式和TCP包的格式:

IP包的格式:

根据IP包的格式,SENDIP有如下命令行参数来指定Fieldname
Size

(bits)

SendIP

Version4-ivAlways4(对应“4位版本”,通常值为4、表示IPV4)

Headerlength4- ih

IPheaderlength,measuredinwords,5ifthereare

nooptions(对应“4位版本”“Header length”,表示IP头的长度,32位或4个

字节。如果没有IP参数,

一般为5、表示包头长度为20字节,如果有
,需要调整值)

Typeof

Service/Differentiated

Services

8-iy

服务类型(TOS)字段由 8 位组成,包括 3 位

优先级字段(现在忽略)、4 位 TOS 子字段和 1 位未使用但必须设置为 0、4 位 TOS 子字段表示发送最小

延迟、最大吞吐量和最高可靠性,分别是性和最小成本。 4 位中只有 1 位可以设置为

。使用时只需设置相应位即可计算十进制

值。要设置最大吞吐量位(),只需添加参数iy8、

-ilTotallengthofIPpacketincludingheaderanddata,

AntPower Copyright © Technical Article

Page 5 of 14

measuredinoctets(指定IP包的总长度,包括IP头

部分和数据部分,8位bytes是单位,最长的是)

用于帮助重新组装碎片包(指定IP包的标识号,用于帮助重新组装分片的IP包)

-:reserved,shouldbe0
-:don'tfragment (可以指定-ifdx, next可以是0, 1 or r) Flags3

-:morefragmets (可以指定-ifmx, 下面可以是0, 1 or r)

-if
其中构造的数据报这个片段

属于,从0开始测量(在8个字节长度内,指定段偏移)

TimetoLive8-it

在丢弃之前

数据包可以通过的路由器数量(值范围从0到,指定TTL,表示

可以通过的路由器数量,用于防止数据包在循环路径上无休止地通过
)

Protocol8-ip

Protocolassociatedwiththedata.Seeianaforan

uptodatelistofassignednumbers( 用于定义封装在IP包

中的上层协议的协议号。例如TCP为6、可以从IANA网站获取最新的协议号表

ChecksumoftheIPheaderdata(withchecksumsetto

zero)(值可以指定IP头的校验和,通常由SENDIP自动生成

,不要指定这个参数,除非你想发送一个错误的校验和-isDuhh...(源地址,用点分十进制表示)
-idCabbage(目的地址,点分十进制表示)

OptionsVariable-io...

belowfordetails(定义各种IP选项,如果定义了IP

选项,则前面的长度值IP 头应包含 IP 选项的长度,

不带 IP 选项,值为 20、带 IP 选项,

值可以设置,如果要故意创建不匹配的数据包,不符合)

如果有IP选项,也可以指定IP选项的值。SENDIP支持的IP选项如下表所示布尔。

SendIP

RFCCopyClassNumber

描述
EOL-

Usedaspaddingifneeded

(使用该选项后,IP头

中未使用的位会自动补0)

NOP-

Donothing.Oftenusedaspadding

AntPower©保留所有权利©技术文章

第 6 页,共 14 页

用于记录路由

数据包。 :-iorr

0f::--ioeol,其中

iorr表示记录路由,此时系统会自动

设置IP选项号为07、0f表示

指针,即,记录

一个IP地址的指针的最后一条记录,系统会自动计算IP选项的长度

用来记录

packetwasprocessedbyan

intermediatesystem LSR-

LooseSourceRoute-让

数据包指定路由。

SID-

很少使用,携带SATNET

流标识符。

SSR-

StrictSourceRoute-与LSR相同,

但不允许额外的跃点.,,rarelyused

E-,rarelyused

通常在SENDIP中指定IP选项时,格式比较特殊。我们以RR记录路由选项为例

介绍,如果要发送一个记录三个IP的数据包,需要考虑以下几点,一个是指定IP头的长度要

包括IP选项的长度,但是要指定RR记录路由选项的指针位置和IP地址(系统原来是

自动记录IP并更新指针位置,现在必须手动指定),那么在记录三个IP包后,指针的位置应该是

3+4×3+1=16、完成后数据包的格式应该是:

IP header (IP1)

具体命令行如下:

#sendip–d–pipv4–iv4––il–––:::

–ioeol–ptcp–ts––

-表示IP头的长度为10×4为40字节,去掉标准的20字节长度,为IP

选项保留20字节。

-::: 中的前 10 位表示指针的十六进制表示。

位置,后跟三个用冒号分隔的点分十进制的IP地址

-ioeol表示以00结束IP选项,用随机数填充未使用的IP头位置。

以上部分只是取以RR记录路由IP选项为例,介绍sendip中指定IP选项的方法。当然

也可以根据自己的要求发送IP选项不符合常规的数据包。其他IP选项与此类似,但是在发送

AntPower©技术文章

第7页,共14页

之前,需要详细了解IP选项的格式,才能正确发送。

TCP数据包的格式:

根据TCP数据包的格式,SENDIP有如下命令行参数来指定对应TCP数据包中参数

的值。

SendIP

连接的源端口号

(指定十进制的TCP源端口)

- td

Destinationportnumber

(以十进制指定 TCP 目标端口)

此数据包中的第一个数据八进制数。如果设置了 SYNbitis

,这也是流

的第一个数据八进制数。 (指定TCP序号,如果不指定则随机生成)

Acknowledgment

number

32-ta

如果ACKbitisset,则extsequencenumberthesenderis

期望接收。

Dataoffset4-tt

(指定TCP头的长度

,单位为4字节)

Reserved4-tr

应该是0、注意,但是

Flags:ECN1-tfe

标志:CWR1-tfc

ECNextensionflags,见。 (指定TCP标志位,

如果要打开哪个位,在命令行参数中指定对应位的

值。如果要设置SYN状态,在命令中加-tfs1即可line.Flags:URG1-tfuUrgentpointerissignificant(同上)

Flags:ACK1-tfaAcknowledgmentfieldissignificant(同上)

Flags:PSH1-tfpPushfunction(同上)

Flags:RST1-tfrResettheconnection(同上) )

标志:SYN1-tfsSynchronizesequencenumbers(同上)

AntPower 保留所有权利©技术文章

第 8 页,共 14 页

标志:FIN1-tffNomoredatafromsender(同上)

Numberofoctetstartingfromtheoneinthe

发送方愿意

接受的确认字段

TCP 头的校验和(校验和设置为 0)、

数据和伪头,包括源和

目标 IP 地址、

TCP 头和数据的长度。

如果设置了 URGbitist,则将最后一个字节的偏移量设置为刷新数据

在此数据包中。

OptionsVariable-to...

下面的详细信息。

如果有我作为 TCP 选项,您还可以指定 TCP 选项的值。 SENDIP 支持的 TCP 选项如下表所示。

Name

SendIP

option

RFCType

Length(0present)

Description

EOL-

Usedaspaddingifneeded(填00、表示TCP结束

选项,把TCP头后面的位置用随机数填充)

NOP-

Donothing.Oftenusedaspaddingsothenext

MSS-

的最大接收段大小。仅在SYNis

时有效WSOPT-

窗口大小应按选项()的值

左移。仅在

SYNis也设置时有效。

SACKOK-

连接上允许选择性确认

SACK-

选择性确认非连续

数据块。选项中的数据是

BR>(左边缘)-(右边缘)对分别给出

已收到的第一个序列号和

尚未收到的第一个序列号。

TSOPT-

时间戳。(TSval)是时间

数据包已发送,剩余4个(TSecr)

echo the TSvalofapacketthatwasreceived.TSecr

仅在ACKbitsset时有效。

如上表所示,可以看出TCP op可能只有一个单字节的参数,如-toeol和-tonop,或者

可能由一个类型号和一个长度组成,而长度参数由指定长度字节数的数据组成。使用

时,sendip会自动计算length的长度。因此,TCP选项的长度不能随意设置,而是需要设置

TC。 P 期权的价值。

AntPower 版权所有©技术文章

第 9 页,共 14 页

在设置 TCP 选项时,还需要考虑 TCP 头的长度,包括 TCP 选项的长度。

TCP选项包的格式大致如下:

Kind=3Len=3 数据:移位号

TCP选项号 TCP选项长度 TCP选项数据占1字节,总长度为3字节

具体命令行格式可以参考以下格式:

#sendip–d–pipv4–iv4––il–––:::

–ioeol–ptcp–ts––tt8–tfa0– tfs1–towscale0–

-towscale0:指设置TCP选项3、长度为自动3、TCP选项的值,即移位数为0

-toeol:表示TCP结束选项,然后用随机数填充 TCP 标头 当使用 SENDIP 设置 TCP 选项时,无法设置长度。因此,如果要设置长度不正确的数据包,则需要使用其他工具,例如 SNIFFER,在用 SNIFFER 捕获 SENDIP 发送的数据包后,再使用对应的 TCP

选项的长度即可更改为不规则值。

根据上面介绍的内容,我们已经基本掌握了用SENDIP发送各种协议数据包的方法。

当然我们也可以用它发送各种非标准的数据包,比如校验和错误,长度不正确、状态不正确

等我们需要的数据包,建议配合SNIFFER来验证SENDIP

发送的数据包是否正确,并进行针对性测试。

NESSUS是一个非常大的工具,它可以提供功能齐全的安全扫描服务,还可以提供完善的

包发送功能,构造各种格式的网络通信包。本文只关注 NESSUS 的数据包发送功能。

NESSUS由两部分组成,一部分是服务器,通常运行在LINUX/UNIX等POSIX系统

系统中,负责扫描和攻击,收集数据,另一部分是客户端,可以运行在LINUX/UNIX系统

或WINDOWS系统中,负责接收和显示数据。

如果仅用于发送数据包,则只需要服务器。

NESSUS有专门的维护网站,您可以随时到该网站下载最新的源代码,

获得全面的帮助。目前,NESSUS 的最新版本是 .

安装方法

在安装 NESSUS 之前,您必须了解 NESSUS 可能需要的支持包。一个是GTK。通常,POSIX

系统下的 NESSUS 客户端需要 GTK。如果你的系统中安装了GTK,你必须确保安装了

gtk-config程序,你可以去ftp网站下载最新的GTK程序,如果你只安装了

LINUX/UNIX下的服务器系统,不需要GTK包;另一种是OPENSSL包,如果需要

如果客户端和服务器之间的通信采用SSL方式,则需要OPENSSL包。您可以从

下载最新的 OPENSSL 包。 OPENSSL 包是可选的。

NESSUS有三种安装方法:第一种是使用LINUX下的LYNX工具直接从网上安装。这种方法很容易,但安全性低。这里就不详细介绍了。获取相关信息。第二种方法是使用 NESSUS 提供的 nessus-installer.sh 工具直接安装。这种方法简单,相对安全。第三种方法是获取源码包,然后分别编译安装。下面介绍第二种和第三种方法。

AntPower 版权所有©技术文章

第 10 页,共 14 页

使用 nessus-installer.sh 安装

从 NESSUS 网站下载最新的 nessus-installer.sh 文件到本地 LINUX 目录,然后执行

#shnessus-installer.sh

系统会自动将NESSUS安装到你的系统中,中间会要求你提供相关的提示信息,一直按

回车。

源码包方式安装

如果使用源码包方式安装,需要下载四个软件包,依次安装。四个包

如下:

nessus-libraries

libnasl

nessus-core

nessus-plugins

安装时四个包必须按顺序安装。

在安装之前,我们必须先获取上面提到的四个包,当前版本是:

nessus-libraries-

libnasl-

nessus-

nessus-

然后开始安装。

1、安装 nessus-libraries

#tar–xzvfnessus-libraries-

#cdnessus-libraries-x.x

#./configure

#make

#makeinstall

2、安装libnasl-(同上)

3、install nessus-(同上)

4、install nessus-(同上)

5、if using 如果是对于 LINUX 系统,您必须确保 /usr/local/lib 路径在 /etc/ 文件中。如果是 SOLARIS 系统,则必须执行 exportLD_LIBRARY_PATH=

$LD_LIBRARY_PATH:/usr/local/lib 命令。

6、执行 ldconfig 命令

7、如果您不想或不能使用 GTK 客户端,可以强制使用命令行模式。这时,当你执行第三步

编译nessus-core时,可以使用如下命令:

#tar–xzvfnessus-libraries-

#cdnessus-libraries-x.x

#。 /configure--disable-gtk

#make

#makeinstall

AntPower 版权所有© 技术文章

第 11 页,共 14 页

执行上述命令后,NESSUS 已安装在您的系统中.

发送数据包的方法

NESSUS通常使用脚本来控制发送的数据包。下面以发送圣诞老人攻击包为例介绍

如何使用NESSUS发送数据包。

Santa的包是通过发送TCPFlag中同时带有SYN和FIN标志的数据包,穿透防火墙,达到攻击目的,

为了使用NESSUS发送攻击包,首先定义一个脚本,在LINUX下,执行visendp命令,

输入如下内容:

srcaddr=this_host();注:自动获取IP地址当前主机的

BR>ip=forge_ip_packet(ip_v:4, 注意:IP协议版本为IPV4

ip_hl:5, 注意:IP头长度为5×4=20字节

ip_tos:0,

ip_len:40,注意:这里输入实际长度40、因为IP头和TCP头都是20

ip_id:0xABA,

ip_p:IPPROTO_TCP,注意:内部包协议为 TCP

ip_ttl:,

ip_off:0,

ip_src:srcaddr);注意:这里可以直接输入IP

port=get_host_open_port();注意:自动获取当前主机上的可用端口

if(!port)port =;注意:如果没有可用端口,会自动使用该端口

tcpip=forge_tcp_packet(ip:ip, 注意:表示IP层协议采用之前定义的IP协议packet

th_sport:port, 注意:这里可以直接输入端口

th_dport:port,注意:这里可以直接输入端口

th_flags:TH_SYN|TH_FIN,注意:设置TCP状态的SYN和FIN标志

th_seq:,

th_ack:0,

th_x2:0,

th_off:5, 注意:TCP头长度为5×4=20字节

th_win:,

th_urp:0);

result=send_packet(tcpip ,pcap_active:FALSE);

以上脚本编辑完成后,保存退出,运行如下命令:

#nasl–t目的IP地址测试脚本#nasl–

AntPower版权所有©技术文章

Page 12 of 14

通过Sniffer抓包,你会发现有一个对应的圣诞老人包。

在我使用的过程中,我发现NESSUS似乎不支持发送带有IP或TCP选项的数据包。

发送数据包的具体参数请参考

当使用SNIFFER发送数据包时,有两种方式,一种是直接使用PacketGenerator工具从 hexadecimal format ,这个方法比较难,因为要自己计算校验和,除非需要重现网络上捕获的一个16进制格式的数据包,另一种方法是使用捕获的数据包修改

,然后发送出去。具体实现方法如下。

使用PacketGenerator直接创建包

在SNIFFER中,选择Tools|PacketGenerator菜单,系统会弹出如下窗口:

按下图中红框内的按钮,系统会弹出一个对话框构建包内容,如下图:

AntPower版权所有©技术文章

第13页,共14页

在上图中,可以输入包的内容,也可以指定包裹数量和包裹长度。

使用抓包发包

使用抓包修改,可以避免大量的操作和输入,只需要改变需要改的地方,

然后发送出去.

如上图,根据包的一般要求,用其他工具制作包后,使用SNIFFER抓包,或者直接抓包

网络上的可疑​​包,然后点击使用鼠标邮件,弹出如上图所示的快捷菜单,从中选择

并选择SendCurrentFrame菜单,系统会弹出包裹发送窗口,如下图:

AntPower 版权所有©技术文章
Page 14 of 14

根据需要更改包裹内容并发送。需要注意的是,如果头部中的IP地址或其他内容发生变化,需要更新校验和,而MAC或选项的变化不需要改变校验和。

3、总结

通过对比前面三个包分发工具,我们发现每个工具都有自己的优缺点。 SENDIP比

更短更实用,更适合日常测试使用。 , SNIFFER打包工具是最免费的,可以发送

任何可能的数据包,NESSUS工具功能更全面,但在打包发送方面不如SENDIP,所以如果需要测试,建议使用, SENDIP和SNIFFER要结合使用,如果要使用

扫描等其他功能,可以使用NESSUS工具。

1、百度外包软件:一种长度大于外包包长度的外包工具

1、百度外包软件:一种长度大于外包包长度的外包工具

SENDIP,可以在各种UNIX或LINUX版本上运行。我使用两个版本,SLACKWARE8、0 和

REDHAT9、0、

您可以从网站上下载最新的源代码或RPM

包,当前版本是2、5、源代码包的大小只有。

安装过程

SENDIP的安装过程非常简单。首先从上面介绍的网站下载最新的源码包,目前是

sendip-。

在LINUX系统中执行:

#tar–xzvfsendip-

#cdsendip-2、5

#make

#makeinstall

会在/usr/local/bin目录下生成系统一个SENDIP命令文件,同时在/usr/local/lib目录

下创建一个sendip目录,在其下放置ipv4、so、ipv6、so、tcp.so等协议相关的模块文件.

通过在命令行运行这个文件,我们可以生成我们需要的各种IP包,也可以通过运行

脚本自动发送大量IP包。

AntPower 版权所有©技术文章

第 3 页,共 14 页

报文发送方式

SENDIP 可以发送多种格式,如 NTP、BGP、RIP、RIPng、TCP、UDP、ICMP、IPv4 和 IPv6

数据包,SENDIP本身以模块的形式发送各种协议的数据包,协议类型用-p参数指定。要发送各个协议的数据包,必须对协议的数据包格式有所了解。通常,发送

TCP/UDP/ICMP数据包时,必须将它们封装在IP包中才能发送出去。在本节中,我们将以 TCP

数据包为例。

SENDIP 的命令行格式如下所述。以下是直接执行 SENDIP 时的输出:

用法:sendip[-v][-ddata][-h][-fdatafile][-pmole][moleoptions] hostname

-ddataaddthisdataasastringtotheendofthepacket

Datacanbe :

rNtogenerateNrandom(ish)databytes;

0followedbyoctaldigits;

anyotherstreamofbytes(用指定字节的随机数据填充数据包中的数据段)

-fdatafilereadpacketdatafromfile(将数据段填入带有指定数据文件内容的数据包)

-hprintthismessage(输出帮助信息)

-pmoleloadthespecifiedmole(见下文)(指定协议类型)

-vbeverbose(运行时输出)详细运行信息,如果没有

(协议类型以模块的形式指定,使用 -p 参数指定)

Moles 按顺序加载 -p 选项出现。

每个moles 的headers 立即放置在

finalpacket 中previos 模型的headers 中。例如,toembedbgpin sidetcpinsideipv4,do

sendip-pipv4-ptcp-pbgp....

Molesavailableatcompiletime:

(支持的协议类型)

通常的执行格式如下:

#sendip–v–d --pipv4--iv4--ih5--il---ptcp--ts--

-v:运行时输出详细的运行信息,如果不指定,运行时不输出任何信息

--d:使用64字节填充IP包中随机取值的数据段

--pipv4:指定协议类型为IP协议(IP协议有自己对应的参数,以i开头)

--iv4:协议版本为4、即IPV4

–ih5:指定IP头长度为5×4=20字节

–il:指定IP包总长度为字节

–:指定源地址IP 包

--:指定 IP 包的目的地址 对应参数,以 t 开头)

--ts:指定 TCP 包的源端口

--:指定 TCP 的目的端口packet as 23

-tt8:指定 TCP 数据包的偏移量,即t 即 TCP header Length,如果没有 TCP 选项,则为 5、即 20 字节

,有 TCP 选项时需要增加。

:指定发送数据包的目的主机

以上部分是使用SENDIP发送一个简单的TCP数据包的方法。下面结合IP和TCP数据

包的格式,详细介绍IP和TCP协议的各种参数。

各种协议的具体报文格式请参考TCP/IP协议中各种协议报文格式的介绍。下面

我们只介绍IP包的格式和TCP包的格式:

IP包的格式:

根据IP包的格式,SENDIP有如下命令行参数来指定Fieldname
Size

(bits)

SendIP

Version4-ivAlways4(对应“4位版本”,通常值为4、表示IPV4)

Headerlength4- ih

IPheaderlength,measuredinwords,5ifthereare

nooptions(对应“4位版本”“Header length”,表示IP头的长度,32位或4个

字节。如果没有IP参数,

一般为5、表示包头长度为20字节,如果有
,需要调整值)

Typeof

Service/Differentiated

Services

8-iy

服务类型(TOS)字段由 8 位组成,包括 3 位

优先级字段(现在忽略)、4 位 TOS 子字段和 1 位未使用但必须设置为 0、4 位 TOS 子字段表示发送最小

延迟、最大吞吐量和最高可靠性,分别是性和最小成本。 4 位中只有 1 位可以设置为

。使用时只需设置相应位即可计算十进制

值。要设置最大吞吐量位(),只需添加参数iy8、

-ilTotallengthofIPpacketincludingheaderanddata,

AntPower Copyright © Technical Article

Page 5 of 14

measuredinoctets(指定IP包的总长度,包括IP头

部分和数据部分,8位bytes是单位,最长的是)

用于帮助重新组装碎片包(指定IP包的标识号,用于帮助重新组装分片的IP包)

-:reserved,shouldbe0
-:don'tfragment (可以指定-ifdx, next可以是0, 1 or r) Flags3

-:morefragmets (可以指定-ifmx, 下面可以是0, 1 or r)

-if
其中构造的数据报这个片段

属于,从0开始测量(在8个字节长度内,指定段偏移)

TimetoLive8-it

在丢弃之前

数据包可以通过的路由器数量(值范围从0到,指定TTL,表示

可以通过的路由器数量,用于防止数据包在循环路径上无休止地通过
)

Protocol8-ip

Protocolassociatedwiththedata.Seeianaforan

uptodatelistofassignednumbers( 用于定义封装在IP包

中的上层协议的协议号。例如TCP为6、可以从IANA网站获取最新的协议号表

ChecksumoftheIPheaderdata(withchecksumsetto

zero)(值可以指定IP头的校验和,通常由SENDIP自动生成

,不要指定这个参数,除非你想发送一个错误的校验和-isDuhh...(源地址,用点分十进制表示)
-idCabbage(目的地址,点分十进制表示)

OptionsVariable-io...

belowfordetails(定义各种IP选项,如果定义了IP

选项,则前面的长度值IP 头应包含 IP 选项的长度,

不带 IP 选项,值为 20、带 IP 选项,

值可以设置,如果要故意创建不匹配的数据包,不符合)

如果有IP选项,也可以指定IP选项的值。SENDIP支持的IP选项如下表所示布尔。

SendIP

RFCCopyClassNumber

描述
EOL-

Usedaspaddingifneeded

(使用该选项后,IP头

中未使用的位会自动补0)

NOP-

Donothing.Oftenusedaspadding

AntPower©保留所有权利©技术文章

第 6 页,共 14 页

用于记录路由

数据包。 :-iorr

0f::--ioeol,其中

iorr表示记录路由,此时系统会自动

设置IP选项号为07、0f表示

指针,即,记录

一个IP地址的指针的最后一条记录,系统会自动计算IP选项的长度

用来记录

packetwasprocessedbyan

intermediatesystem LSR-

LooseSourceRoute-让

数据包指定路由。

SID-

很少使用,携带SATNET

流标识符。

SSR-

StrictSourceRoute-与LSR相同,

但不允许额外的跃点.,,rarelyused

E-,rarelyused

通常在SENDIP中指定IP选项时,格式比较特殊。我们以RR记录路由选项为例

介绍,如果要发送一个记录三个IP的数据包,需要考虑以下几点,一个是指定IP头的长度要

包括IP选项的长度,但是要指定RR记录路由选项的指针位置和IP地址(系统原来是

自动记录IP并更新指针位置,现在必须手动指定),那么在记录三个IP包后,指针的位置应该是

3+4×3+1=16、完成后数据包的格式应该是:

IP header (IP1)

具体命令行如下:

#sendip–d–pipv4–iv4––il–––:::

–ioeol–ptcp–ts––

-表示IP头的长度为10×4为40字节,去掉标准的20字节长度,为IP

选项保留20字节。

-::: 中的前 10 位表示指针的十六进制表示。

位置,后跟三个用冒号分隔的点分十进制的IP地址

-ioeol表示以00结束IP选项,用随机数填充未使用的IP头位置。

以上部分只是取以RR记录路由IP选项为例,介绍sendip中指定IP选项的方法。当然

也可以根据自己的要求发送IP选项不符合常规的数据包。其他IP选项与此类似,但是在发送

AntPower©技术文章

第7页,共14页

之前,需要详细了解IP选项的格式,才能正确发送。

TCP数据包的格式:

根据TCP数据包的格式,SENDIP有如下命令行参数来指定对应TCP数据包中参数

的值。

SendIP

连接的源端口号

(指定十进制的TCP源端口)

- td

Destinationportnumber

(以十进制指定 TCP 目标端口)

此数据包中的第一个数据八进制数。如果设置了 SYNbitis

,这也是流

的第一个数据八进制数。 (指定TCP序号,如果不指定则随机生成)

Acknowledgment

number

32-ta

如果ACKbitisset,则extsequencenumberthesenderis

期望接收。

Dataoffset4-tt

(指定TCP头的长度

,单位为4字节)

Reserved4-tr

应该是0、注意,但是

Flags:ECN1-tfe

标志:CWR1-tfc

ECNextensionflags,见。 (指定TCP标志位,

如果要打开哪个位,在命令行参数中指定对应位的

值。如果要设置SYN状态,在命令中加-tfs1即可line.Flags:URG1-tfuUrgentpointerissignificant(同上)

Flags:ACK1-tfaAcknowledgmentfieldissignificant(同上)

Flags:PSH1-tfpPushfunction(同上)

Flags:RST1-tfrResettheconnection(同上) )

标志:SYN1-tfsSynchronizesequencenumbers(同上)

AntPower 保留所有权利©技术文章

第 8 页,共 14 页

标志:FIN1-tffNomoredatafromsender(同上)

Numberofoctetstartingfromtheoneinthe

发送方愿意

接受的确认字段

TCP 头的校验和(校验和设置为 0)、

数据和伪头,包括源和

目标 IP 地址、

TCP 头和数据的长度。

如果设置了 URGbitist,则将最后一个字节的偏移量设置为刷新数据

在此数据包中。

OptionsVariable-to...

下面的详细信息。

如果有我作为 TCP 选项,您还可以指定 TCP 选项的值。 SENDIP 支持的 TCP 选项如下表所示。

Name

SendIP

option

RFCType

Length(0present)

Description

EOL-

Usedaspaddingifneeded(填00、表示TCP结束

选项,把TCP头后面的位置用随机数填充)

NOP-

Donothing.Oftenusedaspaddingsothenext

MSS-

的最大接收段大小。仅在SYNis

时有效WSOPT-

窗口大小应按选项()的值百度发包软件}

左移。仅在

SYNis也设置时有效。

SACKOK-

连接上允许选择性确认

SACK-

选择性确认非连续

数据块。选项中的数据是

BR>(左边缘)-(右边缘)对分别给出

已收到的第一个序列号和

尚未收到的第一个序列号。

TSOPT-

时间戳。(TSval)是时间

数据包已发送,剩余4个(TSecr)

echo the TSvalofapacketthatwasreceived.TSecr

仅在ACKbitsset时有效。

如上表所示,可以看出TCP op可能只有一个单字节的参数,如-toeol和-tonop,或者

可能由一个类型号和一个长度组成,而长度参数由指定长度字节数的数据组成。使用

时,sendip会自动计算length的长度。因此,TCP选项的长度不能随意设置,而是需要设置

TC。 P 期权的价值。

AntPower 版权所有©技术文章

第 9 页,共 14 页

在设置 TCP 选项时,还需要考虑 TCP 头的长度,包括 TCP 选项的长度。

TCP选项包的格式大致如下:

Kind=3Len=3 数据:移位号

TCP选项号 TCP选项长度 TCP选项数据占1字节,总长度为3字节

具体命令行格式可以参考以下格式:

#sendip–d–pipv4–iv4––il–––:::

–ioeol–ptcp–ts––tt8–tfa0– tfs1–towscale0–

-towscale0:指设置TCP选项3、长度为自动3、TCP选项的值,即移位数为0

-toeol:表示TCP结束选项,然后用随机数填充 TCP 标头 当使用 SENDIP 设置 TCP 选项时,无法设置长度。因此,如果要设置长度不正确的数据包,则需要使用其他工具,例如 SNIFFER,在用 SNIFFER 捕获 SENDIP 发送的数据包后,再使用对应的 TCP

选项的长度即可更改为不规则值。

根据上面介绍的内容,我们已经基本掌握了用SENDIP发送各种协议数据包的方法。

当然我们也可以用它发送各种非标准的数据包,比如校验和错误,长度不正确、状态不正确

等我们需要的数据包,建议配合SNIFFER来验证SENDIP

发送的数据包是否正确,并进行针对性测试。

NESSUS是一个非常大的工具,它可以提供功能齐全的安全扫描服务,还可以提供完善的

包发送功能,构造各种格式的网络通信包。本文只关注 NESSUS 的数据包发送功能。

NESSUS由两部分组成,一部分是服务器,通常运行在LINUX/UNIX等POSIX系统

系统中,负责扫描和攻击,收集数据,另一部分是客户端,可以运行在LINUX/UNIX系统

或WINDOWS系统中,负责接收和显示数据。

如果仅用于发送数据包,则只需要服务器。

NESSUS有专门的维护网站,您可以随时到该网站下载最新的源代码,

获得全面的帮助。目前,NESSUS 的最新版本是 .

安装方法

在安装 NESSUS 之前,您必须了解 NESSUS 可能需要的支持包。一个是GTK。通常,POSIX

系统下的 NESSUS 客户端需要 GTK。如果你的系统中安装了GTK,你必须确保安装了

gtk-config程序,你可以去ftp网站下载最新的GTK程序,如果你只安装了

LINUX/UNIX下的服务器系统,不需要GTK包;另一种是OPENSSL包,如果需要

如果客户端和服务器之间的通信采用SSL方式,则需要OPENSSL包。您可以从

下载最新的 OPENSSL 包。 OPENSSL 包是可选的。

NESSUS有三种安装方法:第一种是使用LINUX下的LYNX工具直接从网上安装。这种方法很容易,但安全性低。这里就不详细介绍了。获取相关信息。第二种方法是使用 NESSUS 提供的 nessus-installer.sh 工具直接安装。这种方法简单,相对安全。第三种方法是获取源码包,然后分别编译安装。下面介绍第二种和第三种方法。

AntPower 版权所有©技术文章

第 10 页,共 14 页

使用 nessus-installer.sh 安装

从 NESSUS 网站下载最新的 nessus-installer.sh 文件到本地 LINUX 目录,然后执行

#shnessus-installer.sh

系统会自动将NESSUS安装到你的系统中,中间会要求你提供相关的提示信息,一直按

回车。

源码包方式安装

如果使用源码包方式安装,需要下载四个软件包,依次安装。四个包

如下:

nessus-libraries

libnasl

nessus-core

nessus-plugins

安装时四个包必须按顺序安装。

在安装之前,我们必须先获取上面提到的四个包,当前版本是:

nessus-libraries-

libnasl-

nessus-

nessus-

然后开始安装。

1、安装 nessus-libraries

#tar–xzvfnessus-libraries-

#cdnessus-libraries-x.x

#./configure

#make

#makeinstall

2、安装libnasl-(同上)

3、install nessus-(同上)

4、install nessus-(同上)

5、if using 如果是对于 LINUX 系统,您必须确保 /usr/local/lib 路径在 /etc/ 文件中。如果是 SOLARIS 系统,则必须执行 exportLD_LIBRARY_PATH=

$LD_LIBRARY_PATH:/usr/local/lib 命令。

6、执行 ldconfig 命令

7、如果您不想或不能使用 GTK 客户端,可以强制使用命令行模式。这时,当你执行第三步

编译nessus-core时,可以使用如下命令:

#tar–xzvfnessus-libraries-

#cdnessus-libraries-x.x

#。 /configure--disable-gtk

#make

#makeinstall

AntPower 版权所有© 技术文章

第 11 页,共 14 页

执行上述命令后,NESSUS 已安装在您的系统中.

发送数据包的方法

NESSUS通常使用脚本来控制发送的数据包。下面以发送圣诞老人攻击包为例介绍

如何使用NESSUS发送数据包。

Santa的包是通过发送TCPFlag中同时带有SYN和FIN标志的数据包,穿透防火墙,达到攻击目的,

为了使用NESSUS发送攻击包,首先定义一个脚本,在LINUX下,执行visendp命令,

输入如下内容:

srcaddr=this_host();注:自动获取IP地址当前主机的

BR>ip=forge_ip_packet(ip_v:4, 注意:IP协议版本为IPV4

ip_hl:5, 注意:IP头长度为5×4=20字节

ip_tos:0,

ip_len:40,注意:这里输入实际长度40、因为IP头和TCP头都是20

ip_id:0xABA,

ip_p:IPPROTO_TCP,注意:内部包协议为 TCP

ip_ttl:,

ip_off:0,

ip_src:srcaddr);注意:这里可以直接输入IP

port=get_host_open_port();注意:自动获取当前主机上的可用端口

if(!port)port =;注意:如果没有可用端口,会自动使用该端口

tcpip=forge_tcp_packet(ip:ip, 注意:表示IP层协议采用之前定义的IP协议packet

th_sport:port, 注意:这里可以直接输入端口

th_dport:port,注意:这里可以直接输入端口

th_flags:TH_SYN|TH_FIN,注意:设置TCP状态的SYN和FIN标志

th_seq:,

th_ack:0,

th_x2:0,

th_off:5, 注意:TCP头长度为5×4=20字节

th_win:,

th_urp:0);

result=send_packet(tcpip ,pcap_active:FALSE);

以上脚本编辑完成后,保存退出,运行如下命令:

#nasl–t目的IP地址测试脚本#nasl–

AntPower版权所有©技术文章

Page 12 of 14

通过Sniffer抓包,你会发现有一个对应的圣诞老人包。

在我使用的过程中,我发现NESSUS似乎不支持发送带有IP或TCP选项的数据包。

发送数据包的具体参数请参考

当使用SNIFFER发送数据包时,有两种方式,一种是直接使用PacketGenerator工具从 hexadecimal format ,这个方法比较难,因为要自己计算校验和,除非需要重现网络上捕获的一个16进制格式的数据包,另一种方法是使用捕获的数据包修改

,然后发送出去。具体实现方法如下。

使用PacketGenerator直接创建包

在SNIFFER中,选择Tools|PacketGenerator菜单,系统会弹出如下窗口:

按下图中红框内的按钮,系统会弹出一个对话框构建包内容,如下图:

AntPower版权所有©技术文章

第13页,共14页

在上图中,可以输入包的内容,也可以指定包裹数量和包裹长度。

使用抓包发包

使用抓包修改,可以避免大量的操作和输入,只需要改变需要改的地方,

然后发送出去.

如上图,根据包的一般要求,用其他工具制作包后,使用SNIFFER抓包,或者直接抓包

网络上的可疑​​包,然后点击使用鼠标邮件,弹出如上图所示的快捷菜单,从中选择

并选择SendCurrentFrame菜单,系统会弹出包裹发送窗口,如下图:

AntPower 版权所有©技术文章
Page 14 of 14

根据需要更改包裹内容并发送。需要注意的是,如果头部中的IP地址或其他内容发生变化,需要更新校验和,而MAC或选项的变化不需要改变校验和。

3、总结

通过对比前面三个包分发工具,我们发现每个工具都有自己的优缺点。 SENDIP比

更短更实用,更适合日常测试使用。 , SNIFFER打包工具是最免费的,可以发送

任何可能的数据包,NESSUS工具功能更全面,但在打包发送方面不如SENDIP,所以如果需要测试,建议使用, SENDIP和SNIFFER要结合使用,如果要使用

扫描等其他功能,可以使用NESSUS工具。

1、百度外包软件:一种长度大于外包包长度的外包工具

1、百度外包软件:一种长度大于外包包长度的外包工具

SENDIP,可以在各种UNIX或LINUX版本上运行。我使用两个版本,SLACKWARE8、0 和

REDHAT9、0、

您可以从网站上下载最新的源代码或RPM

包,当前版本是2、5、源代码包的大小只有。

安装过程

SENDIP的安装过程非常简单。首先从上面介绍的网站下载最新的源码包,目前是

sendip-。

在LINUX系统中执行:

#tar–xzvfsendip-

#cdsendip-2、5

#make

#makeinstall

会在/usr/local/bin目录下生成系统一个SENDIP命令文件,同时在/usr/local/lib目录

下创建一个sendip目录,在其下放置ipv4、so、ipv6、so、tcp.so等协议相关的模块文件.

通过在命令行运行这个文件,我们可以生成我们需要的各种IP包,也可以通过运行

脚本自动发送大量IP包。

AntPower 版权所有©技术文章

第 3 页,共 14 页

报文发送方式

SENDIP 可以发送多种格式,如 NTP、BGP、RIP、RIPng、TCP、UDP、ICMP、IPv4 和 IPv6

数据包,SENDIP本身以模块的形式发送各种协议的数据包,协议类型用-p参数指定。要发送各个协议的数据包,必须对协议的数据包格式有所了解。通常,发送

TCP/UDP/ICMP数据包时,必须将它们封装在IP包中才能发送出去。在本节中,我们将以 TCP

数据包为例。

SENDIP 的命令行格式如下所述。以下是直接执行 SENDIP 时的输出:

用法:sendip[-v][-ddata][-h][-fdatafile][-pmole][moleoptions] hostname

-ddataaddthisdataasastringtotheendofthepacket

Datacanbe :

rNtogenerateNrandom(ish)databytes;

0followedbyoctaldigits;

anyotherstreamofbytes(用指定字节的随机数据填充数据包中的数据段)

-fdatafilereadpacketdatafromfile(将数据段填入带有指定数据文件内容的数据包)

-hprintthismessage(输出帮助信息)

-pmoleloadthespecifiedmole(见下文)(指定协议类型)

-vbeverbose(运行时输出)详细运行信息,如果没有

(协议类型以模块的形式指定,使用 -p 参数指定)

Moles 按顺序加载 -p 选项出现。

每个moles 的headers 立即放置在

finalpacket 中previos 模型的headers 中。例如,toembedbgpin sidetcpinsideipv4,do

sendip-pipv4-ptcp-pbgp....

Molesavailableatcompiletime:

(支持的协议类型)

通常的执行格式如下:

#sendip–v–d --pipv4--iv4--ih5--il---ptcp--ts--

-v:运行时输出详细的运行信息,如果不指定,运行时不输出任何信息

--d:使用64字节填充IP包中随机取值的数据段

--pipv4:指定协议类型为IP协议(IP协议有自己对应的参数,以i开头)

--iv4:协议版本为4、即IPV4

–ih5:指定IP头长度为5×4=20字节

–il:指定IP包总长度为字节

–:指定源地址IP 包

--:指定 IP 包的目的地址 对应参数,以 t 开头)

--ts:指定 TCP 包的源端口

--:指定 TCP 的目的端口packet as 23

-tt8:指定 TCP 数据包的偏移量,即t 即 TCP header Length,如果没有 TCP 选项,则为 5、即 20 字节

,有 TCP 选项时需要增加。

:指定发送数据包的目的主机

以上部分是使用SENDIP发送一个简单的TCP数据包的方法。下面结合IP和TCP数据

包的格式,详细介绍IP和TCP协议的各种参数。

各种协议的具体报文格式请参考TCP/IP协议中各种协议报文格式的介绍。下面

我们只介绍IP包的格式和TCP包的格式:

IP包的格式:

根据IP包的格式,SENDIP有如下命令行参数来指定Fieldname
Size

(bits)

SendIP

Version4-ivAlways4(对应“4位版本”,通常值为4、表示IPV4)

Headerlength4- ih

IPheaderlength,measuredinwords,5ifthereare

nooptions(对应“4位版本”“Header length”,表示IP头的长度,32位或4个

字节。如果没有IP参数,

一般为5、表示包头长度为20字节,如果有
,需要调整值)

Typeof

Service/Differentiated

Services

8-iy

服务类型(TOS)字段由 8 位组成,包括 3 位

优先级字段(现在忽略)、4 位 TOS 子字段和 1 位未使用但必须设置为 0、4 位 TOS 子字段表示发送最小

延迟、最大吞吐量和最高可靠性,分别是性和最小成本。 4 位中只有 1 位可以设置为

。使用时只需设置相应位即可计算十进制

值。要设置最大吞吐量位(),只需添加参数iy8、

-ilTotallengthofIPpacketincludingheaderanddata,

AntPower Copyright © Technical Article

Page 5 of 14

measuredinoctets(指定IP包的总长度,包括IP头

部分和数据部分,8位bytes是单位,最长的是)

用于帮助重新组装碎片包(指定IP包的标识号,用于帮助重新组装分片的IP包)

-:reserved,shouldbe0
-:don'tfragment (可以指定-ifdx, next可以是0, 1 or r) Flags3

-:morefragmets (可以指定-ifmx, 下面可以是0, 1 or r)

-if
其中构造的数据报这个片段

属于,从0开始测量(在8个字节长度内,指定段偏移)

TimetoLive8-it

在丢弃之前

数据包可以通过的路由器数量(值范围从0到,指定TTL,表示

可以通过的路由器数量,用于防止数据包在循环路径上无休止地通过
)

Protocol8-ip

Protocolassociatedwiththedata.Seeianaforan

uptodatelistofassignednumbers( 用于定义封装在IP包

中的上层协议的协议号。例如TCP为6、可以从IANA网站获取最新的协议号表

ChecksumoftheIPheaderdata(withchecksumsetto

zero)(值可以指定IP头的校验和,通常由SENDIP自动生成

,不要指定这个参数,除非你想发送一个错误的校验和-isDuhh...(源地址,用点分十进制表示)
-idCabbage(目的地址,点分十进制表示)

OptionsVariable-io...

belowfordetails(定义各种IP选项,如果定义了IP

选项,则前面的长度值IP 头应包含 IP 选项的长度,

不带 IP 选项,值为 20、带 IP 选项,

值可以设置,如果要故意创建不匹配的数据包,不符合)

如果有IP选项,也可以指定IP选项的值。SENDIP支持的IP选项如下表所示布尔。

SendIP

RFCCopyClassNumber

描述
EOL-

Usedaspaddingifneeded

(使用该选项后,IP头

中未使用的位会自动补0)

NOP-

Donothing.Oftenusedaspadding

AntPower©保留所有权利©技术文章

第 6 页,共 14 页

用于记录路由

数据包。 :-iorr

0f::--ioeol,其中

iorr表示记录路由,此时系统会自动

设置IP选项号为07、0f表示

指针,即,记录

一个IP地址的指针的最后一条记录,系统会自动计算IP选项的长度

用来记录

packetwasprocessedbyan

intermediatesystem LSR-

LooseSourceRoute-让

数据包指定路由。

SID-

很少使用,携带SATNET

流标识符。

SSR-

StrictSourceRoute-与LSR相同,

但不允许额外的跃点.,,rarelyused

E-,rarelyused

通常在SENDIP中指定IP选项时,格式比较特殊。我们以RR记录路由选项为例

介绍,如果要发送一个记录三个IP的数据包,需要考虑以下几点,一个是指定IP头的长度要

包括IP选项的长度,但是要指定RR记录路由选项的指针位置和IP地址(系统原来是

自动记录IP并更新指针位置,现在必须手动指定),那么在记录三个IP包后,指针的位置应该是

3+4×3+1=16、完成后数据包的格式应该是:

IP header (IP1)

具体命令行如下:

#sendip–d–pipv4–iv4––il–––:::

–ioeol–ptcp–ts––

-表示IP头的长度为10×4为40字节,去掉标准的20字节长度,为IP

选项保留20字节。

-::: 中的前 10 位表示指针的十六进制表示。

位置,后跟三个用冒号分隔的点分十进制的IP地址

-ioeol表示以00结束IP选项,用随机数填充未使用的IP头位置。

以上部分只是取以RR记录路由IP选项为例,介绍sendip中指定IP选项的方法。当然

也可以根据自己的要求发送IP选项不符合常规的数据包。其他IP选项与此类似,但是在发送

AntPower©技术文章

第7页,共14页

之前,需要详细了解IP选项的格式,才能正确发送。

TCP数据包的格式:

根据TCP数据包的格式,SENDIP有如下命令行参数来指定对应TCP数据包中参数

的值。

SendIP

连接的源端口号

(指定十进制的TCP源端口)

- td

Destinationportnumber

(以十进制指定 TCP 目标端口)

此数据包中的第一个数据八进制数。如果设置了 SYNbitis

,这也是流

的第一个数据八进制数。 (指定TCP序号,如果不指定则随机生成)

Acknowledgment

number

32-ta

如果ACKbitisset,则extsequencenumberthesenderis

期望接收。

Dataoffset4-tt

(指定TCP头的长度

,单位为4字节)

Reserved4-tr

应该是0、注意,但是

Flags:ECN1-tfe

标志:CWR1-tfc

ECNextensionflags,见。 (指定TCP标志位,

如果要打开哪个位,在命令行参数中指定对应位的

值。如果要设置SYN状态,在命令中加-tfs1即可line.Flags:URG1-tfuUrgentpointerissignificant(同上)

Flags:ACK1-tfaAcknowledgmentfieldissignificant(同上)

Flags:PSH1-tfpPushfunction(同上)

Flags:RST1-tfrResettheconnection(同上) )

标志:SYN1-tfsSynchronizesequencenumbers(同上)

AntPower 保留所有权利©技术文章

第 8 页,共 14 页

标志:FIN1-tffNomoredatafromsender(同上)

Numberofoctetstartingfromtheoneinthe

发送方愿意

接受的确认字段

TCP 头的校验和(校验和设置为 0)、

数据和伪头,包括源和

目标 IP 地址、

TCP 头和数据的长度。

如果设置了 URGbitist,则将最后一个字节的偏移量设置为刷新数据

在此数据包中。

OptionsVariable-to...

下面的详细信息。

如果有我作为 TCP 选项,您还可以指定 TCP 选项的值。 SENDIP 支持的 TCP 选项如下表所示。

Name

SendIP

option

RFCType

Length(0present)

Description

EOL-

Usedaspaddingifneeded(填00、表示TCP结束

选项,把TCP头后面的位置用随机数填充)

NOP-

Donothing.Oftenusedaspaddingsothenext

MSS-

的最大接收段大小。仅在SYNis

时有效WSOPT-

窗口大小应按选项()的值

左移。仅在

SYNis也设置时有效。

SACKOK-

连接上允许选择性确认

SACK-

选择性确认非连续

数据块。选项中的数据是

BR>(左边缘)-(右边缘)对分别给出

已收到的第一个序列号和

尚未收到的第一个序列号。

TSOPT-

时间戳。(TSval)是时间

数据包已发送,剩余4个(TSecr)

echo the TSvalofapacketthatwasreceived.TSecr

仅在ACKbitsset时有效。

如上表所示,可以看出TCP op可能只有一个单字节的参数,如-toeol和-tonop,或者

可能由一个类型号和一个长度组成,而长度参数由指定长度字节数的数据组成。使用

时,sendip会自动计算length的长度。因此,TCP选项的长度不能随意设置,而是需要设置

TC。 P 期权的价值。

AntPower 版权所有©技术文章

第 9 页,共 14 页

在设置 TCP 选项时,还需要考虑 TCP 头的长度,包括 TCP 选项的长度。

TCP选项包的格式大致如下:

Kind=3Len=3 数据:移位号

TCP选项号 TCP选项长度 TCP选项数据占1字节,总长度为3字节

具体命令行格式可以参考以下格式:

#sendip–d–pipv4–iv4––il–––:::

–ioeol–ptcp–ts––tt8–tfa0– tfs1–towscale0–

-towscale0:指设置TCP选项3、长度为自动3、TCP选项的值,即移位数为0

-toeol:表示TCP结束选项,然后用随机数填充 TCP 标头 当使用 SENDIP 设置 TCP 选项时,无法设置长度。因此,如果要设置长度不正确的数据包,则需要使用其他工具,例如 SNIFFER,在用 SNIFFER 捕获 SENDIP 发送的数据包后,再使用对应的 TCP

选项的长度即可更改为不规则值。

根据上面介绍的内容,我们已经基本掌握了用SENDIP发送各种协议数据包的方法。

当然我们也可以用它发送各种非标准的数据包,比如校验和错误,长度不正确、状态不正确

等我们需要的数据包,建议配合SNIFFER来验证SENDIP

发送的数据包是否正确,并进行针对性测试。

NESSUS是一个非常大的工具,它可以提供功能齐全的安全扫描服务,还可以提供完善的

包发送功能,构造各种格式的网络通信包。本文只关注 NESSUS 的数据包发送功能。

NESSUS由两部分组成,一部分是服务器,通常运行在LINUX/UNIX等POSIX系统

系统中,负责扫描和攻击,收集数据,另一部分是客户端,可以运行在LINUX/UNIX系统

或WINDOWS系统中,负责接收和显示数据。

如果仅用于发送数据包,则只需要服务器。

NESSUS有专门的维护网站,您可以随时到该网站下载最新的源代码,

获得全面的帮助。目前,NESSUS 的最新版本是 .

安装方法

在安装 NESSUS 之前,您必须了解 NESSUS 可能需要的支持包。一个是GTK。通常,POSIX

系统下的 NESSUS 客户端需要 GTK。如果你的系统中安装了GTK,你必须确保安装了

gtk-config程序,你可以去ftp网站下载最新的GTK程序,如果你只安装了

LINUX/UNIX下的服务器系统,不需要GTK包;另一种是OPENSSL包,如果需要

如果客户端和服务器之间的通信采用SSL方式,则需要OPENSSL包。您可以从

下载最新的 OPENSSL 包。 OPENSSL 包是可选的。

NESSUS有三种安装方法:第一种是使用LINUX下的LYNX工具直接从网上安装。这种方法很容易,但安全性低。这里就不详细介绍了。获取相关信息。第二种方法是使用 NESSUS 提供的 nessus-installer.sh 工具直接安装。这种方法简单,相对安全。第三种方法是获取源码包,然后分别编译安装。下面介绍第二种和第三种方法。

AntPower 版权所有©技术文章

第 10 页,共 14 页

使用 nessus-installer.sh 安装

从 NESSUS 网站下载最新的 nessus-installer.sh 文件到本地 LINUX 目录,然后执行

#shnessus-installer.sh

系统会自动将NESSUS安装到你的系统中,中间会要求你提供相关的提示信息,一直按

回车。

源码包方式安装

如果使用源码包方式安装,需要下载四个软件包,依次安装。四个包

如下:

nessus-libraries

libnasl

nessus-core

nessus-plugins

安装时四个包必须按顺序安装。

在安装之前,我们必须先获取上面提到的四个包,当前版本是:

nessus-libraries-

libnasl-

nessus-

nessus-

然后开始安装。

1、安装 nessus-libraries

#tar–xzvfnessus-libraries-

#cdnessus-libraries-x.x

#./configure

#make

#makeinstall

2、安装libnasl-(同上)

3、install nessus-(同上)

4、install nessus-(同上)

5、if using 如果是对于 LINUX 系统,您必须确保 /usr/local/lib 路径在 /etc/ 文件中。如果是 SOLARIS 系统,则必须执行 exportLD_LIBRARY_PATH=

$LD_LIBRARY_PATH:/usr/local/lib 命令。

6、执行 ldconfig 命令

7、如果您不想或不能使用 GTK 客户端,可以强制使用命令行模式。这时,当你执行第三步

编译nessus-core时,可以使用如下命令:

#tar–xzvfnessus-libraries-

#cdnessus-libraries-x.x

#。 /configure--disable-gtk

#make

#makeinstall

AntPower 版权所有© 技术文章

第 11 页,共 14 页

执行上述命令后,NESSUS 已安装在您的系统中.

发送数据包的方法

NESSUS通常使用脚本来控制发送的数据包。下面以发送圣诞老人攻击包为例介绍

如何使用NESSUS发送数据包。

Santa的包是通过发送TCPFlag中同时带有SYN和FIN标志的数据包,穿透防火墙,达到攻击目的,

为了使用NESSUS发送攻击包,首先定义一个脚本,在LINUX下,执行visendp命令,

输入如下内容:

srcaddr=this_host();注:自动获取IP地址当前主机的

BR>ip=forge_ip_packet(ip_v:4, 注意:IP协议版本为IPV4

ip_hl:5, 注意:IP头长度为5×4=20字节

ip_tos:0,

ip_len:40,注意:这里输入实际长度40、因为IP头和TCP头都是20

ip_id:0xABA,

ip_p:IPPROTO_TCP,注意:内部包协议为 TCP

ip_ttl:,

ip_off:0,

ip_src:srcaddr);注意:这里可以直接输入IP

port=get_host_open_port();注意:自动获取当前主机上的可用端口

if(!port)port =;注意:如果没有可用端口,会自动使用该端口

tcpip=forge_tcp_packet(ip:ip, 注意:表示IP层协议采用之前定义的IP协议packet

th_sport:port, 注意:这里可以直接输入端口

th_dport:port,注意:这里可以直接输入端口

th_flags:TH_SYN|TH_FIN,注意:设置TCP状态的SYN和FIN标志

th_seq:,

th_ack:0,

th_x2:0,

th_off:5, 注意:TCP头长度为5×4=20字节

th_win:,

th_urp:0);

result=send_packet(tcpip ,pcap_active:FALSE);

以上脚本编辑完成后,保存退出,运行如下命令:

#nasl–t目的IP地址测试脚本#nasl–

AntPower版权所有©技术文章

Page 12 of 14

通过Sniffer抓包,你会发现有一个对应的圣诞老人包。

在我使用的过程中,我发现NESSUS似乎不支持发送带有IP或TCP选项的数据包。

发送数据包的具体参数请参考

当使用SNIFFER发送数据包时,有两种方式,一种是直接使用PacketGenerator工具从 hexadecimal format ,这个方法比较难,因为要自己计算校验和,除非需要重现网络上捕获的一个16进制格式的数据包,另一种方法是使用捕获的数据包修改

,然后发送出去。具体实现方法如下。

使用PacketGenerator直接创建包

在SNIFFER中,选择Tools|PacketGenerator菜单,系统会弹出如下窗口:

按下图中红框内的按钮,系统会弹出一个对话框构建包内容,如下图:

AntPower版权所有©技术文章

第13页,共14页

在上图中,可以输入包的内容,也可以指定包裹数量和包裹长度。

使用抓包发包

使用抓包修改,可以避免大量的操作和输入,只需要改变需要改的地方,

然后发送出去.

如上图,根据包的一般要求,用其他工具制作包后,使用SNIFFER抓包,或者直接抓包

网络上的可疑​​包,然后点击使用鼠标邮件,弹出如上图所示的快捷菜单,从中选择

并选择SendCurrentFrame菜单,系统会弹出包裹发送窗口,如下图:

AntPower 版权所有©技术文章
Page 14 of 14

根据需要更改包裹内容并发送。需要注意的是,如果头部中的IP地址或其他内容发生变化,需要更新校验和,而MAC或选项的变化不需要改变校验和。

3、总结

通过对比前面三个包分发工具,我们发现每个工具都有自己的优缺点。 SENDIP比

更短更实用,更适合日常测试使用。 , SNIFFER打包工具是最免费的,可以发送

任何可能的数据包,NESSUS工具功能更全面,但在打包发送方面不如SENDIP,所以如果需要测试,建议使用, SENDIP和SNIFFER要结合使用,如果要使用

扫描等其他功能,可以使用NESSUS工具。

发送长度大于的包的工具yixianfc.com

XFM99_
XFM99_
已为您复制好微信号,点击进入微信
QQ在线咨询
在线咨询
18176216589
在线客服
18176216589
XFM99_
XFM99_
已为您复制好微信号,点击进入微信