《安全扫描》课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

海南大学信息学院信息安全系专业课程《安全扫描》课程设计报告姓名:学号:学院:信息科学技术学院成绩:任课教师:顾剑二〇一三年十二月五日目录摘要----------------------------------------------------------------11.引言-----------------------------------------------------------------11.1开发背景-------------------------------------------------------11.2设计题目及要求-----------------------------------------------12.程序的编译与开发-----------------------------------------------22.1开发目的-------------------------------------------------------22.2开发环境及工具------------------------------------------------22.3开发过程---------------------------------------------------------23.基本思路及所涉及的相关理论---------------------------------23.1基本思路----------------------------------------------------------23.2相关理论----------------------------------------------------------23.2.1协议介绍-----------------------------------------------------23.2.2TCP实现流程------------------------------------------------33.2.3UDP实现流程------------------------------------------------53.2.4WindowsSocket套接字编程原理------------------------------64.实验过程--------------------------------------------------------------105、个人感想与感悟--------------------------------------------------23附录(程序代码部分)------------------------------------------------23附录一:(基于TCP通信的客户端与服务器)----------------------23附录二:(基于UDP通信的客户端与服务器)----------------------29附录三:(基于TCP/UDP的网络安全扫描)----------------------38班级:2011级信息安全(1)班姓名:学号:20111616310016日期:2013/12/4-2-摘要计算机信息网络的发展加速了信息化时代的进程,但是随着社会网络化程度的增加,对计算机网络的依赖也越来越大,网络安全问题也日益明显。端口扫描技术室发现安全问题的重要手段之一。当前进行网络端口扫描的主要技术有:基于ARP、ICMP、TCP(包括TCPconnect扫描、TCPSYN扫描、TCPACK扫描、TCPFIN扫描等)、UDP网络协议的网络活动端口扫描。(1)、利用ARP协议获取活动主机的MAC地址,当获取的不为“00-00-00-00-00-00”时,则认为当前主机可达,是活动的主机;(2)、利用ICMP协议,使用系统自带的PING程序,当能PING通目标主机时,认为是活动主机(能扫描到活动的端口);(3)、基于TCP的链接状态当判断链接成功认为主机可到达(并能扫描到相应的端口);(4)、基于UDP的不可靠传输,我们可以通过套接字编程给目标主机发送消息,能够得到返回消息,则认为主机可到达(相应扫描到端口)。根据以上方法,我们均能扫描到开放的端口,因此,我们同样可以做到对自己电脑的自纠自查,对自己的主机实施相应的网络安全保护。关键字:TCP连接套接字TCP/UDP端口扫描.客户端、服务器及网络安全扫描的实现1.引言1.1开发背景端口扫描,顾名思义,就是对目标主机的端口依次进行连接,对于能进行数据通信的,则认为是”开”状态,否则认为是”关”状态。由于绝大部分公用服务于端口有对应关系,因此通过端口的”开”与”关”状态,可以初步判断对方是否提供相应的服务,为下一步的操作提供参考。端口是一个传输层的概念,因此端口扫描也仅限于在传输层上进行,传输层一般将协议分为TCP协议和UDP协议,所以端口扫描也根据扫描所采用的类型分为TCP端口扫描、UDP端口扫描两大类。端口扫描与其说是一种攻击方法,不如说是一种检测方法,因为通过端口扫描,即使是知道对方哪些端口是开的,也不意味着对方就一定提供了这些端口对应的服务,更谈不上能查出什么漏洞。但黑客正是用端口扫描预测一台主机上都提供了哪些服务,如果所提供的这些服务存在漏洞,黑客就会利用这些漏洞对系统进行攻击。而事实上即使没有什么漏洞可找,仅就扫描所得的信息,就已经给黑客提供大量的重要信息,因此端口扫描往往作为黑客攻击的第一步。所以,对于任何一个拥有电脑的用户完全有必要对端口进行详细地了解,对于没有实质性作用的端口要关闭,对于必须开放的端口则尽可能地安装其漏洞补丁程序。1.2设计题目及要求(1)、至少建立TCP/UDP两台服务器服务器端口和服务必须有公开和保密(后门)两类。(2)、完成TCP/UDP协议客户端扫描程序可以扫描出公开和保密的全部端口号,确定全部公开的服务,甚少可以确定班级:2011级信息安全(1)班姓名:学号:20111616310016日期:2013/12/4-3-一种保密的服务。(3)、可以扫描顾剑老师上课的服务器210.37.47.194,检查其安全情况。(4)、可以扫描服务器,检查其安全情况。(5)、同学之间可以互相扫描各自的服务器,检查其服务情况。(6)、不可扫描其他境内服务器。(7)、写出完整的试验报告,并尝试给出一些防范和修改建议。2.程序的编译与开发2.1开发目的1.了解和掌握TCP/IP协议的基本原理(TCP通信、UDP通信);2.了解网络环境下的程序设计步骤和过程;3.掌握Winsock提供函数的功能和用法。2.2开发环境及工具测试平台:WindowsXPProfessional使用软件:MicrosoftVisualC++6.0开发语言:C语言2.3开发过程根据题目的要求,结合相应的算法理论及相关的基础知识,在MicrosoftVisualC++6.0的平台下进行开发。具体过程参见下述的算法理论部分和程序流程步骤的分析。3.基本思路及所涉及的相关理论3.1基本思路根据题目要求,逐步解析题目含义。实际上,该题目包含三个主要程序:①基于TCP客户端和服务器间的通信;②基于UDP客户端与服务器的通信;③基于TCP和UDP的网络活动端口扫描。由所学知识可知:TCP属于面向连接型协议(可靠传输,通过三次握手连接完成),UDP属于不可靠传输。在Windows平台上,需要通过Winsock套接字编程来实现。3.2相关理论3.2.1协议介绍(1)TCPTCP/IP(TransmissionControlProtocol/InternetProtocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WAN)设计的。它是由ARPANET网的研究机构发展起来的。有时我们将TCP/IP描述为互联网协议集InternetProtocolSuite,TCP和IP是其中的两个协议(后面将会介绍)。由于TCP和IP是大家熟悉的协议,以至于用TCP/IP或IP/TCP这个词代替了整个协议集。这尽管有点奇怪,但没有必要去争论这个习惯。例如,有时我们讨论NFS是基于TCP/IP时,尽管它根本没用到TCP(只用到IP和另一种交互式协议UDP,而不是TCP)。班级:2011级信息安全(1)班姓名:学号:20111616310016日期:2013/12/4-4-TCP/IP的标准在一系列称为RFC的文档中公布。文档由技术专家、特别工作组、或RFC编辑修订。公布一个文档时,该文档被赋予一个RFC编号,如RFC959(FTP的说明文档)、RFC793(TCP的说明文档)、RFC791(IP的说明文档)等。最初的RFC一直保留而从来不会被更新,如果修改了该文档,则该文档又以一个新号码公布。因此,重要的是要确认你拥有了关于某个专题的最新RFC文档。通常在RFC的开头部分,有相关RFC的更新(update)、修改(errata)、作废(obsolete)信息,提示读者信息的时效性。详情请阅读网站RFC-editor[1]。(2)UCPUDP协议的全称是用户数据包协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。与所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)参考模型,UDP和TCP都属于传输层协议。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。3.2.2TCP实现流程:班级:2011级信息安全(1)班姓名:学号:20111616310016日期:2013/12/4-5-图3.2.1-1面向连接(TCP)的socket工作流程图3.2.1-2TCP正常连接过程图3.2.1-3TCP正常终止连接过程班级:2011级信息安全(1)班姓名:学号:20111616310016日期:2013/12/4-6-图3.2.1-4TCP连接过程3.2.3UDP实现流程:图3.2.2-1UDP工作过程班级:2011级信息安全(1)班姓名:学号:20111616310016日期:2013/12/4-7-图3.2.2-2UDP扫描过程3.2.4WindowsSocket套接字编程原理一、客户机/服务器模式在TCP/IP网络中两个进程间的相互作用的主机模式是客户机/服务器模式(Client/Servermodel)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程中采取的是主动请示方式:首先服务器方要先启动,并根据请示提供相应服务:(过程如下)1、打开一个通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。2、等待客户请求到达该端口。3、接收到重复服务请求,处理该请求并发送应答信号。4、返回第二步,等待另一客户请求5、关闭服务器。客户方:1、打开一个通信通道,并连接到服务器所在主机的特定端口。2、向服务器发送服务请求报文,等待并接收应答;继续提出请求……3、请求结束后关闭通信通道并终止二、套接字1.套接字地址结构(1)、sockaddr结构:structsockaddr{u_shortsa_family;/*addressfamily*/charsa_data[14];/*up

1 / 48
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功