20145330 《網絡對抗》 Eternalblue(MS17-010)漏洞復現與S2-045漏洞的利用及修復

20145330 《網絡對抗》 Eternalblue(MS17-010)漏洞利用工具實現Win 7系統入侵與S2-045漏洞的利用及修復

加分項目:

PC平臺逆向破解:注入shellcode 和 Return-to-libc攻擊實驗html

http://www.cnblogs.com/20145330swx/p/6514359.htmlpython

摘要

本次免考項目分爲兩個模塊:Eternalblue(MS17-010)漏洞利用工具實現Win 7系統入侵與S2-045漏洞的利用及修復git

Eternalblue(MS17-010)漏洞研究內容:

研究背景github

代碼模塊介紹web

漏洞代碼分析面試

復現工具說明shell

測試環境準備apache

復現詳細步驟windows

  • FuzzBunch環境設置設計模式

  • 用EternalBlue攻擊入侵Windows 7

  • 使用Empire生成惡意DLL文件(Payload)/使用msfvenom生成DLL

  • 使用DoublePulsar向目標系統中注入Payload文件

漏洞防範方法

Apache Struts2(S2-045)漏洞研究內容:

漏洞介紹

漏洞範圍分佈圖

影響範圍

不受影響的版本

快速檢測方式

漏洞危害

漏洞復現

臨時修復方案

主動防護方案

MS17-010

研究背景

影子經紀人(Shadow Brokers)最近陸續曝光的NSA網絡武器使人震驚,儘管這些工具是否出自國家級別黑客團隊之手尚不清楚,但至少存在一個能夠說明問題的事實:這些漏洞利用工具都能有效運行,且具備必定程度的威脅殺傷力。在此,我用NSA的兩個大殺器演示對Win 7系統進行漏洞利用和入侵控制的過程復現。

MS17-010漏洞是指攻擊者利用該漏洞,向用戶機的445端口發送精心設計的網絡數據包文,實現遠程代碼執行。

移植MS17-010漏洞利用代碼模塊介紹

Metasploit集合了大量的系統漏洞利用代碼,但並非擁有全部的漏洞代碼,因此Metasploit有一個很是強大的功能,它容許使用者開發本身的漏洞模塊,MS17-010的漏洞利用模塊Metasploit雖然尚未集成,可是網絡上已經有相應的滲透模塊了,這些模塊多是用各類語言編寫的,好比perl、python等,Metasploit支持各類不一樣語言編寫的模塊移植到其框架中,經過這種機制能夠將各類現存的模塊軟件移植成爲與Metasploit兼容的滲透模塊。

MS17-010漏洞代碼分析

http://bobao.360.cn/learning/detail/3738.html

復現工具說明、漏洞介紹

實現復現須要用到兩個工具:

  • 一個爲針對微軟纔剛剛修復的MS17-010漏洞後門利用程序–EternalBlue該漏洞利用程序影響Windows 7和Windows Server 2008大部分版本系統,無需認證權限就能實現系統入侵控制;
  • 另外一個爲能夠遠程向目標控制系統注入惡意DLL或Payload程序的插件工具DOUBLEPULSAR。

綜合利用這兩個工具,入侵攻成功以後,咱們能夠實現對目標系統執行Empire/Meterpreter反彈鏈接控制。

在此過程當中,咱們還須要用到NSA使用的相似Metasploit的漏洞利用代碼攻擊框架FUZZBUNCH。

