一、什么是 OSINT?
OSINT(Open Source Intelligence),即公开来源情报,通常也称开源情报。
它是一套从合法公开来源收集、分析、验证信息的方法。
这里的 Open Source 并不是专指开源代码,而是指信息获取来源。
常见信息来源包括:
- 搜索引擎
- 互联网历史档案馆
- 域名和 DNS 注册信息
- IP 和网络路由公开数据库
- 网站证书透明度日志
- 开源代码托管平台
- 学术论文数据库
- 新闻及公共档案
- 政府开放数据平台
- 互联网公开资产索引
1.1 为什么只使用 Google 不够?
因为搜索引擎并不能索引互联网中的全部信息。
举几个例子:
问题一:某个网站五年前的页面是什么样的?
Google 通常不会为你提供完整的历史网页时间轴,但 Wayback Machine 可以查询它保存过的历史快照。
问题二:某个域名当前解析到什么 IP?
可以使用 dig 或 nslookup 查询 DNS,而不是依赖网页搜索。
问题三:某个 IP 属于哪家网络运营商?
可以通过 RIPEstat、IPinfo 或区域互联网注册机构的数据查询。
问题四:某个开源项目在 2020 年使用了什么算法?
GitHub 的提交历史可能比普通搜索结果更有价值。
所以,真正有效的公开信息检索应该具有以下思路:
text
提出检索问题
|
v
判断信息类型
|
+-- 普通网页 ------> Google / Bing / Yandex
|
+-- 历史网页 ------> Wayback Machine
|
+-- 域名信息 ------> RDAP / WHOIS
|
+-- DNS记录 -------> dig / DNSChecker
|
+-- 网络信息 ------> RIPEstat / BGP
|
+-- HTTPS证书 -----> crt.sh
|
+-- 网络资产 ------> Shodan / Censys
|
+-- 开源代码 ------> GitHub / Sourcegraph
|
+-- 学术论文 ------> Scholar / arXiv
|
+-- 公开数据 ------> 政府数据库 / 开放数据平台
|
v
多来源交叉验证
|
v
整理证据、时间和结论
二、通用互联网搜索引擎
2.1 全球搜索引擎大全
| 搜索引擎 | 网址 | 特点 |
|---|---|---|
| https://www.google.com/ | 全球综合搜索 | |
| Bing | https://www.bing.com/ | 微软搜索引擎 |
| Yandex | https://yandex.com/ | 俄语及跨区域检索 |
| 百度 | https://www.baidu.com/ | 中文互联网搜索 |
| DuckDuckGo | https://duckduckgo.com/ | 隐私导向搜索 |
| Brave Search | https://search.brave.com/ | 独立搜索索引 |
| Startpage | https://www.startpage.com/ | 隐私导向搜索 |
| Mojeek | https://www.mojeek.com/ | 独立网页索引 |
| Kagi | https://kagi.com/ | 付费、可定制搜索 |
| Ecosia | https://www.ecosia.org/ | 环保主题搜索 |
| Qwant | https://www.qwant.com/ | 欧洲隐私搜索服务 |
| Swisscows | https://swisscows.com/ | 隐私及家庭友好 |
| Naver | https://www.naver.com/ | 韩国互联网 |
| Daum | https://www.daum.net/ | 韩国搜索服务 |
| 搜狗 | https://www.sogou.com/ | 中文搜索 |
| 360 搜索 | https://www.so.com/ | 中文网页搜索 |
| SearXNG | https://docs.searxng.org/ | 开源元搜索系统 |
| Marginalia Search | https://search.marginalia.nu/ | 探索相对小众的网页 |
值得注意的是,不同搜索引擎拥有不同的索引来源、语言侧重和排序算法。
在某个搜索引擎上没有找到内容,不意味着内容不存在。
2.2 Google 高级搜索技巧
网址:
Google 支持多种搜索运算符。
| 运算符 | 功能 | 示例 |
|---|---|---|
"关键词" |
精确短语搜索 | "machine learning" |
site: |
限定网站 | site:github.com |
filetype: |
限定文件类型 | filetype:pdf |
- |
排除关键词 | python -django |
OR |
两组关键词择一 | TCP OR UDP |
after: |
日期下限过滤 | after:2025-01-01 |
before: |
日期上限过滤 | before:2024-01-01 |
例如搜索高校发布的机器学习资料:
text
site:edu.cn filetype:pdf 机器学习
搜索 GitHub 相关技术资料:
text
site:github.com "FastAPI" "WebSocket"
搜索指定时间范围的文章:
text
"Linux networking" after:2024-01-01 before:2026-01-01
搜索某种文件格式:
text
"computer networks" filetype:pptx
注意:搜索引擎的日期过滤依赖其索引和日期识别机制,不一定严格等于文章的原始发布时间。
2.3 Yandex:值得单独关注的搜索引擎
网址:
Yandex 具有自己的搜索生态,特别值得用来补充:
- 俄语资料
- 东欧相关互联网内容
- 跨语言资料
- 图片检索
- Google 未能找到的部分网页
使用技巧:
当英文搜索没有结果时,可以尝试翻译成俄语或者其他对应语言,再使用 Yandex 搜索。
同一个主题,语言不同,能够检索到的信息集合也可能有很大区别。
2.4 搜索引擎的交叉检索策略
例如寻找一份已经很难找到的开发文档:
第一步,Google 搜索完整标题。
第二步,Bing 搜索部分标题和所属网站。
第三步,Yandex 尝试其他语言的关键词。
第四步,得到历史 URL 后,提交到 Wayback Machine 查询。
这比在同一个搜索引擎中反复修改关键词通常更有效。
三、互联网历史档案:查看已经消失的网页
这是公开信息检索中特别有价值的类别。
互联网中的网页随时可能发生变化。
网站关闭、文章删除、页面改版、域名易主,都可能导致原始信息难以访问。
但部分内容可能已经被互联网档案服务保存。
3.1 Wayback Machine
官方网站:
Wayback Machine 是 Internet Archive 提供的历史网页存档服务。
主要用途:
- 查看网站的历史页面。
- 比较网页在不同年份的变化。
- 尝试找回已经删除的公开文章。
- 查找旧软件的使用文档。
- 研究网站早期的界面设计。
- 分析公开网站的发展历史。
使用方法:
打开网站后,输入域名或完整 URL。
例如:
text
https://www.google.com/
如果存在存档,就可以通过时间轴和日历选择历史快照。
也可以尝试直接使用:
text
https://web.archive.org/web/2010/https://www.google.com/
这里的 2010 表示希望定位的历史年份,不保证恰好存在该日期的快照。
Wayback Machine CDX API
除了通过网页检索,还可以查询历史快照索引。
例如:
bash
curl "https://web.archive.org/cdx/search/cdx?url=example.com&output=json&filter=statuscode:200&collapse=timestamp:4"
这一请求尝试获取 example.com 的快照索引,并根据参数过滤、折叠结果。
常见字段包括:
text
urlkey
timestamp
original
mimetype
statuscode
digest
length
需要注意,API 的可用性、访问限制及响应状态可能变化。大量抓取前应遵守相关服务政策。
局限性:
- 并不是所有网页都有历史快照。
- 部分 JavaScript 页面无法完整恢复。
- 图片、视频及外部依赖可能缺失。
- 某些快照可能无法访问。
- 存档时间不等于网页的创建时间。
3.2 Internet Archive
网址:
与 Wayback Machine 的网页历史查询不同,Internet Archive 本身还是一个大型数字档案平台。
可以检索:
- 图书
- 旧软件
- 音频
- 录像
- 历史资料
- 数字化文档
- 网页档案
例如研究早期计算机软件、历史操作系统或互联网文化时,这个平台很有价值。
可浏览的具体资源受版权、地区及访问权限限制。
3.3 Archive.today / Archive.ph
常见入口:
这是一类网页快照归档服务。
与 Wayback Machine 不同,它通常更侧重保存用户提交的特定网页快照。
适合:
- 保存某篇公开文章的页面状态。
- 查看曾被保存的网页。
- 对比网页修改前后的公开内容。
不同域名入口的可用性可能不同。
3.4 Memento
网址:
https://timetravel.mementoweb.org/
Memento 是用于探索 Web 时间维度的相关协议与工具生态。
它的核心思想是:
同一个 URL 在不同时间可能存在不同的历史表示。
相比单独查询一个档案馆,Memento 体系关注如何跨历史档案定位时间版本。
具体服务入口可能发生变化,但其时间协商和历史资源表示思想仍值得了解。
3.5 Common Crawl
官网:
索引入口:
https://index.commoncrawl.org/
Common Crawl 定期抓取公开网页,并公开大量网页抓取数据。
与 Wayback Machine 主要面向人类浏览历史页面不同,Common Crawl 更适合:
- 大规模网页数据分析
- 自然语言处理研究
- 搜索引擎实验
- 网络内容统计
- 数据集构建
- 互联网历史语料研究
其网页抓取数据通常以 WARC 等格式存储。
技术人员可以利用 URL 索引找到对应抓取记录,并根据 WARC 文件位置进一步获取数据。
Common Crawl 也提供适合批量分析的 Parquet 格式索引。
参考:
https://commoncrawl.org/get-started
3.6 其他历史检索资源
| 工具 | 网址 | 功能 |
|---|---|---|
| Ghostarchive | https://ghostarchive.org/ | 部分网页及媒体历史归档 |
| Library of Congress Web Archives | https://www.loc.gov/web-archives/ | 美国国会图书馆网页档案 |
| UK Web Archive | https://www.webarchive.org.uk/ | 英国网页历史档案 |
| Arquivo.pt | https://arquivo.pt/ | 葡萄牙网页档案 |
| OldMapsOnline | https://www.oldmapsonline.org/ | 历史地图检索 |
| Google Books | https://books.google.com/ | 图书及历史出版物检索 |
历史检索建议:至少核实页面原始 URL、快照时间、网页标题及内容是否完整。
四、域名信息查询:WHOIS 与 RDAP
每个域名背后都有注册和管理信息。
例如:
text
example.com
它不是一个 IP 地址,而是一个可注册和使用的域名。
域名注册数据通常包括:
- 注册商
- 域名创建时间
- 注册到期时间
- 最近更新时间
- 域名状态
- 权威 DNS 服务器
- 部分公开注册联系信息
4.1 WHOIS
WHOIS 是传统的域名及互联网注册信息查询协议和服务体系。
常见查询网站:
| 工具 | 网址 |
|---|---|
| ICANN Lookup | https://lookup.icann.org/ |
| Whois.com | https://www.whois.com/whois/ |
| DomainTools | https://whois.domaintools.com/ |
| WhoisXML API | https://www.whoisxmlapi.com/ |
| IANA WHOIS | https://www.iana.org/whois |
在 Linux 中:
bash
whois example.com
Ubuntu 如未安装:
bash
sudo apt update
sudo apt install whois
查询:
bash
whois example.org
输出可能包含:
text
Domain Name
Registrar
Creation Date
Updated Date
Registry Expiry Date
Name Server
Domain Status
具体字段因注册局及服务商而异。
WHOIS 的局限在于格式缺乏统一性,而且部分注册信息已经被隐私保护机制隐藏。
4.2 RDAP:更现代的注册数据查询方式
RDAP,即 Registration Data Access Protocol。
它使用 HTTP 和结构化 JSON 数据,为域名、IP 地址等互联网注册信息提供标准化查询方式。
对于通用顶级域名,ICANN 已推动 RDAP 成为主要注册数据查询方式。
官方网站:
IANA RDAP Bootstrap:
https://www.iana.org/assignments/rdap-dns/rdap-dns.xhtml
与 WHOIS 相比:
| 比较项 | WHOIS | RDAP |
|---|---|---|
| 常见传输方式 | TCP 43 | HTTPS |
| 数据格式 | 非统一文本 | 结构化 JSON |
| 软件解析 | 相对困难 | 相对方便 |
| 国际化支持 | 有局限 | 更规范 |
| 访问策略 | 依服务商而定 | 支持更明确的 HTTP 机制 |
| 推荐用途 | 兼容历史查询 | 现代自动化查询 |
通过注册局或注册商提供的 RDAP 接口,可以获得机器可读的数据。
例如 ICANN 提供了公开的查询入口:
text
https://lookup.icann.org/
不应假设任意一个 RDAP 服务器都能查询所有顶级域名,应根据相应注册局的服务发现机制定位接口。
4.3 WHOIS 信息不等于网站所有者身份
必须特别注意:
- 注册商不一定是网站运营者。
- 域名注册人可能启用了隐私保护。
- 域名可能已经转让。
- 创建时间通常是该次域名注册的创建时间,不代表网站首次上线时间。
- 域名 DNS 服务器并不直接代表网站服务器。
所以 WHOIS 更适合用来了解域名注册层面的事实,而不是直接确定某个网站由谁实际控制。
五、DNS 检索:dig、nslookup 与在线工具
DNS(Domain Name System)负责将域名映射到 IP 地址等资源记录。
例如:
text
www.example.com
|
v
DNS 查询
|
v
IP 地址
但 DNS 远不止域名解析 IP。
5.1 常见 DNS 记录类型
| 类型 | 功能 |
|---|---|
| A | 域名映射 IPv4 |
| AAAA | 域名映射 IPv6 |
| CNAME | 域名别名 |
| MX | 邮件服务器 |
| NS | 权威名称服务器 |
| TXT | 文本记录,常用于域名验证、邮件策略等 |
| SOA | DNS 区域权威信息 |
| CAA | 限制允许签发证书的 CA |
| PTR | 反向 DNS |
| SRV | 服务发现 |
| HTTPS | HTTPS 服务相关信息 |
5.2 dig:Linux 必学的 DNS 查询工具
Ubuntu 安装:
bash
sudo apt update
sudo apt install dnsutils
某些发行版的软件包名称可能为 bind9-dnsutils。
查询 IPv4:
bash
dig example.com A
查询 IPv6:
bash
dig example.com AAAA
查询邮件服务器:
bash
dig example.com MX
查询名称服务器:
bash
dig example.com NS
查询 TXT:
bash
dig example.com TXT
查询 CAA:
bash
dig example.com CAA
只输出简洁结果:
bash
dig +short example.com
指定 DNS 服务器:
bash
dig @1.1.1.1 example.com
使用 Google Public DNS:
bash
dig @8.8.8.8 example.com
查询权威解析路径:
bash
dig +trace example.com
反向解析:
bash
dig -x 8.8.8.8
特别注意: dig +trace 展示的是委派和解析查询过程,不等于在诊断网络数据包经过了哪些路由器。
分析网络路径应该使用 traceroute 或 tracepath 等工具。
5.3 nslookup
Linux 和 Windows 都可以使用。
bash
nslookup example.com
指定解析服务器:
bash
nslookup example.com 8.8.8.8
查询 MX:
bash
nslookup -type=MX example.com
相比 dig,nslookup 操作直观,适合日常检查。
5.4 host
Linux:
bash
host example.com
查询邮件记录:
bash
host -t MX example.com
5.5 在线 DNS 查询网站
| 工具 | 网址 | 特点 |
|---|---|---|
| DNSChecker | https://dnschecker.org/ | 多地区 DNS 解析查询 |
| WhatsMyDNS | https://www.whatsmydns.net/ | 全球 DNS 传播观察 |
| MXToolbox | https://mxtoolbox.com/ | DNS、邮件系统与诊断 |
| Google DNS | https://dns.google/ | Google 公共 DNS 查询 |
| Cloudflare DNS | https://one.one.one.one/ | Cloudflare DNS 服务介绍 |
| DNSViz | https://dnsviz.net/ | DNS 及 DNSSEC 分析 |
| IntoDNS | https://intodns.com/ | DNS 配置检查 |
| ViewDNS | https://viewdns.info/ | 多种域名与网络信息工具 |
| SecurityTrails | https://securitytrails.com/ | DNS 数据及部分历史记录 |
| DNSDB | https://www.domaintools.com/products/dnsdb/ | 被动 DNS 数据服务 |
5.6 历史 DNS 为什么重要?
假设网站原本解析为:
text
2021年 -> 192.0.2.10
2023年 -> 192.0.2.20
2025年 -> 192.0.2.30
那么普通 dig 只能查询当前可获得的 DNS 记录。
想了解历史解析情况,就需要第三方长期收集的 Passive DNS(被动 DNS)数据。
但被动 DNS 数据也有明显限制:
- 不是所有 DNS 解析都会被记录。
- 时间戳通常代表观察时间。
- 不一定能够确定准确的首次使用时间。
- 缺少记录不代表从未发生过解析。
六、IP 地址、ASN 与 BGP 路由查询
很多人知道 IP 地址,却不清楚 IP 地址背后还涉及网络自治系统与全球路由。
例如:
text
客户端
|
v
本地运营商
|
v
其他自治系统
|
v
目标服务器所在网络
互联网由大量自治系统(AS)相互连接而成。
ASN(Autonomous System Number)是自治系统编号。
BGP(Border Gateway Protocol)负责自治系统之间的路由信息交换。
6.1 常见查询工具
| 工具 | 网址 | 作用 |
|---|---|---|
| IPinfo | https://ipinfo.io/ | IP、ASN 和网络信息 |
| RIPEstat | https://stat.ripe.net/ | IP、ASN、路由及历史分析 |
| Hurricane Electric BGP Toolkit | https://bgp.he.net/ | BGP 路由与 ASN 查询 |
| BGPView | https://bgpview.io/ | ASN、IP 前缀信息 |
| Cloudflare Radar | https://radar.cloudflare.com/ | 全球互联网流量与趋势 |
| ARIN | https://www.arin.net/ | 北美区域互联网注册机构 |
| RIPE NCC | https://www.ripe.net/ | 欧洲及周边区域注册机构 |
| APNIC | https://www.apnic.net/ | 亚太区域注册机构 |
| LACNIC | https://www.lacnic.net/ | 拉美及加勒比区域注册机构 |
| AFRINIC | https://www.afrinic.net/ | 非洲区域注册机构 |
| IANA | https://www.iana.org/ | 全球互联网编号资源协调 |
6.2 使用 IPinfo
例如:
text
https://ipinfo.io/8.8.8.8
可以查看该 IP 对应的公开网络数据。
常见字段:
text
IP
ASN
Organization
Country
Region
Hostname
需要强调:
IP 地址地理位置往往是数据库推断结果。
它不保证对应服务器的准确物理位置,更不能据此定位个人。
6.3 使用 RIPEstat
网址:
支持查询:
- IP 地址
- ASN
- IP 前缀
- BGP 路由信息
- 部分历史网络数据
对于网络工程人员来说,这类数据可以帮助判断某个 IP 前缀由哪个自治系统宣告,以及互联网路由如何变化。
6.4 traceroute 与 ping
查看 ICMP 连通性:
bash
ping example.com
跟踪网络路径:
bash
traceroute example.com
Ubuntu 安装:
bash
sudo apt install traceroute
也可以使用:
bash
tracepath example.com
Windows:
powershell
tracert example.com
但注意:
traceroute 显示的路径不一定完整,也未必等于所有真实业务数据包所走的路径。
部分设备可能限制 ICMP 响应,路由也可能因负载均衡而变化。
七、HTTPS 证书与证书透明度检索
正常访问 HTTPS 网站时,浏览器需要验证服务器提供的数字证书。
证书可能包含:
text
Subject
Issuer
Validity
Subject Alternative Name
Public Key
Signature Algorithm
证书透明度(Certificate Transparency,CT)是一套公开记录已签发证书的机制。
7.1 crt.sh
网址:
这是非常实用的证书透明度日志搜索网站。
例如查询:
text
example.com
可以查看与该域名相关的部分历史证书记录。
在特定情况下,证书记录中的 SAN(Subject Alternative Name)字段还能显示证书覆盖的其他主机名。
但是:
证书记录中存在某个主机名,不代表该主机名现在仍然有效,也不代表它现在有公开可访问的服务器。
7.2 其他证书查询工具
| 工具 | 网址 |
|---|---|
| crt.sh | https://crt.sh/ |
| Censys | https://search.censys.io/ |
| Google CT | https://transparencyreport.google.com/https/certificates |
| SSL Labs | https://www.ssllabs.com/ssltest/ |
| Hardenize | https://www.hardenize.com/ |
其中 SSL Labs 更侧重 HTTPS 配置与安全性测试,适合检测自己或获授权网站的 TLS 配置。
7.3 使用 OpenSSL 查看证书
Linux:
bash
openssl s_client \
-connect example.com:443 \
-servername example.com
如果希望查看证书的可读文本:
bash
echo | openssl s_client \
-connect example.com:443 \
-servername example.com 2>/dev/null |
openssl x509 -noout -text
可以进一步关注:
- 颁发者
- 有效期
- SAN 域名
- 公钥算法
- 证书扩展字段
与 crt.sh 不同,这种方式主要查看当前服务器实际提供的证书。
八、互联网资产搜索:Shodan、Censys 与类似平台
传统搜索引擎主要搜索网页内容。
互联网资产搜索引擎则尝试索引公开可见的网络服务及其技术信息。
例如:
text
公网 IP
|
+-- HTTPS 服务
|
+-- SSH 服务
|
+-- 邮件服务
|
+-- 其他网络协议服务
8.1 常见资产搜索平台
| 平台 | 网址 | 主要特点 |
|---|---|---|
| Shodan | https://www.shodan.io/ | 联网设备与服务索引 |
| Censys | https://search.censys.io/ | 互联网主机、证书和服务数据 |
| FOFA | https://fofa.info/ | 网络资产搜索 |
| ZoomEye | https://www.zoomeye.ai/ | 网络空间资产检索 |
| Netlas | https://netlas.io/ | 网络服务与公开数据检索 |
| Criminal IP | https://www.criminalip.io/ | IP、域名和安全相关数据 |
| ONYPHE | https://www.onyphe.io/ | 网络情报聚合 |
| LeakIX | https://leakix.net/ | 公开暴露服务及风险观察 |
| BinaryEdge | https://www.binaryedge.io/ | 互联网资产数据 |
| GreyNoise | https://www.greynoise.io/ | 互联网扫描流量情报 |
部分工具需要注册账号、API Key 或付费订阅。
8.2 Shodan
网址:
Shodan 的特色是索引公开网络服务,而不仅是传统网页。
可能涉及:
- HTTP 服务
- SSH 服务
- TLS 证书
- 服务 Banner
- 部分设备和协议特征
例如开发者可以通过平台提供的搜索功能查看自己公开服务器的服务信息。
注意:资产搜索结果具有时间滞后性,不能仅凭历史索引认定某个服务当前仍然开放。
8.3 Censys
网址:
Censys 同样提供互联网主机与证书等数据的查询能力。
适合:
- 了解自身公网资产
- 检查服务器证书关联信息
- 对照 DNS 和证书数据
- 进行授权网络资产管理
8.4 网络资产索引与主动扫描的区别
必须区分两个行为:
被动查询:
查询第三方平台已经收集的公开数据。
主动扫描:
自己向目标系统发送探测请求。
前者主要是在检索已有资料;后者可能涉及服务负载、安全策略和授权要求。
因此,对非自有或未授权资产,应避免进一步主动探测、漏洞验证及敏感数据访问。
九、网页技术栈与网站基础信息查询
有时我们并不是想知道网站上的文字,而是想了解它使用了什么技术。
例如:
- 使用什么 Web 服务器?
- 是否使用 CDN?
- 采用哪种前端框架?
- 是否使用 WordPress?
- 网站响应头有哪些信息?
- DNS 是否配置异常?
9.1 常见工具
| 工具 | 网址 | 作用 |
|---|---|---|
| BuiltWith | https://builtwith.com/ | 网站技术栈分析 |
| Wappalyzer | https://www.wappalyzer.com/ | Web 技术识别 |
| Netcraft | https://www.netcraft.com/ | 网站、托管和安全相关信息 |
| HTTP Observatory | https://developer.mozilla.org/en-US/observatory | HTTP 安全配置检查 |
| SecurityHeaders | https://securityheaders.com/ | HTTP 安全响应头检查 |
| SSL Labs | https://www.ssllabs.com/ssltest/ | TLS 配置检测 |
| PageSpeed Insights | https://pagespeed.web.dev/ | 网站性能分析 |
| WebPageTest | https://www.webpagetest.org/ | 页面加载性能测试 |
9.2 使用 curl 查看 HTTP 响应头
bash
curl -I https://example.com
可能得到:
http
HTTP/2 200
content-type: text/html
cache-control: max-age=3600
server: nginx
还可以查看重定向过程:
bash
curl -IL https://example.com
需要注意,HTTP 响应头可能经过 CDN、反向代理或其他中间件修改,并不一定反映源站服务器使用的全部技术。
十、开源代码与软件开发信息检索
对于程序员而言,开源代码仓库往往是一类被低估的信息来源。
普通搜索引擎可能只告诉你某个项目的名称,但代码托管平台还能提供:
- 项目源码
- README 文档
- 历史提交
- Release
- Issue
- Pull Request
- 代码讨论
- 技术演进记录
10.1 常见代码平台
| 平台 | 网址 | 特点 |
|---|---|---|
| GitHub | https://github.com/ | 全球主流代码托管平台 |
| GitLab | https://gitlab.com/ | 代码托管与 DevOps |
| Sourcegraph | https://sourcegraph.com/ | 跨代码库搜索 |
| Codeberg | https://codeberg.org/ | 开源社区代码托管 |
| Gitee | https://gitee.com/ | 中文开发者生态 |
| Hugging Face | https://huggingface.co/ | AI 模型、数据集和项目 |
| npm | https://www.npmjs.com/ | JavaScript 软件包 |
| PyPI | https://pypi.org/ | Python 软件包 |
| Maven Central | https://central.sonatype.com/ | Java 生态依赖 |
| crates.io | https://crates.io/ | Rust 软件包 |
| Libraries.io | https://libraries.io/ | 跨生态开源依赖信息 |
10.2 GitHub 高级搜索
GitHub 自身提供代码搜索语法。
例如:
text
language:python websocket
搜索 Python WebSocket 相关代码。
text
repo:python/cpython asyncio
在指定仓库中检索。
text
path:README.md FastAPI
寻找 README 中的相关内容。
需要注意,GitHub 不同搜索类型之间的语法并不完全相同。
10.3 Git 历史也是公开信息档案
假设某个项目现在删除了一段旧实现。
如果它曾经进入公开 Git 仓库,而且旧提交仍然可访问,则仍可能通过历史提交查看。
例如:
bash
git log --oneline
查看历史提交:
bash
git show <commit-id>
查看某个文件历史:
bash
git log -- path/to/file
比较不同版本:
bash
git diff <old-commit> <new-commit>
这里要注意,Git 历史可能保存已经不再出现在当前工作区的内容。
因此开发者不应将密码、API Key 或其他敏感信息提交到公开仓库。即使后续删除文件,也应立即撤销已泄露的凭据,并视情况清理历史。
十一、学术论文、专利与专业文献检索
普通搜索引擎可以找到大量论文,但并不是最适合建立系统性文献资料库的工具。
11.1 学术检索平台
| 平台 | 网址 | 主要用途 |
|---|---|---|
| Google Scholar | https://scholar.google.com/ | 综合学术搜索 |
| Semantic Scholar | https://www.semanticscholar.org/ | 论文与引用关系 |
| arXiv | https://arxiv.org/ | 预印本,计算机与数学等 |
| OpenAlex | https://openalex.org/ | 开放学术元数据 |
| Crossref | https://search.crossref.org/ | DOI 与出版物元数据 |
| CORE | https://core.ac.uk/ | 开放获取研究成果 |
| PubMed | https://pubmed.ncbi.nlm.nih.gov/ | 医学与生命科学 |
| DBLP | https://dblp.org/ | 计算机科学文献索引 |
| IEEE Xplore | https://ieeexplore.ieee.org/ | 电气、电子、计算机研究 |
| ACM Digital Library | https://dl.acm.org/ | 计算机科学文献 |
| OpenReview | https://openreview.net/ | 学术投稿和公开评审 |
| Papers With Code | https://paperswithcode.com/ | 论文与代码关联 |
| The Lens | https://www.lens.org/ | 学术与专利关联 |
| DOAJ | https://doaj.org/ | 开放获取期刊 |
| 中国知网 | https://www.cnki.net/ | 中文学术资料 |
| 万方数据 | https://www.wanfangdata.com.cn/ | 中文学术资源 |
部分平台的全文需要订阅或机构权限。
11.2 推荐检索流程
以查找 Transformer 相关研究为例:
第一步,在 Google Scholar 中寻找经典论文和相关引用。
第二步,在 arXiv 中寻找预印本及其版本。
第三步,使用 Semantic Scholar 了解引用关系。
第四步,在 GitHub 和 Hugging Face 搜索对应实现。
第五步,在 Crossref 查询 DOI 和正式出版元数据。
需要注意:
预印本并不一定已经通过同行评审。
同时也要区分论文初次上传时间、修订时间及会议或期刊正式发表时间。
11.3 专利检索平台
| 工具 | 网址 |
|---|---|
| Google Patents | https://patents.google.com/ |
| WIPO PATENTSCOPE | https://patentscope.wipo.int/ |
| Espacenet | https://worldwide.espacenet.com/ |
| USPTO | https://www.uspto.gov/ |
| 中国国家知识产权局 | https://www.cnipa.gov.cn/ |
对于了解某项技术的已有公开方案,专利数据库可以提供论文之外的补充材料。
十二、图片搜索与图像溯源
有时候我们手上只有一张图片。
想知道它来自哪里,或者是否被其他网站使用过,可以考虑反向图片检索。
12.1 常见工具
| 工具 | 网址 | 用途 |
|---|---|---|
| Google Images | https://images.google.com/ | 图片检索 |
| Google Lens | https://lens.google/ | 视觉识别与图片搜索 |
| Yandex Images | https://yandex.com/images/ | 图片及视觉相似内容 |
| Bing Visual Search | https://www.bing.com/visualsearch | 视觉搜索 |
| TinEye | https://tineye.com/ | 反向图片检索 |
| Wikimedia Commons | https://commons.wikimedia.org/ | 开放媒体素材 |
| Flickr | https://www.flickr.com/ | 摄影图片搜索 |
| Openverse | https://openverse.org/ | 开放许可媒体检索 |
12.2 图片溯源的基本步骤
假设在某个论坛看到一张历史照片。
可以:
- 保存合法获取的图片或复制图片链接。
- 使用 Google Lens 搜索。
- 使用 TinEye 寻找相同或相似图片。
- 使用 Yandex Images 补充检索。
- 检查不同来源的发布时间、说明文字及原始出处。
- 必要时检查图片 EXIF 元数据。
需要注意:
最早被搜索引擎发现的图片,不一定就是原始图片。
图片还可能经历重新裁剪、压缩、去水印或重新上传。
EXIF 元数据也可能被删除、修改或伪造。
十三、新闻、事实核查与公共档案检索
新闻报道具有强烈的时间属性。
同一事件可能出现多篇报道、转载、编辑更新和后续澄清。
13.1 新闻检索
| 平台 | 网址 |
|---|---|
| Google News | https://news.google.com/ |
| Bing News | https://www.bing.com/news |
| Google Trends | https://trends.google.com/ |
| GDELT | https://www.gdeltproject.org/ |
| Media Cloud | https://www.mediacloud.org/ |
其中 GDELT 提供全球新闻及事件相关数据,适合开展规模化媒体研究。
Google Trends 则可用于查看关键词的相对搜索热度。
但必须注意:
Google Trends 的数值通常经过标准化处理,并不直接等于真实搜索次数。
13.2 事实核查
| 工具 | 网址 |
|---|---|
| Google Fact Check Explorer | https://toolbox.google.com/factcheck/explorer |
| AFP Fact Check | https://factcheck.afp.com/ |
| Snopes | https://www.snopes.com/ |
| Full Fact | https://fullfact.org/ |
| PolitiFact | https://www.politifact.com/ |
对于争议事件,不宜把任何单一事实核查机构的判断当作不可质疑的最终事实。
更合理的方法是查找原始文件、完整录像、官方记录和多个独立证据来源。
十四、政府公开数据与统计信息查询
很多具有研究价值的信息,根本不需要通过普通搜索引擎逐个查找。
政府和国际组织通常有专门的数据门户。
14.1 国际公开数据
| 平台 | 网址 | 数据内容 |
|---|---|---|
| World Bank Open Data | https://data.worldbank.org/ | 全球发展指标 |
| UNData | https://data.un.org/ | 联合国统计数据 |
| OECD Data | https://www.oecd.org/en/data.html | OECD 相关统计 |
| IMF Data | https://www.imf.org/en/Data | 国际宏观经济数据 |
| Our World in Data | https://ourworldindata.org/ | 多领域数据分析 |
| Data.gov | https://data.gov/ | 美国政府开放数据 |
| Eurostat | https://ec.europa.eu/eurostat | 欧盟统计信息 |
| Google Dataset Search | https://datasetsearch.research.google.com/ | 数据集搜索 |
| Kaggle Datasets | https://www.kaggle.com/datasets | 数据科学数据集 |
| Zenodo | https://zenodo.org/ | 研究数据与出版成果 |
14.2 中国公开数据
| 平台 | 网址 |
|---|---|
| 国家统计局 | https://www.stats.gov.cn/ |
| 国家数据 | https://data.stats.gov.cn/ |
| 中国政府网 | https://www.gov.cn/ |
| 中国裁判文书网 | https://wenshu.court.gov.cn/ |
| 国家知识产权局 | https://www.cnipa.gov.cn/ |
| 国家标准全文公开系统 | https://openstd.samr.gov.cn/ |
| 中国国家图书馆 | https://www.nlc.cn/ |
这些平台的开放范围、查询限制及数据下载规则各不相同。
特别是涉及个人信息、司法文书或其他敏感资料时,即使页面允许公开浏览,也需要遵守适用法律与合理使用原则。
十五、地图、地理与卫星公开数据
地图信息也是公开信息检索的重要分支。
15.1 常见平台
| 平台 | 网址 |
|---|---|
| OpenStreetMap | https://www.openstreetmap.org/ |
| Google Maps | https://maps.google.com/ |
| Google Earth | https://earth.google.com/ |
| Bing Maps | https://www.bing.com/maps |
| 百度地图 | https://map.baidu.com/ |
| 高德地图 | https://www.amap.com/ |
| NASA Earthdata | https://www.earthdata.nasa.gov/ |
| USGS EarthExplorer | https://earthexplorer.usgs.gov/ |
| Copernicus Browser | https://browser.dataspace.copernicus.eu/ |
| OpenTopography | https://opentopography.org/ |
这些工具的用途包括:
- 地理环境研究
- 土地利用变化
- 历史影像对比
- 地形数据分析
- 遥感研究
- 地理信息系统开发
地图标注时间和卫星影像拍摄时间可能不同,使用时应核查数据的实际时间来源。
十六、互联网监测、故障与性能信息
当我们想知道某个网站是否发生了访问异常时,不能仅仅依靠自己浏览器中的访问结果。
因为问题可能来自:
- 本地 DNS
- 运营商
- 网络路由
- CDN 节点
- 网站源站
- 区域性网络故障
16.1 常见服务
| 工具 | 网址 |
|---|---|
| Downdetector | https://downdetector.com/ |
| Cloudflare Radar | https://radar.cloudflare.com/ |
| Internet Outage Detection and Analysis | https://ioda.inetintel.cc.gatech.edu/ |
| RIPE Atlas | https://atlas.ripe.net/ |
| ThousandEyes Outages | https://www.thousandeyes.com/outages |
| Globalping | https://globalping.io/ |
| Ping.pe | https://ping.pe/ |
其中 RIPE Atlas 可以利用分布式测量节点开展网络测量,Globalping 也提供多地点网络测试能力。
16.2 本地与远程测量结合
例如某个网站访问异常:
首先:
bash
dig example.com
然后:
bash
ping example.com
再检查 HTTP 状态:
bash
curl -I https://example.com
必要时:
bash
traceroute example.com
最后结合多地区网络测量和官方状态页面,判断故障是本地、区域性的还是服务自身的问题。
注意,禁用 ICMP 响应并不意味着网站一定宕机。
十七、命令行公开信息查询工具大全
Linux 是非常适合进行网络信息查询和自动化研究的系统。
尤其对于日常使用 Ubuntu 服务器的开发者而言,大量信息可以直接从终端获取。
17.1 工具总览
| 命令 | 用途 |
|---|---|
dig |
查询 DNS 记录 |
nslookup |
DNS 查询 |
host |
主机名及 DNS 查询 |
whois |
注册信息查询 |
curl |
HTTP 请求与响应分析 |
wget |
下载公开资源 |
ping |
测试网络连通性 |
traceroute |
路径诊断 |
tracepath |
路径诊断 |
mtr |
连续网络路径与丢包观测 |
openssl |
TLS 证书分析 |
jq |
解析 JSON 数据 |
grep |
文本匹配 |
awk |
文本字段处理 |
sed |
文本处理 |
git |
开源仓库与历史检索 |
17.2 Ubuntu 安装常用工具
bash
sudo apt update
sudo apt install -y \
dnsutils \
whois \
curl \
wget \
traceroute \
mtr-tiny \
openssl \
jq \
git
17.3 一套常用查询组合
下面使用 IANA 保留用于文档示例的域名:
text
example.com
查询 A 记录:
bash
dig example.com A +short
查询 AAAA:
bash
dig example.com AAAA +short
查询 MX:
bash
dig example.com MX +short
查询 NS:
bash
dig example.com NS +short
查询 WHOIS:
bash
whois example.com
查看 HTTP 响应:
bash
curl -I https://example.com
查看跳转:
bash
curl -IL https://example.com
查看证书:
bash
echo | openssl s_client \
-connect example.com:443 \
-servername example.com 2>/dev/null |
openssl x509 -noout -dates -issuer -subject
查看 IP 解析:
bash
getent ahosts example.com
这些命令足以完成一项基础的域名与网站公开信息查询。
十八、实战:如何系统研究一个网站的公开信息?
假设我们需要研究一个合法的公开网站:
text
example.com
目标不是攻击网站,而是了解其公开信息与历史。
第一步:普通网页检索
使用:
text
Google
Bing
Yandex
搜索:
text
"example.com"
以及:
text
site:example.com
查看已经进入索引的公开网页。
第二步:查看历史网页
访问:
text
https://web.archive.org/
输入:
text
example.com
选择不同年份,观察:
- 首页设计是否变化?
- 过去有哪些栏目?
- 是否曾提供旧版文档?
- 网站名称或定位是否改变?
第三步:查看域名注册信息
bash
whois example.com
同时通过:
text
https://lookup.icann.org/
获取当前可公开查询的注册信息。
记录注册商、注册状态及相关日期。
第四步:查询 DNS
bash
dig example.com A
dig example.com AAAA
dig example.com MX
dig example.com NS
dig example.com TXT
了解其公开 DNS 配置。
第五步:查看证书
访问:
text
https://crt.sh/
查询域名相关的公开证书记录。
使用 OpenSSL 核对当前 HTTPS 证书。
第六步:查询网络归属
将 DNS 查询获得的公开 IP,提交到:
text
https://ipinfo.io/
https://stat.ripe.net/
https://bgp.he.net/
了解相应 IP 的注册及路由背景。
这里必须注意 CDN。
如果域名使用 CDN,那么 DNS 得到的地址可能属于 CDN 节点,而不是实际源站。
第七步:查找公开源代码
可以在 GitHub 中搜索:
text
"example.com"
或查询该网站正式公开的项目仓库。
核对仓库是否确实属于网站运营主体,不能只凭名称相似就认定存在关联。
第八步:验证信息
最终形成如下信息记录:
| 信息 | 来源 | 时间属性 | 可靠性说明 |
|---|---|---|---|
| 当前 DNS | dig | 查询时刻 | 与查询服务器及缓存有关 |
| 注册数据 | RDAP | 注册局提供的当前数据 | 部分字段可能隐藏 |
| 历史页面 | Wayback Machine | 抓取时刻 | 可能缺失资源 |
| HTTPS 证书 | OpenSSL | 当前连接时刻 | 可能由 CDN 提供 |
| 历史证书 | crt.sh | 日志记录时间 | 不代表当前仍在使用 |
| IP 归属 | RIR / IPinfo | 数据库记录及更新时间 | 地理位置可能为估计 |
| 公开代码 | GitHub | 提交时间 | 需确认仓库真实性 |
经过这样的组合查询,通常比只搜索一个关键词得到的信息更加完整。
十九、自动化:使用 Python 组合公开信息查询
如果需要将查询过程变成程序,可以将 DNS、RDAP、HTTP 等查询封装到 Python 脚本中。
下面提供一个基础示例。
它只执行普通 DNS 查询、公开 RDAP 查询以及 HTTP HEAD 请求,不主动进行端口扫描和漏洞检测。
19.1 安装依赖
bash
pip install requests dnspython
19.2 完整代码
python
import json
import requests
import dns.resolver
DOMAIN = "example.com"
def query_dns(domain):
print("\n========== DNS ==========")
result = {}
for record_type in ["A", "AAAA", "MX", "NS", "TXT"]:
try:
answers = dns.resolver.resolve(
domain,
record_type,
lifetime=5
)
values = [
str(answer)
for answer in answers
]
result[record_type] = values
print(f"{record_type}:")
for value in values:
print(" ", value)
except Exception as e:
result[record_type] = []
print(f"{record_type}: {type(e).__name__}")
return result
def query_rdap(domain):
print("\n========== RDAP ==========")
# 本示例使用 RDAP.org 的域名查询重定向服务。
# 生产系统建议通过 IANA Bootstrap
# 发现对应注册局的 RDAP 服务器。
url = f"https://rdap.org/domain/{domain}"
try:
response = requests.get(
url,
timeout=15,
headers={
"User-Agent": "PublicInfoResearch/1.0"
}
)
response.raise_for_status()
data = response.json()
print("Domain:", data.get("ldhName"))
print("Status:", data.get("status"))
print("Events:", data.get("events"))
return data
except requests.RequestException as e:
print("RDAP 查询失败:", e)
return None
except ValueError:
print("RDAP 响应不是有效 JSON")
return None
def query_http(domain):
print("\n========== HTTP ==========")
url = f"https://{domain}"
try:
response = requests.head(
url,
timeout=10,
allow_redirects=True
)
result = {
"url": response.url,
"status_code": response.status_code,
"headers": dict(response.headers)
}
print("最终 URL:", response.url)
print("HTTP 状态:", response.status_code)
for key, value in response.headers.items():
print(f"{key}: {value}")
return result
except requests.RequestException as e:
print("HTTP 查询失败:", e)
return None
def main():
report = {
"domain": DOMAIN,
"dns": query_dns(DOMAIN),
"rdap": query_rdap(DOMAIN),
"http": query_http(DOMAIN)
}
with open(
"public_info_report.json",
"w",
encoding="utf-8"
) as f:
json.dump(
report,
f,
ensure_ascii=False,
indent=2
)
print("\n报告已保存到 public_info_report.json")
if __name__ == "__main__":
main()
运行:
bash
python osint_basic.py
生成:
text
public_info_report.json
这只是基础的信息查询示例,并不是完整的 OSINT 平台。
对于真实生产环境,还应考虑:
- 域名输入校验
- 请求频率限制
- API 错误和超时
- RDAP Bootstrap 发现
- 结果缓存
- 统一时间戳
- 数据来源记录
- 访问许可和隐私保护
安全提醒: 如果把脚本改造成在线服务,不应允许未经验证的用户提交任意 URL 后直接由服务器请求,否则可能产生 SSRF 风险。
二十、公开信息检索常见误区
误区一:Google 搜不到就不存在
错误。
网页可能没有被索引,也可能被搜索引擎排除。
还可能存在于其他搜索引擎或历史档案中。
误区二:WHOIS 能查出任何网站的实际所有者
错误。
WHOIS/RDAP 提供的是注册相关数据,而且存在隐私保护、代注册和数据隐藏等情况。
误区三:查到 IP 就能知道服务器准确位置
错误。
IP 地址可能属于 CDN、云服务商、代理、VPN 或分布式网络。
地理数据库位置通常是估计值。
误区四:Wayback Machine 保存了整个互联网
错误。
Wayback Machine 只能提供其实际保存并允许访问的快照。
误区五:证书中出现一个域名,说明该服务仍然存在
错误。
证书透明度保存的是历史签发记录。
域名可能已经停用、换绑或迁移。
误区六:搜索引擎结果一定是最新的
错误。
索引更新、缓存和排序均可能存在延迟。
应当核实原始来源及更新时间。
误区七:公开信息可以无限制使用
错误。
公开访问不等于放弃版权、隐私权或服务条款。
例如,一个网页虽然可以被搜索到,却不意味着允许批量采集其中的个人数据。
二十一、超全工具速查表
下面将前面涉及的主要工具归纳为一份可以收藏的索引。
注:以上为工具索引,不代表所有服务完全免费或无须注册。具体 API、访问配额、数据权限和服务可用性以各平台官方说明为准。
二十二、如何建立自己的 OSINT 检索工具箱?
如果平常只是查询资料,没有必要一口气掌握全部平台。
我更推荐按照需求分阶段学习。
第一阶段:普通信息检索
掌握:
text
Google
Bing
Yandex
Wayback Machine
能够处理大多数网页资料和历史页面问题。
第二阶段:域名与服务器信息
掌握:
text
dig
nslookup
WHOIS
RDAP
crt.sh
IPinfo
RIPEstat
能够建立较系统的 DNS、注册信息、证书和网络归属认识。
第三阶段:开发与研究资料
掌握:
text
GitHub
Sourcegraph
Google Scholar
arXiv
Semantic Scholar
OpenAlex
能够更有效地进行技术研究和源码学习。
第四阶段:互联网公开数据分析
学习:
text
Common Crawl
Shodan
Censys
Cloudflare Radar
BGP 数据
开放数据 API
进一步尝试通过 Python 处理、比较及分析多个公开数据来源。
最终,可以逐步建立自己的公开信息查询系统。
例如:
text
用户输入
|
v
查询调度程序
|
+-----------+-----------+
| | |
v v v
DNS查询 RDAP查询 HTTP查询
| | |
+-----------+-----------+
|
v
统一数据模型
|
v
多来源交叉验证
|
v
JSON/HTML报告
这个系统还可以进一步扩展历史网页、证书和公开学术资料等模块。
不过,越是进行自动化检索,越应该明确权限边界、数据来源、请求频率以及信息保留规则。
二十三、总结
互联网公开信息检索并不是简单地在搜索框里输入几个关键词。
搜索引擎解决的是"有哪些公开网页",历史档案解决的是"过去出现过什么内容",DNS 解决的是"域名如何解析",RDAP 解决的是"域名和互联网编号资源如何注册",证书透明度记录的是"哪些证书曾经被签发",而代码、学术及公共数据库则提供了完全不同的信息视角。
真正重要的能力包括:
- 知道去哪里查。 不同问题应该选择不同类型的数据源。
- 知道如何查。 学习高级搜索语法、命令行和 API。
- 知道结果意味着什么。 分清注册数据、DNS 解析、历史快照、证书记录和网络观测之间的区别。
- 知道结果有什么局限。 搜索不到不代表不存在,检索到了也不代表当前仍然有效。
- 知道如何验证。 尽量交叉核实多个独立来源,保留查询时间和原始出处。
- 知道边界在哪里。 遵守法律、隐私保护要求和各平台服务条款。
对于计算机专业学生而言,掌握这些工具不仅能提高技术资料搜索能力,还能帮助理解互联网真实运行中的域名系统、IP 地址分配、路由协议、HTTPS 证书、搜索引擎索引和历史网页存储等机制。
当你开始熟练使用 Google、Wayback Machine、dig、RDAP、RIPEstat、crt.sh 和各种公开数据库时,你看到的互联网,就不再只是浏览器搜索结果里的那十几个链接了。