Shodan

物聯網界Google專掃IP通訊埠 駭客爪牙也是資安利器

最危險搜尋引擎Shodan 連網設備無防護全曝光

本文將說明物聯網安全、Shodan的來由與運作方式,透過範例操作輸入指令,了解Shodan中幾種常用的功能,並在情境案例中以Windows遠端桌面當範例,藉由一般所使用的電腦操作,親身體驗Shodan強大的功能以及網路上可能存在的風險。

 

物聯網(Internet of Things,IoT)是近年來討論度極高的網路應用,核心的概念是萬物皆能連上網路,物與物之間溝通不必透過人為介入,彼此之間藉由網路即可直接溝通。因此,各國政府每年都投入相當多的資源發展物聯網,隨著時間的推移,越來越多人想要在這一塊領域上得以擴展投資效益。與此同時,亦享受到物聯網帶來的便利性。然而,若沒有謹慎把關物聯網的安全,將會帶來非常可怕的後果。例如,雖然裝設監視器就可遠端關注家中狀況,但若未將監視器設定安全的密碼,那有心人士就可透過第三方網站例如insecam經由監視器設備窺視所拍攝的影像。因此,在享受物聯網便利的同時,也要考量到安全疑慮。

在本文中,將介紹物聯網安全與Shodan搜尋引擎的基本功能,並且跟Google搜尋引擎做比較,以Shodan平台實作掃描物聯網裝置,體會物聯網除了帶來方便的應用外,背後所隱藏的資安風險。另外,由於Shodan近來剛調整平台型態,須加入付費會員才能夠操作本文中介紹的功能,成為會員的網址為「https://account.shodan.io/billing/member」,只要在進入網址後,按下〔BUY NOW: $49〕按鈕,並用信用卡付費即可,此為終生會員,未來不需要再支付任何費用。(網站隨時會更新,可能與本文中所示之操作範例圖有些不同,但概念都是相同的,以新版網頁為主)

物聯網安全探討

社會慢慢地走向物聯網時代,在這時代中塑造出了一個獨有的特色,也就是「萬物皆連網」,但也造成萬物皆可「駭」。物聯網裝置被駭客入侵導致控制權或個資外洩的案例層出不窮,其中涉及的領域範圍相當地廣,家中的保全監控攝影機或智慧咖啡機以及使用中的藍牙喇叭等等。

由此可見,只要是能夠連上網路的裝置,通通都暴露在被攻擊的風險之中。在現實生活中,家裡加裝網路監控攝影機已經是稀鬆平常的事情,且部分的人貪圖便利都使用簡單容易記住的密碼。那麼裝在家中的攝影機就有可能被駭客利用Shodan之類的搜尋引擎找到並且輕易地入侵,甚至進一步偷聽或偷看所拍攝的影像,這是一不留神就會遇到相當危險的資安風險,並且極有可能發生在任何人身上。

運用Shodan搜尋引擎,讓連接上網際網路的IoT設備可在網頁上一目了然地呈現,即使散布在世界各地角落的IoT設備也不例外。事實上,藉由Shodan能夠幫助檢視物聯網設備的安全性是否足夠,有多少設備目前暴露在資安風險之下。若可藉此找出安全性不足的設備並及時地處理,就能降低遭受攻擊或入侵的機會,讓IoT設備更加安全。

認識Shodan

接著,說明Shodan的發展歷史及其運作的相關原理。

Shodan發展源由

現實生活與網路世界為一線之隔,現實世界中有著明亮寬敞的康莊大道,相反地也有平時無人進出的幽暗小徑。「去Google搜尋」在現代人的日常對話中,是最熟悉不過的一句話,每當想了解的資訊以及想要搜尋的網站,只須在Google搜尋關鍵字,便可得到目標內容。但是,網路世界中無奇不有且種類繁多,永遠不可能看完網路上的所有資訊。因此,除了常聽到的Google搜尋引擎以外,還有多種不同搜尋引擎供大家使用,其中最特別之一是專門屬於物聯網的搜尋引擎,也足以號稱為物聯網界的Google,它就是「Shodan」。

在2009年,約翰‧馬瑟利(John Matherly)建立了Shodan,它的名稱來自於一款名為「系統衝擊」電子遊戲中那台有感知能力的邪惡電腦。約翰曾經說過Google搜尋的是網站,而他建立的Shodan是搜尋裝置。由此可見,有別於Google搜尋引擎,Shodan的目標是連上網路的物聯網設備,種類包含電腦、交換器、網路攝影機,甚至於工業控制系統等。

