31
Personal Firewall 攻攻攻攻攻攻攻

Personal Firewall

  • Upload
    kermit

  • View
    60

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Personal Firewall

Personal Firewall

攻擊手法之研究

Page 2: Personal Firewall

Member

D9363904 鄭聖倫 D9546376 王鈺勝 D9481075 劉鼎政

Page 3: Personal Firewall

Leak on Personal Firewall

Firewall Software Firewall

Computer PC Windows

主要前提: Outbound connection 惡意軟體已經透過某些方法進入電腦

Page 4: Personal Firewall

主要攻擊技巧

Substitution Launcher Default rule using Direct Network Interface reaching DLL injection Process injection Timing Attack Recursive request

Page 5: Personal Firewall

Substitution

通過 Firewall 的基本方法之一,就是偽裝成Firewall 信認的程式

方法 將執行檔名稱變更成 Firewall 信認的程式名稱 路徑也更改成一樣的路徑

Firewall 若沒有類似 md5 checksum 的機制,將會簡單地 pass through

Malwares W32.Welchia.Worm , The Beast

Page 6: Personal Firewall

Launcher

概念: 以 Firewall 信認的 application 做為跳板

方法: 例 1 : malware -> cmd -> explorer -> IE 例 2 :使用 windows 的工作排程器

如例 1 的狀況, IE 是由 explorer 所開啟的,而不是 malware ,使得此種方法難以偵測

Malwares W32.Vivael@MM

Page 7: Personal Firewall

Default rule using

一般 Firewall 都有其內定預設的 Rules 若 Firewall 預設讓某些 port 能夠隨意的通過,

將會增加危險 DNS , DHCP

方法:以 DNS port 來傳 data

Page 8: Personal Firewall

Direct Network Interface reaching

一般 Firewall 只處理到 Winsock 這一層級 著名的 WinPCap 可直接與 NDIS 進行

access 只「照顧」到 winsock 這一層的 Firewall ,對

此種方法完全無法偵測

Page 9: Personal Firewall
Page 10: Personal Firewall

DLL injection

DLL – Direct Link Library , windows 下的產物

若一個合法的 process ( 例如: explorer) ,載入了我們撰寫的 DLL 檔, Firewall 也會將它視為是被信認的

方法: Explorer 會載入的 DLL 都存在 Registry 中 更改 Registry->explorer 重開啟 -> 自動載入 DLL

此種方法通常是「木馬」屠電腦的標準方法之一,不過仍然難以防備 ( 都是 OS 的錯 )

Page 11: Personal Firewall

Process injection

Program -> process -> thread 方法 A

在被信認的 process 中新增一個 thread ,然 後植入我們需要的程式碼

不同於 DLL injection , DLL injection 載入的是foreign code ,仍然可以被某些工具分析出來

方法 B 直接把一個現成的 thread 改成我們要的內容

Firewall 要在 injection 的階段就阻擋下來

Page 12: Personal Firewall

Timing Attack

Firewall 偵察到可疑的行為 凍結 -> 詢問 user 要怎麼辦

上述過程需要得到可疑程式的 pid 方法:

傳送資料的過程,藉由快速地轉換不同的 pid 來達到目的

Page 13: Personal Firewall

實例探討 1

第一個 leak test : http://grc.com/lt/leaktest.htm

由 Steve Gibson 所撰寫,使用的方法就是最簡單的 Substitution 。

單純地將 program name 和 path 修改 他將程式命名為  LeakTest.exe 後來大家延用了此名字

除了 Windows 內建的 Firewall 外,現在已經甚少有 Firewall 偵測不到此種方法

Page 14: Personal Firewall

實例探討 2

Tooleaky : http://tooleaky.zensoft.com/ Launcher 的一種 原理 & 步驟:

(1) 從 Registry 得到 IE 的執行路徑 (2) 於背景執行 IE ,給予 URL 參數 (3) 由 IE 傳送資料,若 IE 是被 Firewall 信認的 App ,

就能夠自由進行連線

Page 15: Personal Firewall

實例探討 3

Firehore : http://keir.net/firehole.html Launcher + DLL injection 開啟 IE ,並在 IE 內部載入 DLL 檔 目前絕大部分的 Firewall 都有能力阻擋此類型的

攻擊

Page 16: Personal Firewall

實例探討 4

Yalta : Default rule using 試圖透一切可能的 port 來傳送資料 (53,21,…) 若 Firewall 預設某一個 port 可以自由傳送資料,

此一方法就可能成功 目前大部分的 personal firewall 都有較全面的防護

