【信息收集】渗透测试信息收集的种类及方法(待拆分细化)

1 信息收集概述

1.1 目的

进行渗透测试之前, 最重要的一步就是信息收集,在这个阶段,我们要尽可能地收集目标组织的信息。所谓“知己知彼,百战不殆”,我们越是了解测试目标,测试的工作就越容易。

1.2 收集内容

在信息收集中,最主要的就是收集服务器的配置信息和网站的敏感信息,其中包括域名及子域名信息、目标网站系统、CMS指纹、目标网站真实IP 、开放的端口等。换句话说,只要是与目标网站相关的信息,我们都应该去尽量搜
集。

2 收集域名信息

知道目标的域名之后,我们要做的第一件事就是获取域名的注册信息,包括该域名的DNS服务器信息和注册人的联系信息等。域名信息收集的常用方法有以下这几种。

2.1 Whois查询

2.1.1 Whois简介

  • Whois是一个标准的互联网协议, 可用于收集网络注册信息,注册的域名、IP地址等信息。简单来说, Whois就是一个用于查询域名是否己被注册以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
  • 在Whois查询中,得到注册人的姓名和邮箱信息通常对测试个人站点非常有用,因为我们可以通过搜索引擎和社交网络挖掘出域名所有人的很多信息。对中小站点而言,域名所有人往往就是管理员。

