https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/
https://www.informationsecurity.com.tw/Seminar/2024_PaloAlto/

觀點

駭客入侵第二階段-掃描

2009 / 07 / 21
馮智偉
駭客入侵第二階段-掃描

IS57期介紹過駭客首部曲─足跡探測後,“Scanning”是駭客入侵的第二階段。

  傑克是戴夫以前公司的同事。最初是傑克提議2人可以共同開創一家E-Commerce電子商務公司,但是由於彼此之間意見紛歧,導致合作破裂,2人分道
揚鑣。過了不久,戴夫拿了兩人原本的計畫書到一家創投公司展示,創投公司表示願意投資,幫助戴夫成立E-Commerce電子商務公司。傑克知情後覺得自己被戴夫背叛了!他決定要向戴夫及其新成立的公司來討回公道。

  傑克知道新成立的公司若需在最短的時間內上市往往得面臨極大的壓力,所以這些新公司的網路結構設計與架設都是非常倉卒地趕工完成,通常不會對網路環境安全有很完整的考量,因此這也成了傑克優先下手的目標。

?你覺得傑克的假設是正確的嗎?

? 傑克需要什麼樣的資訊才能對戴夫的公司發動入侵攻擊?

? 傑克可以對整個公司的網路進行架構偵測而不被發覺嗎?

第二階段-掃描

  Scanning(掃描)是駭客入侵五個階段中的第二階段。藉由掃描,取得一些有
用的資訊,如特定目標之 IP 位址、作業系統、網路及主機系統架構與主機上所執行的服務等。Scanning首先搜尋目標網路上所有可以接觸到的主機,然後查出主機上開啟了哪些通訊埠,並且進一步偵測出目標主機上所執行的作業系統類型及版本(OS fingerprinting),最後刺探出目標主機上正在執行或待命的網路服務與目標主機的IP位址之間的關係。

  Scanning大致分為下列3種類別:首先是Port scanning (通訊埠端口掃描)。當駭客想要去入侵一部主機時,會傳送一連串的特殊訊息去測試此主機上有執行哪些網路服務。每一個網路服務會開啟一個特定的通訊埠。一般常用的網路服務都會用到大家所熟知的通訊埠號碼,例如HTTP使用Port 80。透過Port Scanning可得知哪些通訊埠號碼是開啟的,讓駭客知道主機上目前所執行的網路服務類型。

  再者是Network Scanning(網路架構掃描)。若能得知目標網路內有哪些主機是可以接觸到的、是“active”的,駭客便能夠縮小攻擊的範圍,知道哪些主機可以成為被攻擊的目標。最後一種掃描是Vulnerability Scanning(弱點掃描)。弱點掃描的目的在於偵測及發現目標網路內被掃描的主機上所存在的弱點與漏洞,以便利用這些弱點與漏洞來進行入侵攻擊。

  一般駭客用來進行掃描方式有:Vanilla or TCP connect scanning、Half open or TCP SYN scanning、Stealth scanning、TCP FTP proxy (bounce attack) scanning、SYN/FIN scanning using IP fragments UDP scanning、ICMP scanning、REVERSE IDENT scanning、IDLE scan、LIST scan、RPC scan、WINDOW scan、Ping Sweep和Strobe scanning等不下數十種,在此我們選擇幾種常見的掃描方式來做較深入的說明。

TCP Connect / Full Open Scan

  這是最常用及最值得信賴的 TCP 掃瞄方式。各種作業系統所提供的connect system call的主要功能就是用來讓主機上有開啟的通訊埠與外部建立連線。為了成功與外界建立連線,必須回應正確的通訊埠狀態。

  如果主機上一個通訊埠是開啟的,connect會成功執行。相反如果是關閉的則會傳回unreachable的訊息。

FTP Bounce Scan

  此種掃描方式是利用FTP伺服器存在的Bounce Attack弱點來進行掃描。所謂的Bounce attack,其實與IP假冒攻擊(IP spoofing) 很類似,這種攻擊方式能夠讓攻擊者透過FTP伺服器發動攻擊而保持自身隱匿的身分。因此,利用Bounce Attack允許使用者要求 FTP 伺服器與一部第三方主機的任何通訊埠建立連線的這個弱點。攻擊者可以利用 FTP 伺服器來做通訊埠掃描並回傳結果。

  這類的掃描方式很難被追蹤,不但可存取到 FTP 伺服器端的內部網路,並且可以繞過防火牆。

