> 文档中心 > 信息收集篇总结

信息收集篇总结

文章目录

    • 关于渗透测试
      • 什么是渗透测试?
      • 渗透测试的白盒与黑盒
    • 域名信息的收集
      • 域名的解析
      • 判断域名对应的真实IP地址
      • whois查询
      • whois查询方法
      • 备案信息
    • 子域名信息收集
      • 常用的子域名枚举检测工具
    • 公司敏感信息网上搜集
    • 指纹识别
    • 服务器信息收集
      • 端口扫描
        • 端口攻击
        • 防御措施
      • 服务器版本识别
    • 网站敏感目录和文件
      • BurpSuite Intruder 模块
      • Webdirscan
    • 旁站和C段扫描

关于渗透测试

什么是渗透测试?

其实渗透测试就是安全从业人员或者是渗透测试工程师利用所掌握的渗透知识,模拟黑客的攻击手段与行为针对被渗透目标进行的一步一步的渗透,发现被渗透目标存在的漏洞以及存在的隐藏的风险。

在渗透测试结束后形成一份专业的测试报告,提供给客户。然后客户会根据这份专业的渗透测试报告,对自己的网站及服务器进行漏洞修补,以防止黑客的入侵。

渗透测试工作的前提条件是必须得经过用户的授权(最好是书面授权),才可以对目标站点进行渗透。在没有经过授权得情况下而对一个网站进行渗透测试的相关工作话,这是一种很严重的违法犯罪行为(现实生活中已经有不少人、技术团队、安全公司踩了这个大坑)。2017年6月1日我国已经颁布了《中华人民共和国网络安全法》,对从事网络犯罪的行为有了进一步的法律约束。详情请访问 中华人民共和国网络安全法

渗透测试的白盒与黑盒

渗透测试和传统的软件测试一样,也分为“白盒测试”与“黑盒测试”

白盒测试就是在知道目标站点的源码和一些重要信息的情况下对其进行渗透,类似于代码分析岗但区别于传统软件测试的逻辑覆盖、循环覆盖和基本路径测试。渗透测试的白盒测试是在得到授权的情况下,可以通过正常渠道向被渗透目标单位取得各种资料,包括网络拓扑、员工资料甚至网站或其它程序的代码片断,也能够与单位的其它员工(销售、产品经理、程序员、管理者……)进行面对面的沟通。这类测试的目的主要是模拟企业内部工作人员的越权操作。

黑盒测试就是只告诉我们这个网站的url或者domain,其他什么都不告诉,然后去模拟黑客对网站的渗透,渗透者完全处于对系统一无所知的状态,通常这类型测试,最初的信息获取来自于DNS、Web、Email及各种公开对外的服务器。

除了白盒与黑盒之外还存在一种测试方法,一般情况下叫做“隐秘测试”。隐秘测试往往是对被测单位而言的,通常情况下,接受渗透测试的单位网络管理部门会收到通知:在某些特定的时段进行测试。因此能够监测网络中出现的变化。但进行隐秘测试的被测单位也仅有极少数人知晓渗透测试的存在,因此能够有效地检验单位中的信息安全事件监控、响应、恢复做得是否到位。

接下来,我们就看一下黑盒渗透测试的流程和思路!

在这里插入图片描述

可以看到,当渗透人员在确定目标之后,所做的第一件事就是信息收集。所谓知己知彼百战百胜,渗透测试人员往往根据网站URL和domain可以查出一系列关于该网站的信息。通过URL和domain我们可以查到该网站的IP、该网站操作系统、脚本语言、在该服务器上是否还有其他网站等等一系列的信息。

前文我们提到信息收集又分为被动信息收集和主动信息收集。信息收集对于渗透来说是非常重要的一步,收集的信息越详细对以后渗透测试的影响越大,信息的收集决定着渗透的成功与否。被动信息收集不会与目标服务器做直接的交互、在不被目标系统察觉的情况下,通过搜索引擎、社交媒体等方式对目标外围的信息进行收集。主动信息收集和被动信息收集相反,主动收集会与目标系统有直接的交互,从而得到目标系统相关的一些情报信息。

没有一种方式是最完美的,每个方式都有自己的优势,主动方式,你能获取更多的信息,但是目标主机可能会记录你的操作记录。被动方式,你收集的信息会相对较少,但是你的行动并不会被目标主机发现。一般在一个渗透项目下,可能需要在不同的阶段进行多次的信息收集,同时也要运用不同的收集方式,才能保证信息收集的完整性。