Shodan會去掃描全世界的IP,它採取的運作方式是全天候的掃描及更新資料庫,因此使用者能迅速地獲得目前最新的資訊。Shodan會搜尋全球的物聯網設備並擷取其相關資訊,其中包括可得到IP位址、運行的服務、系統資訊等。就連美國線上投票系統,Shodan都能夠找得到,更不用說是一般家中有連網的攝影機等設備。如圖1所示,其中三個框選部分分別代表三台線上投票系統。由於Shodan能找出許多連網設備,甚至找到具重要與機密性的資訊系統,也因此CNN(美國有線電視新聞網)給予Shodan一個稱號叫做「網際網路上最危險的搜尋引擎」。

圖1  美國線上投票機系統。

Shodan運作原理

是什麼神奇的技術讓Shodan得知系統上有執行哪些服務呢?此所謂神奇的技術指的是「Banner Grabbing」(本文簡稱BG),透過BG技術來取得系統上運行的服務訊息並加以解析,就能獲取相當重要的網路連結與設備關聯的資訊,以下介紹BG技術裡相關重要名詞與操作指令。

Banner Grabbing

BG的定義是一種擷取網路和在其開放通訊埠運行服務的資訊技術,此技術為Shodan運作的核心技術。基本上,它的運作又可被分為兩種,第一種是「Active Grabbing」(主動抓取),另一種方式為「Passive Grabbing」(被動抓取)。Active Grabbing是自己用電腦主動去掃對方的通訊埠,然而,Passive Grabbing是透過第三方軟體來掃描別人的通訊埠。

Banner

上述提到的「BG」,基本所指的是抓取Banner的過程,是一個動態且較為抽象的概念。而這個所謂的Banner指是可以從螢幕上看到的資訊,這些資訊為系統回傳回來讓操作者能夠看到包括設備的IP、運行的系統以及開啟的通訊埠等等,如圖2所示,Banner中顯示這個系統的伺服器是使用常見的「Apache」伺服器,除了可得知設備上的基本資訊外,必要時也能夠幫助找尋存在設備上的一些「問題」。而尋找「問題」的過程即稱為「Banner Grabbing Attack」,其目的是用來揭露設備可能暴露在哪些資安風險的問題。

圖2  顯示服務為「Apache」伺服器。

操作指令

由於Banner上都記錄著與伺服器設備相關的重要資訊,如通訊埠及運行的服務等,因此可利用一些工具來取得Banner上的內容,例如Nmap、Telnet、Wget、cURL等等工具。將其中常用的Nmap工具為例,以個人網站為目的,只須操作如圖3的指令「sudo nmap -sV --script=banner wp2.lyncustek.com」,如欲親自操作,只需要將圖3框選起來的「wp2.lyncustek.com」改成欲搜尋的網址即可。

圖3  Nmap工具的指令列。

圖4即為圖3操作後回傳的Banner內容資訊,其中可看到網站上開啟了許多的通訊埠,代表運行不同的服務,框框內看到有80、443、1723、2222、3390等多個通訊埠號碼等等,其中各通訊埠號碼80及443分別關聯於http跟https協定;而1723為VPN使用;2222為自定義的SSH連接;最後3390為RDP遠端桌面連線使用。另外其中亦標示了所運行的軟體與版本,例如在80埠上所運行的就是Nginx 1.14.0版。事實上,Nmap、Telnet、Wget、cURL工具在表達上的語法都不盡相同,但是都可以做到同樣的效果,可依據個人的喜好來使用,善用工具可以更清楚地了解Banner及其運作的模式。

圖4  經Nmap的指令操作,偵測後回傳的Banner資訊。

邏輯運算子

邏輯運算子可以想像是一種「過濾器」,它透過特殊關鍵字縮小搜尋的範圍。就像在逛網路商城時選擇「篩選器」以便瀏覽商品時更加便利,可快速找到想要的資訊。因此,善用邏輯運算子的搭配,能夠節省大量的時間,常用的邏輯運算子整理如表1所示。

例如當輸入「port:3389」,便可查詢到所有開啟3389通訊埠的連網設備,如圖5所示,上方輸入「port:3389」,下方就會顯示有開啟3389通訊埠的主機。

圖5  找出所有開啟3389埠的裝置設備。

Shodan與Google的差異

一般使用者經常利用Google找尋資料,而資訊專業人士則是用Shodan探詢更深入的資安管理與風險,在此整理Google與Shodan的差異,如表2所示。

