以下部分是我的一次大作業,寫了大概有一周,拿出來湊篇博客,如果有錯誤的地方,還請指正。粘貼過程中可能圖片有錯誤。
1.環境搭建及簡介
1.1 實驗環境
- Windows 7 (靶機)
- Parrot(攻擊機)
1.2 環境簡介
1.2.1 Windows 7(靶機)
Windows 7 ,版本號為7601, 已開啟SMB服務,445端口開啟,防火牆關閉。 IP地址:192.168.116.137
1.2.2 Parrot(攻擊機)
Linux Parrot 4.19.0 ,Parrot 是一款專門用於滲透測試的Linux系統,其中集成了nmap, wireshark,Metasploit等600多種常用滲透測試工具,相比熱門的kali更加強大。IP地址為:192.168.116.141.
2.漏洞探查及滲透
2.1漏洞探查
使用nmap工具進行端口和操作系統掃描。掃描結果顯示靶機的135,139,445端口都開啟,而且服務信息也顯示出來。同時靶機操作系統最可能為windows 7。
對靶機檢查看其是否存在永恆之藍漏洞,設置目標IP為192.168.116.137,設置線程數為10,加速探查過程。
結果顯示靶機可以被利用。
2.2 漏洞利用
使用tcp反彈式meterpreter作為滲透操作模塊,默認本地4444端作為連接端口.
使用exploit/windows/smb/ms17010_eternalblue模塊進行滲透。通過meterpreter可以進行提權,記錄鍵盤,上傳下載文件,監視攝像頭等操作。
作為舉例,我將攝像頭連接到靶機上,然后通過parrot遠程連接主機攝像頭。
列舉攝像頭,發現存在EasyCamera,連接該攝像頭,連接到該攝像頭並返回一個網頁視頻流。
3.病毒源碼分析
3.1病毒工作基本流程
WannaCry病毒感染后主要行為是將計算機上的多種文件類型文件加密,以此為籌碼勒索用戶,此外病毒通過隨機生成公網IP地址和遍歷內網IP地址,訪問其445端口,以此快速傳播。,病毒的基本工作流程如下:
3.2病毒源碼分析
3.2.1 源碼說明
源碼來源:https://github.com/topcss/WannaCry
注:該源碼通過原exe程序反編譯而來
代碼結構:
文件 |
作用 |
worm.c |
蠕蟲行為,包括感染,傳播病毒 |
decryptor.c |
文件加密,勒索 |
3.2.2worm.c
該病毒感染最初會嘗試連接http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com,連接狀態返回變量v8如果連接成功,則結束程序。如果連接失敗,則調用函數 function_408140進行感染。
函數function_408140中,建立mssecsvc2.0進程,同時將該進程連接到計算機的服務控制數據庫上。
將mssecsvc2.0寫入注冊表中,使其每次開機都會自動啟動。
調用攻擊載荷模塊進行攻擊,這段代碼中有多個內存的釋放和調用函數,如GlobalFree,memcpy,同時還使用到了_OVERLAAPPED結構體變量,因此推斷是攻擊載荷調用部分。
隨機生成不同的公網IP地址,訪問其445端口。
內網通過掃描網卡信息,遍歷當前網段,從而進行傳播。
在C:\\WINDOWS釋放勒索模塊tasksche.exe。
2.將一些特殊的字符串寫入內存,這些字符串長度相同,應該是Hash之后的字符串,猜測可能是用於解密部分文件,用於證明其有能力解密文件,誘使用戶支付。
3.2.3 decryptor.c
避開一些重要的系統文件,如系統文件目錄(WINDOWS),驅動文件目錄(Intel)等等,防止加密后影響系統的運行。
這一部分應該是加密是生成密鑰。
發送網絡請求,返回網絡回復信息,但從目前這些信息中無法判斷到底是什么行為。
c.wnry文件中主要包含配置文件,包括比特幣錢包地址,tor瀏覽器下載地址等,該部分講該文件寫入文件,應該是為后續的下載行為做准備。
該部分反復遍歷文件,並進行讀寫,同時還操作了.res文件,此外將.WNCRY文件后綴加到部分文件后面,推測應該是加密文件及修改文件后綴部分。
勒索用的比特幣錢包地址硬編碼在代碼中。
7.這一部分代碼存在明顯的下載行為,因此推斷是從互聯網上下載一些病毒需要的資源。
這一段代碼用於反復計算文件生成的時間和當前系統時間的時間差,應該是病毒行為中加密期限部分的實現,病毒通過通過設置期限和提高比特幣贖金的方式威脅用戶,迫使用戶盡快支付。
由於該代碼通過原來的exe文件反編譯而來,而且在加解密部分使用了大量的goto和函數調用,所以目前只能分析到這樣。
4. 靶機完全控制
通過前面兩個階段的漏洞初步利用,和代碼分析,基本了解了永恆之藍漏洞的利用和Wannacry病毒的基本工作原理,現在,我打算通過進一步深入利用該漏洞,通過利用攻擊載荷生成木馬,將木馬上傳到靶機,實現對靶機的完全控制。
4.1 使用模板生成木馬
1.首先使用一個小exe文件作為木馬的攜帶模板。我使用自己電腦上的11111111(某個敏感詞,自行體會)工具來生成一個小的可執行程序。選擇的載荷依然是windows/x64/meterpreter/reverse_tcp,為了一定程度上的避免殺毒軟件,我使用metasploit默認的msfencoder來對生成的exe文件進行編碼。
-p 參數表示使用的payloads,設置攻擊機的IP地址,-e表示使用的編碼模塊為x86/shikataganai,使用該模塊的原因是該模塊在msfencoder的各種編碼模塊中效果評價為excellent,-f 表示生成的文件格式為exe,最后是輸出文件,我命名為111111111111(某個敏感詞,自行體會)(下圖中分別是編碼模塊評分和模板及生成的文件)
2.將生成的木馬程序進行簡單的測試,將其上傳到VirSCAN上進行簡單測試。效果似乎還不錯,繞過了一半的殺軟。但鑒於平台使用的一些殺軟的版本較老,該木馬的真實效果可能會差很多。
然后嘗試用upx繼續加殼,但好像遇到了些問題,無法加殼。
目前生成的木馬是讓用戶打開木馬應用后返回給攻擊機一個tcp連接,然后控制該主機。除此之外,還可以使用該木馬進行社會工程學攻擊,但由於目前我沒有公網IP,所以只能在局域網內使用,以后可以通過購買域名進行內網穿透,實現公網下的連接。
4.2 木馬上傳
4.2.1 初次嘗試
1.使用最初的滲透方法獲取主機控制權。
2.給目標主機上傳木馬。
然后在win7的C盤下發現已經上傳的111111111111(某個敏感詞,自行體會)文件。
但好像出了點問題,無法運行,重新試試。
4.2.2 改換思路
這次換個思路,將靶機上的應用拖到攻擊機上,然后捆綁木馬,之后再上傳上去替換原來的文件。
首先我在靶機上下載了一個小計算器應用,然后攻擊機將該應用拖到本機,然后進行捆綁木馬。
2. 重新進行編碼,捆綁。
3. 評測,這次效果似乎更好,原因可能是我循環編碼了20次。
上傳木馬替換原有文件。
但上傳后依然不能執行,可能是編碼過程出了些問題。
4.2.3 veil免殺載荷
由於編碼后總是出問題,所以再次改換思路。這次我使用veil-Evasion生成免殺模塊,然后使用msfconsole監聽veil生成的監聽模塊,然后使用捆綁工具將監聽模塊和模板文件捆綁。
由於我的parrot虛擬機上沒有veil,另一台kali上裝過veil,所以之后的滲透過程在kali上完成。
1.生成可執行exe模塊和監聽模塊。列出所有的可用模塊。
選擇c/meterpreter/rev_tcp模塊,並設置,生成執行模塊hi.exe和監聽模塊hi.rc。
veil本身就是專門用於免殺的工具,但還是先測試一下,看看效果。
結果有點尬了,只繞過了一半不到,最尬的是竟然繞過的大多是國內的殺軟。百度,金山,騰訊,360都沒反應... ...
上傳模塊,因為我用的exe捆綁機是在windows環境下,所以還得在windows下捆綁,真實環境下是絕對不會這樣做的。
這是生成的捆綁文件,完全可執行。
3.攻擊機上開啟監聽模塊,同時在靶機上開啟計算器。返回一個連接,建立一個session。
4.為了防止用戶關閉計算器導致進程關閉,所以將會話進程遷移。使之成為一個獨立進程。可以看出post/windows/manage/migrate將會話從原來的6744進程遷移到了7128進程。
在靶機上關閉計算器,會話依然存在。
5.將控制持久化,確保系統重啟后meterpreter依然可以運行。這樣其實是修改靶機的注冊表,將meterpreter進程加入注冊表項/HKLM/Sosftware/Microsoft/Windows/CurrentVersion/Run下,以后除非用戶可以將這個鍵值手動刪除或修改,否則一直會運行。
5. 總結
至此,所有的流程全部完成,最終,靶機變成了一台開機就被完全控制的肉雞,后續可以通過這台機器進行各種操作,比如DDos,挖礦,等等。此外,還可以通過該主機掃描該內網內的其他主機,進行滲透,然后組成一個僵屍網絡,完成更復雜的操作。
不足:在代碼分析上,由於我還沒有學習怎么詳細分析匯編碼,反編譯工具也不了解,所以直接使用別人的反編譯的代碼分析,有很多都沒有分析出來,后期滲透過程中,由於對文件加殼操作還不熟,出現編碼后無法執行的問題也無法解決,雖然最后完成了對靶機的完全控制,但中間有些流程在真實環境下是完全不可操作的,所以后續還需要認真鑽研。
6.參考
[1] David Kennedy, Jim O'Gorman.Metasploit:The Penetration Tester's Guide[M].北京:電子工業出版社,2017.7
[2] 任曉暉.黑客免殺攻防[M].北京:機械工業出版社,2013.10
[3] Peter Kim.The Hacker Playbook2:Practical Guide To Penetration Testing[M].北京:人民郵電出版社,2017.2
[4] 諸葛建偉,陳立波,孫松柏.Metasploit滲透測試.魔鬼訓練營[M].北京:機械工業出版社,2013.8
- https://www.freebuf.com/articles/terminal/153230.html
- https://www.cnblogs.com/youcanch/articles/5671264.html