[个人心得]谈渗透测试方法和流程
小编:本篇文章由渗透师、Freebuf资深会员Only_Guest带来,分享了他个人整理的渗透测试方法和流程,文章中穿插了不少实战经验和实例,足见功力,相信大家一定能学到不少东西。
渗透测试方法及流程
Email:Guest#pkav.net
Site: http://www.pkav.net
Data: 2013-5-18
1,分析目标网站内容及功能
(1) 首先确定网站采用何种语言编写.或者是否有混用的情况.此处可以通过查看网站源文件,观察网站链接,捕获提交请求等方式获取.
(2) 爬行网站目录,使用工具对网站目录进行爬行,可以辅助上一步让结果更加精准.将爬行结果存档,如果可以,此处应分析出网站是否使用通用程序,如果是,记录下来.进行下一步.
(3) 根据上一步的爬行结果,对网站根目录或者关键目录进行暴力目录探测,如果网站为通用程序,判读是否有过二次开发,如非通用程序,在探测到的目录中寻找关键目录及文件.
此步骤详细测试方法:
1.输入并访问一些不可能存在的文件或目录名,再输入并访问一些通过目录爬行已知存在的目录及文件名,从而得知服务器如何处理无效资源.
2.使用网站爬行到的结果作为此步骤暴力目录探测的依据,扫描关键目录或全部.
3.确定服务器如何处理文件无法找到的回应,并使用关键字技术来处理这些回应.从而判断有效资源及无效资源.
4.收集此步骤暴力扫描得到的结果,并手工检测探测到目录的有效性.
5.重复以上步骤,得到更多更关键的目录及文件.
(4) 通过上面步骤,得到一个完整的网站目录结构,以及枚举到的所有目录名称,文件名称及文件扩展名.了解网站开发人员的命名思路,确定其命名规则,推测出更多的目录及文件名.
此步骤详细测试方法:
1.检查整个列表中的文件命名规则,判读其命名依据,如发现几个部分内容相同的文件名,addnews.php,viewnews.php,那么我们就可以尝试是否存在editnews.php,delnews.php,通常只要查看几个文件名,就可以推测出网站开发人员的命名习惯,根据其个人风格,开发者可能采用各种命名方法,如冗长式(addnewuser.php),简洁式(adduser.php),缩写式(addusr.php),或者更加模糊的命名方式(addu.php).了解开发者使用的命名习惯有助于推测出尚未确定内容的准确名称.
2.有些不同内容的命名方案使用数字和日期作为标识符,通过他们可以轻易推测出隐藏的内容.静态页面经常采用这种命名方式.
例如PKAV.NET 的团队博客中,文章里所展示的图片的文件名没有被重新定义,采用了日期加数字递增的命名方案,如2012年12月12号发布的文章中的图片分别为1.jpg,2.jpg,3.jpg.那么这些图片的路径就是/2012-12-12/1.jpg, /2012-12-12/2.jpg, /2012-12-12/3.jpg , 此时我们在博客上发布了一篇内容加密的文章,只有团队成员才知道密码,但是黑客们根据博客以往发布文章的命名规则推测出了这些图片的准确地址,从而通过图片内容泄漏了文章的大致概念.
3.检查所有客户端代码,如HTML及JS代码,寻找任何隐藏了服务器端的线索,以及隐藏的表单元素等.认证检查注释内容,往往能带给我们惊喜,如部分通用程序会在网站首页放置一个通向网站管理后台的链接,但网站管理人员不希望这个链接被正常访问者所得知,于是将内容注释,我们可以通过查看HTML代码得知此具体地址,还有大多数的管理后台中所调用的JS 中常常会存储着后台所有功能模块的链接地址,但在判断了当前用户权限后将其隐藏起来,我们也可以通过直接查看JS代码的方式得知具体的内容,还有一些开发者会在注释内容中记录一些敏感信息,我多次从注释信息中得到数据库的名称,甚至可以得到数据库的具体连接信息,SQL 查询语句等.
4.把我们通过推测枚举出来的内容放在其他地方进行尝试。
如文件a.php 在/111/这个目录下存在,那么我们可以尝试在/222/这个目录下尝试是否存在相同文件,把所有枚举出来的文件名使用一些常规后缀来尝试访问,如index.php 这个文件已知存在,我们可以使用txt,bak,src,inc,tmp 等后缀进行尝试,如尝试index.txt,index.bak 或者添加在原有后缀基础上,index.php.bak 等.这样可以帮助我们获取这些文件的未编译版本,开发版本或者备份文件,还可以通过网站使用的语言来推测,如java 使用的.cs 后缀等.
5.搜索开发者使用的开发工具或者文本编辑器创建的临时文件。如SVN的.svn/entries,又或者Ultraedit这类文本编辑器的自动备份功能创建的.bak文件,被大量使用的.tmp后缀,以及index.php~1 这样的遗留文件,这些都是可能会发现重要线索的细节,测试中一定不要遗漏这些步骤.
6.将上述的步骤自动化,提取所有存在的文件名以及目录,后缀的词干信息,在所有目录下进行自动化批量探测.
7.如果通过以上步骤已经确定一种统一的命名方案,那么就可以使用此命名规则在整个站点下进行测试.
8.不断重复以上步骤,获取更多的关键信息,根据时间及个人想象力尽情发挥!
(5) 利用公共信息,如搜索引擎,站点快照信息,以及其网站所使用的程序开发商公布的一些使用文档等信息近一步获取目标站点更多信息.
1.使用几种不同的搜索引擎和网站快照来获取目标站点的索引和历史内容记录.
2.使用搞基搜索技巧如:
site:www.hao123.com (返回此目标站点被搜索引擎抓取收录的所有内容)
site:www.hao123.com 关键词 (返回此目标站点被搜索引擎抓取收录的包含此关键词的所有页面.此处我们可以将关键词设定为,网站后台,管理后台,密码修改,密码找回等.)
site:www.hao123.com inurl:admin.php (返回目标站点的地址中包含admin.php的所有页面,可以使用admin.php,manage.php或者其他关键词来寻找关键功能页面)
link:www.hao123.com (返回所有包含目标站点链接的页面,其中包括其开发人员的个人博客,开发日志,或者开放这个站点的第三方公司,合作伙伴等)
related:www.hao123.com (返回所有与目标站点”相似”的页面,可能会包含一些通用程序的信息等.)
3.在搜索时不要只使用网页的搜索功能,可以尝试如图片,新闻等功能来定位具体信息.
4.从搜索引擎的快照中寻找一些关键信息,如程序报错信息可以会泄漏网站具体路径,或者一些快照中会保存一些测试用的测试信息,比如说某个网站在开发了后台功能模块的时候,还没给所有页面增加权限鉴别,此时被搜索引擎抓取了快照,即使后来网站增加了权限鉴别,但搜索引擎的快照中仍会保留这些信息.
5通过搜索引擎获取目标站点的子域名,得到更多的功能,如有些网站经常使用admin 这个子域名作为其管理后台,如admin.hao123.com等.
(6) 收集网站开发者信息,如网站的开发人员,管理维护人员等在互联网上的一些信息.
1.列出网站中得到的所有开发及维护人员的姓名和邮件地址及其他联系方式,其中包含从网站联系功能中获取到的,从HTML或JS中的注释信息中得到的,已经内容页面上获取到的。
2.使用上面介绍的一些高级搜索技巧,查找这些人在互联网上发布的与目标站点有关的一切信息,分析并发现有用的信息,如我曾经在用这个方法获取某国内大型网站的开发人员的信息时,竟发现他把他开发过的所有功能页面的源代码都放在一个公开的网站中,可以随意下载,包含了这个网站的数据库链接信息等关键内容,从而导致我轻松获取到这个大型网站的权限。
[原文地址]
相关讨论:
呵呵 2013-05-23 1楼
不错,连载?
only_guest的基友 2013-05-23 2楼
搞基搜索
李桑 2013-05-23 3楼
不建议前期信息收集使用工具去爬,首先规避ips/ids,如果过早暴露自己的动机,会增大后期渗透的难度!
301 2013-05-23 4楼
nice !
anlfi (1级) ??????????????????????????... 2013-05-23 5楼
看了半天原来在踩点,收集信息。
爬目录,还有权限来路检测呢,
“将上述的步骤自动化,提取所有存在的文件名以及目录,后缀的词干信息,在所有目录下进行自动化批量探测. ”该不会在推销什么产品吧
文章写得很长 但是我发现真没什么话说 没有亮点没有观点
全是方法 也许做培训很有用吧呵呵(x钱)
围观稍微一下呵呵
henlendog 2013-05-23
@anlfi 给红黑联盟现场培训的稿子。
瀚海书香 (1级) 2013-05-23
强烈同意!假大空,比较适合给不懂安全的人(比如领导)做培训用
fake 2013-05-23
@anlfi 不同意,还是有点营养的。你自己不善于发掘罢了!
anlfi (1级) ??????????????????????????... 2013-05-23
@fake 那就要看你是什么观点和角度了
做防御的并不需要知道具体怎么攻击
简了的叙述对如何被攻击的 对做安全很有帮助
但是对于你怎么去xxoo 呵呵
你看看是赞同的人多还是反对的人多就知道了
我保持中立 只是围观
———————————
敢于质疑权威挑战权威才是这个世界得以进步的关键 别去迷信 你认为别人是错的可以去证明
而不是对方到底是谁那毫无意义
netbutless (1级) 2013-05-29
@anfi 单就这点“做防御的并不需要知道具体怎么攻击” 不赞同
要想防御做的好,还是需要了解具体攻击的。
lotte (3级) 2013-05-23 6楼
油水太多了,理论都知道!
推荐一些工具或者敲门更好!!
互相吹捧 2013-05-23 7楼
互相吹捧
anlfi (1级) ??????????????????????????... 2013-05-23 8楼
╮(╯▽╰)╭PKAV WEB Scanner(我猜的)
only_guest (5级) PKAV安全团队负责人,天融信渗透测试工程师 2013-05-23
@anlfi 本来这就是给某网站实地培训时候写的一篇培训稿,有新手普及的意义,就发出来了。没有必要争论有没有亮点,一定要有亮点的文章才能发的话,那就真的只有闭门造车了。新手需要进步,你不能保证freebuf上全是高手,普及性的文章难道没有存在的必要?我们的扫描器不需要去推广,反正是内部使用的东西,自己觉得好用就行。所以别妄加猜测。
anlfi (1级) ??????????????????????????... 2013-05-24
@only_guest 说的对,是我的错,如果引导到一个敏感的话题即使猜测也是很严重的,抱歉
Drizzle.Risk 2013-05-24
@only_guest 不错..有内网渗透么,有绕各种安全设备的么。
eip_0x 2013-05-27
@only_guest 他见谁就喷谁。。。淡定。。没见他写过什么文章来分享。。各种各种喷
闪电小子 (1级) 2013-05-23
@anlfi 呵呵,我可以说几句么?我们的PKav WEB Scanner需要推广,需要写软文?Pker的扫描器大家能耳熟能详吧,那只是现在版本的前身,功能不及牛耳罢了?好东西需要推广?天大的笑话!
再者,作为一个渗透测试工程师,更需要的是流程化的思维结构来规范化测试。而不是脚本小子,乱搞一气!
anlfi (1级) ??????????????????????????... 2013-05-24
@闪电小子 呵呵,用真理来证明才是关键 好东西的确不需要宣传 是我多虑了呵呵
“流程化的思维结构来规范化测试”
抱歉 我也不是专业搞安全的
just hacking for Fun
没有专业的框架 没有现成资源技术
全是自己走到现在的
是我妄加猜测了
面对有组织有计划的团体 感觉很有压力 我去刷盘子了
能了解你们的圈子我很高兴
netbutless (1级) 2013-05-29
@闪电小子 。。。好东西是需要推广的,你这话让你司推广经理看到情何以堪?
thanks (10级) 支付宝安全工程师 2013-05-23
@anlfi 目测这会是一个系列文章。就渗透的前期步骤而言,这篇文章有质量和教学意义的。与其喷来喷去的不如好好研究下,在评论里做点方法技巧补充。
anlfi (1级) ??????????????????????????... 2013-05-24
@thanks
嗯看出来了,但我认为我的技术方法都上不了台面
不能了解现状是我不对了呵呵
anlfi (1级) ??????????????????????????... 2013-05-23
@anlfi 不就是猜错了吗╮(╯▽╰)╭
不玩了,我看是多余的,感觉累了再也不相信爱情了。
Helen 2013-05-23 9楼
我可以说脏话吗?不能吗?那我无话可说。我裤子都脱了你就给我看这个。
aononantisec 2013-05-23 10楼
this is chedan, where the information for dns? and others?
mozhuang bi zao lei p
xiao_hen (1级) 矮穷挫小分队。 2013-05-23 11楼
我只能说,文章真心不错的。
每个人都有自己的想法,所以。
分析,步骤,过程……等等,将会不一样。
aononantisec 2013-05-23 12楼
so you can use cn.bing.com and search ip:x.x.x.x
aononantisec 2013-05-23 13楼
the tool theharvester is good.
and fierce is good ,too
My name is zhuangbi brother
security 2013-05-23
@aononantisec hello,zhuangbi brother,i’m come from Afghanistan,nice to meet you,my name is zhuangbi youger brother.
cyberpolice (1级) 安恒信息渗透测试服务工程师 2013-05-23 14楼
常规的渗透思路,科普不错。
马化腾 2013-05-24 15楼
不错,马克一下。 看他们以后再忽悠我
bigfatcat (1级) 2013-05-24 16楼
应该属于普及文章吧…….
Vexs 2013-05-24 17楼
我觉得分享的挺好啊,特别是对我们这些新手来说挺有帮助的。
chill 2013-05-24 18楼
不准不开心!,100%开心酿造。
褪色的黑 (1级) pkav的粉丝团。嘿嘿! 2013-05-24 19楼
非常不错,看过文章我思考一下,渗透测试不是比的工具。是一些思维逻辑,从一个开发的者的习惯和想法出发。。每个点都想的很细心。。。。顶
reetin 2013-05-24 20楼
姐不缺思路,不缺工具,姐在内网,求内爆方法。
demon 2013-05-24 21楼
还是有些营养的~
eax (1级) 2013-05-25 22楼
思路很重要,对于俺新手来说挺好,学习了
M 2013-05-27 23楼
@anlfi 你还挺有意思的
snake (1级) 2013-05-27 24楼
细读其实还是有亮点的
pnig0s (10级) 知道创宇安全工程师 2013-05-27 25楼
分享的精神要肯定:)
tntc4stl3 (1级) 2013-05-28 26楼
mark 坐等后续
feifeiyuhr (1级) 2013-06-04 27楼
看的trx就笑了。
梧桐雨 2013-06-06 28楼
思路很重要,还是赞一下分享精神。