完美指南至Shodan(Shodan官方参考资料)
首先
以下是Shodan参考资料的摘译。
我们将努力做到总结得恰到好处。
(参考资料的最新更新为2016年12月26日)
引进
Shodan是一款针对连接到互联网的设备的搜索引擎。
Shodan返回的数据
Shodan返回的搜索结果以横幅信息为单位,如果一个IP拥有多个服务,则它们将被分别处理为不同的搜索结果。
除了横幅信息外,还显示位置信息、主机名、操作系统等元数据。详细信息请参见附录A。
还支持IPv6。
SSL (Secure Sockets Layer) refers to a protocol that provides secure communication over the internet.
SSLは重要なので、SSLが利用可能なサービスについてはSSL証明以外の情報も含めて収集しています。
あるサービスが、Heartbleed、FREAK、Lgojamのような脆弱性の影響を受けるかどうかも判ります。影響を受ける場合、opts.vulnの値が”CVE-2014-0160″のようになり、受けない場合”!CVE-2014-0160″のようになります。
クローラーはSSLv2、SSLv3、TLSv1.0、TLSv1.1、TLSv1.2で接続を試行し、対応しているバージョンを特定します。非対応のバージョンには”-“記号が付きます。
ssl.chainプロパティには証明チェーンの情報が含まれます。
数据收集
クローラーは常時情報を収集しており、地理的な偏りを避けるためにアメリカ、中国、アイスランド、フランス、台湾、ベトナム、ルーマニア、チェコに分散しています。
ある時点の偏りを避けるためにクローラーは以下のアルゴリズムに従って情報を収集します。
-
- 無作為なIPv4アドレスを生成
-
- リストの中から無作為にポート番号を選択
-
- バナー情報を収集
- 1に戻る
网络界面
您可以从互联网上使用Shodan进行信息搜索。
搜寻查询
如果不使用后续的筛选功能,查询将针对横幅信息进行搜索,不会参考元数据。通过在搜索词之间使用空格进行分隔,将被视为AND搜索。
可以使用筛选功能来搜索元数据。
过滤功能
可以使用以下方法搜索元数据。
过滤器名称:值 ※冒号后面不需要空格
包含空格的字符串,可以像”San Diego”一样进行搜索。有些过滤器可以接受多个值,以逗号分隔,例如port: 23,1023。
如果想要从搜索结果中排除某个条件,可以使用-city:”San Diego”的方式。
以下是常用过滤器的示例:
city都市
country国
net指定されたIP範囲、CIDR記法net: 190.30.40.0/orgIPを所有する組織org:” Verizon Wireless”
请参考附录B查看所有的过滤器。
Shodan搜索引擎
Shodan搜索可在https://www.shodan.io上进行。
默认情况下,搜索范围限定为过去30天收集的数据。
可以通过JSON、CSV、XML格式下载搜索结果。
JSON中包含Shodan收集的所有信息,包括元数据。CSV只包含基本信息。不推荐使用XML。
下载搜索结果需要消耗购买的积分。
可以免费创建包含表格和图形概述的报告。这个报告是当时的快照,即使有新信息加入也不会更改。可以定期创建报告,并在以后查看。
可以与其他用户共享查询。请注意不要共享不希望公开的查询。
Shodan地图
最大1,000件の検索結果を地図に表示することができます。全ての検索フィルタは地図上で利用可能です。
Shodan Exploits
Shodan Exploitsでは脆弱性を検索できます。脆弱性情報はCVE、Exploit DB、Metasploit元にしています。
Shodanとは異なり、デフォルトでメタデータも対象にした検索を行います。
下記フィルタが利用可能です。
Shodan 图像
Shodan Images允许您浏览Shodan收集的屏幕截图。
屏幕截图分为以下4种模式进行收集。
-
- VNC
-
- RTSP
-
- Webcam
- X Windows
それぞれのポートからスクリーンショットを収集しているため、例えばWebcamの情報を見たい場合HTTPで、VNCならauthentication disabledで、RTSPならそのままRTSPで検索してください。
スクリーンショットはメインのShodan検索でhas_screenshot:trueフィルタを用いて検索することもできます。
练习问题:网站
省略
外部工具
Shodan命令行界面
Shodanコマンドラインインターフェース(CLI)はShodanのためのPythonライブラリです。
easy_install shodanでインストール
shodan init YOUR_API_KEYで初期化
警报
使用API创建的警报,列出,清除和删除命令。
convert
将由Shodan创建的JSON格式数据转换为各种格式的命令。
count
検索結果のレコード数を返すコマンド
例:shodan count microsoft iis
下载
返回JSON格式的搜索结果命令,默认为1,000个条目,如果需要更多,请使用–limit标志。
host
ホストの位置情報、開放しているポート、IPを保有している組織などの情報を取得するコマンド
例:shodan host 189.201.128.250
信息
获取API账户信息,如信用余额等,请使用以下命令:
例:shodan info
我的IP地址
返回自己的IP地址的命令
例如:shodan myip
parse
downloadコマンドでダウンロードしたファイルをパースし、必要な情報をフィルタリングするコマンド
下の例は以前ダウンロードしたMicrosoft-IISのデータからIP、ポート、組織を抽出してCSV形式で出力するコマンド。
例:shodan parse –fields ip_str,posr,org –separator ,microsoft-data.json.gz
scan
使用Shodan进行网络扫描的命令
示例:shodan scan submit 202.69.165.20
搜索
执行Shodan搜索并显示结果的命令
例如:shodan搜索 — fields ip_str,port,org,hostnames microsoft iis 6.0
统计数据
フィルタ条件について上位10の値とレコード数を表示するコマンド
例:shodan stats –facets country apache
直播
Shodan搜集器实时返回信息的命令。有多个选项,但主要是-datadir和-limit。
-datadir用于指定存储流数据的目录。
例如:shodan流–datadir /var/lib/shodan/
-limit用于指定要下载的记录数量。
例如:shodan流–limit 100
-ports用逗号分隔指定收集目标端口。
例如:shodan流–ports 80,8080
Maltego附件
Maltegoはオープンソースの情報分析アプリケーションです。様々な情報の関連を可視化することができます。
ShodanのMaltegoアドオンには2つのエンティティ(ServiceとExploit)と5つのトランスフォームがあります。
-
- searchShodan
-
- searchShodanByDomain
-
- searchShodanByNetblock
-
- toShodanHost
- searchExploits
ブラウザプラグイン
Chrome和Firefox提供了插件。
練習問題
省略可以简化或排除一些内容,使得表达更简洁明了。
API专门针对开发人员
Shodanは開発者向けにAPI(https://developer.shodan.io/api )を提供しています。
APIはREST APIとStreaming APIに分かれています。
REST APIはShodan検索、ホストの検索、サマリ情報取得および様々なユティリティメソッドを提供します。
Streaming APIはShodanが収集しているリアルタイムの生データを提供します。ストリーミングデータにはいくつかの購読可能なフィードがありますが、検索はできません。
限制使用
根据计划,API受到限制的模式有三种。
1. 搜索信用限制/月
2. 按需扫描信用限制/月
3. 根据API计划限制的网络警报IP数量
搜索信用和扫描信用每月重置一次。
ファセット
facet功能提供了横幅信息特定字段的facet信息。
请参考附录C查看可用的facet。
开始运用
这里展示的例子是Python代码,但也可以在其他语言中使用。
要安装Shodan库,请执行以下命令:
easy_install shodan
如果已经安装了并想要更新,可以使用以下命令:
easy_install -U shodan
初始化
まずはShodanオブジェクトを初期化する必要があります。
import shodan
api = shodan.Shodan(‘YOUR API KEY’)
搜索
首先使用api对象调用Shodan.search()函数。
结果 = api.search(‘apache’)
以下省略
Hostの検索
shodan.host()関数を使って特定のIPで利用可能なShodanのデータを見ることができます。
host = api.host(‘217.140.75.46’)
以下省略
スキャン
Shodanは少なくとも月1回インターネットをクロールしますが、すぐにクロールさせたい場合オンデマンドでクロールさせることができます。
scan = api.scan(‘198.20.69.0/24’)
实时流
Streaming API是一个基于HTTP的服务,可以实时返回Shodan收集的信息。以下内容省略。
网络警报
网络警报是Shodan实时提供的数据源。网络警报可以通过两个步骤来执行。
创建网络警报:
alert = api.create_alert(‘生产网络’, ‘198.20.69.0/24’)
订阅
省略以下内容
例:公共MongoDB的信息。
略去
工业控制系统(简称ICS)
产业控制系统是用来控制办公室的空调、发电厂的涡轮、剧场的电灯、工厂的机器人等的系统。
缩略语
知道ICS相关的缩写会很方便。
协议
在互联网上搜索ICS有两种方法。
一种是使用非ICS协议的ICS环境。Shodan包含的大部分ICS信息是通过收集来自Web服务器和其他常见协议的信息而得到的,这些信息与ICS直接无关,但在ICS网络中可以确认到。例如,在HMI上运行的Web服务器或在连接到ICS时执行非经过身份验证的远程桌面的Windows机器。
另一种方法是使用ICS协议。这是控制系统使用的原始协议。除了特定的标语外,它们都是无需身份验证的共同特点。
连接到互联网的ICS安全性
如果您发现有危险的控制系统,请向ICS-CERT报告。大多数ICS横幅不包含位置信息和所有者信息,因此很难保持安全,可能会在互联网上暴露多年。
用例 lì)
アメリカのICSにアクセスしてみましょう。
以下のクエリはインターネット上でICSプロトコルを実行している機器を返します。
https:// www.shodan.io/ search? query = category% 3Aics +-http +-html +-ssh +-ident + country% 3Aus
以下省略
附录A:横幅信息的规格
普通的属性 de
optsメインのバナー情報に含まれない補足情報
orgIPを保有する組織Google Inc.ispIPを管理するISPVerison WirelessosOSLinuxuptimeアップタイム(分)50transportバナー情報収集に使用したプロトコル(udp/tcp)tcp
HTTP(S)属性
位置情報のプロパティ
以下是location属性的子属性。
SSL 属性
如果服务使用了SSL,Shodan将收集以下属性的信息。
特殊的属性 de
_shodan属性中包含了信息的收集方式。
(Translated back to English: The _shodan property includes information on how the information was collected.)
例如
略去
附录 B:搜索过滤器列表
一般的的过滤器
NTP过滤器
SSL过滤器
远程登录过滤器
附录C:搜索过滤
说明与搜索过滤器相同,因此省略。
普通的切削面
city
country
domain
as_screenshot
isp
link
org
os
port
postal
product
region
state
uptime
version
vuln
NTP面板
ntp.ip_count
ntp.more
ntp.port
SSH连接参数
ssh.fingerprint機器のフィンガープリントssh.macMACアルゴリズムの名称ssh.type認証キーのタイプ
SSL面板
ssl.alpn
ssl.chain_count
ssl.cert.alg
ssl.cert.expired
ssl.cert.serial
ssl.cert.extension
ssl.cert.pubkey.bits
ssl.cert.pubkey
ssl.cipher.bits
ssl.cipher.name
ssl.cipher.version
通过Telnet连接
telnet.do
telnet.dont
telnet.will
te.net.wont
附件 D: 端口清单
附录E: SSL横幅样本
简化
练习问题的答案
省略