資料獲取方式

Google與Shodan最大的差異為獲取資料方式,Google會以網頁的內容為主,以爬蟲的方法擷取網站上的資料。然而,Shodan則以IP、通訊埠以及運行的服務為主,最後回傳的為Banner訊息所彙整後的資料。

使用難易度

Google只要搜尋任意的關鍵字即可以得到大量的資訊,Shodan則要以特定的格式搜尋才會得到資訊。因此,Google在使用難易度上會比Shodan更簡單及人性化。

獲取資料內容

Google獲取資料的內容包羅萬象,只要是與關鍵字有關的內容都會被Google搜尋引擎擷取到。然而,Shodan只會去掃描連接到網路的設備並抓取其Banner而得知相關重要訊息。

用「獲取資料內容」這個差異來看,以國立屏東大學的學校網站首頁為例,僅須輸入其網址「www.nptu.edu.tw」,大家即能更具體地了解Google與Shodan在搜尋上的差異。

圖6為使用Google搜尋,圖7為使用Shodan搜尋。從圖6與圖7中,可以發現當用Google搜尋國立屏東大學的網址「www.nptu.edu.tw」時,它是一段網址,Google搜尋引擎會讀取與此網址相對應的內容,且跳出相對應的頁面。然而,Shodan搜尋引擎,如圖8所示的操作,先在Windows電腦的左下方搜尋欄輸入「cmd」叫出命令提示字元「cmd」(以下簡稱cmd)。接著,如圖9在cmd中以指令「nslookup www.nptu.edu.tw」找出「www.nptu.edu.tw」的實際IP(圖9中間框起來的部分),再將這串IP放到Shodan進行搜尋,便會跳出如圖7所示其運行的主機是開啟網頁伺服器常用的80和443通訊埠(圖7中方框框選的部分)。

圖6  使用Google搜尋。
圖7  使用Shodan搜尋。
圖8  開啟Windows搜尋欄輸入「cmd」。
圖9  在命令提示字元「cmd」中輸入指令。

由此可見,相對於Google搜尋引擎,Shodan能夠搜尋到的資料較為專業且為特定的資料,需要具備資訊分析能力的專業人士才能理解Shodan搜尋到的資料。

Shodan操作

這裡分成二部分做說明,第一部分先簡單介紹Shodan中幾種不同的資料呈現方式,如Explore、Maps、Exploits、Images的操作等等。第二部分是運用Shodan資料呈現裡最常使用的「Explore」搭配「邏輯運算子」進行搜尋操作。

Shodan資料呈現方式

以「webcam」(網路攝影機)為例,並分別說明Explore、Maps、Exploits、Images等Shodan常用的四種資料呈現方式。

Explore

Shodan的Explore是最常使用呈現資料的方式。在Explore搜尋欄,可以輸入邏輯運算子或者直接輸入想要尋找的裝置「webcam」。Explore操作介面淺顯易懂,非常適合剛接觸Shodan的初學者嘗試輸入各種不同的資料試試。Shodan首頁網址為「https://www.shodan.io/」,如圖10所示,點選「Explore」後即為Explore的首頁,如圖11所示。從圖11左下方的框選內看到約有12,519台的網路攝影機暴露在網路上,而畫面上方被框選的則是輸入欄,藉此能查到更進階資料。

 

圖10  Shodan首頁。
圖11  Shodan的「Explore」首頁。

在輸入欄輸入「webcam」並點搜尋後,如圖12所示,將能清楚地得到更多與搜尋內容有關的資訊,其中在畫面的左上角(框選部分)顯示出Exploits、Maps以及Images等功能可以操作。

圖12  Shodan回傳「webcam」的搜尋結果。

Maps

Shodan的Maps功能可得知搜尋目標在全球的分布狀況,也因此有人會利用Maps功能來分析該目標位於全球的分布密度,如圖13所示。操作Maps的方法也很簡單,如圖14所示,輸入一個想要找尋的目標(例如「webcam」)後,出現的四個框選內的紅點就是全球網路攝影機的分布狀況。

圖13  點選「Maps」。
圖14  全球「webcam」的分布狀況。

Exploits

