一:前言

在渗透测试中,信息收集是其中最重要的一部分。我们收集到的目标信息越多,渗透的切入点也就越多,对目标的渗透的成功率也就越高。因此,渗透测试的本质就是信息收集。

二:信息要素

  • 目标域名相关信息:域名注册人、联系人、联系方式、邮箱、域名历史记录、子域名、旁站、C段等
  • 目标服务器相关信息:操作系统、中间件、数据库、静态资源、端口、服务等
  • 目标CMS系统(内容管理系统)、框架
  • 目标网站后门、敏感目录与文件:如git源码泄露、upload上传目录等

三:网站页面信息收集

在我们浏览目标网站时,往往可以发现一些比较重要的信息。从网站的URL观察,有些URL会暴露网站使用的脚本语言。其次关注网站是否有在线客服窗口。通常在网站底部可以收集到的信息有:URL信息、在线客服、技术支持、关于公司的联系方式(邮箱、电话号码、工作地点等)、备案号、营业执照、后台登录接口、友情链接、相关二维码等。

四:域名信息收集

首先,得到一个目标域名后,我们通常第一件要做的事情就是去获取域名的注册信息,即该域名的DNS服务器信息和注册的个人信息等。

4.1 Whois 查询

whois 是一个标准的互联网协议,可用于查询域名是否被注册,以及注册域名的详细信息(如域名所有人、域名注册商等)。通过 whois 查询得到注册人的姓名和邮箱信息对测试个人站点非常有用,因为我们可以通过搜索引擎和社交网络挖掘出域名所有人的更多信息。通常的,对中小站点而言,域名所有人极大可能是管理员。可以根据查询出的信息进行反查,从而获取更多信息。

使用方法

4.2 备案信息查询

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

查询方法

4.3 端口

一个网站可能会开放多个不同的端口,而我们可以通过同一网站的不同端口进行测试,扫描开放端口的方法很多。

扫描方法

常见端口漏洞

  • 21:FTP爆破
  • 22:SSH弱口令/后面
  • 873:Rsync 未授权访问漏洞
  • 3306:MySQL 弱口令
  • 3389:Windows远程桌面 Rdp 暴力破解/远程桌面漏洞
  • 6379:Redis 未授权访问漏洞/爆破弱密码

4.4 子域名

目标的子域名是一个重要的测试点,收集到的子域名越多,意味着入侵的切入点也越多,所以要尽可能的收集目标的子域名。

收集方式

4.5 C段、旁注

对目标主机无计可施时,可以尝试从C段或者旁注入手。

C段入侵是拿下同一C段下的服务器,也就是说是D段1-225中的一台服务器,然后直接从被端掉的服务器出发进行其他测试;

旁注是指从同台服务器的其他网站入手,提权,然后把服务器拿下,自然就也把目标网站拿下了。

两者的区别:C段,同网段不同服务器;旁注,同服务器不同网站。

工具使用

同IP网站查询,C段查询,IP反查域名,在线C段,旁站工具 - WebScan

4.6 目录(敏感信息)

目录扫描也是一个渗透测试的重要点,如果能从目录中找到一些敏感信息,那么渗透过程会更进一步。例如:扫描出后台源码,数据库配置文件,SQL注入,服务器配置信息,robots.txt(告知爬虫程序什么文件是可以访问的)的敏感目录或者敏感信息。

工具使用

  • DirBuster

五:社会工程学

信息收集的最高境界大概就是社会工程学了,社会工程学(Social Engineering)是一种通过人际交流的方式获取信息的非技术渗透手段。利用社会工程学,攻击者可以从一名员工的口中挖掘出本应该是秘密的信息。

社会工程学协助渗透测试的例子数不胜数,渗透某个网站遇难时,给网站的呼叫人员打电话,往往能解决很多问题。此外,许多服务器的登录密码与该服务器的管理员有关,密码总是有个人痕迹,因此利用社会工程学获取管理员信息后,进一步对服务器进行渗透测试。