一、实验目的
培养学生综合运用端口扫描工具对目标进行侦察的能力,熟练掌握常见搜索工具的功能及使用技巧。
1.掌握NMAP工具网络扫描的常见使用方法,掌握NMAP工具常用命令,扫描本地局域网中存活主机、开放端口。
2.通过实验学习端口扫描的常用方法,利用相关工具检测服务器或指定IP段的端口开放情况。
3.掌握针对主机发现、端口扫描的有关防护方法原理。
二、实验环境
1、虚拟机VMware Workstation+Kali Linux
2、虚拟机+win7或win10或windows Server
三、实验原理
(一)端口基础
1、端口
在Internet上各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的IP地址来进行互联网络中的路由选择,从而顺利地将数据包传送给目标主机。但当目的主机运行多个程序时,应该把接收到的数据传给多个程序进程中的哪一个呢?端口机制的引入就是为了解决这个问题。
端口在网络技术中,端口有两层意思:一个是物理端口,即物理存在的端口,如集线器、路由器、交换机、ADSL Modem等用于连接其他设备的端口;另一个就是逻辑端口,用于区分服务的端口,一般用于TCP/IP中的端口,其范围是0~65535,,0为保留端口,一共允许有65535个端口。比如用于网页浏览服务的端口是80端口,用于FTP服务的是21端口。 这里我们所指的不是物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。
2、协议端口
根据提供服务类型的不同,端口可以分为TCP端口和UDP端口。
TCP:给目标主机发送信息之后,通过返回的应答确认信息是否到达;
UDP:给目标主机发送信息之后,不会去确认信息是否到达;
TCP协议和UDP协议是独立的,因此各自的端口号也互相独立。由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,即端口号。
3、端口类型
常用端口:范围0-1023,如22是ssh服务、23 Telnet服务、80 HTTP服务等;
注册端口:用于分配给用户进程或程序,范围1024-49151;
动态端口:一般不固定分配某种服务,范围49152-65535。
- 端口攻击
常见的端口攻击:文件共享服务端口、远程连接服务端口、web应用服务端口、数据库服务端口、邮件服务端口、特殊服务端口等。
(1)文件共享服务端口
(2)远程连接服务端口
- 其他端口
https://blog.csdn.net/Kaisa289/article/details/126263912?spm=1001.2101.3001.6650.13&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-13-126263912-blog-105526553.235%5Ev43%5Epc_blog_bottom_relevance_base5&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-13-126263912-blog-105526553.235%5Ev43%5Epc_blog_bottom_relevance_base5&utm_relevant_index=22
(二)NMAP基础
- NAMP简介
Nmap是Network Mapper缩写,Windows和linux下都可以使用,是用来探测计算机网络上的主机和服务的一种安全扫描器,是网络管理员必用的软件之一。
NMAP的主要功能包括端口扫描、主机发现、服务/版本识别、操作系统识别、网络路由跟踪、NMAP脚本引擎等。用来扫描网上电脑开放的网络连接端,确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统。Nmap发送特制的数据包到目标主机,然后对返回数据包进行分析。
- nmap常见命令及参数
nmap -sS -Pn -n -open -min-hostgroup 2 -min-parallelism 500 --host-timeout 60 -T4
大类 | 参数(区分大小写,/区分其他参数) | 说明 |
主机发现 | -sP(或-sn) | ping扫描,不扫描端口,如nmap -sP 192.168.0.1 |
-PS/-PA/-PU | 用端口扫描来发现主机(TCP SYN、TCP ACK、UDP),如nmap -PS 192.168.0.1,nmap -PA 192.168.0.1,nmap -PU 192.168.0.1 | |
-PE/-PP/-PM | ICMP 协议扫描,-PE是回显请求,-PP是时间戳,-PM是地址掩码,如nmap -PE 192.168.0.1,nmap -PP 192.168.0.1,nmap -PM 192.168.0.1 | |
--traceroute | 扫描并跟踪路由节点,如nmap --traceroute 192.168.0.1 | |
端口扫描 | -sS | TCP SYN半开连接扫描,如nmap -sS 192.168.0.1或nmap 192.168.0.1 |
-sT | TCP Connect()全连接扫描,如nmap -sT 192.168.0.1 | |
-sA | TCP ACK确认扫描,如nmap -sA 192.168.0.1 | |
-sW | TCP Window窗口扫描,如nmap -sW 192.168.0.1 | |
-sU | UDP扫描,如nmap -sU 192.168.0.1 | |
-sN/-sF/-sX | TCP秘密扫描(Null、FIN、Xmas),如nmap -sN 192.168.0.1,nmap -sF 192.168.0.1,nmap -sX 192.168.0.1 | |
-sO | IP协议扫描,如nmap -sO 192.168.0.1 |
大类 | 参数(区分大小写,/区分其他参数) | 说明 |
端口指定及扫描顺序 | 不指定端口号 | 默认情况下扫描1000个最有可能开放的TCP端口 |
-p | 指定端口扫描范围,默认扫描TCP端口,如nmap -sS -p 1-65535 192.168.0.1采用-sS参数扫描TCP1~65535端口,nmap -sU -p U:1-1000 192.168.0.1采用-sU参数扫描UDP 1~1000端口 | |
-r | 扫描连续端口,默认是随机扫描端口,如nmap -r 192.168.0.1 | |
-sV | 探测每一个端口的服务版本,描述更多的细节,如nmap -sV 192.168.0.1 | |
隐藏扫描 | -f | 碎片化扫描,发送8字节数据包,如nmap -f 192.168.0.1 |
-D RND:<n> | 随机伪造n个源IP地址扫描,如nmap -D RND:10 192.168.0.1,源IP地址有10个 | |
-DIP1,IP2… | 以指定的IP1、IP2…作为伪造的源IP地址扫描,如nmap -D 10.0.0.1 10.0.0.2 192.168.0.1 | |
--spoof-mac | 随机伪造源MAC地址扫描,如nmap --spoof-mac 0 192.168.0.1,0代表随机分配一个源MAC地址 | |
--data-length <n> | 填充payload有效载荷为随机数据,长度为n字节 如nmap --data-length 30 192.168.0.1,长度为30字节 | |
端口指定及扫描顺序 | 不指定端口号 | 默认情况下扫描1000个最有可能开放的TCP端口 |
-p | 指定端口扫描范围,默认扫描TCP端口,如nmap -sS -p 1-65535 192.168.0.1采用-sS参数扫描TCP1~65535端口,nmap -sU -p U:1-1000 192.168.0.1采用-sU参数扫描UDP 1~1000端口 | |
-r | 扫描连续端口,默认是随机扫描端口,如nmap -r 192.168.0.1 | |
-sV | 探测每一个端口的服务版本,描述更多的细节,如nmap -sV 192.168.0.1 | |
隐藏扫描 | -f | 碎片化扫描,发送8字节数据包,如nmap -f 192.168.0.1 |
-D RND:<n> | 随机伪造n个源IP地址扫描,如nmap -D RND:10 192.168.0.1,源IP地址有10个 | |
-DIP1,IP2… | 以指定的IP1、IP2…作为伪造的源IP地址扫描,如nmap -D 10.0.0.1 10.0.0.2 192.168.0.1 | |
--spoof-mac | 随机伪造源MAC地址扫描,如nmap --spoof-mac 0 192.168.0.1,0代表随机分配一个源MAC地址 | |
--data-length <n> | 填充payload有效载荷为随机数据,长度为n字节,如nmap --data-length 30 192.168.0.1,长度为30字节 |
四、实验步骤(操作结果要有截图)
任务一、使用在线网站端口扫描
使用在线网站http://coolaf.com/tool/port在线检测域名itellyou.cn或者IP的端口是否开放。截图
任务二、Nmap端口扫描的攻防
1、关闭Win7的防火墙,分别在kali和Win7(192.168.225.136)或win10(192.168.225.135)中查看IP地址。截图
2、Nmap主机发现
1)输入Nmap可以看到它的参数及用法,如图所示。截图
2)nmap ping 扫描
命令语法:nmap -sP <目标主机IP地址>
功能:进行ping扫描,显示对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测)。 截图
3)使用nmap -sP 192.168.225.0/24进行ping扫描。截图并说明扫描结果。
这是一个使用nmap进行的局域网扫描。扫描结果显示了192.168.127.0/24子网中的四台主机。其中三台主机显示了MAC地址,都是VMware虚拟机的。另外一台主机没有显示MAC地址。
4)使用nmap -sP 192.168.225.135进行ping扫描。截图
3、Nmap端口扫描
1)Nmap简单扫描
命令语法:Nmap 目标主机IP地址
功能:扫描对方的主机,哪些端口是开放的,及所使用的协议。截图
2)Nmap对扫描的结果详细描述输出。
命令语法:nmap -vv 目标主机IP地址
功能:-vv 参数设置对结果的详细输出。截图
3)nmap 自定义扫描
命令语法:nmap -p(端口范围) <目标主机IP地址>
功能:nmap 默认扫描目标1-10000范围内的端口号。可以通过参数-p 来设置将要扫描主机的端口号,端口大小不能超过65535。截图
4)nmap 指定端口扫描
命令语法:nmap -p(port1,port2,port3,...) <目标主机IP地址>
功能:有时不想对所有端口进行探测,只想对几个特殊的端口进行扫描,还可以利用参数p 进行指定端口的扫描。截图
5)nmap 操作系统类型的探测
命令语法:nmap –O(大写) <目标主机IP地址>
功能:nmap 通过目标开放的端口来探测主机所运行的操作系统类型。这是信息收集中很重要的一步,它可以帮助你找到特定操作系统上的含有漏洞的的服务。截图
6)nmap 万能开关
命令语法:nmap -A <目标主机IP地址>
功能:此选项设置包含了1-10000的端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测。 截图并描述
发现目标主机的IP地址为192.168.127.129,运行着Microsoft Windows 7 Home Basic 7601 Service Pack 1操作系统。该主机有多个开放的端口,包括135/tcp(Microsoft Windows RPC)、139/tcp(Microsoft Windows netbios-ssn)、以及445/tcp(Microsoft Windows文件共享服务)。此外,还有一系列的RPC端口(49152-49158/tcp)也是开放的。
4、利用Nmap进行端口扫描
(1)分别使用nmap -sS 192.168.225.136和nmap -sS -SV 192.168.225.136对win7进行扫描,并对比两种扫描结果的差异。截图并描述
(2)验证端口扫描的结果是否准确,在win7或win10中使用netstat -ano查看实际开放端口的状态。截图并说明结果。
任务三、端口扫描的防护
端口扫描的防护方法有很多,如Windows防火墙、改变网络应用程序的默认端口等,这里以windows防火墙为例。在windows系统中开启防火墙,并开启防火墙的日志记录功能。具体步骤如下:
- 开启Windows防火墙。截图
2、选择高级设置,打开高级安全Windows防火墙界面,在界面中点击Windows Defender防火墙属性,打开属性界面。截图
3、在属性界面,选择日志后面的自定义按钮,打开日志设置对话框,并对日志内容进行设置。截图
4、设置完成后,再次对靶机使用-sS -sV进行端口扫描。观察扫描结果,同时观察防火墙日志情况。截图(扫描结果、防火墙日志截图)并描述。
在进行端口扫描实验时,我使用了Nmap这一强大的网络扫描工具。通过Nmap,我可以轻松地发现目标主机上的开放端口以及对应的服务信息。这不仅让我对目标主机的网络状态有了更全面的了解,也让我更加熟悉了网络扫描的基本流程和技术。