安全矩阵

 找回密码
 立即注册
搜索
查看: 604|回复: 0

我的渗透测试方法论

[复制链接]

65

主题

65

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
发表于 2022-12-21 15:30:46 | 显示全部楼层 |阅读模式
我的渗透测试方法论 (qq.com)
大家好,我是 H1kki,目前大三在读 ,在学习完 WEB 基础漏洞之后,就一直跟着信安之路成长平台在查漏补缺。前些日子看到了信安之路推出的这个 脚本小子培养计划,抱着试一试的心态报名参加了这次渗透实训,从 11 月 6 号开始到 12 月 1 号结束,历时将近一个月与 50 多名师傅们一起走完了这段历程,收获很多,感悟也很多。因为大学生比较闲,我推进课程的速度也比其他师傅快了一些,所以良哥给了这个机会让我和大家分享一下这次课程的成果,于是有了这篇分享。
0x00 个人简介在课程开始之前,我基本上学完了 WEB 基础漏洞的相关知识点,然后也了解过渗透测试相关的内容,但是对其具体流程也只是一知半解,属于那种纸上谈兵的类型。在课程的学习过程中,涉及到 WEB 漏洞的地方很少,基本上只有一节课的内容,正如其名,很大一部分内容都是在详细的讲解和剖析脚本及相关知识点,属于小白也能很好掌握的课程。接下来,才是正题,我将以图片和文字结合的方式将所学的内容汇总起来供大家参考。
0x01 渗透测试概述渗透测试:比较官方的解释可以查看百度百科,我的理解为渗透测试就是通过一些手段找到网站、APP、网络服务、软件、服务器等网络设备和应用的漏洞,告知管理员有哪些漏洞,应该怎么填补以防止入侵
下图,为我在学习课程之前了解到的渗透测试流程:

而本次课程中,将渗透测试的流程就更加简化了,总共分为了三个步骤 ——

  •         信息收集阶段:通过已知信息去收集渗透测试目标所有暴露在边界上的系统和信息,从而掌握目标外围所有可能访问到的资产信息
  •         漏洞发现阶段:对收集到的资产进行划分,然后针对不同的目标执行不同的测试方案
  •         报告编写阶段:将之前的所有成果进行汇总,将测试的方法、流程、结果以及漏洞修复建议体现在报告中
其中可以使用脚本自动化完成的步骤为信息收集和漏洞发现,接下来我就来具体介绍一下课程中关于这两个部分的内容
0x02 信息收集阶段
资产范围 → 子域名数据 → 域名对应的IP数据
通常情况下,我们拿到的资产范围都是一些域名列表,类似于下图

所以,我们第一步需要做的工作通常是收集主域名下的子域名与其对应的IP
[td]               
子域名收集工具使用
amass收集国内第三方平台数据的子域名收集工具
oneforall收集国内第三方平台数据的子域名收集工具
dnsgen根据提供的域名数据生成新的子域名字典的工具
ksubdomain子域名枚举工具

具体步骤如下:

  •         在获取到目标资产范围后,先进行第三方平台的子域名信息收集,使用到的工具有oneforall(国内)和amass(国外)
  •         使用子域名枚举工具ksubdomain的enum模块,利用子域名字典对目标进行子域名枚举,获取相应数据
  •         将前两步收集到的信息去重后传入域名字典生成工具dnsgen生成新的域名字典
  •         使用子域名枚举工具ksubdomain的verify模块,利用新生成的域名字典进行域名枚举,获取相应数据,值得注意的是,verify模块产生的数据不会对泛解析域名进行处理,这里还需要增加一个处理泛解析域名的操作
  •         将所有的得到的数据汇总去重,即可得到一份子域名 + IP的目标数据
子域名与IP的映射关系 → 获取http://domain:port格式的URL数据
仅仅知道站点域名是不足以确定一个WEB站点的,所以我们还需要获取其WEB服务对应的端口号,最终拿到对应的URL数据
[td]               
端口扫描工具使用
naabu集成工具,传入域名列表可以直接获取数据,但是速度很慢
nmap端口扫描工具,速度一般,能够很方便的获取端口指纹信息
masscan端口扫描工具,速度很快,但是无法获取端口指纹信息
fingerprintx端口指纹识别工具

