fping & hping使用详解

一、fping安装使用

Fping程序类似于ping。Fping与ping不同的地方在于,fping可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。

与ping要等待某一主机连接超时或发回反馈信息不同,fping给一个主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping。如果某一主机ping通,则此主机将被打上标记,并从等待列表中移除,如果没ping通,说明主机无法到达,主机仍然留在等待列表中,等待后续操作。


安装:

> wget http://fping.org/dist/fping-4.0.tar.gz 
> tar -zxvf fping-4.0.tar.gz
> cd fping-4.0
> ./configure --prefix=/usr/local/fping     #指定安装路径
> make
> make install
> /usr/local/fping/sbin/fping -v

参数说明:

参数

说明

-a

Lists targets that responded

显示可ping通的目标

-A

Lists targets by address instead of hostname

将目标以ip地址的形式显示

-b <num>

Sends <num> bytes of data per ICMP packet (default 56)

ping 数据包的大小。(默认为56)

-B <f>

Tells fping to wait <f> times longer for a reply after each successive failed request (default 1.5)

设置指数反馈因子到f

-c <num>

Number of Pings to send to each target (default 1)

ping每个目标的次数 (默认为1)

-C <num>

Same as above but prints additional statistics for each host

同-c,返回的结果为冗长格式

-e

Displays elapsed time on return packets

显示返回数据包所费时间

-f <file>

Reads the target list from <file> (use "-" for standard input) (only if no -g specified)

从文件获取目标列表( - 表示从标准输入)(不能与 -g 同时使用)

-g

Tells fping to generate a target list by specifying the start and end address (ex. ./fping -g 192.168.1.0 192.168.1.255) or an IP/subnet mask (ex. ./fping -g 192.168.1.0/24)


通过指定开始和结束地址来生成目标列表(例如:./fping –g 192.168.1.0 192.168.1.255)或者一个IP/掩码形式(例如:./fping –g 192.168.1.0/24)

-i <num>

Interval (in milliseconds) to wait between Pings (default 25)

设置ip的TTL值 (生存时间)

-l

Sends Pings forever

循环发送ping

-m

Pings multiple interfaces on target host

ping目标主机的多个网口

-n

Displays targets by name (-d is equivalent)

将目标以主机名或域名显示(等价于 -d )

-p <num>

Interval (in milliseconds) between Pings to an individual target (in looping and counting modes, default 1000)


对同一个目标的ping包间隔(毫秒) (在循环和统计模式中,默认为1000)

-q

Doesn't show per-target/per-Ping results

安静模式(不显示每个目标或每个ping的结果)

-Q <num>

Same as -q, but show summary every <num> seconds

同-q, 但是每n秒显示信息概要

-r <num>

When a host doesn't respond, retries the host <num> times (default 3)

当ping失败时,最大重试次数(默认为3次)

-s

Displays summary statistics

打印最后的统计数据

-t <num>

Timeout (in milliseconds) for individual targets (default 500)

单个目标的超时时间(毫秒)(默认500)

-u

Displays targets that are unreachable

显示不可到达的目标

-v

Displays version number

显示版本号

用法:FPING COMMAND EXAMPLES IN LINUX/UNIX


二、hping安装使用

Hping是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不是只能发送ICMP回应请求,它还可以支持TCP、UDP、ICMP和RAW-IP协议,它有一个路由跟踪模式,能够在两个相互包含的通道之间传送文件。Hping常被用于检测网络和主机,其功能非常强大,可在多种操作系统下运行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。

HPING和ping的区别:典型ping程序使用的是ICMP回显请求来测试,而HPING可以使用任何IP报文,包括ICMP、TCP、UDP、RAWSOCKET。

Hping的主要功能有:

防火墙测试
实用的端口扫描
网络检测,可以用不同的协议、服务类型(TOS)、IP分片
手工探测MTU(最大传输单元)路径
先进的路由跟踪,支持所有的协议
远程操作系统探测
远程的运行时间探测
TCP/IP堆栈审计