固然,咱們首先還得把Shadow Brokers泄露的工具下載到系統中來。( https://github.com/misterch0c/shadowbroker

  • 泄露文件說明:

Windows文件夾:

其中Windows目錄下的黑客工具包含了IIS 6.0遠程漏洞的利用;SMB1的重量級利用,能夠用來攻擊開放了445端口的Windows系統而且提權;RDP服務遠程漏洞的利用,能夠攻擊開放了3389端口的Windows機器等等。開放了135,445等端口的Windows服務器有很大機率受到攻擊。

其中ETERNALBLUE是一個0day RCE漏洞利用,利用SMBv1和SMBv2漏洞(MS17-010),影響至最新的Windows 2008 R2 SERVER VIA SMB和NBT。其漏洞產生的緣由是srv.sys文件在處理SrvOs2FeaListSizeToNt函數的時候邏輯不正確致使越界拷貝。

測試環境準備

網絡演示拓撲:

攻擊機1winXP(x86,32bit):須要安裝Python 2.6程序和PyWin32 v2.12,調試運行攻擊框架FUZZBUNCH;

IP:192.168.124.130

攻擊機2 kali2.0 64bit:須要用到Empire和Metasploit相關工具,或者msf;

IP:192.168.124.132

靶機 win7(64bit):不須要作其它額外配置,只須要系統開啓。

IP:192.168.124.133

FuzzBunch環境設置

首先須要在攻擊機1 WIN XP系統中安裝:

在Kali Linux上安裝EmpireFramework很是簡單,只需運行./setup/install.sh腳本便可一鍵安裝

全部環境安裝配置好以後,咱們在FUZZBUNCH目錄下以CMD形式執行python fb.py命令,將會提示未找到「Listening post」錯誤,

緣由在於指定運行配置屬性爲空,因此,咱們能夠用編輯器把fb.py源碼的第72行「Listening post」相關部分註釋掉:

另外,在相同目錄下找到Fuzzbunch.xml文件,用咱們本地系統相關路徑把其中的第19行和第24行路徑進行覆蓋,以下圖所示:

FUZZBUNCH能夠正常運行:

FUZZBUNCH的初始化過程當中,將會須要輸入攻擊目標IP和回連控制IP,在這裏我分別輸入靶機系統的控制系統1(xp)的IP地址,以下圖所示:

點擊「enter」繼續,會提示輸入工程名,在此,咱們用」eternal1″,在該工程名目錄下將會生成一些日誌記錄文件:

用EternalBlue攻擊入侵Windows 7

首先,咱們在FUZZBUNCH終端上用命令「use EternalBlue」選擇使用EternalBlue做爲漏洞利用工具:

使用不少默認配置參數,可是要注意目標操做系統是x86仍是x64,以及 Mode ::Delivery mechanism的選擇爲1) FB。

在一直默認下第一次嘗試失敗:

我發現靶機win7的電腦管家沒有關,關閉後再次嘗試成功:

使用Empire生成惡意DLL文件(Payload)/使用msfvenom生成DLL

因爲上一步驟中靶機系統已經被EternalBlue成功植入後門,因此在該步驟中,咱們將使用Empire生成惡意DLL文件(Payload),並用DOUBLEPULSAR實現遠程注入。

攻擊機2 kali須要安裝EmpireFramework,
在Kali Linux上,咱們須要安裝可從Github獲取的Empire框架:
Empire framework:https://github.com/EmpireProject/Empire

在Kali Linux上安裝EmpireFramework很是簡單,只需運行./setup/install.sh腳本便可一鍵安裝,而後運行./empire就能夠啓動Empire。

使用Empire進行Payload建立:

很心碎,別人的empire就直接建立成功了,而個人連set都不識別?!可能安裝了個假empire吧。。。

因此我又選擇了第二種方法:使用msfvenom生成DLL(可使用主動鏈接TCP_Bind或者反彈shell)

攻擊機2 kali的msfvenom 生成一下dll 這裏使用的是reverse_tcp的paylaod(反彈shell)

把生成的s.dll(home/YL路徑下)傳到攻擊機1win xp上去,放在windows目錄下

開啓msfconsole 下面的payload要和上面msfvenom的payload對應起來

使用DoublePulsar向目標系統中注入Payload文件

回到XP系統中,在FUZZBUNCH終端使用「use DoublePulsar」命令運行DoublePulsar

接着DoublePulsar會爲咱們顯示相關的目標參數,若是你的攻擊目標爲不一樣的架構,則須要選擇對應的系統架構(本靶機爲64bit)。其餘變量咱們只需保持默認不變便可,直到功能選項出現。

這裏輸入DLL的文件位置(放在攻擊機1的路徑):

以後都默認就行

終於,獲得成功執行的消息顯示「Doublepulsar Succeded」

