1. 程式人生 > 其它 >實踐三 網路嗅探與協議分析

實踐三 網路嗅探與協議分析

20212806 2021-2022-2 《網路攻防實踐》第3周作業

1.實驗內容(知識總結)

網路嗅探

(1)定義
       網路嗅探是一種黑客常用的竊聽技術,利用計算機的網路介面截獲目的地為其他計算機的資料報文,以監聽資料流中所包含的使用者賬戶密碼或私密資訊等。

(2)網路嗅探器
       實現網路嗅探技術的工具稱為網路嗅探器。嗅探器捕獲的資料報文是經過封包處理之後的二進位制資料,因此通常會結合網路協議分析技術來解析嗅探到的網路資料,這樣才能恢復出TCP/IP協議棧上各層網路協議的內容,以及事件傳送的應用層資訊。

(3)網路嗅探器的原理和實現

  • 乙太網工作原理:乙太網採用了CSMA/CD技術,由於使用了廣播機制,所有與網路連線的工作站都可以看到網路上傳遞的資料。網絡卡是網路中主機接收發送資料的硬體裝置。網絡卡完成收發資料包的工作。網絡卡對於資料的接收有四種模式:
    • 廣播模式:該模式下的網絡卡能夠接收網路中的廣播資料。
    • 組播模式:該模式下的網絡卡能夠接收組播資料。
    • 直接模式:只有匹配目的MAC地址的。網絡卡才能接收該資料。
    • 混雜模式:無論其目的MAC地址是什麼,網絡卡都能夠接收一切監聽到的資料。
  • 網路監聽的原理:
    • 利用乙太網的特性把網絡卡置為混雜模式狀態的工具,一旦網絡卡設定為這種模式,它就能接收經過它的每一個資訊包。
    • 共享式網路嗅探:使用集線器連線,集線器上任意一臺主機都能夠嗅探整個集線器上的全部網路流量。
    • 互動式網路嗅探:通過MAC地址對映表來發送資料。通常有以下三種方式實現嗅探:
      MAC地址泛洪攻擊、MAC欺騙、ARP欺騙

網路協議分析

  • 定義:網路協議分析是網路嗅探器進一步解析與理解捕獲資料包必須的技術手段,是指對網路上傳輸的二進位制格式資料包進行解析,以恢復出各層網路協議資訊以及傳輸內容的技術方法。
  • 原理:網路協議分析需要從底向上逐層解析網路協議,同時進行IP分片包以及TCP會話的重組,需要解析與儲存各個網路層次上的所有包頭欄位資訊,以及最高層的應用層資料,並提供給使用者以瞭解網路資料包的全方位資訊。
  • 技術實現:在開源的軟體如Tcpdump、Wireshark和Snort中都有相應原始碼實現。
  • 網路協議分析工具:Wireshark

2.實驗過程

(1)動手實踐tcpdump

使用tcpdump開源軟體對在本機上訪問www.tianya.cn網站過程進行嗅探,回答問題:你在訪問www.tianya.cn網站首頁時,瀏覽器將訪問多少個Web伺服器?他們的IP地址都是什麼?

  • 先在kail上訪問www.tianya.cn網站

  • 在terminal執行命令 sudo tcpdump src 192.168.200.3 and tcp dst port 80 ,其中 src 和 dst 是確定傳輸方向的關鍵字,指明ip包中源地址是 192.168.37.129 ,表示只捕獲80埠的TCP協議資料包,監聽192.168.200.3的http通訊。

  • 成功得到瀏覽器訪問的Web伺服器的IP地址如下:

  • 通過 nslookup tianya.cn 命令檢視www.tianya.cn對應的IP地址

(2)動手實踐Wireshark
       使用Wireshark開源軟體對在本機上以TELNET方式登入BBS進行嗅探與協議分析,回答如下問題並給出操作過程:

       你所登入的BBS伺服器的IP地址與埠各是什麼?
       TELNET協議是如何向伺服器傳送你輸入的使用者名稱及登入口令?
       如何利用Wireshark分析嗅探的資料包,並從中獲取你的使用者名稱及登入口令?

  • 選擇在主機上進行telnet,首先將telnet開啟

  • 開啟wireshark

  • 以 bbs.fudan.edu.cn 為例,開啟windows終端在命令列輸入 telnet bbs.fudan.edu.cn 進入

  • 發現所登入的BBS伺服器的IP為 202.120.225.9 ,然後輸入 new 進行註冊,再重新進入

  • 在wireshark的過濾器直接輸入 telnet ,即可過濾顯示telnet相關的資料包,通過檢視wireshark裡面可知其埠號為23

  • 可以發現這裡傳遞使用者名稱和密碼時,是一個字元一個字元傳遞的


  • 可以看到傳遞密碼是用明文傳輸的,很容易被獲取,可知telnet是明文傳輸非常的不安全


  • 也可以通過追蹤TCP流可以看到使用者名稱和密碼

(3)取證分析實踐,解碼網路掃描器(listen.cap)

1. 攻擊主機的IP地址是什麼?
2. 網路掃描的目標IP地址是什麼?

  • 開啟下載好的 listen.pcap,選擇選單欄中的統計->會話,再點選IPv4,可以看到 172.31.4.178 和 172.31.4.188 之間有大量的雙向的網路資料包,因此可初步確定這兩個是攻擊主機IP和網路掃描的目標主機IP。

  • 檢視會話資料包內容,發現所有的請求資料包(如TCP SYN包)則是從172.31.4.178發起,所有的響應資料包(如SYN/ACK包)均是從172.31.4.188發出。

  • 攻擊主機的IP地址是: 172.31.4.178

  • 網路掃描的目標IP地址是: 172.31.4.188
    3. 本次案例使用了哪個掃描工具發起這些埠掃描?你是如何確定的?

  • 將 listen.pcap 複製到kali虛擬機器中,使用snort對二進位制記錄檔案進行入侵檢測。

