👉体系化学习: 运维工程师打怪升级进阶之路 4.0
— 特色专栏 —
MySQL / PostgreSQL / MongoDB
ElasticSearch / Hadoop / Redis
Kubernetes / Docker / DevOps
Nginx / Git / Tools / OpenStack
大家好,我是民工哥!
今天给大家介绍一个超牛逼的命令行工具:hping!
hping 简介
hping 是一个命令行的网络工具(与ping命令类似,但功能更强大),它可以生成和发送自定义的TCP/IP数据包,对指定的主机或端口进行探测。它支持TCP,UDP,ICMP 和 RAW-IP 协议。
hping的功能强大,可以用来测试防火墙、路由器等网络设备的性能,或者用来进行网络攻击。
hping 命令可在 Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows等众多操作系统下运行。
hping 功能简介
- 防火墙测试
- 实用的端口扫描
- 网络检测,可以用不同的协议、服务类型(TOS)、IP分片
- 手工探测MTU(最大传输单元)路径
- 先进的路由跟踪,支持所有的协议
- 远程操作系统探测
- 远程的运行时间探测
- TCP/IP堆栈审计
hping 的一些主要功能和用法:
- 对特定目标端口发起TCP探测:使用“-p”选项来指定目标端口,以及“-S”选项来设置TCP模式(如SYN包)。
- 伪造来源IP:hping允许用户伪造来源IP地址,这可以用来模拟DDoS攻击或其他类型的网络攻击。使用“-a”选项可以伪造IP地址。
请注意,hping的功能强大,但也可能被用于非法或恶意的用途。因此,在使用hping时,请确保遵守当地的法律法规,并尊重他人的网络安全和隐私。
hping 安装
Centos
安装依赖项
yum install -y gcc libpcap libpcap-devel tcl tcl-devel
下载安装
wget https://github.com/antirez/hping/archive/master.zip
unzip master.zip
cd hping-master
./configure
make
make strip
make install
如果make的过程中出现下面的错误:
解决方法
[root@CentOS7-1 hping-master]# ln -sf /usr/include/pcap-bpf.h /usr/include/net/bpf.h
常用的参数
-p #端口号
-S #发送TCP的SYN包
-A #发送TCP的ACK包
-a #伪造源IP
–flood #尽可能快的发送,慎用
hping 使用场景
hping 的使用场景主要集中在网络诊断、安全测试以及可能的开发调试等方面。具体来说:
- 网络诊断:hping可以用来探测网络设备的性能,包括检测网络中的开放端口、扫描网络设备、测试防火墙规则等。它可以使用任何IP报文,包括ICMP、TCP、UDP等,并定制数据包的各个部分,以实现对目标地址的详细探测。
- 安全测试:hping也常用于网络安全测试,例如模拟DDOS攻击等。通过伪造来源IP地址,发送大量的数据包,hping可以帮助测试网络设备的防御能力和安全性能。
- 开发调试:在开发过程中,hping可以用来模拟网络环境中的各种情况,帮助开发者调试和优化网络应用。
hping 使用
hping 的使用相对复杂,因为它具有很多选项和功能,可以用来执行各种网络任务,包括测试、扫描以及潜在的攻击。以下是一些基本的使用方法和示例:
基本使用
hping 可以发送自定义的TCP/IP数据包到指定的主机或端口。其基本语法如下:
hping [目标地址] [选项]
如果你想发送TCP数据包到特定端口,可以使用-S(SYN)选项和-p选项来指定端口:
hping 目标IP -S -p 端口号
设置数据包数量
使用-c选项来设置要发送的数据包数量:
hping 目标IP -c 10
设置数据包大小
使用-d选项来设置每个数据包的大小(以字节为单位):
hping 目标IP -d 128
示例
UDP DDoS攻击示例
hping3 -c 10000 -d 120 --udp -w 64 -p 80 --flood --rand-source 目标IP
这个命令将发送10000个UDP数据包到目标IP的80端口,每个数据包的大小为120字节,窗口大小为64字节,并使用洪水攻击模式(--flood)以及随机源地址(--rand-source)。
ICMP DDoS攻击示例
hping3 -c 10000 -d 120 --icmp -w 64 -p 80 --flood --rand-source 目标IP
这个命令与上面的UDP攻击类似,但使用的是ICMP协议。
SYN DDoS攻击示例
hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --rand-source 目标IP
这个命令将执行SYN DDoS攻击,这是一种常见的网络攻击方式。
修改TTL值
在某些情况下,你可能需要修改数据包的TTL(Time To Live)值。虽然具体的命令取决于你想要达到的效果,但通常你需要通过hping的适当选项来实现。TTL值通常在IP数据包的头部设置,用来防止数据包在网络中无限循环。
洪水攻击
使用--flood选项可以以尽可能快的速度发送数据包,不显示回复。这可以用于执行洪水攻击,消耗目标主机的资源。
检测网络设备的性能
如何使用 hping 来检测网络设备的性能,下面一起来探讨一下这个问题。以下是使用 hping 来检测网络设备性能的一些基本步骤和示例:
确定目标
首先,确定你想要检测的网络设备或主机的IP地址。
基本性能测试
使用hping发送基本的TCP或UDP数据包,观察响应时间和丢包率。例如,使用TCP模式发送数据包:
hping 目标IP -S -c 10
在这里,-S表示使用TCP SYN模式,-c 10表示发送10个数据包。
测量延迟
为了测量网络设备或主机之间的延迟,你可以使用hping的--latency选项,这可以帮助你获得每个数据包的往返时间(RTT)。
hping 目标IP --latency -c 10
调整数据包大小
通过调整数据包的大小,你可以观察网络设备在不同负载下的性能。使用-d选项来设置数据大小:
hping 目标IP -d 1024 -c 10
这将发送大小为1024字节的数据包。
使用traceroute模式
hping还提供了traceroute模式,可以帮助你查看数据包在网络中的路径。使用--traceroute选项来启用这个模式:
hping 目标IP --traceroute
定制数据包
hping允许你定制数据包的各个部分,包括TCP标志、端口号等。这使得你可以更精确地模拟特定的网络流量模式,并观察网络设备的响应。
记录和分析结果
使用hping时,注意记录返回的数据,包括丢包率、延迟、TTL值等。这些数据可以帮助你分析网络设备的性能。
结语
总的来说,hping 是一个功能强大且灵活的网络工具,但需要在合法和道德的框架内使用。