OSINT的介绍

开源情报是指合法地从公开和可公开获得的资源中收集数据和信息的做法。OSINT操作——无论是由IT安全专家、恶意行为者还是民族国家支持的情报人员所实施——使用先进的技术来搜索海量的可见数据,以找到满足他们需求的信息。

尽管下述许多OSINT工具是开源的,但本文中的“开源”并不是指开源软件运动;相反,它描述了被分析数据的公共性质。

OSINT在许多方面是操作安全(OPSEC)的镜像,在这个信息大爆炸的时代,OSINT对于密切关注有效信息显得至关重要。如果分析得当,这些数据可能会揭示破坏性的真相。IT安全部门越来越多地承担在自己的组织中执行OSINT操作以支持操作安全的任务。

如今,市场上大多数OSINT工具都提供下述三种关键功能,其中许多工具在某一特定领域表现得格外突出。

发现面向公众的资产

它们最常见的功能是帮助IT团队发现面向公众的资产,并绘制每个人所拥有的可能导致潜在攻击面的信息。一般来说,它们不会试图寻找程序漏洞或执行渗透测试之类的事情。它们的主要工作是记录某人可以在无需诉诸黑客攻击的情况下公开找到的有关公司资产的信息。

发现组织外的相关信息

一些OSINT工具执行的第二个功能是在组织外部(例如在社交媒体帖子中或在可能位于严格定义的网络之外的域和位置)寻找相关信息。那些进行了大量收购并获得了他们要合并的公司的 IT 资产的组织会发现此功能非常有用。鉴于社交媒体的急剧增长和流行,在公司范围之外寻找敏感信息可能对任何群体都有帮助。

将发现的信息整理成可操作的形式

最后,一些OSINT工具有助于将所有发现的信息整理和分组为有用且可操作的情报。为大型企业运行OSINT扫描可以产生数十万个结果,尤其是在包括内部和外部资产的情况下。整合所有数据并且能够优先处理最严重的问题将非常有帮助。

Google Hacking

Google hacking 也叫 Google dorking,是一种利用谷歌搜索和其他谷歌应用程序来发现网站配置和计算机代码中的安全漏洞的计算机黑客技术。

通配符

通配符 语义 说明 示例
+ 包含关键字 +前面必须要有一个空格 admin +login
- 排除关键字 -前面必须要有一个空格 mysql -csdn
~ 同义词 ~前面必须要有一个空格 admin ~login
* 模糊查询 *代替任意字符 mysql**
“” 强调 - “mysql”

高级语法

语法 语义
intitle 包含标题
intext 包含内容
filetype 文件类型
info 基本信息
site 指定网站
inurl 包含某个url
link 包含指定链接的网页
cache 显示页面缓存版本
numberrange 搜索一个数字
daterange 查找指定日期范围内发布的网页

示例

1、查找目录列表

1
2
3
intitle:index.of

intext: index of / | ../ | Parent Directory

2、查找ws_ftp.log文件

1
2
3
intitle:index.of ws_ftp.log

inurl:ws_ftp.log filetype:log

3、查找wordpress泄露的敏感信息文件

1
inurl:wp-content/uploads/data.txt

4、查找后台登录

1
2
3
intext:后台登录 | intitle:后台登录

inurl:/admin intext:后台管理系统

5、查找渗透测试报告

1
"渗透测试报告" filetype:doc | filetype:pdf

6、查找wut.edu.cn下的子域名

1
site:wut.edu.cn

7、查找wut.edu.cn的后台管理地址

1
site:wut.edu.cn inurl:login|admin|admin\_login|login\_admin|system|manager|user|main|cms|dede|guanli|houtai

8、查找wut.edu.cn的可能存在的注入点

1
site:wut.edu.cn inurl:php?id|asp?id|aspx?id|jsp?id

9、查找wut.eddu.cn的可能存在的文件上传漏洞

1
site wut.edu.cn inurl:file|files|load|editor

10、查看baidu.com的缓存信息

1
cache:baidu.com

谷歌黑客数据库

收录众多谷歌搜索语句

https://www.uedbox.com/shdb/
https://www.exploit-db.com/google-hacking-database

GitHub Hacking

GitHub是世界上最大的同性交友代码托管平台,超5千万开发者正在使用。

Github不仅能托管代码,还能对代码进行搜索,我们感受到了其便利的同时,也应该时刻注意,当你上传并公开你的代码时,一时大意,让某些敏感的配置信息文件等暴露于众。

搜索仓库

