2021年11月

iSCSI Manager 可以帮助您轻松管理和监控 iSCSI 服务。iSCSI 是一种存储区域网络 (SAN) 服务,通过该服务可以访问集中化、块级数据存储。它加快了内部网上的数据传输以及远距离存储空间管理。通过将 iSCSI LUN 映射到 iSCSI Target,客户端服务器可通过其 iSCSI 启动器像访问本地硬盘那样访问存储空间。

1 、在控制面板中找到iSCSI Manager

2 、iSCSI Manager主页










3 、创建LUN池,新增LUN


4 、进入创建LUN向导,设置总容量100G、空间分配:Thin Provisoning(只有这种模式才能开启空间回收和快照功能)


5 、iSCSI LUN 选择稍后映射

6 、应用创建LUN完成

7 、新增映射链接iSCSI Target

8 、进入iSCSI Target向导

9 、选择刚刚创建的LUN-1


10 、应用即可

11 、再到客户端,找到ISCSI发起程序

12 、填入NAS服务器IP地址,点击快速链接

13 、可以看到已经连接成功

14 、打开计算机设备管理器—》磁盘管理,可以看到已经连接好的100G磁盘

15 、首次连接需要初始化硬盘格式,新建卷

16 、指定盘符容量大小(这里默认全部)


17 、选择盘符号

18 、格式化分区

19 、完成创建

20 、再到计算机中查看创建好的分区,这样我们的ISCSI就创建成功了



了解更多关于群晖NAS使用教程,例如:

1 :群晖DSM操作系统基础介绍,创建空间、共享文件夹、配置网络

2 :如何创建用户和批量导入用户,用户权限管理

3 、如何通过Drive搭建企业网盘,搭建私云存储,数据同步设置

4 、群晖NAS如何实现异地外网访问

5 、如何使用Cloud Sync套件同步百度云盘

6 、群晖NAS如何创建共享文件夹和设置文件权限

7 :如何使用ABB套件备份服务器、计算机、文件服务器、虚拟机

8 :如何使用iSCSI Manager套件扩容电脑和服务器磁盘容量

9 :如果使用Moments管理照片

10 :如何使用VMM虚拟化平台创建管理虚拟机


形式化分析

安全协议分析的主流方法包括逻辑分析方法、定理证明方法、形式化分析方法等. 逻辑分析方法简单
直观, 但是其分析的结果很大程度上依赖逻辑初始假设, 极大增加了协议分析结果的不准确性. 随着现实
敌手不断增强, 逻辑分析方法所支持的安全模型逐渐不适应当前的协议分析. 定理证明方法分析结果虽然
相对准确, 但是使用普适性不强, 对于一般用户, 该方法不易掌握. 形式化分析工具相对逻辑分析法和定
理证明法有着其独特的优势. 首先, 形式化工具代替了人工分析, 减少了人在分析过程中的工作量, 还能
较少人为失误造成的分析不准确; 其次, 形式化工具对协议可能出现的状态进行遍历搜索, 可以发现人工
分析中难以发现的攻击, 经典的例子就是 Needham-Schroeder 协议[1]在提出之后的 17 年里被认为是安全的,
Lowe[2]通过形式化分析工具 FDR 发现了该协议的中间人攻击; 最后, 形式化分析工具一般都有着基于按
钮或网页的用户界面, 用户仅需将协议以及安全属性的形式化描述作为工具的输入, 工具通过对状态空间
的搜索输出分析结果. 综上所述, 协议形式化分析工具在协议分析过程中有着突出的优势, 使得其在协议
的分析与设计过程中发挥重要的作用.
形式化工具的比较研究工作有着重要的意义. 在工具使用方面, 通过对形式化工具各个使用角度进行
对比研究, 掌握不同工具在攻击搜索、运行效率、所支持的安全模型以及形式化描述语言等方面的优劣, 可
以让协议分析者在众多工具中根据目标协议的特点挑选合适的工具, 使得安全模型更加贴合实际, 分析结
果更加准确, 分析过程更加高效. 在工具开发方面, 通过对形式化工具底层算法的比较研究, 可以将工具
性能与算法设计建立联系, 在工具开发过程中, 针对用户需求, 优化底层算法, 开发更加贴合实际应用、 更
加高效的协议分析工具. 因此, 开展全面的对比研究具有较高的理论价值和现实意义.


