当前位置:网站首页>CVE-2015-1635(MS15-034 )遠程代碼執行漏洞複現
CVE-2015-1635(MS15-034 )遠程代碼執行漏洞複現
2022-07-02 06:49:00 【徐記榮】
目錄
1 漏洞背景
2 漏洞影響
3 漏洞利用
3.1 服務器配置與搭建
3.2 測試
3.2.1 curl命令
3.2.2 Host字段
3.2.3 Range字段
3.3 攻擊利用
4 防禦措施
1 漏洞背景
2015年04月14日,微軟發布嚴重級別的安全公告 MS15-034,編號為 CVE-2015-1635,據稱在 Http.sys 中的漏洞可能允許遠程執行代碼
Http.sys 是一個比特於 Windows 操作系統核心組件,能够讓任何應用程序通過它提供的接口,以 Http 協議進行信息通訊。
HTTP.sys會錯誤解析某些特殊構造的HTTP請求,導致遠程代碼執行漏洞。成功利用此漏洞後,攻擊者可在System帳戶上下文中執行任意代碼。
由於此漏洞存在於內核驅動程序中,攻擊者也可以遠程導致操作系統藍屏。遠程攻擊者可以通過IIS 7(或更高版本)服務將惡意的HTTP請求傳遞給HTTP.sys驅動。
2 漏洞影響
IIS 7.0以上的Windows 7/8/8.1和Windows Server 2008 R2/Server 2012/Server 2012 R2等操作系統。
3 漏洞利用
3.1 服務器配置與搭建
ip:192.168.52.131
操作系統:win7
中間件:IIS7.0
win7我們如何開啟iis服務呢
控制面板>程序和功能>打開或關閉windows功能>Internet信息服務>勾選Web管理工具和萬維網服務

我們訪問一下
http://127.0.0.1/

如上所示證明開啟了iis服務
3.2 測試
我們在攻擊機發送如下代碼
curl -v 192.168.52.131 -H "Host:irrelevant" -H "Range:bytes=0-18446744073709551615"

返回如下信息證明存在此漏洞
3.2.1 curl命令
詳見Linux curl命令最全詳解
| 參數 | 描述 |
|---|---|
| -v | 顯示更詳細的信息,調試時使用; |
| -H “name:value” | (HTTP)添加一個http header(http請求頭); |
3.2.2 Host字段
一個IP可以對應多個域名,但我們為了區分不同域名顯示的不同內容,此時引用host概念,所以每個域名對應不同的host,通過host可以區分出訪問的是服務器上的哪個站點。(但此處我們直接訪問的IP,默認80端口,我試了下,-H "Host:irrelevant"不加也是可以的)
沒搞明白
3.2.3 Range字段
在原來網絡不是很好的時候,下載大型文件很不容易,如果下載中斷 ,那麼只能重頭開始下載,為了解决這個問題 HTTP/1.1引入的範圍請求。即請求這個文件x~y的字節,指定範圍,在請求報文的首部添加Range字段,此字段指定資源的byte範圍,告訴服務器,請求資源是哪個範圍的內容,讓斷點續傳和並行下載得以實現。
例如:
Range: bytes=5001-10000
並不是所有的服務器都支持此要求
如果不支持服務器會返回400狀態碼,意思是客戶端請求异常
這裏我們的測試命令給的是
-H "Range:bytes=0-18446744073709551615"
18446744073709551615轉為十六進制是 0xFFFFFFFFFFFFFFFF(16個F),是64比特無符號整型所能錶達的最大整數,整數溢出和這個超大整數有關
發送請求包就會返回416狀態碼
如果請求中包含了 Range 請求頭,並且 Range 中指定的任何數據範圍都與當前資源的可用範圍不重合,同時請求中又沒有定義 If-Range 請求頭,那麼服務器就應當返回416狀態碼。
這個漏洞是整除溢出型漏洞,服務器端怎麼處理這個請求,我也沒搞懂,我現在只知道整數溢出報416狀態碼,證明此處存在此漏洞
3.3 攻擊利用
工具用Metasploit(MSF)
安裝使用方法自己搞

兩個模塊
0 ddos攻擊
1 讀取內存信息
試試第二個模塊


不行不知道為什麼
我們試試第一個模塊ddos攻擊


這裏有個東西叫therads,上面說是並發線程數,我試了一下,如果是默認,直接run,服務器會瞬間藍屏,然後重啟,如果是改成set therads 10,服務器會長時間藍屏
4 防禦措施
1.打補丁
https://docs.microsoft.com/zh-cn/security-updates/Securitybulletins/2015/ms15-034
2.臨時禁用IIS內核緩存

參考
Microsoft安全公告MS15-034 -嚴重
HTTP.sys遠程代碼執行(CVE2015-1635,MS15-034)
什麼是整數溢出漏洞以及它帶來的後果
边栏推荐
- 查询GPU时无进程运行,但是显存却被占用了
- pytest(3)parametrize参数化
- Promise中有resolve和无resolve的代码执行顺序
- Common function writing method and set get writing method for calculating attributes
- ModuleNotFoundError: No module named ‘jieba.analyse‘; ‘jieba‘ is not a package
- Browser scrolling for more implementations
- Unexpected inconsistency caused by abnormal power failure; Run fsck manually problem resolved
- Record RDS troubleshooting once -- RDS capacity increases dramatically
- MySQL index
- Asynchronous data copy in CUDA
猜你喜欢

Thread hierarchy in CUDA

Latex参考文献引用失败 报错 LaTeX Warning: Citation “*****” on page y undefined on input line *

apt命令报证书错误 Certificate verification failed: The certificate is NOT trusted

AWD学习

Blog directory of zzq -- updated on 20210601

Latex 编译报错 I found no \bibstyle & \bibdata & \citation command

Sentry construction and use

The use of regular expressions in JS

Présence d'une panne de courant anormale; Problème de gestion de la fsck d'exécution résolu

默认google浏览器打不开链接(点击超链接没有反应)
随机推荐
js删除字符串的最后一位
CUDA and Direct3D consistency
Thread hierarchy in CUDA
js中map和forEach的用法
CUDA user object
Flask migrate cannot detect db String() equal length change
PgSQL learning notes
virtualenv和pipenv安装
部署api_automation_test过程中遇到的问题
web自动中利用win32上传附件
Alibaba cloud MFA binding Chrome browser
Fe - eggjs combined with typeorm cannot connect to the database
Latex参考文献引用失败 报错 LaTeX Warning: Citation “*****” on page y undefined on input line *
automation - Jenkins pipline 执行 nodejs 命令时,提示 node: command not found
The intern left a big hole when he ran away and made two online problems, which made me miserable
Sentry construction and use
ZZQ的博客目录--更新于20210601
js删除字符串的最后一个字符
pytest(2) mark功能
Shardingsphere JDBC