設定,此種方法可用度降低

Page 17: Personal Firewall

實例探討 5

outbound : http://www.hackbusters.net/ob.html

Direct Network interface reaching 使用 WinPCap 的 library 將發送出去的封包偽裝成「 established

connection 」

以前的 personal firewall幾乎無法阻擋此種攻擊,目前有幾款軟體已經開始能夠阻絕此種方法

Page 18: Personal Firewall

實例探討 6

pcAudit : http://www.pcinternetpatrol.com/ DLL injection 和前述的手法相類似

Page 19: Personal Firewall

實例探討 7

AWFT : http://www.atelierweb.com/awft/ 全名為 Atelier Web Firewall Tester 包含六項測試,以 10 分評估Web 防火牆效能 透過各種方法掩飾,避開防火牆的偵測以完成與

外部的連線

Page 20: Personal Firewall

實例探討 8

THERMITE : [email protected] 把自己的 code 植入目標 process(針對 IE瀏覽

器 ) ,並建立具惡意行為的 thread 其行為是竊取瀏覽器的資訊內容 (包含瀏覽的資料

內容 ) 如果測試顯示 success ,則該換防火牆了 >”<

Page 21: Personal Firewall

實例探討 9

COPYCAT : http://mc.webm.ru/ 把自己的 code 植入網頁瀏覽器以避開防火牆的偵

測。 其行為是更改瀏覽器 thread 的內容,藉此嘗試存

取 internet 的資源。 如果不幸測試成功,將會在 C槽看到 exploited.txt

檔案。

Page 22: Personal Firewall

實例探討 10

MBTEST : [email protected] 類似 OutBound 跳過 winsock ,直接透過 NIC 進行存取

其測試軟體連結失效 >”<

Page 23: Personal Firewall

實例探討 11

WB : http://www.firewallleaktester.com包含四種測試 其行為是藉由不同的方法喚起(系統預設)瀏覽

器程式,存取其所指定的網路資源。 First :藉由 explorer.exe 執行 iexplore.exe 上網 Second :直接開啟 IE Third : First 的變形,先執行 cmd.exe Fourth : Third 的變形,先執行 AT.exe

Page 24: Personal Firewall

實例探討 12

PCAudit2 : http://www.pcinternetpatrol.com 植入自己的 code 給系統信任的軟體,使之視為其

DLL 檔 如果防火牆第一次有跳出提示訊息,則測試第二次,如果第二次沒有繼續跳出警示則防火牆不安全

Page 25: Personal Firewall

實例探討 13

GHOST:- Launcher + Timing Attack

- 一般防火牆會使用 windows API回收 parent PID and

name

- 為了防止被防火牆偵測到, Ghost 會藉由 shut down and

restart 它自己來改變 PID 並繼續傳送資料

Page 26: Personal Firewall

實例探討 14

DNStester:- recursive request

- Windows 提供一種服務 "DNS client" 來執行和處理所有 DNS請求- 設計一個特別的 DNS請求來傳送資料給遠端電腦而且不 會被防火牆發現

- 防火牆一定會被穿透 , 除非關閉 windows 的 DNS client服 務

Page 27: Personal Firewall

實例探討 15

Surfer: Launcher首先 Surfer 建立一個隱藏桌面並塞入 IE 裡 ,但他

沒有 url 之後再開啟一個 Surfer引入它自己 , 並把第 1 個

給關掉 隨後它會使用 DDE protocol 當 IE 執行時 DDE 就可以被使用

Page 28: Personal Firewall

實例探討 16

Breakout:

- Launcher + Windows messaging

- Breakout 會建立一個網頁並指向目標的 url

- 然後它能執行 Active Desktop 並將網頁設 成你的背景桌面

Page 29: Personal Firewall

實例探討 17

Jumper: Launcher + DLL injection + Registry injection 它會寫入 AppInit DLLs 這個登入檔 , 然後殺掉

explorer.exe Windows 會自動 reloaded ,然而此時的

explorer.exe 已經被 loads jumper 的 DLL

Page 30: Personal Firewall

實例探討 18

CPIL(Comodo Parent Injection Leak) DLL injection 會找出 explorer.exe且更改它的 memory 透過預設的瀏覽器來傳送資料給遠端電腦

需要安裝 HIPS 軟體來監視可疑的程式碼入侵

Page 31: Personal Firewall

實例探討 19

PCFlank: Windows messaging PCFlank利用 OLE 自動化應用程式控制 , 檢查你

的防火牆如何處理當一個程式企圖管理另一個程式的行為 .