查询 示例
>n cats start:>1000 匹配含有 “cats” 字样、星标超过 1000 个的仓库。
>=n cats topics:>=5 匹配含有 “cats” 字样、有 5 个或更多主题的仓库。
<n cats size:<10000 匹配小于 10 KB 的文件中含有 “cats” 字样的代码。
<=n cats stars:<=50 匹配含有 “cats” 字样、星标不超过 50 个的仓库。
n..* cats stars:10..* 匹配含有 “cats” 字样、有 10 个或更多星标的仓库。
*..n cats stars:10..* 匹配含有 “cats” 字样、有 10 个或更多星标的仓库。
n..n cats stars:10..50 匹配含有 “cats” 字样、有 10 到 50 个星号的仓库。

搜索代码

注意事项

只能搜索小于384KB的文件。 只能搜索少于500,000个文件的存储库。

登陆的用户可以搜索所有公共存储库。

filename 搜索外,搜索源代码时必须至少包含一个搜索词。例如,搜索 language:javascript) 无效,而是这样:amazing language:javascript。 搜索结果最多可以显示来自同一文件的两个片段,但文件中可能会有更多结果。

不能将以下通配符用作搜索查询的一部分:

. , : ; / ' " = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\* ! ? # $ & \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\+ ^ | ~ < \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\> ( ) { } 。

搜索将忽略这些符号。

日期条件

1
2
3
cats pushed:<2012-0705 			#搜索在2012年7月05日前push代码,且cats作为关键
cats pushed:2016-04-30..2016-07-04 #日期区间
cats created:>=2017-04-01 #创建时间

逻辑运算

1
2
3
AND		#与
OR #或
NOT #非

排除运算

1
2
#搜索在2012年07月05日前push代码,且cats作为关键字,排除java语言仓库
cats pushed:<2012-07-05 - language:java

包含搜索

1
2
3
4
Hacker in:file  		#搜索文件中包含Hacker的代码
Hacker in:path #搜索路径中包含Hacker的代码
Hacker in:path,file #搜索路径、文件中包含Hacker的代码
console path:app/public language:javascript #搜索关键字console,且语言为JavaScript在app/public下的代码

主体搜索

1
2
3
user:USERNAME  				#用户名搜索
org:ORGNAME #组织搜索
repo:USERNAME/PEPOSITORY #指定仓库搜索

文件名称

1
2
filename:config.php language:php	#搜索文件名为config.php,且语言为PHP的代码
mail filename:.properties #搜索JAVA项目的配置文件,且中包含mail的代码

扩展名搜索

1
2
#extension:EXTENSION  指定扩展名搜索
php extension:config

自动化工具——GitMiner

GitMiner是一款自动化的高级敏感内容挖掘工具。此工具旨在通过代码或代码片段在github搜索页面进行挖掘,并以此来证明公共存储库的脆弱性,以及将包含敏感信息的代码存储在其中所带来的安全隐患。

项目地址:https://github.com/UnkL4b/GitMiner

Screenshot

Shodan 搜索引擎

Shodan 在百度百科里被给出了这么一句话介绍: Shodan 是互联网上最可怕的搜索引擎。为什么呢?与谷歌、百度等搜索引擎爬取网页信息不同,Shodan 爬取的是互联网上所有设备的 IP 地址及其端口号。

网址:https://www.shodan.io/

高级过滤搜索

  • hostname:搜索指定的主机或域名,例如 hostname:“google”
  • port:搜索指定的端口或服务,例如 port:“8080”
  • country:搜索指定的国家,例如 country:“CN”
  • city:搜索指定的城市,例如 city:“yantai”
  • org:搜索指定的组织或公司,例如 org:“google”
  • isp:搜索指定的ISP供应商,例如 isp:“China Telecom”
  • product:搜索指定的操作系统/软件/平台,例如 product:“Apache httpd”
  • version:搜索指定的软件版本,例如 version:“2.1.2”
  • geo:搜索指定的地理位置,参数为经纬度,例如 geo:“44.56, 119.65”
  • before/after:搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:“11-11-15”
  • net:搜索指定的IP地址或子网,例如 net:“102.45.10.0/24”

示例

1、查找位于合肥的Apache服务器

1
apache city:"Hefei"

2、查找位于国内的Nginx服务器

1
nginx country:"CN"

3、查找GWS(Google Web Server)服务器

1
server:gws hostname:"google"

4、查找指定网段华为设备

1
huawei net:"64.191.146.0/24"

5、查找国内的 海康威视网络摄像头

1
Server:Hikvision-Webs country:"CN"

6、查找SQ-WEBCAM摄像头

1
Server: SQ-WEBCAM

7、搜索美国受“心脏滴血”漏洞影响的主机

1
country:US vuln:CVE-2014-0160

8、根据网页图标收集资产

1
2
3
http.favicon.hash:-1825654886

注:查询值为目标站点图标文件的hash值

其他

在每次查询后,在左上角有几个功能,Exploits,maps,create report等

