网络安全课程设计报告
课 程 设 计 报 告
网
络
安
全
班级:
学号:指导老师:姓名:
日期:
目 录
第一章 基本实验部分 .............................................................................................. 3
1.1 Windows基本常用网络命令 .......................................................................... 3
1.1.1实验目的................................................................................................. 3
1.1.2 实验原理................................................................................................ 3
1.1.3实验过程及步骤..................................................................................... 4
1.1.4分析与结论........................................................................................... 10
1.2 评估操作系统安全........................................................................................ 11
1.2.1实验目的............................................................................................... 11
1.2.2实验原理............................................................................................... 11
1.2.3实验过程和步骤................................................................................... 12
1.2.4分析与结论........................................................................................... 16
1.3 注入攻击........................................................................................................ 17
1.3.1实验原理............................................................................................... 17
1.3.2实验过程与步骤................................................................................... 17
1.3.4分析与结论........................................................................................... 21
第二章 编程与设计部分 ........................................................................................ 22
2.1 数据包嗅探与分析、流量统计程序设计.................................................... 22
2.1.1设计目的............................................................................................... 22
2.1.2原理.............................................................................................................. 22
2.1.3 实验过程与步骤......................................................................................... 24
2.1.4 结果............................................................................................................. 26
2.1.5分析与结论.................................................................................................. 28
第一章 基本实验部分
1.1 Windows基本常用网络命令
1.1.1实验目的
1)了解或掌握一些网络常用命令
2)掌握Ping、IPConfig、Arp、Netstat、Net、Tracert、Nslookup、At等命令、参数及意义
3)能应用上述命令进行网络连通、网络状态、网络配置等查看网络问题
1.1.2 实验原理
1)Ping命令的使用技巧
Ping是个使用频率极高的实用程序,用于确定本地主机是否能与另一台主机交换(发送与接受)数据包。Ping是一个测试程序,如果Ping运行正确,我们大体上就可以排除网络访问层、网卡、MODEM的输入输出线路、电缆和路由器等存在的故障,从而减小为问题的范围。也因此,网络安全扫描技术中就包括有Ping扫射。
2)Netstat命令的使用技巧
Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用Netstat查一查为什么会出现这些情况了。
1.1.3实验过程及步骤
(1)Ping命令、参数及意义(仅部分详细解释),如图1.1.1所示。
图1.1.1 Ping命令参数及意义
1)ping ip地址或主机号:显示 4个回显包后停止ping(缺省的),如图1.1.2
所示。
图1.1.2 ping ip 效果图
2)ping ip地址或主机号 -t :对如 10.129.4.22 这个 IP 地址不断地发送
ICMP 数据包,可查看网络是否连通。要中途查看并继续发送数据包,按control+Break键;要停止发送数据包,按control+c键,如图1.1.3所示。
图1.1.3 继续发包和停止发包演示图
3)ping ip地址或主机号 -n count:显示 count个回显包后停止 ping(count可以根据你的需要任意指定),如图1.1.4所示。
图1.1.4 ping ip –n count演示图
3)ping -a ip地址:将ip地址有对应的主机号表示出来,并显示 3个回显包
后停止 ping,如图1.1.5所示。
图1.1.5 ping –a ip 演示图
(2)Netstat命令、参数及意义,如图1.1.6所示。
图1.1.6 Netstat命令参数及意义
1)netstat –s:按照各个协议分别显示其统计数据。如果某应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么就可以用本选项来查看一下所显示的信息。需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在,如图1.1.7所示。
图1.1.7 netstat –s演示图
2)netstat –e:用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、单播的数量、广播的数量、丢弃(删除)数、错误数和未知协议的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量,如图1.1.8所示。
图1.1.8 netstat –e演示图
3)netstat –r:显示关于路由表的信息,类似于使用route print命令时看到的 信息。除了显示有效路由外,还显示当前有效的连接,如图1.1.9所示。
图1.1.9 netstat –r演示图
4)netstat –a:显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接,断开连接(CLOSE_WAIT)或者处于联机等待状态的(TIME_WAIT)等,如图1.1.10所示。
图1.1.10 netstat –a演示图
5)netstat –n:显示所有已建立的有效连接,如图1.1.11所示。
图1.1.11 netstat –n演示图
1.1.4分析与结论
以下为本人在实验操作过程碰到或想到的并于最后通过请教同学或网上查询等的方法解决的一些问题:
1) 一台接入Internet 的主机出现无法访问的情况,怎样诊断原因?
答:先试着测下本机是否和网关之间联通性正常。现在在主机cmd下输入 ping 127.0.01 如果不能得到回复说明你的pc没有装tcp/ip或是坏掉了,在网上另下一个安装下。如果回复正常的可以继续以下操作:还是在cmd命令行下ipconfig/all ,查看到本机ip情况,然后找到dhcp 、gateway(网关)的ip地址,然后在cmd 中输入命令:ping ......(此处为查看得到的dhcp、gateway的ip地址)。如果是得到正常回复,并有ttl值,说明正常,则可能是网关路由与外部的故障。如果不能得到正常回复,则说明你的主机到网关路由之间线路有故障。
2) 假如已经通过缓冲区溢出攻击获得一台主机的shell,怎样将木马程序运行起来?
答:缓冲区溢出是一种相当普遍的缺陷,也是一种非常危险的缺陷,在各种系统软件、应用软件中广泛存在。缓冲区溢出可以导致程序运行失败、系统死机等后果。如果攻击者利用缓冲区溢出使计算机执行预设的非法程序,则可能获得系统特权,执行各种非法操作。 缓冲区溢出攻击的基本原理是向缓冲区中写入超长的、预设的内容,导致缓冲区溢出,覆盖其他正常的程序或数据,然后让计算机转去运行这行预设的程序,达到执行非法操作、实现攻击的目的。运行木马的步骤:计划任务、VS脚本、自动运行、开机运行等
1.2 评估操作系统安全
1.2.1实验目的
安全评估服务是指通过对目标系统的工具扫描和人工检查,发现其存在的安全漏洞和隐患,并对安全漏洞进行专业安全的技术评定。
主要目的是:
1)了解和掌握系统存在的安全风险。
2)为了降低或消除安全风险而实施针对性的安全控制措施,如:系统安全加固、网络架构调整、安全产品部署等,提供依据。
通过多次评估,对比实施安全控制前后的安全评估结果,看到安全措施的的有效成果,持续地改进安全工作,尽可能地消除安全高风险隐患。
1.2.2实验原理
不同层次的不同的评估对象需要采用的方法也有不同,主要包括:
1)操作系统漏洞评估—> 工具扫描、人工检查。
2)网络设备漏洞评估—> 工具扫描、人工检查。
3)安全设备策略检查—> 人工检查、客户访谈。
4)网络架构评估—>人工检查、客户访谈、文档信息挖掘。
5)数据库评估—> 工具扫描、人工检查。
6)通用应用软件评估—> 工具扫描、人工检查、客户访谈。
1.2.3实验过程和步骤
1)按照提示,安装MBSA,如图1.2.1所示。
图1.2.1 MBSA安装界面
2)安装成功的界面如图1.2.2所示。
图1.2.2 安装成功
3)实验环境
本次实验环境为WinXP,安装了一些普通的应用工具,并做过一些简单的加固,使用第三方工具360等修补了系统中的安全漏洞。
4)使用MBSA来检测和加固系统
①运行MBSA,运行界面如图1.2.3所示。
图1.2.3 MBSA主界面
在MBSA主程序中有三大主要功能:
(1)Scan a computer:使用计算机名称或者IP地址来检测单台计算机,适用于检测本机或者网络中的单台计算机。
(2)Scan more than onecomputer:使用域名或者IP地址范围来检测多台计算机。
(3)View existing security scan reports:查看已经检测过的安全报告。
②设置单机MBSA扫描选项
单击“Scan a computer”,接着会出现一个扫描设置的窗口,如下图所示,如果仅仅是针对本机就不用设置“Computer name”和“IP address”,MNSA会自动获取本机的计算机名称,例如在本例中扫描的计算机名称为“WORKGROUP\SIMEON”,如果是要扫描网络中的计算机,则需要在“IP address”中输入欲扫描的IP地址。在MBSA扫描选项中,默认会自动命名一个安全扫描报告名称(%D% - %C% (%T%)),即“Security report name”,该名称按照“域名-计算机名称(扫描时间)”进行命名,用户也可以输入一个自定义的名称来
保存扫描的安全报告。然后选择“Options”中的前四个安全检测选项,如图1.2.4所示。
图1.2.4设置单机MBSA扫描选项
说明:
(1)在“Options”中有五个选项:
Check for Windows administrative vulnerabilities:检测Windows管理方面的漏洞。
Check for weak passwords:检测弱口令。
Check for IIS administrative vulnerabilities:检测IIS管理方面的漏洞,如果计算机提供Web服务,则可以选择,在本例中由于是Windows Xp系统,一般情况都没有安装IIS,因此可以不选择。
Check for SQL administrative vulnerabilities检测SQL程序设置等方面的漏洞,例如检测是否更新了最新补丁,口令设置等。
Check for security updates:检测安全更新,主要用于检测系统是否安装微软的补丁,不需要通过微软的正版认证。
前四项是安全检测选项,可根据实际情况选择,最后一项是到微软站点更新安全策略、安全补丁等最新信息,如果不具备联网环境可以不选择。
(2)单击“Cancel”按钮后会退回到上一个窗口中。
(3)单击“Scanning Options”可以查看扫描选项的详细说明。
③.扫描漏洞
在图1.2.5中单击“Start Scan”开始扫描,扫描结束后,程序会自动跳转扫描结果窗口,如下图所示,可以查看本次扫描的详细信息。在扫描报告中可以按照“Score(worst first)”、“lessue name”和“Score(best first)”3种方式进行排序显示扫描结果。在扫描结果中主要有“Scan Results”、“Windows Scan Results”、“Internet Information Services (IIS) Scan Results”、“SQL Server Scan Results”和“Desktop Application Scan Results”五种。
图1.2.5 扫描漏洞效果图
④扫描结果分析
从扫描结果中可以看到有1
个、2个以及1
个,表明系统存在4个较为危险的安全隐患或者高安全风险,如图1.2.6所示。其中需要关注的为第1个风险,该风险是Local Account Password,说是有两到三个本地账户密码国语简单或者单一,需要改进。
图1.2.6 扫描结果图
⑤查看扫描报告
扫描报告是进行安全加固的一个参考,先看“Security Update Scan Results”,在“Security Update Scan Results”中可以看到“What was scanned”、“Result details”和“How to correct this”三个链接,如下图所示。它们分别对于扫描的对象、扫描结果的详细信息和如何纠正存在的安全隐患(漏洞)。
1.2.4分析与结论
本次试验运用软件MBSA扫描电脑漏洞,看到电脑的大致的安全状况。有一个漏洞是高危险性的,极容易被利用,还有及格中毒和轻度危险的漏洞,也需要改进。还有一个体会就是,专业的扫描软件比我们用的360什么的软件好多了。
1.3 注入攻击
1.3.1实验原理
SQL注入攻击的原理,就是从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取你想得到的资料。
1.3.2实验过程与步骤
在本次的工具注入攻击的实验中,我们主要使用到“啊D注入工具v2.32增强版”。 啊D注入工具是一种自创的注入引擎,可以检测更多存在注入的连接,同时使用多线程技术,检测速度较为迅速。另外,啊D注入工具对"MSSQL显错模式"、"MSSQL不显错模式"、"Access"等数据库都有很好注入检测能力。它的主要功能包括:"跨库查询"、"注入点扫描"、"管理入口检测"、"目录查看"、"CMD命令"、"木马上传"、"注册表读取"、"旁注/上传"、"WebShell管理"、"Cookies修改"等,如图1.3.1所示。
图3.1.1 啊D注入工具
实施攻击:
(1)利用百度搜索引擎寻找漏洞网站
下面具体步骤使用工具啊D来实现如下:
1)现在检测网址中输入http://www.baidu.com
2)点击浏览网页。
3)在搜索栏输入inurl:{asp=34}
4)点击百度一下自动开始寻找该页面的注入点
5)点击下一页以此来搜索不同页面,当搜索到可注入点时显示在最下方
(2)确定攻击目标
本次攻击目标确定目标为:http://szpeiliao.com
1.3.4分析与结论
由于SQL注入攻击时针对应用开发过程中的编程漏洞,因此对于绝大多数防火墙来说,这种攻击是可以绕过的。虽然数据库服务器的版本一直在更新,各种脚本语言本身的漏洞也越来越少,可是随着SQL注入技术的不断提高,只要Web应用系统或源代码中仍然存在此类漏洞,就会潜伏着这种隐患,特别是当SQL注入攻击与其他一些攻击工具结合时,对服务器乃至系统都是巨大的威胁。因此,研究SQL注入攻击方法、如何正确的对服务器进行安全配置、如何做好代码的安全编写与用户输入的过滤检查,对于开发安全的Web应用程序有着重要的意义。 通过本次实验,我更加深刻地理解《网络安全》在实践中的意义所在,在一步一步的时间探索过程中,将理论知识用于具体实践,对SQL注入攻击这一知识块有更深一步的理解与掌握。
第二章 编程与设计部分
2.1 数据包嗅探与分析、流量统计程序设计 2.1.1设计目的
网络嗅探器无论是在网络安全还是在黑客攻击方面均扮演了很重要的角色。通过使用网络嗅探器可以把网络上传输的数据包进行捕获与分析,是进行网络安全分析最基本的工具。此工具可供网络安全分析之用,但如为黑客所利用也可以为其发动进一步的攻击提供有价值的信息。可见,嗅探器实际是一把双刃剑。虽然网络嗅探器技术被黑客利用后会对网络安全构成一定的威胁,但嗅探器本身的危害并不是很大,主要是用来为其他黑客软件提供网络情报,真正的攻击主要是由其他黑软来完成的。而在网络安全方面,网络嗅探手段可以有效地探测在网络上传输的数据包信息,通过对这些信息的分析利用是有助于网络安全维护的,有必要对网络嗅探器的实现原理进行深入的了解。
2.1.2原理
⑴Winpcap简介
WinPcap是由伯利克利分组捕获库派生而来的分组捕获库,它是再Windows操作平台上来实现对底层包的截取过滤。WinPcap为用户级的数据包提供了Windows下的一个平台。
WinPcap是BPF模型和Libpcap函数库在Windows平台下网络数据包捕获和网络状态分析的一种体系结构,这个体系结构是由一个核心的包过滤驱动程序,一个底层的动态连接库Packet.dll和一个高层的独立于系统的函数库Libpcap组成。底层的包捕获驱动程序实际为一个协议网络驱动程序,通过对NDIS中函数的调用为Win95、Win98、WinNT和Win2000提供一类似于UNIX系统下Berkeley Packet Filter的捕获和发送原始数据包的能力。Packet.dll是对这个BPS驱动程序进行访问的API接口,同时它有一套符合Libpcap接口的函数库。
WinPcap包括三个部分:第一个模块NPF,是一个虚拟设备驱动程序程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统特有的代码。第二个模块packet.dll为win32平台提供了一个公共的接口。不同版本的Windows系统平台上,而无需重新编译。第三个模块Wpcap.dll是不依赖于操作系统的。它能提供了更加高层、抽象的函数。 Packet.dll和Wpcap.dll直接映射了内核的调用。Wpcap.dll提供了更加友好、功能更加强大的函数调用。WinPcap的优势提供了一套标准的抓包接口,与libpcap兼容,可使得原来许多UNIX平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于NPF内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。
(2)网络数据包捕获的原理
以太网具有共享介质的特征,信息是以明文的形式在网络上传输,当网络适配器设置为监听模式时,由于采用以太网广播信道争用的方式,使得监听系统与正常通信的网络能够并联连接,并可以捕获任何一个再同一冲突域上传输的数据包。
网卡具有如下的几种工作模式:
1)广播模式:它的物理地址(MAC)地址是0Xffffffff的帧为广播帧,工作在广播模式的网卡接受广播帧。
2)多播传送:多播传送地址作为目的物理地址的帧可以被组内的其他主机同时接受,而组外主机却接收不到。但是,如果将网卡设置为多播传送模式,它可以接受所有的多播传送帧,而不论它是不是组内成员。
3)直接模式:工作在直接模式下的网卡只接受目的地址是自己Mac地址的帧。 4)混杂模式:工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式运行的。
利用winpcap进行网络数据包的捕获和过滤的设计步骤 1)打开网卡,并设为混杂模式。
2)回调函数Network Tap在得到监听命令后,从网络设备驱动程序处收集数据
包负责传送给过滤程序。
3)当Packet filter监听到有数据包到达时,NDIS中间驱动程序首先调用分组驱动程序,该程序将数据传递给每一个参与进程的分组过滤程序。 4)然后由Packet filter过滤程序决定哪些数据包应该丢弃,哪些数据包应该接收,是否需要将接收到的数据拷贝到相应的应用程序。
5)通过分组过滤器后,将数据未过滤掉的数据包提交给核心缓冲区。然后等待系统缓冲区满后,再将数据包拷贝到用户缓冲区。监听程序可以直接从用户缓冲区中读取捕获的数据包。 6)关闭网卡。
2.1.3 实验过程与步骤
1)界面设计
本系统是一个简单的利用Winpcap组件和网卡捕获流经主机所有的数据包,并且分析数据包的内容,包括数据包的类型、长度、到达时间、驻留时间等信息,能将其很直观的显示在界面上,大致的界面如下图2.1.1所示。
图2.1.1 系统界面布局草图
2)系统结构设计
本系统的运行流程大致为打开抓包系统,对主机的网卡进行扫描检测,由用户选择用来抓包的网卡,再选择需要抓取的数据包类型,比如是udp、tcp、icmp、igmp等,也可以选择all来抓取所有的数据包。最后对抓取的数据包进行内部信息分析,包括到达时间、驻留时间、源地址、源端口、目的地址、目的端口、数据包类型、数据包长度、BPS和PPS,并且显示相应的信息。系统的结构如下图2.1.2所示。
图2.1.2 系统结构图
根据图2.1.1和图2.1.2,再利用VC++ 6.0开发工具,能够很方便的将系统进行实现,具体的效果图见2.1.4。
2.1.4 结果
1)打开系统后,系统主界面如图2.1.3所示。
图2.1.3 系统主界面
2)首先用户可以点击检查网卡,来获取本机网卡列表,然后再从网卡列表中选择需要用来捕获数据包的网卡型号,如图2.1.4所示。
图2.1.3 检测网卡显示效果图
3)用户可以选择自己需要抓包的类型,可供选择的数据包类型有tcp、udp、icmp、igmp和all如图2.1.5所示。
图2.1.5 选择数据包类型
4)点击开始抓包,系统开始利用相应的网卡来捕获流经主机的所有的数据包,并解析数据包的内容,将其结果显示在下面的显示栏中,其效果如图2.1.6所示。
图2.1.6 数据包解析信息显示效果图
2.1.5分析与结论
信息安全离不开网络,网络离不开各种各样的数据包。要研究网络的安全性,
首先需要我们去了解一些较为基本的手段,比如如何利用主机网卡来捕获网络上的数据包,如何去判断一台主机是否在线,或者说如何去获取一台在线主机开放的所有的端口,这都是信息安全最为常用的技术,通过这些技术,我们才能展开对网络或者说主机的安全评估。
在这个任务中,我通过老师提供的Winpcap程序,再读懂的基础上,整合在一起,实现了对流经主机所有的数据包进行捕获的功能,亦可对数据包进行相应的筛选,计算出流量(BPS和PPS)。这是我第一次自己动手编写的较为实用的网络工具,作为学习信息安全专业的本科生,这也是必须学会的技能。在整个实验过程中,遇到的问题主要是抓包与界面显示发生冲突,导致程序运行起来很慢,通过使用多线程,可以较好的解决这个问题。在编写暂停按钮时,尝试了多种方法,比如停止刷新、线程挂起等,最后选择了线程挂起,效果最优。
下一步优化主要是实现对特定主机发送的包或者接受的包进行抓取,大致方法是把筛选器的数据包类型改为特定主机的IP,这样更能提高软件的实用性。