目录
渗透需求分类
一、信息收集
1. 给定单位名称渗透测试如何进行信息收集
ICP备案查询
子域名收集
CMS指纹识别
获取真实ip及C段
whois查询
APP、公众号、小程序搜集
2. 指定主域如何进行信息收集
3. 指定域名如何进行信息收集
二、漏洞探测
敏感文件目录探测
在实际的渗透测试项目中,甲方需求大概分为三种
- 第一种是:给定一个指定域名,测试范围只限定为这个域名,其他的子域名都不需要测试。如给定域名 https:map.test.com,那么我们只需要测试这个域名内的页面即可
- 第二种是:给定了一个主域,如 test.com,其范围下的子域名都可以测试,如 a.test.com,map.test.com,vpn.test.com。测试的第一步就是先搜集目标子域
- 第三种是:给定单位名称,其有关单位的互联网上的资产都可以测试,这类需求常出现在红蓝对抗,SRC漏洞提交中。比如给定公司名称“北京未来科技有限公司”,那么有关“北京未来科技有限公司”的互联网资产如所有web站点、aap、公众号、小程序都是我们渗透测试的目标
在渗透测试中信息收集至关重要,你资产都找不到怎么挖漏洞啊,特别是对于上面的第二种和第三种需求。针对不同的渗透需求,信息收集的方式也不一样
在这一类需求中渗透测试的目标常为:获取服务器权限或挖掘出高危漏洞或获取系统敏感数据
这类需求一般出现在SRC漏洞提交和护网红队中,当然,在SRC漏洞提交中,高中危漏洞都能提交,但是在护网红队web打点中,只有能Getshell或者获取到敏感数据的漏洞才能进行提交,其他中低漏洞都可以忽略不计。那针对这一类需求,我们如何进行信息收集了
首先我们要搜集的资产涵盖有关该公司的所有主域名、公众号、app、小程序等
ICP备案查询
网站备案是根据国家法律法规 需要网站的所有者向国家有关部门申请的备案,主要有和ICP备案和公安局备案。公安局备案一般按照各地公安机关指定的地点和方式进行。ICP备案可以自主通过官方备案网站在线备案或者通过当地电信部门两种方式来进行备案。
常说的网站备案就是ICP备案,备案的目的就是为了防止在网上从事非法的网站经营活动,打击不良互联网信息的传播,如果网站不备案的话,很有可能被查处以后关停。
域名所在ip的服务器在国内则需要备案,所在服务器为香港或者国外则不需要
那我们为什么要进行ICP备案查询了?进行ICP备案查询我们可以了解到该公司备案了多少个网站,通常一个网站就是一个主域。找到了主域之后我们可以分别对主域爆破子域。常用的查询站点如下
- ICP备案查询 - 天眼查
- 企查查
- 小蓝本
- 天眼查
1. ICP备案查询
如下这些站点都属于该公司,当然并不是所有站都有效,得一个一个看
我们也可以在企查查或天眼查中查找有关该企业的一些信息,我们着重关注一下几点信息:有多少个主域名、app、小程序、公众号
2.
如下,在天眼查中搜索目标公司名称,如下我们可以着重关注网站备案、公众号等信息。
如下,网站备案中显示有有关网站6个
经访问,有效的网站有两个。那么我们可以对这两个主域分别爆破子域。
3. 小蓝本企业信息搜索
网站信息也挺全面
子域名收集
传送门 ——> 几款好用的子域名收集工具
通过上面的子域名收集,我们可以将这些域名再进行一波指纹识别
CMS指纹识别
内容管理系统(content management system,缩写为 CMS),就是一个别人写好的网站框架,我们可以把它下载下来直接使用。现在流行的开源CMS系统有WordPress、Joomla!、Drupal、Xoops、CmsTop等
在web渗透过程中,Web指纹识别是信息收集环节中一个比较重要的步骤,通过一些开源的工具、平台或者手工检测CMS系统是公开的CMS程序还是二次开发至关重要,能准确的获取CMS类型、Web服务组件类型及版本信息可以帮助安全工程师快速有效的去验证已知漏洞。比如我们识别了某网站的使用的是WordPress xx版本,那么我们就可以去搜索该版本的cms是否存在什么已知的漏洞,在进行漏洞利用
通过上面的子域名收集,我们可以将那几个工具的收集到的子域名全部复制下来,然后粘贴进excel中去重。然后将去重后的所有子域复制到在线cms进行批量识别 ——> 在线cms批量识别
获取真实ip及C段
在收集到一波域名后,我们可以将域名转化为ip地址。那为什么要转换为ip地址了?因为在这一类渗透需求中,我们要关注的不仅仅是web漏洞,还要关注服务器的端口信息,看服务器是否开放什么高危端口比如3306啊,我们就可以尝试进行爆破。只要有利于我们突破边界的问题我们都应该关注。
不过在将域名转换为ip地址的时候,很有可能会碰到cdn的情况。cdn即内容分发网络,为了缓解服务器压力、提高访问速度、隐藏真实ip,一般大型公司或者有钱的或者比较重视安全的公司都会购买cdn。看是否存在cdn我们可以进行——> ,如果解析出来的ip大于或等于两个则使用了cdn,此时可以尝试绕过cdn寻找真实ip ——> 关于CDN以及如何绕过CDN寻找真实ip 。不过不建议,因为你很有可能找不到。
通往成功的路一般不止一条,那么多子域,不可能每个都做了cdn,我们可以批量将域名转换为ip(虽然oneforall获取子域名能自动加上ip地址和是否使用cdn,但是其是否使用cdn并不准确)并判断是否使用了cdn以及C段信息,借助工具 ——> https://github.com/EdgeSecurityTeam/Eeyes
Eeyes
首先在config.ini中加上fofa会员邮箱和key。没有fofa会员的用不了
可以直接从txt中导入子域或者直接扫描主域名。
如下直接扫描主域,对每个子域名是否使用了cdn进行了准确的判断,以及ip的归属地为阿里云,如果是阿里云的话你就算打进去了也没法打内网,衰~。
假设以下ip的isp不为阿里云而为联通或电信或移动,并且转换出来的ip有很多不同的而且还是在一个C段中。那么很可能这个c段就是为这个公司的。我们可以继续扫描该c段的所有ip及端口信息,可以使用工具fofaview或者nmap或者fsan ——> fscan_北遇-CSDN博客_fscan
到这里子域名,C段信息,ip端口信息以及网站的cms信息基本就有个大概了。
whois查询
whois是一个用来查询域名是否已经被注册,以及注册域名的详细信息如域名所有人、域名注册商、域名注册日期和过期日期等)。通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间
——> 站长工具_whois查询
我们输入一个想要查询的域名,查询到了该域名注册人或注册机构的名称,以及注册域名使用的邮箱
通过点击反查注册人,可以查看到该人或机构还注册了哪些网站
通过点击反查邮箱,可以查看到使用该邮箱还注册了哪些网站
在这里最主要的我们可以得到该公司注册了哪些网站,然后对这些网站进行子域名爆破。或者当我们测试个人站点时whois查询有点用,因为我们可以通过搜索引擎和社交网络挖掘出域名所有人的很多信息。
APP、公众号、小程序搜集
1. 小蓝本搜集
app
公众号、小程序
当然并不是所有的资产都是目标公司的,自己判断
2.
比如我们搜索到了 “大连航空”app为中国国际航空公司的,则我们可以在七麦数据里面搜索该app名称,ios和android各搜一遍
点击去然后选择同开发者应用,就会显示他们公司的其他一些app
相对于上一种信息收集这种就简单一些了,直接给你限定了范围,那么我们只需要搜集该域名下的所有子域名并进行cms指纹识别、获取真实ip然后端口扫描就行
这种在渗透测试领域中难度是最低的,主要以查找出漏洞为主。而且这是企业项目中渗透测试最多的一种需求!基本上很多项目都是这种测试需求。挖掘漏洞的细腻程度也是最高的。基本上高、中、危漏洞能挖的都需要挖。
像这种需求,就不需要进行信息收集。先使用浏览器插件Wappalyzer看看该网站的大概技术架构是什么。主要观察网站是否用了什么框架、组件。如果用了在该插件上就能看到
到这里基本的信息收集步骤就走完了,信息搜集主要以找资产为主,当然还有其他的一些寻找资产的奇淫技巧。
经过上面的信息收集,已经收集了一波子域名等资产。这里我们要开始进行真正的渗透测试。我们的目标就是挖掘出更多漏洞甚至拿到系统权限。
可以结合工具和手动挖掘两种方式,当然最重要的还是手动挖掘,得依靠你自己的渗透经验及对web漏洞的理解程度
自动化漏洞检测工具
为了节约时间及提高渗透测试效率,我们可以先用扫描器过一波资产(面试的时候不要说你用扫描器~~)。常用的漏洞扫描工具如Goby,awvs,xray结合rad进行自动化扫描 ——> xray+rad批量自动化扫描
手动漏洞挖掘
拿到一波子域名后我们可以优先网站查看title信息,以及网站的开放状态,优先查看一些比较敏感的站。比如网站title为xx管理,xx登录。
与此同时,应该扫描一下目录,看是否存在什么敏感文件 ——> 敏感目录文件探测工具
同时,网站js中也可能存在敏感接口泄露,比如上传接口等。网站首页F12 —> 源代码 —> 全局搜索敏感关键词。