主机存活性探测实验
实验目的
- 熟悉TCP/IP协议、Ping命令基本概念
- 学习nmap、SuperScan扫描方式及其原理
- 掌握在Windows和Linux环境下相关网络命令的使用
实验原理
1.TCP/IP协议
TCP/IP协议是一个协议集合,它包括TCP、IP、UDP、ICMP及其他的一些被称为子协议的协议。这里只介绍IP和TCP。
网络协议
IP属于TCP/IP模型的网络层,提供关于数据应如何传输到何处的信息。 IP是一种使TCP/IP可用于网络连接的子协议,即TCP/IP可跨越多个局域网段或通过路由器跨越多种类型的网络。
在一个网际环境中,被连接在一起的单个网络被称为子网,子网是TCP/IP联网的一个重要组成部分,数据帧的IP部分被称为一个IP数据包,IP数据报包括报头和数据,总长度不能超过65535字节。
IP地址是给每一个连接在Internet上的主机分配的一个在全世界范围内唯一的32位地址,由网络地址和主机地址组成。Internet的IP地址分为5类,即A类到E类
其中有一些私有地址,专门为组织机构内部使用,包括
- A类10.0.0.0到10.255.255.255
- B类172.16.0.0到172.31.255.255
- C类192.168.0.0到192.168.255.255
传输控制协议(TCP)
TCP称为传输控制协议,它提供了一种面向连接的、可靠的数据流服务。面向连接意味着两个使用TCP的应用在彼此交换数据之前必须先建立一个TCP连接。
TCP协议位于IP协议的上层,通过提供校验和、流控制及序列信息弥补IP协议可靠性的缺陷。许多流行的应用程序人Telnet、Rlogin、FTP和SMTP等都使用TCP。
2.Ping命令的原理
Ping是类型为8的ICMP报文,ping程序在Windows、Linux以及unix下都可执行,该程序发送一份ICMP回显(Echo)请求给目标主机,并等待对方返回ICMP回显应答,如果源主机在一定时间内收到应答,则可以认为主机可达,如果不能ping到某台主机,则表明不能和这台主机建立连接。
Ping程序一般用来探测主机与主机之间是否可以通信,并可以根据返回结果估计丢包率和网络时延。在Windows下,对于每个发送报文,默认情况下发送4个回显数据包,每个数据包含32字节的数据,计算机安装TCP/IP协议后即可以使用。在Linux下,默认情况下源主机向目标主机不停发送数据包,直到用户终止。
ICMP协议通过IP协议发送,IP协议是一种无连接的、不可靠的数据包协议,因此Ping不通一个地址,并不一定表示这个IP地址存在或者不在网络上,因为对方主机可能做了限制,比如安装了防火墙,针对这种情况,可采用其他的方式进行探测。
实验环境
1.操作系统
- 操作机:Windows_7
- 目标机:Linux_Kali
- 操作机默认用户名:administrator 密码:123456
- 目标机默认用户名:root 密码:123456
2.实验工具
- Nmap
Nmap是一款非常流行的扫描软件,分为For windows和For UNIX两个版本。Nmap基本功能有三个,是探测一组主机是否在线;其次是扫描主机端口,嗅探所提供的网络服务;还可以推断主机所用的操作系统。Nmap可用于扫描仅有两个节点的LAN,直至500个节点以上的网络。Nmap 还允许用户定制扫描技巧。通常,一个简单的使用ICMP协议的ping操作可以满足一般需求;也可以深入探测UDP或者TCP端口,直至主机所使用的操作系统;还可以将所有探测结果记录到各种格式的日志中,供进一步分析操作。该软件提供图形界面和命令行两种模式,这里使用图形界面版本。
- SuperScan
Ping命令简单易用,但是只能够对单个主机进行扫描,不能扫描多个主机,达到发现网段内存活主机的目的,这里使用SuperScan软件实现这一效果。
SuperScan具有以下功能:
- 通过Ping来检验IP是否在线;
- IP和域名相互转换;
- 检验目标计算机提供的服务类别;
- 检验一定范围目标计算机的是否在线和端口情况;
- 工具自定义列表检验目标计算机是否在线和端口情况;
- 自定义要检验的端口,并可以保存为端口列表文件;
软件自带一个木马端口列表trojans.lst,通过这个列表我们可以检测目标计算机是否有木马;同时,我们也可以自己定义修改这个木马端口列表.
实验步骤
步骤1:Ping命令(Windows环境下)
1.1 首先打开控制台窗口。具体操作为点击左下角的开始按钮,找到并点击运行
在弹出窗口中输入cmd,然后回车或者点击“确定”按钮确认,之后就弹出了控制台窗口。
1.2 然后在光标位置输入ping -h来查看帮助,然后再分别尝试输入以下ping以及各种参数的组合,并分别理解各个命令的功能。
ping命令的基本用法:ping [-参数 参数的值] 目标ip或者域名
ping命令的常用参数:
-t:ping指定的主机,直到停止。Ctrl+Break查看统计信息,Ctrl+C停止;
-n count:要发送的回显请求数
ping命令的应用举例:
Ping 100.100.0.14 扫描本机地址
Ping –n 6 100.100.0.26 扫描6次
Ping –t 100.100.0.26 不停扫描
当Ping命令得不到结果的目标主机时,无法判定是否真的不存在,需要利用工具进一步判断。
步骤2:使用Nmap进行多种方式的探测
2.1 桌面上有Nmap的快捷方式,鼠标双击运行Nmap软件,然后在目标位置填写想要扫描的IP地址:100.100.0.26(目标机IP地址)。
2.2 打开配置–>新的配置或命令,选择需要的扫描方式。
2.3 除了在页面进行配置,还可以在命令行设置,直接输入命令对目标进行扫描。如果希望对某台主机进行完整全面的扫描,那么可以使用Nmap内置的-A选项。使用了改选项,Nmap对目标主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。
命令形式:nmap –T4 –A –v 目标地址
其中-A选项用于使用进攻性(Aggressive)方式扫描;-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;-v表示显示冗余(verbosity)信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态。
2.4 或者在命令提示符里输入命令进行扫描。首先在控制台中输入cd C:\Program Files (x86)\Nmap进入nmap的安装目录下,然后输入命令
2.5 Nmap同时也提供了扫描网段的功能,可以将多个目标主机地址用逗号隔开,或扫描相邻主机,例如,100.100.0.1/24(代表100.100.0.1到100.100.0.255之间的255个地址),100.100.0.1-254(代表以100.100.0开头的所有不以0和255结尾的地址),100.100.0.(所有100.100.0开头的主机)。这里我们将目标主机填写为100.100.0.,其他选项默认,然后点击扫描
2.6 Nmap提供网段内扫描到的存活主机的拓扑图,点击拓扑,可以查看拓扑图。
步骤3:使用SuperScan扫描网段内的存活主机
Superscan4.0只能在WindowsXP或者Windows2000上运行,对一些老版本的操作系统,必须使用superscan3.0版本。
本实验主要利用SuperScan对网段内主机进行扫描,确定是否在线。自定义要检验的端口,并保存为端口列表文件。
3.1 工具安装以及注意事项:
如图,我们找到相应目录之后,找到文件名为“经典端口扫描工具SuperScan3.0中文版.rar”的文件,然后右键选择“解压到当前文件夹”,这样工具就解压到superscan3.0文件夹中了。
然后进入解压出来的文件夹中,双击scanner.exe即可运行。
Superscan3的使用注意事项:
驱动的时候会有提示“port list file was not found”,这个没关系,点击“确定”以后出现superscan主界面。
3.2 读取端口列表的配置文件。点击右上角的“端口列表”按钮,再点击“读取”按钮,选择“scanner.lst”,这个是端口列表文件。
在软件目录下找到scanner.lst,右键打开,然后使用记事本方式查看:
3.3 进入SuperScan页面,左边IP栏设置要扫描的目的IP或IP段,中间“扫描类型”可以选择不同的扫描方式。
3.4 检测目标机是否在线和通过反应时间判断网络状况。
在起始IP中填写起始IP,在结束框内填入结束IP,在扫描类型中选择仅仅ping,最后点击开始进行扫描。
Superscan速度非常快,结果也很准确,一般没有必要改变反应时间设置。
3.5 检测目标机所有端口
如果检测的时候没有特定的目的,只是为了了解计算机的一些情况,可以选择对目标机的所有端口进行检测。但一般不推荐这种检测:
- 全部端口扫描会对目标机的正常运行造成一定影响,同时也会引起目标机的警觉;
- 扫描时间长;
- 浪费网络宽带资源,对网络正常运行造成影响。
在起始和结束IP地址的位置都输入100.100.0.26(目标机IP地址),在扫描类型中选择所有端口定义1到65535,然后点击“开始”进行扫描。
展开所有,可以看到扫描结果,目标机只开了22端口,为ssh服务。
结果解释:
第一行是目标机的IP和主机名;
第二行的小圆点是扫描目标机的活动端口和对该端口的解释;
第三行的方框是显示提供该服务的系统软件;
3.6扫描目标机的特定端口(自定义端口)
大多数时候我们不需要检测所有端口,只需要检测有限的几个端口就可以了,因为我们的目的只是为了得到目标机提供服务和使用的软件。大部分时候,我们只要检测80(WEB服务)、21(FTP服务)、23(Telnet服务)就可以了。
点击端口列表,出现以下界面:
本实验中,我们只需要添加21号,22号,23号,80号端口。在选择端口里双击选择需要扫描是端口,端口前面会有“√”标志。选择的时候注意左边的修改/新增/删除端口信息和定义右键帮助程序,这是关于端口的详细说明和所使用的程序。选择需要的端口之后,点击保存,将所选的端口作为端口列表。点击确认回到主列表。
选择扫描类型为:扫描所有在列表中选择的端口,点击开始,如图可以看到只开了tcp 端口,为ssh服务。
步骤4:使用Fping实现网段内的存活主机探测(Linux环境下Ping命令的应用)
Windows和Linux下的Ping命令都只能完成对一个主机存活性的探测,不适合用作扫描网段内的存活主机,Fping是一款用于UNIX的工具,现在也提供了Windows平台下的版本。
Fping是以并行的方式向列表中的所有IP地址发送ICMP报文回送请求,该工具的实现原理与Ping相同,无法探测到防火墙之后的主机。
4.1 打开目标机,点击左侧图标新建一个终端。
然后使用fping命令进行主机存活性探测,输入fping –a –g 100.100.0.1 100.100.0.255(目标机所在的网段)
步骤5:使用Nmap扫描
Linux版本的Nmap和Windows版本的Nmap基本相同,在探测主机存活性的命令上基本一致。
5.1 利用nmap进行逐级存活性探测,输入nmap -h 可以获取到nmap的使用帮助
5.2 扫描单个主机。命令格式为 nmap –sn * 。
如想要探测100.100.0.14主机的存活性,直接输入其IP地址,,命令为:
nmap –sn 100.100.0.14(操作机IP地址)
5.3 扫描某个网段内的存活主机。例100.100.0.1-100.100.0.122网段
输入:
nmap –sn 100.100.0.1-122
至此,实验完毕,关闭相关窗口,结束实验。