インターネットに晒されている機器を調べるサイト【SHODAN】


SHODANという検索エンジンがある。

一時期はIoT検索エンジンとか言われていたが、ネット上に晒されている機器を検索することができるサービスである。

https://www.shodan.io/

アクセスすると、検索ウィンドウがあると思うので、IPアドレスやポート番号等のキーワードを入れて検索する。

※注:罠の可能性もあるので、脆弱っぽい機器を見つけたとしても安易にアクセスしないでください。

【インターネット直結のプリンタでパスワード設定が無い機器を調べるときの例】
printer password is not set

【日本国内でtelnetがオープンになっているインターネット機器を調べるときの例】
country:"JP" port:23

【日本国内のAnonymous FTPを調べるときの例】
country:"JP" Anonymous FTP

【日本国内でインターネットにポート445がオープンになっているWindows PC(Windowsサーバは除外)を調べるときの例】
port:445 country:"JP" OS:"Windows" country:"JP" !OS:"Server"

【既知の脆弱性(例:CVE-2019-0708)を持つデバイスを検索するときの例】
vuln:CVE-2019-0708
            ※フリーアカウントでは不可。

Onion Address(v2/v3)を検索するときの例
"Onion-Location"

【参考】
日本国内で接続されている IoT 機器数(IPA)
https://www.ipa.go.jp/security/iot/20170417.html

増加するインターネット接続機器の不適切な情報公開とその対策(IPA)
https://www.ipa.go.jp/files/000052712.pdf

Exchange Serverの脆弱性まとめとSHODANでの観測状況(マクニカネットワークス)
https://blog.macnica.net/blog/2020/06/exchangeserver-shodan.html

OSINT 用検索エンジンあれこれ
https://ninoseki.github.io/2018/12/03/osint-search-engine.html

-2020/7/11追記-
【ダークウェブのIPアドレス調査の例】

-2020/8/26追記-

【特定のドメイン(証明書のコモンネーム)を調べる場合の例】

-2020/9/1追記-
【IPで検索する場合の例】
net:115.165.122.0/24

-2021/3/16追記-
【検索フィルタ一覧】
filterdesc.
asnThe Autonomous System Number that identifies the network the device is on.
beforeOnly show results that were collected before the given date (dd/mm/yyyy.
cityShow results that are located in the given city.
countryShow results that are located within the given country.
geoThere are 2 modes to the geo filter: radius and bounding box. ex: geo:50,50,100. or geo:10,10,50,50.
hashHash of the "data" property
has_ipv6If "true" only show results that were discovered on IPv6.
has_screenshotIf "true" only show results that have a screenshot available.
hostnameSearch for hosts that contain the given value in their hostname.
ispFind devices based on the upstream owner of the IP netblock.
linkFind devices depending on their connection to the Internet.
netSearch by netblock using CIDR notation; ex: net:69.84.207.0/24
orgFind devices based on the owner of the IP netblock.
osFilter results based on the operating system of the device.
portFind devices based on the services/ ports that are publicly exposed on the Internet.
postalSearch by postal code.
productFilter using the name of the software/ product; ex: product:Apache
stateSearch for devices based on the state/ region they are located in.
versionFilter the results to include only products of the given version; ex: product:apache version:1.3.37
bitcoin.ipFind Bitcoin servers that had the given IP in their list of peers.
bitcoin.ip_countFind Bitcoin servers that return the given number of IPs in the list of peers.
bitcoin.portFind Bitcoin servers that had IPs with the given port in their list of peers.
bitcoin.versionFilter results based on the Bitcoin protocol version.
http.componentName of web technology used on the website
http.component_categoryCategory of web components used on the website
http.htmlSearch the HTML of the website for the given value.
http.html_hashHash of the website HTML
http.statusResponse status code
http.titleSearch the title of the website
ntp.ipFind NTP servers that had the given IP in their monlist.
ntp.ip_countFind NTP servers that return the given number of IPs in the initial monlist response.
ntp.moreWhether or not more IPs were available for the given NTP server.
ntp.portFind NTP servers that had IPs with the given port in their monlist.
sslSearch all SSL data
ssl.alpnApplication layer protocols such as HTTP/2 ("h2")
ssl.chain_countNumber of certificates in the chain
ssl.versionPossible values: SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2
ssl.cert.algCertificate algorithm
ssl.cert.expiredWhether the SSL certificate is expired or not; True/ False
ssl.cert.extensionNames of extensions in the certificate
ssl.cert.serialSerial number as an integer or hexadecimal string
ssl.cert.pubkey.bitsNumber of bits in the public key
ssl.cert.pubkey.typePublic key type
ssl.cipher.versionSSL version of the preferred cipher
ssl.cipher.bitsNumber of bits in the preferred cipher
ssl.cipher.nameName of the preferred cipher
telnet.optionSearch all the options
telnet.doThe server requests the client to support these options
telnet.dontThe server requests the client to not support these options
telnet.willThe server supports these options
telnet.wontThe server doesnt support these options