2.1.2 Whois操作

  • Kali系统:在Kali系统中, Whois 己经默认安装,只需输入要查询的域名即可。
    在这里插入图片描述
  • 站长之家(https://whois.chinaz.com);在这里插入图片描述
  • 阿里云查询(https://whois.aliyun.com/)
    在这里插入图片描述

2.2 备案信息查询

  • 网站备案是根据国家法律法规规定,需要网站的所有者向国家有关部门申请的备案,这是国家信息产业部对网站的一种管理,为了防止在网上从事非法的网站经营活动的发生。主要针对国内网站,如果网站搭建在其他国家,则不需要进行备案。

  • ICP备案查询网:https://www.beianx.cn/在这里插入图片描述

  • 天眼查: http : //www.tianyancha.como

3 收集敏感信息

3.1 敏感信息类型

此处提到的敏感信息主要包括:数据库文件、SQL注入、配置信息(server及PHP版本等)、源代码泄露、未授权访问和robots.txt等。

3.2 通过搜索引擎收集敏感信息

Google是世界上最强的搜索引擎之一,对一位渗透测试者而言,它可能是一款绝佳的黑客工具。我们可以通过构造特殊的关键字语法来搜索互联网上的相关敏感信息。下面列举了一些Google 的常用语法及其说明。

关键字说明
site指定域名
inurlURL 中存在关键字的网页
intext网页正文中的关键字
filetype指定文件类型
intitie网页标题中的关键字
linklink:baidu.com 即表示返回所有和 baidu.com 做了链接的URL
info查找指定站点的一些基本信息
cache搜索Google 里关于某些内容的缓存
举个例子,我们尝试搜索一些学校网站的后台,语法为“ site:edu.cn intext:后台管理”, 意思是搜索网页正文中含有“后台管理”并且域名后缀是edu.cn的网站,搜索结果如图所示。
在这里插入图片描述

3.3 通过BurpSuite收集敏感信息

通过BurpSuite工具同样可以获取一些服务器的信息,如运行的Server类型及版本、PHP的版本信息等。针对不同的Server ,可以利用不同的漏洞进行测试。
在这里插入图片描述

3.4 其他

  • 除此之外,也可以尝试在GitHub 上寻找相关敏感信息,如数据库连接信息、邮箱密码、uc-key 、阿里的osskey,有时还可以找到泄露的源代码等。
  • 读者可以通过乌云漏洞表查询历史漏洞信息。

4 收集子域名信息

子域名也就是二级域名, 是指顶级域名下的域名。假设我们的目标网络规模比
较大,直接从主域入手显然是很不理智的, 因为对于这种规模的目标, 一般其主域
都是重点防护区域,所以不如先进入目标的某个子域,然后再想办法迂回接近真正
的目标,这无疑是个比较好的选择。那么问题来了,怎样才能尽可能多地搜集目标
的高价值子域呢? 常用的方法有以下这几种。

4.1 子域名检测工具

用于子域名检测的工具主要有Layer子域名挖掘机、K8 、wydomain , Sublist3r dnsmaper 、subDomainsBrute 、Maltego CE 等。重点推荐Layer子域名挖掘机、Sublist3r和subDomainsBrute 。

4.1.1 Layer子域名挖掘机5.0下载及使用

  1. layer子域名挖掘机5.0下载百度云链接,提取码:121l。
  2. 在windows系统双击exe文件即可使用。
  3. 输入要扫描的域名开启扫描,扫描进度在左下角查看。
    在这里插入图片描述
  4. 鼠标右击列表可以导出域名,选择位置保存为txt文件,默认保存在软件所在文件夹下。

4.1.2 subDomainsBrute下载及使用

  1. subDomainsBrute下载:工具GIthub下载地址,在如下图处下载并解压。
    在这里插入图片描述
  2. 以Kali系统使用该工具为例,将解压后文件夹复制到kali系统中,待用,同理可在Windows系统运行。
  3. 打开kaili终端,配合cd和ls命令,进入解压文件夹中。
    在这里插入图片描述
  4. 查看目录下文件列表,共有2个目录及3个文件,使用kali自带的python2或python3来运行subDomainBrute.py文件,并添加参数-h来表示获取帮助文件。发现python2运行时缺少部分模块,python3可以正常运行。
    在这里插入图片描述
  5. 到此,subDomainBrute安装完成并能正常使用,通过命令python3 subDomainBrute.py 目标域名运行该程序来收集目标域名下的子域名。运行完成后,在该目录下新生成了一个目录和一个文件,存放扫描结果。
    在这里插入图片描述

4.2 搜索引擎枚举

可以利用Google语法搜索子域名,例如使用site:baidu.com语法搜索百度旗下的子域名。
在这里插入图片描述

4.3 第三方聚合应用枚举

  • 很多第三方服务汇聚了大量DNS 数据集,可通过它们检索某个给定域名的子域
    名。只需在其搜索栏中输入域名,就可检索到相关的域名信息。
  • 读者也可以利用DNSdumpster网站(https://dnsdumpster.com/)、在线DNS侦查和搜索的工具挖掘出指定域潜藏的大量子域。

4.4 证书透明度公开曰志枚举

  • 证书透明度(Certificate Transparency, CT)是证书授权机构(CA)的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址,这些也经常成为攻击者非常希望获得的有用信息。查找某个域名所属证书的最简单的方法就是使用搜索引擎搜索一些公开的CT日志。
  • 首推好用网站:https://crt.sh
  • 次推好用网站:https://censys.io/
  • 其他网站:https://phpinfo.me/domain

5 收集常用端口信息

  • 在渗透测试的过程中,对端口信息的收集是一个很重要的过程,通过扫描服务器开放的端口以及从该端口判断服务器上存在的服务,就可以对症下药,便于我们渗透目标服务器。
  • 所以在端口渗透信息的收集过程中,我们需要关注常见应用的默认端口和在端口上运行的服务。最常见的扫描工具就是Nmap 、无状态端口扫描工具Mas scan 、ZMap和御剑高速TCP端口扫描工具。

5.1 文件共享服务端口说明及攻击方向

端口号端口说明攻击方向
21/22/69ftp / tftp 文件传输协议允许匿名的上传、下载、爆破和嗅探操作
2049nfs服务配置不当
139samba服务爆破、未授权访问、远程代码执行
389ldap目录访问协议注入、允许匿名访问、弱口令

5.2 远程连接服务端口说明及攻击方向

端口号端口说明攻击方向
22SSH远程连接爆破、SSH 隧道及内网代理转发、文件传输
23Telnet远程连接爆破、嗅探、弱口令
3389rdp远程桌面连接shift后门(需要Windows Server 2003 以下的系统)、爆破
5900VNC弱口令爆破
5632PyAnywhere服务抓密码、代码执行

5.3 Web应用服务端口说明及攻击方向

端口号端口说明攻击方向
80/443/8080常见的Web 服务端口Web 攻击、爆破、对应服务器版本漏洞
7001 /7002WebLogic 控制台Java 反序列化、弱口令
8080/8089Jboss/Resin/Jetty/Jenkins反序列化、控制台弱口令
9090WebSphere 控制台Java 反序列化、弱口令
4848Glassfish 控制台弱口令
1352Lotus domino 邮件服务弱口令、信息泄露、爆破
10000Webmin-Web 控制面板弱口令

5.4 数据库服务端口说明及攻击方向

端口号端口说明攻击方向
3306MySQL注入、提权、爆破
1433MSSQL 数据库注入、提权、SA 弱口令、爆破
1521Oracle 数据库TNS 爆破、注入、反弹Shell
5432Postgre SQL 数据库爆破、注入、弱口令
27017/27018MongoDB爆破、未授权访问
6379Redis 数据库可尝试未授权访问、弱口令爆破
5000SysBase/DB2 数据库爆破、注入

5.5 数据库服务端口说明及攻击方向

端口号端口说明攻击方向
25SMTP 邮件服务邮件伪造
110POP3 协议爆破、嗅探
143IMAP 协议爆破

5.6 网络常见协议端口说明及攻击方向

端口号端口说明攻击方向
53DNS 域名系统允许区域传送、DNS 劫持、缓存投毒、欺骗
67/68DHCP 服务劫持、欺骗
161SNMP 协议爆破、搜集目标内网信息

5.7 特殊服务端口说明及攻击方向

端口号端口说明攻击方向
2181Zookeeper 服务未授权访问
8069Zabbix 服务远程执行、SQL 注入
9200/9300Elasticsearch 服务远程执行
11211Memcache 服务未授权访问
512/513/514Linux Rexec 服务爆破、Rlogin登录
873Rsync 服务匿名访问、文件上传
3690Svn 服务Svn 泄露、未授权访问
50000SAP Management Console远程执行

6 指纹识别

6.1 CMS及Web指纹识别的必要性

  • 必要性:在渗透测试中,只有识别出相应的Web容器或者CMS ,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。
  • 内容管理系统(content management system,CMS):是一种位于WEB前端(Web 服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。内容的创作人员、编辑人员、发布人员使用内容管理系统来提交、修改、审批、发布内容。

6.2 采用工具进行指纹识别

  • Web指纹识别代表工具有WhatWeb 、御剑Web 指纹识别、WebRobo 、椰树、轻量WEB指纹识别等,可以快速识别一些主流CMS。
  • Whatweb是kali系统自带工具,可以搜索直接使用。
    在这里插入图片描述
    在这里插入图片描述

6.3 采用网站查询指纹

  • BugScaner: http://whatweb.bugscaner.com/look/。
  • 云悉指纹:http://www.yunsee.cn/finger.html。
    · WhatWeb: https://whatweb.net/。

7 查找真实IP

在渗透测试过程中,目标服务器可能只有一个域名,那么如何通过这个域名来确定目标服务器的真实IP对渗透测试来说就很重要。如果目标服务器不存在CDN,可以直接通过www.ipl38.com获取目标的一些IP及域名信息。这里主要讲解在以下这几种情况下,如何绕过CDN寻找目标服务器的真实IP 。

7.1 CDN技术概述

  1. 定义:CDN的全称是Content DeliveryNetwork,即内容分发网络。
  2. 简介:CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
  3. 基本原理:CDN的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。
  4. 目的:是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
    在这里插入图片描述

7.2 对渗透测试的影响

  1. 当公司服务器单纯只使用DNS解析,直接PING就会显示出其真实IP;如果使用CDN,直接PING出来的IP就不是用户的真实IP而是CDN服务器的IP节点。
  2. cdn会隐藏服务器真实的ip地址,无法对目标网站的操作系统进行渗透,但cdn站点又可以理解为是目标站点的镜像站点(大多数都是静态cdn加速),拥有相同的网站架构,且cdn服务器可与站点服务器进行交互,因此sql注入,xss等漏洞的挖掘并不受太大影响。

7.3 判断及绕过CDN的方法

7.3.1 判断方法

  1. 通过超级ping的网站可以看到CDN的解析情况,可以浏览器搜索“超级ping”打开对应网页输入域名进行搜索,或直接在浏览器输入“https://ping.chinaz.com/+目标域名”的方式进行检索。以百度WEB服务器为例,https://ping.chinaz.com/www.baidu.com。
  2. 返回结果有多个,说明启用了CND技术。.
    在这里插入图片描述

7.3.2绕过CDN寻找真实IP的方法

  1. 内部邮箱源。一般的邮件系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件、寻找邮件头中的邮件服务器域名IP,ping 这个邮件服务器的域名, 就可以获得目标的真实IP (注意,必须是目标自己的邮件服务器,第三方或公共邮件服务器是没有用的)。
  2. 扫描网站测试文件,如phpinfo 、test 等,从而找到目标的真实IP 。
  3. 分站域名。很多网站主站的访问量会比较大,所以主站都是挂CDN 的,但是分站可能没有挂CDN,可以通过ping二级域名获取分站IP,可能会出现分站和主站不是同一个IP但在同一个C段下面的情况,从而能判断出目标的真实IP段。
  4. 国外访问。国内的CDN往往只对国内用户的访问加速,而国外的CDN就不一定了。因此,通过国外在线代理网站App Synthetic Monitor (https://asm.ca.com/en/ping.php)访问,可能会得到真实的IP。
  5. 查询域名的解析记录。也许目标很久以前并没有用过CDN,所以可以通过网站NETC RAFT(https://www.netcraft.com/)来观察域名的IP历史记录,也可以大致分析出目标的真实IP段。
  6. 如果目标网站有自己的App,可以尝试利用Fiddler或BurpSuite截取App的请求,从里面找到目标的真实IP。
  7. 绕过CloudFlare CDN查找真实IP 。现在很多网站都使用CloudFlare提供的CDN服务,在确定了目标网站使用CDN后,可以先尝试通过在线网站Cloud Flare Watch ( http://www.crimeflare.us/cfs.html#box)对CloudFlare客户网站进行真实IP查询。

7.4 验证获取的IP

找到目标的真实IP以后,如何验证其真实性呢?如果是Web,最简单的验证方法是直接尝试用IP访问,看看响应的页面是不是和访问域名返回的一样;或者在目标段比较大的情况下,借助类似Masscan的工具批扫描对应IP段中所有开了80、443、8080端口的IP,然后逐个尝试IP访问,观察响应结果是否为目标站点。

8 收集敏感目录文件

8.1 目的及常见工具

  • 目的:在渗透测试中,探测Web 目录结构和隐藏的敏感文件是一个必不可少的环节,从中可以获取网站的后台管理页面、文件上传界面, 甚至可能扫描出网站的源代码。
  • 针对网站目录的扫描主要有:DirBuster 、御剑后台扫描珍藏版、wwwscan 、Spinder.py (轻量级快速单文件目录后台扫描)、Sensitivefilescan (轻量级快速单文件目录后台扫描)、Weakfilescan (轻量级快速单文件目录后台扫描)等工具。

8.2 御剑后台扫描珍藏版

  1. 扫描线程自定义:用户可根据自身电脑的配置来设置调节扫描线程;
  2. 集合DIR扫描 ASP ASPX PHP JSP MDB数据库 包含所有网站脚本路径扫描;
  3. 默认探测200 (也就是扫描的网站真实存在的路径文件)。
  4. 使用界面:
    在这里插入图片描述

8.2 DirBuster

  • 简介:DirBuster是OWASP开发的一款基于Java编写的、专门用于探视Web服务器的目录和隐藏文件。因为是用Java编写的,所以需要在Java运行环境ORE )下安装。该工具的界面是纯图形化的,用法相对简单。
  • kali系统中自带了DirBuster工具,可以搜索找到该工具。在这里插入图片描述
  • 点击运行后软件界面如下图。
    在这里插入图片描述
  • 在Target URL输入框中输入要扫描的网址,扫描时将请求方法设置为“Auto Switch”。
  • 设置线程的数值,推荐在20-30之间。太大了容易引起系统死机。
  • 选择字典类型,如果使用个人字典扫描,先选择“ List based brute force ”选项,再单击“ Browse ”选择字典,可以选择工具自带的字典,也可以选择自己的字典。可以点击List info查看软件自带字典的简介再做选择。
  • 在Select starting options 中选择“ URL Fuzz ”方式进行扫描。设置fruzzing 时需要注意,在URL to fuzz里输入“/{dir}”。这里的{dir}是一个变量,用来代表字典中的每一行。如果你扫描的目标是http://www.xxx.com/admin/ ,那么就要在URL to fuzz 里填写“/admin/{dir}”,意思是在“{dir}”的前后可以随意拼接你想要的目录或者后缀,例如输入“/admin/{dir}.php ”就表示扫描admin目录下的所有php文件。
  • 参考以上说明设置如下图,适当调整窗口大小,可以看到Start按钮。
    在这里插入图片描述

9 社会工程学

  • 社会工程学在渗透测试中起着不小的作用,利用社会工程学,攻击者可以从一名员工的口中挖掘出本应该是秘密的信息。
  • 假设攻击者对一家公司进行渗透测试,正在收集目标的真实IP阶段,此时就可以利用收集到的这家公司的某位销售人员的电子邮箱。首先,给这位销售人员发送邮件,假装对某个产品很感兴趣,显然销售人员会回复邮件。这样攻击者就可以通过分析邮件头来收集这家公司的真实IP地址及内部电子邮件服务器的相关信息。
  • 通过进一步地应用社会工程学,假设现在己经收集了目标人物的邮箱、QQ 、电话号码、姓名,以及域名服务商, 也通过爆破或者撞库的方法获取邮箱的密码,这时就可以冒充目标人物要求客服人员协助重置域管理密码,甚至技术人员会帮着重置密码,从而使攻击者拿下域管理控制台,然后做域劫持。
  • 除此以外,还可以利用“社工库”查询想要得到的信息,社工库是用社会工程学进行攻击时积累的各方数据的结构化数据库。这个数据库里有大量信息,甚至可以找到每个人的各种行为记录。利用收集到的邮箱,可以在社工库中找到己经泄露的密码,其实还可以通过搜索引擎搜索到社交账号等信息,然后通过利用社交和社会工程学得到的信息构造密码字典,对目标用户的邮箱和OA账号进行爆破或者撞库。

10 总结

  1. 了解信息收集阶段的目的;
  2. 掌握信息收集的类型;
  3. 掌握不同信息收集的方法。

参考文献

  1. 《Web安全攻防:渗透测试实战指南》
  2. layer子域名挖掘机下载与使用教程
  3. 工具推荐|目标域名收集之subDomainsBrute
  4. 指纹识别工具WhatWeb
  5. 被动信息收集----CDN识别
  6. 后台扫描工具 - 御剑(珍藏版)附下载
  7. 2021Kali系列 – 目录扫描(Dirbuster)
  • 5
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值