什么是 Shodan?

首先,Shodan 是一个搜索引擎,但它与 Google 这种搜索网址的搜索引擎不同,Shodan 是用来搜索网络空间中在线设备的,你可以通过 Shodan 搜索指定的设备,或者搜索特定类型的设备,其中 Shodan 上最受欢迎的搜索内容是:webcam,linksys,cisco,netgear,SCADA等等。

那么 Shodan 是怎么工作的呢?Shodan 通过扫描全网设备并抓取解析各个设备返回的 banner 信息,通过了解这些信息 Shodan 就能得知网络中哪一种 Web 服务器是最受欢迎的,或是网络中到底存在多少可匿名登录的 FTP 服务器。

基本用法

这里就像是用 Google 一样,在主页的搜索框中输入想要搜索的内容即可,例如下面我搜索 “SSH”:

27-1.png

上图的搜索结果包含两个部分,左侧是大量的汇总数据包括:

  • Results map – 搜索结果展示地图

  • Top services (Ports) – 使用最多的服务/端口

  • Top organizations (ISPs) – 使用最多的组织/ISP

  • Top operating systems – 使用最多的操作系统

  • Top products (Software name) – 使用最多的产品/软件名称

随后,在中间的主页面我们可以看到包含如下的搜索结果:

  • IP 地址

  • 主机名

  • ISP

  • 该条目的收录收录时间

  • 该主机位于的国家

  • Banner 信息

想要了解每个条目的具体信息,只需要点击每个条目下方的 details 按钮即可。此时,URL 会变成这种格式 https://www.shodan.io/host/[IP],所以我们也可以通过直接访问指定的 IP 来查看详细信息。

27-2.png

上图中我们可以从顶部在地图中看到主机的物理地址,从左侧了解到主机的相关信息,右侧则包含目标主机的端口列表及其详细信息。

使用搜索过滤

如果像前面单纯只使用关键字直接进行搜索,搜索结果可能不尽人意,那么此时我们就需要使用一些特定的命令对搜索结果进行过滤,常见用的过滤命令如下所示:

  • hostname:搜索指定的主机或域名,例如 hostname:"google"

  • port:搜索指定的端口或服务,例如 port:"21"

  • country:搜索指定的国家,例如 country:"CN"

  • city:搜索指定的城市,例如 city:"Hefei"

  • org:搜索指定的组织或公司,例如 org:"google"

  • isp:搜索指定的ISP供应商,例如 isp:"China Telecom"

  • product:搜索指定的操作系统/软件/平台,例如 product:"Apache httpd"

  • version:搜索指定的软件版本,例如 version:"1.6.2"

  • geo:搜索指定的地理位置,参数为经纬度,例如 geo:"31.8639, 117.2808"

  • before/after:搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:"11-11-15"

  • net:搜索指定的IP地址或子网,例如 net:"210.45.240.0/24"

搜索实例

查找位于合肥的 Apache 服务器:

apache city:"Hefei"

查找位于国内的 Nginx 服务器:

nginx country:"CN"

查找 GWS(Google Web Server) 服务器:

"Server: gws" hostname:"google"

查找指定网段的华为设备:

huawei net:"61.191.146.0/24"

如上通过在基本关键字后增加指定的过滤关键字,能快速的帮助发现我们感兴趣的内容。当然,还有更快速更有意思的方法,那就是点击 Shodan 搜索栏右侧的 “Explore” 按钮,就会得到很多别人分享的搜索语法,你问我别人分享的语法有什么好玩的?那咱们就随便来看看吧:

