搜索公众号:暗网黑客可领全套网络安全课程、配套攻防靶场#0x00 前言
大家好,我是tahf,一个从事安全行业快6年了小白猫。
相信每一个安全从业者都希望有一天能够挖掘出漏洞并获得属于自己CVE编号,这也是当年我入职安全行业一个小小的梦想。
今天我想以自己挖掘的一个漏洞以及与厂商沟通的过程为例
来科普下,如何向厂商提交漏洞和申请CVE编号
如果有不对之处,欢迎大家批评指正~
#0x01 漏洞挖掘首先,漏洞提交的关键还是在于我们要先挖掘出一个漏洞。
我挖到的这个漏洞也有一定的机缘巧合。
去年我在对国产软件的进程权限分离做研究时,发现很多类似电脑管家的软件,都会在系统中注册服务
因为系统服务一般都是System权限,非常方便这些管家软件帮助用户管理和配置电脑,这一点并没有任何问题。
但是这些电脑管家的软件大多都是需要以UI界面的形式与用户交互
比如用户点击“一键诊断”和“磁盘清理”之类的操作
通过对电脑管家在系统启动后的一系列进程创建过程的分析
我发现其UI进程是软件注册的系统服务创建的(比如调用CreateProcessAsUr)
并且有完整的UAC令牌, 对应的Integrity为High。
对比国外一些类似的管理或杀毒软件,他们也会注册系统服务
他们的UI进程也是服务创建的
但是他们的UI进程并没有完整的UAC令牌,对应的Integrity为Medium。
那么,国产软件中这些具有完整UAC令牌的进程一旦出现了问题
比如经典的dll劫持漏洞,很容易导致攻击者获得Administrator的权限,从而Bypass UAC。
我去年发现的就是一个经典的dll劫持漏洞,具体的分析将结合报告的撰写来阐述。
#0x02 报告撰写注意事项当我们发现漏洞后,肯定会编写POC来进行验证
那么验证的过程需要保存好图片(或动图)、视频形式的证据,方便提交给厂商,然后就是撰写漏洞报告。
漏洞报告其实是一个比较花费时间的事情,可能需要1-2天甚至更多的时间精力。
我之前也在ASRC、360SRC上提交过一些软件的漏洞报告,个人感觉漏洞报告写的越详细,对我们提交者就越有利,因为厂商的安全人员一般会对报告中的漏洞进行复现。
如果报告图文并茂,过程详尽,那么厂商的安全人员完成复现的速度就越快,同时也会降低出现漏洞复现不了等问题的几率。
我个人一般在撰写报告时,会采用下面的框架:
漏洞摘要、漏洞利用条件、影响范围、漏洞复现、漏洞分析、修复建议
另外,漏洞报告的架构还需要看我们打算提交的平台或厂商,有些SRC的平台有自己的格式要求,我们按照要求遵守就好。
这里我挖掘到的是联想电脑管家的漏洞,在http://cve.mitre.org/cve/request_id.html#cna_participants可以找到提交的邮箱和相关政策,在决定提交漏洞前,务必仔细阅读相关条款。
另外,如果给国外的厂商提交,我们的报告一定要是英文版本,英文好可以直接写
当然也可以让google翻译,但是机翻后请务必保证关键技术词汇正确,语句尽可能通顺。
我在给联想的PSIRT通过邮件发送漏洞报告时(一开始我发的中文版本,觉得毕竟是联想嘛)
结果对方回复要求我提交英文报告,哎,加油写英文吧。
下面是我提交报告时的来往邮件,供参考:
#0x03 撰写报告下面我就把我提交的报告(采用中英文对照的方式,以英文为主)给大家分享一下:
首先是报告的开题,可以把邮件中的信息再重复一下
因为这个pdf报告可能被转给厂商的安全响应人员
但也许他们遇到问题时想与我们联系,所以最好在报告开头留下邮箱。
## 1、漏洞摘要
注:漏洞摘要,简单表述下漏洞就好,对一些关键词可以采用加粗的方式。
------中文对照------
在联想电脑管家中发现一处本地权限提升漏洞,攻击者在具有本地用户权限后,可利用该漏洞绕过 UAC 的保护机制,以管理员权限执行任意代码,从而提升其权限。
## 2、漏洞利用条件
注:漏洞利用条件,最好能提供存在漏洞的软件对应的版本和软件的下载地址,这样非常方便厂商进行复现。
------中文对照------
联想电脑管家有2个版本,分为 ThinkPad 定制版和非定制版。
漏洞利用只需要客户机安装有联想电脑管家(LenovoPCManager)2种版本中的1种即可:
1、从联想官网 https://guanjia.lenovo.com.cn 下载非定制版(lenovopcmanager_apps.exe,版本为2.8.90.11211)。
2、从https://pcmgr.lenovo.com.cn/moreversions.html 下的ThinkPad定制版
(lenovopcmanager_preload_thinkpad_smb_apps.exe,版本为2.8.80.11261)。
##3、漏洞影响
注:漏洞影响,这部分可以写写漏洞的影响范围和危害
因为这款软件在中国地区是联想电脑中系统预装的(尤其是ThinkPad系列)
并且在电脑售卖的广告中也提到了这款软件,影响范围比较大,所以我着重在报告中说明了这点。
同时也可以在这部分列举一些可能导致的危害。
------中文对照------
目前联想在中国地区销量很大,需要注意的是,联想在中国地区销售的PC及笔记本(包含ThinkPad系列)
默认操作系统中就安装有联想电脑管家(LenovoPCManager)软件。
2张图片,是在中国地区售卖的联想ThinkPad系列笔记本电脑的详细宣传海报,均带有预装联想电脑管家的字样。
可见,该漏洞影响范围较大,尤其是在中国地区。
我对联想电脑管家的2个版本进行了漏洞验证工作,结果如下:
版本 安装程序数字签名时间戳 (发行日期)是否存在漏洞2.8.90.111312019年11月13日存在且可利用2.8.80.8082(ThinkPad定制版)2019年6月14日存在且可利用
该漏洞除了引发严重的权限提升问题外,还可能造成其他严重的安全问题:
1、攻击者可以利用其他方式,比如office漏洞、rar解压漏洞、浏览器漏洞等攻击手段,只要能将恶意代码下载至C:ursUrNameAppDataLocalMicrosoftWindowsApps目录中,就有较大可能造成远程代码执行。
2、该漏洞还可被攻击者用来作为持久化的手段,通过该漏洞让恶意代码在主机上实现Administrator权限的自启动。
3、该漏洞为攻击者规避安全防护软件创造了条件,可以让攻击者使用“白+黑”(带有数字签名的正常程序+恶意代码的动态库)方式有效规避杀软的检测和查杀。
不会挖漏洞?没有经验?没关系!
小白是如何挖掘漏洞的视频教程
文末有视频领取方式,免费分享
## 4、漏洞复现
注:漏洞复现,是非常重要的部分!!!
厂商的安全响应人员将参照这部分的内容进行复现,所以这块尽可能详尽些。
我在提交报告时,考虑到报告里面已经有POC代码的图片
就没有再提交POC代码和编译后的dll文件
但后来厂商还是联系我,希望我提供POC代码和编译后的dll文件,方便他们进行验证。
所以在提交时,也可以将POC打包一并提交。
另外,我们自己触发漏洞和漏洞利用的环境信息也需要要告诉厂商。
----中文对照------
我以最新的2.8.90.11131版本为例,在已打最新系统补丁的Win10系统上来复现该漏洞。
环境:
Win10 1903版,x64系统,中文专业版(已打最新补丁)
正常安装联想电脑管家(官网最新版本2.8.90.11131)lenovopcmanager_apps.exe
上图为我复现使用的系统版本和安装好后联想电脑管家的版本信息。
上图是正常安装联想电脑管家后的默认软件目录。
我使用的用户是操作系统安装后的正常用户tahf,组信息见上图。
------中文对照------
POC编写:
编写验证漏洞使用的poc.dll动态库。我使用VS2010编写一个dll动态库,核心代码如下。
为了更好的验证漏洞,在POC里让其创建cmd.exe进程,并在C盘根目录写一个文件。
有时启动的进程可能由于父进程的原因而结束
所以我同时采用写文件和创建进程2种方式来验证。
如果漏洞存在,这个flag.txt文件的创建者应该为Administrator。
------中文对照------
验证漏洞:
主要分为2个步骤:
1、将编译后的poc.dll(请按x86动态库编译)重命名为LAVMsgBoxView.dll,并拷贝至C:Urs ahfAppDataLocalMicrosoftWindowsApps目录下。
该目录对于当前用户是具备文件读写权限的。
2、让主机重启。
除了让主机重启能够触发漏洞外,经过验证
发现当用户将联想电脑管家退出后,再启动联想电脑管家也会触发漏洞。
------中文对照------
主机重启后,等待几分钟时间,就会出现上图情况。
我在poc.dll中会执行创建cmd.exe进程和在C盘根目录写入flag.txt的代码
可见,联想电脑管家加载了我编写的poc.dll,并执行了poc中的代码。
同时我在弹出的cmd.exe中检查了当前的权限,并检查了flag.txt文件属性的所有者信息,可见poc中的代码是以Administrator的权限执行的,绕过了系统的UAC保护机制,导致权限提升。
------中文对照------
上图是使用Procexp.exe监控程序查看进程,可见其右侧Integrity为High.
------中文对照------
上图是使用Procmon.exe监控进程的创建过程,可见我的poc.dll是被LenovoTray.exe进程加载并执行的。
综上所述,在具有本地账户的权限下,利用该漏洞,可在绕过系统的UAC机制,使恶意代码直接以Administrator的权限执行,造成权限提升。
## 5、漏洞分析
注:漏洞分析,一般厂商安全响应部门验证漏洞后,会将情况反馈给业务或者开发部门
所以漏洞分析这部分对开发部门是比较有帮助的
可以让开发者大致了解是哪里出现了bug。
------中文对照------
通过Procmon.exe监控进程行为,我确认了是LenovoTray.exe进程加载了我编写的poc.dll。
上图可见,LenovoTray.exe进程的Integrity为High级别
其在尝试搜索并加载LAVMsgBoxView.dll,这是导致该漏洞可被利用的核心所在。
由于该进程是用户进程,按照Windows系统dll搜索顺序,它会搜索:
1、进程同目录下
2、C:WindowsSyswow64由于它是个32位的进程
3、C:Windows
4、系统环境变量Path中的路径
5、当前用户环境变量Path中的路径(由于该进程是用户进程,所以会搜索当前用户环境变量Path中的路径)
而在Win10和Win8系统中,每个用户的环境变量Path中都默认有%USERPROFILE%AppDataLocalMicrosoftWindowsApps
而这个目录当前用户是完全控制权限,因此可以成功利用该漏洞达成Bypass UAC的效果。
## 6、修复建议
注:修复建议,根据漏洞类型给出合理的修补意见即可。
------中文对照------
一种解决方法是,在LoadLibrary函数中采用全路径
另一种是使用LoadLibraryExw函数,并利用dwFlags参数来控制dll搜索的路径。
当然,如何在dll加载时能够对其进行有效的校验最好。
#0x04 与厂商沟通当我写好英文的报告,并通过邮件的方式提交后,厂商很快回复了我。
一般这种大厂商会询问我们的披露计划。
为了保证漏洞不被恶意利用
我建议不要太早披露,而且在给厂商的回复中,可以加上一句
我们希望跟厂商配合,在厂商修复漏洞后再考虑披露相关信息。
如果你感觉过了好久,厂商都没有回复,那么也可以客气地再发送邮件询问进度。
之后,在厂商验证并确认漏洞后,它可能会询问你有关致谢的信息
并通告他们的修复计划和发布公告的大致时间。
大的厂商都会与我们确认信息,只要大家有耐心,沟通过程语气友善,厂商还是非常好交流的。
另外,对于大的厂商来说
在漏洞修复后,他们还会将新版本的程序发给我们希望我们进行验证,保证漏洞被有效修复。
我也把整个漏洞提交过程的时间线列出来,供大家参考。
2019年11月,挖掘出漏洞并撰写报告
2019年12月初,提交漏洞报告(以英文版本时间为准)
2019年12月初,提交报告一周后,厂商回应,开始验证漏洞
2019年12月中旬,漏洞验证完成,确认漏洞,厂商申请CVE
2019年1月初,漏洞修补完成
2019年1月底,厂商发布公告和致谢
#0x05 感受总体感受是挖掘漏洞不易,因为可能一时的疏忽或者不细致,就有可能导致我们与漏洞错失交臂。
同时,一份完善的漏洞报告和良好的沟通是我们与厂商友善协作的桥梁,也让我们离CVE编号更近了一步。
大厂商总体还是很友善的,有了一次良性互动的经验,慢慢积累,我们肯定就会有第二次、第三次(之后还向他们提交了其它联想软件的漏洞并也得到了确认和CVE编号)。
另外,我也感觉到作为安全人员,一方面我们需要加强自身的技术能力,挖掘
更多的漏洞
另一方面,也可以加强自身的非技术能力(比如文字表达、与人沟通、组织协调等)
这些能力都会让我们进步更快,成长更多。
最后,希望自己的上述分享能够给大家带来些帮助,祝大家身体健康,多挖漏洞!
小白是如何挖掘漏洞的
合理合法用来实战训练入侵
模拟靶场和黑客工具课件附赠靶场工具
扫码直接领取上述全套视频教程+靶场链接+工具
免费免费!!!!
作者:tahf
转载自:https://bbs.ichunqiu.com/thread-56908-1-1.html
本文发布于:2023-02-28 21:01:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1677715848100223.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:createprocessasuser.doc
本文 PDF 下载地址:createprocessasuser.pdf
留言与评论(共有 0 条评论) |