想要通过域名IP数据获取URL数据方式有三种,可以根据个人需求选择对应的方式进行操作:
方式一:直接使用naabu工具进行收集,输入域名列表,输出http://domain:port格式的URL数据,但是速度很慢
方式二:使用Nmap工具的-sV参数对IP列表进行扫描,能够直接获取IP开放的端口和对应的服务信息,通过对服务信息的分类能够获取到开放WEB服务的端口,最后再将端口与域名数据拼接,即可获取http://domain:port格式的URL数据。这种方式不复杂,但是速度也不算快,建议针对单个站点使用
方式三:使用Masscan对IP列表进行扫描,获取其开放的端口,然后使用fingerprintx工具进行端口指纹识别,获取其中的开放WEB服务的端口,最后再将端口与域名数据拼接,即可获取http://domain:port格式的URL数据。这种方式经过测试,速度是方式二的两到三倍
URL数据 → 站点验活 → 站点去重 → 站点指纹识别 + WAF检测 → 目标站点列表
在获取到URL数据之后,我们可以对每个URL进行进一步的验证,排除掉所有失活的站点,再基于站点哈希值进行去重,最后排除掉存在WAF站点,即可获取最终的目标站点列表,然后可以根据需求进行站点指纹识别,为NDay漏洞的利用做准备
[td]               
站点信息收集工具使用
httpx收集站点返回信息的工具,能够自动进行站点验活,站点去重可以根据站点hash值进行
TideFinger站点指纹识别工具
Wafw00f站点WAF检测工具,能够识别WAF种类

站点信息收集的具体步骤如下 :

  •         使用httpx工具收集所有URL对应站点的哈希值,工具会默认排除失活站点,然后根据哈希值进行去重
  •         使用wafw00f工具对所有存活的站点进行WAF验证,排除掉存在WAF的站点并收集WAF指纹数据入库(若没有WAF指纹识别的需求,仅仅只是进行排除,也可以自己编写WAF判定的脚本),获取经过筛选的站点作为目标站点数据保存下来
  •         如果有需求,可以通过TideFinger工具收集目标站点的站点指纹信息进行入库/存入文件
目标站点列表 → 站点列表
在获取到站点列表之后,需要寻找注入点,即网站的接口(GET、POST传参的参数)
[td]               
站点接口收集工具使用
gospider爬虫工具,自动获取站点公开接口
uro站点接口去重工具
x8针对单个站点的接口枚举工具,配合字典使用

寻找网站接口的方式有二:
方式一:通过接口字典枚举的方式寻找,用到的工具是x8,需要指定对应的参数字典,这个方式效率不高,在站点数量较少的时候可以尝试用
方式二:使用网站爬虫的方式寻找公开的接口信息,用到的工具是gospider,这款爬虫工具为动态爬虫,利用无头浏览器,可以动态加载网页中的 JavaScript 脚本,相比静态爬虫可以获取 POST 请求中的参数,以及可以利用 API 进行数据交互
在收集完网站接口数据之后,可以利用uro工具对数据进行去重,避免重复操作
总结
至此,信息收集步骤已经全部完成,我们再来回顾一下 ——

  •         收集目标站点资产范围,通常为域名范围
  •         子域名收集
  •         WEB端口收集,汇总为URL数据
  •         URL去重、验活以及排除存在WAF的站点
  •         站点指纹识别,信息入库
  •         站点接口数据收集
0x03 自动化测试在之前的信息收集步骤中,我们获取了目标站点的URL数据和接口数据,接下来,就可以利用这些数据进行自动化测试了
在开始前,我们需要了解一下常见的漏洞扫描以及模糊测试工具
[td]               
漏洞扫描工具使用
AWVSBS架构的漏扫工具,适合扫描单个站点
AppScanCS架构的漏扫工具,可以自定义规则,适合扫描单个站点
Xray漏扫脚本,适合扫描多个站点,支持静态被动扫描
Crawlergo浏览器内核爬虫,可用于Xray联动使用
SNETCrackerWindows下的弱口令枚举工具
HydraLinux下的弱口令枚举工具,kali自带
ffufFuzzing工具
其中弱口令枚举工具是对一些非WEB端口可能存在弱口令的应用进行测试;而漏扫工具和Fuzzing工具则是针对WEB服务进行测试

AVWS和AppScan通常是使用针对单个站点进行漏扫的工具,简单易用但是扩展性较差
而这里重点介绍xray工具的使用思路——

  •         被动扫描:在进行手工测试的时候,可以开启xray的被动扫描模式,让它帮助你做一些常见WEB漏洞的探测,而人工的重心可以放在逻辑漏洞的发现上
  •         主动探测:利用xray的主动探测功能对站点接口收集阶段的接口数据进行探测
  •         联动Crawlergo进行探测:先用Crawlergo对站点的URL数据进行爬取,再将流量转发给xray对得到的数据进行探测
这三款工具都能自动生成漏洞扫描报告,报告编写可以将其作为参考资料
0x04 总结


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-3-29 18:05 , Processed in 0.012930 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表