
1. 從“暗黑版谷歌”到網絡空間測繪儀Shodan到底是什么第一次聽說Shodan很多人都會被“暗黑版谷歌”、“黑客搜索引擎”這樣的標簽嚇到覺得這玩意兒離自己很遠甚至有點危險。但作為一名在網絡安全和運維領域摸爬滾打了十多年的從業者我必須說這種理解太片面了。Shodan本質上是一個網絡空間搜索引擎或者更準確地說是一個物聯網IoT和網絡設備搜索引擎。它和谷歌、百度的根本區別在于谷歌爬取和索引的是網頁內容而Shodan爬取和索引的是互聯網上各種設備服務器、攝像頭、路由器、工控系統、智能家居設備等直接暴露的服務端口和橫幅Banner信息。你可以把它想象成一個給整個互聯網做“CT掃描”的儀器。它不關心網頁上寫了什么新聞它關心的是全球有多少臺設備的21端口FTP開著這些設備返回的登錄橫幅里有沒有泄露版本信息某個特定型號的網絡攝像頭在哪些IP段有暴露這才是Shodan的核心價值——網絡空間測繪與資產發現。對于安全研究人員、滲透測試工程師、網絡運維人員甚至是一些好奇的技術愛好者來說Shodan是一個強大到令人驚嘆的工具。它可以幫助你外部威脅暴露面自查快速發現自家公司或客戶有哪些服務意外暴露在公網比如測試環境的數據庫、忘記關閉的遠程管理端口。漏洞影響范圍評估當爆出一個新的漏洞比如某個路由器固件的RCE漏洞你可以用Shodan搜索受影響的設備型號或服務版本快速評估其全球分布和數量。競品或行業分析了解某個行業如電力、交通普遍使用了哪些類型的網絡設備或工控系統。學術與研究進行大規模的互聯網測量研究分析協議部署趨勢、設備地理分布等。所以別再被“暗黑”標簽誤導了。Shodan是一個中立的工具刀本身沒有善惡關鍵在于握刀的人如何使用它。本教程的目的就是帶你安全、合法、高效地掌握這把“網絡空間測繪儀”的基本用法讓它成為你技術工具箱里的一件利器。2. 理解Shodan的核心搜索語法與過濾器Shodan的強大幾乎全部體現在其搜索語法上。它不像普通搜索引擎那樣用自然語言模糊匹配而是使用一套精確的“過濾器關鍵詞”組合拳。吃透這套語法你才算真正入門。2.1 基礎搜索從關鍵詞開始最基礎的用法就是在搜索框里直接輸入關鍵詞。這些關鍵詞會匹配設備服務返回的“橫幅”Banner信息。橫幅是設備在建立網絡連接時主動發送的自我介紹信息通常包含軟件名稱、版本號、歡迎語等。搜索示例Apache意圖搜索所有在橫幅信息中包含“Apache”的服務器可能是Web服務器也可能是其他服務。返回結果你會看到成千上萬臺運行Apache HTTP Server的設備結果會顯示IP、端口、地理位置以及完整的橫幅信息。直接關鍵詞搜索雖然簡單但結果往往過于龐雜。比如搜索Apache會混雜著不同版本、不同配置、不同重要性的服務器難以聚焦。2.2 核心過濾器精確制導的關鍵過濾器是Shodan的靈魂。格式為過濾器:值。多個過濾器可以用空格連接表示“與”的關系。以下是幾個最常用、最核心的過濾器net 按IP地址或CIDR網段搜索。net:8.8.8.8搜索這個特定IP。net:203.0.113.0/24搜索整個C類網段203.0.113.1 到 203.0.113.254。使用場景檢查自家或客戶指定的IP范圍有哪些服務暴露。port 按端口號搜索。port:22搜索所有開放22端口SSH的設備。port:80,443搜索開放80HTTP或443HTTPS端口的設備。port:21搜索開放21端口FTP的設備經常能發現匿名FTP或配置不當的服務器。使用場景快速定位特定服務如查找所有開放的Redis服務port:6379或MongoDB服務port:27017。country 按國家代碼搜索。country:CN搜索位于中國的設備。country:US搜索位于美國的設備。使用場景進行地域性的分析或排查。city 按城市名搜索。city:Shanghai搜索位于上海的網絡設備。注意城市名需用英文且大小寫敏感。org 按組織公司、機構名稱搜索。org:Amazon.com搜索歸屬于亞馬遜公司的資產。org:China Telecom搜索中國電信旗下的IP資產。使用場景進行企業級的暴露面梳理或競品分析。這個過濾器需要Shodan的會員權限才能獲得更準確的結果。product 按產品名稱搜索。product:nginx搜索Nginx服務器。product:Apache httpd搜索Apache HTTP服務器。這個過濾器比直接搜關鍵詞更精確因為它匹配的是Shodan從橫幅中解析出的標準化產品字段。version 按軟件版本號搜索。product:nginx version:1.18.0搜索特定版本的Nginx。這對于查找存在已知漏洞的舊版本設備極其有用。has_screenshot:true 篩選出Shodan已為其截取屏幕快照的設備主要是Web服務、VNC、遠程桌面等。使用場景直觀地看到暴露的Web管理界面、未授權的監控攝像頭畫面等視覺沖擊力強常用于安全演示。ssl 搜索SSL/TLS證書信息。ssl:Lets Encrypt搜索使用了Let‘s Encrypt證書的設備。ssl.cert.subject.cn:*.example.com搜索證書主題通用名包含特定域名的設備。這是進行子域名發現和資產關聯的強力手段。2.3 組合搜索構建復雜查詢真正的威力在于組合使用過濾器。案例一查找上海地區開放22端口且使用OpenSSH的服務器port:22 product:OpenSSH city:Shanghai這個查詢能幫你精準定位一個地區的SSH服務器資產。案例二查找美國某公司所有暴露的MySQL數據庫port:3306 product:MySQL org:Some Company Inc country:US這直接指向了核心數據庫資產的暴露風險。案例三查找所有使用了某特定版本、存在漏洞的Apache Struts框架的服務器product:Apache Struts version:2.3.34在漏洞爆發時這樣的搜索能瞬間評估影響面。重要提示使用Shodan進行搜索時務必確保你的行為合法合規。僅搜索你擁有合法授權測試的資產如自己公司的IP段、客戶授權的范圍或用于廣義的學術研究。絕對禁止利用其信息進行未授權的訪問、攻擊或破壞活動。記住能力越大責任越大。3. 實戰演練從注冊到完成一次完整搜索光說不練假把式我們一步步來。3.1 賬戶注冊與API密鑰獲取訪問官網通過搜索引擎找到Shodan官網。網站有清晰的中文界面。注冊賬戶點擊注冊使用郵箱即可。免費賬戶每月有一定的搜索積分限制對于學習和輕度使用完全足夠。獲取API密鑰登錄后在用戶儀表盤Dashboard頁面你的API密鑰API Key會顯示在顯眼位置。這個密鑰是你的身份憑證務必像保管密碼一樣保管它不要泄露到公開代碼或論壇中。高級功能如大量導出、使用某些過濾器、無頻率限制需要付費會員。3.2 網頁端基礎搜索實操我們以一次真實的、合法的自查場景為例假設你想檢查一個你擁有管理權限的測試網段203.0.113.0/24這是一個RFC文檔中指定的測試網絡實際不存在用于示例。登錄Shodan在頂部搜索框輸入net:203.0.113.0/24查看結果概覽搜索結果頁面會顯示在這個網段內發現的設備總數、常見的開放端口、頂部服務如HTTP、SSH、地理位置分布等統計信息。這給你一個宏觀的印象。點擊具體設備在設備列表中點擊任意一個IP地址。你會進入該主機的詳細頁面這是信息最密集的地方基本信息IP、地理位置、ISP、最后在線時間。開放端口列表該主機所有被Shodan探測到的開放端口。端口詳情點擊某個端口如80會顯示該端口服務響應的完整橫幅信息。對于HTTP服務還可能直接顯示網頁標題和抓取到的部分HTML關鍵詞。歷史數據付費功能可以查看該主機歷史掃描記錄觀察其端口變化。使用過濾器細化如果結果太多可以組合過濾器。例如你只關心這個網段里開放的Web服務net:203.0.113.0/24 port:80,443,80803.3 使用瀏覽器插件提升效率Shodan官方提供了瀏覽器插件如Chrome擴展。安裝后當你瀏覽網頁或查看IP時插件可以一鍵在Shodan中搜索當前域名或IP極大提升工作效率。例如在某個技術文章里看到一個IP案例點一下插件圖標就能立刻看到它在Shodan上的暴露情況。3.4 命令行工具CLI的威力對于高級用戶和自動化場景Shodan命令行工具是必備神器。它基于Python使用你的API密鑰進行操作。安裝pip install shodan初始化在終端輸入shodan init YOUR_API_KEY配置你的密鑰。基礎命令搜索shodan search --fields ip_str,port,org net:203.0.113.0/24 port:22這個命令會搜索指定網段的22端口并只輸出IP、端口和組織字段格式簡潔。獲取主機詳情shodan host 8.8.8.8這會獲取谷歌DNS服務器的詳細Shodan信息等同于網頁端點擊該IP。統計信息shodan count product:nginx快速統計全球有多少設備被識別為Nginx而不需要下載具體數據節省積分。掃描器shodan scan submit 203.0.113.0/24這是一個請求Shodan對指定目標進行一次性掃描的命令。請注意免費賬戶有使用限制且僅應對你擁有權限的網絡發起掃描請求。濫用此功能可能導致賬戶被封禁。命令行工具的優勢在于可以將結果通過管道 (|) 傳遞給其他工具如grep,jq進行處理或者寫入腳本實現自動化監控。例如你可以寫一個定時腳本定期搜索公司IP段如果發現了新的、未登記的開放端口如3306就發送告警郵件。4. 高級技巧與典型應用場景解析掌握了基礎操作我們來看看Shodan在一些典型場景下的高級用法。4.1 漏洞應急響應與影響面評估這是Shodan在安全領域的核心應用之一。假設今天公開了一個影響Apache Solr 8.11.0的遠程代碼執行漏洞CVE-2023-XXXXX。構建搜索語法我們需要找到所有運行這個特定版本的Solr服務。語法可能是product:Apache Solr version:8.11.0執行搜索在Shodan中執行結果會顯示全球暴露的該版本實例數量及其IP、地理位置。進一步分析使用country:過濾器查看漏洞在哪些國家分布最多。使用org:過濾器如果權限足夠查看哪些企業可能受影響。結合has_screenshot:true看看能否直接看到管理界面確認漏洞利用條件。形成報告你可以快速生成一份數據報告“全球約有X臺Apache Solr 8.11.0實例暴露主要分布在A、B、C國家建議立即升級或實施網絡隔離。” 這為應急響應提供了至關重要的數據支撐。4.2 企業外部攻擊面管理ASM對于安全團隊定期使用Shodan自查是必修課。收集資產IP范圍整理公司所有對公網提供服務的IP段包括云服務商提供的。批量搜索使用CLI工具或編寫腳本對所有IP段執行Shodan搜索。命令示例shodan search --fields ip_str,port,product net:YOUR_IP_BLOCK shodan_report.txt分析異常發現對比搜索結果與公司內部的資產臺賬CMDB。發現未知服務例如臺賬里沒有記錄某個IP開放了8080端口但實際上運行著一個Jenkinsproduct:Jenkins。這可能是某個團隊私自搭建的測試環境構成了安全缺口。發現危險配置搜索port:6379 product:Redis可能會發現一些未設置密碼的Redis服務直接暴露在公網這是極高危的風險。發現過期版本搜索product:Microsoft IIS version:7.5發現仍在運行已停止支持的老舊IIS版本。推動整改將發現的問題整理成工單分發給相應的系統負責人進行修復如關閉不必要的端口、升級軟件、添加訪問控制。4.3 特定設備與工控系統ICS探索Shodan爬取了大量工控設備、網絡攝像頭、打印機等物聯網設備的信息這既是研究的寶庫也揭示了巨大的安全隱患。搜索網絡攝像頭嘗試product:webcam或Server: IP Webcam Server。結合country:和city:你會發現大量設備可能因默認密碼或空密碼而暴露。請注意窺探他人設備是非法和不道德的此處僅為說明技術可能性。搜索工控協議搜索port:502Modbus協議、port:102Siemens S7comm協議。這些結果會讓你直觀感受到關鍵基礎設施組件在互聯網上的暴露程度令人觸目驚心。這主要用于學術研究和安全意識教育。4.4 利用證書信息進行子域名發現這是一個非常巧妙的技巧。SSL證書的“主題備用名稱”SAN字段里通常會列出該證書適用的所有域名。搜索語法ssl.cert.subject.cn:*.yourcompany.com分析結果Shodan會返回所有證書中包含*.yourcompany.com的服務器IP。你可能會發現一些連內部安全團隊都不知道的、遺留在公網上的子域名如legacy-api.yourcompany.com,test-vpn.yourcompany.com這些往往是安全盲點。5. 常見問題、避坑指南與倫理邊界在實際使用中你會遇到各種問題下面是我總結的一些經驗和必須遵守的準則。5.1 免費賬戶的積分限制與策略免費賬戶的搜索積分Search Credits每月刷新。執行一次搜索無論結果多少扣除1積分查看主機詳情也扣除1積分。積分用完基礎搜索功能會被限制。避坑技巧善用count命令在網頁端或CLI使用count過濾器如搜索框輸入country:CN port:22 count:100是不扣積分預覽數量或在CLI用shodan count命令。先估算結果數量再決定是否進行詳細搜索。精確構建查詢盡量使用精確的過濾器和關鍵詞組合避免返回海量結果。你本來只想看Nginx搜nginx可能返回100萬條而product:nginx可能更精確數據量更可控。導出時謹慎選擇字段在網頁端導出數據時只選擇你真正需要的字段如IP、端口不要全選這會影響數據處理速度和積分消耗雖然導出本身也扣分。考慮付費升級如果你是安全專業人員需要高頻次、大規模使用付費會員是值得的投資。它提供無限制的搜索積分、更豐富的過濾器、歷史數據訪問和API更高的調用頻率。5.2 結果解讀的誤區“開放端口”不等于“可被攻擊”Shodan只告訴你端口是“開放”且“有響應”的。該服務是否有認證、是否存在漏洞Shodan在絕大多數情況下無法判斷。一個暴露的SSH端口如果強制使用密鑰登錄且防火墻做了IP限制其風險是可控的。“最后更新”時間主機詳情中的“最后更新”時間是Shodan最后一次成功掃描到該主機的時間并非主機當前的實時狀態。互聯網上的設備IP是動態變化的今天掃描到的設備明天可能就下線或更換IP了。橫幅信息可能被修改聰明的管理員會修改服務的默認橫幅以隱藏真實的軟件和版本信息這被稱為“Banner Grabbing”防御。因此Shodan的識別不是100%準確。5.3 法律與倫理紅線什么絕對不能做這是最重要的一部分必須時刻牢記。未經授權禁止掃描絕對不要使用Shodan的“Scan”功能或任何其他工具如nmap去主動掃描你不擁有、未獲得明確書面授權的任何IP地址、域名或網絡。這等同于在別人的房子周圍嘗試推每一扇窗戶在很多司法管轄區屬于違法行為。禁止未授權訪問通過Shodan發現了一個暴露的、沒有密碼的管理界面如路由器、數據庫看看可以但千萬不要點擊登錄、輸入命令或進行任何交互操作。未經授權的訪問是明確的犯罪行為。尊重隱私與數據合規Shodan可能會索引到一些包含敏感信息的設備如家庭攝像頭、個人NAS。即使你能訪問也請立即離開并報告給相關平臺Shodan有報告功能。不要下載、傳播、利用這些私人數據。用于正當目的將Shodan用于企業安全自查、授權滲透測試、學術研究、漏洞影響分析等合法合規的場景。你的技術能力應該用來建設更安全的網絡環境而不是破壞它。5.4 提升搜索效率的獨家心得關注“熱門搜索”Shodan主頁和社區經常會展示一些有趣的搜索語法比如title:DVR Login找攝像頭Authentication disabled RFB 003.008找無認證的VNC。學習這些語法能快速打開思路。結合其他工具Shodan不是萬能的。將它與其他開源情報OSINT工具結合如censys.io另一個強大的網絡空間搜索引擎側重TLS證書和協議、zoomeye.org知道創宇的鐘馗之眼可以互相驗證和補充信息。自動化監控腳本對于核心資產可以編寫一個簡單的Python腳本定期調用Shodan API對比本次和上次的掃描結果自動發現新增的開放端口或服務實現持續的外部攻擊面監控。Shodan就像一副賦予你網絡空間“透視”能力的眼鏡。初次使用你可能會被互聯網表面之下如此龐大、直接、有時甚至是不設防的設備海洋所震撼。掌握它意味著你擁有了在數字化時代洞察“地形”的能力。但請永遠記住這份能力伴隨著重大的責任。用它來守護邊界而非跨越雷池用它來消除隱患而非制造威脅。這才是我們學習和使用這類強大工具的終極意義。