端口扫描程序的设计与实现_第1页
端口扫描程序的设计与实现_第2页
端口扫描程序的设计与实现_第3页
端口扫描程序的设计与实现_第4页
端口扫描程序的设计与实现_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长沙理工大学网络协议编程课程设计报告端口扫描程序的设计与实现学 院 计算机与通信工程学院 专 业 网络工程 班 级 学 号 学生姓名 指导教师 课程成绩 完成日期 课程设计任务书计算机与通信工程学院 网络工程专业课程名称网络协议编程课程设计时间20152016 学年第 1 学期1819 周学生姓名指导老师题 目端口扫描程序的设计与实现主要内容:(1)实现通过异步扫描对指定网段内的主机或者单个主机对指定端口或者指定的端口范围进行扫描。(2)实现通过多线程批量扫描对指定网段内的主机或者单个主机对指定端口或者指定的端口范围进行扫描。(3) 设置异常处理机制,能对端口扫描出现异常时做出处理。要求:(1) 结合网络协议编程课程设计所学知识设计并实现端口扫描程序的设计与实现。(2) 学会文献检索的基本方法和综合运用文献的能力。(3) 通过课程设计培养严谨的科学态度,认真的工作作风和团队协作精神。应当提交的文件:(1) 课程设计学年论文。(2) 课程设计附件(相关图纸、设备配置清单、报告等)。课程设计成绩评定院 系 计算机与通信工程 专 业 班 级 学 号 学生姓名 指导教师 指导教师对学生在课程设计中的评价评 分 项 目优 良 中 及格不及 格学 习 态 度 与 遵 守 纪 律 情 况课 程 设 计 完 成 情 况课程设计报告的质量指导教师成绩 指导教师签字 2016 年 月 日课程设计答辩组对学生在课程设计中的评价评 分 项 目优 良 中 及格不及 格课 程 设 计 完 成 情 况课程设计报告的质量课程设计答辩答辩组成绩 答辩组长签字 2016 年 月 日课程设计综合成绩 注:课程设计综合成绩指导教师成绩60%答辩组成绩40%端口扫描程序的设计与实现学生姓名: 指导老师: 摘 要 计算机信息网络的发展加速了信息化时代的进程,随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全也日益明显。端口扫描技术是发现安全问题的重要手段之一。本程序是在.NET 平台上使用 C#语言完成的一个端口扫描程序。此程序主要完成了多线程批量扫描和异步扫描功能。多线程批量扫描,能对单个指定的主机或者指定网段内的所有主机进行特定端口或指定的端口段内的端口进行逐个扫描,此端口扫描程序能以较快的速度准确地扫描出主机侦听的空闲端口。相对于多线程批量扫描,异步扫描能以更快的速度准确地扫描出主机侦听的空闲端口。扫描结果以列表的形式直观显示出来。关键词 端口扫描;多线程批量扫描;异步扫描Design and implementation of port scanning programStudent name:YU Wenlong Advisor:LONG JizhenAbstract Computer information network development speeds up the process of the information age, with the increase of the degree of social networks, the computer network has become increasingly dependent on, network security is increasingly obvious. Port scanning technology is one of the important methods to find security problems. This procedure is in the.NET platform using C# language to complete a port scanner. This program mainly completes the multi thread batch scanning and asynchronous scanning function. Multi-threaded batch scanning, all the host to specify a single host or network segment specified for a particular port and the port specified port scans one by one, the port scanning procedures can fast accurately scan host listens to the free port. Compared with the multi thread asynchronous batch scanning, scanning can accurately scan host listens to the free port at a faster speed. Scan results are displayed in the form of a list. Key words: port scanning; multi thread batch scan; asynchronous scan1 前言端口在计算机网络中用于标识上层应用程序服务,端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关)。端口扫描是计算机解密高手喜欢的一种方式。攻击者可以通过它了解到从哪里可探寻到攻击弱点。实质上,端口扫描包括向每个端口发送消息,一次只发送一个消息。接收到的回应类型表示是否在使用该端口并且可由此探寻弱点。扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可以不留痕迹的发现远程服务器的各种端口的状态!这就能让我们间接的或直观的了解到远程主机所存在的安全问题。1.1 课程设计的目的计算机网络的发展使得社会网络化程度增加,人们对计算机网络的依赖也越来越大,端口扫描技术是发现安全问题的重要手段之一。端口扫描的主要目的是判断目标主机或目标网段内的主机开放了哪些服务,网络管理员了解了这些信息后,便于管理整个网络以及采取相应的安全防范。2 设计的软硬件平台本程序基于.NET 平台使用 C#语言开发的一个端口扫描程序。.NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。.NET 支持多种语言,包括C#,VC+,COBOL 等,是一个全面的开发工具。3 端口扫描的主要工作原理端口扫描器通过选用远程 TCP/IP 不同的端口的服务,并记录目标给予的回答,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息。最基本的 TCP 扫描,操作系统提供的 connect()系统调用可以用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么 connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个最大的优点是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速度,如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花费相当长的时间,使用者可以通过同时打开多个套接字来加速扫描,也就是本设计中的多线程批量扫描。使用非阻塞 I/O 允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种方法的缺点是很容易被察觉,并且被防火墙将扫描信息包过滤掉。目标计算机的 logs 文件会显示一连串的连接和连接出错消息,并且能很快使它关闭。常见的端口扫描方法有 TCP connect,TCP SYN,TCP FIN,TCP ACK,多线程 socket 批量扫描等,本次课程设计主要采用 TCP connect 实现异步扫描,调用 socket实现多线程批量扫描。3.1 多线程批量扫描工作原理操作系统提供的 socket 系统调用,用来与每一个感兴趣的目标主机的端口进行连接。如果端口处于侦听状态,那么 socket()就能成功,否则这个端口没有提供服务。多线程批量扫描使用 for 循环来实现逐个扫描的,多端口也是使用 for 循环来实现逐个扫描的,调用 connect()和 accept()建立套接字连接,这两个系统调用用于完成一个完整相关的建立,其中 connect()用于建立连接。accept ()用于使服务器等待来自某主机进程的实际连接。借助 for 循环通过 threadi=new Thread(ThreadPort)创建多个线程,采用异常处理机制调用 socket 进行连接,实现端口扫描。3.2 异步扫描工作原理调用操作系统提供的 BeginConnect()方法进行 TCP 连接,用来与每一个感兴趣的目标主机的端口进行连接。如果端口处于侦听状态,那么就能连接成功,否则不能连接成功。通过 while()循环来返回连接结果,并显示在列表中。4 端口扫描实现的主要步骤4.1 多线程批量扫描设计的主要步骤(1)使用自定义的方法 GetListIP()获取待扫描的指定主机或指定网段内主机的 IP 地址和指定端口或端口段。(2)初始化并保存为 IPEndPoint 对象。(3)借助 for 循环通过 threadi=new Thread(ThreadPort)创建多个线程。(4)调用线程的实现方法,使用 socket 连接,通过 for 循环进行批量扫描。(5)采用 try catch 进行异常处理。4.2 异步扫描设计的主要步骤(1)使用自定义的方法 GetListIP()获取待扫描的指定主机或指定网段内主机的 IP 地址和指定端口或端口段。(2)初始化并保存为 IPEndPoint 对象。(3)通过 for 循环创建线程。(4)调用操作系统提供的 BeginConnect()方法进行 TCP 连接,进行循环扫描。(5)采用 try catch 进行异常处理。5 程序运行与测试5.1 对指定主机指定端口异步扫描,如图 5.1 所示。图 5.1 异步扫描单主机单端口5.2 对指定主机指定端口范围异步扫描,如图 5.2 所示。图 5.2 异步扫描单主机多端口5.3 对指定 IP 指定端口范围多线程批量扫描,如图 5.3 所示。图 5.3 多线程扫描单主机多端口5.4 对指定 IP 范围指定端口范围多线程批量扫描,如图 5.4 所示。图 5.4 多线程扫描多主机多端口5.5 对指定 IP 范围指定端口范围异步扫描,如图 5.5。图 5.5 异步扫描多主机多端口6 设计的结论及意义经过不断的修改和完善程序,基本满足了一个端口扫描成宿的基本要求,实现了对单个指定的主机进行扫描或扫描指定网段内的主机,实现了对特定端口进行扫描,或扫描指定的端口范围内的端口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论