总的来说:主动信息收集回产生交互,留下记录;被动信息收集不会产生交互。

而信息收集到底要收集哪些信息呢?接下来,我们就看一下渗透测试中常见的一些需要收集的信息。

域名信息的收集

在确定了要渗透目标后,也就是知道了目标的域名,紧接着我们就需要收集域名对应的真实ip,whois信息、子域名等一系列与域名相关的信息。

域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。简单来说就是一个将域名翻译成机器可识别的ip地址的系统。

域名的解析

举一个例子,baidu.com作为一个域名就和IP地址180.101.49.12相对应。当我们在浏览器的URL地址栏输入180.101.49.12时,也可以访问百度搜索引擎。DNS在我们直接调用网站的名字之后就会将像baidu.com一样便于我们人类使用的名字转化成像180.101.49.12这样的便于机器识别的IP地址。再比如163.com的域名,news.163.com是163.com对应的子域名,而news是www下对应的主机名。

判断域名对应的真实IP地址

在我们收集域名对应的真实IP地址之前,首先我们要查询该域名是否存在CDN的情况。我们可以去在线CDN查询网站查询:多个地点Ping服务器,网站测速 - 站长工具 。一般情况下,查询出的ip数量大于一个的话,则说明该ip地址不是真实的服务器地址。如果是2个或者2个以上,并且这几个地址是同一地区的不同运营商的话,则很有可能这几个地址是服务器的出口地址,该服务器在内网中,通过不同运营商NAT映射供互联网访问,同时采用几个不同的运营商可以负载均衡和热备份。如果是多个ip地址,并且这些ip地址分布在不同地区的话,则基本上可以断定就是采用了CDN了。那么如何绕过CDN查找网站真实的ip地址呢?请查看,如何绕过CDN查询网站真实IP

whois查询

whois是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的相信的数据库(如域名所有人、域名注册商)。

不同域名后缀的whois信息需要到不同的whois数据库查询,如“.com”的whois数据库和“.edu”的不同。每个域名或IP的whois信息由对应的管理机构保存,例如以“.com”结尾的域名的whois信息由“.com”运营商VeriSign管理,中国国家顶级域名“.cn”由CNNIC(中国互联网信息中心)管理。

早期的whois查询多以命令行接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令行接口的工具仍然被系统管理员广泛使用。

whois协议基本内容是:先向服务器的TCP协议的43端口建立一个连接,发送查询关键字并加上回车换行,然后接收服务器的查询结果。

通常情况下,我们进行whois查询是去:站长之家whois查询。然后查出来信息之后,可以根据查询出来的邮箱、注册人、公司、电话等进行反查。
一般情况下对于中小型网站域名注册者就是网站管理员,利用搜索引擎对whois查询到的信息进行搜索,获取更多域名注册者的个人信息。

whois查询方法

Web接口查询常见的网站包括:
Whois站长之家查询:http://whois.chinaz.com/
阿里云中国万网查询:https://whois.aliyun.com/
Whois Lookup 查找目标网站所有者的信息:http://whois.domaintools.com/
全球Whois查询:https://www.whois365.com/cn/
站长工具爱站查询:https://whois.aizhan.com/

通过whois命令查询

在Kali Linux下自带的whois查询工具,通过命令whois查询域名信息。(以好车网为例)

whois haoche.cn

在这里插入图片描述

示例:
下面是使用站长之家whois查询作者scxqn.com的站点(www.scxqn.com)的相关信息,可以看到网站标题为“心青年(四川)校友会-维数立方教育为了无法度量的认知!”,网站注册商,联系人,到期时间等信息。

备案信息

ICP备案是指网络内容提供商(Internet Content Provider),《互联网信息服务管理办法》指出需要对网站进行备案,未取得许可不得从事互联网信息服务。

爱站工具网 https://whois.aizhan.com
站长之家 https:whois.chinaz.com
Virus Total https://www.virustotal.com
ICP备案查询网 https://www.beianbeian.com
天眼查 https://www.tianyancha.com
中国互联网信息中心 www.cnnic.com.cn
备案巴巴 www.beian88.com

子域名信息收集

子域名,也就是二级域名(也存在三、四级子域名),是指顶级域名、父域名下的下一级域名。比如 news.baidu.com 和 tieba.baidu.com 这两个域名就是 baidu.com 下的子域名。
假设被渗透的目标站点网络规模比较大,企业对于主站域名的应用防护措施做的比较健全,对于主站本身的防护,漏洞发现、应急响应、漏洞修复还是硬件的安全设备都能够做到及时到位的防护。
这时候再从主域名下手很明显是一种不理智的行为,所以还不如从被渗透目标的某个子域名寻找突破口。可以针对子域名进行信息收集,然后通过子域名的漏洞,进行挖掘迂回攻击。