27-3.png

咱们随便选取一个名为“NetSureveillance Web”的用户分享语法,从下面的描述信息我们基本就能得知这就是一个弱密码的漏洞,为了方便测试让我们把语法在增加一个国家的过滤信息,最终语法如下:

Server: uc-httpd 1.0.0 200 OK Country:"CN"

27-4.png

现在让我们随便选取一个页面进去输入,使用admin账号和空密码就能顺利进入了:)

27-5.png

其他功能

Shodan 不仅可以查找网络设备,它还具有其他相当不错的功能。

Exploits:每次查询完后,点击页面上的 “Exploits” 按钮,Shodan 就会帮我们查找针对不同平台、不同类型可利用的 exploits。当然也可以通过直接访问网址来自行搜索:https://exploits.shodan.io/welcome

27-10.png

地图:每次查询完后,点击页面上的 “Maps” 按钮,Shodan 会将查询结果可视化的展示在地图当中;

27-12.png

报表:每次查询完后,点击页面上的 “Create Report” 按钮,Shodan 就会帮我们生成一份精美的报表,这是天天要写文档兄弟的一大好帮手啊;

27-11.png

命令行下使用 Shodan

Shodan 是由官方提供的 Python 库的,项目位于:https://github.com/achillean/shodan-python

安装

pip install shodan

或者

git clone https://github.com/achillean/shodan-python.git && cd shodan-python
python setup.py install

安装完后我们先看下帮助信息:

➜  ~ shodan -h
Usage: shodan [OPTIONS] COMMAND [ARGS]...
Options:
  -h, --help  Show this message and exit.
Commands:
  alert       Manage the network alerts for your account  # 管理账户的网络提示
  convert     Convert the given input data file into a...  # 转换输入文件
  count       Returns the number of results for a search  # 返回查询结果数量
  download    Download search results and save them in a...  # 下载查询结果到文件
  honeyscore  Check whether the IP is a honeypot or not.  # 检查 IP 是否为蜜罐
  host        View all available information for an IP...  # 显示一个 IP 所有可用的详细信息
  info        Shows general information about your account  # 显示账户的一般信息
  init        Initialize the Shodan command-line  # 初始化命令行
  myip        Print your external IP address  # 输出用户当前公网IP
  parse       Extract information out of compressed JSON...  # 解析提取压缩的JSON信息,即使用download下载的数据
  scan        Scan an IP/ netblock using Shodan.  # 使用 Shodan 扫描一个IP或者网段
  search      Search the Shodan database  # 查询 Shodan 数据库
  stats       Provide summary information about a search...  # 提供搜索结果的概要信息
  stream      Stream data in real-time.  # 实时显示流数据

常用示例

init

初始化命令行工具。

➜  ~ shodan init [API_Key]Successfully initialized

count

返回查询的结果数量。

➜  ~ shodan count microsoft iis 6.0575862

download

将搜索结果下载到一个文件中,文件中的每一行都是 JSON 格式存储的目标 banner 信息。默认情况下,该命令只会下载1000条结果,如果想下载更多结果需要增加 --limit 参数。

27-6.png

parse

我们可以使用 parse 来解析之前下载数据,它可以帮助我们过滤出自己感兴趣的内容,也可以用来将下载的数据格式从 JSON 转换成 CSV 等等其他格式,当然更可以用作传递给其他处理脚本的管道。例如,我们想将上面下载的数据以CSV格式输出IP地址、端口号和组织名称:

➜  ~ shodan parse --fields ip_str,port,org --separator , microsoft-data.json.gz

27-7.png

host

查看指定主机的相关信息,如地理位置信息,开放端口,甚至是否存在某些漏洞等信息。

27-8.png

search

