310 likes | 455 Views
Personal Firewall. 攻擊手法之研究. Member. D9363904 鄭聖倫 D9546376 王鈺勝 D9481075 劉鼎政. Leak on Personal Firewall. Firewall Software Firewall Computer PC Windows 主要前提: Outbound connection 惡意軟體已經透過某些方法進入電腦. 主要攻擊技巧. Substitution Launcher Default rule using Direct Network Interface reaching
E N D
Personal Firewall 攻擊手法之研究
Member • D9363904 鄭聖倫 • D9546376 王鈺勝 • D9481075 劉鼎政
Leak on Personal Firewall • Firewall • Software Firewall • Computer • PC • Windows • 主要前提: • Outbound connection • 惡意軟體已經透過某些方法進入電腦
主要攻擊技巧 • Substitution • Launcher • Default rule using • Direct Network Interface reaching • DLL injection • Process injection • Timing Attack • Recursive request
Substitution • 通過Firewall的基本方法之一,就是偽裝成Firewall信認的程式 • 方法 • 將執行檔名稱變更成Firewall信認的程式名稱 • 路徑也更改成一樣的路徑 • Firewall若沒有類似md5 checksum的機制,將會簡單地pass through • Malwares • W32.Welchia.Worm,The Beast
Launcher • 概念: • 以Firewall信認的application做為跳板 • 方法: • 例1:malware -> cmd -> explorer -> IE • 例2:使用windows的工作排程器 • 如例1的狀況,IE是由explorer所開啟的,而不是malware,使得此種方法難以偵測 • Malwares • W32.Vivael@MM
Default rule using • 一般Firewall都有其內定預設的 Rules • 若Firewall預設讓某些port能夠隨意的通過,將會增加危險 • DNS , DHCP • 方法:以DNS port 來傳data
Direct Network Interface reaching • 一般Firewall只處理到Winsock這一層級 • 著名的 WinPCap 可直接與 NDIS進行access • 只「照顧」到winsock這一層的Firewall,對此種方法完全無法偵測
DLL injection • DLL – Direct Link Library , windows下的產物 • 若一個合法的process (例如:explorer),載入了我們撰寫的DLL檔,Firewall也會將它視為是被信認的 • 方法: • Explorer會載入的DLL都存在 Registry中 • 更改Registry->explorer重開啟->自動載入DLL • 此種方法通常是「木馬」屠電腦的標準方法之一,不過仍然難以防備 (都是OS的錯)
Process injection • Program -> process -> thread • 方法A • 在被信認的process中新增一個thread,然 後植入我們需要的程式碼 • 不同於DLL injection,DLL injection載入的是foreign code,仍然可以被某些工具分析出來 • 方法B • 直接把一個現成的thread改成我們要的內容 • Firewall要在 injection的階段就阻擋下來
Timing Attack • Firewall偵察到可疑的行為 • 凍結 -> 詢問user要怎麼辦 • 上述過程需要得到可疑程式的 pid • 方法: • 傳送資料的過程,藉由快速地轉換不同的pid來達到目的
實例探討1 • 第一個 leak test :http://grc.com/lt/leaktest.htm • 由 Steve Gibson所撰寫,使用的方法就是最簡單的 Substitution。 • 單純地將program name 和 path修改 • 他將程式命名為 LeakTest.exe • 後來大家延用了此名字 • 除了 Windows 內建的 Firewall外,現在已經甚少有 Firewall偵測不到此種方法
實例探討2 • Tooleaky:http://tooleaky.zensoft.com/ • Launcher的一種 • 原理&步驟: • (1)從Registry得到IE的執行路徑 • (2)於背景執行IE,給予URL參數 • (3)由IE傳送資料,若IE是被Firewall信認的App,就能夠自由進行連線
實例探討3 • Firehore:http://keir.net/firehole.html • Launcher + DLL injection • 開啟 IE,並在IE內部載入DLL檔 • 目前絕大部分的Firewall都有能力阻擋此類型的攻擊
實例探討4 • Yalta: • Default rule using • 試圖透一切可能的port來傳送資料(53,21,…) • 若Firewall預設某一個 port 可以自由傳送資料,此一方法就可能成功 • 目前大部分的personal firewall都有較全面的防護設定,此種方法可用度降低
實例探討5 • outbound:http://www.hackbusters.net/ob.html • Direct Network interface reaching • 使用WinPCap的library • 將發送出去的封包偽裝成「established connection」 • 以前的 personal firewall幾乎無法阻擋此種攻擊,目前有幾款軟體已經開始能夠阻絕此種方法
實例探討6 • pcAudit:http://www.pcinternetpatrol.com/ • DLL injection • 和前述的手法相類似
實例探討7 • AWFT: http://www.atelierweb.com/awft/ • 全名為Atelier Web Firewall Tester • 包含六項測試,以10分評估Web防火牆效能 • 透過各種方法掩飾,避開防火牆的偵測以完成與外部的連線
實例探討8 • THERMITE:oliverlavery@hotmail.com • 把自己的code植入目標process(針對IE瀏覽器),並建立具惡意行為的thread • 其行為是竊取瀏覽器的資訊內容(包含瀏覽的資料內容) • 如果測試顯示success,則該換防火牆了>”<
實例探討9 • COPYCAT:http://mc.webm.ru/ • 把自己的code植入網頁瀏覽器以避開防火牆的偵測。 • 其行為是更改瀏覽器thread的內容,藉此嘗試存取internet的資源。 • 如果不幸測試成功,將會在C槽看到exploited.txt檔案。
實例探討10 • MBTEST:mbcx8nlp@hotmail.com • 類似OutBound • 跳過winsock,直接透過NIC進行存取 • 其測試軟體連結失效>”<
實例探討11 • WB:http://www.firewallleaktester.com • 包含四種測試 • 其行為是藉由不同的方法喚起(系統預設)瀏覽器程式,存取其所指定的網路資源。 • First:藉由explorer.exe執行iexplore.exe上網 • Second:直接開啟IE • Third:First的變形,先執行cmd.exe • Fourth:Third的變形,先執行AT.exe
實例探討12 • PCAudit2:http://www.pcinternetpatrol.com • 植入自己的code給系統信任的軟體,使之視為其DLL檔 • 如果防火牆第一次有跳出提示訊息,則測試第二次,如果第二次沒有繼續跳出警示則防火牆不安全
實例探討13 • GHOST: -Launcher+ Timing Attack - 一般防火牆會使用windows API回收parent PID and name - 為了防止被防火牆偵測到,Ghost會藉由shut down and restart 它自己來改變PID並繼續傳送資料
實例探討14 • DNStester: -recursive request -Windows 提供一種服務"DNS client"來執行和處理所有 DNS請求 - 設計一個特別的DNS請求來傳送資料給遠端電腦而且不 會被防火牆發現 - 防火牆一定會被穿透,除非關閉windows的DNS client服 務
實例探討15 • Surfer: • Launcher • 首先Surfer建立一個隱藏桌面並塞入IE裡,但他沒有url • 之後再開啟一個Surfer引入它自己,並把第1個給關掉隨後它會使用DDE protocol • 當IE執行時DDE就可以被使用
實例探討16 • Breakout: -Launcher+Windows messaging -Breakout會建立一個網頁並指向目標的url - 然後它能執行Active Desktop並將網頁設 成你的背景桌面
實例探討17 • Jumper: • Launcher+DLL injection+Registry injection • 它會寫入AppInitDLLs這個登入檔,然後殺掉 explorer.exe • Windows會自動reloaded ,然而此時的explorer.exe 已經被loads jumper的DLL
實例探討18 • CPIL(Comodo Parent Injection Leak) • DLL injection • 會找出 explorer.exe且更改它的memory • 透過預設的瀏覽器來傳送資料給遠端電腦 • 需要安裝HIPS軟體來監視可疑的程式碼入侵
實例探討19 • PCFlank: • Windows messaging • PCFlank利用OLE自動化應用程式控制, 檢查你的防火牆如何處理當一個程式企圖管理另一個程式的行為.