常用的子域名枚举检测工具

常用的用于子域名检测的工具,大多是通过枚举的方式对子域名进行信息收集,枚举需要一个好的字典,一个好的字典可以增加枚举的成功率。

常用的子域名枚举爆破工具主要有Layer子域名挖掘机、K8、Sublist3r、subDomainBrute等。

这里我们简单介绍一下Layer子域名挖掘机和subDomainBrute。

使用Layer子域名挖掘机
“Layer子域名挖掘机”是一款图形化的工具,内置了很多子域名字典,支持多线程,可以识别域名的真实IP,是常用的子域名爆破工具之一。

“Layer子域名挖掘机”的使用方法比较简单,直接在域名对话框输入域名即可进行扫描。同时支持服务接口、暴力搜索、同服挖掘三种模式,支持打开网站、复制域名、复制IP、复制CDN、导出域名、导出IP、导出域名+IP、导出域名+IP+WEB服务器以及导出存活网站!扫描后的界面也显示的比较细致。有域名、解析IP、CDN列表、WEB服务器和网站状态等信息。

目前存在5.0更新版和4.X纪念版,主要区别是5.0增加了多层子域名遍历功能。

在这里插入图片描述

使用subDomainBrute
“subDomainBrute”工具也是用于渗透目标的域名收集工具,高并发暴力枚举请求数可达到每秒1000次。使用方式为:

python subDomainBrute.py xxx.com

枚举发现的域名会会保存在“xxx.com.txt”文件中。传送门:子域名的信息收集

公司敏感信息网上搜集

当确定了目标后,我们可以去互联网公开的资源信息(包括但不局限于社交网站、招聘网站、搜索引擎等)查询比如,公司的邮箱格式,公司的员工姓名,联系方式以及与该公司有关的任何信息。

一般公司都会将官方的联系方式放在官网上,渗透测试人员可以通过相关的的联系方式进行邮箱信息、电话信息的收集。
通过收集邮箱信息主要有两个作用:

  • 通过发现目标系统账号的命名规律,可以用来后期登入其他子系统。
  • 爆破登入邮箱用。

当我们收集几个邮箱之后,便会大致猜出对方邮箱的命名规律。而除了员工的邮箱之外,通常公司会有一些共有的邮箱,比如人力资源的邮箱、客服的邮箱。这种邮箱有时会存在弱口令,在渗透时可额外留意一下。往往会有意想不到的收获。

通过手工和工具进行挖掘,查看web容器或网页源码代码,可能存在敏感信息。比如访问url下的目录,直接列出了目录下的文件列表,错误的报错信息包含了网站的信息。
像爬虫之类的工具可以扫描到敏感文件路径,从而找到敏感数据。比如“robot.txt”、“test.php”、“info.php”之类的文件。

并且,我们还可以去Github、码云等代码托管平台上查找与此有关的敏感信息,有些粗心的程序员在将代码上传至代码托管平台后,并没有对代码进行脱敏处理。导致上传的代码中有包含如数据库连接信息、邮箱密码、还有可能有泄露的源代码等。
传送门——> 公司敏感信息收集-Git信息泄漏漏洞与GitHack使用方法

指纹识别

CMS(内容管理系统),企业或者开发者为了提高开发效率都会使用已有的CMS系统后者在已有的基础上进行二次开发。CMS种类繁多,再加上开发者开发水平技术参差不齐,导致CMS漏洞一度成为WEB渗透的重灾区。如果渗透目标使用了CMS作为内容管理系统的应用模版,通过信息收集进行CMS识别,在获得了CMS的指纹识别版本信息后,就可以通过CMS已存在的漏洞进行渗透攻击。
常见的CMS包括Discuz、Dedecms(织梦)、PhpCMS、WordPress等。

在线指纹识别网站:

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

常见的网站指纹识别工具:

  • Whatweb
  • Wappalyzer(可以作为插件在浏览器中运行)

服务器信息收集

服务器需要收集的信息主要包含三个方面:端口信息、程序服务版本识别和操作系统信息识别。

端口信息收集和程序服务版本识别主要是为乐收集服务器开放了哪一些端口,这些端口都运行了什么服务以及这些服务的版本信息。不同的服务的漏洞点不一样,相同的服务不同的版本的漏洞也存在着很大的差异,所以识别每个服务的具体的版本信息,才能够进行相关版本的漏洞的利用。