exploits是系统帮我们查找不同类型的方式来查找。

maps是生成地图,用来查看主机在世界各地的分布。红色标记就是主机地址

create report是针对此次搜索,生成报告发给邮件,也可以去账户里查看以前生成的报告。

Shodan命令行

Shodan搜索引擎拥有自己的API接口,前提是先注册。可以使用命令行工具,也可以使用python等编程软件调用。

Shodan命令行模式有很多优点,比如导出搜索数据与解析搜索数据,还有可以指定显示数据得关键字段。

1、导入key:

1
shodan init <key>

2、显示自己的公网ip:

1
shodan myip

3、查看指定cve漏洞在shodan发现的总数 ‘’

1
shodan count vuln:cve-2019-0708

4、查看指定cve漏洞的地区分布情况

1
shodan stats vuln:cve-2019-0708

5、列出存在漏洞的top20的私有云服务商

1
shodan stats --facets org:20 vuln:cve-2019-0708 tag:cloud

7、筛选指定端口、指定协议存在的漏洞数据

1
shodan stats port:445 SMB vuln:ms17-010

8、 查看某ip相关的所有信息

1
shodan host 219.140.59.238

9、保存某ip的相关信息

1
shodan host --save 219.140.59.238

10、查看下载下来的数据信息

1
shodan parse 219.140.59.238.json.gz

11、通过扫描得到最新的服务器信息

1
shodan scan submit 219.140.59.238

Censys 搜索引擎

与最流行的搜索引擎Shodan非常类似。Censys是一款免费的搜索引擎,最初由密歇根大学的研究人员在10月发行,目前由谷歌提供支持。 Censys搜索引擎能够扫描整个互联网,Censys 每天都会扫描IPv4地址空间,以搜索所有联网设备并收集相关的信息,并返回一份有关资源(如设备、网站和证书)配置和部署信息的总体报告。

Censys更偏向于证书查询

网址:https://search.censys.io/

搜索示例

默认情况下censys支持全文检索,支持正则。

1
2
3
4
5
6
7
8
9
10
11
12
13
ip:23.0.0.0/8 or 8.8.8.0/24  						可以使用逻辑运算

services.http.response.status_code: 200   指定状态

services.http.response.status_code: [200 to 300]   200-300之间的状态码

location.country_code: DE   国家

services.port: 21 or services.service_name: FTP   协议

services.software.product:apache   服务器类型版本

autonomous_system.description: University   系统描述

FoFa 搜索引擎

FOFA 是白帽汇推出的一款网络空间搜索引擎,它通过进行网络空间测绘,能够帮助研究人员或者企业迅速进行网络资产匹配,例如进行漏洞影响范围分析、应用分布统计、应用流行度排名统计等。

FoFa更偏向于企业资产收集

网址:https://fofa.so/

搜索示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
title="abc" 	从标题中搜索abc。例:标题中有北京的网站。

header="abc" 从http头中搜索abc。例:jboss服务器。

body="abc" 从html正文中搜索abc。例:正文包含Hacked by。

domain="qq.com" 搜索根域名带有qq.com的网站。例: 根域名是qq.com的网站。

host=".gov.cn" 从url中搜索.gov.cn,注意搜索要用host作为名称。

port="443" 查找对应443端口的资产。例: 查找对应443端口的资产。

ip="1.1.1.1" 从ip中搜索包含1.1.1.1的网站,注意搜索要用ip作为名称。

protocol=”https” 搜索制定协议类型(在开启端口扫描的情况下有效)。例: 查询https协议资产。

city=”Beijing” 搜索指定城市的资产。例: 搜索指定城市的资产。

region="Zhejiang" 搜索指定行政区的资产。例: 搜索指定行政区的资产。

country="CN" 搜索指定国家(编码)的资产。例: 搜索指定国家(编码)的资产。

cert="google.com" 搜索证书(https或者imaps等)中带有google.com的资产。

高级搜索示例

1
2
3
4
5
title="powered by" && title!=discuz

title!="powered by" && body=discuz

( body="content=WordPress" || (header="X-Pingback" && header="/xmlrpc.php" && body="/wp-includes/") ) && host="gov.cn"

钟馗之眼

国内互联网安全厂商知道创宇开放了他们的海量数据库,对之前沉淀的数据进行了整合、整理,打造了一个名符其实的网络空间搜索引擎ZoomEye,该搜索引擎的后端数据计划包括两部分:

1、网站组件指纹:包括操作系统,Web服务,服务端语言,Web开发框架,Web应用,前端库及第三方组件等等。

2、主机设备指纹:结合NMAP大规模扫描结果进行整合。 目前只上线了第一部分网站组件指纹。

