前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >还在 Ping 百度吗?那你就太 Low 了!

还在 Ping 百度吗?那你就太 Low 了!

作者头像
民工哥
发布2024-03-21 14:52:07
1010
发布2024-03-21 14:52:07
举报

大家好,我是民工哥!

今天给大家介绍一个超牛逼的命令行工具: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

安装依赖项

代码语言:javascript
复制
yum install -y gcc libpcap libpcap-devel tcl tcl-devel

下载安装

代码语言:javascript
复制
wget https://github.com/antirez/hping/archive/master.zip  
unzip master.zip  
cd hping-master  
./configure
make  
make strip
make install

如果make的过程中出现下面的错误:

解决方法

代码语言:javascript
复制
[root@CentOS7-1 hping-master]# ln -sf /usr/include/pcap-bpf.h /usr/include/net/bpf.h
常用的参数
代码语言:javascript
复制
-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数据包到指定的主机或端口。其基本语法如下:

代码语言:javascript
复制
hping [目标地址] [选项]

如果你想发送TCP数据包到特定端口,可以使用-S(SYN)选项和-p选项来指定端口:

代码语言:javascript
复制
hping 目标IP -S -p 端口号
设置数据包数量

使用-c选项来设置要发送的数据包数量:

代码语言:javascript
复制
hping 目标IP -c 10
设置数据包大小

使用-d选项来设置每个数据包的大小(以字节为单位):

代码语言:javascript
复制
hping 目标IP -d 128
示例
UDP DDoS攻击示例
代码语言:javascript
复制
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攻击示例
代码语言:javascript
复制
hping3 -c 10000 -d 120 --icmp -w 64 -p 80 --flood --rand-source 目标IP

这个命令与上面的UDP攻击类似,但使用的是ICMP协议。

SYN DDoS攻击示例
代码语言:javascript
复制
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模式发送数据包:

代码语言:javascript
复制
hping 目标IP -S -c 10

在这里,-S表示使用TCP SYN模式,-c 10表示发送10个数据包。

测量延迟

为了测量网络设备或主机之间的延迟,你可以使用hping的--latency选项,这可以帮助你获得每个数据包的往返时间(RTT)。

代码语言:javascript
复制
hping 目标IP --latency -c 10
调整数据包大小

通过调整数据包的大小,你可以观察网络设备在不同负载下的性能。使用-d选项来设置数据大小:

代码语言:javascript
复制
hping 目标IP -d 1024 -c 10

这将发送大小为1024字节的数据包。

使用traceroute模式

hping还提供了traceroute模式,可以帮助你查看数据包在网络中的路径。使用--traceroute选项来启用这个模式:

代码语言:javascript
复制
hping 目标IP --traceroute
定制数据包

hping允许你定制数据包的各个部分,包括TCP标志、端口号等。这使得你可以更精确地模拟特定的网络流量模式,并观察网络设备的响应。

记录和分析结果

使用hping时,注意记录返回的数据,包括丢包率、延迟、TTL值等。这些数据可以帮助你分析网络设备的性能。

结语

总的来说,hping 是一个功能强大且灵活的网络工具,但需要在合法和道德的框架内使用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hping 简介
  • hping 功能简介
  • hping 安装
    • Centos
      • 常用的参数
      • hping 使用场景
      • hping 使用
        • 基本使用
          • 示例
            • 检测网络设备的性能
            • 结语
            相关产品与服务
            手游安全测试
            手游安全测试(Security Radar,SR)为企业提供私密的安全测试服务,通过主动挖掘游戏业务安全漏洞(如钻石盗刷、服务器宕机、无敌秒杀等40多种漏洞),提前暴露游戏潜在安全风险,提供解决方案及时修复,最大程度降低事后外挂危害与外挂打击成本。该服务为腾讯游戏开放的手游安全漏洞挖掘技术,杜绝游戏外挂损失。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档