1

これらの SHODAN ドキュメントを見ると、スクリプトを実行したときに最初のポートの詳細しか返されない理由がよくわかりません。Web インターフェイスを見ると、一部のデバイスで複数のポート/サービスが検出されていることがわかります...

http://shodan.readthedocs.io/en/latest/tutorial.html#connect-to-the-api

#!/usr/bin/python 
import shodan
SHODAN_API_KEY = "xxxxxxx"
api = shodan.Shodan(SHODAN_API_KEY)

try:
results = api.search('ics country:"US"')
for item in results['matches']:
    print """
Port: %s
Banner: %s
""" % (item['port'], item['data'])

except shodan.APIError, e:
    print 'Error: %s' % e
4

1 に答える 1

1

スクリプトはメインの Shodan データベースを検索して、文字列「ics」を含むサービス バナーと、米国内のデバイスの場所を検索します。ただし、検索結果はバナーです。つまり、サービス - ホストではありません! また、サービス バナーには 1 つのポートしか関連付けることができないため、表示されているのはそれだけです。ただし、ホストは複数のサービスを実行でき、多くの開いているポートを持つことができます。ホストが持っているポート/サービスの完全なリストを取得したい場合は、「api.host()」メソッドを使用する必要があります。

host = api.host('8.8.8.8')

これにより、特定の IP がインターネット上で公開されているすべてのポート/サービスのリストが返されます。

また、バナーで「ics」を検索することは、産業用制御システムを検索することと同じではないことに注意してください。次のような検索フィルターを使用する必要があります。

category:ics

クロールされるさまざまな ICS プロトコルとそれらを検索する方法を概説する Shodan に関するセクションがあります。

https://www.shodan.io/explore/category/industrial-control-systems

于 2016-05-12T05:34:46.297 に答える