如何进行信息收集

Mr.R0boter 于 2020-09-04 发布

信息收集

  1. WEB 信息收集(探测),主要时掌握 WEB 服务的方方面面,实现渗透入侵前的准备工作
  2. 内容包括:操作系统版本、服务器类型、数据库类型、WEB 容器、WEB 语言、域名信息、网站目录等
  3. 涉及搜索引擎、网站扫描、域名遍历、指纹识别等

通过 DNS 和 IP 地址挖掘目标网络信息

  1. whois 域名注册信息查询

    whois 是一个用来查询域名注册信息数据库的工具,一般的域名 注册信息会包含域名所有者、服务商、管理员邮件地址、域名注册日期和过期日期等。也可以通过一些查询网站进行查询,如站长之家

    查询格式:whois host

    Tips: host 可以是域名或 IP,如果是域名,务必使用顶级域名

  2. 查询 DNS 解析信息

    使用 nslookup 或 dig 进行 DNS 解析查询,dig 包含在软件 dnsutils 中。

    nslookup 会得到 DNS 解析服务器保存在 Cache 中的非权威应答,而 dig 会从指定域名的官方 DNS 服务器上查询到精确的权威解答

    使用 nslookup 进入交互页面后可以通过 set type=xx 来设置查询的类型,常用类型有 A (IPv4 地址记录)、MX (邮件转发服务)、 CNAME (域名绑定记录)、 NS (域名解析服务器记录)、 AAAA (IPv6 地址记录)

    使用 dig 则可以指定查询要使用的 DNS 解析服务器,同时会触发指定的 DNS 解析服务器会向官方权威 DNS 服务器进行一次递归查询,以获取权威解答。 基本使用方法为 dig @DNS<解析服务器> <待查询域名> [q-type] 其中 q-type 是指定查询类型。使用不同的 DNS 解析服务器,发现目标网站的 IP 地址列表,来确定服务器集群范围(对某些 CDN 站点也有可能发现源 IP)。

  3. IP2Location 地理位置查询

    通过确定 IP 地址的真实物理位置,判断目标是公司资产还是个人资产,可使用网站 Geo-IP 查询。根据结果中提供的经纬度,在 Google 地图中查询

  4. 子域名查询

    对目标地址的顶级域名进行子域名的查询,大型网站中某个往往有多个子域名站点,防护难免力有不逮。子域名的查询可以使用工具、Google 语法、子域名查询网站

  5. IP2Domain 反查域名

    目标域名对应的服务器上可能搭建有多个网站,通过反差域名,找出同一服务器上的多个虚拟主机。如果其他虚拟主机存在漏洞,则可以迂回获取目标网站的权限,即「旁注」

通过搜索引擎进行信息搜集

Google Hack

Google Hacking 技术是指:Google 搜索引擎的高级语法,搭配一些敏感的字符串。搜索可能存在漏洞的站点或目标可能存在的漏洞。exploit-db 的 Google Hacking 数据库上有大量的模板

下面列举几个常用的关键字:

  1. site::主要用于收集子域名和跟此域名相关的信息
  2. filetype::搜索指定文件类型
  3. inurl::搜索 URL 中包含指定字符的网页,一般用来寻找可能存在的注入点
  4. intitle::搜索标题中包含指定字符的网页,一般用来寻找登陆点或管理后台
  5. intext::搜索网站正文中包含指定字符的网页,例如搜索特定 CMS 搭建的网站
  6. -keyword:强制结果中不出现此关键字
  7. *keyword:模糊搜索,强制结果中包含此关键字
  8. "keyword":强制结果中出现此关键字

Tips: google 语法不仅用于 Google 搜索。如果想利用工具自动化检测,需申请搜索引擎的 API ,但一般都有次数限制,大量使用需进行购买

Shodan Hack

https://www.shodan.io 是由 Web 工程师 John Matherly 编写,被称为“最可怕的搜索引擎”,可以扫描一切网络设备,包括 Web 服务器、防火墙、路由器、交换机、摄像头、打印机等

  1. 按 IP 扫描
  2. 按协议或服务搜索:如httpproduct:"Apache httpd"。还可以指定版本version:"7.5"
  3. 基于关键字搜索:更具 banner 信息(设备指纹)来搜索,如default passwordFTP anon successfull
  4. 根据国家代码或城市名进行搜索:country:"country_code"city:Beijing
  5. 根据域名信息进行搜索:hostname:.orghostname:baidu.com
  6. 根据操作系统信息进行搜索:os:Windows 7 or 8.1
  7. 根据网段搜索:net:xxx.xxx.xxx.xxx200 ok net:xxx.xxx.xxx.xxx
  8. 根据端口进行搜索:port:22

ZoomEye

https://www.zoomeye.org  钟馗之眼由知道创宇出品,类似于撒旦搜索,但更侧重于 Web 服务,撒旦搜索更侧重于主机

其他方式

  1. 网站目录结构探测:手工测试目标网站下是否存在一些常见的目录,如后台管理的 admin、login、cms 等等。或者是否存在备份文件或其他不应存在的文件。是否能直接读取配置文件等。也可以使用工具,如 Metasploit 中的 burte_dirsdir_listingdir_scanner 等辅助模块,这些事通过暴力猜解的方式进行爆破

    Tips: 很多网站根目录存在 robots.txt 文件,此文件用于告诉爬虫不允许爬取的目录,而这些目录就是渗透测试应当重点关注的目录

  2. 敏感文件的探测:结合上面提到的 Google 语法对目标站点中是否存在各种备份文件、压缩文件、文档或其他敏感文件。也可以手工测试可能存在的文件
  3. 搜索网站中的 E-mail 地址: Metasploit 中的辅助模块 search_email_collector 可以有针对性的进行目标站点的邮件地址收集。此模块通过设置一个邮箱后缀(域名),然后在多个搜索引擎中进行查询分析使用此后缀的邮箱地址,而不仅仅是爬取目标站点上的邮箱地址。这些邮箱地址可用于社工、爆破、钓鱼等等

关于扫描的看法

一层扫描

对主机 IP 的识别,即将域名解析为对应的 IP,可以使用 ping、站长工具等

二层扫描

对目标主机的端口开放情况,端口对应的协议,开放的服务,以及服务的版本有一个大致的扫描判断

例如:nmap -vv -sV -O ip对指定 IP 的操作系统和开放的服务的版本进行扫描并详细输出过程

三层扫描

利用脚本对目标开放的端口所对应的协议、服务进行漏洞的侦测

例如:

  1. nmap --script=default ip对指定 IP 使用默认的脚本扫描,等价于-sC
  2. 使用企业级安全工具进行扫描,如:Openvas/Nessus、AWVScanner、AppScan、HP Webinspect、JSky、Netsparker、

四层扫描

对目标主机或域名的深入挖掘,如子网、同网段主机、同 IP 域名、同域名 IP

例如:使用recon-ng对网站的深入挖掘