直接将查询结果展示在命令行中,默认情况下只显示IP、端口号、主机名和HTTP数据。当然我们也可以通过使用 –fields 来自定义显示内容,例如,我们只显示IP、端口号、组织名称和主机名:

➜  ~ shodan search --fields ip_str,port,org,hostnames microsoft iis 6.0

27-9.png

代码中使用 Shodan 库

还是使用上一节讲到的 shodan 库,安装方式这里不在阐述了。同样的,在使用 shodan 库之前需要初始化连接 API,代码如下:

import shodan
SHODAN_API_KEY = "API_Key"api = shodan.Shodan(SHODAN_API_KEY)

随后,我们就可以搜索数据了,示例代码片如下:

try:    # 搜索 Shodan
    results = api.search('apache')    # 显示结果
    print 'Results found: %s' % results['total']    for result in results['matches']:            print result['ip_str']except shodan.APIError, e:    print 'Error: %s' % e

27-13.png

这里 Shodan.search() 会返回类似如下格式的 JSON 数据:

{        'total': 8669969,        'matches': [
                {                        'data': 'HTTP/1.0 200 OK\r\nDate: Mon, 08 Nov 2010 05:09:59 GMT\r\nSer...',                        'hostnames': ['pl4t1n.de'],                        'ip': 3579573318,                        'ip_str': '89.110.147.239',                        'os': 'FreeBSD 4.4',                        'port': 80,                        'timestamp': '2014-01-15T05:49:56.283713'
                },
                ...
        ]
}

常用 Shodan 库函数

  • shodan.Shodan(key) :初始化连接API

  • Shodan.count(query, facets=None):返回查询结果数量

  • Shodan.host(ip, history=False):返回一个IP的详细信息

  • Shodan.ports():返回Shodan可查询的端口号

  • Shodan.protocols():返回Shodan可查询的协议

  • Shodan.services():返回Shodan可查询的服务

  • Shodan.queries(page=1, sort='timestamp', order='desc'):查询其他用户分享的查询规则

  • Shodan.scan(ips, force=False):使用Shodan进行扫描,ips可以为字符或字典类型

  • Shodan.search(query, page=1, limit=None, offset=None, facets=None, minify=True):查询Shodan数据

至此,本文基本告于段落,买了 Shodan Membership 的各位朋友们可以好好的去 Happy 啦。


什么是 Shodan?

https://www.shodan.io/

首先,Shodan 是一个搜索引擎,但它与 Google 这种搜索网址的搜索引擎不同,Shodan 是用来搜索网络空间中在线设备的,你可以通过 Shodan 搜索指定的设备,或者搜索特定类型的设备,其中 Shodan 上最受欢迎的搜索内容是:webcam,linksys,cisco,netgear,SCADA等等。

那么 Shodan 是怎么工作的呢?Shodan 通过扫描全网设备并抓取解析各个设备返回的 banner 信息,通过了解这些信息 Shodan 就能得知网络中哪一种 Web 服务器是最受欢迎的,或是网络中到底存在多少可匿名登录的 FTP 服务器。

基本用法

这里就像是用 Google 一样,在主页的搜索框中输入想要搜索的内容即可,例如下面我搜索 “SSH”:

上图的搜索结果包含两个部分,左侧是大量的汇总数据包括:

  • Results map – 搜索结果展示地图

  • Top services (Ports) – 使用最多的服务/端口

  • Top organizations (ISPs) – 使用最多的组织/ISP

  • Top operating systems – 使用最多的操作系统

  • Top products (Software name) – 使用最多的产品/软件名称

随后,在中间的主页面我们可以看到包含如下的搜索结果:

  • IP 地址

  • 主机名

  • ISP

  • 该条目的收录收录时间

  • 该主机位于的国家

  • Banner 信息

想要了解每个条目的具体信息,只需要点击每个条目下方的 details 按钮即可。此时,URL 会变成这种格式 https://www.shodan.io/host/[IP],所以我们也可以通过直接访问指定的 IP 来查看详细信息。

