Penetration Testing 渗透测试

来源:百度文库 编辑:神马文学网 时间:2024/04/28 04:21:32
 Penetration Testing 渗透测试
目录
零、前言
一、简介
二、制定实施方案
三、具体操作过程
四、生成报告
参考资料
零、前言
渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethicalhacking),因此我们这里的所有读者应当都是EthicalHackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员 ;)
这里,我还想对大家说一些话:渗透测试重在实践,不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,即使您将它打印出来沾点辣椒酱吃了也不行,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢保证:互联网的安全不为因为这样而更安全。祝您好运。。。
一、简介 什么叫渗透测试? 渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
进 行渗透测试的目的? 了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。为什么说叫直观呢?就像Mitnick书里面提 到的那样,安全管理(在这里我们改一下,改成安全评估工作)需要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行破坏,他就算是 很成功的了。
渗透测试是否等同于风险评估? 不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。
已经进行了安全审查,还需要渗透测试吗? 如果我对您说:嘿,中国的现有太空理论技术通过计算机演算已经能够证明中国完全有能力实现宇航员太空漫步了,没必要再发射神8了。您能接受吗?
渗 透测试是否就是黑盒测试? 否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这 时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。
渗透测试涉及哪些内容? 技术层面主要包括网络设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。
渗透测试有哪些不足之处? 主要是投入高,风险高。而且必须是专业的Ethical Hackers才能相信输出的最终结果。
二、制定实施方案
实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:
是否允许数据破坏?
是否允许阻断业务正常运行?
测试之前是否应当知会相关部门接口人?
。。。
在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含如下内容:
实施方案部分: ...
书面委托授权部分: ...
三、具体操作过程
1、信息收集过程
网 络信息收集: 在这一部还不会直接对被测目标进行扫描,应当先从网络上搜索一些相关信息,包括Google Hacking,Whois查询,DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工 帐号组成,身份识别方式,邮件联系地址等)。涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft
目 标系统信息收集: 通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。这里特别要注意一些比较偏门的 HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。
从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。
端口/服务信息收集: 这一部分已经可以开始直接的扫描操作,涉及的工具包括:
nmap,thc-amap
应用信息收集:httprint,SIPSCAN,smap
2、漏洞扫描
这一步主要针对具体系统目标进行。如通过第一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:
针对系统层面的工具有:ISS,Nessus, SSS, Retina, 天镜, 极光
针对WEB应用层面的工具有:AppScan,Acunetix Web Vulnerability Scanner,WebInspect,Nstalker
针对数据库的工具有:
针对VOIP方面的工具有:PROTOS c07 sip(在测试中直接用这个工具轰等于找死)以及c07 h225,Sivus,sipsak等。
事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。
3、漏洞利用
有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rm,securityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称 exploit”、“应用名称 vulnerability”等关键字。
当然,大部分情况下你都可以不这么麻烦,网络中有一些工具可供我们使用,最著名的当属metasploit了,它是一个开源免费的漏洞利用攻击平台。其他的多说无益,您就看它从榜上无名到冲进前五(top 100)这一点来说,也能大概了解到它的威力了。除此之外,如果您(您们公司)有足够的moeny用于购买商用软件的话,CORE IMPACT是相当值得考虑的,虽然说价格很高,但是它却是被业界公认在渗透测试方面的泰山北斗,基本上测试全自动。如果您觉得还是接受不了,那么您可以去购买CANVAS,据说有不少0DAY,不过它跟metasploit一样,是需要手动进行测试的。最后还有一个需要提及一下的Exploitation_Framework,它相当于一个漏洞利用代码管理工具,方便进行不同语言,不同平台的利用代码收集,把它也放在这里是因为它本身也维护了一个exploit库,大家参考着也能使用。
上面提到的是针对系统进行的,在针对WEB方面,注入工具有NBSI,OWASP SQLiX,SQL Power Injector,sqlDumper,sqlninja,sqlmap,Sqlbftools,priamos,ISR-sqlget***等等。
在针对数据库方面的工具有:
数据库      工具列表
oracle      thc-orakel
MS Sql Server
Mysql
DB2
这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具甚至是0DAY代码,最常见的是SQL注入工具,现网开发的注入工具(如NBSI等)目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统使用的一些相对比较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。
4、权限提升
5、密码破解
有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完全没办法进入。最简单的说,一个缺少密码完全策略的论证系统就等于你安装了一个不能关闭的防盗门。很多情况下,一些安全技术研究人员对此不屑一顾,但是无数次的安全事故结果证明,往往破坏力最大的攻击起源于最小的弱点,例如弱口令、目录列表、SQL注入绕过论证等等。所以说,对于一些专门的安全技术研究人员来说,这一块意义不大,但是对于一个ethicalhacker来说,这一步骤是有必要而且绝大部分情况下是必须的。;)
目前比较好的网络密码暴力破解工具有:thc-hydra,brutus
目前网络中有一种资源被利用的很广泛,那就是rainbow table技术,说白了也就是一个HASH对应表,有一些网站提供了该种服务,对外宣称存储空间大于多少G,像rainbowcrack更是对外宣称其数据量已经大于1.3T。
针对此种方式对外提供在线服务的有:
网址                           描述
rainbowcrack                       里面对应了多种加密算法的HASH。
http://gdataonline.com/seekhash.php
http://www.milw0rm.com/cracker/info.php
http://www.hashchecker.com/?_sls=search_hash
http://bokehman.com/cracker/
http://passcracking.ru/
http://md5.neeao.com/                  国内人员提供的在线MD5检查平台,据说已集成了一些其他网站的HASH结果。
http://www.cmd5.com/                  网站说明中有一些比较有意思:针对国内用户做了大量优化...也不知道是真是假, ;)
当然,有些单机破解软件还是必不可少的:Ophcrack,rainbowcrack(国人开发,赞一个),cain,L0phtCrack(破解Windows密码),John the Ripper(破解UNIX/LINUX)密码,当然,还少不了一个FindPass...
在渗透测试过程中,一旦有机会接触一些OFFICE文档,且被加了密的话,那么,rixler是您马上要去的地方,他们提供的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果说明,谢谢)。看来微软有理由来个补丁什么的了。对于企业来说,您可以考虑使用铁卷或者RMS了。
四、生成报告
报告中应当包含:
薄弱点列表清单(按照严重等级排序)
薄弱点详细描述(利用方法)
解决方法建议
参与人员/测试时间/内网/外网
参考资料:
大成天下渗透测试服务技术白皮书 v1.4
Penetration Testing Framework
Report Template
http://www.phenoelit.de/dpl/dpl.html
http://snakeoillabs.com/downloads/GHDB.xml
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1691544
Penetration Testing 渗透测试 51Testing软件测试网:谈软件测试的心得 51Testing软件测试网:系统性能测试方案 51Testing软件测试网:测试需求点不是很难做 51Testing软件测试网:测试缺陷分析务实篇 51Testing软件测试网:系统性能测试方案 从测试用例看测试的问题及变化-Testing-CSDN TestDirector介绍 - April测试家园 - 51Testing软件测试网 -... 面经 - Solar's Testing Life - 51Testing软件测试网 - ... 什么是SQL注入法攻击 - 叶帆小筑 - 51Testing软件测试网 51Testing... 51Testing软件测试网:TestDirector用户手册(续1) 51Testing软件测试网:测试报告编写指南 QTP - evergreen_wang - 51Testing软件测试网 - Power... 51Testing软件测试网:测试报告编写指南 什么是可用性测试? - 51Testing软件测试网-中国软件测试人的精神家园 Loadrunner关联 - Becky的测试收纳箱 - 51Testing软件测试网 -... LoadRunner介绍 - April测试家园 - 51Testing软件测试网 - P... LoadRunner进程和线程设置 - 51Testing软件测试网-中国软件测试人的精神... QTP与QC的完美结合实现自动化测试框架-业务组件测试 - 51Testing软件测试网-... 服务器系统平台的渗透测试中的攻击与防守 服务器系统平台的渗透测试中的攻击与防守 Eclipse插件Continuous Testing-持续测试将错误扼杀在摇篮之中 51Testing软件测试网:Java学习从入门到精通(ZZ) 51Testing软件测试网:java经典问题:传值还是传引用