端口扫描实验报告

合集下载

端口扫描实验实验报告范文nmap端口扫描工具

端口扫描实验实验报告范文nmap端口扫描工具

端口扫描实验实验报告范文nmap端口扫描工具网络攻防对抗实验报告实验名称:端口扫描实验(实验三)指导教师:专业班级:姓名:学号:_____电子邮件:___实验地点:实验日期:实验成绩:____________________一、实验目的通过练习使用网络端口扫描器,了解目标主机开放的端口和服务程序,从而获得系统的有用信息,发现网络系统的安全漏洞。

在实验中,我们将在Window操作系统下使用端口扫描工具某can,Nmap和流光Flu某ay5.0进行网络端口综合扫描实验,并给出安全性评估报告,加深对各种网络和系统漏洞的理解。

同时,通过系统漏洞的入侵练习增强网络安全防护意识。

二、实验原理TCP/IP协议在网络层是无连接的,而“端口”,就已经到了传输层。

端口便是计算机与外部通信的途径。

一个端口就是一个潜在的通信通道,也就是一个入侵通道。

对目标计算机进行端口扫描,能得到许多有用的信息。

进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。

在手工进行扫描时,需要熟悉各种命令,对命令执行后的输析出进行分,效率较低。

用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。

通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。

扫描工具根据作用的环境不同可分为:网络漏洞扫描工具和主机漏洞扫描工具。

前者指通过网络检测远程目标网络和主机系统所存在漏洞的扫描工具。

后者指在本机运行的检测本地系统安全漏洞的扫描工具。

三、实验内容和步骤某can的应用1.某can的使用某-canv3.3采用多线程方式对指定IP地址段进行扫描,扫描内容包括:SNMP信息,CGI漏洞,IIS漏洞,RPC漏洞,SSL漏洞,SQL-SERVER、SMTP-SERVER、弱口令用户等。

扫描结果保存在/log/目录中。

其主界面为下图所示。

2.开始扫描(1)配置扫描参数,先点击扫描参数,在下面红框内输入你要扫描主机的ip地址(或是一个范围),本说明中我们设置为靶机服务器的IP地址,45(2)选择需要扫描的项目,点击扫描模块可以选择扫描的项目(3)开始扫描,该扫描过程会比较长,请大家耐心等待,并思考各种漏洞的含义。

实验五 端口扫描器实验报告(付代码)

实验五 端口扫描器实验报告(付代码)

实验5:端口扫描器的设计与实现姓名:学号:专业年级:(一)实验目的和内容:目的:加深对TCP的理解,学习端口扫描技术和原理,熟悉socket编程。

内容:实现一个扫描器,使用TCP connect进行端口扫描,并对扫描结果进行记录。

(二)课程设计要求:Windows或Linux环境下,程序在单机上运行;使用端口扫描器对一台主机进行扫描,并显示出结果;编程语言不限;提供友好的用户界面。

(三)端口扫描技术:“端口”是专门为计算机通信而设计的,它不是硬件,不同于计算机中的“插槽”,可以说是个“软插槽”。

“端口”是由计算机的通信协议TCP/IP协议定义的。

其中规定,用IP地址和端口作为套接字,它代表TCP连接的一个连接端,一般称为Socket。

具体来说,就是用[IP:端口]来定位一台主机中的进程。

计算机就像一座大楼,这个大楼有好多入口(端口),进到不同的入口中就可以找到不同的公司(进程)。

端口与进程是一一对应的,入侵者通过扫描端口,便可以判断出目标计算机有哪些通信进程正在等待连接。

(四)扫描端口的目的:端口扫描是入侵者搜集信息的几种常用手法之一,也正是这一过程最容易使入侵者暴露自己的身份和意图。

•判断目标主机上开放了哪些服务;•判断目标主机的操作系统。

如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能够使用相应的手段实现入侵。

(五)端口的分类:端口是一个16 bit的地址,用端口号进行标识不同的作用。

端口一般分为两类。

•熟知端口号(公认端口号):由因特网指派名字和号码公司ICANN负责分配给一些常用的应用层程序固定使用的熟知端口,其数值一般为0~1023。

•一般端口号:用来随时分配给请求通信的客户进程。

(六)扫描原理的基础知识:TCP/IP模型四层结构TCP与UDP协议TCP报文结构TCP连接和释放过程(七)TCP/IP模型四层结构:(八)TCP与UDP协议:Internet的网络通信大多是建立在这两个协议之上的,各个主机遵循着TCP/IP协议封装数据包进行通信。

端口扫描报告

端口扫描报告

杭州电子科技大学软件学院网络工程试验报告端口扫描报告09109146王子龙1.端口及端口扫描技术简介 (2)2.对现有端口扫描工具程序的理解 (2)主界面 (3)3.核心代码 (6)4.个人总结 (13)1.端口及端口扫描技术简介根据提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。

计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。

对应这两种协议的服务提供的端口,也就分为TCP 端口和UDP端口。

一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。

主机不只是靠IP地址来区分网络服务,因为IP 地址与网络服务的关系是一对多的关系。

实际上是通过“IP地址+端口号”来区分不同的服务的。

一个端口就是一个潜在的通信通道,也就是一个入侵通道。

对目标计算机进行端口扫描,能得到许多有用的信息。

进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。

在手工进行扫描时,需要熟悉各种命令。

对命令执行后的输出进行分析。

用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。

通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。

2. 对现有端口扫描工具程序的理解该程序是有C++编写的。

C++是一种使用非常广泛的计算机编程语言。

C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。

它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。

该程序能够扫描主机IP的某一个端口,或者是扫描该主机IP某一范围内的端口。

并且提供多次扫描功能。

如果要扫描的端口很多,在扫描过程中可以暂停扫描。

扫描结果在界面的下方显示。

主要显示内容有IP地址、端口号、端口状态、连接次数及备注。

实验总结报告

实验总结报告

实验总结报告实验总结报告「篇一」一、实验目的通过练习使用网络端口扫描器,可以了解目标主机开放的端口和服务程序,从而获取系统的有用信息,发现网络系统的安全漏洞。

