渗透测试技术的研究 三稿.doc_第1页
渗透测试技术的研究 三稿.doc_第2页
渗透测试技术的研究 三稿.doc_第3页
渗透测试技术的研究 三稿.doc_第4页
渗透测试技术的研究 三稿.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

.湖南人文科技学院本科生毕业设计题目(中文):渗透测试技术研究(英文):the research of penetration testing technology学生姓名: 谢志威学号11420111系 部:信息科学与工程系专业年级:网络工程2011级指导教师:李素君职 称:副教授湖南人文科技学院教务处制湖南人文科技学院本科毕业论文诚信声明本人郑重声明:所呈交的本科毕业论文,是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 作者签名: 年 月 日目录摘要:i第一章 绪论11.1 研究的背景11.2 研究目的和意义11.3 渗透测试技术研究的现状21.4 渗透测试技术简介21.5 本文的结构3第二章 渗透测试平台与工具简介42.1 kali linux操作系统42.2 nessus42.3 sqlmap42.4 nmap52.5 awvs52.6 medusa52.7 burpsuit62.8 metasploit62.9 hydra6第三章 本文渗透测试技术的具体实现73.1 信息搜集73.1.1 存活主机扫描73.1.2 端口扫描83.1.3 系统指纹识别113.1.4 dns信息搜集123.1.5 旁站信息搜集153.1.6 网站目录结构173.2漏洞挖掘203.2.1 系统漏洞扫描203.2.2 网站安全漏洞扫描233.2.3 手工漏洞挖掘273.3 密码爆破333.4 操作系统漏洞利用38第四章 渗透测试小结434.1 渗透测试心得总结434.2 渗透测试过程的风险规避434.3 渗透测试报告44第五章 结论和展望455.1 论文工作总结455.2 展望45参考文献46.渗透测试技术研究摘要:渗透测试技术研究主要是利用渗透测试工具结合渗透测试的经验对网络中的主要服务器及重要的应用系统等进行非破坏性质的模拟黑客攻击的研究,它可以有效的发现网络中存在的安全薄弱点。本论文中的渗透测试研究主要是对信息搜集、漏洞挖掘、密码爆破以及操作系统漏洞利用技术进行了研究,这些技术离不开专业渗透测试工具的使用,本文主要结合一些实例及渗透测试工具的使用来对文中各个渗透测试技术点的研究进行阐述。通过文中信息搜集的技术研究可以初步掌握存活主机信息搜集、开放的端口信息搜集、目的主机系统信息搜集、dns信息搜集、网站的旁站信息搜集以及网站目录结构的信息搜集工作;通过漏洞挖掘技术研究掌握系统漏洞扫描、网站安全漏洞扫描以及初步的手工漏洞挖掘的原理及方法;通过密码爆破技术的研究知道密码爆破的原理并能通过工具对开机密码进行枚举破解的手段;通过操作系统漏洞利用技术的研究掌握如何使用专业的渗透测试工具(metasploit)对发现的操作系统漏洞进行针对性的利用。关键词:渗透测试;黑客;网络攻防;网络安全theresearch of penetration testing technologyabstract: penetration testing using security scanning tools and experienced safety engineer artificial to the main server in the network and important application system such as non destructive qualitative simulation hacker attacks, the aim is to invade the system and access to confidential information and will report details the process of invasion and produce to the user. determine the users system of security threats. perfect security policy and timely remind the security administrator, reduce the safety risk.penetration testing and tool scanning can well complement each other. scan tool has good efficiency and speed, but there are some false positives, cant find a high-level, complex security issues; larger penetration testing requires the human resource and professional skills to the test requirement is very high (the value of the penetration test report directly depends on the tester professional skills), but very accurate, can be found that logic is stronger and deeper weakness.keywords:penetration testing;hackers;network attack and defense;the security of network第一章 绪论1.1 研究的背景随着全球信息技术日新月异的发展,网络信息安全环境日趋复杂。网络安全已经成为各国共同关注的实事问题。世界各国纷纷将网络安全提升到国家战略高度予以重视。在此形势下,中央领导人成立中央网络安全和信息化领导小组,研究制定网络安全和信息化发展战略、宏观规划和重大政策。就如今中国面临的网络威胁和网络攻击,国家主席习近平指出“没有网络安全就没有国家安全”。目前网络安全所面临的主要的威胁来自于黑客的恶意攻击、软件设计漏洞以及网络安全管理问题,其中黑客的恶意攻击威胁最大。原本一些系统或者软件本身设计的缺陷对于正常使用并不会造成什么危害,但是黑客会将这些原本微不足道的缺陷想尽办法去利用以达到目的,他们甚至会利用一系列手段将这些缺陷不断的放大,最终导致此缺陷危及到整个网络系统。渗透测试是网络安全工程师尽可能的完整地模拟黑客使用漏洞发现技术和攻击手段对目标网络、系统、主机、应用的安全性做深入的探测,发现系统最脆弱的环节,能够直观的让用户清晰的了解当前网络、系统、主机、应用的脆弱性、可能造成的影响,以便采取必要的防范措施。1.2 研究目的和意义 渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。换句话来说,渗透测试是指渗透人员在不同的位置(比如从内网、从外网等位置)利用各种手段对某个特定网络(系统、主机、应用)进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告,并提交给网络(系统、主机、应用)所有者。网络(系统、主机、应用)所有者根据渗透人员提供的渗透测试报告,可以清晰知晓系统中存在的安全隐患和问题。 1.3 渗透测试技术研究的现状渗透测试技术研究是一项费时费力的工作,目前实施较多的测试是对测试对象较为明确的专项测试,例如对web服务器的测试、对无线网络的测试以及对web应用的测试。特别是对web应用程序的测试,是对渗透测试的研究热点之一。目前对渗透测试技术的研究明显投入不足,绝大部分的公司对于安全方面的投入微乎其微,各大高校也鲜有渗透测试方面的课堂,导致很少有系统化的渗透测试培训及研究。但是有很大一部分的网络安全爱好者凭借近乎偏执的极客精神在渗透测试的道路上不断前行。1.4 渗透测试技术简介渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。渗透测试技术研究也就是对渗透测试过程使用的技术进行针对性的研究。本文渗透测试研究的技术,由信息搜集、漏洞挖掘、密码爆破、漏洞利用等环节组成。规划的技术环节内容如下:1) 信息搜集该模块分为存活主机扫描、端口扫描、系统指纹识别、dns信息搜集、子站信息搜集、网站cms识别、网站目录结构 存活主机扫描:局域网下,对同网段内的存活主机进行扫描识别以发现那些主机处于活动状态。 端口扫描:对目标主机或者服务器进行端口扫描来发现是否开放一些不安全的端口。 系统指纹识别:对目标主机或者服务器的操作系统进行远程分析识别。 dns信息搜集:搜集服务器的dns信息。 旁站:在线查询与目标网站同一台网服务器的其他网站域名。 网站目录结构:使用渗透测试工具摸清网站目录结构。3) 漏洞挖掘 系统漏洞扫描:利用专业的渗透测试工具对目标系统进行漏洞扫描期望能够找出已知的系统漏洞。 网站扫描:利用专业的渗透测试工具对目标网站的结构、sql注入漏洞、跨站脚本漏洞、敏感网页、使用含已知漏洞的组件漏洞等进行扫描。 人工挖掘漏洞:通过渗透测试工程师以手工对应用方面进行漏洞挖掘。4) 密码爆破 对有利用价值的端口或者网站后台管理登录账号密码使用字典进行爆破。5) 系统漏洞利用 对发现的系统漏洞使用相应的渗透测试工具或者手工进行利用。1.5 本文的结构论文主体包括四章内容,主要提纲如下:第一章为绪论。主要介绍了课题的背景,为渗透测试研究提供了理论的依据。第二章为渗透测试简介。对渗透测试进行论分析以及对渗透测试的分类。第三章为渗透测试的具体技术实现。主要是对本文渗透测试技术环节所使用的渗透工具及技术点进行了介绍,并进行令人信服的举例证明。第四章为渗透测试小结。第五章为论文工作总结。第二章 渗透测试平台与工具简介2.1 kali linux操作系统kali linux是基于debian的linux发行版, 设计用于数字取证和渗透测试。由offensive security ltd维护和资助。最先由offensive security的mati aharoni和devon kearns通过重写backtrack来完成,backtrack是他们之前写的用于取证的linux发行版 。kali linux预装了许多渗透测试软件,包括信息搜集、漏洞分析、web程序、密码攻击、无线攻击、漏洞利用、嗅探/欺骗、权限维持、逆向工程、数字取证等等一些列超过300个渗透测试工具。2.2 nessusnessus 是目前全世界最多人使用的系统漏洞扫描与分析软件。采用客户/服务器体系结构,客户端提供了运行在x window 下的图形界面,接受用户的命令与服务器通信,传送用户的扫描请求给服务器端,由服务器启动扫描并将扫描结果呈现给用户;扫描代码与漏洞数据相互独立,nessus 针对每一个漏洞有一个对应的插件,漏洞插件是用nasl(nessus attack scripting language)编写的一小段模拟攻击漏洞的代码,这种利用漏洞插件的扫描技术极大的方便了漏洞数据的维护、更新;nessus 具有扫描任意端口任意服务的能力;以用户指定的格式(ascii文本、html 等)产生具体的输出报告,包括目标的脆弱点、怎样修补漏洞以防止黑客入侵及危险级别。2.3 sqlmapsqlmap是一个自动化的sql注入工具,其主要功能是扫描,发现并利用给定的url的sql注入漏洞,目前支持的数据库是mysql, oracle, postgresql, microsoft sql server, microsoft access, ibm db2, sqlite, firebird, sybase和sap maxdb。采用五种独特的sql注入技术,分别是:1)基于布尔的盲注,即可以根据返回页面判断条件真假的注入。2)基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。3)基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。4)联合查询注入,可以使用union的情况下的注入。5)堆查询注入,可以同时执行多条语句的执行时的注入。2.4 nmapnmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。nmap常被跟评估系统漏洞软件nessus混为一谈。nmap以隐秘的手法,避开闯入检测系统的监视,并尽可能不影响目标系统的日常操作。nmap 在黑客帝国(the matrix)中,连同ssh1的32位元循环冗余校验漏洞,被崔妮蒂用以入侵发电站的能源管理系统。2.5 awvsawvs(acunetix web vulnerability scanner)是一个自动化的web应用程序安全测试工具,它可以扫描任何可通过web浏览器访问的和遵循http/https规则的web站点和web应用程序。2.6 medusamedusa是一种可在线的密码暴力破解工具。medusa能够支持破解的远程服务包括:afp、ftp、http、imap、ms-sql、netware ncp、nntp、pcanywhere、pop3、rexec、rlogin、smtpauth、snmp、sshv2、telnet、vnc、web form等。2.7 burpsuitburp suite 是用于攻击web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。所有的工具都共享一个能处理并显示http 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。2.8 metasploitmetasploit是一款开源的安全漏洞检测工具,可以帮助安全和it专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,密码审计,web应用程序扫描,社会工程。2.9 hydrahydra是著名黑客组织thc的一款开源的暴力密码破解工具,可支持afp, cisco aaa, cisco auth, cisco enable, cvs, firebird, ftp, http-form-get, http-form-post, http-get, http-head, http-proxy, https-form-get, https-form-post, https-get, https-head, http-proxy, icq, imap, irc, ldap, ms-sql,mysql, ncp, nntp,oraclelistener, oracle sid, oracle, pc-anywhere, pcnfs, pop3, postgres, rdp, rexec, rlogin, rsh, sap/r3, sip, smb, smtp, smtp enum, snmp, socks5, ssh (v1 and v2), subversion, teamspeak (ts2), telnet, vmware-auth, vnc and xmpp等类型密码在线暴力破解。第三章 本文渗透测试技术的具体实现 本文研究的渗透技术环节主要有信息搜集、漏洞挖掘、密码爆破、操作系统漏洞利用四个环节,本章将结合实例对着四个渗透测试技术环节的具体实现方式及成果进行展现。3.1 信息搜集3.1.1 存活主机扫描1) 简介及个人研究心得:简介:存活主机发现扫描一般是对指定网段内的设备进行探测性扫描来发现当前存活(运行)的主机或者网络设备。个人研究心得:存活主机扫描一般是用于内网渗透,在内网渗透我们只要突破内网其中的一台主机,我们就可以借助着这台主机为突破点进行渗透。存活主机扫描主要是通过向区域内主机发送探测包,如果获得回应就知道那台主机目前在线,也只有主机在线才可以向目标主机进行攻击。2) 扫描方案: 确立需要进行扫描目标的网段范围。 利用nmap工具对指定网段内的存活主机进行探测并输出结果。3) 具体扫描方法打开kali linux系统的命令行窗口,输入以下命令nmap -sn /24参数含义:-sn:只进行主机发现,不进行端口扫描扫描结果如下截图所示,可以发现测试网段/24网段内共有6台存活(在线)主机,分别是、00、01、11、12、98、07。3.1.2 端口扫描1) 简介及个人研究心得:简介:端口扫描时对目标终端设备或者网络设备开放的端口进行探测以得知目标具体开放的端口。个人研究心得:一旦我们知道目标开放的端口,就得到了目标计算机上开发的端口和开放的存在利用价值的服务列表。一些有利用价值的端口可能会成为一次渗透测试的突破口。所以端口扫描几乎是我们每次搜集目标信息必须进行的,但是想要利用好这些端口就必须要对各种操作系统的各种端口以及各种服务进行了解并熟悉,而且要熟悉这些端口可以怎么利用。2) 端口扫描方案: 确立需要扫描的目标ip地址。 对目标ip地址使用nmap工具分别进行tcp、syn以及udp扫描。3) 具体扫描方法:1. tcp连接扫描 简介tcp连接扫描被认为是端口扫描中最基础和最稳定的,如果未给出特定的端口扫描范围,nmap会扫描1000个最常用的端口。 具体使用方法打开kali linux终端命令行输入以下命令,对测试主机12进行tcp端口扫描namp -st -p- -pn- 12参数含义-st:执行tcp连接类型的扫描。-p-:扫描所有的端口而不是只扫描1000个常用的端口。-pn:跳过主机发现阶段。经扫描发现目标主机开启的端口有80、135、139、145、445、1025、1688、3306、3389、6002、7001、7002,其中存在利用价值的端口有445(smb协议端口)、3389(远程桌面端口)、3306(mysql数据库端口),结果如下截图所示2、syn扫描 简介:syn扫描四nmap的默认扫描类型,他比tcp离拦截扫描更快而且更加安全,几乎不会造成拒绝服务供给(dos)或使目标系统瘫痪。syn扫描并没有完成完整的三次握手过程,只是完成了前两部,所以在一定成都市隐藏了发起扫描的主机并加快了扫描速度。 具体使用方法:打开kali linux终端命令行输入以下命令,对测试主机12进行端口扫描nmap -ss -p- -pn 12参数含义-ss:执行syn类型的端口扫描。-p-:扫描所有的端口而不是只扫描1000个常用的端口。-pn:跳过主机发现阶段。发现测试主机开启的端口有80、135、139、145、445、1025、1688、3306、3389、6002、7001、7002,其中存在利用价值的端口有445(smb协议端口)、3389(远程桌面端口)、3306(mysql数据库端口),测试结果如下截图所示3、udp扫描 简介:由于osi七层模型中传输协议除了tcp还有udp,而udp扫描就是对使用udp协议的端口进行扫描。 具体使用方法:打开kali linux终端命令行输入以下命令,对测试主机12进行udp端口扫描nmap su 12参数含义-su:执行对udp协议的端口扫描。测试主机开启的端口有123、137、138、445、500、1026、1030、4500、5001,其中只有445(smb协议端口)存在利用价值,测试结果如下截图所示3.1.3 系统指纹识别1) 简介及个人研究心得:简介:对远程目标的主机(服务器)进行操作系统辨别。个人研究心得:尽可能搜集关于目标主机的操作系统信息,不同的操作系统的弱点各不同,知道具体操作系统能够使以后的渗透更有针对性。但是目前远程系统指纹识别并不是每次都能成功,远程操作系统指纹识别主要是通过对目的主机进行操作系统内核特征匹配来分辨,但是有些系统的操作内核几乎相同,导致经常出现无法区分具体操作系统版本的问题。所以,我们对远程操作系统的辨别,我们不能百分百依赖远程操作系统的指纹识别。系统指纹识别的意义不只是知道具体的操作系统版本,它的最终目的是为了利用这些操作系统的特征弱点,所以这需要我们对各种操作系统的弱点极为了解,不然就单单知道操作系统的具体版本是没有任何用处的。2) 系统指纹识别方案: 确立目标主机(服务器)的ip地址; 使用nmap工具调用系统指纹库对远程目标主机进行系统特征匹配进行识别。3) 具体识别方法:打开kali linux终端命令行输入命令,对测试主机12进行操作系统辨别。nmap -o 12参数含义:-o:使用nmap自带的操作系统“指纹库”对远程目标主机进行特征匹配。经远程系统特征匹配后可以发现远程主机使用的操作系统是windows 2003,具体版本由于windowns 2003 sp1版本和sp2版本的系统内核相同,无法进行精确区分,所以具体操作系统显示为windown 2003 sp1 或者sp2,结果如下截图所示:3.1.4 dns信息搜集1) 简介及个人研究心得:简介:域名系统(英文:domain name system,dns)是因特网的一项服务,它作为将域名和ip地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。dns信息搜集就是搜集网站域名对应的dns服务器信息。个人研究心得:dns服务器是黑客和渗透测试人员的极佳目标,因为dns服务器对于一个网站来说举足轻重,没有dns服务器网民访问域名时无法解析到指定ip服务器,从而导致域名无法访问,更严重的后果是黑客拿到域名服务器的控制权限,将所有访问该域名都指向一个黑客搭建的陷阱网站,那么所有访问该域名的主机都面临被黑客攻击的风险。2) dns信息搜集方案: 确立需要搜集的目标网站域名地址。 进入公网上专门站点查询的网站输入目标网站域名地址进行在线查询。 通过host命令调用kali linux自带的dns信息搜集模块进行dns信息搜集(前提需要联网)。3) 具体搜集方法: 在线whois查询:可以在以下进入以下(不限于)网站中通过输入目标域名进行查询///在此选取域名在/进行在线查询,如下截图所示: 可以发现所有者的联系邮箱:以及4个dns服务器ns1.qq.com、ns2.qq.com、ns3.qq.com和ns4.qq.com,查询结果如下截图所示: host命令查询:打开kali linux命令终端,输入如下命令对进行dns服务器查询host -t ns 很明显,查询到有4个dns服务器,结果如下图所示: a记录查询a(address)记录是用来指定主机名(或域名)对应的ip地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的子域名。通俗来说a记录就是服务器的ip,域名绑定a记录就是告诉dns,当你输入域名的时候给你引导向设置在dns的a记录所对应的服务器。通过如下命令可以查询a记录host -t a 结果如下截图所示:查询到域名有2个服务器,对应的ip地址分别为11、4 mx记录查询mx记录也叫做邮件路由记录,用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操控所有的邮箱设置。您只需在线填写您服务器的ip地址,即可将您域名下的邮件全部转到您自己设定相应的邮件服务器上。通过如下命令可以查询host -t mx 域名查询到3个邮件服务器记录信息,分别是、和,结果如下截图所示:3.1.5 旁站信息搜集1) 简介及个人研究心得: 简介:“旁站”指与目标网站在同一台服务器上的其他网站,旁站信息搜集主要指搜集目标网站服务器运行的网站域名信息。个人研究心得:当通过一个网站入侵到服务器时,但是由于该网站安全做得很好导致通过该网站入侵服务器很困难,于是便通过查找该服务器上运行的其他网站来入侵该服务器,因为该服务器上运行的所有网站安全性不一定都很高。这样好比我们的目标从一个点变成了一个面,而一个面中的弱点往往是远远多于一个点的弱点的。但是注意了,往往一些大型网站可能一台服务器就专门服务于一个网站,比如百度、腾讯之类,对于那些大型网站旁站的信息搜集也许就没有什么意义了。2) 旁站信息搜集方案: 确立需要搜集旁站的目标网站域名。 通过ping命令或者在线网站查询方式得知目标域名的ip地址。 通过在线ip反查域名的方式查出目标网站域名的旁站有哪些。3) 具体搜集方法:通过在线ip反查域名,可通过ip反查域名的网站有/http:/ip.chaxun.la/ 本次通过在/查询ip 9()在来查询该服务器上运行的其他网站;可以发现服务器98运行着三个网站,域名分别为、和。,如下截图所示,3.1.6 网站目录结构1) 简介及个人心得:简介:网站的目录是指你建立网站时所创建的目录,目录结构则主要是指物理结构和逻辑结构这两种。 个人心得:知道网站目录结构后,你可以更容易找到该网站重要的目录,一些重要目录中可能存在上传点、数据库、网站配置信息等重要信息,如果能够获得这些重要的信息,将会对渗透工作的展开更为有利。网站目录扫描主要也是依赖于网络“蜘蛛爬虫”、“机器人”之类的程序,但是可以通过网站目录安全设置将一些目录让蜘蛛爬虫爬取不到,比如一些数据库目录、账号密码目录。所以网站目录扫描有时候也不能完全扫描到整个网站的目录结构,需要结合经验去进行猜测。所以我么还必须对主流的网站目录结构的基础知识进行了解并熟悉。2) 网站目录结构信息搜集方案: 确立目标网站域名或者ip地址 使用具有蜘蛛爬虫功能的软件对目标网站目录结构进行爬取并获取网站目录结构。3) 具体搜集方法:打开acunetix web vulnerability scanner(当前一款主流的网络漏洞扫描软件),并点击new scan新建扫描目标在“scan single website”填入需要测试扫描站点url:http:/37,(该网站是实验环境中搭建的测试目标)点击“next”后勾选“after crawling let me choose the files to scan”,即在网络爬虫爬取之后在选择需要扫描范围点击”next”稍等一会儿可看到扫描目标服务器是windown系统,采用ii6.0搭建的网站。然后一直点击:”next“到”finished“就可以等待网络爬虫爬取到目标网站的目录结构,如下截图所示:对比目标网站虚拟目录结构,可发现扫描到的目标站点目录与实际情况差不多,如下截图所示3.2漏洞挖掘3.2.1 系统漏洞扫描1) 简介及个人研究心得:简介:系统漏洞(system vulnerabilities)是指应用软件或操作系统软件在逻辑设计上的缺陷或错误,被不法者利用,通过网络植入木马、病毒等方式来攻击或控制整个电脑,窃取电脑中的重要资料和信息,甚至破坏系统。在不同种类的软、硬件设备,同种设备的不同版本之间,由不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。个人研究心得:发现系统中存在的漏洞并能够给予使用者的修复建议以便加固系统,一定程度上提高了系统的安全性,也使得黑客入侵该系统的难度大大提高。系统漏洞扫描是利用漏洞扫描器中已经存在的漏洞库对目标主机漏洞进行特征匹配,所以漏洞库中没有的漏洞是无法检测到的。所以,我们要实时对当前漏洞动态进行跟踪并了解,并实时丰富自己的漏洞库,漏洞库就好比一个是士兵的子弹库,子弹库越丰富,选择性就越多,攻击力越强大。2) 系统漏洞扫描方案: 确立目标的ip地址。 选取系统漏洞扫描工具。 使用漏洞扫描工具对目标ip的系统漏洞进行扫描并输出扫描结果。3) 具体扫描方法: 使用专业的系统漏洞扫描工具“nessus”工具进行扫描,nessus工具登陆界面如下截图所示:选择新建扫描任务,填好此次扫描标题以及扫描目标,并选择好扫描类型及扫描策略,如下截图所示点击”create scan“后静静等待扫描任务的完成可以发现目标主句存在相当多的漏洞,其中严重的漏洞有2个,高危的漏洞有2个,如下截图所示:漏洞信息统计:表3-1 漏洞信息统计表漏洞名称风险等级存在的风险解决方案ms08-067高windows操作系统下的server服务在处理rpc请求过程中存在的一个严重漏洞,远程攻击者可以通过发送恶意rpc请求触发这个溢出,导致完全入侵用户系统,并以system权限执行任意指令并获取数据,造成系统失窃及系统崩溃等严重问题。尽快打上编号为kb958644的系统漏洞补丁ms09-001高microsoft 服务器消息块 (smb) 协议中多个秘密报告的漏洞,攻击者如果成功利此漏洞的攻击者可以安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。尽快打上编号为kb958687的系统漏洞补丁ms12-020高此rdp服务漏洞可以让攻击者通过向远程桌面端口(端口号3389)发送特定的数据包获得管理员权限。尽快打上编号为kb2621440的系统漏洞补丁mysql default account credentials高默认的数据库账号密码,使得攻击者可以直接获取数据库最高权限。修改默认的数据库账号密码,并使之符合存在大小写字母、数字、特殊字符且长度达12位以上的高强度密码3.2.2 网站安全漏洞扫描1) 简介及个人研究心得: 简介:网站安全漏洞指网站程序设计上的漏洞以及网站安全配置方面的漏洞,下表列出网站安全漏洞扫描器可扫描的网站安全漏洞相关介绍。表3-2 网站安全漏洞扫描器可扫描的安全漏洞信息表漏洞名称漏洞描述漏洞危害修复建议sql注入漏洞sql注入攻击(sql injection),简称注入攻击、sql注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。 在设计不良的程序当中,忽略了对输入字符串中夹带的sql指令的检查,那么这些夹带进去的指令就会被数据库误认为是正常的sql指令而运行, 从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。1) 机密数据被窃取2) 核心业务数据被篡改3) 网页被篡改4) 数据库所在服务器被攻击变为傀儡主机,甚至企业网被入侵。1) 所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到sql语句中。当前几乎所有的数据库系统都提供了参数化sql语句执行接口,使用此接口可以非常有效的防止sql注入攻击。2) 对进入数据库的特殊字符(&*;等)进行转义处理,或编码转换。3) 确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。4) 网站每个数据层的编码统一,建议全部使用utf-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。跨站脚本漏洞跨站脚本攻击(cross-site scripting,通常简称为xss)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、偷取密码、传播恶意代码等攻击行为。恶意的攻击者将对客户端有危 害的代码放到服务器上作为一个网页内容,使得其他网站用户在观看此网页时,这些代码注入到了用户的浏览器中执行,使用户受到攻击。一般而言,利用跨站脚本 攻击,攻击者可窃会话cookie从而窃取网站用户的隐私,包括密码。1) 钓鱼欺骗:最典型的就是利用目标网站的反射型跨站脚本漏洞将目标网站重定向到钓鱼网站,或者注入钓鱼javascript以监控目标网站的表单输入,甚至发起基于dhtml更高级的钓鱼攻击方式。2) 网站挂马:跨站时利用iframe嵌入隐藏的恶意网站或者将被攻击者定向到恶意网站上,或者弹出恶意网站窗口等方式都可以进行挂马攻击。3) 身份盗用:cookie是用户对于特定网站的身份验证标志,xss可以盗取到用户的cookie,从而利用该cookie盗取用户对该网站的操作权限。如果一个网站管理员用户cookie被窃取,将会对网站引发巨大的危害。1) 与sql注入防护的建议一样,假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括http请求中的cookie中的变量,http请求头部中的变量等。2) 不仅要验证数据的类型,还要验证其格式、长度、范围和内容。3) 不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。4) 对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。跨站请求伪造漏洞csrf(cross-site request forgery跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为csrf或者xsrf,是一种对网站的恶意利用。csrf通过伪装来自受信任用户的请求来利用受信任的网站。已经通过被保存在用户浏览器中的cookie进行认证的用户将在完全无知的情况下发送http请求到那个信任他的站点,进而进行用户不愿做的行为。1、利用referer、token或者验证码;2、在客户端防御,在浏览器上拦截或者过滤跨域的cookie目录遍历目录遍历指的是应用程序对文件路径没有检查导致服务器上的敏感文件/代码泄漏。可能会导致源代码等敏感信息泄露。严格检查文件路径参数,限制在指定的范围。严格限制文件路径参数,不允许用户控制文件路径相关的参数,限定文件路径范围。个人研究心得:利用网站漏洞扫描器无疑可以实现网络漏洞扫描的自动化、高速化甚至批量化,但是自动化的漏洞扫描是有它本身的局限性。比如一些网站业务逻辑漏洞、网站数据传输安全性、一些网站的安全配置是无法单独靠网站扫描器来完成的。网站扫描器对于初学者无疑是一个神兵利器,但是要想把网站漏洞扫描器利用好,首先要必须了解网站中存在的常见漏洞,并了解各种漏洞的危害程度及利用方法,这样我们才能对扫描出来的漏洞提出合理的整改或者加固建议。2) 网站安全漏洞扫描方案: 确立需要进行安全漏洞扫描的网站域名或地址。 选取网站漏洞扫描工具。 使用选取的网站漏洞扫描工具对目标网站进行安全漏洞扫描并输出结果。3) 具体扫描方法; 可使用知名网站漏洞扫描工具awvs(acunetix web vulnerability scanner)或者openvas对目标网站进行扫描工作,本次测试使用awvs对实验环境中搭建的一个网站进行扫描,具体操作方法如下: 打开awvs软件,打开初始界面如下截图所示,点击截图中红框所示的选项“new scan”进行新建新建扫描任务可以按照默认的选项直接点击“next”至“finished”即可开始进行扫描,注意默认的扫描是调用awvs中所有模块进行扫描。扫描结果如下截图所示: 标注:所示红框内是网站安全扫描中发现的问题,包含漏洞信息以及其他敏感信息,本次扫描发现存在sql盲注漏洞以及iis短文件漏洞2个高危漏洞,9个url链接存在csrf跨站请求伪造漏洞,敏感信息就不再描述。所示红框内是网站安全扫描的结果整体风险等级评为3级(高危)。所示红框内是网站安全扫描整体问题数量展示,其中高危漏洞的有2个,中危漏洞存在9个,低危漏洞存在17个,敏感信息7个。3.2.3 手工漏洞挖掘1) 简介及个人研究心得:简介:有些漏洞是不可能靠自动化扫描工具扫描出来的,必须要依赖渗透测试工程师专业知识使用相关工具进行手工检测,比如说一些网站设计上的业务逻辑漏洞、数据传输的安全性检测、越权等等漏洞,下表是对一些常见的手工测试漏洞的简介:表3-3 常见手工测试漏洞检测漏洞名称漏洞简介业务逻辑漏洞由于网站建设者对业务缺乏业务上深入的了解导致业务逻辑漏洞,例如支付逻辑漏洞,本来该物品是2000元,但是你可以通过一些手段绕过支付验证并将支付金额改为0.1元都可以成功付款。数据传输安全性检测数据在传输过程中没有经过加密,或者没有在客户端方进行验证越权访问检测能够访问设置sql注入所谓sql注入,就是通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的sql命令。个人研究心得,如下表3-4所示:表3-4 常见手工测试漏洞检测技术研究心得漏洞名称个人研究心得业务逻辑漏洞逻辑漏洞有各种各样,主要原因无疑是由于因为网站开发人员对业务逻辑了解不够透彻,所以经常导致存在一些账号密码可绕过验证更改密码、网上支付可通过支付0.01元甚至可买一辆车的,这无疑对网站运营方造成巨大麻烦。我们可以经常去一些论坛看看前人的经验是怎么发现逻辑漏洞的,逻辑漏洞是各种各样,还有各种未被发现的逻辑漏洞期待我们去发现。数据传输安全性检测如果无法保证传输数据的安全性,将可能导致个人在网上的一些敏感信息(身份证、密码、银行卡号、手机号等等)被非法分子获取,所以数据传输的安全性测试极为重要。越权访问检测越权表示一些用户可以通过一些手段绕过一些验证机制从而可以执行一些本该属于自己权限之外的操作,这是很危险的事情,如一个网站的普通用户通过一些手段而成功执行网站管理员的操作。越权漏洞测试对于一个网站的安全性是很有必要的。sql注入sql注入漏洞属于高危漏洞,许多网站的安全问题都是因为被sql注入攻击最后获取到数据库中的后台管理账户密码,然后被黑客通过后台上传网页木马等手段进一步控制网站,甚至进一步提权拿到网站服务器的控制权限。所以sql注入是必须要掌握的渗透测试技巧,而且方法是多样的,有时候工具容易被网站一些防护措施阻挡,但可以通过手工注入去尝试绕过防护。所以,sql注入不仅要学会工具的使用,更深层次的是手工注入。2) 具体漏洞测试方案:表3-5 常见手工测试漏洞检测方案漏洞名称方案业务逻辑漏洞逻辑漏洞没有特定的测试方案,有的知识根据现实中的逻辑思维对网络系统中的设计是否合理进行测试。数据传输安全性检测主要通过使用工具(burisuit)截取数据传输过程中的数据包,并加以分析以获取有价值的信息。越权访问检测对未被授权的操作尝试使用一些手段绕过验证机制来进行超越权限之外的操作来检测是否能实现越权操作。sql注入使用sqlmap对目的url进行sql注入检测。3) 具体漏洞方法介绍: 业务逻辑漏洞测试下面对某某团购网进行测试,测试账号已经已绑定手机号并设置了支付密码,如下截图所示:输入另外一个手机号码和验证码就可以绑定新号码,没有进行任何验证,完全与之前绑定的手机号无任何关联了,这就属于一个业务逻辑误区。绑定新号码后,就可以选择“忘记支付密码”,发送短信验证码到新绑定的手机号,来更改支付密码现在就可以使用账户余额消费了,这对于整个平台来说是非常危险的事情,

温馨提示

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

评论

0/150

提交评论