渗透流程
一次完整的渗透测试包括一下几步:**明确目标,信息收集,漏洞探测,漏洞利用,内网转发,内网渗透,痕迹清除**
渗透测试主要分为两种方式:
- 白盒测试:知道目标网站源码和其他一些信息的情况下对其进行渗透,代码审计
- 黑盒测试:只知道目标网站的URL,其他信息一无所知,需要测试者自行去发现
信息收集
收集的信息越多,攻击面就会越广,成功概率就会越高
信息收集是渗透测试的第一步,有时候也是至关重要的一步,通过信息收集我们可以理清整个网站的结构以及相关的框架(CMS),服务器版本等。可能直接针对某一个网站进行渗透很难,但是其二级域名网站中存在漏洞,相对容易利用,然后拿到二级域名的站之后再进一步提权,最终拿下目标网站。
我们所要收集的网站信息主要包括以下信息:
- 域名
- 子域名
- IP及端口
- ip反向查询域名
- 服务提供商
- 应用服务系统、版本
- 域名历史解析IP
- 服务端框架、语言
- 开源情报
域名信息收集
当确定了渗透目标也即其URL,接下来我们需要收集域名对应的 ip,域名的whois信息、子域名等等一系列与域名相关的信息。如果不收集这些的话,你的攻击范围就会很窄,死盯着一个现成的域名或一个IP,无异于把自己框死。
IP地址查询
确定目标网站的域名之后,首先就是找其IP地址,可以通过ping进行探测,*http://ping.chinaz.com/*。
域名whois信息查询
whois是用来查询域名注册所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商),在线查询工具:*http://whois.chinaz.com/*,查询出邮箱、注册人、公司、电话这些之后可以进一步反查。
常用的子域名收集网站:
- https://www.zoomeye.org/
- https://fofa.so/
- https://phpinfo.me/domain/
- https://crt.sh/
- https://censys.io/
- https://transparencyreport.google.com/https/certificates
- https://dnsdumpster.com/
- https://hackertarget.com/find-dns-host-records/
- https://x.threatbook.cn/
- https://www.virustotal.com/gui/home/search
- https://phpinfo.me/domain/
- https://site.ip138.com/baidu.com/domain.htm
- https://www.t1h2ua.cn/tools/
- http://tool.chinaz.com/subdomain/
- https://spyse.com/site/not-found?q=domain%3A%22github%22&criteria=cert
网站CDN信息
利用站长工具进行ping测试,查看全国各个监测点是不是同一个IP,如果是同一个IP,那就是没有CDN防护;如果在各个监测点的IP不同,则是有CDN防护。如果存在CDN,则需要进一步绕过CDN防护寻找真实IP。主要有以下几种方法:
- 子域名:有的站点使用了CDN,有的可能未使用,因此通过子域名可以发现真实IP。
- 历史DNS信息:查询ip与域名绑定历史记录,可能会发现使用CDN之前的目标ip。
- CDN本身:可以通过社工等其他的方法找到控制面板的账号密码,这样IP地址就很容易找到了。
- Mx记录或邮件:很多站点都有发送邮件sendmail的功能,如Rss邮件订阅等。而且一般的邮件系统很多都是在内部,没有经过CDN的解析。可在邮件源码里面就会包含服务器的真实 IP。
- 搜索:利用公开的安全搜索引擎(zoomeye、fofa、shodan)爬取得历史快照,从数据包的头部寻找真实IP地址。
系统信息收集
系统信息主要包括操作系统的类型、版本等信息收集,系统版本号可以通过工具扫描出来,kali系统对服务器的端口开放情况进行全面的安全检测,服务器是否存在漏洞,包括redis未经授权访问漏洞等等,通过端口开放情况,来查看服务器运行了那些服务,以及安装的软件。
网站指纹收集
CMS信息
在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。CMS又称整站系统。常见的CMS有:WordPress、Dedecms、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS等。同时也可以探测其使用的各种中间件,以及插件信息。
常用的指纹识别工具:
- wappalyzer:chrome插件
- 云悉:https://www.yunsee.cn/
- BugScaner:http://whatweb.bugscaner.com/look/
- WhatWeb:https://whatweb.net/
服务信息
服务信息指的是网站用的web服务器是什么类型的:Apache、Nginx、Tomcat 还是 IIS。知道了web服务器是哪种类型后,我们还要探测web服务器具体的版本。比如Ngnix版本<0.83会有解析漏洞 ,IIS6.0会有文件名解析漏洞、IIS7.0会有畸形解析漏洞等。不同的web服务器版本,存在着不同漏洞。
数据库信息
我们需要知道网站使用的是哪种数据库:Mysql、Oracle、SqlServer 还是 Access 。虽然这几种数据库的语法大体上相同,但是还是有区别的。明确数据库类型,有助于下一步采取对应的语法进行数据库的相关操作(sql注入等)。
- Access 全名是Microsoft Office Access,是由微软发布的关联式数据库管理系统。小型数据库,当数据库达到100M左右的时候性能就会下降。数据库后缀名: .mdb 一般是asp的网页文件用access数据库。
- SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端口号为1433。数据库后缀名 .mdf。
- MySQL 是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的应用软件之一,MySQL数据库大部分是php的页面。默认端口是3306。
- Oracle又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是1521。
应用信息搜集
端口信息
应用信息搜索主要是针对服务器各端口的应用。例如web应用、邮件应用、等等进行探测。
目录信息
通过目录扫描可以获取网站登录后台信息以及其他敏感文件(git、SVN、robot.txt),推荐使用御剑扫描工具,可以在github上面查找一些敏感的网站目录,然后添加到御剑或者别的扫描工具里面,这样可以大大的增强了扫描的效果
防护信息搜集
有时候很多的网站都存在各种各样的防护措施,比如:安全狗、网防G01。摸清网站的防御措施,有助于我们针对型的bypass。常用的WAF探测工具:**WAFW00F**,同时也可以通过sql注入,XSS等方式来触发防护信息。
敏感信息检索
敏感开源信息收集
有时候网站可能采用开源的一些模版或者代码之类的,可以通过Github等开源的平台搜索这些代码中,寻找其中泄漏敏感信息,比如:数据库的连接信息,测试用的账号密码等。
Github信息搜集语法:https://blog.csdn.net/qq_36119192/article/details/99690742
敏感地址收集
我们可以通过google、百度语法进行搜集一些网站的后台地址信息。找到地址如果防护水平比较低的话,就可以进行爆破,进入后台再进一步利用。同时也可以搜索未授权的页面、敏感URL等。