參考:
Shodan新手入坑指南 http://www.freebuf.com/sectool/121339.html
shodan手冊 http://b404.xyz/2018/02/08/Shodan-Manual/
web界面
banner
Shodan 通過掃描全網設備並抓取解析各個設備返回的 banner 信息。
banner其實就是這個:
HTTP/1.1 200 OK |
|
除了獲取banner,Shodan還可以獲取相關設備的元數據,例如地理位置、主機名、操作系統等信息
搜索
~從網站的探索界面爲例,搜索攝像頭:
一個標準的搜索結果:
點下面details可以看到細節數據
點開IP可以進入攝像頭的認證界面
到了這一步可以用各種方式攻擊了(漏洞發掘,窮舉等)
搜索過濾器
過濾器的格式是 filtername : value
排除結果:在過濾器前加-,例如-hash:0
~搜索合肥的apache服務器:
apache city:"Hefei"
~搜索美國 的服務器在8080端口上運行8.0版本IIS服務的服務器:
port:8080 product:"Microsoft-IIS" country:"US" version:"8.0"
~搜索可能受到DOUBLEPULSAR攻擊的機器:
port:445 "SMB Version: 1" os:Windows !product:Samba
利用favicon搜索
使用每個網頁的收藏夾圖標來搜索同樣圖標的網頁。
具體看參考:
http://b404.xyz/2018/02/08/Shodan-Manual/#%E5%9B%BE%E6%A0%87%E6%90%9C%E7%B4%A2
下載數據
在結果界面點擊downlaod data,可以選擇下載csv, json, xml格式的結果。
Exploit
每次用完之後,Exploits:每次查詢完後,點擊頁面上的 “Exploits” 按鈕,就能看到可以利用的漏洞。
報表
每次查詢完後,點擊頁面上的 “Create Report” 按鈕,Shodan 就會幫我們生成一份報表。
這個報表不能立刻生成,而是通過電子郵件發送。不過用不了幾分鐘。
~之前webcam生成的報表:https://www.shodan.io/report/FTi5loCb
命令行shodan
shodan是使用python編寫的,clone的地址https://github.com/achillean/shodan-python
或者使用pip安裝pip install shodan
Count
返回搜索的結果數(只有一個數字)
Download
下載搜索結果。
默認下載1000條json結果,要換格式或者結果數目通過參數調整。
Host
查看有關主機的信息,例如它位於何處,哪些端口是開放的以及哪個組織擁有其IP。
parse命令
使用parse來分析使用導出的搜索結果。它可以讓過濾出感興趣的字段,也可以將JSON轉換爲CSV。這樣,對於導入到其他腳本比較友好。
~輸出之前下載的Microsoft-IIS數據,並且將JSON文件轉換爲的CSV格式的文件。其中包括IP地址,端口和歸屬組織:
shodan parse --fields ip_str,port,org --separator , microsoft-data.json.gz
scan命令
scan命令提供了一些子命令。最重要的一個是submit命令,這個命令可以使用shodan執行網絡掃描。
shodan scan submit 198.20.99.0/24
默認情況下,它將顯示IP,端口,主機名和數據。可以使用--fields來打印感興趣的任何banner字段。
例子
官方例子
官方例子
網絡分析例子
Shodan最常見的使用案例是使用它來更好地瞭解公共網絡範圍內的運行情況。
~查看78.13.0.0/16段在網上暴露了多少服務。
shodan count net:78.13/16
count命令提供了關於78.13.0.0/16段暴露了4960個服務
~統計出該網段暴露的最多端口數的top10:
shodan stats --facets port net:78.13/16
~有時候也需要詳盡的端口暴露數分配報告,因此指定最大的端口,返回此端口範圍的暴露數統計情況:
shodan stats --facets port:100000 net:78.13/16
該網絡上有955個端口被發現暴露,並統計出各自端口暴露數。最多的是7547端口,這個端口是調制解調器的端口,這個端口也有很多的安全問題可以關注。在統計中也有一些非常見的標準端口,這些端口大多是爲了掩蓋自己真實的Web服務。
~統計該網段的80、443端口上的服務情況:
shodan stats --facets product "HTTP net:78.13/16 -port:80,443"
這裏應將端口號放在引號中,防止bash認爲該port是shodan的命令參數。
分析SSL的例子
若要了解整個網絡的SSL使用情況,可按照以下來查詢
shodan stats --facets ssl.version HTTP net:78.13/16
可以看出大多運行的是TLS1.0及其以上的版本,不過還有一些古老的設備在使用sslv2。
分析telnet情況
mkdir telnet-data
shodan stream --ports 23,1023,2323 --datadir telnet-data / --limit 10000
創建一個名爲telnet-data的目錄來存儲telnet數據,然後從實時數據流中導出10000條記錄,存儲在telnet-data文件夾中
- hostname:搜索指定的主機或域名,例如 hostname:"google"
- port:搜索指定的端口或服務,例如 port:"21"
- country:搜索指定的國家,例如 country:"CN"
- city:搜索指定的城市,例如 city:"Hefei"
- org:搜索指定的組織或公司,例如 org:"google"
- isp:搜索指定的ISP供應商,例如 isp:"China Telecom"
- product:搜索指定的操作系統/軟件/平臺,例如 product:"Apache httpd"
- version:搜索指定的軟件版本,例如 version:"1.6.2"
- geo:搜索指定的地理位置,參數爲經緯度,例如 geo:"31.8639, 117.2808"
- before/after:搜索指定收錄時間前後的數據,格式爲dd-mm-yy,例如 before:"11-11-15"
- net:搜索指定的IP地址或子網,例如 net:"210.45.240.0/24"