sudo apt-get update  // 更新APT庫
sudo apt-get install snort  // 安裝snort
sudo chmod 777 /etc/snort/snort.conf // 給予snort.conf可讀可寫可執行許可權
snort -A console -q -u snort -c /etc/snort/snort.conf -r ~/listen.pcap // -A開啟報警模式,-q不顯示狀態報告,,-u為初始化後改變snort的UID,-c為使用後面的配置檔案,進入IDS模式,-r從pcap格式的檔案中讀取資料包

  • 可以發現本次攻擊是使用nmap發起的

4. 你所分析的日誌檔案中,攻擊者使用了哪種掃描方法,掃描的目標埠是什麼,並描述其工作原理

  • 掃描前nmap會通過arp更新目標MAC地址,所以使用Wireshark的過濾器掃描出arp包,可以看到共進行4次nmap掃描

  • 可以看出攻擊機第一次nmap掃描和第二次nmap掃描之間沒有資料包,則第一次nmap掃描為探測目標IP是否活躍,指令為 nmap -sP 172.31.4.188

  • nmap掃描原理是基於ping的,因此每次掃描時,nmap會通過ARP來確定目標MAC地址,在wireshark中過濾到四組ARP(從攻擊機到目標主機),說明共進行了四次埠掃描。

  • 觀察第二次掃描的末尾資料包,發現有大量的TCP協議、ICMP協議、UDP協議資料,並使用了大量構造的標誌位,以觸發不同的響應包。

  • 猜測該掃描為主動探測作業系統 nmap -O 掃描。Nmap內部包含了2600多種已知作業系統的指紋特徵,根據掃描返回的資料包生成一份系統指紋,將探測生成的指紋與nmap-os-db中指紋進行對比,查詢匹配的作業系統。如果無法匹配,則以概率形式列舉出可能的系統。

  • 第三次ARP後均為TCP協議資料,並且資料量龐大(從2071排到了133219),可以看到在資料包中存在大量SYN請求包,通過過濾器搜尋 tcp

  • 可以看到序號9、10、13是一組半開放掃描,使用不完整的tcp三次握手來對目標主機進行嘗試性的連線,攻擊主機的57738號埠對目標ip的3306號埠傳送SYN包,目標ip的3306號埠開放,返回一個 TCP SYN & ACK 包,然後攻擊主機發送一個 RST 包停止建立連線。這是典型的半開放掃描(TCP SYN 掃描),下面紅色和藍色框框中的也是類似,分別監測出目標主機的23號埠、80號埠和139號埠開放。

  • 再看綠色框框中,攻擊主機對目標機的955號埠傳送了SYN包,該埠返回一個 TCP RST & ACK 包,說明該埠關閉。

  • 猜測以掃描的指令可能為 nmap -sS -p 1-65535 172.31.4.188 進行TCP SYN全埠掃描。

  • 第四次ARP後,不僅有TCP協議資料,還有HTTP、TELNET、SMB應用層協議的資料。

  • 在TCP的埠中,某些埠是確定的,比如22號埠用於ssh登入。以22號埠為例使用過濾器命令為 tcp.port == 22

  • 發現除了建立TCP SYN掃描,還建立了ssh連線,這是為了探測靶機的網路服務,於是猜測攻擊機對靶機進行了 -sV 的版本掃描。

5. 在蜜罐主機上發現哪些埠是開放的?

  • 通過過濾器的 tcp.flags.syn == 1 and tcp.flags.ack == 1 可以過濾出SYN | ACK的資料包,這是目標主機反饋攻擊主機的埠活躍資訊。可檢視靶機的開放埠有:21 22 23 25 53 80 139 445 3306 5432 8009 8180

6. 攻擊主機的作業系統是什麼?

  • 使用p0f工具,p0f是一款被動探測工具,能夠通過捕獲並分析目標主機發出的資料包來對主機上的作業系統進行鑑別,即使是在系統上裝有效能良好的防火牆的情況下也沒有問題。
  • 在終端先輸入 sudo apt-get install p0f安裝p0f,再輸入 sudo p0f -r listen.pcap 探測,得知版本為linux 2.6.x。

3.學習中遇到的問題及解決

  • 問題1:Kali登入 bbs.fudan.edu.cn網站時,出現亂碼

  • 問題1解決方案:
    ①在命令列輸入”dpkg-reconfigure locales”。進入圖形化介面之後,(空格是選擇,Tab是切換,*是選中),選中en_US.UTF-8和zh_CN.UTF-8,確定後,將en_US.UTF-8選為預設;
    ②安裝中文字型,”apt-get install xfonts-intl-chinese “和” apt-get install ttf-wqy-microhei”,這時發現網頁不亂碼,系統也不亂碼;
    ③重啟 。

  • 問題2:在kali終端裡執行snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap命令時,出現以下情況

  • 問題2解決方案:許可權不足,執行sudo su命令,切換到root使用者

4.學習總結

       本章學習了tcpdump的一些命令,還有wireshark的過濾等功能。完成全部實踐後,感覺對wireshark還是不夠熟悉,其中使用nmap進行網路服務型別探查時wireshark抓包的分析還不是很清楚,在這方面還要多加努力。

參考資料