在实验中,我们将在Windows 操作系统下使用Superscan进行网络端口扫描实验,通过端口扫描实验,可以增强学生在网络安全方面的防护意识。

利用综合扫描软件“流光”扫描系统的漏洞并给出安全性评估报告。

二、实验原理(一).端口扫描的原理一个开放的网络端口就是一条与计算机进行通信的信道,对网络端口的扫描可以得到目标计算机开放的服务程序、运行的系统版本信息,从而为下一步的入侵做好准备。

对网络端口的扫描可以通过执行手工命令实现,但效率较低;也可以通过扫描工具实现,效率较高。

扫描工具是对目标主机的安全性弱点进行扫描检测的软件。

它一般具有数据分析功能,通过对端口的扫描分析,可以发现目标主机开放的端口和所提供的服务以及相应服务软件版本和这些服务及软件的安全漏洞,从而能及时了解目标主机存在的安全隐患。

1.端口的基础知识端口是TCP协议中所定义的,TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。

TCP/UDP的端口号在0~65535范围之内,其中1024以下的端口保留给常用的网络服务。

例如,21端口为FTP服务,23端口为TELNET服务,25端口为SMTP服务,80端口为HTTP服务,110端口为POP3服务等。

2.扫描的原理扫描的方式有多种,为了理解扫描原理,需要对TCP协议简要介绍一下。

一个TCP头的数据包格式如图2-1所示。

它包括6个标志位,其中:图2-1 TCP数据包格式扫描往往是入侵的前奏,所以如何有效的屏蔽计算机的端口,保护自身计算机的安全,成为计算机管理人员首要考虑的问题。

为了防止对计算机网络端口的扫描,我们可以采用端口扫描监测工具来监测对端口的扫描,防止端口信息外露。

常用的端口扫描监测工具包括ProtectX、PortSentry等。

网络端口扫描实验报告

网络端口扫描实验报告

一、实验目的1. 理解网络端口扫描的基本原理和作用。

2. 掌握常用的网络端口扫描工具,如Xscan、Nmap和流光等。

3. 学习如何进行网络端口扫描,并对扫描结果进行分析。

4. 了解网络端口扫描在网络安全中的应用。

二、实验环境1. 操作系统:Windows 102. 网络端口扫描工具:Xscan、Nmap、流光3. 实验网络:实验室内部局域网三、实验步骤1. 安装网络端口扫描工具(1)下载并安装Xscan、Nmap和流光等网络端口扫描工具。

(2)确保实验网络连接正常,打开扫描工具。

2. 使用Xscan进行端口扫描(1)在Xscan中输入目标IP地址或域名。

(2)选择扫描方式,如全端口扫描、快速扫描等。

(3)点击“开始扫描”按钮,等待扫描完成。

(4)查看扫描结果,了解目标主机开放的端口和服务。

3. 使用Nmap进行端口扫描(1)在Nmap中输入目标IP地址或域名。

(2)选择扫描选项,如-sT(全端口扫描)、-sS(半开放扫描)等。

(3)运行命令:nmap -sT 目标IP地址或域名。

(4)查看扫描结果,了解目标主机开放的端口和服务。

4. 使用流光进行端口扫描(1)在流光中输入目标IP地址或域名。

(2)选择扫描模式,如快速扫描、全端口扫描等。

(3)点击“开始扫描”按钮,等待扫描完成。

(4)查看扫描结果,了解目标主机开放的端口和服务。

5. 分析扫描结果(1)对比三种扫描工具的扫描结果,了解不同扫描工具的特点。

(2)分析目标主机开放的端口和服务,了解其可能存在的安全风险。

四、实验结果与分析1. Xscan扫描结果通过Xscan扫描,发现目标主机开放了80(HTTP)、21(FTP)、22(SSH)等端口。

2. Nmap扫描结果通过Nmap扫描,发现目标主机开放了80(HTTP)、21(FTP)、22(SSH)等端口,并获取了更详细的信息,如操作系统类型、服务版本等。

3. 流光扫描结果通过流光扫描,发现目标主机开放了80(HTTP)、21(FTP)、22(SSH)等端口,并提供了端口对应的程序信息。

实验二 网络端口扫描

实验二 网络端口扫描

实验二网络端口扫描一、实验目的通过练习使用网络端口扫描器,了解目标主机开放的端口和服务程序,从而获得系统有用的信息,发现网络系统的安全漏洞。

本实验将在Windows操作系统下使用Superscan工具进行网络端口扫描实验,在Linux操作系统下将使用综合性扫描工具Nessus进行扫描练习(暂不进行)。

通过端口扫描实验,可以增强学生在网络安全方面的防护意识。

二、实验原理在Internet安全领域,扫描器是最有效的破解工具之一,扫描器是一种自动检测远程或本地主机安全性弱点的程序。

通过使用扫描器,可以发现远程服务器是否存活、它对外开放的各种TCP端口的分配及提供的服务、它所使用的软件版本(如OS和其它Software的版本)以及所存在可能被利用的系统漏洞。

根据这些信息,可以让使用它的用户了解到远程主机所存在的安全问题。

1、扫描的类型(1)地址扫描地址扫描是最简单、最常见的一种扫描方式。

可以通过Ping来判断某一主机是否在线。

也可以通过一些工具来获得某一网络中所有在线主机的地址。

但由于现在很多的路由器与防火墙对ICMP请求进行拦截,因此这种方式也不一定很可靠。

(2)端口扫描互联网上通信的双方不仅需要知道对方的地址,还需要知道通信程序的端口号。

目前使用的IPv4协议支持16位的端号,端口号可使用的范围为0~65535,其中0~1023为熟知端口,被指定给特定的服务使用,由IANA(Internet Assigned Numbers Authority,互联网数字分配机构)管理;1024~49151为注册端口,这些端口由IANA记录并追踪;49152~65535端口叫做动态端口或专门端口,提供给专用应用程序。

在进行入侵攻击之前,首先要了解目标系统的是什么OS,是否有保护措施,运行什么服务和服务的版本,存在漏洞等,而要判断服务的方法就通过端口扫描,这是因为常用的服务是使用标准的端口,因此只要知道了端口号,就能知道目标主机上运行着什么服务,然后才能针对这些服务进行攻击。