安装:

> wget https://github.com/antirez/hping/archive/master.zip  # 解压
> unzip master.zip  #安装依赖
> yum install -y libpcap-devel
> yum install -y tcl tcl-devel
>./configure
> make
# hping3 在linux上的安装问题:
# libpcap_stuff.c:20:21: error: net/bpf.h: No such file or directory
# 解决办法:
# ln -sf /usr/include/pcap-bpf.h /usr/include/net/bpf.h 重新编译问题解决
> make strip
> make install
> hping -v


参数说明:

-H --HELP 显示帮助  
-v -VERSION 版本信息  
-c --count count 发送数据包的次数 关于countreached_timeout 可以在hping2.h里编辑  
-i --interval 包发送间隔时间(单位是毫秒) 缺省时间是1秒,此功能在增加传输率上很重要,在idle/spoofing扫描时此功能也会被用到,你可以参考hping-howto获得更多信息-fast 每秒发10个数据包,(似乎可用作dos攻击,没测试过,不忍拿同学开刀)  
-n -nmeric 数字输出,象征性输出主机地址(用处不大)  
-q -quiet 退出.什么都不会输出,除了开始结诉时间  
-I --interface interface name 无非就是eth0之类的参数,自己的机器自己看吧,别告诉我你连这都不知道,一般我不指定这参数,hping一样工作正常.  
-v --verbose 显示很多信息,TCP回应一般如下:  
len=46 ip=192.168.1.1 flags=RADF seq=0 ttl=255 id=0 win=0 rtt=0.4ms tos=0 iplen=40 seq=0 ack=1380893504 sum=2010 urp=0  
-D --debug 进入debug模式 当你遇到麻烦时,比如用HPING遇到一些不合你习惯的时候,你可以用此模式修改HPING,(INTERFACE DETECTION,DATA LINK LAYER ACCESS,INTERFACE SETTINGS,.......)  
-z --BIND 快捷键的使用 (按自己个人喜好设定吧)  
-Z --unbind 消除快捷键  

以下是协议选择项  

-O --rawip RAWIP模式,在此模式下,HPING会发送带数据的IP头,....原文如下:RAW IP mode, in this mode hping2 will send IP header with data appended with --signature and/or  
--file, see also --ipproto that allows you to set the ip protocol field.(具体,不好翻译)   
-1 --icmp ICMP模式,此模式下,HPING会发送IGMP应答报文,你可以用--ICMPTYPE --ICMPCODE选项发送其他类型/模式的ICMP报文  
-2 --udp UDP 模式,缺省下,HPING会发送UDP报文到主机的0端口,你可以用--baseport --destport --keep选项指定其模式  
-9 --listen signatuer hping的listen模式,用此模式,HPING会接收指定的数据,比如:命令如下:hping  
--listen TEST 接收数据如下时:234-5488-TESThello_word,会显示hello_word以下是有关IP的选项  
-a --spoof hostname 伪造IP攻击,防火墙就不会记录你的真实IP了,当然,回应的包你也接收不到了,比如,你是192.168.3.1, 你装成192.168.3.2发包给192.168.3.3, 192.168.3.3的防火墙会记录192.168.3.2发包记录,但是192.168.3.3的回应也会发回192.168.3.2,而你却接收不到192.168.3.3的回答包的,具体可以参见HPING2-HOWTO  
-t --ttl time to live 本选项可以指定发出包的TTL值,我用了一下,实在看不出什么区别,这选项一般和--traceroute 或  
--bind一齐用,比如:hping 1.1.1.1 -t 1 --traceroute,(这选项数值大了,和PING没区别,数值小了,包似乎到不了主机,只停留在到达路由主机上,你自己慢慢看吧)  
-H --ipproto 在RAW IP模式里选择IP协议  
-W --WINID UNIX ,WINDIWS的id回应不同的 ,这选项可以让你的ID回应和WINDOWS一样  
-r --rel 更改ID的,可以让ID曾递减输出,详见HPING-HOWTO  
-F --FRAG 更改包的FRAG ,这可以测试对方对于包碎片的处理能力,缺省的‘virtual mtu‘是16字节,  
-x --morefrag 此功能可以发送碎片使主机忙于恢复碎片而造成主机的拒绝服务  
-y -dontfrag 发送不可恢复的IP碎片,这可以让你了解更多的MTU PATH DISCOVERY  
-G --fragoff fragment offset value set the fragment offset  
-m --mtu mtu value 用此项后 ID数值变得很大 50000没指定此项时3000-20000左右,具体作用,我得再去看看  
-o --tos hex tos TOS=TYPE OF SERVICE 知道什么回事了吧?  
-G --rroute 记录路由,可以看到详悉的数据等等,最多可以经过9个路由,即使主机屏蔽了ICMP报文,路由只涉及IP,所以任可以记录,在TCP UDP下,也可以记录路由的  

