信息收集简介
简介
在进行渗透测试之前,最重要的一步就是信息收集,在这个阶段,我们需要尽可能地去收集目标组织的信息。所谓“知己知彼,百战不殆”,我们越是了解测试目标,渗透测试工作便会更加的容易。
信息收集:信息收集主要包括资产收集和信息收集
- 资产收集: 企业资产收集、梳理
- 信息收集:对服务器、站点等信息收集
资产探测
简介
资产是指由企业过去的交易或事项形成的、由企业拥有或者控制的、预期会给企业带来经济利益的资源,而渗透测试中的资产指的则是网站的架构、ip、设备型号(如果有的话)、网络拓扑(多用于内网)等等
为什莫需要资产收集
-
- 在实际渗透测试的过程中,我们需要对企业的资产进行梳理,但是往往在渗透测试过程中,客户通常会给我们一个主域名,此时资产收集就显得尤为重要了。
- 随着企业内部业务的不断壮大,各种业务平台和管理系统越来越多,很多单位往往存在着“隐形资产”,这些“隐形资产”通常被管理员所遗忘,长时间无人维护,导致存在较多的已知漏洞。
资产收集的重要性
- 在渗透测试中,我们需要尽可能多的去收集目标的信息。资产探测和信息收集,决定了你发现安全漏洞的几率有多大。如何最大化的去收集目标范围,尽可能的收集到子域名及相关域名的信息,这对我们进一步的渗透测试很重要。
- 所谓资产收集就是从主域名出发,尽可能去收集关于该主域名的一切信息,如子域名、相关域名(旁站、C段)、移动端、行业系....
资产收集
子域名信息收集:二级域名资产的收集及梳理
简介及为什莫收集子域名
子域名也就是顶级域名前加前缀的都是子域名,是指顶级(一级)域名下的域名。例如,baidu.com,是个顶级域名,那么*.baidu.com就是baidu.com的子域名。
常见的顶级域名后缀: .com、.cn、.net、.org等
我国在国际互联网信息中心正式注册的域名是.cn,我国的二级域名又分为类别域名和行政域名:
- 类别域名:科研机构的.ac、工商金融的.com、教育机构.edu、政府机构.gov、互联网信息中.net、非盈利机构.org
- 行政域名:34个,分别对应各省、自治区、直辖市。
- 如: https://www.nankai.edu.cn
1.子域名收集
假设目标资产数量庞大,一般来说主域都是防护重点,管理上可能会谨慎,防护也相对严格,因此从子域名入手便成了很好的选择,子域往往在防护上会相对更加的松懈,然后再慢慢向目标系统渗透,所以子域名的收集便显得尤为的重要。
通常,一台服务器上有很多个站点,这些站点之间没有必然的联系,是相互独立的,使用的是不同的域名〈甚至端口都不同),但是它们却共存在一台服务器上。
2.子域名收集常用方法
- 子域名检测工具
- 搜索引擎枚举
- 第三方接口查询
- 证书透明度公开日志枚举
3.子域名爆破工具
- layer子域名挖掘机
Layer子域名挖掘机是一款域名查询工具,可提供网站子域名查询服务;拥有简洁的界面、简单的操作模式,支持服务接口、暴力搜索、同服挖掘三种模式。
- oneforall
米斯特团队开发的一款高效的子域名收集工具,这里需要注意,此工具由Python3开发,安装时需要搭建Python3环境。
- maltego
Maltego是一款非常优秀的信息收集工具。与其他工具相比,不仅功能强大,而且自动化水平非常高,不需要复杂的命令,就能轻松的完成信息收集。
4.搜索引擎枚举
Google Hack语法:
- intitle:表示搜索在网页标题中出现第一个关键词的网页。
- inurl:返回网页链接中包含的第一个关键字的网页。
- intext:返回网页文本中出现关键字的网页。
- site:某个特定的网站中搜索。
- filetype:搜索特定拓展名的文件(.doc .pdf .txt)
- cache:搜索google缓存中的网页
5.第三方接口查询
常用第三方子域名爆破接口:
- https://phpinfo.me/domain/
- https://dnsdumpster.com/
- https://www.virustotal.com/gui/home/search
- http://tool.chinaz.com/subdomain/
- http://searchdns.netcraft.com/
6.证书透明度公开日志枚举
证书透明度是证书授权机构(CA)的一个项目,该机构会将每个SSLTLS证书发布到公共日志中,而这些证书中通常会包含域名、子域名、邮箱地址等信息,所以通过公开的日志,我们也是可以获取到域名信息。
常用的SSL证书查询在线引擎:
相关域名收集:其他相关资产的收集与梳理
- 旁站及C段收集:同服务器的旁站及C段查询
- C段:在一个内网网段的ip,例如,.27.127.127.4这个IP上面有一个网站127.4这个服务器上面可能不存在漏洞,但是在他同C段127.127.127.1~127.127.127.255这1~255上面也有服务器,而且也有网站并且存在漏洞,那么我们就可以来渗透1~255任何一个站,之后提权来嗅探得到127.4这台服务器的密码,甚至可以利用EXP等进行攻击。
- 旁站:一个服务器上可能不仅是存在一个站点,也有可能存在多个站点,查询旁站的意义在于可以通过旁站去进一步渗透服务器。
在线查询引擎:
- https://phpinfo.me/bing.php
- https:/www.webscan.cc/searchl/
移动端:
随着移动端的兴起,很多企业都有自己的移动端APP、微信公众号、支付宝生活号等,这也是值得重点关注的点,往往会有出奇制胜的效果!
行业系统:
- 同行业可能存在类似的系统,甚至于采用同一家厂商的系统,可互做对比
- 通用:办公OA、邮件系统、VPN等
- 医院:门户、预约系统、掌上医院、微信公众平台等
信息收集
概念
信息收集主要是对梳理出来的企业资产进行更加详细、有目的性的去收集单个目标站点的各种信息,从而让渗透变得更为简单,它主要围绕着域名、真实IP、端口、服务、CMS、中间件等信息。
信息收集分为:
域名信息收集:
whois信息:
- 也就是注册人(注册商)的信息,包括姓名、邮箱、电话、地址等信息,通过挖掘Whois信息,进一步通过搜索引擎获取更多的信息,另外对于中小站点来说,域名所有人往往就是管理员。
- Kali: Whois xx.xx.com
- 在线查询:站长之家、爱站、whois365等
备案信息:
- 网站备案是根据国家法律规定的,网站所有者需要向国家有关部门申请备案,防止从事非法活动。
- IPC备案查询网:http://www.beianbeia.com
- 天眼查:https://beian.tianyancha.com/
- 工业和信息化部政务服务平台: https://beian.miit.gov.cn/
IP信息收集:
有的企业做了CDN加速,此时我们需要去绕过CDN去查找到真实的IP才可以。
CDN:CDN即内容分发网络,主要用来解决因传输距离和不同运营商节点造成的网络速度性能低下的问题,提高用户的体验。也可以理解为一种缓存服务器。
CDN的主要功能:
- 节省骨干网带宽,减少带宽需求量;
- 提供服务器端加速,解决由于用户访问量大造成的服务器过载问题;
- 服务商能使用Web Cache技术在本地缓存用户访问过的Web页面和对象,实现相同对象的访问无须占用主干的出口带宽,并提高用户访问因特网页面的相应H间的需求;
- 能克服网站分布不均的问题,并且能降低网站自身建设和维护成本;
- 降低"通信风暴"的影响,提高网络访问的稳定性。
判断是否存在CDN:
多地Ping或直接访问目标域名所解析的IP地址,查看是否能跳转到域名所在的页面。
在线多地Ping: http://www.17ce.com
爱站、站长之家等站点
CDN常用绕过方法:
在确认了目标使用了CDN以后,我们此时便需要绕过CDN,寻找真实IP,常用方法如下。
- 多地Ping
-
- 目标站点可能只针对国内或某些地区做了CDN。
- http://ping.chinaz.com
- https://ping.aizhan.com
- http://www.17ce.com
- 扫描测试文件
- 使用工具扫描测试文件、探针文件,如phpinfo、test文件,从而获取真实IP。
- 子域名或移动端APP获取
-
- 主站点流量大,大多数主站做了CDN,而分站可能不会做CDN,可能分站和主站不是一个IP,但可能会是一个C段,此时我们可以判断真实IP。
- 移动端APP可能会泄露目标的真实IP,利用Burp Suite或Fiddler抓包获取。
- 利用已知漏洞
- 利用XSS盲打,SSRF或命令执行漏洞。
- 网站邮件订阅查找
- 内部邮箱源,一般邮箱都在内部系统中,未经过CDN解析,通过注册、或订阅功能,查看邮件服务器域名或IP但是要注意,必须是目标自己地邮件服务器,不能是第三方或公共邮件服务器。
- 网外服务器访问
-
- 由于CDN的价格昂贵,大多数只针对国内用户做加速,而国外访问可能不存在,此时可以使用国外服务器访问、或Ping,可能会获取到真实IP。
- https://asm.ca.com/en/ping.php
- DNS历史解析
查看IP与域名绑定的历史记录,可能会存在使用CDN前的记录。
- https://dnsdb.io/zh-cn/
- https://x.threatbook.cn/
- https://searchdns.netcraft.com/
- http://viewdns.info/
- https://securitytrails.com/
- 利用网络空间引擎搜索法
-
- 以fofa为例,只需输入: title:“网站的title关键字”或者body:“网站的body特征”就可以找出fofa收录的有这些关键字的ip域名,很多时候能获取网站的真实ip
- 钟道之眼:https://www.zoomeye.org/
- Shodan: https://www.shodan.io/
- FOFA:https://fofa.so/
- SSL证书探测
-
- 我们可以利用空间引擎进行SSL证书探测,
- https:/lcensys.iolcertificates
- 关键字:443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:www.xxx.com或443.https.tls.chain.parsed.names
端口信息收集:
-
- 在渗透测试中,对目标进行端口扫描的意义往往是很重要的,因为我们可以通过端口去判断目标系统开放了哪些的服务,然后我们在根据相关的服务去进行进一步的渗透测试。
- 我们最常用的工具就是Nmap/Zenmap或者Mascan去进行端口扫描,当然还有很多优秀的扫描软件。
针对端口的攻击
端口 | 端口说明 | 攻击方法 |
22 | SSH远程连接 | 爆破、SSH隧道及内网代理转发、文件传输 |
23 | Telnet远程连接 | 爆破、嗅探、弱口令 |
3389 | rdp远程桌面 | Shift后门、爆破 |
5900 | VNC远程连接 | 弱口令、RCE |
5632 | PcAnywhere远程连接 | 嗅探、代码执行 |
Nmap常用方法:
- 单个目标扫描:
nmap 192.168.1.1
- 多个目标扫描:
使用场景:目标地址不在同一网段或在同一网段但数量不多
nmap 192.168.1.2 192.168.4.2
- 扫描一个范围内的目标:
使用场景:目标处于一个ip范围时:nmap 192.168.1.1-255
- 扫描文本中的目标地址:
使用场景:给定目标资产文本时,可直接读取扫描。
nmap -il C:/路径/target.txt
- 扫描除了某地址之外的所有目标:
nmap 192.168.0.100-255 exclude 192.168.0.108
- 扫描除了某文件内目标之外的所有目标:
nmap 192.168.0.100-255 excludefile C:/路径/target.txt
- 扫描指定端口:
nmap 192.168.1.1 -p 21,22,23,80,3389
- 其他参数:
vw:对结果的详细输出
sP: Ping扫描
sT:TCP连接扫描:完整三次握手,最基础最稳定的扫描方式
sS: TCP SYN扫描,
sU: UDP扫描,速度非常慢
PO:无Ping扫描,用于禁止Ping的扫描
敏感信息收集:
-
- 利用Google高级语法去页面中检索后台。
- 利用御剑、7kb、dirb、dirbuster、wwwscan、Nikta,(nikto -host xx.com)等工具枚举后台地址、敏感文件。robots.txt文件是一个防爬虫文件,一般后台是不允许被爬取的,所以该文件可能存放着后台信息。
- phpinfo()信息,phpinfo.php、L.php是一个探针信息文件,访问该文件可获取服务器配置等信息查询目标站点在乌云镜像站是否存在已知漏洞。
- WAF信息识别:
-
-
- Kali工具WAFWOOF:命令wafwOOf -a域名
- nmap脚本--script=http-waf-detect . --script=http-waf-fingerprint
-
敏感文件/目录收集:
- 备份文件、测试文件:
-
- 管理员在对网站进行修改、升级等操作前,可能会将网站或某些页面进行备份,由于各种原因将该备份文件存放到网站目录下,该文件未做任何访问控制,导致可直接访问并下载。可能为.rar.
- zip、.7z、.tar.gz、.bak、.txt、.swp等等,以及和网站信息有关的文件名www.rar、web、rar等等
- Github源码泄露:
- 由于目前的web项目的开发采用前后端完全分离的架构:前端全部使用静态文件,和后端代码完全分离,隶属两个不同的项目。表态文件使用git 来进行同步发布到服务器,然后使用nginx指向到指定目录,以达到被公网访问的目的。在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码
- DS_Store泄露:
- DS Store是Mac下Finder用来保存如何展示文件/文件夹的数据文件,每个文件夹下对应一个。由于开发/设计人员在发布代码时未删除文件夹中隐藏的.DS_store,可能造成文件目录结构泄漏、源代码文件等敏感信息的泄露。
- SVN导致文件泄露:
- Subversion,简称SVN,是一个开放源代码的版本控制系统,SVN漏洞在实际渗透测试过程中,利用到也比较多由于一些开发管理员疏忽造成,原理类似DS_Store漏洞。
- WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
- WEB-INF主要包含一下文件或目录:
- /WEB-NF/web.xml: Web应用程序配置文件,描述了servlet和其他的应用组件配置及命名规则。
- /WEB-INF/classes/:含了站点所有用的 class文件,包括servlet class和非servlet class,他们不能包含在.jar文件中
- /WEB-INF/lib/︰存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
指纹信息收集:
-
- robots.txt文件(防爬虫文件)里的目录结构,例如/wp-admin/可以大致判断cms为WordPress
- 通过版权信息进行查询,拉到底部查看版权信息,有些站点会显示出来例如Powered by DedeCMS_xx
- 网页源码查看
- 通过扫描器如wpscan针对wordpress,再比如御剑扫描目录分析目录结构
- 在线扫描:
-
-
- 在线识别: http://whatweb.bugscaner.com/look/
- 云悉http://www.yunsee.cn
- 潮汐指纹:http://finger.tidesec.net/
-
服务器信息收集:
-
- 最直接的办法是利用Linux系统对大小写敏感,而Windows不敏感
- 数据包返回判断
中间件信息收集:
-
- 利用常规知识判断
- 报错法(想办法让网站报错)
- burp抓包、火狐插件
网站架构信息:
-
- 网站语言、数据库,网站框架、组件框架历史漏洞
-
- 常用的网站架构如:
-
- LAMP: LAMP==Linux+Apache+Mysql+PHP
- LNMP: LNMP==Linux+Nginx+Mysql+PHP
-
- PHP框架:
ThinkPHP
-
- 在线查找:
-
-
- 云悉指纹: http://www.yunsee.cn/
- 潮汐指纹: http://finger.tidesec.net/
-