'OSINT 指南'

OSINT 指南

一、前言

开源情报收集(OSINT)指的是通过从媒体、网络、官方渠道等平台,查询、整合一些公开的数据资料,形成系统性情报信息的过程。OSINT信息的获取有主动和被动两种采集方式。被动采集的信息往往来源于第三方威胁情报平台,如shodan、censys等,优点在于查询成本低、行为比较隐蔽。主动采集由于需要与目标进行直接的交互,存在一定风险,但能够获取到更新、更多样化的数据。根据当前已掌握信息的不同,如已知一个域名、一个企业名称或是某个管理员的网络昵称等,有不同的视角可以进行OSINT信息的收集。

美国陆军战场手册-公开源情报

二、特点

开源情报具有以下几个特点:

一是低成本,尤其是在动用传统人力等情报能力无能为力的情况下,运用开源可以为情报分析人员提供有益的启示或向导,支持决策者或指挥员计划活动,也为人力情报、信号情报等其他类型情报提供了一个有力的补充。

二是低风险,开源情报分析人员可远离危险环境展开行动,利用开源情报能解决问题的,就没有必要动用风险性很高的人力情报手段。

三是高收益,美国中央情报局认为,开源数据在最终全源情报产品中占40%,加拿大安全与情报局局长沃德·埃尔科克(Ward Elcock)先生认为,开源在最终全源产品中的比重占约80%。

三、方法论

在开始收集信息之前,一定要首先明确自己的方法论,即:

  • OSINT的特点?——场景复杂, 思路灵活。
  • OSINT的核心目标?——发现尽可能多的信息,拓宽攻击面。
  • 目前掌握了哪些信息?——一个域名、企业名或人名
  • 根据已有内容,可以从哪些角度收集新的信息?
  • ……

对方法论的时刻关注可以帮助我们更加有效地掌控当前已有信息,合理规划下一步的行动,从整体的角度理解目标。

四、基础信息收集

很多情况下OSINT是为进一步渗透攻击做准备的。那么作为攻击前的准备环节,能否找到更多的攻击面就显得尤为重要。当我们拿到一个目标域名的时候,可以从如下几个角度来考虑:

1、域名相关解析记录

与域名相关的信息一般包括whois信息、A记录、CNAME记录等。
whois信息返回IP地址的历史信息,域名过期日期,甚至电话号码,这些信息可用于社会工程学攻击。
Whois Lookup

这里可以特别关注一下MX和SPF记录。MX记录提供了目标域名的邮件服务器地址,可以帮助我们鉴别该目标是否搭建了私有的邮件服务。SPF记录一般用于防止恶意攻击者仿冒自己的网站给其他人发送垃圾邮件或钓鱼邮件。以下是一个常见的SPF记录格式:

1
v=spf1 mx ip4:52.222.29.245/32 ~all

当收件方的SMTP服务器收到xxx@example.com发来的邮件后,会去查询该域名的SPF记录,将发件人的IP和记录中的IP范围进行比较,如果发件人IP不在其中,就可以认为发件来源不可信,从而根据SPF记录中的设置(这里是~all,代表软拒绝)选择转入垃圾箱或直接拒收,因此可以根据目标SPF记录的配置来大致判断发送钓鱼邮件是否可行。

查询域名相关信息可以直接命令行:

1
2
3
# 查询mx记录/txt记录/a记录等
~ dig -t mx/txt/a... domain.com
~ nslookup -type=mx/txt/a... domain.com

或采用线上工具,如SuperToolViewDNS.info查询完整的DNS记录。

-w1189

2、子域名 or 兄弟域名

a)爆破扫描

支持暴力破解子域名的工具有很多,比较常见的有Sublist3raltdns等。

b)线上平台查询

  • DNSDumpster可以列出查询目标的DNS记录、子域名及对应IP、地理位置、和服务提供商,帮助我们对目标的网络结构有一个初步的了解。
    -w1230
  • Bufferover网站是基于DNSGrep项目的线上版本,整合了Rapid7公司的FDNS和RDNS数据集,查询速度飞快,内容也比较全面。
    -w1142

c) 域传送
在收集子域名信息的过程中可以关注是否存在域传送漏洞:

1
2
~ dig axfr @NSServerofDomain domain.com
~ nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=cccc.edu.cn -p 53 -Pn dns1.cccc.edu.cn

d) 通过SSL证书获取
SSL证书中包含了授权的域名或子域名,因此常用于子域名的收集。

e) 网络空间搜索引擎

  • Fofa
  • Shodan
  • Zoomeye
  • BinaryEdge

3、系统/架构信息

收集操作系统版本、中间件名称/版本号、网站架构等信息后,确认是否存在已知攻击方案。

Chrome插件:

线上平台:

  • WhatCMS在识别站点架构和版本方面也很有用处
    -w870

4、路径扫描

路径扫描的目的是为了找到网站的突破口,可以重点尝试的方向包括:

  • 开发相关 :.git、.svn、.swp、.DS_Store 等可以恢复出目录信息甚至获取源码的路径
  • 备份相关:.bak、.zip、.tar.gz 等
  • 后台或认证相关:admin、register、login、manager 等
  • 站点配置相关:robots.txt、autodiscover.xml、.htaccess等
  • 后门相关:cmd.php、backdoor.php