可是kali這邊並無回連上...傷心。以上嘗試的是反彈鏈接獲取shell

可是通過堅持不懈的心塞,終於回連成功!(就能夠對靶機進行各類事情了!)

下面試試主動鏈接的:

將生成的bind.dll文件拷貝到攻擊機xp的windows文件夾下

開啓msf

最後也能夠回連。

除了Eternalblue,NSA一塊兒發佈的工具還有這些,影響操做系統基本

防範方法

此次病毒爆發影響確實很是大,爲近年來所罕見。該病毒利用NSA「永恆之藍」這個嚴重漏洞傳播,幾乎全部的Windows系統若是沒有打補丁,都會被攻擊。

微軟在今年 3 月發佈了 MS17-010 安全更新,如下系統若是開啓了自動更新或安裝了對應的更新補丁,能夠抵禦該病毒——Windows Vista、Windows Server 200八、Windows 七、Windows Server 2008 R二、Windows 8.一、Windows Server 20十二、Windows 十、Windows Server 2012 R二、Windows Server 2016 。

  • 二、關閉端口139/445,同時打開系統防火牆。具體方法可參考:
    http://mp.weixin.qq.com/s/s1_eym5U7-cdMbAh2T9YHA

  • 而且除了Windows系統的電腦外,手機、Pad、Mac等終端不會被攻擊,病毒只攻擊Windows系統的電腦,手機等終端不會被攻擊,包括Unix、Linux、Android等系統都不會受影響。不少時候都是沒有根據的謠言和ps啊。

Apache Struts2(S2-045)漏洞

我又作了一個今年三四月份的新漏洞S2-045的利用及修復:

漏洞介紹

Apache Struts 2被曝存在遠程命令執行漏洞,漏洞編號S2-045,CVE編號CVE-2017-5638,在使用基於Jakarta插件的文件上傳功能時,有可能存在遠程命令執行,致使系統被黑客入侵。

惡意用戶可在上傳文件時經過修改HTTP請求頭中的Content-Type值來觸發該漏洞,進而執行系統命令。

綠盟威脅情報中心NTI關於Struts2漏洞範圍分佈圖

全球分佈圖

國內分佈圖

全球排行

影響範圍

Struts 2.3.5 – Struts 2.3.31

Struts 2.5 – Struts 2.5.10

不受影響的版本

Struts 2.3.32 Struts 2.5.10.1

快速檢測方式

使用知道創宇SeeBug照妖鏡能夠直接檢測站點是否存在本漏洞

漏洞危害

在default.properties文件中,struts.multipart.parser的值有兩個選擇,分別是jakarta和pell。其中的jakarta解析器是Struts 2框架的標準組成部分。默認狀況下jakarta是啓用的,因此該漏洞的嚴重性須要獲得正視。

攻擊者可經過遠程命令注入執行,令系統執行惡意命令,致使被黑客入侵,從而威脅服務器安全,影響極大。

實驗環境

操做機:Windows XP

目標機:Centos 6.5

Struts版本:2.3.31

ip:172.16.11.2

實驗文件

poc.exe:本次實驗漏洞驗證的POC源碼

SecurityFilter.class:本次實驗漏洞修復腳本

實驗目的

瞭解S2-045 Struts2遠程命令執行漏洞危害

掌握檢測修復S2-045 Struts2遠程命令執行漏洞技術

實驗內容

Struts

Struts是Apache基金會的一個開源項目,Struts經過採用JavaServlet/JSP技術,實現了基於Java EE Web應用的Model-View-Controller(MVC)設計模式的應用框架,是MVC經典設計模式中的一個經典產品。

目前,Struts框架普遍應用於政府、公安、交通、金融行業和運營商的網站建設,做爲網站開發的底層模板使用,是應用最普遍的Web應用框架之一。

實驗步驟

步驟1:驗證漏洞

打開目標網站:http://172.16.12.2/

發現跳轉連接到http://172.16.12.2/example/HelloWorld.action

打開cmd,切到poc.exe的目錄下,執行下面命令:

poc.exe http://172.16.12.2/example/HelloWorld.action "ifconfig"

