1. 程式人生 > 其它 >20212931 2021-2022-3 《網路攻防實踐》第三次實驗任務

20212931 2021-2022-3 《網路攻防實踐》第三次實驗任務

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

一、實驗內容

(一)原理

  • 網路嗅探

    簡介:指利用計算機的網路介面截獲其它計算機的資料報文的一種手段。
    常見型別:共享式網路嗅探(集線器)、互動式網路嗅探(MAC地址對映表)、類Unix網路嗅探技術實現(核心態的BPF和使用者態的libpcap抓包工具庫)、Windows網路嗅探技術實現
    網路嗅探器:一般基於標準介面BPF和libpcap,最常用包括libcap抓包開發庫、tcpdump以及wireshark嗅探器軟體(類Unix平臺和Windows平臺)。

  • 網路協議分析

    定義:為了獲取網路嗅探所截獲的,經過封包過程組裝的,二進位制格式原始報文內容中的內部資訊,根據TCP/IP協議棧的協議規範重新還原資料包在各個協議層上的協議格式及內容。
    步驟:

    1.網路嗅探得到的原始資料是在鏈路層傳輸的二進位制資料包。
    2.對幀結構進行分析,得到幀頭各欄位結構,根據幀頭欄位確定網路層的協議型別,並提取包含網路層資料的內容。
    3.進一步對IP資料包進行分析,確定傳輸層協議型別,提取傳輸層資料內容。
    4.根據TCP或UDP目標埠確定確定具體的應用層協議,得到應用層特定協議的應用互動內容。
    5.依據相應應用層協議對資料進行整合恢復,得到實際傳輸資料。

(二)要求

  • 動手實踐tcpdump

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

  • 動手實踐Wireshark

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

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

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

    a.攻擊主機的IP地址是什麼?
    b.網路掃描的目標IP地址是什麼?
    c.本次案例中是使用了哪個掃描工具發起這些埠掃描?你是如何確定的?
    d.你所分析的日誌檔案中,攻擊者使用了那種掃描方法,掃描的目標埠是什麼,並描述其工作原理。
    e.在蜜罐主機上哪些埠被發現是開放的?
    f.攻擊主機的作業系統是什麼?


二、實驗過程

(一)tcpdump

  • 利用tcpdump使用命令tcpdump -n src [主機地址] and tcp port 80 and tcp[13] = 2 or tcp[13] = 18監聽預設網絡卡
  • 其中-n表示對地址以數字方式顯式,否則顯式為主機名,也就是說-n選項不做主機名解析。
  • tcp[13] = 2 or tcp[13] = 18篩選SYN和SYN-ACK資料包
  • 由圖可知,訪問了以下WEB伺服器

    124.225.206.22.80
    111.206.209.249
    124.225.214.206
    124.225.214.214
    18.224.230.138(亞馬遜雲伺服器,一度讓我懷疑人生)
    124.225.206.22

(二)wireshark

入侵檢測

  • 開啟wireshark捕獲eth0的資料包
  • 利用命令列訪問復旦大學BBS伺服器(水木清華已然不對外開放,昔日的輝煌無法得見)
  • 通過捕獲的資料包可以得知ip和埠
  • 使用guest預設登入,利用wireshark的tcp流追蹤,便可以找到完整的使用者名稱口令及其傳輸過程,重複傳輸兩次資料

(三)取證分析

  • 首先利用snort對記錄檔案進行入侵檢測
  • 安裝:sudo apt-get install snort並給予許可權sudo chmod 777 /etc/snort/snort.conf
  • 執行指令查詢(-A是開啟報警模式,-q為不顯示狀態報告,-r為從pcap格式的檔案中讀取資料包)(Wireshark匯入檔案後利用統計conversations也可觀察)
  • 可知:172.31.4.178 掃描了 172.31.4.188,利用nmap掃描

協議分析

  • 1.nmap常用掃描技術

    目前確定了工具為nmap,想要在龐大的資料流中找到掃描位置,就要了解nmap幾種常見的掃描技術原理

    Tcp SYN Scan (sS):半開放掃描,Nmap傳送SYN包到遠端主機,不產生任何會話。
    Tcp connect() scan(sT):Tcp connect()掃描需要完成三次握手,並且要求呼叫系統的connect()。Tcp connect()掃描技術只適用於找出TCP和UDP埠。
    Udp scan(sU):傳送UDP資料包到目標主機,並等待響應,如果返回ICMP不可達的錯誤訊息,說明埠是關閉的,如果得到正確的適當的迴應,說明埠是開放的。
    PING Scan (sP):只用於找出主機是否是存在在網路中,PING掃描需要ROOT許可權,如果使用者沒有ROOT許可權,PING掃描將會使用connect()呼叫。
    版本檢測(sV):掃描目標主機和埠上執行的軟體的版本,使用版本檢測掃描之前需要先用TCP SYN掃描開放了哪些埠,從開放的埠獲取資訊來判斷軟體的版本。
    OS檢測(O):遠端檢測作業系統和軟體,把TCP和UDP資料包傳送到目標機器上,然後檢查結果和資料庫對照。

  • 2.分析

    根據之前對攻擊機和靶機IP的確定,在wireshark中篩選ARP(nmap每次探測主機活躍是在廣播域內廣播arp request報文,而nmap每次掃描之前都會進行主機活躍探測),即可確定一共四次掃描。
    因為第一次和第二次掃描直接沒有資料包互動,可以確定第一次是採用nmap -sP進行主機活躍探測。

    定位第二次掃描資料包的開始

    觀察後續資料包,可以發現很多SYN資料包被髮送,但仍無法確認具體掃描型別

    定位第二次掃描資料流末尾,觀察到很多對埠1的資料包,異常,且使用了大量構造的標誌位,以觸發不同的響應,由此可以確定掃描型別nmap -O

    觀察第三次掃描,發現往返資料包量為13W,同時瀏覽其中的資料包型別,大多為SYN標誌,對各類不同埠,不產生任何會話,由此猜測,折半,對65535埠的全掃描,具體命令nmap -sS -p 1-65535


    對於最後一次掃描,掃描時間遠長於其他掃描,猜測可能是-sV服務探測或者-A全域性掃描,具體進一步查詢,SYN標誌的半開掃描,篩選埠8180(http),建立連線,確定nmap -sV


    確定開放埠,則篩選SYN和SYN.ACK標誌位即可tcp.flags.syn == 1 and tcp.flags.ack == 1,而且基於之前第三次掃描確定為全埠掃描,檢索在第三次掃描資料流中即可。

    確定作業系統利用被動探測工具p0f,它能夠通過捕獲並分析目標主機發出的資料包來對主機上的作業系統進行鑑別,即使是在系統上裝有效能良好的防火牆的情況下也沒有問題。(別忘記安裝)


三、實驗體會

本次實驗是對簡單的網路嗅探和被動檢測分析的驗證,難點在於分析環節,不僅需要對掃描和攻擊的原理足夠清晰,同時需要一定的網路架構與協議基礎知識,剛開始在海量的資料包內檢索完全找不到頭緒,在重造了自己的網路知識後,才找到規律,但對更進一步的資料包結構分析仍需要學習,路漫漫其修遠兮,吾將上下而求索。