




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络安全课程设计报告题 目: 端口扫描程序设计专业网络工程学号姓名 B12070405彭慧珺B12070408魏园园指导教师董小燕日期2014.12.2评 分项 分 评秀好 良等 中差原况 情 实 匕匕 厶冃 功 题 谍写 书 告简 短 评 语日月 各年评分等级备注分细端口扫描程序设计、设计目的和任务扫描器是网络信息收集的一种方法,是入侵者搜集信息的几种常用手法之一,也正是 这一过程最容易使入侵者暴露自己的身份和意图。如果入侵者掌握了目标主机开放了哪些 服务,运行何种操作系统,他们就能够使用相应的手段实现入侵。从功能上可分为漏洞扫 描器和端口扫描器。根据提供服务类型的不同,端口分为两种,一种是
2、TCP端 口,一种是UDP端口。通过此次课程设计,能够掌握端口的基础知识,掌握扫描器的基本原理并设计 实现端口扫描。本程序主要实现:简易的端口扫描,支持多线程,并可指定线程数进行端口扫描,并 记录时间;能对指定的主机进行端口扫描;能扫描特定的部分端口号或对指定的端口段内 的端口进行逐个扫描;能识别部分开放端口所提供的服务;以及使端口扫描器具有简单易 懂美观的用户图形界面。二、设计原理2.1关于攻击In ternet的网络通信大多是建立在 TCP和UDP协议之上的,各个主机遵循着 TCP/IP 协议封装数据包进行通信。根据提供服务类型的不同,端口分为两种,一种是TCP端口,一种是UDP端口。?
3、TCP端口:即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Tel net服务的23端口,SMTP 服务的25端口,以及HTTP月艮务的80端口等等。? UDP端口:即用户数据包协议端口,无需在客户端和服务器之间建立连接,可靠性得不到保障。常见的有DNS月艮务的53端口,SNM(简单网络管理协议)服务的161 端口,QICQ使用的8000和4000端口等等。本程序通过 TCP connect 扫描:通过调用 socket 函数 connect() 连接到目标计算机上,完成一次完整的三次握手过程。如果端口处于侦听状态,那么conn
4、ect() 就能成功返回。否则,这个端口不可用,即没有提供服务。优点:稳定可靠,不需要特殊的权限。缺点:扫描方式不隐蔽,服务器日志会记录下大量密集的连接和错误记录,并容易被防火墙发现和屏蔽。2.2关于防御1 .关闭闲置和有潜在危险的端口这个方法有些 死板”它的本质是一一将所有用户需要用到的正常计算机端口外的其 他端口都关闭掉。因为就黑客而言, 所有的端口都可能成为攻击的目标。换句话说计算机的所有对外通讯的端口都存在潜在的危险 ”而一些系统必要的通讯端口,如访问网页需要 的HTTP (80端口); QQ (4000端口)等不能被关闭。2 .检查各端口,有端口扫描的症状时,立即屏蔽该端口这种预防端
5、口扫描的方式显然用户自己手工是不可能完成的,或者说完成起来相当困 难,需要借助软件。这些软件就是我们常用的网络防火墙防火墙的工作原理是:首先检查每个到达你的电脑的数据包,在这个包被你机上运行的任何软件看到之前,防火墙有完全 的否决权,可以禁止你的电脑接收In ternet上的任何东西。当第一个请求建立连接的包被 你的电脑回应后,一个“ TCP/IP端 口”被打开;端口扫描时,对方计算机不断和本地计算机 建立连接,并逐渐打开各个服务所对应的“ TCP/IP端 口”及闲置端口,防火墙经过自带的拦截规则判断,就能够知道对方是否正进行端口扫描,并拦截掉对方发送过来的所有扫描需 要的数据包。三、实验环境
6、和总体设计3.1实验环境开发工具:J2SDK 1.7.0 Eclipse语言:Java运行环境:Windows 2000以上3.2总体设计多线程端口扫描器是实现计算机的端口的扫描,只要在在前台设置好所要扫描的IP、起始端口、结束端口以及所要用到的线程数,点击扫描,就可以扫描到所输入IP地址主机的开放端口,并显示在主窗体中;点击退出,则可以退出该程序。 IP设置应为所在主机 的IP地址,起始端口和结束端口应为 065535之间的一个数,且起始端口应小于结束端 口的大小。线程数为0200之间的一个数。点击开始后就会运行,直到扫描完毕显示出开 放端口,如果没有开放端口,则只显示扫描完毕。功能分为以下
7、四模块: 图像显示功能:显示界面图形。 端口扫描功能:扫描开放的端口,并将扫描到的开放端口号送到前台。 多线程功能:当客户端要求与服务器端建立连接时,服务器端就将用到多线程功 能,为每一个建立起来的连接创建一个线程。 异常抛出功能:对于明显的错误,提示出错误的类型并结束程序的运行。界面设置构思图序 A *1:拉小化、关闾抉±L2也址起去霍口|结卑站口|揪粗戟匚二I4寸锚能一豊亜眾4 4崔卡n界面使用构思当出现如图所示的界面时,填写好要扫描的IP地址,需要扫描的端口范围和线程数, 单击命令提示按钮就可以开始扫描,扫描结果就会显示在中间的扫描结果显示区域,在扫 描状态显示区就会显示是否扫
8、描完毕。流程图如下:四、详细设计步骤本程序使用了为主要的Seanner类和Sean类。Scan类的作用是创建线程扫描端口, 然后把结果显示到前台。Sea nner类的作用是构造前台布局,调用 Scan类添加事件处理, 对输入进行错误判断,如果输入不在允许的范围之内则显示相关错误。以下是四模块的详细设计步骤:4.1图像显示功能界面设计本程序采用小窗口形式,外围大小为 170mm*90mr字体采用宋体五号,结果显示区域框架大小为160mm*45mr底色为粉红,结果显示字幕为主机地址加开放端口。其余地方设置按钮和扫描的主机地址、端口和线程数。设计的预计页面图形如图:參豔程満口扫励废茸第読园园(蓝鱼)
9、圭机1P施揣口 o堵京揣口 口-8 -# -扫后结更豈示粉江託邑mJJ3JS状态:本程序调用一些类和包,比如软件包java.awt.color、java.awt.event、io.lOException、Javax.Swing jvnet.substanee.*。1. java.awt.color 包:提供用于颜色空间的类。它包含了基于国际色彩联盟 (ICC)配 置文件格式规范的颜色空间实现。 e.g. Result.setBackground(Color.PINK)设置窗口为粉 红2. java.awt.eve nt 包:提供处理由AWT组件所激发的各类事件的接口和类。此包定义了事件和事件侦
10、听器,以及事件侦听器适配器,它是让事件侦听器的编写过程更为轻松 的便捷类。e.g.public void actio nPeformed(Actio nEve nt e) Stri ng cmd = e.getAct ion Comma nd();if(cmd.equals("Start")3. Javax.Swing:由所有Java图形用户界面(GUI)组件所构成,它们可以提供比本地 平台GUI组件更多的功能。Swi ng 包的 组成:javax.sw ing , javax.sw in g.borde , javax.sw in g.colorchooser, avax
11、.swing.even, javax.swing.filechooser, javax.swing.plaf, javax.swing.tree等接口-9 -常用Swing组件:按钮:JButton文本区:JTextArea文本字段:JTextField在本程序中使用如下:/设置主窗体位置和大小mai nFrame.setBou nds(180, 200, 550, 300);/设置扫描按钮和退出按钮Start.setActio nComma nd("Start");Start.addActio nListe ner(this);Exit.setActio nComma n
12、d("Exit");Exit.addActi on Liste ner(this);4.2端口扫描功能在本程序中后台端口扫描关键代码使用的两个类,下面介绍这两个类的常用方法。InetSocketAddress类构造方法如下:InetSocketAddress(InetAddress addr, int port)根据 IP 地址和端口号创建套接字地址。Socket类常用方法如下:Socket():通过系统默认类型的SocketImpl创建未连接套接字Socket(InetAddress address, int port):创建一个流套接字并将其连接到指定IP地址的指定端口
13、号。void bin d(SocketAddress bin dpoi nt):将套接字绑定到本地地址。void close():关闭此套接字。void connect(SocketAddress endpoint, int timeout)将此套接字连接至U具有指定超时值的服务器。关键代码如下:SocketAddress sockaddr = new In etSocketAddress(hostAddress, i);Socket sca ns=new Socket();int timeoutMs=50;scans.connect(sockaddr,timeoutMs); / 将 此套接字
14、连接 到具有 指定超 时值的 服务器 -8 -sea ns.close();/关闭此套接字4.3多线程功能用递归函数实验多线程使用关键算法如下:for(int i = minPort;i <= maxPort; ) if(i + threadNum) <= maxPort) new Scan (i, i + threadNum).start();i += threadNum; else new Sca n(i, maxPort).start();i += threadNum;4.4异常抛出功能使用io.lOException包:用来处理io的错误,在以后的程序中调用这个函数的时候就
15、必须 用try和catch来捕获异常,否则编译会报错,这主要涉及到java的安全机制。e.g try catch (NumberFormatExceptio n e1) DLGINFO.setText("错误的端口号或线程数!端口号和线程数必须为整数!");return;4.5总流程图如下:-11 -填写IP地址,可填写任意的个IP设置开设置结束始端口 口,设置设置进大小,设10655351程数,置1之间的端0200之065535/ 口号且必 j间且必之间的/须为整/须为整端口号/数,并且丿数于开始点击扫描可 以开始扫描结果显示结束程是,重新设置13 -四、结果测试与分析4
16、.1运行结果1.运行界面:14#玉防 11 2(1 J4 12 I iltJEKn : |0: I 'OOdJ 覆聲:_ 102. 未开始扫描状态:扫辟爭扌融iKlU正常扫描时:#4.起始端口设置有误扫描开始后状态报错:图6图75.结束端口设置有误扫描开始后状态报错:图816 -6.线程数设置错误报错:图97.另外我们计算了扫描器的扫描时间,我们能发现线程数的增多能有效减少扫描器的扫描时间图10第一个红框是线程数为10时的扫描时间,而线程数为20所用时间为3000ms可见线 程数增多缩短了扫描时间4.2防御措施根据防御原理,我们通过开启系统防火墙来对端口扫描进行防御图11防火墙关闭图1
17、2防火墙开启从图中可得知,开启防火墙之后,只能扫出端口912,902,443,扫描不出端口23,445,135,139。可见系统自带防火墙能对防御端口扫描起到一定作用,但并不能够完全 阻止,需要设计具有更严格规则的包过滤防火墙才行。4.3系统异常图13系统异常当线程数为100或过多时,扫描结果已显示扫描完成,但扫描器左下方的扫描状态却并没 有显示扫描完成,而是呈现正在扫描某一端口的情况,在后续的改进中会加以改进。五、存在的问题1、由于对Java的编程掌握得不够深入,所以程序的界面设计得不够完美。我们通过调用一些包,尽可能优化用户界面,后续将对按钮,皮肤等等进行优化。2、扫描状态的输出函数的速度
18、跟不上端口扫描的速度,最后程序扫描结束时,扫描 状态函数有时还在继续运行,程序运行无法达到一致性。3. 本程序还不能实现对一整个网段的IP进行端口扫描,我们考虑套更大的IP段for 循环来实现,但因时间有限未能调试成功。4. 关于防御功能,我们采用的是系统自带防火墙进行防御,但并不能够完全阻止,我 们的改进思想是设计规则更为严格的包过滤防火墙进行防御。六、总结本次设计我们选的课题是编写一个简单的端口扫描程序,因此我们选择eclipse使用Java语言进行编写。经过这两个星期的课程,通过图书馆和网上查找资料,顺利完成了设 计和开发,端口扫描系统开发完毕。系统基本符合要求,由于时间比较匆促,但还存在以 下一些小问题,本次课程设计结束后还会继续完善。在整个设计过程中,得到了老师和同学的帮助,在不断学习的过程中我体会到:1、这次课程设计是一个不断学习的过程,从设计初的模糊认识到最后能够顺利完成, 我体会到在实践中学习的重要性。2、设计过程中,由于要实现某些功能,网上资源解决了我的问题。多借鉴网络资源 也是学好软件编程一个不错的方法,但自己要有创新。关于本课题,我们还认识到,端口扫描是综合扫描器最基础的功能,也是黑客攻击的 基本步骤,因此,掌握端口扫描的常用技术和防范措施对维护系统安全有重要作用。端口 扫描不仅可以得知系统哪
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劝学的课件讲解
- 副肿瘤综合征护理
- 小学春节安全教育
- 20xx年高端专业模版
- 上海师范大学天华学院《精读二:文学与人生》2023-2024学年第二学期期末试卷
- 江苏食品药品职业技术学院《污染与恢复生态学》2023-2024学年第二学期期末试卷
- 2025年江苏省南京市附中高三下第四次检测试题英语试题含解析
- 上海工艺美术职业学院《数据组织与管理》2023-2024学年第二学期期末试卷
- 2025年山东省济宁市汶上县初三化学试题统练含解析
- 2025届西南名校高三适应性测试数学试题含解析
- 《感遇张九龄》课件
- 保安反恐防暴培训
- 视觉导航关键技术
- 大学英语(本)学习通超星期末考试答案章节答案2024年
- 幼儿园4000余册师生图书配置一览表
- “雄鹰杯”全国小动物医师技能大赛考试题库(660题)
- 新能源汽车充电桩项目可行性研究报告模板及范文
- 新能源汽车驱动电机及控制系统检修教案 学习情境 1:驱动电机的认知
- 如何应对学习压力
- 梁板墙柱混凝土同时浇筑专项方案(专家论证)
- 2024年初级消防员职业技能鉴定考试复习题库(单选、多选题)
评论
0/150
提交评论