一、简介
二、制订履行方案
三、详细操作过程
四、天生报告
五、测试过程中的风险及规避
零、序言
渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们供应的所有渗透测试方法均为(假设为)合法的评估做事,也便是常日所说的道德黑客行为(Ethical hacking),因此我们这里的所有读者应该都是Ethical Hackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员 ;)
这里,我还想对大家说一些话:渗透测试重在实践,您须要一颗永不言败的心和一个有着生动思维的大脑。不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,纵然您将它打印出来沾点辣椒酱吃了也弗成,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢担保:互联网的安全不为由于这样而更安全。祝您好运。。。
一、简介
什么叫渗透测试?
渗透测试最大略直接的阐明便是:完备站在攻击者角度对目标系统进行的安全性测试过程。
进行渗透测试的目的?
理解当前系统的安全性、理解攻击者可能利用的路子。它能够让管理职员非常直不雅观的理解当前系统所面临的问题。为什么说叫直不雅观呢?就像Mitnick书里面提到的那样,安全管理(在这里我们改一下,改成安全评估事情)须要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行毁坏,他就算是很成功的了。
渗透测试是否等同于风险评估?
不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试繁芜的多,它除渗透测试外还要加上资产识别,风险剖析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。
已经进行了安全审查,还须要渗透测试吗?
如果我对您说:嘿,中国的现有太空理论技能通过打算机演算已经能够证明中国完备有能力实现宇航员太空溜达了,没必要再发射神8了。您能接管吗?
渗透测试是否便是黑盒测试?
否,很多技能职员对这个问题都存在这个缺点的理解。渗透测试不但是要仿照外部黑客的入侵,同时,防止内部职员的故意识(无意识)攻击也是很有必要的。这时,安全测试职员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就知足灰盒乃至白盒测试。
渗透测试涉及哪些内容?
技能层面紧张包括网络设备,主机,数据库,运用系统。其余可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。
渗透测试有哪些不敷之处?
紧张是投入高,风险高。而且必须是专业的Ethical Hackers才能相信输出的终极结果。
你说的那么好,为什么渗透测试事情在中国开展的不是很火热呢?
我只能说:会的,一定会的。渗透测试的关键在于没法证明你的测试结果便是完善的。用户不知道花了钱证明了系统有问题往后,自己的安全等级到了一个什么程序。但是很显然,用户是相信一个专业且履历丰富的安全团队的,这个在中国问题比较严重。在我打仗了一些大型的安全公司进行的一些渗透测试过程来看,测试职员的水平是对不住开的那些价格的,而且从测试过程到结果报表上来看也是不卖力的。我估计在三年往后,这种情形会有所改不雅观,到时一方面安全职员的技能力量有很大程度的改不雅观,另一方面各企业对渗透测试会有一个比较深刻的理解,也会将其做为一种IT审计的办法加入到开拓流程中去。渗透测试的专业化、商业化会越来越成熟。
二、制订履行方案
履行方案应该由测试方与客户之间进行沟通协商。一开始测试方供应一份大略的问卷调查理解客户对测试的基本吸收情形。内容包括但不限于如下:
目标系统先容、重点保护工具及特性。
是否许可数据毁坏?
是否许可阻断业务正常运行?
测试之前是否应该知会干系部门接口人?
接入办法?外网和内网?
测试是创造问题就算成功,还是尽可能的创造多的问题?
渗透过程是否须要考虑社会工程?
。。。
在得到客户反馈后,由测试方书写履行方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应该对测试方进行书面委托授权。这里,两部分文档分别应该包含如下内容:
履行方案部分:
...
书面委托授权部分:
...
三、详细操作过程
1、信息网络过程
网络信息网络:
在这一部还不会直接对被测目标进行扫描,应该先从网络上搜索一些干系信息,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别办法,邮件联系地址等)。
1.利用whois查询目标域名的DNS做事器
2.nslookup
>set type=all
><domain>
>server <ns server>
>set q=all
>ls -d <domain>
涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft,seologs 除此之外,我想特殊提醒一下利用Googlebot/2.1绕过一些文件的获取限定。
Google hacking 中常用的一些语法描述
1.搜索指定站点关键字site。你可以搜索详细的站点如site:www.nosec.org。利用site:nosec.org可以搜索该域名下的所有子域名的页面。乃至可以利用site:org.cn来搜索中国政府部门的网站。
2.搜索在URL网址中的关键字inurl。比如你想搜索带参数的站点,你可以考试测验用inurl:asp?id=
3.搜索在网页标题中的关键字intitle。如果你想搜索一些上岸后台,你可以考试测验利用intitle:\公众admin login\"大众
目标系统信息网络:
通过上面一步,我们应该可以大略的描述出目标系统的网络构造,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。这里特殊要把稳一些比较偏门的HOST名称地址,如一些backup开头或者temp开关的域名很可能便是一台备份做事器,其安全性很可能做的不足。
从获取的地址列表中进行系统判断,理解其组织架构及操作系统利用情形。最常用的方法的是目标所有IP网段扫描。
端口/做事信息网络:
这一部分已经可以开始直接的扫描操作,涉及的工具包括:nmap,thc-amap
1.我最常利用的参数
nmap -sS -p1-10000 -n -P0 -oX filename.xml --open -T5 <ip address>
运用信息网络:httprint,SIPSCAN,smap
这里有必要将SNMP拿出来单独说一下,由于目前许多运营商、大型企业内部网络的掩护台通过SNMP进行数据传输,大部分情形是利用了默认口令的,撑去世改了private口令。这样,攻击者可以通过它网络到很多有效信息。snmp-gui,HiliSoft MIB Browser,mibsearch,net-snmp都是一些很好的资源。
2、漏洞扫描
这一步紧张针对具体系统目标进行。如通过第一步的信息网络,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些剖析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:
针对系统层面的工具有:ISS, Nessus, SSS, Retina, 天镜, 极光
针对WEB运用层面的工具有:AppScan, Acunetix Web Vulnerability Scanner, WebInspect, Nstalker
针对数据库的工具有:ShadowDatabaseScanner, NGSSQuirreL
针对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(1521端口): 目前紧张存在以下方面的安全问题:
1、TNS监听程序攻击(sid信息透露,停滞做事等)
2、默认账号(default password list)
3、SQL INJECTION(这个与传统的意思还不太一样)
4、缓冲区溢出,现在比较少了。 thc-orakel, tnscmd, oscanner, Getsids, TNSLSNR, lsnrcheck, OAT, Checkpwd, orabf MS Sql Server(1433、1434端口) Mysql(3306端口) DB2(523、50000、50001、50002、50003端口) db2utils Informix(1526、1528端口)
在针对Web做事器方面的工具有:
WEB做事器 工具列表 IIS IISPUTSCANNER Tomcat 想起/admin和/manager管理目录了吗?其余,目录列表也是Tomcat做事器中最常见的问题。比如5.版本中的http://127.0.0.1/;index.jsp
http://www.example.com/foo/\"大众../manager/html
http://www.example.com:8080/examples/servlets/servlet/CookieExample?cookiename=HAHA&cookievalue=%5C%22FOO%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2F%3B
http://www.example.com:8080/servlets-examples/servlet/CookieExample?cookiename=BLOCKER&cookievalue=%5C%22A%3D%27%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2Fservlets-examples%2Fservlet+%3B JBOSS jboss的漏洞很少,老版本中8083端口有%符号的漏洞:
GET %. HTTP/1.0可以获取物理路径信息,
GET %server.policy HTTP/1.0可以获取安全策略配置文档。
你也可以直接访问GET %org/xxx/lib.class来获取编译好的java程序,再利用一些反编译工具还原源代码。 Apache Resin http://victim/C:%5C/
http://victim/resin-doc/viewfile/?file=index.jsp
http://victim/resin-doc/viewfile/?contextpath=/otherwebapp&servletpath=&file=WEB-INF/web.xml
http://victim/resin-doc/viewfile/?contextpath=/&servletpath=&file=WEB-INF/classes/com/webapp/app/target.class
http://victim/[path]/[device].[extension]
http://victim/%20..\"大众web-inf
http://victim/%20
http://victim/[path]/%20.xtp WebLogic
Web安全测试紧张环绕几块进行:
Information Gathering:也便是一样平常的信息泄露,包括非常情形下的路径泄露、文件归档查找等
Business logic testing:业务逻辑处理攻击,很多情形下用于进行业务绕过或者欺骗等等
Authentication Testing:有无验证码、有无次数限定等,总之便是看能不能暴力破解或者说容不随意马虎通过认证,比较直接的便是“默认口令”或者弱口令了
Session Management Testing:会话管理攻击在COOKIE携带认证信息时最有效
Data Validation Testing:数据验证最好理解了,便是SQL Injection和Cross Site Script等等
目前网上能够找到许多能够用于进行Web测试的工具,根据不同的功能分紧张有:
列举(Enumeration): DirBuster, http-dir-enum, wget
基于代理测试类工具:paros, webscarab, Burp Suite
针对WebService测试的部分有一些尚不是很成熟的工具,如:wsbang,wschess,wsmap,wsdigger,wsfuzzer
这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具乃至是0DAY代码,最常见的是SQL注入工具,现网开拓的注入工具(如NBSI等)目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统利用的一些相比拟较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不涉及或者说还不足深入。这时各渗透测试团队就开拓了知足自身利用习气的测试工具。
在针对无线环境的攻击有:WifiZoo
4、权限提升
在前面的一些事情中,你或许已经得到了一些掌握权限,但是对付进一步攻击来说却还是不足。例如:你可能很随意马虎的能够获取Oracle数据库的访问权限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一个基本账号权限,但是当你想进行进一步的渗透测试的时候问题就来了。你创造你没有足够的权限打开一些密码存储文件、你没有办法安装一个SNIFFER、你乃至没有权限实行一些很基本的命令。这时候你自然而然的就会想到权限提升这个路子了。
目前一些企业对付补丁管理是存在很大一部分问题的,他们可能压根就没有想过对一些做事器或者运用进行补丁更新,或者是延时更新。这时候便是渗透测试职员的好机会了。履历之谈:有一样平常权限的Oracle账号或者AIX账号基本上即是root,由于这便是现实生活。
5、密码破解
有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完备没办法进入。最大略的说,一个短缺密码完备策略的论证系统就即是你安装了一个不能关闭的防盗门。很多情形下,一些安全技能研究职员对此不屑一顾,但是无数次的安全事件结果证明,每每毁坏力最大的攻击起源于最小的弱点,例如弱口令、目录列表、SQL注入绕过论证等等。以是说,对付一些专门的安全技能研究职员来说,这一块意义不大,但是对付一个ethical hacker来说,这一步骤是有必要而且绝大部分情形下是必须的。;)
目前比较好的网络密码暴力破解工具有:thc-hydra,brutus
>hydra.exe -L users.txt -P passwords.txt -o test.txt -s 2121 www.heimian.com ftp
目前网络中有一种资源被利用的很广泛,那便是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://www.md5.org.cn http://www.cmd5.com/ 数据量环球第一,如果本站无法破解,那么你只能去拜春哥...
当然,有些单机破解软件还是必不可少的:Ophcrack,rainbowcrack(国人开拓,赞一个),cain,L0phtCrack(破解Windows密码),John the Ripper(破解UNIX/LINUX)密码,当然,还少不了一个FindPass...
针对网络设备的一些默认帐号,你可以查询http://www.routerpasswords.com/和http://www.phenoelit-us.org/dpl/dpl.html
在渗透测试过程中,一旦有机会打仗一些OFFICE文档,且被加了密的话,那么,rixler是您立时要去的地方,他们供应的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果解释,感激)。看来微软有情由来个补丁什么的了。对付企业来说,您可以考虑利用铁卷或者RMS了。
6、日志打消
It is not necessary actually.
7、进一步渗透
攻入了DMZ区一样平常情形下我们也不会获取多少用代价的信息。为了进一步巩固战果,我们须要进行进一步的内网渗透。到这一步就真的算是无所不用其及。最常用且最有效的办法便是Sniff抓包(可以加上ARP欺骗)。当然,最大略的你可以翻翻已入侵机器上的一些文件,很可能就包含了你须要的一些连接帐号。比如说你入侵了一台Web做事器,那么绝大部分情形下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。
除此之外,你可以直接回到第二步漏洞扫描来进行。
四、天生报告
报告中应该包含:
薄弱点列表清单(按照严重等级排序)
薄弱点详细描述(利用方法)
办理方法建议
参与职员/测试韶光/内网/外网
五、测试过程中的风险及规避
在测试过程中无可避免的可能会发生很多可预见和不可预见的风险,测试方必须供应规避方法以免对系统造成重大的影响。以下一些可供参考:
1. 不实行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据毁坏)。
2. 测试验证韶光放在业务量最小的韶光进行。
3. 测试实行前确保干系数据进行备份。
4. 所有测试在实行前和掩护职员进行沟通确认。
5. 在测试过程中涌现非常情形时立即停滞测试并及时规复系统。
6. 对原始业务系统进行一个完备的镜像环境,在镜像环境上进行渗透测试。
参考资料:
大成天下渗透测试做事技能白皮书 v1.4
Penetration Testing Framework
Report Template
http://www.phenoelit.de/dpl/dpl.html
http://snakeoillabs.com/downloads/GHDB.xml
http://www.eccouncil.org/Course-Outline/Ethical%20Hacking%20and%20Countermeasures%20Course.htm
http://www.owasp.org/index.php/OWASP_Testing_Project
http://www.red-database-security.com
http://www.petefinnigan.com
http://www.insomniasec.com/releases/whitepapers-presentations
http://www.isecom.org/osstmm/