UDP Scanning

  此種掃描方式是使用 UDP 協定的掃描方式來代替 TCP協定的掃描方式,雖然 UDP 協定結構比較簡單,但是掃描的方法流程卻比較困難。

  至於UDP RECVFROM Scanning,雖沒有root權限的使用者沒有辦法直接讀取到通訊埠無法到達“port unreachable errors”的錯誤訊息,但LINUX作業系統收到此錯誤訊息的時候,還是會以一種不直接方式通知使用者,透過這種掃描方式,即使沒有管理者權限的使用者也可以對目標進行通訊埠掃描。

ICMP Scanning

  ICMP的掃描方式是傳送ping的ICMP封包至目標網路上所有的主機,並且依據回應結果來探知有哪些主機是開啟的;此種掃描方式可以同時ping多部主機,所以執行的速度很快,更可以更改timeout數值 (-t選項)來使掃描過程更快,更有效率。
List Scan和Idle ScanList Scan的掃描方式不需要使用ping或是通訊埠掃描就能簡單地產生並列印出目標網路電腦的IP及主機名稱,也能夠順便執行網域名稱解析;Idle Scan則為進階的掃描方式,它允許對目標網路主機執行真正的隱藏式TCP通訊埠掃描,值得注意的是,此種掃描方式非常隱密,並且不容易被察覺。

Window Scan

  此種掃描方式類似於ACK scan,不同點在於它除了可以探測開啟的通訊埠外,有時還可以測出被防火牆或作業系統過濾的通訊埠。它的原理在於不同的作業系統會回傳不同的TCP window size,它會依據所傳的資訊來做不同的判讀,產生最正確的結果

  除此之外,還有一些常見的掃描工具可以幫助駭客進行掃描,甚至不需要具備太高深的電腦技術也可成功達到掃描被入侵目標主機的目的,像是Nmap,這是一個免費的開放程式碼自由軟體,專門用於網路探勘掃描,它被設計來快速地掃描大型的網路。

  Nmap的特點包括可以用來做通訊埠掃描、作業系統偵測、版本偵測與ping sweeps,還有其他各種類用於列舉(enumeration)的工具;它可以在一個session 之內掃描大量的電腦主機,而且提供多種作業系統版本,是一個具有能力執行所有種類的掃描方式的強大工具。

  Nmap可以使用的掃描方式有許多,例如:Xmas tree。這是藉由傳送各式各樣種類的掃描封包 (Xmas-tree packets) 來檢查目標主機所執行的TCP服務;SYN Stealth,此一方式通常被稱為“ half open scan ”,因為它不會開啟一個完整的TCP連線:Null Scan,一種進階的掃描方式,通常可以毫無阻礙地穿越防火牆來進行掃描;Windows scan,類似ACK scan,用來偵測目標主機所開啟的通訊埠;?ACK Scan,用來勾勒出目標防火牆的規則設定。

  或者是像Nessus,這是弱點掃描的工具軟體。專門用於尋找各種軟硬體的設定漏洞和系統弱點,攻擊者可以利用此類工具軟體來在目標電腦主機上尋找可供入侵的管道。Nessus是採用Plug-in的結構,它是利用 NASL (Nessus Attack Scripting Language) 程式語言撰寫其 Plug-ins來達到新掃描方式擴充的功能,可以同時測試無限量的電腦主機,屬於智慧型偵測工具。

  此外,像是Retina與GFI LANGUARD也是網路弱點評估的掃描工具軟體。 最後要介紹的2種工具分別為NetScan Tools Pro 2003和SuperScan。

  NetScan可偵測出一個 IP 位址的擁有者,將 IP位址轉換成主機名稱,做網路掃描,做通訊埠掃描來探知目標主機所執行的服務,確認電子郵件位址,偵測出一個網域的擁有者,列舉一個網域內所有的主機等,操作介面如圖5;

  SuperScan則是集 TCP 掃描、Ping與主機名稱解析等功能於一身之弱點掃描工具軟體。它可以對任何範圍的 IP 位址,針對預設的通訊埠列表,特定通訊埠範圍,或是任何通訊埠進行Ping掃描以及通訊埠掃描。
最後讓我們就Scanning這個階段來做個回顧:

1. Scanning是駭客收集資訊的一個階段。

2. 掃描階段之目的是在於偵測出目標網路上可以被存取的系統主機、所開啟的通訊埠、安裝的作業系統版本和類型,以及所執行的服務。

3. 一些現今最受歡迎的掃瞄工具有Nmap、Nessus及Retina。

4. 代理伺服器練(Chain of proxies)可以被用來防止反查,隱藏攻擊的實際來源。

5. 使用者可以利用安裝防火牆,阻擋一般的掃描攻勢。