操作系统信息识别是为了判断目标服务器运行了什么类型的操作系统,根据不同类型的操作系统、不同版本的操作系统漏洞进行漏洞利用。比如WIN系统可能会存在“永恒之蓝漏洞”,Linux系统可能存在“脏牛漏洞”。

端口扫描

对于收集目标及其端口状况可以使用工具来进行,其工作原理都是使用TCP或UDP等协议向目标端口发送指定标志位等数据包,等待目标返回数据包,以此来判断端口状态。

通过工具Nmap、masscan采集端口信息,包括:

使用Nmap采集,命令为:nmap -A -v -T4 目标

使用masscan采集,命令为:masscan -p80 目标

使用工具通常会在目标网站留下痕迹,接下来提供一种在线网站探测方法。

  • 在线网站:http://tool.chinaz.com/port/
  • ThreatScan在线网站:https://scan.top15.cn/

端口攻击

针对不同的端口具有不同的攻击方法,因为每个端口就是记录服务器或目标系统的大门,只要打开这个大门,就可以进入目标系统。例如:针对远程连接服务端口的攻击方法如下,因为23号端口Telnet远程连接是明文传递信息的,可以通过爆破、嗅探、弱口令等方法实施攻击。
在这里插入图片描述

渗透测试过程中常用端口利用总结—>传送门

防御措施

对于端口攻击来说,只要端口开放并且可以连通,就可以利用对应的方式进行攻击测试。这里提供的防御措施包括但不限于:

  • 关闭不必要的端口;
  • 对重要业务的服务端口设置防火墙;
  • 加强员工信息安全意识,经常性更换用户密码,避免弱口令爆破;
  • 经常更新软件,打补丁(Patch);
  • 利用CVE网站的漏洞信息,提高自身网站的安全。

服务器版本识别

服务器信息包括服务器用的操作系统:Linux 还是 Windows 。现在企业网站服务器的操作系统有百分之九十以上用的是Linux操作系统。知道了服务器的操作系统之后,还需要知道操作系统使用的具体版本。因为很多低版本的操作系统都存在已知的漏洞。

判断是Linux还是Windows最简单就是通过ping来探测,Windows的TTL值都是一般是128,Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux。但是,通过TTL值来判断服务器类型也不是百分之百准确的,有些windows服务器的TTL值也是几十,而且有的服务器禁止ping。

而判断目标网站服务器的具体的版本的话,可以采用 nmap 进行扫描, -O 和 -A 参数都能扫描出来.

网站敏感目录和文件

扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏

敏感路径探测主要使用工具探测,比较常用的有御剑、BurpSuite、wwwscan、Webdirscan等

  • 后台目录:弱口令,万能密码,爆破
  • 安装包:获取数据库信息,甚至是网站源码
  • 上传目录:截断、上传图片马等
  • mysql管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
  • 安装页面 :可以二次安装进而绕过
  • phpinfo:会把你配置的各种信息暴露出来
  • 编辑器:fck、ke、等
  • iis短文件利用:条件比较苛刻 windows、apache等
    *robots.txt 文件了(防君子不防小人)

robots.txt 文件是专门针对搜索引擎机器人robot 编写的一个纯文本文件。我们可以在这个文件中指定网站中不想被robot访问的目录。这样,我们网站的部分或全部内容就可以不被搜索引擎收录了,或者让搜索引擎只收录指定的内容。因此我们可
以利用robots.txt让Google的机器人访问不了我们网站上的重要文件,GoogleHack的威胁也就不存在了。
假如编写的robots.txt文件内容如下:

User-agent: *Disallow: /data/Disallow: /db/Disallow: /admin/Disallow: /manager/Allow:/images/

BurpSuite Intruder 模块

使用BurpSuite可以扫描目录,通过Intruder模块将抓到的数据包的路径设置为变量,将目录文件的字典添加为payload,然后不断遍历,达到目录爆破的目的。
BurpSuite扫描web目录

Webdirscan

使用方法:

python2 webdirscan.py -o test.txt -t 10 http://www.xxx.com# -o 指定输出的文件,-t 指定线程数

旁站和C段扫描

旁站指的是与攻击目标在同一服务器上的不同网站,在被渗透目标没有发现漏洞的情况下,可以通过查找旁站的漏洞。可以先拿下其他网站的webshell,然后再提权拿到服务器的权限,最后就自然可以拿下该网站了!

C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。

旁站和C段在线查询地址:

  • http://www.webscan.cc/
  • https://phpinfo.me/bing.php