portscan实验报告

portscan实验报告
return; } if ( LOBYTE( wsaData.wVersion ) != minorVer || HIBYTE( wsaData.wVersion ) != majorVer ) {
::WSACleanup(); return; } }
~CInitSock() {
::WSACleanup(); } };
实验环境:windows,C语言
实验内容:用C语言编写一个在linux下扫描局域网内主机的程序。要求可以显示局域
网内的主机名列表,IP地址列表,并可以显示哪些主机开放了哪些端口。
实验代码:
////////////////////////////////////////////////////////// //PortScan.cpp
//获得主机信息 void GetLocalDate( void );
//线程函数 DWORD WINAPI psProc(
LPVOID lpParameter );
// thread data
////////////////////////////////////////////////////////// //全局变量
};
//端口开放数量 int g_nOpenPorts;
////////////////////////////////////////////////////////// //类
//载入和释放Winsock2库的类 class CInitSock { public:
CInitSock( BYTE minorVer = 2, BYTE majorVer = 2) {
这种不能算是新方法,只是其它技术的变化。它并不是直接发送 TCP 探测数据包,是 将数据包分成两个较小的 IP 段。这样就将一个 TCP 头分成好几个数据包,从而过滤器就很 难探测到。但必须小心。一些程序在处理这些小数据包时会有些麻烦。

端口实验报告

端口实验报告

一、实验目的1. 了解端口扫描的基本概念和原理。

2. 掌握常用端口扫描工具的使用方法。

3. 学会分析端口扫描结果,识别潜在的安全风险。

二、实验环境1. 实验主机:Windows 10操作系统2. 实验工具:Nmap、Xscan、Nessus等端口扫描工具3. 实验对象:互联网上的目标主机三、实验内容1. 端口扫描概述2. 使用Nmap进行端口扫描3. 使用Xscan进行端口扫描4. 使用Nessus进行端口扫描5. 分析端口扫描结果四、实验步骤1. 端口扫描概述端口扫描是指通过网络发送特定数据包,检测目标主机上开放的服务端口的过程。

通过端口扫描,我们可以了解目标主机上运行的服务,从而评估其安全风险。

2. 使用Nmap进行端口扫描(1)安装Nmap:从官方网站下载Nmap安装包,按照提示进行安装。

(2)运行Nmap:在命令行中输入“nmap 目标IP”进行扫描。

(3)查看扫描结果:Nmap会生成一个文本文件,其中包含了扫描结果。

3. 使用Xscan进行端口扫描(1)安装Xscan:从官方网站下载Xscan安装包,按照提示进行安装。

(2)运行Xscan:在Xscan界面输入目标IP,点击“开始扫描”按钮。

(3)查看扫描结果:Xscan会生成一个HTML文件,其中包含了扫描结果。

4. 使用Nessus进行端口扫描(1)安装Nessus:从Tenable官方网站下载Nessus安装包,按照提示进行安装。

(2)运行Nessus:在Nessus界面输入目标IP,选择扫描模板,点击“开始扫描”按钮。

(3)查看扫描结果:Nessus会生成一个报告,其中包含了扫描结果。

5. 分析端口扫描结果(1)识别开放端口:根据扫描结果,找出目标主机上开放的端口。

(2)分析服务类型:根据开放端口,确定目标主机上运行的服务类型。

(3)评估安全风险:根据服务类型,评估目标主机的安全风险。

五、实验结果与分析1. 使用Nmap扫描目标主机,发现其开放了80、443、22、21等端口。

《网络安全》端口扫描与防护实验报告

《网络安全》端口扫描与防护实验报告

课程实验报告课程名称:网络安全技术实验项目名称:端口扫描专业班级:姓名:学号:指导教师:完成时间:2011 年9 月9 日计算机科学与工程系实验题目:端口扫描实验内容:(1)Nmap软件的使用。

(2)X-scan软件的使用。

(3)Protectx软件的测试。

实验结果:1、Nmap软件的使用。

实验中,我使用的是GUI的Zenamp。

如图1所示,它提供了一个下拉列表框,其中列出了常用的扫描方式。

图1 Zenamp常用扫描方式输入要扫描主机的IP地址,选择扫描方式,则自动生成扫描命令。

点击扫描按钮,则开始以选定的扫描方式扫描指定的主机。

图2为一个扫描实例。

图2 扫描结果2、X-scan软件的使用。

X-scan集成了一些常用的工具,比如物理地址查询、Trace route和Ping等,如图3所示。

图3 X-Scan集成小工具X-Scan功能很强大,可以对开放服务、漏洞以及弱口令进行扫描检测,通过采用并发扫描使得扫描速度异常的快,并且提供了多种扫描结果报告形式。

图4为其扫描参数的设置。

图4 X-Scan扫描参数设置使用X-Scan扫描一主机,结果如图5、6所示。

图5 X-Scan普通信息图6 X-Scan漏洞信息3、Protectx软件的使用。

ProtectX是一款用于保护计算机,防止被恶意扫描的软件。

如图7所示,它可以提供端口、木马等多种防护,当主机被恶意扫描的时候,ProtectX将会发出警告信息。

图7 ProtectX设置选项ProtectX也提供了一些Ping、Trace route等的实用小工具,如图8所示。

图8 ProtectX使用小工具实验总结:实验内容全部完成,通过此次实验,我学习到了漏洞扫描、端口扫描等的一些基本知识,并学会了使用一些常用的扫描工具及防护工具。

实验是在虚拟机上的两台主机上完成的,在搭建实验环境的过程中,我也学习了一些相关的知识。

实验一端口扫描

实验一端口扫描

实验一网络端口扫描一、实验目的通过练习使用网络端口扫描器,了解目标主机开放的端口和服务程序,从而获得系统有用的信息,发现网络系统的安全漏洞。

本实验将在Windows操作系统下使用Superscan工具进行网络端口扫描实验,通过端口扫描实验,可以增强学生在网络安全方面的防护意识。

二、实验原理在Internet安全领域,扫描器是最有效的破解工具之一,扫描器是一种自动检测远程或本地主机安全性弱点的程序。

通过使用扫描器,可以发现远程服务器是否存活、它对外开放的各种TCP端口的分配及提供的服务、它所使用的软件版本(如OS和其它Software的版本)以及所存在可能被利用的系统漏洞。

根据这些信息,可以让使用它的用户了解到远程主机所存在的安全问题。

1、扫描的类型(1)地址扫描地址扫描是最简单、最常见的一种扫描方式。

可以通过Ping来判断某一主机是否在线。

也可以通过一些工具来获得某一网络中所有在线主机的地址。

但由于现在很多的路由器与防火墙对ICMP请求进行拦截,因此这种方式也不一定很可靠。

(2)端口扫描互联网上通信的双方不仅需要知道对方的地址,还需要知道通信程序的端口号。

目前使用的IPv4协议支持16位的端号,端口号可使用的范围为0~65535,其中0~1023为熟知端口,被指定给特定的服务使用,由IANA(Internet Assigned Numbers Authority,互联网数字分配机构)管理;1024~49151为注册端口,这些端口由IANA 记录并追踪;49152~65535端口叫做动态端口或专门端口,提供给专用应用程序。

在进行入侵攻击之前,首先要了解目标系统的是什么OS,是否有保护措施,运行什么服务和服务的版本,存在漏洞等,而要判断服务的方法就通过端口扫描,这是因为常用的服务是使用标准的端口,因此只要知道了端口号,就能知道目标主机上运行着什么服务,然后才能针对这些服务进行攻击。

如对于开着23端口的目标主机,可以利用一些口令攻击工具对Telnet服务进行口令的暴力破解。

物联网安全实验报告Nmap端口扫描某一网段

物联网安全实验报告Nmap端口扫描某一网段

实验报告Experimentation Report of Taiyuan Normal University系部计算机系年级课程物联网安全技术姓名学号日期项目实验二 Nmap端口扫描某一网段一、实验目的熟悉Nmap端口扫描软件的历史和功能,熟练掌握Nmap扫描命令的使用,在Window 10系统下运用Nmap工具软件依次完成以下实验任务:二、实验仪器硬件资源:笔记本电脑;软件资源:win10系统,Nmap三、实验过程1.下载并安装Nmap。

下载地址:https:///doenload.html2.扫描单个单个目标。

进入到Nmap的安装目录中,找到“Zenmap.exe”,并双击打开。

3.新建扫描窗口,然后在目标文本框中输入扫描目标机IP:169.254.93.109,如图4.在配置下拉菜单中选择“Intense scan,no ping”,如图5.在配置菜单中选择“新的配置或命令”,输入文件名,如图6.在“扫描”选项卡中勾选“操作系统检测”和“版本检测”,如图7.切换到ping选项卡,确认勾选了“扫描之前不ping远程主机”,并点击保存更改,如图8.返回到Zenmap主页面,点击扫描按钮开始扫描,结果如图。

可以看出目标主机为:169.254.93.109,开启的端口有:135、139、445、1688、53579.扫描结束后分别打开“端口/主机”、“拓扑”、“主机明细”查看结果。

如图实验心得装Zemap软件的过程很顺利,但是使用Zamap过程中,在输入IP后,提示这样的错误经过查资料发现是文件路径名称不合法导致(有中文或者有空格)之后改路径重新安装,解决了这个问题。

Zemap可以正常使用。

使用过程中,不懂语法格式,无法进行正常扫描,看了教程之后顺利进行了实验。

端口扫描与安全审计实验报告

端口扫描与安全审计实验报告
三、主要仪器设备
实验设备:HP笔记本电脑;实验环境:Windows操作系统、Ethereal网络分组捕获与协议分析工具软件及冲击波蠕虫病毒捕获文件Win2000-blaster.cap。
四、实验结果与分析
1)感染主机每次随机生成多少个目标IP地址?
根据实验结果的小组分类发现:一共生成20个目标IP地址
nmap-os-fingerprints文件包含了1500多个已知操作系统的指纹信息。
-O (操作系统检测)、-A(同时启用操作系统和服务版本检测)
(5)输出格式参数
Nmap具有交互、标准、XML等5种不同输出格式,默认为交 Nhomakorabea式输出。
-v (详细输出)
Nmap支持多种目标地址规范,包括单个目标IP地址、主机名称和网络地址。例如:
(12)未指定扫描类型,默认扫描类型为TCP SYN同步扫描。
(1)主机发现参数(也称ping扫描,但与ping命令发送ICMP不同)
-sL (列表扫描)、-sP (Ping扫描)、-P0 (无ping)、-PS [portlist] (TCP SYN Ping)、-PA [portlist] (TCP ACK Ping)、-PU [portlist] (UDP Ping)、-PR (ARP Ping)等。
(4)nmap -v10.0.0-255.1-254,扫描10.0.0.1至10.0.255.254之间的所有IP地址;
(5)nmap -v0-255.0-255.13.37,扫描Internet所有以13.37结束的IP地址;
(6)nmap -v -iR 1000 -P0 -p 80,随机选择1000个目标主机扫描,其中-P0表示无ping扫描。
(a)感染主机每次随机生成多少个目标IP地址?