上图中我们可以从顶部在地图中看到主机的物理地址,从左侧了解到主机的相关信息,右侧则包含目标主机的端口列表及其详细信息。

使用搜索过滤

如果像前面单纯只使用关键字直接进行搜索,搜索结果可能不尽人意,那么此时我们就需要使用一些特定的命令对搜索结果进行过滤,常见用的过滤命令如下所示:

  • hostname:搜索指定的主机或域名,例如 hostname:"google"

  • port:搜索指定的端口或服务,例如 port:"21"

  • country:搜索指定的国家,例如 country:"CN"

  • city:搜索指定的城市,例如 city:"Hefei"

  • org:搜索指定的组织或公司,例如 org:"google"

  • isp:搜索指定的ISP供应商,例如 isp:"China Telecom"

  • product:搜索指定的操作系统/软件/平台,例如 product:"Apache httpd"

  • version:搜索指定的软件版本,例如 version:"1.6.2"

  • geo:搜索指定的地理位置,参数为经纬度,例如 geo:"31.8639, 117.2808"

  • before/after:搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:"11-11-15"

  • net:搜索指定的IP地址或子网,例如 net:"210.45.240.0/24"

搜索实例

查找位于合肥的 Apache 服务器:

apache city:"Hefei"

查找位于国内的 Nginx 服务器:

nginx country:"CN"

查找 GWS(Google Web Server) 服务器:

"Server: gws" hostname:"google"

查找指定网段的华为设备:

huawei net:"61.191.146.0/24"

如上通过在基本关键字后增加指定的过滤关键字,能快速的帮助发现我们感兴趣的内容。当然,还有更快速更有意思的方法,那就是点击 Shodan 搜索栏右侧的 “Explore” 按钮,就会得到很多别人分享的搜索语法,你问我别人分享的语法有什么好玩的?那咱们就随便来看看吧:

咱们随便选取一个名为“NetSureveillance Web”的用户分享语法,从下面的描述信息我们基本就能得知这就是一个弱密码的漏洞,为了方便测试让我们把语法在增加一个国家的过滤信息,最终语法如下:

Server: uc-httpd 1.0.0 200 OK Country:"CN"

现在让我们随便选取一个页面进去输入,使用admin账号和空密码就能顺利进入了:)

其他功能

Shodan 不仅可以查找网络设备,它还具有其他相当不错的功能。

Exploits:每次查询完后,点击页面上的 “Exploits” 按钮,Shodan 就会帮我们查找针对不同平台、不同类型可利用的 exploits。当然也可以通过直接访问网址来自行搜索:https://exploits.shodan.io/welcome

地图:每次查询完后,点击页面上的 “Maps” 按钮,Shodan 会将查询结果可视化的展示在地图当中;

报表:每次查询完后,点击页面上的 “Create Report” 按钮,Shodan 就会帮我们生成一份精美的报表,这是天天要写文档兄弟的一大好帮手啊;

命令行下使用 Shodan

Shodan 是由官方提供的 Python 库的,项目位于:https://github.com/achillean/shodan-python

安装

pip install shodan

或者

 
  1. git clone https://github.com/achillean/shodan-python.git && cd shodan-python

  2. python setup.py install

