信息收集概念
进行渗透测试之前,最重要的一步就是信息收集。
信息收集的主要内容:收集服务器配置信息、网站敏感信息等,包括域名、子域名信息、目标网站系统CMS指纹、目标网站真实IP、开放端口等。
1、收集域名信息
知道目标域名后,第一件事就是获取域名注册信息,包括域名DNS服务器信息及注册人联系信息等。
Whois命令查询
概念:Whois是一个标准互联网协议,可用于收集网络注册信息,如注册域名、IP等。
原理:Whois就是一个用于查询域名是否被注册及注册域名详细信息的数据库。
作用:获得注册人姓名和邮箱,通过社工进一步获取其它信息。
用法:
whois baidu.com
在线Whois查询网站:
站长工具_whois查询工具_爱站网 (aizhan.com)
2、查询备案信息
概念:网站备案是工具国家法律法规规定,需要网站所有者向国家有关部门申请的备案。这是国家信息产业部对网站的一种管理。
注意:若网站搭建在其他国家,则不需进行备案。
在线备案信息查询网站:
天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统 (tianyancha.com)
3、收集敏感信息
搜索关键字
通过搜索引擎构造特殊关键字语法来搜索互联网上的相关敏感信息。还可用其来收集数据库文件、SQL注入、配置信息、源码泄露、未授权访问和robots.txt等敏感信息。
常用搜索语法(各搜索引擎大同小异):
| 语法 | 作用 |
|---|---|
| Site | 指定域名 |
| Inurl | URL存在关键字的网页 |
| Intext | 网页正文中的关键字 |
| Filetype | 指定文件类型 |
| Intitle | 网页标题中的关键字 |
| link | link:baidu.com 表示返回所有和baidu.com做了链接的URL |
| Info | 查找指定站点的基本信息 |
| cache | 搜索Google中关于某些内容的缓存 |
一般可以把语法结合使用以获得更准确的信息。
使用Burp Suite的Repeater模块
将抓到的包发送至Repeater模块,查看服务器端的响应包。可以获得一些服务器信息,如Server类型及版本、PHP版本信息等。
GitHub信息泄露
可以尝试在GitHub上搜寻敏感信息,如数据库连接信息、uc-key、阿里osskey、邮箱帐密等。
4、收集子域名
子域名,即二级域名,指顶级域名之下的域名。假设目标网站规模较大,一般来说从主站入手都是极不理智的选择,这时我们就可以考虑从子域迂回接近目标。
子域名检测工具
Layer子域名挖掘机:较为常用,有域名、解析IP、CDN列表、Web服务器和网站状态。
subDomainBrute:用小字典递归发现三级、四级甚至是五级域名。
Sublist3r:能列举多种资源,如在Google、Yahoo、Bing、Baidu和Ask等搜索引擎中可查到的子域名,还可列出Netcraft、VirusTota、ThreatCrow、DNSdumpster和Reverse DNS查到的子域名。
利用搜索引擎语法
利用site语法搜索与某域名相关的网页信息。
证书透明度公开日志枚举
证书透明度(Certificate Transparency, CT):是证书授权机构(CA)的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。
SSL/TLS证书通常包含域名、子域名和邮件信息,这些也经常成为攻击者想获得的信息。
在线网站:
easyDNS Parked Page for: scrt.sh
5、端口收集
通过扫描服务器开放端口及端口状态判断服务器存在的服务,进一步定制化攻击。
收集工具:
Nmap
无状态端口扫描工具Masscan
ZMap
御剑高速TCP端口扫描工具
常见端口及说明
文件共享服务端口:
| 端口号 | 端口说明 | 攻击思路 |
|---|---|---|
| 21/22/69 | Ftp/Tftp文件传输协议 | 允许匿名上传、下载、爆破和嗅探操作 |
| 139 | Samba服务 | 爆破、未授权访问、远程代码执行 |
| 389 | Ldap目录访问协议 | 注入、允许匿名访问、弱口令 |
| 2049 | Nfs服务 | 配置不当 |
远程连接服务端口:
| 端口号 | 端口说明 | 攻击思路 |
|---|---|---|
| 22 | SSH远程连接 | 爆破、文件传输、SSH隧道及内网代理转发 |
| 23 | Telnet远程连接 | 爆破、嗅探、弱口令 |
| 3389 | Rdp远程桌面连接 | 爆破、Shift(Windows Server 2k3以下系统) |
| 5632 | PyAnywhere | 抓取密码、代码执行 |
| 5900 | VNC | 弱口令爆破 |
Web应用服务端口:
| 端口号 | 端口说明 | 攻击思路 |
|---|---|---|
| 80/443/8080 | 常见Web服务端口 | 爆破、Web攻击、对应服务器版本漏洞 |
| 1352 | Lotus domino邮件服务 | 爆破、弱口令、信息泄露 |
| 4848 | Glassfish控制台 | 弱口令 |
| 7001/7002 | WebLogic控制台 | 弱口令、Java反序列化 |
| 8080/8089 | Jboss/Resin/Jetty/Jenkins | 反序列化、控制台弱口令 |
| 9090 | WebSphere控制台 | 弱口令、Java反序列化 |
| 10000 | Webmin-Web控制面板 | 弱口令 |
数据库服务端口:
| 端口号 | 端口说明 | 攻击思路 |
|---|---|---|
| 1433 | MSSQL | 注入、提权、爆破、SA弱口令 |
| 1521 | Oracle | 注入、TNS爆破、反弹shell |
| 3306 | MySQL | 注入、提权、爆破 |
| 5000 | SysBase/DB2 | 爆破、注入 |
| 5432 | PostgreSQL | 爆破、注入、弱口令 |
| 6379 | Redis | 弱口令爆破、未授权访问 |
| 27017/27018 | MongoDB | 爆破、未授权访问 |
邮件服务端口:
| 端口号 | 端口说明 | 攻击思路 |
|---|---|---|
| 25 | SMTP邮件服务 | 邮件伪造 |
| 110 | POP3协议 | 爆破、嗅探 |
| 143 | IMAP协议 | 爆破 |
常见协议端口:
| 端口号 | 端口说明 | 攻击思路 |
|---|---|---|
| 53 | DNS域名系统 | 域传送、缓存投毒、DNS欺骗、DNS劫持 |
| 67/68 | DHCP服务 | 欺骗、劫持 |
| 161 | SNMP协议 | 爆破、搜索目标内网信息 |
特殊服务端口:
| 端口号 | 端口说明 | 攻击思路 |
|---|---|---|
| 512/513/514 | Linux Rexec服务 | 爆破、Rlogin登录 |
| 873 | Rsync服务 | 匿名访问、文件上传 |
| 2181 | Zookeeper服务 | 未授权访问 |
| 3690 | Svn服务 | Svn泄露、未授权访问 |
| 8069 | Zabbix服务 | 远程执行、SQL注入 |
| 9200/9300 | Elasticsearch服务 | 远程执行 |
| 11211 | Memcache服务 | 未授权访问 |
| 50000 | SAP Management Console | 远程执行 |
6、指纹识别(CMS)
注意:指纹由于其终身不变性、唯一性和方便性,几乎已成为生物特征识别的代名词。本文所讲的指纹是指网站CMS指纹识别、计算机操作系统及Web容器指纹识别等。
概念:应用程序一般在HTML、CSS等文件中多少包含一些特征码,如WordPress在robots.txt中会包含wp-admin,index.php中会包含generator=wordpress 3.xx。这个特征就是CMS的指纹,当遇到其它网站也存在此特征时,即可快速判断CMS。
CMS(Content Managements System):又称整站系统或文章系统。在2004年之前,若想对网站进行内容管理,基本都需要手工维护,但在信息爆炸的时代,这明显不是一种可行的方式,所以出现了CMS。客户只需安装好开发者提供的软件包,进行对应的环境配置即可定期更新数据来维护网站,节省了大量人力物力。
常见CMS:Dedecms(织梦)、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog WordPress等。
常用工具:御剑Web指纹识别、WhatWeb WebRobo、椰树、轻量Web指纹识别等。
在线CMS指纹识别:
云悉互联网WEB资产在线梳理|在线CMS指纹识别平台 - 云悉安全平台 (yunsee.cn)
WhatWeb - Next generation web scanner.
7、绕过CDN寻找真实IP
CDN: 内容分发网络(Content Delivery Network),主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。简要来说,就是一组在不同运营商之间的对接节点上的高速缓存服务器,把用户经常访问的静态数据资源(如静态HTML、CSS、JS图片等文件)直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户最近的节点服务器上响应用户请求,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站响应速度及用户体验。
目标网站有CDN:可以直接ping目标域名,但得到的只是离我们最近的一台目标节点CDN服务器,无法获取目标真实IP。
观察目标是否使用CDN
通过网站测速|网站速度测试|网速测试|电信|联通|网通|全国|监控|CDN|PING|DNS 17CE.COM实现全国多地ping服务器的操作,对比解析IP是否一致,若解析IP大多不一致或规律性强,则进一步查询IP归属地进行判断。
绕过CDN寻找真实IP
内部邮箱源
一般系统邮件服务器都在内部,并不会经过CDN解析,通过目标网站用户注册或RSS订阅来查看邮件、寻找邮件头中的邮件服务域名IP,ping这个域名就能获得目标真实IP。
注:此方法对于第三方或公共邮件服务器无效。
扫描网站测试文件
如phpinfo、test等,从而找到目标真实IP。
分站域名
一些大网站主站访问量大,所以需要挂CDN,但分站就不一样了。我们可以通过ping二级域名获取分站IP,存在主站和分站不是一个IP,但属于一个C段的可能。
国外访问
国内CDN往往只针对国内用户访问加速,国外CDN则不一定。通过国外在线代理网站访问就有可能获得真实IP。
其它方式
查询域名解析记录:如果目标很久未使用CDN,可以通过Netcraft | Internet Research, Cybercrime Disruption and PCI Security Services观察域名IP的历史记录,也能够大致分析出目标C段。
APP:如果目标有自己的APP,可以尝试用Fiddler或bp抓包找真实IP。
绕过Cloud Flare CDN:通过https://simcast.com/查询目标真实IP。
验证IP
最简单的方式就是直接访问。
在目标C段较大的情况下,尝试使用Masscan工具批量扫描对应IP段中所有打开对应端口的IP,逐个访问验证。
8、收集敏感目录文件
概念:探测Web目录结构及隐藏敏感文件是渗透测试不可缺少的环节,我们可以从中获取网站后台管理页面、文件上传页面甚至部分源码。
常用工具:
御剑后台扫描珍藏版
DirBuster
同IP网站查询,C段查询,IP反查域名,C段旁注,旁注工具 (webscan.cc)
9、社会工程学
应用场景:通过钓鱼、查水表等方式获取信息。
文章许可:本文采用CC BY-NC-SA 4.0许可协议,转载请注明出处。