Censysで調べる時のコツ
censysっていうタグ作ったのにcensys(1)(´;ω;`)
というのは置いておいてcensysとは?前回のを参照
censysは「field:value」の形式で調べることができる.
前回は「80.http.get.title:Start AND 80.http.get.status_code:200 AND japan」で調べましたね.
実は使えるタグの一覧がある.
ここからData Definitionsへ
こんな感じで多くある.
IoTを探せ!!
metaデータで取得できる値に「metadata.device_type」や「metadata.os_version」がある.
Raspberry Piの場合
metadata.os:Raspbian
でラズパイが検索できる.ただし,Apacheなどの設定によりシグネチャなどを隠している場合,これでは検索できず「metadata.os:Linux」となる.
プリンター他
プリンター
metadata.device_type:printer
NAS
metadata.device_type: NAS
metadata.product: NAS
ルーター
metadata.device_type: router
カメラ
metadata.device_type: camera
テレビ(失敗)
metadata.device_type: Television
etc...
metadata.device_type:の可能性が無限大!
コントロールシステムなどで検索すると...
metadata.device_type: industrial control system
metadata.device_type: control system
metadata.device_type: control panel
APIを使うとき
前回はプログラムが適当だったので少し解説
インストールしてないひとは何も考えずに
sudo pip install censys
version 0.0.6になったっぽい(2016/9/4)
なので過去に入れた方は
sudo pip install censys --upgrade
APIの取得
censysここからアカウントを作成できる.
適宜必要な情報を入力して登録
次にトップページから「Login」を選び先ほどの入力した名前とパスワードを入れログインする.
アカウントから「API ID」と「Secret」をメモる.
これで準備は完了.
検索
import censys
from censys import *
UID = ""#適宜
SECRET = ""#適宜
#検索方法はいろいろあるみたい
#ipv4
api = censys.ipv4.CensysIPv4(api_id=UID, api_secret=SECRET)
#api.search(query, fields, page, max_records)
#metadata.device_type:camera AND location.country: Japan
#fields=["field1", "field2", ...]
#fieldsの一覧はhttps://www.censys.io/ipv4/helpここを参照
#何も指定がない場合IPとプロトコルのみ返ってくる
#max_records=任意 指定がないとAPI Limitの限界まで結果を返す
#websites
api = censys.websites.CensysWebsites(api_id=UID, api_secret=SECRET)
#api.search(query, fields, page, max_records)
#alexa_rank: [1 TO 100]アレクサのランキング1位から100位を返す
#Qiitaのアレクサの順位は1850(2016/09/08 05:57)
#Certificates
api = censys.certificates.CensysCertificates(api_id=UID, api_secret=SECRET)
#api.search(query, fields, page, max_records)
#証明書関係?で検索出来るっぽい
#qiita.com and current_valid_nss: true
#SQLでも検索出来るらしい
api = censys.query.CensysQuery(api_id=UID, api_secret=SECRET)
res = api.new_job("SELECT location.country, count(ip) FROM ipv4.20151020 GROUP BY location.country;")
#一般アカウントは403 (unauthorized): Unauthorized. You do not have access to this service.と返るはず
SQL access is restricted to verified researchers and academic accounts
とあるように,SQLを使えるのは承認された研究者や学術関係者のみ.
間違いがありませんように