960 likes | 1.31k Views
CH03 駭客手法研究-基礎篇. 駭客. 稱呼網路上進行攻擊行為的人 Hacker 某人喜歡學習電腦系統的細節,且知道如何展現其能力 Cracker 指某人為入侵或破解的目的,使用其 Hacker 的技能. 駭客的分類. 黑帽駭客 (Black Hats) 指惡意攻擊電腦系統及網路的人 Cracker 白帽駭客 (White Hats) 宣稱具有關於黑帽行為的相關知識,具有專業的駭客技術,用於正面的行為 可能是一個人或一群人,諸如安全顧問公司或安全分析師 (Security Analysts)
E N D
駭客 • 稱呼網路上進行攻擊行為的人 • Hacker • 某人喜歡學習電腦系統的細節,且知道如何展現其能力 • Cracker • 指某人為入侵或破解的目的,使用其Hacker的技能
駭客的分類 • 黑帽駭客 (Black Hats) • 指惡意攻擊電腦系統及網路的人 • Cracker • 白帽駭客 (White Hats) • 宣稱具有關於黑帽行為的相關知識,具有專業的駭客技術,用於正面的行為 • 可能是一個人或一群人,諸如安全顧問公司或安全分析師 (Security Analysts) • 也可能是前任的黑帽,即改過自新的駭客 (Reformed Crackers) 3
駭客的分類 (Cont.) • 道德駭客 (Ethical Hacker) 指將資訊安全的專業駭客技巧應用在防禦上 • 灰帽駭客 (Gray Hats) • 指大多不違法,又遊走法律邊緣,常以類似駭客手法便宜行事的人 • 在不同的時間,有時候當黑帽,有時候當白帽 • 自殺駭客 (Suicide Hackers) • 為某些理由癱瘓重要的架構,無視其行為將有數十年牢獄之災
道德駭客 • 不是一般從事破壞行為的駭客 • 好的道德駭客必備條件 • 精通寫程式與電腦網路技能 • 熟悉弱點研究 • 能掌握不同的入侵技術 • 遵守嚴格的行為規範 • 首先應自問的問題 • 哪些目標需要保護 • 對抗誰的入侵 • 可以獲得什麼資源的擴充
惡意駭客入侵步驟 (Cont.) • 偵查 (Reconnaissance) • 被動式偵查 (Passive Reconnaissance) • 搜尋訊息不需要與目標進行直接互動與接觸 • 使用監聽程式監聽網路 • 主動式偵查 (Active Reconnaissance) • 用任何方法與目標直接互動與接觸 • 使用工具探索或掃描該組織有哪些主機、IP、或服務 • 掃瞄 (Scan) • 攻擊發起前的階段 • 利用偵查時期獲得的資訊為基礎,核對網路與系統 • 此時駭客通常已找到單點的入侵目標
惡意駭客入侵步驟 (Cont.) • 掃描方式與工具包括電話撥號 (Dialers)、Port 掃描器、Network 對應圖、弱點掃描器等 • 獲得存取權限 (Gaining Access) • 屬於滲透階段,為駭客真正入侵的時期 • 入侵的行為可以透過區域網路,網際網路或欺騙 • 入侵手法包括緩衝區溢位、阻斷服務、攔截及密碼破解…等 • 駭客可以獲取作業系統等級 (Operating System Level)、應用程式等級 (Application Level) 或網路等級 (Network Level) 的權限
惡意駭客入侵步驟 (Cont.) • 維護存取 (Maintaining Access) • 在此階段,駭客已經取得系統的權限,並且使用此系統的資源 • 可以在這個系統上進行下列的任一項行為,包括上傳 (Uploading)、變更 (Altering)、下載 (Downloading) 程式或資料 • 也可以利用這台電腦當跳板,入侵其他電腦主機
惡意駭客入侵步驟 (Cont.) • 清除軌跡 (Clearing Tracks) • 許多主機對於連線的行為都會進行記錄,因此駭客會設法覆蓋或刪除入侵的軌跡,以隱藏活動的訊息,避免被發現 • 清除軌跡方法包括偽裝(Steganography)、建立通道(Tunneling) 以及改變 Log 檔
足跡 • Footprinting • 蒐集有關組織或目標所有資訊的過程,這些收集到的資訊可以在進行後續的入侵行動時使用 • 以特定的方法,描繪出一個組織的安全架構概況與藍圖 • 攻擊發起前 (Pre-Attack Phase) 三階段的其中之一,另外兩個為掃瞄 (Scanning) 及列舉(Enumeration)
足跡 (Cont.) • 一個攻擊者可能花費 90% 以上的時間,進行資料蒐集,只用 10% 的時間進行攻擊 • 主要目的為描繪及關注一個單一組織的網路及其所用的各式資訊系統
資訊收集 7 步驟 (Cont.) • 發掘初始資訊 • 發掘該組織的背景基本資料 • 領域名稱或 URL 查詢 : 尋找與該組織相關的領域名稱與 URL • 位置 : 尋找該組織的地理位置,包含週邊道路位置 • 接洽 (Telephone /Mail): 該組織服務台或服務部門的電話或郵件帳號 • 找出網路的範圍 • 使用工具,尋找該組織的 IP 範圍及遮罩…等資訊
資訊收集 7 步驟 (Cont.) • 探知活動中的機器 • 使用工具,在該組織的 IP 範圍內,掃描是否有經常存活 (開機) 的電腦 • 探索開啟的 Port 或存取點 • 使用工具,針對存活的機器,逐一掃瞄探索哪些 Port 已經開啟 • 偵測作業系統 • 使用工具偵測該主機使用哪種作業系統,以及這個作業系統已做哪些更新
資訊收集 7 步驟 (Cont.) • 揭露 Port 上的服務 • 不同的 Port 上會有不同的服務 • 某些服務不見得是在原先預設的 Port 上,諸如 HTTP 有可能出現在 Port 8080 上 • 繪製網路地圖 • 將前述得到的資訊繪製成網路關連地圖
URL 查詢 • Whois • 可以得到目標網站及接洽管理的資訊 • 全球 WHOIS 查詢 • http://www.whois365.com/tw • who.is • http://www.who.is • Sam Spade • Whois 的一種 • 網頁版- http://samspade.org • 單機版- http://majorgeeks.com/Sam_Spade_d594.html
URL 查詢 (Cont.) • ARIN • http://www.arin.net • 允許搜尋 whois 資料庫,找出某個網路匿名系統 (只有 IP) 的位置在哪裡 • SpiderFoot • 一個免費的「足跡」工具程式,能在 Google、Netcraft、Whois 及 DNS 中,將目標網站的相關訊息綜合,包括次領域,網頁伺服器的版本,使用者,郵件位址,網路區塊等 • http://www.binarypool.com/spiderfoot/
URL 查詢 (Cont.) • nslookup 指令 • 可以用來查詢網路領域名稱伺服器 • 也可以用來診斷 DNS 的架構 • 如果知道 DNS 的名稱,可以幫助尋找額外的 IP 位址
網路路徑描繪 • traceroute 指令 • 可以找出主機的來源及路徑資訊 • 利用 ICMP 的特性工作 • 3D Traceroute • 很好用的節點追蹤工具,能夠將追蹤的結果以 3D 立體圖表繪製 • http://www.d3tr.de/ • VisualRoute Lite • 可以監測網路上某個輸入的網站要經過多少個節點,及其連線速度的分析工具軟體 • http://www.visualroute.com/lite.html
砍站軟體 • HTTrack WebSite Copier • http://www.httrack.com/ • 一套相當容易使用的網站映射軟體 (俗稱砍站軟體),使用上相當方便,而且免費
Google Earth 技術 • Google Earth • http://earth.google.com/ • YouGetSignal.com • http://www.yougetsignal.com/ • 「 Network Location Tool」 可以查出某個IP的使用位置,並可以利用Google Maps來顯示該地址的地圖
足跡主要執行動作與步驟 • 尋找公司內部使用及對外公開的 URL • 執行 whois 尋找個人的細節資訊 • 取得 DNS 及 IP 等相關的資訊 • 鏡射 (Mirror) 整個網站及尋找人名 (英文) • 抽取網頁的重點
足跡主要執行動作與步驟 (Cont.) • 使用 Google 搜尋公司的內部的各種新聞及資訊 • 搜尋僱員的個人資訊 • 使用工具追蹤伺服器的實體位置 • 了解公司架構細節 • 追蹤郵件資訊
掃描 • Scanning • 攻擊者攻擊前,蒐集相關資訊 • 目的地範圍內特定的 IP,尤其是活著的主機 IP • 目的主機的作業系統 • 系統架構及每一台電腦上執行的服務 • 該主機上安裝的應用程式 • 有助於攻擊者決定入侵一個系統時,採用何種入侵方式
掃描的類型 • 網路的掃描 (Network Scanning) • 檢測即掃描網路上有哪些主機活著,揭露其 IP • Port 的掃瞄 (Port Scanning) • 看哪些 Port 打開,並且有服務在執行 • 掃描範圍包括 Well-Known Port 及 未知的 Port • 掃描各主機所使用的作業系統
掃描的類型 (Cont.) • 弱點的掃瞄 (Vulnerability Scanning) • 利用特殊工具 (弱點掃描程式) 與方法,檢查網路上的主機所呈現的弱點 • 先辨識目標系統的作業系統、版本、套件更新狀況,接著依據資料庫中的樣本,進行弱點的探索與偵測
掃描的步驟 • 檢查活著的系統 • 檢查開啟的 Port • 服務識別 • 作業系統的足跡 (標誌抓取) • 弱點掃瞄 • 弱點主機的網路圖 • 準備代理伺服器 • 攻擊
檢查活著的系統 • 檢查主機是否活著,最常用的方法為使用 ICMP • ICMP 會送出需求封包,並等待目的地主機回應 • ICMP 可以同時進行多個主機是否存活的測試,稱為 Ping-Sweep • 如果目的主機或網路上有開啟防火牆,並且設定不接收 ICMP 偵測,掃描工作會失敗 • 通常搭配 Port 的掃描,以確定主機是否真的活著
檢查活著的系統 (Cont.) • 使用工具 • Ping 指令 • ping -t [IP or Domain Name] • 缺點為一次只能針對一個主機 (IP) 進行測試 • Angry IP Scanner • http://www.angryip.org/w/Home • Windows 版的 IP 掃描器 • 可掃描一整段的 IP 範圍 及指定的 Port 範圍,看是否有主機活著 • 可提供有關 NETBIOS 的資訊
檢查開啟的 Port • TCP (傳輸層) 在通訊時,在 TCP 的封包表頭中有多個旗標 (Flag),這些 Flag 的用途為識別及控制的用途,每個 Flag 在封包中其實只佔用1 bit • 因為先天流程上的缺陷,駭客可以利用這些 Flag 及不完整的程序,進行主機或 Port 的掃瞄,不容易被目的地發覺
檢查開啟的 Port (Cont.) • 比較常見的 TCP Flag • Synchronize (SYN):用來初始化主機間的連接 • Acknowledgement (ACK):用來確認主機間的連接 • PUSH (PSH):立即送出緩衝的資料 • Urgent (URG):封包中的資料必須立即被處理 • Finish (FIN):通知遠端系統傳輸結束 • Reset (RST):重新啟動連線 • 網路伺服器開啟的服務在某一個特定的 TCP Port 上傾聽 (Listen),以等待使用者的連結 • HTTP Server 在 Port 80 上傾聽
檢查開啟的 Port (Cont.) • 任何一個程式在某一個特定的 Port 上傾聽,等待使用者的連結,稱這個 Port 的狀態為 Open,反之則稱這個 Port 的狀態為 Close • 三向握手協定
檢查開啟的 Port (Cont.) • 如果一個 Port 的狀態為 Open,目的地主機會傳回一個 SYN/ACK 的封包 • 如果該 Port 的狀態為 Close,目的地會傳回一個 RST 的封包 • 利用不完整的握手程序達到掃瞄目的的方法 • SYN Stealth • Xmas Scan • FIN Scan • NULL Scan • IDLE Scan • TCP Connect • RPC Scan
SYN Stealth • Half Open Scan (半開掃描) • 不會開啟一個完整的 TCP 連線
Xmas Scan • 適用於使用 RFC 793 實作的系統 • 目前的 Windows 系統不適用 • RFC 793 規定若一個關閉的 Port 收到諸如 FIN、X-mas、Null Scan 的封包,必須回應一個 RST 封包,若是開放的 Port,會忽略這些封包
FIN Scan • 與 Xmas Scan 類似
Null Scan • 類似 Xmas Scan
IDLE Scan • 一種非常難以察覺的 Port Scanning 的方法 • 攻擊者完全不需使用真實的 IP 傳送封包給被攻擊的目標主機,而 IDS (Intrusion Detection System) 會誤以為無辜的僵屍電腦為攻擊來源 • 殭屍電腦 (Zombie Computer) • 簡稱殭屍 (Zombie) ,有些人稱為肉雞 • 指一部已經被駭客、電腦病毒、或木馬入侵的電腦,通常都連上網際網路
IDLE Scan (Cont.) • 每一個 IP 封包都有一個 IPID 欄位,大部分的作業系統針對這個欄位只是循序編號 • 任何電腦若只收到 SYN/ACK 將會回覆一個RST (因為沒發出SYN),同時這封包會包含這台主機的 IPID,而每次的 SYN/ACK 連線都會讓 IPID 會加 1
IDLE Scan (Cont.) • IDLE Scan 掃描步驟 • 攻擊者的主機 A 先選擇一台殭屍電腦 Z,同時送出一個 SYN/ACK 封包,這時送回來的 RST 封包會包含 IPID,假設為 31337
IDLE Scan (Cont.) • 接下來攻擊者送出一個 SYN 封包給目標主機,來源 IP 偽造成 Z 的 IP,若目標主機有回應,將會回應給 Z • 目標主機的 Port 如果開啟,會回應一個 SYN/ACK 給 Z, Z 收到該 SYN/ACK ,會將 IPID 加 1 成為 31338,並且送回一個包含 IPID 的 RST 給目標主機 • 目標主機的 Port 如果關閉,目標主機會回應一個 RST 給 Z
IDLE Scan (Cont.) • 主機 A 再送出一個 SYN/ACK 給 Z,如果前面的偵測中目標主機的 Port 開啟,主機 Z 回應的應該是 31338 加 1 的結果,即 31339 • 如果主機 A 收到的是 31338,代表這個 Port 在之前的測試中沒有被加 1,即沒有開啟
TCP Connect • Full Open Scan • 最精確及最可靠的 TCP 掃描 • 使用系統提供的呼叫 connect() • 容易被偵測
RPC Scan • 混合使用其他 Port Scan 的方法 • 掃描所有的 TCP/UDP Port,且用 SunRPC 程式的 Null 命令嘗試是否為 RPC Port,如果為是,再判斷哪個版本及使用哪個程式
Port Scan 工具程式 • NMAP • 一個開放程式碼的工具,目前有 UNIX (Linux) 版及Windows 版 (稱為 Zenmap GUI) • 此工具程式被設計用來快速掃瞄大範圍的網路主機,並且可以使用特殊方法進行偵測,大多為讓目標主機無法察覺曾經被掃瞄過 • http://nmap.org/
Port Scan 工具程式 (Cont.) • SuperScan • 透過 Ping 檢驗 IP 是否在線上 • IP 和領域名稱相互轉換 • 檢驗目標電腦開啟的 Port • 檢驗目標電腦提供的服務 • 不需安裝,下載解壓縮後即可執行 • http://www.snapfiles.com/get/superscan.html
服務識別 • 檢視在某個 Port 上所執行的服務 • 通常執行完 Port 掃描後,接著會進行服務識別 • 一般都會將「Port掃描」與「服務識別」設計成同一組工具程式 • 常見的服務與 Port 對照表 • http://www.xuanya.com.tw/cubekm/images/port1.htm