ICMP选项  

-C --ICMPTYPE TYPE 指定ICMP类型,缺省是ICMP ECHO REQUEST  
-K --ICMPCODE CODE 指定ICMP代号,缺省0  
--icmp-ipver 把IP版本也插入IP头,  
--icmp-iphlen 设置IP头的长度,缺省为5 (32字节)  
--icmp-iplen 设置IP包长度  
--icmp-ipid 设置ICMP报文IP头的ID,缺省是RANDOM  
--icmp-ipproto 设置协议的,缺省是TCP  
-icmp-cksum 设置校验和的,没什么的  
-icmp-ts Alias for --icmptype 13 (to send ICMP timestamp requests)  
--icmp-addr Alias for --icmptype 17 (to send ICMP address mask requests)  

TCP/UDP 选项  

-s --baseport source port hping用源端口猜测回应的包,它从一个基本端口计数,每收一个包,端口也加1,这规则你可以自己定义,如用-K --KEEP可以使端口不会增加,每次的基本端口是\随意的  
-p --deskport [+][+]desk port 设置目标端口,缺省为0,一个加号设置为:每发送一个请求包到达后,端口加1,两个加号为:每发一个包,端口数加1,  
--keep 上面说过了  
-w --win 发的大小和windows一样大,64BYTE  
-O --tcpoff Set fake tcp data offset. Normal data offset is tcphdrlen / 4.  
-m --tcpseq 设置TCP序列数,  
-l --tcpck 设置TCP ack的  
-Q --seqnum 搜集序列号的,这对于你分析TCP序列号有很大作用

-b --badcksum 发出一个错误校验和的UDP/TCP包  
-tcp-timestamp  
-F -fin set FIN tcp flag  
-S --syn set SYN tcp flag.  
-R --rst set RST tcp flag.  
-P --push set PUSH tcp flag.  
-A --ack set ACK tcp flag.  
-U --urg set URG tcp flag.  
-X --xmas set Xmas tcp flag.  
-Y --ymas set Ymas tcp flag.  

其他:  

-d --data data size 设置包大小,注意:指定DATA为40时,输出如下:  

HPING www.yahoo.com (ppp0 204.71.200.67): NO FLAGS are set, 40 headers + 40 data bytes  

-E --file filename 指定包内容如FILENAME里的一样  
-e --sign signature 指定包头的内容  
-j --dump Dump received packets in hex.  
-J --print Dump received packets‘s printable characters. -B --safe  
-B --safe 确保数据完整发出 例如:要发送A的/etc/passwd给B  

-U --END 如果你用了--FILE项,当EOF到达后,此项可以帮助你自动停止接收无用的数据,  
-T --traceroute 路由模式,自己摸索吧,  
--tr -keep-ttl 一个和路由有关的项,举例: hping2 host --traceroute --ttl 5 --tr-keep-ttl.  
--tr-stop 当ICMP一旦不可到达时,自动停止发送  
--tr-no-rrt 在路由模式里不显示RTT信息,  
--tcpexitcode 在某些规则下可探知主机是否存活  


用法:hping3命令


参考:

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/3144.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注