钟馗之眼更偏向于Web应用层面的搜索

网址:https://www.zoomeye.org/

搜索示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
app:nginx  				组件名

ver:1.0   版本

os:windows   操作系统

country:”China”   国家

city:”hangzhou”   城市

port:80   端口

hostname:google   主机名

site:thief.one   网站域名

desc:nmask   描述

keywords:nmask’blog  关键词

service:ftp   服务类型

ip:8.8.8.8   ip地址

cidr:8.8.8.8/24   ip地址段

Kunyu(坤舆)

Kunyu(坤舆),是一款基于ZoomEye API开发的信息收集工具,旨在让企业资产收集更高效,使更多的安全从业者了解、使用网络空间资源测绘技术。

项目地址:https://github.com/knownsec/Kunyu

360 QUAKE

360 Quake 网络空间测绘系统是360网络安全响应中心(360-CERT)自主设计研发的全球网络空间测绘系统,能够对全球IPv4、IPv6地址进行持续性探测,实时感知全球网络空间中各类资产并发现其安全风险。

网址:https://quake.360.cn/quake/#/index

搜索语法:https://quake.360.cn/quake/#/help?id=5eb238f110d2e850d5c6aec8&title=检索关键词

QUAKE API

使用go语言编写,基于命令行,支持QuakeAPI进行查询。

项目地址:https://github.com/YetClass/QuakeAPI

其它搜索引擎

S.R.P 智能自定义搜索

OSINT-Labs 开源情报实验开发的搜索引擎,能综合各大搜索引擎进行智能搜索。

网址:https://www.osint-labs.org/search/s.php?q=&sid=0

百度搜索引擎

百度一下,你就知道。

网址:https://www.baidu.com

搜狗搜索引擎

支持微信公众号搜索、文章搜索、知乎搜索、英文搜索及翻译等。

网址:https://www.sogou.com

360搜索引擎

360旗下搜索引擎。

网址:https://www.so.com

雅虎搜索引擎

雅虎公司旗下搜索引擎。

网址:https://www.yahoo.com

Yandex搜索引擎

Yandex是俄罗斯最流行的搜索引擎,占俄罗斯国内市场的55%。

网址:https://yandex.com

Exalead搜索引擎

一款法国公司开发的搜索引擎。

网址:http://www.exalead.com/search/

Dogpile搜索引擎

Dogpile是一个聚合谷歌、雅虎、Yandex和其他流行的搜索引擎结果的元搜索引擎。

网址:https://www.dogpile.com

网盘在线搜索工具

其它情报信息查询

信息收集工具编写

以传统搜索引擎进行URL采集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import requests
from bs4 import BeautifulSoup
import time

domain = input("请输入域名: ")
for i in range(48):
i=i*10
#header是用来规定我们到底模仿哪个浏览器去上网
heads={
'User-Agent': 'Mozilla/5.0(Windows NT 6.1; Win64; x64; rv:56.0)
Gecko/20100101 Firefox/56.0'
}

#具体请求哪个页面
url='https://cn.bing.com/search?q=site%3A'+domain+'&qs=n&form=QBRE&sp=-1&pq=site%3Adgjy.net&sc=2-11&sk=&cvid=C1A7FC61462345B1A71F431E60467C43&toHttps=1&redig=3FEC4F2BE86247E8AE3BB965A62CD454&pn=2&first={}&FROM=PERE'.format(i)
#返回的内容
html=requests.get(url,headers=heads)

#筛选 初始化一下这个筛选工具
soup=BeautifulSoup(html.content,'html.parser')

#具体要把哪个地方的东西提出来 如果找到了h2 就把下面整个保存起来
job_bt=soup.findAll('h2')

for i in job_bt:
time.sleep(3)

#获得h2找到的这个东西中间的a标签中的href属性里面的值
print(i.a.get('href'))

我个人编写的一个URL采集工具:

https://github.com/UlyssesTakusen/CaiJiEngine

以空间测绘引擎API进行信息收集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import requests
import base64
import sys

class Fofa:
email = "你的邮箱"
key = "你的API-Key"

ips = []
domains = []
def getData(self,arg):
api = "https://fofa.so/api/v1/search/all?email={}&key={}&qbase64={}"
flag = base64.b64encode(arg.encode()).decode()
response = requests.get(api.format(self.email,self.key,flag))
self.results = response.json()["results"]
self.length = len(self.results)

for result in self.results:
self.domains.append(result[0])
self.ips.append(result[1])

if __name__ == "__main__":
arg = sys.argv[1]
fofa = Fofa()
fofa.getData(arg)
print("共搜索到{}条记录!".format(fofa.length))
for i in range(len(fofa.results)):
print(fofa.domains[i],"\t",fofa.ips[i])