网络安全——Ping命令主机扫描
网络安全技术 —— Ping主机扫描实验
- 实验目的要求:
1、了解Ping主机扫描实验的基本原理。
2、掌握Ping命令的基本使用和及其在主机扫描中的应用
具体内容:
1)利用Ping命令进行主机扫描
2)利用Ping主机扫描测试网络故障
3)利用Ping探测主机的操作系统
- 实验设备与环境:
如图1.1所示
图1.1 实验环境
- 实验原理:
1、根据TCP、UDP、ICMP传输协议的特点;
2、根据安全扫描技术的特点:先发现目标、再进行信息收集、最后分析评估;
3、根据Ping命令的相关功能进行扫描探测,如Ping命令中的Socket的SO_DEBUG功能、极限检测、只输出数值、记录路由过程、发送指定数目的包后停止等。
- 实验步骤:
(一)实验环境的检查
1)登录主机1,执行ifconfig命令,查看主机1的IP信息;ifconfig主要是用于显示或配置网络设备(网络接口卡)的命令。主要信息如下,如图1.2所示。
图1.3 主机2信息
eth0为第一块网卡;IP地址为192.168.1.3;掩码地址nermask为255.255.255.0;广播地址broadcast为192.168.1.255;最大传输单元MTU为1450,(1450个字节),lo是表示主机回环地址,用来测试一个网络程序。
2)登录主机2,查看主机2的相关信息,如图1.3所示。
(二)Ping主机扫描
1)选择主机1,执行命令"ping 127.0.0.1",该地址是主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信。此处测试本地主机TCP/IP协议配置。结果如图1.4所示。
可看出,icmp_seq从1至6,ping序列正常,没有丢包,生存周期ttl为64;响应时间为0.02~0.04。
2)用主机2来ping本机,测试本地主机网卡及配置。结果如图1.5所示,
可看出,协议安装配置正确,无其他故障。
3)执行"ping 192.168.1.1"命令,Ping网关地址,用于测试本地网络线路,
结果如图1.6所示,结果可看出,本机和网关的连接正常。
4)执行"ping 192.168.1.3"命令,Ping主机2的IP地址,测试与局域网内其它主机连通性。结果如图1.7所示,可看出,局域网连通性正常,本地工作站能通过网关设备与局域网中的其他工作站进行通信。
图1.4 测试回环地址结果 图1.5 测试本机IP地址结果
图1.6 测试本地网络线路 图1.7 测试局域网连通性
5)记录路由,执行"ping -c2 -R 192.168.186.250"命令,Ping实验环境的IP地址。“记录路由”选项用于记录由回响请求消息和相应的回响应答消息使用的路径。主要是用来检查目标的路由数量,每经过一个路由就是一个hop,
图1.8 记录过程
可看出,发送了2个数据,记录了5个路由。分别是192.168.1.9、10.20.0.110、10.20.0.1、192.168.1.1、192.168.1.9。
6)扫描活动主机
首先执行"vi pingaddr.sh"命令,进行脚本编辑。
图1.9 脚本编辑
Linux编程,通过if-then结构,判断序列1-255之间,是否存在活动的目标,并将其输出。
按Esc后,shift+: ,再执行wq!命令保存退出。
执行"chmod a+x ./pingaddr.sh"命令添加执行权限。
执行"./pingaddr.sh"命令进行扫描,扫描结果如下图1.10所示。
图1.10 扫描结果
结果可看出,没有活动状态的主机。
- 实验现象、结果记录及整理:
实验现象:
1)主机1、主机2的环境正常;
2)主机TCP/IP协议安装配置正确;
3)主机网卡及配置正确
4)本机的网关连接正常;
5)局域网与其它主机连通性正常;
6)路由记录结果正常;
7)局域网内活动主机正常;
结果记录及整理:
如图片中实验现象所示。
- 分析讨论与思考题解答:
1)还可用什么脚本检测活动主机?
shell脚本:指定ping哪几台主机。最多ping失败三次后,打印出失败的IP,绿色IP代表成功,红色IP代表失败。
#!/bin/bash IP_LIST="192.168.0.17 192.168.0.18 192.168.0.19" #将ip放进数组中 for ip in $IP_LIST; do #for循环遍历数组 num=1 #定义初始值 while [ $num -le 3 ] do if ping -c 1 $ip >/dev/null then echo -e "\033[32;1m$ip Ping is success\033[0m" #if 判断如果ping通 则返回success break else FALL[$num]=$ip #反之 则失败次数+1 let num++ fi done if [ ${#FALL[*]} -eq 3 ] # if判断如果失败次数等于3 则返回Ping is failure then echo -e "\033[31;1m${FALL[1]} Ping is failure!\033[0m" unset FALL[*] fi done |
2)telnet是23端口,ssh是22端口,那么ping是什么端口?
ping命令是基于ICMP,是在网络层。而端口号,是传输层的内容。所以在ICMP中根本就不关注端口号这样的信息。
s
3)ICMP报文类型有哪些?