网络扫描 实验

本次记录曾做过的网络安全实验:phase 2

  • 实验目的

1理解网络扫描作用。

2网络扫描包括主机扫描、端口扫描、操作系统识别漏洞扫描,理解它们的工作机制。

3掌握利用扫描器进行主动探测,并搜集目标信息

二、实验环境

  Windows 10 操作系统 Nmap-7.92 ; 虚拟机VMware Windows xp 操作系统 X-scan

三、实验原理

TCP Connect扫描:通过调用socket函数connect()链接到目标计算机上,完成一次完整的三次握手过程。如果端口处于侦听状态,那么connect()就能成功返回。

TCP SYN 扫描:扫描器向目标主机端口发送SYN包。如果应答是RST包,那么说明端口是关闭的;如果应答中包含SYN和ACK包,说明目标端口处于监听状态,再传送一个RST包给目标机从而停止建立连接。

TCP FIN 扫描:扫描主机向目标主机发送FIN数据包来探听端口过程。

X-scan:采用多线程方式对指定IP地址段(或单机)进行安全漏洞检测。

四、实验内容

1.使用至少10条NMAP命令进行主机扫描、端口扫描、操作系统识别漏洞扫描,并理解扫描原理。

2.使用一种扫描软件(如X-Scan),对一个地址段进行扫描,并形成扫描报告。

五、实验步骤

针对实验内容1的步骤:

1.使用Nmap进行主机扫描

(1)用ipconfig来查看所需ip地址,其中使用WLAN 2的ipv4地址

     

       (2)Ping扫描:扫描192.168.2.1网络

从中我们可以看出共有6个主机存活。

2.用指定的dns服务器来进行解析scanme.nmap.org观察主机存活

3.使用Nmap进行端口扫描

以scanme.nmap.org为目标进行端口信息探测,扫描端口运行状态和端口运行服务

       4.使用TCP connect扫描

5.使用TCP SYN扫描

6.使用TCP FIN扫描

7.操作系统识别

8.漏洞扫描(扫描永恒之蓝)

9.心脏滴血病毒

10.检测MS08-067

针对实验内容2的步骤:

1.对X-scan进行扫描选项设置

(1)在“指定IP范围”输入独立IP地址域名

(2)在“全局设置”中设置扫描模块

        (3)在“全局设置”中设置“并发扫描”,默认最大主机数10,最大并发线数100

(4)在“全局设置”中设置“扫描报告”

(5)“全局设置”下的“其他设置”

(6)“插件设置”下的“端口相关设置”选项

2.进行扫描,生成报告

生成报告

六、实验结果分析及心得体会

实验结果分析:本次实验使用至少10条NMAP命令进行主机扫描、端口扫描、操作系统识别漏洞扫描使用描软件X-Scan对一个地址段进行扫描,并形成扫描报告。

其中NMAP主机扫描分别有ping扫描,dns服务器解析开放端口检查主机存活;

端口扫描分别有TCP connect扫描,TCP SYN扫描,TCP FIN扫描;操作系统识别为远程主机OS指纹识别;漏洞扫描分别扫描了永恒之蓝病毒,心脏滴血,MS08-067;共10条NMAP命令。X-Scan扫描是在虚拟机里进行,设定好相关参数后便可进行扫描且自动生成报告。

心得体会:本次实验我了解到了网络扫描中两种常用的工具:NMAP;X-Scan。其中NMAP具有探测一组主机是否在线的主机扫描技术;扫描主机端口,嗅探所提供的网络服务的端口扫描技术;还可以推断主机所用的操作系统;是一款功能十分强大的扫描工具,而X-Scan则可采用多线程方式对指定IP地址段进行安全漏洞检测,也不失为一个非常得力的网络安全管理工具。

  • 6
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
端口扫描是指通过对目标计算机进行端口连接测试来探测目标计算机上开放的网络服务。在网络程序设计中,我们可以通过编写端口扫描程序来实现对目标计算机进行端口扫描端口扫描程序的实现方法有很多种,其中比较常用的有基于TCP协议的全连接扫描和基于UDP协议的半开放扫描。下面我们以基于TCP协议的全连接扫描为例,介绍一下端口扫描程序的设计与实现。 1. 设计思路 基于TCP协议的全连接扫描是指通过对目标计算机进行TCP连接测试来判断目标计算机上是否开放了指定端口。具体实现步骤如下: - 构造一个TCP连接请求报文(SYN报文); - 将该报文发送给目标计算机的指定端口; - 如果目标计算机的该端口开放,则目标计算机会向源计算机回送一个TCP连接请求报文(SYN+ACK报文); - 源计算机再向目标计算机发送一个TCP连接确认报文(ACK报文),建立起TCP连接; - 如果目标计算机的该端口未开放,则目标计算机不会回送任何报文,源计算机也无法建立起TCP连接。 基于上述原理,我们可以编写一个简单的端口扫描程序。具体实现步骤如下: - 获取目标计算机的IP地址和需要扫描的端口范围; - 构造一个TCP连接请求报文(SYN报文); - 循环遍历需要扫描的端口,将该报文发送给目标计算机的每个端口; - 如果目标计算机的该端口开放,则保存该端口号; - 输出所有开放的端口号。 2. 代码实现 下面是一个基于Python语言的端口扫描程序示例: ```python import socket def scan_port(ip, port): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) s.connect((ip, port)) s.close() return True except: return False def scan(ip, start_port, end_port): open_ports = [] for port in range(start_port, end_port+1): if scan_port(ip, port): print("[+] Port %d is open" % port) open_ports.append(port) else: print("[-] Port %d is closed" % port) print("Scan finished!") if len(open_ports) > 0: print("[*] %d open ports found: " % len(open_ports)) for port in open_ports: print("[+] ", port) else: print("[-] No open ports found.") if __name__ == '__main__': ip = input("Enter the target IP address: ") start_port = int(input("Enter the start port number: ")) end_port = int(input("Enter the end port number: ")) scan(ip, start_port, end_port) ``` 运行程序后,会提示用户输入目标计算机的IP地址和需要扫描的端口范围。程序会循环遍历需要扫描的端口,通过调用scan_port函数来判断目标计算机上是否开放了该端口。如果开放,则输出该端口号并保存到open_ports列表中。最终输出所有开放的端口号。 需要注意的是,由于网络上存在大量的恶意扫描和攻击行为,因此在进行端口扫描时应该谨慎操作,遵守网络安全规范,不得进行未经授权的端口扫描行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值