网络端口扫描共工具的设计与实现

上传人:鲁** 文档编号:495214877 上传时间:2023-03-14 格式:DOCX 页数:9 大小:128.80KB
返回 下载 相关 举报
网络端口扫描共工具的设计与实现_第1页
第1页 / 共9页
网络端口扫描共工具的设计与实现_第2页
第2页 / 共9页
网络端口扫描共工具的设计与实现_第3页
第3页 / 共9页
网络端口扫描共工具的设计与实现_第4页
第4页 / 共9页
网络端口扫描共工具的设计与实现_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《网络端口扫描共工具的设计与实现》由会员分享,可在线阅读,更多相关《网络端口扫描共工具的设计与实现(9页珍藏版)》请在金锄头文库上搜索。

1、学生姓名: 指导老师:摘 要 本课程设计是在Windows系统中,通过软件visual studio 2010使用 C#语言完成的一个端口扫描程序。此程序主要利用TCP连接的三次握手特性,完 成对指定主机端口的扫描。扫描能对指定IP的主机的常用端口进行扫描。扫描 结果以列表的形式直观地展现出来。通过对扫描结果的分析知道了,有哪些常用 端口是开放的。关键词C#;端口扫描;TCP三次握手;网络安全1引言本文主要内容本文第二节主要说明本设计的背景及目的;第三节介绍了 TCP 端口扫 描基本原理;第四节详细描述了网络端口扫描工具的设计步骤、部分源代 码以;第五节为相关测试结果;第六节为结束语以及末尾的

2、相关参考文献。设计平台及设计语言本系统是在win7操作系统上,通过visual studio 2010软件使用C# 语言设计编写完成的。设计背景及目的网络中每台计算机犹如一座城堡,这些城堡中,有些是对外完全开放的, 有些却是大门紧闭的。在网络中,把这些城堡的“城门”称之为计算机的“端 口”。端口扫描是入侵者搜索信息的几种常用方法之一,也正是这一种方法最容 易暴露入侵者的身份和意图。一般说来,扫描端口有以下目的:?判断目标主机上开放了哪些服务?判断目标主机的操作系统?如果入侵者掌握了目标主机开放了哪些服务,运行何种操作系统,他们就能 使用相应的手段实现入侵。而如果管理员先掌握了这些端口服务的安全

3、漏洞,就 能采取有效的安全措施,防范相应的入侵。?2设计原理端口的基本概念端口是由计算机的通信协议TCP/IP协议定义的。其中规定,用IP地址和端 口作为套接字,它代表TCP连接的一个连接端,一般称为Socket。具体来说, 就是用IP端口来定位一台主机中的进程。如果要和远程主机A的程序通信,那 么只要把数据发向A端口就可以实现通信了。端口与进程是一一对应的,如果某个进程正在等待连接,称之为该进程正在 监听,那么就会出现与它相对应的端口。由此可见,通过扫描端口,便可以判断 出目标计算机有哪些通信进程正在等待连接。端口是一个16 bit的地址,用端口号进行标识不同作用的端口。端口一般 分为两类。

4、熟知端口号:范围从0到1023,这些端口号一般固定分配给一些服务。比 如21端口分配给FTP服务,25端口分配给SMTP服务,80端口分配给HTTP服务, 135端口分配给RPC服务等等动态端口号:动态端口的范围从1024到65535,只要运行的程序向系统提 出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。在 关闭程序进程后,就会释放所占用的端口号。端口扫描技术TCP co nnectO?扫描这是最基本的TCP扫描。操作系统提供的connect()系统调用,用来与每一 个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect() 就能成功。否则,这个端口

5、是不能用的,即没有提供服务。这个技术的一个最大 的优点是,你不需要任何权限,系统中的任何用户都有权利使用这个调用。另一 个好处就是速度,如果对每个目标端口以线性的方式,使用单独的connect()调 用,那么将会花费相当长的时间,你可以通过同时打开多个套接字,从而加速扫 描。使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。 但这种方法的缺点是很容易被发觉,并且被过滤掉。目标计算机的logs文件会 显示一连串的连接和连接是出错的服务消息,并且能很快的使它关闭。TCP SYN扫描这种技术通常认为是“半开放”扫描,这是因为扫描程序不必要打开一个完 全的TCP连接。扫描程序发送的是

6、一个SYN数据包,好象准备打开一个实际的连 接并等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。一个 SYN|ACK的返回信息表示端口处于侦听状态。一 RST返回,表示端口没有处于 侦听态。如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭 这个连接过程。这种扫描技术的优点在于一般不会在目标计算机上留下记录。但 这种方法的一个缺点是,必须要有root权限才能建立自己的SYN数据包。TCP FIN?扫描有的时候有可能SYN扫描都不够秘密。一些防火墙和包过滤器会对一些指定 的端口进行监视,有的程序能检测到这些扫描。相反,FIN数据包可能会没有任 何麻烦的通过。这种