网络安全 网络端口扫描_更正版

网络安全 网络端口扫描_更正版

《计算机网络安全实验》实验报告实验名称:网络端口扫描年级: 2010级专业:网络工程专业班级:网络工程二班姓名:陈绪群学号: 1025111017成绩:指导教师: 卢正添提交报告时间:2013年5月10日一、实验目的掌握使用端口扫描器的技术,了解端口扫描器的原理。

二、实验环境局域网环境,Nmap扫描系统,主机系统为windows XP,被扫描主机为windows 2000(VMware workstation中)。

拓扑图:三、实验步骤与实验结果(1)各种扫描模式与参数①nmap 10.8.12.115②TCP 同步(SYN)端口扫描,(-sS参数) 命令: nmap –sS 10.8.12.115③UDP端口扫描(-sU参数) 命令:nmap –sU 10.8.12.115④Ping扫描(-sP参数) 命令:nmap –sP 10.8.12.115(2)操作系统扫描命令:nmap –O 10.8.12.115(3)更进一步的应用①随机主机扫描:nmap –iR 20②扫描特定的端口范围:nmap –p0-65535 10.8.12.115③长数据显示:nmap -vv 10.8.12.115④nmap –sT –O –oN "E:\\cxq\\test.txt" 10.8.12.115-118(4)图形用户界面操作: nmap -sS 10.8.12.115四、分析与讨论1.描述使用Nmap对系统进行网络端口扫描的过程。