測試該網站是否存在S2-045漏洞,嘗試執行系統命令ifconfig,結果以下:

成功執行,證實漏洞存在,成功後能夠嘗試利用漏洞執行其餘命令。

步驟2:臨時修復方案

修改Struts2的Multipart parser

使用搜索工具搜索ssh鏈接工具xshell5鏈接目標機172.16.12.2,用戶名root,密碼123456

修改配置文件

struts2-core-2.3.31.jar路徑:/var/www/apache-tomcat-7.0.14/webapps/ROOT/WEB-INF/lib/下載到本地桌面,修改文件擴展名爲struts2-core-2.3.31.zip

將其解壓到struts2-core-2.3.31文件夾中,打開裏面的文件夾org\apache\struts2

右擊目錄下的default.properties文件,使用notepad++進行編輯。

找到struts.multipart.parser,該選項就是Struts2的Multipart parser應用配置,默認值爲jakarta,即這次出現命令執行漏洞的上傳框架。

將其修改成pell,至關於將存在漏洞的jakarta框架禁用了。

修改後值struts.multipart.parser=pell,保存,退出。

從新打包jar文件

struts2-core-2.3.31文件夾中所有選中,壓縮打包爲zip格式,文件名:struts2-core-2.3.31.jar

替換jar文件

使用工具Xftp,將/var/www/apache-tomcat-7.0.14/webapps/ROOT/WEB-INF/lib/路徑下的struts2-core-2.3.31.jar移動到根目錄/,將咱們修改配置後從新打包的jar文件放到該目錄下。

重啓tomcat

替換文件後須要重啓tomcat服務,切換到/var/www/apache-tomcat-7.0.14/bin/目錄下,首先執行./shutdown.sh,而後執行./startup.sh

驗證漏洞 執行下面命令:

poc.exe http://172.16.12.2/example/HelloWorld.action "cat /etc/passwd"

poc程序已經沒法成功利用了。

步驟3:主動防護方案

如業務系統比較複雜,在臨時修復方案不能使用時,且沒法輕易的升級struts的版本時,可使用知道創宇的創宇盾來攔截網絡的攻擊流量。

實驗總結與體會

本次免考我作了Eternalblue(MS17-010)漏洞利用工具實現Win 7系統入侵與S2-045漏洞的利用及修復

這次實驗我首先移植MS17-010漏洞利用代碼模塊、上網查資料對MS17-010漏洞代碼進行分析、瞭解複線工具的用途並下載實踐相關功能(配置環境很耗時啊。。。),總共開啓了三個虛擬機進行實驗,其中可使用Empire進行Payload建立、也可使用msfvenom的反彈鏈接或者主動鏈接進行Payload建立,其實原本也不清楚會有這麼多種方法能夠實現,都是由於一次次的失敗積累出的經驗...

作MS17-010復現對我來講仍是有些困難的,在網上查看各類原理還有方法慢慢梳理纔有了個大方向。耗費時間最久的居然是環境配置,真的是每臺電腦有它的脾氣,每一個基本都是配了好幾回才成功。「永恆之藍」是指NSA泄露的危險漏洞「EternalBlue」,這次的勒索病毒WannaCry是利用該漏洞進行傳播的,固然還可能有其餘病毒也經過「永恆之藍」這個漏洞傳播,所以給系統打補丁是必須的,畢竟這種復現咱們本身均可以實現...

s2-045我用過實踐掌握了臨時解決方案與主動防護方案,因此說學習網絡對抗知識仍是很重要的,若是遇到漏洞問題可能還能本身動手解決掉。

參考資料

Eternalblue(MS17-010):

http://www.hackdig.com/05/hack-45428.htm

http://www.freebuf.com/articles/network/133853.html

http://www.hx99.net/Article/Tech/201704/37465.html

https://baijiahao.baidu.com/po/feed/share?

http://bobao.360.cn/learning/detail/3738.html

s2-045:

http://www.myhack58.com/Article/html/3/62/2017/84040.html

https://www.ichunqiu.com/vm/57729/1

相關文章
相關標籤/搜索