常用工具有dirsearch、dirmap等,不过不同工具之间差距不大,总体来说比较看字典。以下字典列表可供参考:

5、真实IP发现

常见的IP发现方法有:

  • 绕过CDN——CloudFailCrimeFlare
  • 证书反查
  • Title反查
    -w1272
  • favicon.ico反查——fav-up
    -w1183
  • 子域名解析记录:m./dev./test./app.等
  • example:订阅网站、RSS、注册链接
    操作:显示邮件原文,查看邮件源代码(也有一种可能就是邮件服务器IP跟web服务器只是在一个c段上,这时候就需要对整个c段进行扫描)
    缺点:目标站使用其它邮箱接口此方法则失效
  • 其他相似业务接口抓包:App端/微信公众号/微信小程序

6、其他集成平台

  • Robtex,支持DNS记录、子域名/兄弟域名、Alexa排名、威胁情报等信息的查询。
    -w1603
  • spiderfoot线上扫描平台,离线版和在线版都很不错。特点是插件种类丰富,整合信息维度多样,并且支持多种展示方式。
    -w1676
  • urlscan.io可以在线扫描某个url或域名的初步统计信息,包括包含链接、页面截图、发起了哪些请求等。
    -w1232

五、拓展信息收集

1、页面内容挖掘

做完基础信息收集的工作后,可以考虑针对网页内容开始进一步探索。以下是一些案例:

  • a、找到开发者信息后,在Github等平台(commit记录中)找到系统源码/默认账户密码/aws密钥。
    • footer位置存在Powered by XXX
    • 移动端应用商店暴露开发者信息
    • 社交平台官方账号与开发者私人账号互动
  • b、检索JS静态文件收集API/相关域名,拓展了攻击面,检查是否存在后台接口暴露或未授权访问等问题。
  • c、爬取员工用户名/邮箱/联系电话/社交账号/区块链账户地址,找到无MFA验证的系统进行猜解,或在社工库中做进一步查询。
    • 可以用Spiderfoot的Name Extractor、E-Mail、Phone Numbers等模块对页面内容进行提取
  • d、通过对文档的分析,找到某些文件中的机密数据,如用户名密码等。
    • 利用recursive wget 获取网站中的各类文档:
      wget -nd -r -A pdf,doc,docx,xls,xlsx,xlt,ppt,pptx -P /root/Documents/OSINT/metadata_ex domain.com
    • Google Dork 针对特殊内容进行搜索:filetype:pdf/docx/txt/pptx site:domain.com username|password
      -w868
    • 其他思路:S3服务(使用GrayHat Warfare查询可能存在的文件,AWSBucketDump检测是否存在配置不当的问题)、云盘、文库、私有Wiki、Pastbin、短域名
  • e、历史页面
    • 使用Common Crawl API搭建本地缓存页面检索系统
    • 使用Wayback Machine在线查看缓存的历史页面
    • 使用基于Wayback Machine的waybackurls项目,对历史页面中出现过的url进行查询

2、赊工向信息收集

当在网站上找到某个员工或管理员的信息后,还可以从以下几个角度来考虑:

  • a、拿到昵称或邮箱后,去社交平台查询相关的账号,重点关注目标的社会关系、个人履历和其他各种私人信息
    • 通过域名查找相关的邮件地址:Hunter

    • 查找邮箱泄露:have i been pwned?

    • 查询账号注册情况:CheckUsername即时搜索
      -w1305

    • 密码字典生成:X-Prey

    • 通过姓名反查履历等个人信息:机器人(国内)、Peekyou(国外)
      -w1084

    • 反查手机号:在各大平台找回密码处根据打码位置不同还原手机号

    • 查询泄漏密码:目前可用的有pwndb(需挂tor代理,免费)、公网snusbase(付费)

  • b、拿到社交平台的个人照片后,可以获得其活跃区域的地理位置。
    • 文件GPS信息
    • Google Map 街景

六、结语

信息收集是一个看似琐碎但不可或缺的步骤,在网络攻击和防御的成本都越来越低的当下,信息差往往是决定成败的关键。当目标本身结构比较简单的时候,传统的渗透测试往往会比较费时费力,而OSINT则可以尽量打开攻击面,让我们得以选择目标相对薄弱的部分开展测试;而当目标体量庞杂,难以把控的时候,OSINT又可以帮我们整合信息、理解目标的整体结构以及各节点之间的联系,从而可以让我们针对某些猜想进行批量测试,快速找到突破口。网络世界的攻和防其实都在于“人”,而是“人”就会犯错,当我们借助OSINT发现越来越多的攻击面、一点点补全目标版图上的拼图时,留给对手犯错的空间也就会越来越小。

6、参考连接

Open-source intelligence
OSINT GUIDE PART 1: OVERALL COMPANY RECONNAISSANCE
OSINT GUIDE PART 2: IDENTIFIED PERSONNEL RECONNAISSANCE
Awesome OSINT
OSINT Primer: Domains
OSINT Primer: People
OSINT Primer: Organizations
OSINT-labs
OSINT Framework
Subdomain Takeover: Going beyond CNAME
OSINT——Bellingcat的OSINT工具指南
丁爸-情报分析师的工具箱
威胁情报专栏:公开资源情报计划——OSINT