Shodan
1.介绍
Shodan是一个搜索互联网连接设备的搜索引擎,不同于谷歌、必应、百度这些搜索
引擎。用户可以在Shodan上使用Shodan搜索语法查连接到互联网的摄像头、路由器、服务器等设备信息。在渗透测试中,是个很不错的神器。
Shodan的搜索流程:
1.1.关于数据
1.1.1.Banner
Shodan采集的基本数据单位是banner。banner是描述设备所运行服务的标志性文本信息。对于Web服务器来说,其将返回标题或者是telnet登陆界面。Banner的内容因服务类型的不同而相异。
以下这是一个典型的HTTP Banner:
CODE: [ ]
HTTP
/
1.1
200
OK
Server
:
nginx
/
1.1.19
Date
:
Sat
,
03
Oct
2015
06
:
09
:
24
GMT
Content
Type
:
text
/
html
;
charset
=
utf
8
Content
Length
:
6466
Connection
:
keep
alive
CODE: [ ]
注:
Shodan
搜索的是联网设备运行服务的
banner
,不是单一的主机信息。如
果单个
IP
暴露很多服务信息,在指定特定搜索内容的时候,搜索结果只会出现
指定的内容,不会显示其他的服务信息。
Copyright
:
Original
Siemens
Equipment
PLC
name
:
S7_Turbine
Module
type
:
CPU
313
C
Unknown
(
129
):
Boot
Loader
A
Module
:
6
ES7
313
5
BG04
0
AB0
v
.0.3
Basic
Firmware
:
v
.3.3.8
Module
name
:
CPU
313
C
Serial
number
ofphp编程手册
module
:
S
Q
D9U083642013
Plant
identification
:
Basic
Hardware
:
6
ES7
313
5
BG04
0
AB0
v
.0.3
1.1.2.设备元数据
除了获取banner,Shodan还可以获取相关设备的元数据,例如地理位置、主机名、操作系统等信息。大部分元数据可以通过Shodan的获取,小部分的可以通过使用API编程获取。
1.1.3. IPv6
据统计,截至2015年10月,Shodan每月收集数百万条关于IPv6设备的可用数据。不过与收集的数亿个IPv4 banner相比,这些数字还是苍白。预计在未来几年会有所增长。
1.2.数据采集
1.2.1.频率
Shodan的爬虫全天候工作,并实时更新数据库。在任何时候使用Shodan查询,都可以获得最新的结果。
1.2.2.分布式
爬虫分布于世界各地,包括:
●美国(东海岸和西海岸)
●中国
●冰岛
●法国
●台湾
●越南
●罗马尼亚
●捷克共和国
从世界各地收集数据是为了防止地区各种因素的差异造成数据的偏差。例如,美国的许多系统管理员会封锁整个中国的IP范围,分布在世界各地的Shodan爬虫就可以确保任何全国性的封锁不会影响数据收集。
1.2.3.随机
Shodan爬虫的基本算法是:
1.生成一个随机的IPv4地址
2.从Shodan能解析的端口列表中生成一个随机端口测试
3.检测随机端口上的随机IPv4地址,并获取Banner
4.继续步骤1
这意味着爬行器不扫描增量的网络范围。爬行是完全随机的,以确保在任何给定的时间内对因特网进行统一的覆盖,并防止数据的偏差。
1.3.深入SSL
SSL正在成为互联网上重要的服务,Shodan也随之扩展性地收集其banner,包括收集每个SSL的功能服务及其漏洞信息,比如HTTPS,不仅仅是SSL证书。
1.3.1.心脏出血漏洞测试
如果某服务有心脏滴血漏洞,返回的banner将包含以下2个附加属性。
opts.heartbleed包含了对服务进行心脏出血漏洞测试的原始回应(在测试中,爬虫只抓取少量溢出来确认服务是否受到心脏出血的影响,不会获取泄露的私钥)。若设备容易受到攻击,爬虫会将CVE-2014-0160添加到opts.vulns列表中;若不易受到攻击,则会返回!CV
E-2014-0160:
CODE: [ ]
{
"opts"
:
{
"heartbleed"
:
"... 174.142.92.126:8443 VULNERABLE\n"
,
"vulns"
:
[
"CVE20140160"
]
}
}
Shodan也支持漏洞信息搜索。比如,要搜索美国受心脏滴血漏洞影响可在shodan
输入country:US vuln:CVE-2014-0160
1.3.1.1. FREAK
如果服务支持导出密码,则爬虫程序就将“CVE-2015-0204”项添加到opts.vulns 属性
CODE: [ ]
"opts"
:
{
"vulns"
:
[
"CVE20150204"
]
}
1.3.1.2. Logjam
爬虫将短暂使用Diffie-Hellman密码连接到SSL服务,若连接成功就存储返回以下信息:
CODE: [ ]
"dhparams"
:
{
"prime"
:
""
,
"public_key"
:
""
,
"bits"
:
1024
,
"generator"
:
2
,
"fingerprint"
:
"nginx/Hardcoded 1024bit prime"
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论