Web安全:实验1-网络扫描实验
警示:实验报告如有雷同,雷同各方当次实验成绩均以0分计;在规定时间内未上交实验报告的,不得以其他方式补交,当次成绩按0分计;实验报告文件以PDF格式提交。
院系 |
数据科学与计算机学院 |
班级 |
15级4班 |
学号 |
15331145 |
姓名 |
李果 |
完成日期: 2017年 12 月 3 日 |
网络扫描实验
【实验目的】
2. 学会使用 Nmap 扫描工具。
【实验环境】
实验主机操作系统: WIN10 IP地址:192.168.199.203
目标机操作系统: WIN10 IP地址:192.168.199.180
网络环境:WLAN(两台主机连接同一台路由器) 。
【实验工具】
Nmap (Network Mapper,网络映射器) 是一款开放源代码的网络探测和安全审核的工具。其设计目标是快速地扫描大型网络,也可以扫描单个主机。Nmap以新颖的方式使用原始IP报文来发现网络上的主机及其提供的服务,包括其应用程序名称和版本,这些服务运行的操作系统包括版本信息,它们使用什么类型的报文过滤器/防火墙,以及一些其它功能。虽然Nmap通常用于安全审核,也可以利用来做一些日常管理维护的工作,比如查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。
【实验过程】(要有实验截图)
假设以下测试命令假设目标机IP是192.168.199.236
在实验过程中,可通过Wireshark捕获数据包,分析Nmap采用什么探测包。
1.主机发现:进行连通性监测,判断目标主机。
假设本地目标IP地址为192.168.199.180,首先确定测试机与目标机物理连接是连通的。
① 关闭目标机的防火墙,分别命令行窗口用Windows命令
Ping 192.168.199.180
和Nmap命令
nmap -sP 192.168.199.180
1
进行测试,记录测试情况。简要说明测试差别。
ping就是对一个网址发送测试数据包,看对方网址是否有响应并统计响应时间。
Nmap -sP 仅用于主机发现通常被称为地毯式ping,它比ping广播地址更可靠,因为许多主机对广播请求不响应。
② 开启目标机的防火墙,重复①,结果有什么不同?请说明原因。
使用ping命令时不能连通了。
使用-sP依然扫描到了目标主机,
-sP选项在默认情况下,发送一个ICMP回声请求和一个TCP报文到80端口。如果非特权用户执行,就发送一个SYN报文 (用connect()系统调用)到目标机的80端口。当特权用户扫描局域网上的目标机时,会发送ARP请求(-PR),,除非使用了--send-ip选项。 -sP选项可以和除-P0)之外的任何发现探测类型-P* 选项结合使用以达到更大的灵活性。一旦使用了任何探测类型和端口选项,默认的探测(ACK和回应请求)就被覆盖了。当然,当源地址与目标地址之间的防范措施严密(譬如防火墙严密防守捕获或者丢弃探测包或响应包)时,主机可能不会被发现。
③ 测试结果不连通,但实际上是物理连通的,什么原因?
因为防火墙设置禁止其他网络接入,所以防火墙会捕捉并且丢弃相应的探测包或者响应包。
2.对目标主机进行TCP端口扫描
(需要关闭目标主机防火墙否则无法获取有效端口信息)
① 使用常规扫描方式
Nmap-sT 192.168.199.180
②使用SYN半扫描方式
Nmap-sS 192.168.199.180
③ 比较上述两次扫描结果差异、扫描所花费的时间。并进行解释。
所得扫描结果相同,但是常规扫描方式(48.87s)明显比SYN半开扫描(6.28s)花费的时间更久。
主要原因如下:
以下摘自nmap官网命令解释:(https://nmap.org/man/zh/man-port-scanning-techniques.html)
-sS (TCPSYN扫描)
SYN扫描作为默认的也是最受欢迎的扫描选项,是有充分理由的。它执行得很快,在一个没有入侵防火墙的快速网络上,每秒钟可以扫描数千个端口。 SYN扫描相对来说不张扬,不易被注意到,因为它从来不完成TCP连接。它也不像Fin/Null/Xmas,Maimon和Idle扫描依赖于特定平台,而可以应对任何兼容的 TCP协议栈。它还可以明确可靠地区分open(开放的),closed(关闭的),和filtered(被过滤的)状态
它常常被称为半开放扫描,因为它不打开一个完全的TCP连接。它发送一个SYN报文,就像您真的要打开一个连接,然后等待响应。 SYN/ACK表示端口在监听(开放),而RST (复位)表示没有监听者。如果数次重发后仍没响应,该端口就被标记为被过滤。如果收到ICMP不可到达错误(类型3,代码1,2,3,9,10,或者13),该端口也被标记为被过滤。
-sT (TCPconnect()扫描)
当SYN扫描不能用时,CPConnect()扫描就是默认的TCP扫描。当用户没有权限发送原始报文或者扫描IPv6网络时,就是这种情况。 Instead of writing raw packets as most otherscan types do,Nmap通过创建connect() 系统调用要求操作系统和目标机以及端口建立连接,而不像其它扫描类型直接发送原始报文。这是和Web浏览器,P2P客户端以及大多数其它网络应用程序用以建立连接一样的高层系统调用。它是叫做BerkeleySockets API编程接口的一部分。Nmap用该API获得每个连接尝试的状态信息,而不是读取响应的原始报文。
当SYN扫描可用时,它通常是更好的选择。因为Nmap对高层的 connect()调用比对原始报文控制更少,所以前者扫描效率较低。该系统调用完全连接到开放的目标端口而不是像SYN扫描进行半开放的复位。这不仅花更长时间,需要更多报文得到同样信息,目标机也更可能记录下连接。IDS(入侵检测系统)可以捕获两者,但大部分机器没有这样的警报系统。当Nmap连接,然后不发送数据又关闭连接,许多普通UNIX系统上的服务会在syslog留下记录,有时候是一条加密的错误消息。此时,有些真正可怜的服务会崩溃,虽然这不常发生。如果管理员在日志里看到来自同一系统的一堆连接尝试,她应该知道她的系统被扫描了。
【实验体会】
通过这次实验学习了如何使用扫描软件nmap,能够使用一些简单的扫描命令和辅助命令来获取目标主机的端口信息和系统的一些信息,比如操作系统类型,支持哪些ip协议,有哪些端口开启,并且对获取的信息做进一步的分析。
由于扫描软件nmap可以扫描端口信息,分析各类主机的信息,判别出他们的功能,因此一些不法分子就利用扫描结果寻找找目标主机的安全漏洞。当没被过滤的端口被扫描到时,可能被黑客利用作为攻击的入口,因此我们在平时计算机的使用过程中,要注意禁止一些端口的开放,开启安装防火墙是必要的安全措施。另外也不能以为只是开启了防火墙就能抵挡一些攻击者,要注意在不影响使用的情况下最大化防火墙的防护能力,不然在一些手段高明的攻击者面前没有。使用计算机时要养成良好的习惯,不要轻易的将一些信息共享在公共网路上,这样会增加被黑客侵入的可能性。