Shodan的Exploits功能點選,如圖15所示。Exploits的操作會從Shodan資料庫中搜尋有哪些的安全性漏洞(Vulnerabilities)、CVE(全名為Common Vulnerabilities and Exposures,如果存在CVE漏洞,代表在程式碼的邏輯上有弱點,當弱點被利用時可能會提高機密資料外洩的風險),如此就能夠得知該目標可能存在著什麼型式的安全,如圖16所示,其中框選部分為使用「webcam」搜尋得出可能存在的安全漏洞。

圖15  點選「Exploits」。
圖16  利用Shodan的Exploits功能搜尋「webcam」漏洞資料。

Images

Shodan的Images的點選,如圖17所示。Images功能特殊的地方是在每一個設備上進行快照(擷取裝置的畫面)。以使用「webcam」為例所得出的畫面,如圖18所示,由圖中的框選部分可以得知這些畫面都是出自於網路攝影機拍下的。因此,對於網路攝影機的使用者而言,可能會失去個人隱私的空間,這是相當危險的一件事情。

圖17  點選「Images」。
圖18  Shodan的「Images」功能擷取的畫面。

運用Explore結合邏輯運算子

在第一部分已經介紹四種Shodan常用的呈現方式,其中Explore因為操作上較為直覺,因此最常被拿來使用。剛剛在說明Shodan運作原理時也列表邏輯運算子,所以接著以Explore為例,將Shodan的Explore功能結合邏輯運算子來做簡單的實作並分析,將使用兩個較容易理解的「product」與「country」運算子來操作。

如圖19所示,在「Explore」的輸入欄填入「product:”nginx” country:”TW”」,代表使用網路伺服器Nginx且搜尋範圍僅限台灣(統一縮寫為兩碼TW)。

圖19  「Explore」輸入欄中鍵入「product:”nginx” country:”TW”」。

進一步的搜尋結果畫面如圖20所示,其中左半邊顯示出在台灣的各項數據;右半邊則顯示出隨機搜尋到的主機名稱,但因保護個人隱私,因此把IP位址及主機名稱等訊息遮蔽起來。在圖20的左半邊,為了方便說明而標示號碼次序1、2、…、5,數字1顯示出在台灣目前運行使用Nginx(Nginx與Apache同樣是網路伺服器,根據英國的網路服務商Netcraft在2021的研究報告指出全球用戶使用Nginx的數量已經超越Apache,成為最多人使用的網路伺服器),運行的伺服器總數有187,103台(將近20萬台),此數量僅為Shodan掃描到台灣當下有開啟服務的Nginx,並非代表台灣全部的Nginx數量。

圖20  Shodan回傳結果頁面。

而數字2到5中分別是使用數量前五多的城市、使用最多的協定、提供網路服務的組織以及使用的版本等訊息。另外,數字5框選中顯示採用最新版本1.18.0的Nginx伺服器的數量,細部數量如圖21所示。伺服器數量對比全部總數187,103台來看,比例相當低,意味者仍然有相當多的Nginx伺服器運行著舊版本。也就是說,Nginx伺服器因為版本過舊容易成為網路攻擊的標的,這個現象說明了較高資安風險的存在。

圖21  顯示Nginx伺服器使用版本狀況。

此外,圖20右側有三部分主機資料,隨機查看其中一台主機,如圖22所示,左上方可以看到該主機的IP位址以及主機名稱。除了IP位址及主機名稱外,其他的資訊還包括IP所屬地區、國家、提供此IP的ISP組織、最新更新時間等等資訊。

從圖22右上方框選部分,發現其開啟80與443通訊埠,再透過由主機回傳回來的Banner(右下方框選),可以看出這台主機是運行常用的Nginx網路伺服器。因此,Shodan才能夠使用運算子「product:”nginx”」搜尋到此台Nginx網路伺服器的資訊。

圖22  隨機選擇一台主機的結果畫面。

情境範例說明

話說阿旺是一名在資訊公司上班的上班族,有一天阿旺發現他的電腦中莫名地出現了一些未曾看過的檔案,他覺得很奇怪,但不以為意,又繼續一如往常地使用。時間又過了幾個禮拜,阿旺漸漸地發現電腦運行速度有越來越慢的跡象,這次他有所警覺,趕緊把電腦委託在資安公司工作的友人資深工程師林達做檢測,希能找出蛛絲馬跡。

林達經檢查後發現相當嚴重的問題,驚覺阿旺電腦中的Windows遠端桌面功能為開啟的狀態,阿旺才突然地想到有一次他因為在外地出差,要檢視自己電腦中的文件,就請他的朋友方圓幫忙設定並開啟了Windows的遠端桌面功能。但因為方圓對資安常識可說是毫無概念,在細節上並無注意太多,而阿旺也認為自己的電腦沒有什麼珍貴的資料,駭客應該不會有特別感興趣去攻擊他的電腦,所以在使用完遠端桌面連線後也未將設定關閉。