安装完后我们先看下帮助信息:

 
  1. ➜ ~ shodan -h

  2. Usage: shodan [OPTIONS] COMMAND [ARGS]...

  3. Options:

  4. -h, --help Show this message and exit.

  5. Commands:

  6. alert Manage the network alerts for your account # 管理账户的网络提示

  7. convert Convert the given input data file into a... # 转换输入文件

  8. count Returns the number of results for a search # 返回查询结果数量

  9. download Download search results and save them in a... # 下载查询结果到文件

  10. honeyscore Check whether the IP is a honeypot or not. # 检查 IP 是否为蜜罐

  11. host View all available information for an IP... # 显示一个 IP 所有可用的详细信息

  12. info Shows general information about your account # 显示账户的一般信息

  13. init Initialize the Shodan command-line # 初始化命令行

  14. myip Print your external IP address # 输出用户当前公网IP

  15. parse Extract information out of compressed JSON... # 解析提取压缩的JSON信息,即使用download下载的数据

  16. scan Scan an IP/ netblock using Shodan. # 使用 Shodan 扫描一个IP或者网段

  17. search Search the Shodan database # 查询 Shodan 数据库

  18. stats Provide summary information about a search... # 提供搜索结果的概要信息

  19. stream Stream data in real-time. # 实时显示流数据

常用示例

init

初始化命令行工具。

 
  1. ➜ ~ shodan init [API_Key]

  2. Successfully initialized

count

返回查询的结果数量。

 
  1. ➜ ~ shodan count microsoft iis 6.0

  2. 575862

download

将搜索结果下载到一个文件中,文件中的每一行都是 JSON 格式存储的目标 banner 信息。默认情况下,该命令只会下载1000条结果,如果想下载更多结果需要增加--limit 参数。

parse

我们可以使用 parse 来解析之前下载数据,它可以帮助我们过滤出自己感兴趣的内容,也可以用来将下载的数据格式从 JSON 转换成 CSV 等等其他格式,当然更可以用作传递给其他处理脚本的管道。例如,我们想将上面下载的数据以CSV格式输出IP地址、端口号和组织名称:

➜  ~ shodan parse --fields ip_str,port,org --separator , microsoft-data.json.gz

host

查看指定主机的相关信息,如地理位置信息,开放端口,甚至是否存在某些漏洞等信息。

search

直接将查询结果展示在命令行中,默认情况下只显示IP、端口号、主机名和HTTP数据。当然我们也可以通过使用 –fields 来自定义显示内容,例如,我们只显示IP、端口号、组织名称和主机名:

➜  ~ shodan search --fields ip_str,port,org,hostnames microsoft iis 6.0

代码中使用 Shodan 库

还是使用上一节讲到的 shodan 库,安装方式这里不在阐述了。同样的,在使用shodan 库之前需要初始化连接 API,代码如下:

 
  1. import shodan

  2. SHODAN_API_KEY = "API_Key"

  3. api = shodan.Shodan(SHODAN_API_KEY)

随后,我们就可以搜索数据了,示例代码片如下:

 
  1. try:

  2. # 搜索 Shodan

  3. results = api.search('apache')

  4. # 显示结果

  5. print 'Results found: %s' % results['total']

  6. for result in results['matches']:

  7. print result['ip_str']

  8. except shodan.APIError, e:

  9. print 'Error: %s' % e

这里 Shodan.search() 会返回类似如下格式的 JSON 数据:

{
 
  1. 'total': 8669969,

  2. 'matches': [

  3. {

  4. 'data': 'HTTP/1.0 200 OK\r\nDate: Mon, 08 Nov 2010 05:09:59 GMT\r\nSer...',

  5. 'hostnames': ['pl4t1n.de'],

  6. 'ip': 3579573318,

  7. 'ip_str': '89.110.147.239',

  8. 'os': 'FreeBSD 4.4',

  9. 'port': 80,

  10. 'timestamp': '2014-01-15T05:49:56.283713'

  11. },

  12. ...

  13. ]

  14. }

常用 Shodan 库函数

  • shodan.Shodan(key) :初始化连接API

  • Shodan.count(query, facets=None):返回查询结果数量

  • Shodan.host(ip, history=False):返回一个IP的详细信息

  • Shodan.ports():返回Shodan可查询的端口号

  • Shodan.protocols():返回Shodan可查询的协议

  • Shodan.services():返回Shodan可查询的服务

  • Shodan.queries(page=1, sort='timestamp', order='desc'):查询其他用户分享的查询规则

  • Shodan.scan(ips, force=False):使用Shodan进行扫描,ips可以为字符或字典类型

  • Shodan.search(query, page=1, limit=None, offset=None, facets=None, minify=True):查询Shodan数据

