Shodan Web端非常好用,但如果我們有從 Python 搜索的需求怎么辦?
沒關(guān)系,Shodan 官方也提供了 Python SDK 包,下面就來講講這個 SDK 包的使用。
1.準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。
(可選1) 如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝 Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了 Python 和 pip .
(可選2) 此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。
請選擇以下任一種方式輸入命令安裝依賴 :
- Windows 環(huán)境 打開 Cmd (開始-運(yùn)行-CMD)。
- MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
- 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install shodan
2.注冊賬號獲取API
使用 Shodan 必須注冊賬號,注冊網(wǎng)址:https://account.shodan.io/register
輸入完相關(guān)信息,點(diǎn)擊 CREATE 會跳轉(zhuǎn)到個人賬戶頁:
此時 API Key 會顯示你的API秘鑰,請記錄這個秘鑰,后續(xù)會使用到這個秘鑰去請求接口。
3.Shodan 基本調(diào)用
Shodan 本質(zhì)上就是一個搜索引擎,你只需要輸入搜索的關(guān)鍵詞:
# 公眾號:Python 實用寶典
# 2021-05-04
from shodan import Shodan
api = Shodan('你的API KEY')
def search_shodan(keyword):
# 調(diào)用搜索接口
result = api.search(keyword)
# 顯示所有IP
for service in result['matches']:
print(service['ip_str'])
search_shodan("Hikvision-Webs")
結(jié)果如下:
可惜的是,普通API只能像這樣搜索關(guān)鍵字,無法使用過濾條件如:** Hikvision-Webs country:"US"
**搜索美國境內(nèi)的所有 Hikvision 網(wǎng)站管理端。
如果你想要使用過濾條件,Shodan 需要你升級API權(quán)限:
挺貴的,不過還好是一次性支付,永久使用。
4. Shodan 高級使用
Shodan 的用處當(dāng)然不僅僅是在黑客攻防中,它還能用于統(tǒng)計。如果你想要了解哪些國家的使用這款攝像頭的數(shù)量最多,可以使用 Facets 特性。
# 公眾號:Python 實用寶典
# 2021-05-04
from shodan import Shodan
api = Shodan('你的API KEY')
def try_facets(query):
FACETS = [
'org',
'domain',
'port',
'asn',
('country', 3),
]
FACET_TITLES = {
'org': 'Top 5 Organizations',
'domain': 'Top 5 Domains',
'port': 'Top 5 Ports',
'asn': 'Top 5 Autonomous Systems',
'country': 'Top 3 Countries',
}
try:
# 使用 count() 方法可以不需要升級API,且比 search 方法更快。
result = api.count(query, facets=FACETS)
print('Shodan Summary Information')
print('Query: %s' % query)
print('Total Results: %sn' % result['total'])
# 顯示每個要素的摘要
for facet in result['facets']:
print(FACET_TITLES[facet])
for term in result['facets'][facet]:
print('%s: %s' % (term['value'], term['count']))
except Exception as e:
print('Error: %s' % e)
try_facets("Hikvision-Webs")
得到結(jié)果如下:
從 Top 3 Countries 中可以看到,這款攝像頭使用數(shù)量排名前三的國家分別是:美國、日本和德國。
沒想到吧,Shodan 居然還能用于產(chǎn)品分析。同樣地原理,如果你把關(guān)鍵詞改為 ** apache
** ,你可以知道目前哪些國家使用apache服務(wù)器數(shù)量最多,最普遍被使用的版本號是什么。
簡而言之,Shodan 是一個非常強(qiáng)大的搜索引擎,它在好人手里,能被發(fā)揮出巨大的潛能。如果 Shodan 落入壞人之手的話,那真是一個可怕的東西。
為了避免受到不必要的攻擊,請大家及時檢查所有聯(lián)網(wǎng)設(shè)備的管理端的密碼,如果有使用默認(rèn)密碼及弱口令,立即進(jìn)行密碼的更改,以保證服務(wù)的安全。
-
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31302 -
數(shù)據(jù)分析
+關(guān)注
關(guān)注
2文章
1461瀏覽量
34182 -
python
+關(guān)注
關(guān)注
56文章
4809瀏覽量
85069 -
SDK
+關(guān)注
關(guān)注
3文章
1045瀏覽量
46308
發(fā)布評論請先 登錄
相關(guān)推薦
【Raspberry Pi 3試用體驗】+ 發(fā)微博
【Rico Board試用體驗】Amazon Iot物聯(lián)網(wǎng)終端之廿五 采用AmazonIoT SDK for Python 下載和安裝
TensorFlow常用Python擴(kuò)展包
什么是python包、模塊和庫?
python常規(guī)包與命名空間包
Python的兩個基礎(chǔ)包numpy和Matplotlib示例詳解
基于Python的scikit-learn包實現(xiàn)機(jī)器學(xué)習(xí)
![基于<b class='flag-5'>Python</b>的scikit-learn<b class='flag-5'>包</b>實現(xiàn)機(jī)器學(xué)習(xí)](https://file.elecfans.com/web1/M00/E6/D5/o4YBAGBdPEmAQNpqAAA09xWwAJY820.jpg)
在Anaconda中安裝python包seaborn
![在Anaconda中安裝<b class='flag-5'>python</b><b class='flag-5'>包</b>seaborn](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
詳解python常規(guī)包與命名空間包
ROC RK3566 PC Linux SDK源碼包
![ROC RK3566 PC Linux <b class='flag-5'>SDK</b>源碼<b class='flag-5'>包</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AIO 3568J Linux SDK源碼包
![AIO 3568J Linux <b class='flag-5'>SDK</b>源碼<b class='flag-5'>包</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
簡述python包模塊import和from及all
OneCore存儲軟件開發(fā)工具包(SDK)
![OneCore存儲軟件開發(fā)工具<b class='flag-5'>包</b>(<b class='flag-5'>SDK</b>)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論