聽完阿旺講完事件的來龍去脈,林達告訴阿旺,這不是駭客有沒有針對他的問題,而是一旦有電腦暴露於網際網路上,就可能會被駭客使用Shodan找出來,連同所開啟的通訊埠都會被發現。

阿旺聽完林達的話後半信半疑,認為就算駭客知道登入自己電腦的帳號密碼,但是理當不曉得該從網路上的哪個入口進到自己的電腦。因此,林達為了說明駭客可能會用什麼手段找到阿旺的電腦所在位置,就示範如何使用Shodan這個搜尋引擎操作五個第一次接觸Shodan的「初學者」必備基本知識。

首先是第一個知識,Shodan搜尋時所記錄下來的資料,包括系統服務的指紋(Fingerprint)。不同的系統有不同的指紋,可用來分辨目前是使用什麼作業系統或系統中的資訊。例如林達在「Explore」搜尋欄位中輸入「”\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00”」,如圖23所示。這個指令可搜尋Windows系統的遠端桌面協定(Remote Desktop Protocol),藉此找出目前有開放遠端桌面連線的主機,若是這台主機尚未完成修補,就可能被駭客以「BlueKeep」漏洞進行攻擊,此漏洞可被利用遠端桌面連線連上被攻擊的電腦,進而在被攻擊的電腦上執行惡意程式。而第二個知識,圖24所代表的意義是目前暴露在網路上有76,933台電腦允許Windows遠端桌面連線(左上框選部分),分布的範圍遍布全世界,台灣目前的數量也有超過2,500台(左下框選)。

圖23  輸入語法”\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00”。
圖24  顯示Shodan搜尋結果。

第三個知識如圖25所示,使用Shodan的Images功能對開放遠端桌面連線的主機做截圖,電腦被Shodan掃描到,就有可能被截取登入畫面放在Shodan上面,從圖中看出總共有8台的電腦(8個框選)被截取到。第四個知識如圖26所示,使用Shodan的Maps功能找出這些電腦的IP位址來源是出自於哪一個國家,框選內的紅點為被掃描到的電腦之來源位址,從圖中可發現,全世界只要是有一定的網路基礎建設水準的國家,且有開放遠端桌面連線的主機都可能存在漏洞。

圖25  使用Shodan的Images功能搜尋。
圖26  使用Shodan的Maps功能。

第五個知識如圖27所示,隨機選擇一台被Shodan掃描到的電腦,因為是遠端桌面連線,因此在通訊埠的掃描上通常掃到遠端桌面默認的3389通訊埠(右上方框選),左下方顯示Shodan會判斷這個IP可能存在著CVE漏洞,例如此IP位址被掃描出其存在著CVE漏洞(右下方框選)。

圖27  隨機選擇一台主機。

透過林達介紹並操作完Shodan的五大基本知識後,阿旺躍躍欲試,並親自操作Shodan想驗證林達說的是否正確。結果在使用Shodan後竟然發現自己的電腦真的早已暴露在網路上,僅用幾個指令就能進到自己電腦的登入畫面,阿旺才真正體悟到原來駭客可以透過Shodan掃描到自己電腦的IP位址,且如果自己的電腦存在如BlueKeep漏洞,等於駭客不需要破解帳號密碼也能夠取得最高權限。此時,阿旺領悟到網路並非完全安全,同時林達叮嚀阿旺在電腦使用上要保有一定程度的警戒心,才不會讓自身的權益受損。

結語

物聯網的安全已成為了世界各國都應該要注意的重大議題,透過本文中的操作示範,讓大家了解到Shodan在物聯網時代的重要性,使用Shodan的時機若得宜的話,它扮演的將是維護網路安全的得力助手,也能夠降低科技上安全的隱憂,成為物聯網時代對於科技重度使用者不可或缺的工具。

<本文作者:社團法人台灣E化資安分析管理協會(ESAM, https://www.esam.io/)國立屏東大學AI資訊安全與多媒體實驗室(AI Data Security and Multimedia Lab)2018年創立,由翁麒耀教授率領成員們致力資訊安全與數位多媒體應用之研究,其領域包含但不限於互動媒體設計、多媒體安全、資料庫安全、數據分析及影像處理。>

 


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!