至此,本文基本告于段落.


Shodan是个搜索引擎(网址:https://www.shodan.io/),不过,是个很特殊的搜索引擎,而且价格昂贵,不过,这是有办法解决的,当然,使用之前就得好好把握尺度了,如果你是想干什么坏事,那就此打住吧.

你首先需要申请一个福利账号.(从截图应该得知福利点在哪里了吧,我就不继续细说了,至于看不懂这个图上信息的,建议就此放弃,因为,自己购买套餐价格非常昂贵,大约2100软妹币一个月,当然,土豪除外.)

当你读到这里,说明你还是有兴趣知道这是什么玩意的.那么Shodan是怎么工作的呢?Shodan 通过扫描全网设备并抓取解析各个设备返回的各种信息,不管同意还是拒绝,都会被记录下来.我们通过这个引擎,可以找到很多感兴趣的东西,比如漏洞主机,CDN后端的服务器.

另外,当你准备使用Shodan的时候,你就准备着耐心点,要花上很多时间,才能达到目的,这是非常正常的,甚至是,花了很多时间,什么都没做到.

一开始先说说积分,就是关于钱的问题.

官方介绍三种积分:https://help.shodan.io/the-basics/credit-types-explained

我们通过特殊手段可以拿到这么多,不会累计到下一个月,理论上下一个月继续给积分.

  • Export credits : 100

  • Query credits : 200000

  • Scan credits : 65536

Export credits是通过Shodan官网下载数据时使用,一个积分可以到处1万数据,不够1万往上取整.

在线导出比较耗费他的服务器资源,所以送的分数也少,而且是异步导出,速度还稍微慢一些.

Query Credits是通过命令/API搜索时候花费的,每100个结果,就需要耗费1调query积分,不会往上取整,但是通常我们搜索以下,可能有很多结果的,那么我们看返回的数量来决定花费多少.

Scan Credits是最高级的东西,比如你想立马让Shodon扫描某个网络,每个IP就得耗费一个Scan Credits,当然,我们就算不主动扫,Shadon也是经常扫描全网设备,返回结果所需时间比较长.

使用搜索过滤

如果像前面单纯只使用关键字直接进行搜索,搜索结果可能不尽人意,那么此时我们就需要使用一些特定的命令对搜索结果进行过滤,常见用的过滤命令如下所示:

  • hostname:搜索指定的主机或域名,例如 hostname:"google"

  • port:搜索指定的端口或服务,例如 port:"21"

  • country:搜索指定的国家,例如 country:"CN"

  • city:搜索指定的城市,例如 city:"Hefei"

  • org:搜索指定的组织或公司,例如 org:"google"

  • isp:搜索指定的ISP供应商,例如 isp:"China Telecom"

  • product:搜索指定的操作系统/软件/平台,例如 product:"Apache httpd"

  • version:搜索指定的软件版本,例如 version:"1.6.2"

  • geo:搜索指定的地理位置,参数为经纬度,例如 geo:"31.8639, 117.2808"

  • before/after:搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:"11-11-15"

  • net:搜索指定的IP地址或子网,例如 net:"210.45.240.0/24"

搜索实例

找一些SOCKS代理:

product:socks

查找位于合肥的 Apache 服务器:

apache city:"Hefei"

查找位于国内的 Nginx 服务器:

nginx country:"CN"

查找 GWS(Google Web Server) 服务器:

"Server: gws" hostname:"google"

查找指定网段的华为设备:

huawei net:"61.191.146.0/24"

另外,作为特殊福利账号,还可以搜索vuln:

福利账号还可以点击Map,进入分布图.红点位置,则是较多设备所在的位置.

一般情况下,会和命令行配合使用,然后导出结果给脚本用.

安装起来非常方便哈.(当然你也可以用pip,不过Python 2马上EOL了.)

pip3 install shodan

然后初始化一下.

shodan init [API_Key]

获取到在中国的Apache和Lightpd数量,后者真是少啊.

root@debian:~# shodan count apache country:"CN"1887729root@debian:~# shodan count lighttpd country:"CN"78000root@debian:~# shodan count lighttpd country:"CN" port:809033

我们可以下载所有lighttpd并且开放了80端口的数据,这里超过1000条,需要指定limit参数,下载其实就是循环查询,如果觉得烦的话网页导出也是可以的,只是成本更高一些.

实测导出上述的9000条数据大概10分钟.

root@debian:~# shodan download --limit 9000 lighttpd lighttpd country:"CN" port:80Search query:			country:CN port:80Total number of results:	9033Query credits left:		199760Output file:			lighttpd.json.gz  [###################################-]   99%  00:00:00Saved 9000 results into file lighttpd.json.gz

root@debian:~#

然后用解释命令解释成数据.(省略部分)

root@debian:~# shodan parse --fields ip_str,port,org --separator , lighttpd.json.gz 

125.76.225.166,80,China Telecom (Group)115.231.50.251,80,China Telecom Ningbo124.227.187.236,80,AnQing124.225.165.63,80,China Telecom Hainan61.191.49.181,80,China Telecom Anhui42.4.16.252,80,UNICOM Liaoning211.152.136.73,80,Tencent cloud computing122.138.91.64,80,China Unicom Jilin39.96.132.24,80,Hangzhou Alibaba Advertising Co.,Ltd.202.142.28.163,80,CNISP-Union Technology (Beijing) Co.59.37.133.180,80,China Telecom Guangdong39.96.223.193,80,Hangzhou Alibaba Advertising Co.,Ltd.198.1.166.122,80,YangsheNin39.96.188.210,80,Hangzhou Alibaba Advertising Co.,Ltd.182.61.181.83,80,Beijing Baidu Netcom Science and Technology Co.61.155.209.232,80,China Telecom jiangsu province backbone112.126.232.236,80,Hangzhou Alibaba Advertising Co.,Ltd.106.12.32.226,80,Beijing Baidu Netcom Science and Technology Co.113.247.232.74,80,China Telecom Hunan106.14.65.125,80,Hangzhou Alibaba Advertising Co.,Ltd

当然你也可以把上述归类成单一的search命令,但是如果你进行第二次搜索,将花费更多的资源.

另外一个功能叫立即扫描,要花Scan Credits的,而且Shodan其实只扫描常见的三四百个端口,异步结果.(目标可以是CIDR格式分割.)

shodan scan submit 52.160.131.0/24

然后会立即提交,如果返回No open ports found or the host has been recently crawled and cant get scanned again so soon.则代表扫描已经开始,你就等吧.

使用下面命令返回扫描状态.

shodan scan list

必须记得这些ID,我们等下可以用来下载结果的,这是最新鲜结果哦.(只有DONE可以被下载)

root@debian:~# shodan download --limit -1 scan-results.json.gz scan:xYu0J55y7v1H38pR 



Search query:			scan:xYu0J55y7v1H38pRTotal number of results:	1Query credits left:		199670Output file:			scan-results.json.gz  [####################################]  100%Saved 1 results into file scan-results.json.gz

root@debian:~#

之前说到,Shodan默认只扫描常见端口,我们可以扫描特定端口,而且可以扫描整个互联网特定端口.比如,我要找6022端口的SSH服务.

shodan scan internet 6022 ssh

不过呢,由于福利版本是不能这么干的,所以,也没实测过,估计要到结果也非常久了.

最后啊,还请大家合法利用哈.


福利API Key:

PB2X9cub5LhLxOIdsomKVqtlxjSIdi3Y