前言
前段时间,看了一本书名为《Kali Linux 渗透测试的艺术》,我发现书中第四章信息搜集那部分有些内容不能适应有些内容不能适用国内,这勾起了我想总结一下国内信息搜集的欲望,于是就有了这篇文章。
什么是信息搜集
信息搜集也称踩点,信息搜集毋庸置疑就是尽可能的搜集目标的信息,包括端口信息、DNS信息、员工邮箱等等看似并不起眼的一些信息都算是信息搜集,这些看似微乎其微的信息,对于渗透测试而言就关乎到成功与否了。
信息搜集的重要性
信息搜集是渗透测试的最重要的阶段,占据整个渗透测试的60%,可见信息搜集的重要性。根据收集的有用信息,可以大大提高我们渗透测试的成功率。
信息搜集的分类
1、主动式信息搜集(可获取到的信息较多,但易被目标发现) 2、通过直接发起与被测目标网络之间的互动来获取相关信息,如通过Nmap扫描目标系统。 3、被动式信息搜集(搜集到的信息较少,但不易被发现) 4、通过第三方服务来获取目标网络相关信息。如通过搜索引擎方式来搜集信息。
搜集什么信息
1、whois信息(微步) 2、网站架构 3、dns信息(通过查询dns我们可以检测是否存在dns域传送漏洞) 4、子域名搜集 5、敏感目录及敏感信息、源码泄露(搜索引擎 工具) 6、脆弱系统(网络空间) 7、旁站查询 8、C端查询 9、指纹信息 10、端口服务 11、备案信息 12、真实ip 13、探测waf 14、社工(朋友圈、微博、qq空间、求职、交易等社交平台) 15、企业信息(天眼查、企业信用信息公示系统、工业和信息化部ICP/IP地址/域名信息备案管理系统)
信息搜集的流程
上面我已经列举了需要搜集的信息,然后我给它们分了一下类。
我考虑到一个网站的组成是由域名、服务器、网站程序组成的。
因此:
首先入手域名方面:whois、子域名、备案信息; 其次是入手服务器方面:dns信息、端口服务、真实ip; 然后入手网站程序(web层)方面:网站架构、敏感目录及敏感信息、源码泄露(搜索引擎 工具)、脆弱系统(网络空间)、旁站查询、C端查询、指纹信息、探测waf; 最后入手企业方面:天眼查、企业信用信息公示系统
归了类之后,我做了一张脑图。
脑图如下图所示:
Whois信息和Whois反查
whois是用来查询域名的IP以及所有者等信息的传输协议。 whois信息可以获取关键注册人的信息,包括注册商、联系人、联系邮箱、联系电话、创建时间等,可以进行邮箱反查域名,爆破邮箱,社工,域名劫持等等。
查询方式
1、http://whois.chinaz.com/ 2、微步 3、https://who.is/ 4、Linux whois命令 5、其他工具
这里需要注意的是国际域名可以设置隐私保护,但像国内.cn等域名是不可以设置隐私保护的。
当然我们得比较一下这几种方式哪一种比较适合自己。
站长之家查询whois信息
这里我用360.cn为例。可以看到下图我们搜集到了注册商、联系人、联系邮箱等信息。
可以看到很直观,很中国,而且我们还可以通过联系人和联系邮箱反查。
我们通过联系人反查,搜集到更多信息,效果如下图
我们也可以通过邮箱反查,效果如下图
微步查询whois信息
下图通过微步查询whois信息的效果,和站长之家一样很中国,想要反查whois需要复制邮箱
图是反查邮箱的效果,微步需要登录才可以查看更多的信息。
因此相较于站长之家就显得有些麻烦了。
who.is查询whois信息
下图是通过who.is网站查询到的whois信息,可以看到中文字符竟还有乱码,很外国,且不能whois反查。
Linux whois命令查询whois信息
需要注意的是并不是所有Linux系统都自带whois命令的。
我这里就用CentOS7来演示安装whois客户端。
具体命令的话可以看下图
安装完成之后,我们来查询一下360.cn。可以看到下图的效果,同样出现了乱码。
其他工具查询whois信息
查询whois信息的工具,我这里不做讲解了,工具实质上还是调用了网站接口的。
因此通过比较,我们针对国内网站的whois信息,我们使用站长之家和微步来查询whois信息效率会比较高。
子域名搜集
子域名收集可以发现更多目标,以增加渗透测试成功的可能性,探测到更多隐藏或遗忘的应用服务,这些应用往往可导致一些严重漏洞。当一个主站坚不可摧时,我们可以尝试从分站入手。
查询方式
1、layer子域名挖掘机 2、https://phpinfo.me/domain/ 3、subDomainsBrute 4、搜索引擎语法(site:xxx.com)
layer子域名挖掘机
下载地址:https://www.webshell.cc/6384.html
我们运行这款工具需要安装.net framework 4.0以上,否则会出现像下图一样的错误信息
我就以安装4.5.2为例
安装完毕后会出现下图
现在可以成功运行工具了
以360.cn为例,爆破的效果如下图,这款软件的好处是还可以进行扫描端口和探测服务器类型
https://phpinfo.me/domain/
这是Lcy大佬的在线子域名爆破工具,我们可以测试一下爆破360.cn的子域名的效果,如下图所示,作为在线工具,它的爆破速度很可观。
subDomainsBrute
这是lijiejie大佬用python写的子域名爆破工具,不用说运行的话需要先安装python,对于懒惰的人,直接拖进kali里直接就可以运行。
github下载地址:https://github.com/lijiejie/subDomainsBrute
下图是以360.cn为例,用这款工具爆破出来的子域名,可以看到比较少,这是因为字典比较小的原因。
搜索引擎语法(site:xxx.com)
我们也可以通过搜索引擎的语法搜索,但是搜索到的子域名比较少。
下图是通过百度搜索360.cn子域名的效果图,当然谷歌也是同样的语法。
备案信息
备案信息分为两种,一种是IPC备案信息查询,一种是公安部备案信息查询。如果是国外的服务器是不需要备案的,因此可以忽略此步骤,国内的服务器是需要备案的,因此可以尝试获取信息。
查询方式
1、ICP备案查询 2、公安部备案查询
ICP备案查询
下图是通过网站查询ICP备案信息
公安部备案查询
下图是通过全国公安机关互联网安全管理服务平台查询公安部备案信息
DNS信息搜集
通过查询DNS信息,我们可能可以发现网站的真实ip地址,也可以尝试测试是否存在DNS域传送漏洞。
查询方式
1、Kali(host、big命令) 2、windows(nslookup命令) 3、在线工具
Kali命令
host查询DNS信息,如下图所示:
big查询DNS信息,如下图所示
windows命令
nslookup命令效果如下图,比较low。
在线工具
地址:
http://tool.chinaz.com/dns/
https://tool.lu/dns/
这里就不做讲解了,和查whois信息一样。
探测端口服务
查询方式
Nmap
个人觉得用Nmap足矣
Nmap扫描
扫描结果如下图所示,可以看到我们可以扫描到操作系统类型、端口信息和端口对应的服务信息。
下图是详细端口对应服务图
获取网站真实ip
现在大多数的网站都开启了CDN加速,导致我们获取到的IP地址不一定是真实的IP地址。
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
思路
1、二级域名法 一般网站不会所有的二级域名放CDN,因此我们可以利用这点来获取网站的真实ip 2、多地ping法 由CDN的原理,不同的地方去Ping服务器,如果IP不一样,则目标网站肯定使用了CDN 3、nslookup法 找国外的比较偏僻的DNS解析服务器进行DNS查询,因为大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP 4、查看邮件法 通过查看邮件原文来确定ip地址,CDN总不会发送邮件吧 5、RSS订阅法 RSS原理于邮件法差不多 6、查看历史解析记录法 查找域名历史解析记录,域名在上CDN之前用的IP,很有可能就是CDN的真实源IP地址 7、利用网站漏洞(XSS、命令执行、SSRF、php探针、phpinfo页面等) 可以通过一些页面和漏洞获取到服务器ip地址也是可能的。
网站架构
操作系统
查询方式:
1、Nmap 2、wappalyzer插件 3、云悉
wappalyzer插件是一款火狐插件,可以去火狐扩展中添加。
云悉是云悉安全专注于网络资产自动化梳理,cms检测web指纹识别,让网络资产更清晰的在线查询工具。
通过Nmap获取操作系统,如下图所示
通过wappalyzer插件查询,如下图所示
通过云悉也可以查询到操作系统,如下图所示
中间件信息
1、wappalyzer插件 2、云悉
通过wappalyzer插件查询中间件信息,如下图所示
通过云悉也可以查询到中间件信息,如下图所示
数据库
1、wappalyzer 2、云悉
通过云悉查询到数据库信息,如下图所示
通过wappalyzer插件查询到数据库信息,如下图所示
编程语言
1、wappalyzer 2、云悉
通过wappalyzer插件查询到编程语言信息,如下图所示
通过云悉查询到编程语言信息,如下图所示
敏感目录及敏感信息、源码泄露(搜索引擎 工具)
途径方法
1、御剑 2、搜索引擎 3、BBscan 4、GSIL 5、社交平台(QQ群、文库、求职网)
robots.txt、crossdomin.xml、sitemap.xml、源码泄漏文件、/WEB-INF/
御剑
御剑这款工具主要用于扫描网站的敏感目录、敏感文件。这里必须要说明一下字典必须要足够强大才可以扫到别人发现不了的点。因此我们必须完善一下自己的字典。
下图是我利用御剑对我自己网站的一次扫描
搜索引擎
搜索引擎也可以用于搜索网站的敏感目录、敏感文件和敏感信息。
这里就必须提一下搜索引擎的语法了,这里以google 黑客语法为例,语法同样适用于百度搜索引擎。
基本语法:
代码语言:javascript复制"" //双引号表示强制搜索
代码语言:javascript复制- //表示搜索不包含关键词的网页
代码语言:javascript复制| //或者的意思
代码语言:javascript复制site //返回所有于这个域名有关的网页
代码语言:javascript复制intext //搜索到的网页正文部分包含关键词
代码语言:javascript复制intitle //搜索到的网页标题包含关键词
代码语言:javascript复制cache //搜索关于某些内容的缓存
代码语言:javascript复制definne //搜索某个词语的定义
代码语言:javascript复制filetype //搜索指定的文件类型
代码语言:javascript复制info //查找指定站点的一些基本信息
代码语言:javascript复制inurl //搜索包含关键词的URL
代码语言:javascript复制link //可以返回所有和baidu.com做了链接的URL
下面做几个演示
下图将返回360.cn的一些分站
下图返回了所有360.cn下的所有包含login关键词的URL
具体的用法你可以自己开动脑经组合使用,这里就不多做演示了。
BBscan
BBscan是一款信息泄漏批量扫描脚本。它是依旧还是由lijiejie大佬用python写的安全工具。
这是项目地址:https://github.com/lijiejie/BBScan
在windows平台运行需要解决依赖问题
代码语言:javascript复制pip install -r requirements.txt
下图是安装依赖的过程
下面说一下使用示例
1. 扫描单个web服务 www.target.com
代码语言:javascript复制python BBScan.py --host www.target.com
2. 扫描www.target.com和www.target.com/28下的其他主机
代码语言:javascript复制python BBScan.py --host www.target.com --network 28
3. 扫描txt文件中的所有主机
代码语言:javascript复制python BBScan.py -f wandoujia.com.txt
4. 从文件夹中导入所有的主机并扫描
代码语言:javascript复制python BBScan.py -d targets/ --browser
5. 如果是为了去各大src刷漏洞,可以考虑把所有域名保存到targets文件夹下,然后
代码语言:javascript复制python BBScan.py -d targets/ --network 30
下图是我利用BBscan扫描自己网站
GSIL
GSIL是一款由python3写的从github上寻找敏感文件的安全工具。
项目地址:https://github.com/FeeiCN/GSIL
先安装一下依赖
代码语言:javascript复制pip install -r requirements.txt
然后需要给它进行配置
用法
代码语言:javascript复制# 启动测试$ python3 gsil.py test# 测试token有效性$ python3 gsil.py --verify-tokens
社交平台
在wooyun某一些案例中,有一些奇葩的思路,通过qq群信息泄露或者通过在线文档平台等等导致被攻击。
下图是通过QQ群查找找到的敏感文件以及账号和密码信息。
下图是通过道客巴巴获取敏感信息,其他社交平台这里就不演示了,社交平台实在有点多。
脆弱系统(网络空间)
网络空间搜索引擎的作用就是将互联网上公开的网络资产收集和整理,以此方便人们进行查阅和利用。我在网络空间可发现了不少企业的脆弱系统,未授权访问、SQL注入、弱口令等等都是存在的。
网络空间搜索引擎:
1、Shodan 2、FOFA 3、Zoomeye
旁站查询
什么是旁站
旁站是和目标网站在同一台服务器上的其它的网站。
在线工具 k8旁站查询
在线工具获取旁站
下图是通过站长之家获取同一个服务器下的站点信息
k8查询旁站
这个工具是C#写的,因此需要.NET Framework v4.0
想要使用这款工具还需要申请必应API,我手工测试时是打不开KEY申请地址的,可能已经不行了,因此还是推荐使用在线工具查询吧。
C端查询
什么是C端
C端是和目标服务器ip处在同一个C段的其它服务器。
查询方式
北极熊扫描器 Nmap
北极熊扫描器扫C端
这是一款国人写的扫描器,不得不说这款扫描器误报率是真的高。通过一些实战我发现这款扫描器不错的是C端扫描,可以获取网站标题、服务环境、程序类型
下载地址
下图是使用北极熊扫描器扫C端的效果图
Nmap扫C端
下图是Nmap扫描开放http服务的服务器的效果图
指纹信息
指纹是什么
指定路径下指定名称的js文件或代码。 指定路径下指定名称的css文件或代码。 <title>中的内容,有些程序标题中会带有程序标识 meta标记中带程序标识中带程序标识。 display:none中的版权信息。 页面底部版权信息,关键字© Powered by等。 readme.txt、License.txt、help.txt等文件。 指定路径下指定图片文件,如一些小的图标文件,后台登录页面中的图标文件等,一般管理员不会修改它们。 注释掉的html代码中<!-- http头的X-Powered-By中的值,有的应用程序框架会在此值输出。 cookie中的关键字 robots.txt文件中的关键字 404页面 302返回时的旗标
指纹信息的重要性
通过识别目标网站所使用的CMS信息,可以帮助我们进一步了解渗透测试环境,可以利用已知的一些CMS漏洞来进行攻击。
识别指纹方式
1、云悉 2、wappalyzer插件 3、whatweb工具
探测waf
WAF也称Web应用防护系统,Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
原理:WAF识别大多基于Headers头信息。通过发送恶意的内容,对比响应,寻找数据包被拦截、拒绝或者检测到的标识。
探测方式
手工(提交恶意数据) 工具(WAFW00F、Nmap)
我们可以通过工具判断,如果工具检测到WAF的存在,手工验证一下是否存在误报;如果工具检测不到WAF的存在,我们也可以通过手工来判断WAF到底存不存在。
Nmap探测WAF
Nmap探测WAF有两种脚本,一种是http-waf-detect,一种是http-waf-fingerprint。
WAFW00F探测WAF
手工探测WAF
在网址URL参数后面输入恶意数据,通过提交后被WAF拦截得知WAF信息。如下图
天眼查
地址:https://www.tianyancha.com/
天眼查是一款“都能用的商业安全工具”,根据用户的不同需求,实现了企业背景、企业发展、司法风险、经营风险、经营状况、知识产权方面等多种数据维度的检索。
下图以奇虎360为例
企业信用信息公示系统
地址:http://www.gsxt.gov.cn/index.html
下图以奇虎360为例
参考
书籍《Kali Linux 渗透测试的艺术》 乙方渗透测试之信息搜集 渗透测试之信息搜集 渗透测试之信息搜集
*本文作者:看不尽的尘埃,转载请注明来自 Freebuf.COM