踩點foot printing,獲得一定信息(例如IP地址范圍、DNS服務器地址和郵件服務器地址等),下一步確定目標網絡范圍內哪些系統是活動的、提供哪些服務;與盜竊案踩點相比,掃描就像辨別建筑物位置并觀察有哪些門窗。
掃描scanning,通過向目標主機發送數據報文,根據響應獲得目標主機的情況。掃描主要目的是使攻擊者對目標系統提供的各種服務進行評估,以便在最有希望的途徑上攻擊。掃描分為3種:地址掃描、端口掃描和漏洞掃描,端口掃描是網絡掃描核心技術。
(1)地址掃描,簡單做法是通過ping判斷某個IP地址是否有活動主機,或者主機是否在線。Ping向目標系統發送ICMP 回顯請求報文,等待返回的ICMP回顯應答。Ping程序一次只能對一臺主機進行測試。Fping以并發形式向大量地址發出 ping請求。地址掃描預防:在防火墻規則中加入丟棄ICMP回顯請求信息,或者在主機中設置禁止對這樣的請求信息應答。
(2)端口掃描,為區別通信的程序,在所有IP數據報文中有源地址和目的地址,也有源端口號與目的端口號。常用服務使用標準端口號,只要掃描到相應端口就能直到目標主機上執行著什么服務,然后入侵者才能針對這些服務進行相應的攻擊。
(3)漏洞掃描,使用漏洞掃描程序對目標系統進行信息查詢。通過漏洞掃描,可以發現系統中存在不安全的地方。漏洞掃描器是一種自動檢測遠程或本地主機安全性弱點的程序。
漏洞掃描器的外部掃描:在實際的Internet環境下通過網絡對系統管理員所維護的服務器進行外部特征掃描;
漏洞掃描器的內部掃描:以系統管理員的身份對所維護的服務器進行內部特征掃描。
1)端口
端口是由TCP/IP協議定義,是指邏輯意義上的端口,一個端口是一個潛在的通信通道,也就是一個入侵通道。
端口和進程一一對應,端口相當于兩臺計算機進程間的大門,目的是為了讓兩臺計算機找到對方進程,所以必須給端口進行編號。
端口范圍0~65535,分為標準端口和非標準端口。標準端口范圍0~1023,分配一些固定服務。非標準端口范圍1024~65535,不分配固定服務,許多服務都可以使用。病毒木馬程序常常利用這些端口從事服務活動。
端口掃描,向目標主機TCP/IP服務端口發送探測數據包,記錄目標主機的響應。分析響應判斷服務端口是打開、關閉,可以得知端口提供的服務或信息。只要掃描到相應端口開著,獲得目標主機運行的服務,入侵者針對這些服務進行相應的攻擊。
掃描器Scanner主要功能:
檢測主機是否在線;
掃描目標系統開放的端口,測試端口的服務信息;
獲取目標操作系統的敏感信息;
破解系統口令;
掃描其他系統敏感信息。
CGI掃描器、ASP掃描器、從各個主要端口取得服務信息的掃描器、數據庫掃描器和木馬掃描器等。
2)端口掃描分類
端口掃描分為TCP connect掃描(全連接掃描)、TCP SYN掃描(半打開掃描)、秘密掃描和間接掃描等。TCP connect掃描是最基礎的一種端口掃描方式。TCP SYN掃描在掃描過程中沒有建立完整的TCP連接,故又稱為半打開掃描。秘密掃描包含TCP FIN掃描、TCP ACK掃描等多種方式。
TCP Connect掃描,調用套接口函數connect()連接目標端口,完成三次握手過程。客戶發送一個SYN分組給服務器;服務器發出SYN/ACK分組給客戶;客戶再發送一個ACK分組給服務器。
TCP SYN掃描,稱為半打開掃描(Half-Open Scanning),沒有建立完全的TCP連接。
掃描主機向目標端口發送一個SYN分組,收到來自目標端口的SYN/ACK分組,則可推斷該端口處于監聽狀態;如果收到一個RST/ACK分組,則說明該端口未被監聽。執行端口掃描的系統隨后發出RST/ACK分組,這樣并未建立任何“連接”。但是,打開的半開連接數量過多,目標主機會形成“拒絕服務”。
TCP FIN掃描,申請方主機向目標主機一個端口發送TCP標志位FIN置位的數據包,如果目標主機該端口是“關”狀態,則返回一個TCP RST數據包;否則不回復。根據這一原理可以判斷對方端口是處于“開”還是“關”狀態。
TCP ACK掃描,用于探測防火墻的規則集。它可以確定防火墻是否只是簡單地分組過濾、只允許已建好的連接(設置ACK位);還是一個基于狀態的、可執行高級的分組過濾防火墻。
TCP NULL掃描,該技術是關掉所有的標志。根據RFC793文檔規定,如目標端口是關閉的,目標主機應該返回RST分組。
TCP SYN/ACK掃描,故意忽略TCP的3次握手。TCP連接化簡為SYN-SYN/ACK-ACK形式的3次握手。掃描主機不向目標主機發送SYN數據包,而先發送SYN/ACK數據包。目標主機報錯則判斷為一次錯誤連接,若目標端口開放目標主機將返回RST信息。
UDP掃描,向目標端口發送一個UDP分組。如果目標端口發回“ICMP port unreachable”,則表示端口關閉;否則端口開放。
3)端口掃描技術
Ping掃射、TCP/UDP端口掃描、操作系統檢測和旗標獲取。
①Ping掃射,判別主機是否“活動”的有效方式。Ping用于向目標主機發送ICMP回射請求(Echo Request)分組,期待由此引發的表明目標系統“活動”的回射應答(Echo Reply)分組。Ping掃射工具:Ping命令和掃射網段fping、WS_ping等。
②TCP/UDP端口掃描,連接目標主機的TCP和UDP端口,確定哪些服務正在運行及服務版本號,發現相應服務程序的漏洞。掃描工具:Superscan和NetScan Tool Pro。
③操作系統檢測,許多漏洞和操作系統緊密相關,黑客確定操作系統類型對于攻擊目標十分重要。探測操作系統技術分為兩類:利用系統旗標信息,利用TCP/IP堆棧指紋;每種技術細分為主動鑒別和被動鑒別。檢測工具:Nmap、Queso和Siphon。
④旗標獲取,利用一個打開端口識別系統提供的服務類型和版本號。常用方法:連接到一個端口,按Enter鍵幾次,看返回什么類型信息。
旗標獲取實例
[Netat_svr#]Telnet 192.168.5.33 22
SSH-1.99-OpenSSH_3.1p1
表明端口提供SSH服務,版本號為3.1p1。
一般的服務器配置安全防護設備,有防火墻、入侵檢測,重要安全服務器配置蜜罐系統、防DoS攻擊系統和過濾郵件等。根據掃描結果判斷,目標主機使用了哪些安全防護設施。
獲取內容包括
獲取目標的網絡路徑信息。目標網段信息:確認目標所在網段,掩碼情況;判斷安全區域劃分情況;為可能的跳板攻擊做準備。目標路由信息:確認目標所在具體路由情況,判斷路由路徑的各個設備類型,如路由器、三層交換機、防火墻。
了解目標的具體路由。確認目標是否安裝安全設施,包括防火墻、入侵檢測和蜜罐系統。
了解目標使用的安全設備。包括入侵檢測、日志審計和防病毒。
通過掃描,入侵者掌握目標系統使用的操作系統,下一個工作是查點(enumeration)。
查點,搜索特定系統上用戶和用戶組名、路由表、SNMP信息、共享資源、服務程序及旗標等信息。查點采用技術依操作系統而定。
windows采用技術,查點NetBIOS線路、空會話(NULL Session)、活動目錄(Active Directory)和SNMP代理等。
網絡踩點收集網絡用戶名、IP地址范圍、DNS服務器以及郵件服務器等有價值信息。
網絡掃描確定哪些系統在活動,并能從因特網訪問。
通過掃描,入侵者掌握目標系統使用的操作系統,下一個工作是查點(enumeration)。
查點,搜索特定系統上用戶和用戶組名、路由表、SNMP信息、共享資源、服務程序及旗標等信息。查點采用技術依操作系統而定。
Windows采用技術,查點NetBIOS線路、空會話(NULL Session)、活動目錄(Active Directory)和SNMP代理等。
網絡踩點收集網絡用戶名、IP地址范圍、DNS服務器以及郵件服務器等有價值信息。
網絡掃描確定哪些系統在活動,并能從因特網訪問。
①確定目標系統是否在活動
Ping,向目標系統發送ICMP回送請求(Echo Request)分組,期待目標系統ICMP回送應答(Echo Reply)分組。對于中小規模網絡,這種方法確定系統是否在活動。對于大規模網絡,Ping效率低下。
Windows系統,有許多ICMP Ping掃描工具。Fping是以并行的輪詢形式發出大量Ping請求。
Fping兩種用法:一種是通過標準輸入設備(stdin)向它提供一系列IP地址;一種是從文件中讀取,每行放一個IP地址,組成一個文件abc.txt,格式如下。
192.168.26.1
192.168.26.2
……
192.168.26.253
192.168.26.254
然后,使用“-H”參數讀入文件:
C:>fping –H abc.txt
Fast pinger version 2.22
(c) Wouter Dhondt (http://www.kwakkelflap.com)
Pinging multiple hosts with 32 bytes of data every 1000 ms:
Reply[1] from 192.168.26.1: bytes=32 time=0.5 ms TTL=64
Reply[2] from 192.168.26.2: bytes=32 time=0.5 ms TTL=64
……
192.168.26.134 request timed out(該機器沒有啟動)
……
Reply[253] from 192.168.26.253: bytes=32 time=0.5 ms TTL=64
Reply[254] from 192.168.26.254: bytes=32 time=0.5 ms TTL=64
Ping statistics for multiple hosts:
Packets:Sent = 254, Received = 127, Lost = 127 (50% loss)(機器活動數量127臺,未啟動數量127臺)
Approximate round trip times in milli-seconds:
Minimum = 0.2 ms, Maximum = 0.5 ms, Average = 0.3 ms
②確定哪些服務正處于監聽狀態
對目標系統的TCP和UDP端口進行連接,以確定該系統正在運行哪些服務的過程就稱為端口掃描。
SuperScan,黑客工具,網絡安全工具。黑客利用拒絕服務攻擊DoS收集遠程網絡主機信息。作為安全工具,SuperScan能夠發現網絡中的弱點,Ping掃描、TCP端口掃描、UDP端口掃描,組合多種技術同時掃描。
advanced port scanner,多線程端口掃描器。掃描器為一般端口列出詳情,在掃描前預先設置掃描的端口范圍或者基于常用端口列表,掃描結果以圖的形式顯示。
端口掃描檢測程序,Windows平臺Genius 2.0軟件監測簡單的端口掃描活動,適用于Windows 2003。Genius在一段給定時間內同時監聽大量的端口打開請求,當它監測到一次掃描時,就會彈出一個窗口向你報告來犯者的IP地址和DNS主機名。
③確定被掃描系統的操作系統類型
確定操作系統類型兩個方法:主動協議棧指紋鑒別,被動協議棧指紋鑒別。TCP/IP協議棧只在RFC文檔中描述,沒有統一的行業標準,各個公司的操作系統在TCP/IP協議棧實現上不相同。
協議棧指紋鑒別,不同廠家TCP/IP協議棧實現存在細微差別,通過探測差異,對目標系統的操作系統進行比較準確的判別。
主動協議棧指紋鑒別基本內容:
FIN探測分組。給一個打開端口發送一個只有FIN標志位的TCP數據包,Windows發回一個FIN/ACK分組。
ACK序號。給一個關閉TCP端口發送一個FIN/PSH/URG數據包,Windows發回序號為初始序號加1的ACK包。
虛假標記的SYN包。在SYN包的TCP首部設置一個準確定義的TCP標記,Windows系統在響應字節中會復位連接。
ISN初始化序列號。在響應一個連接請求時,Windows系統選擇TCP ISN時采用一種時間相關的模型。
TOS服務類型。ICMP端口不可達消息,Windows送回包值為0。
主機使用的端口。Windows開放一些特殊端口,137、139和445。
被動協議棧指紋鑒別基本內容:
主動協議棧指紋識別主動向目標發送數據包,被IDS捕獲。隱秘識別遠程操作系統,需要被動協議棧指紋識別。
被動協議棧指紋識別和主動協議棧指紋識別相似,不主動發送數據包,被動捕獲遠程主機返回的包,分析操作系統類型或版本。
TCP/IP會話,三個基本屬性識別操作系統。
Windows三個基本屬性:
TTL = 128,Time-To-Live 表示存活期。
Windows Size窗口大小 = 0x402e。
Don't Fragment 位(DF)= 0(分片)。
被動分析這些屬性,遠程操作系統類型為Windows。
⑷端口掃描器
①端口掃描程序Nmap(Network Mapper)
Nmap,網絡發現Network Discovery和安全審計Security Auditing工具,跨平臺端口掃描工具。
NMap網絡連接端掃描軟件,用來掃描網上電腦開放的網絡連接端,確定哪些服務運行在連接端,推斷計算機運行哪個操作系統 fingerprinting。
Nmap基本功能
主機發現Host Discovery,端口掃描Port Scanning,版本偵測Version Detection,操作系統偵測Operating System Detection。
四項功能之間存在依賴關系,首先主機發現,確定端口狀況,確定端口運行具體應用程序與版本信息,進行操作系統的偵測。
四項基本功能之上,Nmap提供防火墻與入侵檢測系統規避技巧,綜合應用四個基本功能的各個階段;Nmap提供Scripting Language腳本引擎功能,腳本對基本功能補充和擴展。
Zenmap,Nmap官方提供的Python語言編寫的的圖形界面,運行在不同操作系統平臺。
Zenmap,常用操作命令保存為profile,用戶掃描時選擇profile。可以比較不同的掃描結果;提供網絡拓撲結構圖形顯示功能。
Profile欄位,Zenmap默認的Profile或用戶創建的Profile。
Command欄位,Profile對應的命令或者用戶指定的命令。
Topology選項,顯示掃描的目標機與本機之間拓撲結構。
主機發現
用于發現目標主機是否在線(Alive,處于開啟狀態),主機發現原理與Ping命令類似,發送探測包到目標主機,如果收到回復說明目標主機是開啟的。
Wireshark抓包,scanme.nmap.org的IP地址182.140.147.57發送四個探測包:ICMPEcho,80和135端口的TCP SYN包,53端口的UDP包(DNS domain)。
收到ICMP Echo回復與80端口回復,確定scanme.nmap.org主機正常在線。
端口掃描Port Scanning
Nmap最基本最核心功能,確定目標主機的TCP/UDP端口開放情況。Nmap命令行參數來指定掃描方式和掃描端口。
Nmap通過探測將端口劃分為六個狀態:
open,端口開放;
closed,端口關閉;
filtered,端口被防火墻IDS/IPS屏蔽,無法確定其狀態;
unfiltered,端口沒有被屏蔽,是否開放需要進一步確定;
open|filtered,端口是開放的或被屏蔽;
closed|filtered,端口是關閉的或被屏蔽。
掃描結果,橫線處寫明共有589個端口關閉;紅色框圖中列舉出開放的端口和可能開放的端口。
版本偵測,確定目標主機開放端口運行的具體的應用程序及版本信息。圖顯示操作系統Windows版本信息。
結果看到996個端口關閉,4個open端口版本偵測。圖中紅色為版本信息,紅色線條劃出部分版本偵測的附加信息,從應用中檢測到微軟特定應用服務,推斷對方運行Windows操作系統。
操作系統偵測,檢測目標主機運行操作系統及設備類型等,Nmap使用TCP/IP協議棧指紋識別不同操作系統和設備,2600多種操作系統與設備類型。指紋數據庫nmap-os-db,圖顯示設備類型信息。
圖可看到,指定-O選項,先進行主機發現與端口掃描,根據掃描到端口來進行操作系統偵測。結果信息:設備類型、操作系統類型與CPE描述、操作系統細節、網絡距離等。
3. 進行網絡監聽
踩點收集網絡用戶名、IP地址范圍、DNS服務器以及郵件服務器等信息。
掃描獲得目標主機端口開關、運行服務以及操作系統類型。
查點搜索目標主機系統用戶名、路由表、SNMP信息、共享資源、服務程序及旗標等信息。
黑客利用網絡監聽,截獲網絡上傳輸的信息,取得超級用戶權限,獲取用戶賬號和口令。
網絡監聽只能連接同一網段主機,局域網同一個網段所有網絡接口都可以訪問到物理媒體上傳輸的數據,每一個網絡接口都有一個唯一的mac地址,在MAC地址和IP地址之間使用ARP和RARP協議進行相互轉換。
以大網的工作原理,將要發送的數據包發往連接在同一網段中的所有主機,在包頭中包含應該接收數據包的主機的正確地址,只有與數據包中目標地址相同的主機才能接收到信息包。
主機工作在監聽模式,無論數據包中的目標物理地址是什么,主機都將接收。
網絡監聽工具嗅探器Sniffer,軟件、硬件、網絡分析儀。
①HUB和網卡工作原理
以太網等很多網絡是基于總線方式,物理上是廣播的,就是當一個機器發給另一個機器的數據,共享HUB先收到然后把它接收到的數據再發給HUB上的其他每個接口,所以在共享HUB所連接的同一網段的所有設備的網卡都能接收到數據。
而對于交換機,其內部單片程序能夠記住每個接口的MAC地址,能夠將收到的數據直接轉發到相應接口連接的計算機,不像共享HUB那樣發給所有的接口,所以交換式網絡環境下只有相應的設備能夠接受到數據(除了廣播包)。
網卡工作在數據鏈路層,在數據鏈路層上數據是以幀為單位傳輸的,幀有幾部分組成,不同的部分執行不同的功能。其中,幀頭包括數據的MAC地址和源MAC地址。幀通過特定的稱為網絡驅動程序的軟件處理進行成型,然后通過網卡發送到網線上,通過網線到達目標機器,在目標機器的一端執行相反的過程。
目標機器網卡收到傳輸來的數據,認為應該接收就在接收后產生中斷信號通知CPU,認為不該接收就丟棄,所以不該接收的數據網卡被截斷,計算機根本不知道。
CPU得到中斷信號產生中斷,操作系統根據網卡驅動程序中設置的網卡中斷程序地址調用驅動程序接收數據。網卡收到傳來的數據,先接收數據頭的目標MAC地址。
只有目標MAC地址與本地MAC地址相同的數據包(直接模式)或者廣播包(廣播模式)或者組播數據(組播模式),網卡才接受,否則數據包直接被網卡拋棄。
網卡通常有4種接收數據方式;廣播方式,接受網絡中的廣播信息;組播方式,接受組播數據;直接方式,只有目的網卡才能接受該數據;混雜模式,接受一切通過它的數據,而不管該數據是否是傳給它的。網卡工作混雜模式,可以捕獲網絡上所有經過的數據幀,這時網卡就是嗅探器。
②網絡監聽基本原理
Sniffer基本工作原理,讓網卡接受一切所能接受的數據。Sniffer工作過程分為三步:網卡置于混雜模式,捕獲數據包,分析數據包。
ARP協議,IP地址到MAC地址轉換,地址映像關系存儲在ARP緩存表。黑客攻擊ARP緩存表,將發送給正確主機的數據包,由攻擊者轉發給其控制的另外主機。
共享式網絡環境,攻擊者把網卡設置為混雜模式。
交換式網絡環境,攻擊者試探交換機是否存在失敗保護模式(Fail-Safe Mode);交換機維護IP地址和MAC地址映像關系需要一定時間,網絡通信出現大量虛假MAC地址,某些類型交換機出現過載情況會轉換到失敗保護模式,工作模式與共享式相同。
交換機不存在失敗保護模式,需使用ARP欺騙。ARP欺騙需要攻擊者主機具有IP數據包的轉發能力,擁有兩塊網卡,假設IP地址分別是192.168.0.5和192.168.0.6,插入交換機兩個端口,它截獲目標主機192.16.0.3和網關192.168.0.2之間的通信,如圖4-26所示。
主機A(192.168.0.4)通過網關(192.168.0.2)訪問因特網,廣播ARP請求,要求獲得網關MAC地址。
交換機收到ARP請求,將請求包轉發給各個主機;交換機將更新MAC地址和端口之間的映射表,主機A綁定所連接的端口。
網關收到ARP請求,發出帶有網關MAC地址的ARP響應。
網關更新ARP緩存表,綁定主機A的IP地址和MAC地址。
交換機收到網關對主機A的ARP響應,查找它的MAC地址和端口之間映射表,轉發ARP數據包到相應端口。
交換機更新MAC地址和端口之間的映射表,即將192.168.0.2綁定連接端口。
主機A收到ARP響應包,更新ARP緩存表,綁定網關的IP地址和MAC地址。
主機A用新MAC地址信息把數據發送給網關,通信信道建立。
在ARP欺騙的情況下,攻擊者誘使目標主機(192.168.0.3)、網關(192.168.O.2)與其通信;攻擊者偽裝成路由器,使目標主機和網關之間所有數據通信經由攻擊者主機轉發,攻擊者可對數據隨意處理。
如果攻擊者執行兩次ARP欺騙,就能同時欺騙目標主機和網關。
③Sniffer演示
硬件Sniffer價格昂貴,功能非常強大,可以捕獲網絡上所有的傳輸,并且可以重新構造各種數據包。Sniffer Pro、Wireshark等軟件,優點是物美價廉易于使用,缺點是無法捕獲網絡上所有的數據傳輸,無法真正了解網絡的故障和運行狀態。
WireShark,運行在多個操作系統平臺上的網絡協議分析工具,主要作用嘗試捕獲網絡包,顯示包的詳細情況。
WireShark是今天最好的開源網絡協議分析軟件,Etheral更高級的演進版本,包含WinPcap;通常運行在路由器或有路由功能的主機上,這樣就能對大量的數據進行監控,幾乎能得到以太網上傳送的任何數據包。
WireShark-win32和WireShark-win64兩個版本,WireShark-win32可在大多數電腦系統上運行,WireShark-win64必須安裝在64位CPU的電腦和64位操作系統。圖4-27、圖4-28和圖4-29分別顯示WireShark捕獲數據包設置、捕獲數據包、捕獲TCP數據包。
@木子雨辰,將一直帶給大家信息安全知識,由淺至深、采用體系化結構逐步分享,大家有什么建議和問題,可以及留言,多謝大家點擊關注、轉發、評論,謝謝大家。
大家如果有需要了解安全知識內容需求的可以留言,溝通,愿與大家攜手前行。