7、扫描方法的思想是关闭的端口会用适当的RST来回复FIN 数据包。另一方面,打开的端口会忽略对FIN数据包的回复。这种方法和系统的 实现有一定的关系。有的系统不管端口是否打开,都回复RST,这样,这种扫描 方法就不适用了。并且这种方法在区分Un ix和NT时,是十分有用的。IP段扫描这种不能算是新方法,只是其它技术的变化。它并不是直接发送TCP探测数 据包,是将数据包分成两个较小的IP段。这样就将一个TCP头分成好几个数据 包,从而过滤器就很难探测到。但必须小心。一些程序在处理这些小数据包时会 有些麻烦。TCP?反向?ident扫描ide nt协议允许(rfc1413 )看到通过TCP连接的任何

8、进程的拥有者的用户 名,即使这个连接不是由这个进程开始的。因此你能,举个例子,连接到http 端口,然后用identd来发现服务器是否正在以root权限运行。这种方法只能在 和目标端口建立了一个完整的TCP连接后才能看到。本系统设计原理本系统采用的是TCP connect()扫描技术众所周知,端口存在两种,UDP和TCP。UDP协议由于是非面向连接的,对 UDP端口的探测也就不可能像TCP端口的探测那样依赖于连接建立过程,这也使 得UDP端口扫描的可靠性不高。而TCP由于其conn ection orie nted的特性, 为端口的扫描提供了基础。众所周知,TCP建立连接时有三次握手。先是cl

9、ie nt 端往server某端口发送请求连接的SYN包,server的该端口如果允许连接,会 给client端发个 SYN+ACK回包,client端收到server的SYN+ACK包后再给 server端发一确认包ACK(ack二k+1),TCP连接正式建立。基于连接的建立过程,可以想到,假如要扫描某一个TCP端口,可以尝试与该端口进行TCP连接, 如果该端口处于打开状态,通过TCP三次握手就能成功建立连接,也就是说,如 果连接成功,就可以判断目标扫描出于打开状态,否则,目标端口处于关闭状态。 这就是TCP端口扫描的基本原理。严f主机B连接请求SYN,SEQ=XSYN,ACK,SEQ=Y,

10、ACK=X+1确认ACK,SEQ=X+1,ACK=Y+1确认图 TCP连接建立过程3 设计步骤程序设计程序设计的总体思路:本系统要求扫描指定 IP 地址的主机的常用端口,首 先在程序中要定义一个数组,用于指定常用端口包含的内容;其次需要创建一个 扫描方法,当用户输入指定 IP 后,循环调用该方法对指定 IP 的常用端口进行扫 描,并将扫描结果以列表形式显示。程序的大概执行过程:第一步,用户输入指定 IP 地址,点击扫描后,创建 线程,并创建 ThreadStart 的委托对象;第二步,若当前扫描端口数量未超过定 义的数组上限值,调用扫描线程Sean()对该端口尝试连接;第三步,循环扫描 数组里

11、定义的所有端口,记录每个端口是否开放情况;第四步,数组内的所有端 口扫描完成后,匹配过滤原则,显示扫描结束。流程图如图所示图 程序流程图程序实现创建线程当用户点击扫描之后,执行以下程序代码,创建线程并创建线程ThreadStart委托对象,同时将显示框初始化:private void btnScan_Click(object sender, e);TCP扫描方法此段代码实现了对指定端口扫描功能,此次安城定义了一个临时变量port_now,当该线程被调用后,创建TcpCIient对象,尝试对指定端口进行TCP连接,并将结果显示在显示框:private void Scan()int port_no

12、w = port;doneport_now = true;Addr = ;oString() + 开放);catch端口 + scan_portport_now.ToString() + 未开放);端口扫描主函数此段代码通过调用Sean()方法,实现了对指定端口组个扫描功能。当执行时, 首先对当前扫描端口进行过滤原则匹配,若扫描端口排序超过定义数组最大值, 则显示扫描结束;反之,调用Scan()线程对该端口进行扫描。此段代码中还定义 了当未完成扫描,强行退出时,直接终止执行程序:private void PortScan()开始扫描. (可能需要您等待几分钟););Addr = ;for (int i = 0; i 16; i+)port = i;作系统教程(第4版)M.北京:高等教育出版社,20082 马骏.C#网络应用编程(第二版).背景:人民邮电出版社,20103 范建华、胥光辉、张涛等译.TCP/IP详解 卷1:协议机械工业出版 社2009年第1版。4 谢希仁. 计算计网络(第5版) M. 北京:电子工业出版社, 20085 TCP端口扫描浅析.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号