答:Nmap对系统进行网络端口扫描有两种基本的方式:一种是目标端口扫描,扫描特定的端口,另一种是端口扫除,即对所有的可能端口进行扫描。

扫描过程相似,就是向目标主机的端口发送请求数据包,希望建立“连接”,根据目标主机的回应判断其端口是否开放。

2.使用实验验证Nmap实验参数,并分析各自的技术原理和优缺点。

答:-sTTCP connect()扫描:这是最基本的TCP扫描方式。

实验三端口扫描

实验三端口扫描

实验三、端口扫描1、实验目的与要求◆掌握网络编程模式。

◆理解并能应用socket来扫描端口号2、实验设备与环境连网PC机(至少一台)。

计算机硬件要求:英特尔酷睿i5 3代系列处理器、256MB以上内存,Ethernet网卡,网线若干。

计算机软件要求: Windows 7操作系统,Visual c++6.0/.net系统。

3、实验要求能够以可视化的形式显示主机面能够实现TCP端口的扫描能够实现UDP端口的扫描4、实验内容与步骤:步骤1:使用VC++的应用程序生成向导(MFC AppWizard[exe])创建一个基于对话框的工程,该工程的名称为201200824302PortScan设计主界面:同时在类向导里面添加需要的变量:步骤3:添加事件3.1添加响应“TCP扫描”按钮的事件:void CMy201200824302PortScanDlg::OnTcp(){UpdateData(true);WSADATA WSAData;CString str;if(WSAStartup(0x0202,&WSAData)!=0){MessageBox("初始化Winsock失败!");}soc=socket(AF_INET,SOCK_STREAM,0);if(soc==INVALID_SOCKET){MessageBox("创建socket失败!");WSACleanup();return;}int IpAddress;int i=0;CString s;m_ip.GetWindowText(s);IpAddress=inet_addr(s);if(IpAddress==INADDR_NONE){hostent * pHostent=gethostbyname(str);if(pHostent)IpAddress=(*(in_addr*)pHostent->h_addr).s_addr;}if(m_port1>m_port2){MessageBox("请确保起始端口号不大于终止端口号!");WSACleanup();return;}struct sockaddr_in desthost;memset(&desthost,0,sizeof(desthost));desthost.sin_family=AF_INET;desthost.sin_addr.s_addr=IpAddress;for(unsigned int a=m_port1;a<m_port2;a++){desthost.sin_port=htons(a);char * SendBuf;SendBuf=new char[2];memset(SendBuf,0,2);int nConnect=connect(soc,(sockaddr*)&desthost,sizeof(desthost));if(nConnect==SOCKET_ERROR){str.Format("%d",a);m_static+="TCP Port ";m_static+=str;m_static+=":Close\r";m_static+="\n";}else{ str.Format("%d",a);m_static+="TCP Port ";m_static+=str;m_static+=":Open\r\n";m_static+="\n";}}UpdateData(false);closesocket(soc);WSACleanup();}3.2添加响应“UDP扫描”按钮的事件:void CMy201200824302PortScanDlg::OnUdp(){UpdateData(true);WSADATA WSAData;CString str;if(WSAStartup(0x0202,&WSAData)!=0){MessageBox("初始化Winsock失败!");}soc=socket(AF_INET,SOCK_STREAM,0);if(soc==INVALID_SOCKET){MessageBox("创建socket失败!");WSACleanup();return;}int nIotr1;//设置阻塞模式unsigned long flag=1;nIotr1=ioctlsocket(soc,FIONBIO,&flag);if(nIotr1==SOCKET_ERROR){MessageBox("创建socketM模式失败!");closesocket(soc);WSACleanup();return;}int IpAddress;//判断域名或IP地址int i=0;CString s;m_ip.GetWindowText(s);IpAddress=inet_addr(s);if(IpAddress==INADDR_NONE){hostent * pHostent=gethostbyname(str);if(pHostent)IpAddress=(*(in_addr*)pHostent->h_addr).s_addr;}struct sockaddr_in desthost;memset(&desthost,0,sizeof(desthost));desthost.sin_family=AF_INET;desthost.sin_addr.s_addr=IpAddress;for(unsigned int a=m_port1;a<m_port2;a++){desthost.sin_port=htons(a);char * SendBuf;SendBuf=new char[2];memset(SendBuf,0,2);int nsend=sendto(soc,SendBuf,1,0,(struct sockaddr*)&desthost,sizeof(desthost));if(nsend==SOCKET_ERROR){MessageBox("UDP包发送失败!");closesocket(soc);WSACleanup();return;}Sleep(500);sockaddr_in SourceHost;//定义源主机地址int SourceSize;SourceSize=sizeof(SourceHost);memset(&SourceHost,0,SourceSize);char * RecvBuf;RecvBuf=new char[2];memset(RecvBuf,0,2);int nRecv;nRecv=recvfrom(soc,RecvBuf,1,0,(struct sockaddr*)&SourceHost,&SourceSize);if(nRecv==SOCKET_ERROR){int ErrorCode=GetLastError();if(ErrorCode==10054){str.Format("%d",a);m_static+="UDP Port";m_static+="str";m_static+=":Close\r\n";}else{m_static+="UDP Port";m_static+=a;m_static+=":Open\r\n";}}}UpdateData(false);closesocket(soc);WSACleanup();}5、实验结果主界面显示:测试1:验证起始端口不可以大于终止端口测试2:TCP端口扫描测试3:UDP端口扫描失败测试3:UDP端口扫描验证运行结果:6、实验总结通过本次试验我了解了使用Socket套接字对端口进行的扫描。

综合实验报告书(端口扫描)

综合实验报告书(端口扫描)

综合实验报告( 2010 -- 2011 年度第二学期)名称:网络综合实验题目端口扫描程序院系:信息工程系班级:网络08K2学号:学生姓名:指导教师:鲁斌李莉王晓霞张铭泉设计周数: 2 周成绩:日期:2011 年7 月1 日一、综合实验的目的与要求1.任务:设计并实现一个端口扫描程序,检测某个IP或某段IP的计算机的端口工作情况。

2.目的:加深对课堂讲授知识的理解,熟练掌握基本的网络编程技术和方法,建立网络编程整体概念,使得学生初步具有研究、设计、编制和调试网络程序的能力。

3.要求:熟悉有关定义、概念和实现算法,设计出程序流程框图和数据结构,编写出完整的源程序,基本功能完善,方便易用,操作无误。

4.学生要求人数:1人。

二、综合实验正文1.端口扫描器功能简介:服务器上所开放的端口就是潜在的通信通道,也就是一个入侵通道。

对目标计算机进行端口扫描,能得到许多有用的信息,进行端口扫描的方法很多,可以是手工进行扫描、也可以用端口扫描软件进行。

扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种方法可以搜集到很多关于目标主机的各种有用的信息,例如远程系统是否支持匿名登陆、是否存在可写的FTP目录、是否开放TELNET 服务和HTTPD服务等。

2.实验所用的端口扫描技术:端口扫描技术有TCP connect()扫描、TCP SYN扫描、TCP FIN 扫描、IP段扫描等等。

本次实验所用的技术是TCP connect()扫描,这是最基本的TCP 扫描,操作系统提供的connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。

如果端口处于侦听状态,那么connect()就能成功。

否则,这个端口是不能用的,即没有提供服务。

这个技术的一个最大的优点是,你不需要任何权限。

系统中的任何用户都有权利使用这个调用。

3.实验具体实现方案:编写一个端口扫描程序,能够显示某个IP或某段IP的计算机的某一个或某些端口是否正在工作。

实验一 端口扫描实验

实验一  端口扫描实验

实验一端口扫描实验一、实验目的1. 理解端口的概念;2. 了解常用的端口扫描原理;3. 能够熟练的使用常用的端口扫描工具进行弱点检测和修复。

二、实验设备和环境1.具备基本的局域网环境;2. PC机一台;3. 版本为3.3的X-Scan端口扫描工具。

三、实验原理网络服务或应用程序提供的功能由服务器或主机上的某个或多个进程来实现,端口则相当于进程间的大门,可以随便定义,其目的是为了让两台计算机能够找到对方的进程。

“端口”在计算机网络领域是非常重要的概念,它是专门为网络通信而设计的,它是由通信协议TCP/IP定义,其中规定由IP地址和端口作为套接字,它代表TCP连接的一个连接端,一般称为SOCKET,具体来说,就是用[IP:端口]来定位主机中的进程。

可见,端口与进程是一一对应的,如果某个进程正在等待连接,称之为该进程正在监听。

在计算机[开始]-[运行]里输入cmd进入dos命令行,然后输入netstat-a可以查看本机有哪些进程处于监听状态。

根据TCP连接过程(三次握手),入侵者依靠端口扫描可以发现远程计算机上处于监听状态的进程,由此可判断出该计算机提供的服务,端口扫描除了能判断目标计算机上开放了哪些服务外还提供如判断目标计算机上运行的操作系统版本(每种操作系统都开放有不同的端口供系统间通信使用,因此从端口号上也可以大致判断目标主机的操作系统,一般认为开有135、139端口的主机为Windows系统,如果除了135、139外,还开放了5000端口,则该主机为Windows XP操作系统。

)等诸多强大的功能。

一旦入侵者获得了上述信息,则可以利用系统漏洞或服务漏洞展开对目标的攻击。

由上所述,端口扫描是一帮助入侵的工具,但是安全人员同样可以使用端口扫描工具定期检测网络中关键的网络设备和服务器,以查找系统的薄弱点,并尽快修复,因此理解端口扫描原理和熟练使用端口扫描工具对防治入侵有很大的帮助。

常见的TCP端口号常见的UDP端口号五、实验任务1. 学习或听任课老师介绍关于端口扫描的基础知识;2. 安装X-Scan扫描工具;3. 使用X-Scan进行扫描;4. 记录并分析扫描结果;5. 根据扫描结果采取相应的措施巩固系统。

网络报告实验二端口扫描实验superscan

网络报告实验二端口扫描实验superscan

运城学院实验报告专业:网络工程专业系(班):计算机科学与技术系1404班姓名:课程名称:网络安全实用技术实验项目:网络端口扫描实验superscan实验类型:设计型指导老师:杨战武实验地点:网络实验室(2506)时间:2017年 5月10日一、实验目的熟悉并掌握端口扫描工具——Superscan的使用,利用端口扫描工具Superscan对局域网中的机器实施端口扫描,获取网络中各台计算机的端口开放情况,由此来判断网络中的计算机的基本安全情况。

二、实验原理[端口扫描原理]1.端口扫描向目标主机的TCP/IP服务端口发送探测数据包,并记录目标主机的响应。

通过分析响应来判断服务端口是打开还是关闭,就可以得知端口提供的服务或信息。

2.端口扫描主要有经典的扫描器(全连接)、SYN(半连接)扫描器、秘密扫描等。

3.全连接扫描:扫描主机通过TCP/IP协议的三次握手与目标主机的指定端口建立一次完整的连接。

建立连接成功则响应扫描主机的SYN/ACK连接请求,这一响应表明目标端口处于监听(打开)的状态。

如果目标端口处于关闭状态,则目标主机会向扫描主机发送RST的响应。

4.半连接(SYN)扫描:若端口扫描没有完成一个完整的TCP连接,在扫描主机和目标主机的一指定端口建立连接时候只完成了前两次握手,在第三步时,扫描主机中断了本次连接,使连接没有完全建立起来,这样的端口扫描称为半连接扫描,也称为间接扫描。

5.TCP FIN(秘密)扫描:扫描方法的思想是关闭的端口会用适当的RST来回复FIN数据包。

另一方面,打开的端口会忽略对FIN数据包的回复。

[综合扫描和安全评估技术工作原理]6.获得主机系统在网络服务、版本信息、Web应用等相关信息,然后采用模拟攻击的方法,对目标主机系统进行攻击性的安全漏洞扫描,如果模拟攻击成功,则视为漏洞存在。

最后根据检测结果向系统管理员提供周密可靠的安全性分析报告。

[常见的TCP端口如下]:服务名称端口号说明FTP 21 文件传输服务TELNET 23 远程登录服务HTTP 80 网页浏览服务POP3 110 邮件服务SMTP 25 简单邮件传输服务SOCKS 1080 代理服务[常见的UDP端口如下]服务名称端口号说明RPC 111 远程调用SNMP 161 简单网络管理TFTP 69 简单文件传输DNS 53 域名解析服务[常见端口的关闭方法]:1、关闭7.9等端口:关闭Simple TCP/IP Service,支持以下TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。

实验二 网络端口扫描

实验二 网络端口扫描

实验二网络端口扫描一、实验目的通过练习使用网络端口扫描器,了解目标主机开放的端口和服务程序,从而获得系统有用的信息,发现网络系统的安全漏洞。

本实验将在Windows操作系统下使用Superscan工具进行网络端口扫描实验,在Linux操作系统下将使用综合性扫描工具Nessus进行扫描练习(暂不进行)。

通过端口扫描实验,可以增强学生在网络安全方面的防护意识。

二、实验原理在Internet安全领域,扫描器是最有效的破解工具之一,扫描器是一种自动检测远程或本地主机安全性弱点的程序。

通过使用扫描器,可以发现远程服务器是否存活、它对外开放的各种TCP端口的分配及提供的服务、它所使用的软件版本(如OS和其它Software的版本)以及所存在可能被利用的系统漏洞。

根据这些信息,可以让使用它的用户了解到远程主机所存在的安全问题。

1、扫描的类型(1)地址扫描地址扫描是最简单、最常见的一种扫描方式。

可以通过Ping来判断某一主机是否在线。

也可以通过一些工具来获得某一网络中所有在线主机的地址。

但由于现在很多的路由器与防火墙对ICMP请求进行拦截,因此这种方式也不一定很可靠。

(2)端口扫描互联网上通信的双方不仅需要知道对方的地址,还需要知道通信程序的端口号。

目前使用的IPv4协议支持16位的端号,端口号可使用的范围为0~65535,其中0~1023为熟知端口,被指定给特定的服务使用,由IANA(Internet Assigned Numbers Authority,互联网数字分配机构)管理;1024~49151为注册端口,这些端口由IANA记录并追踪;49152~65535端口叫做动态端口或专门端口,提供给专用应用程序。

在进行入侵攻击之前,首先要了解目标系统的是什么OS,是否有保护措施,运行什么服务和服务的版本,存在漏洞等,而要判断服务的方法就通过端口扫描,这是因为常用的服务是使用标准的端口,因此只要知道了端口号,就能知道目标主机上运行着什么服务,然后才能针对这些服务进行攻击。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

端口扫描实验报告网络端口扫描实验报告姓名:刘俊峰学号:11054114班级:11052411课程:网络攻防技术老师:张旻一、网络端口扫描简介TCP/IP协议在网络层是无连接的,而“端口”,就已经到了传输层。

端口便是计算机与外部通信的途径。

一个端口就是一个潜在的通信通道,也就是一个入侵通道。

对目标计算机进行端口扫描,能得到许多有用的信息。

进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。

在手工进行扫描时,需要熟悉各种命令,对命令执行后的输析出进行分,效率较低。

用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。

通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。

扫描工具根据作用的环境不同可分为:网络漏洞扫描工具和主机漏洞扫描工具。

前者指通过网络检测远程目标网络和主机系统所存在漏洞的扫描工具。

后者指在本机运行的检测本地系统安全漏洞的扫描工具。

本实验主要针对前者。

端口是TCP协议中定义的,TCP协议通过套接字(socket)建立起两台计算机之间的网络连接。

它采用【IP地址:端口号】形式定义,通过套接字中不同的端口号来区别同一台计算机上开启的不同TCP和UDP连接进程。

端口号在0~~65535之间,低于1024的端口都有确切的定义,它们对应着因特网上常见的一些服务。

这些常见的服务可以划分为使用TCP端口(面向连接如打电话)和使用UDP端口(无连接如写信)两种。

端口与服务进程一一对应,通过扫描开放的端口就可以判断计算机中正在运行的服务进程。

二、实验目的1.了解熟悉MFC及的基本原理和方法。

2.加深对tcp的理解,学习端口扫描技术和,原理熟悉socket编程。

3.通过自己编程实现简单的IP端口扫描器模型。

4.通过端口扫描了解目标主机开放的端口和服务程序。

三、实验环境Windows操作系统VC++6.0开发环境四、实验设计实验原理通过调用socket函数connect()连接到目标计算机上,完成一次完整的三次握手过程,如果端口处于侦听状态,那么connect()就可以成功返回,否则这个端口不可用,即没有提供服务。

实验内容1. 设计实现端口扫描器2. IP地址、端口范围可以用户输入。

3. 要求有有好的可视化操作界面。

实验步骤:1、用户界面:使用vc6.0里的MFC来开发用户界面2、端口扫描:使用socket函数中的connect()连接计算机来判定目标计算机是否开放了要测试的端口五、代码实现#include <afxext.h>#include <winsock.h>#pragma comment(lib,"wsock32.lib")#define ZERO (fd_set *)0int maxth, scanok, scannum;int portip, hoststart, hoststop, startport, endport; long searchnum, searched;void usage(char *);void playx(int);void setip2(char *);void customport(char *, char *, char *);void portscannow(int);int main(int argc, char *argv[])WSADATA wsadata;system("cls.exe");printf("\r\n============== 命令行端口扫描器PortScanner V1.0 ==============");if ((argc < 3) || (argc > 4)){usage(argv[0]);return -1;}if(!(stricmp(strlwr(argv[1]), "-p") == 0)){usage(argv[0]);return -1;}if (WSAStartup(MAKEWORD(1,1), &wsadata) != 0){printf("\r\nWsatartup error");return -1;}if (argc == 3)setip2(argv[2]);}elseif (argc == 4){customport(argv[0], argv[2], argv[3]);}else{usage(argv[0]);return -1;}portscannow(argc);WSACleanup();return 0;}void usage(char * prog){printf("Usage: %s <Option>", prog);printf("\r\n\n <Option>:");printf("\r\n -p [ Port|StartPort-EndPort ] <HostName|IP|StartIP-EndIP >");printf("\r\n\n Example: ");printf("\r\n %s -p 192.168.0.1", prog);printf("\r\n %s -p 192.168.0.1-192.168.0.254", prog);printf("\r\n %s -p 21-80 192.168.0.1", prog); printf("\r\n %s -p 21-80 192.168.0.1-192.168.0.254\r\n", prog);return;}void playx(int play = 0){char *plays[12]={" | "," / "," - "," \\ "," | "," / "," - "," \\ "," | "," / "," - "," \\ ",};if (searchnum != 0){for (int i = 0 ; i <= 3; i ++){printf(" =%s= %d%s Completed. \r", plays ,searched * 100 / (searchnum + 1), "%");Sleep(5);}}else{printf(" =%s=\r", plays[play]);Sleep(10);}}void setip2(char *cp){int host;struct hostent *testhost;char *startip = "", *endip = "";if (strstr(cp, "-") && strlen(cp) > 15 && strlen(cp) < 32){endip = strchr(cp, '-') + 1;strncpy(startip, cp, strlen(cp) - strlen(strchr(cp, '-')));hoststart = ntohl(inet_addr(startip));hoststop = ntohl(inet_addr(endip)); }else{testhost = gethostbyname(startip);if(!testhost){WSACleanup( );printf("\r\nCan't get ip of: %s", cp); exit(-1);}memcpy(&host, testhost->h_addr, 4); hoststop = hoststart = ntohl(host);}}void TestThread(int thread = 200) {for (;;){playx();if (maxth > thread)Sleep(100);else break;}return;}void WaitThreadEnd(){Sleep(6000);printf("\r \r\n");printf(" Wait ( %d )Thread end...\r\n", maxth); for(;;){if (maxth > 0){Sleep(100);playx();continue;}else break;}printf("\r\n");return;}void customport(char *cp, char *cp2, char *cp3) {int intport;char *checker;startport = atoi(cp2);endport = atoi(cp2);if (strstr(cp2,"-")){intport = atoi(checker = strchr(cp2, '-') + 1);if (intport > 0 && intport < 65536)endport = intport;}if (startport < 0 || startport > 65536 || endport < 0 || endport > 65535){usage(cp);exit(-1);}setip2(cp3);}UINT portscan(LPVOID port){int addr = portip;int sock;struct fd_set mask;struct timeval timeout;struct sockaddr_in server;unsigned long flag = 1;sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == INV ALID_SOCKET){printf("\r\nSock Error:%s", WSAGetLastError());maxth --;return -1;}server.sin_family=AF_INET;server.sin_addr.s_addr = htonl(addr);server.sin_port = htons(short(port));playx();if (ioctlsocket(sock, FIONBIO, &flag) != 0){printf("\r\nSock Error:%s",WSAGetLastError());closesocket(sock);maxth --;return -1;}connect(sock, (struct sockaddr*)&server, sizeof(server));_sec = 18;_usec = 0;FD_ZERO(&mask);FD_SET(sock, &mask);switch(select(sock + 1, ZERO, &mask, ZERO, &timeout)){case -1:{printf("\r\nSelect() error");maxth --;return -1;}case 0:{maxth --;closesocket(sock);return -1;}default:if(FD_ISSET(sock, &mask)){shutdown(sock, 0);printf(" [Found:] %s Port: %d open.\r\n", inet_ntoa(server.sin_addr),ntohs(server.sin_port));closesocket(sock);scanok ++;maxth --;return 1;}}return 0;}void portscannow(int xp){int sport;char *timenow, timebuf[32];char *ports[32]={ "21","22","23","25","53","79","80","110","1 11","113","123","135","139","143","443","51 2", "513","514","515","540","1080","1433","1521 ","1524","3306","3389","5631","6000","6112" ,"8000","8080","12345"};timenow = _strtime(timebuf);printf("\r\nPortScan Start Time: %s\r\n\n",timenow);maxth = 0;scanok = 0;scannum = 0;searched = 0;searchnum = hoststop - hoststart +1;if(xp == 3)searchnum = searchnum * 32;if(xp == 4)searchnum = searchnum * (endport - startport+1);for (portip = hoststart; portip <= hoststop; portip ++, scannum ++){if ((portip % 256) == 0 || (portip % 256) == 255) {if(xp == 3)searchnum = searchnum - 32;if(xp == 4)searchnum = searchnum - (endport - startport +1);scannum --;playx();continue;}if (xp == 3){for (sport = 0; sport < 32; sport ++, maxth ++, searched ++){TestThread(180);CWinThread * pthread =AfxBeginThread(portscan,LPVOID(atoi((char*) ports[sport])));Sleep(120);}}if (xp == 4){sport = endport - startport;if(sport > 500 ){for(sport = startport; sport <= endport; sport ++, maxth ++, searched ++){TestThread(2000);CWinThread * pthread = AfxBeginThread(portscan, LPVOID(sport)); Sleep(10);}}else{for(sport = startport; sport <= endport; sport++, maxth ++, searched ++){TestThread(250);CWinThread * pthread = AfxBeginThread(portscan, LPVOID(sport)); Sleep(100);playx();}}}}WaitThreadEnd();timenow = _strtime(timebuf);printf("\r\nPortScan End Time: %s", timenow); printf("\r\nScan %d Hosts completed. Open %d Ports!\r\n", scannum, scanok);}六、代码实现在刚开始的时候编译是成功的,但是build是有错误的,如图:在网上找解决的方法,发现是MFC连接的问题,在工程—>设置—>microsoft基础类中不使用MFC改成使用MFC作为静态链接库,确定后再次build。

相关文档
最新文档