reportqueue(reportqueue文件夹可以删除吗)

前沿拓展:

reportqueue

念德评笑校C:ProgramDataMicrosoftWindows况门也齐你重引费敌WERRepor毛苦达草角独tQueue里的文件主要用于系统存放自动生成的系统报告,是可以删除的。

ReportQueue里的文件可以存放系统自动生成的报告,属于队列查询报告文件。虽然队列查询报告文件可以记录系统在运行中出现的问题,但这些记录也属于垃圾文件,所以删除它对系统没有影响。

而且,里面的文件由于系统的长期使用,它会记录声但争部改卷互植大量垃圾内容,日积月累,会非常占电脑C盘空间。在删除这些文件后,下次系统依然会再次自动生成这些文件。所以,为了保持C盘有较大空间,应该经常对它进行删除。

扩展资料

C盘里的其他占内存的可删除的垃圾文件:

1、系统产生的临时文件

Windows在秋我安装和使用过程中产生的垃圾包括临时文件(如*.tmp、*._mp等)、临时备份文件(如*.bak、*.old、*.syd等)、临时帮助文件(*.gid)都是没初求进目有用的,都可以通过系统的“查找”功能管理器中,选择“工具/文件夹选项”下“文件类型”标签,找到与“C:Program FilesKuroKuro.e头xe”相关联的文件类型,再按Del键删除。


在2018年12月,一个名为“SandboxEscaper”的黑客公开了一个Windows Error Reporting(WER)组件中的0day漏洞。而根据他所提供的信息,我又发现了另一个0day漏洞,可被用于非法提升系统权限。根据微软方面的说法,已有攻击者利用这个漏洞进行攻击,但直到2019年5月该漏洞补丁才发布。

那么,这个漏洞的原理是啥呢?

微软的又一次失误

Windows Error Reporting工具是一个灵活的基于**的反馈架构,旨在收集有关Windows的软硬件错误的信息,并将这些信息报告给Microsoft,好为用户提供可用的解决方案。

例如,当Windows系统崩溃或发生故障,则会生成一个错误报告并存储在WER报告队列目录下(C:ProgramDataMicrosoftWindowsWERReportQueue),其中每个报告都有自己的子目录和一个存储相关元数据的名为report.wer的INI文件。为了使所有进程都能上报系统错误信息,所有用户都可以对reportQueue目录进行写入,具体如下所示:

reportqueue(reportqueue文件夹可以删除吗)

生成报告后,接下来就是将其发送给Microsoft以进行进一步分析。此交互流程可以通过多种方式触发,其中一种就是使用名为Windows Error ReportingQueueReporting的计划任务。而从安全角度来看,此计划任务很有趣,因为:

它以system权限运行,这就非常敏感了。它可以根据需求触发。它涉及了一个exe文件wermgr.exe,以及一个参数-uploadreportqueue(reportqueue文件夹可以删除吗)

在计划任务触发后,wermgr.exe与等待处理的报告文件和目录进行交互。它会读取、解析这些文件,将它们**到其他目录,或是直接删除。但最重要的是,现在一个高权限的exe会处理任何用户都可以写入的文件。如果这中间流程存在问题,可能会导致一些严重的安全漏洞。

滥用文件链接

Windows支持不同类型的文件链接,它们可将某处的文件或目录指向其他的文件和目录,简单来说,就是会将用户重定向到目标路径。从安全的角度来看,文件链接很容易造成权限漏洞,因为用户可以将某些文件链接到他们没有写权限的文件或目录。

下面的示例描述了不具有kernel32.dll写入权限的用户是如何创建c:tempDirx.dll和C:WindowsSystem32kernel32.dll之间的链接的。这样有可能使黑客可以读、写甚至删除敏感的系统文件。

reportqueue(reportqueue文件夹可以删除吗)

漏洞信息

简而言之,黑客可以利用WER的system权限去更改任意文件。通过上述文件的链接,将WER目录中的文件链接到计算机上其他目录的文件,从而借助计划任务的system权限帮助自己提升权限。

以下是完整的漏洞利用场景:

Step 1:wermger.exe逐个解析报告目录中的所有文件,并将其提交给Microsoft。Step 2:当wermger.exe检测到名为Report.wer的被损坏的INI文件时,会进行一系列处理,最终会将其删除。但在删除前,它会改变文件的访问控制权限,以方便将其删除。漏洞利用点:黑客主要是利用wermger.exe读取文件的访问控制权限和改变其权限之间的短暂机会。如果攻击者创建一个错误报告与系统上其他文件之间的链接,则在修改访问控制的权限后,wermgr.exe就会错误地修改其他文件的权限。Step 1:

命令wermgr.exe -upload所做的第一件事就是调用wermgr!DoCoreUpload函数,它会列出reportQueue下的所有子目录,并读取错误报告将其提交给Microsoft:

int64 DoCoreUpload(/* … */) {
/* … */
Ret = WerpSubmitReportFromStore(ReportPath, /* … */);
if (Ret >= 0) {
/* Report successfully uploaded */
} else {
if (Ret == ERROR_FILE_CORRUPT) {
DeleteCorruptedReportFromStore(ReportPath);
}
}
}
Step 2:

当wermgr.exe遇到已损坏的名为report.wer的INI文件时,它会更改其访问控制权限以便稍后删除它。更具体地说:

1.第一,wermgr!DeleteCorruptedReportFromStore会列出子目录下的所有文件;

2.接着,wermgr!PreparePathForDeletion会修改每个文件的权限。这就是漏洞原理所在!因为此函数会使用kernel32!GetFileSecurity读取文件的安全描述符,并利用kernel32!SetFileSecurity将其设置为可删除。

int64 PreparePathForDeletion(wchar_t* FileName) {

PSECURITY_DEsc riptOR SecurityDesc riptor = NULL;

DWORD BytesRead = 0;

PDACL Dacl = NULL;

/* … */

if ( !GetFileSecurity(FileName,

DACL_SECURITY_INFORMATION,

NULL, 0, &BytesRead) ) {

/* … */

return;

}

SecurityDesc riptor = new BYTE[BytesRead];

if ( !GetFileSecurity(FileName,

DACL_SECURITY_INFORMATION,

SecurityDesc riptor,

BytesRead, &BytesRead) ) {

/* … */

return;

}

if ( GetSecurityDesc riptorDacl(SecurityDesc riptor,

&DaclPresent,

&Dacl, &DaclDefaulted) )

{

/* … */

HANDLE TokenHandle = NULL;

PACL NewAcl = NULL;

EXPLICIT_ACCESS ExplicitAccess = {0};

/* … */

LPVOID UserName = new BYTE[/* … */];

GetTokenInformation(TokenHandle, TokenUser,

UserName, &BytesRead);

ExplicitAccess.Trustee.ptstrName = UserName;

ExplicitAccess.Trustee.TrusteeType = TRUSTEE_IS_NAME;

ExplicitAccess.grfAcces**ode = GRANT_ACCESS;

ExplicitAccess.grfAccessPermissions = DELETE | /* … */;

/* … */

SetEntriesInAcl(1, &ExplicitAccess, Dacl, &NewAcl);

InitializeSecurityDesc riptor(&SecurityDesc riptor, 1);

SetSecurityDesc riptorDacl(&SecurityDesc riptor, 1, NewAcl, 0);

SetFileSecurity(FilePath, DACL_SECURITY_INFORMATION,

&SecurityDesc riptor);

}

}

不过,在特定的时间创建文件链接较为困难,这可能需要一次又一次的尝试。攻击者在实际**作中很可能以可执行文件(dll、exe或脚本)为目标,尝试使用恶意文件覆盖它们,最后等待系统自动执行。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场

来源:https://nosec.org/home/detail/2742.html

原文:https://unit42.paloaltonetworks.com/tale-of-a-windows-error-reporting-zero-day-cve-2019-0863/

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

拓展知识:

前沿拓展:

reportqueue

念德评笑校C:ProgramDataMicrosoftWindows况门也齐你重引费敌WERRepor毛苦达草角独tQueue里的文件主要用于系统存放自动生成的系统报告,是可以删除的。

ReportQueue里的文件可以存放系统自动生成的报告,属于队列查询报告文件。虽然队列查询报告文件可以记录系统在运行中出现的问题,但这些记录也属于垃圾文件,所以删除它对系统没有影响。

而且,里面的文件由于系统的长期使用,它会记录声但争部改卷互植大量垃圾内容,日积月累,会非常占电脑C盘空间。在删除这些文件后,下次系统依然会再次自动生成这些文件。所以,为了保持C盘有较大空间,应该经常对它进行删除。

扩展资料

C盘里的其他占内存的可删除的垃圾文件:

1、系统产生的临时文件

Windows在秋我安装和使用过程中产生的垃圾包括临时文件(如*.tmp、*._mp等)、临时备份文件(如*.bak、*.old、*.syd等)、临时帮助文件(*.gid)都是没初求进目有用的,都可以通过系统的“查找”功能管理器中,选择“工具/文件夹选项”下“文件类型”标签,找到与“C:Program FilesKuroKuro.e头xe”相关联的文件类型,再按Del键删除。


在2018年12月,一个名为“SandboxEscaper”的黑客公开了一个Windows Error Reporting(WER)组件中的0day漏洞。而根据他所提供的信息,我又发现了另一个0day漏洞,可被用于非法提升系统权限。根据微软方面的说法,已有攻击者利用这个漏洞进行攻击,但直到2019年5月该漏洞补丁才发布。

那么,这个漏洞的原理是啥呢?

微软的又一次失误

Windows Error Reporting工具是一个灵活的基于**的反馈架构,旨在收集有关Windows的软硬件错误的信息,并将这些信息报告给Microsoft,好为用户提供可用的解决方案。

例如,当Windows系统崩溃或发生故障,则会生成一个错误报告并存储在WER报告队列目录下(C:ProgramDataMicrosoftWindowsWERReportQueue),其中每个报告都有自己的子目录和一个存储相关元数据的名为report.wer的INI文件。为了使所有进程都能上报系统错误信息,所有用户都可以对reportQueue目录进行写入,具体如下所示:

reportqueue(reportqueue文件夹可以删除吗)

生成报告后,接下来就是将其发送给Microsoft以进行进一步分析。此交互流程可以通过多种方式触发,其中一种就是使用名为Windows Error ReportingQueueReporting的计划任务。而从安全角度来看,此计划任务很有趣,因为:

它以system权限运行,这就非常敏感了。它可以根据需求触发。它涉及了一个exe文件wermgr.exe,以及一个参数-uploadreportqueue(reportqueue文件夹可以删除吗)

在计划任务触发后,wermgr.exe与等待处理的报告文件和目录进行交互。它会读取、解析这些文件,将它们**到其他目录,或是直接删除。但最重要的是,现在一个高权限的exe会处理任何用户都可以写入的文件。如果这中间流程存在问题,可能会导致一些严重的安全漏洞。

滥用文件链接

Windows支持不同类型的文件链接,它们可将某处的文件或目录指向其他的文件和目录,简单来说,就是会将用户重定向到目标路径。从安全的角度来看,文件链接很容易造成权限漏洞,因为用户可以将某些文件链接到他们没有写权限的文件或目录。

下面的示例描述了不具有kernel32.dll写入权限的用户是如何创建c:tempDirx.dll和C:WindowsSystem32kernel32.dll之间的链接的。这样有可能使黑客可以读、写甚至删除敏感的系统文件。

reportqueue(reportqueue文件夹可以删除吗)

漏洞信息

简而言之,黑客可以利用WER的system权限去更改任意文件。通过上述文件的链接,将WER目录中的文件链接到计算机上其他目录的文件,从而借助计划任务的system权限帮助自己提升权限。

以下是完整的漏洞利用场景:

Step 1:wermger.exe逐个解析报告目录中的所有文件,并将其提交给Microsoft。Step 2:当wermger.exe检测到名为Report.wer的被损坏的INI文件时,会进行一系列处理,最终会将其删除。但在删除前,它会改变文件的访问控制权限,以方便将其删除。漏洞利用点:黑客主要是利用wermger.exe读取文件的访问控制权限和改变其权限之间的短暂机会。如果攻击者创建一个错误报告与系统上其他文件之间的链接,则在修改访问控制的权限后,wermgr.exe就会错误地修改其他文件的权限。Step 1:

命令wermgr.exe -upload所做的第一件事就是调用wermgr!DoCoreUpload函数,它会列出reportQueue下的所有子目录,并读取错误报告将其提交给Microsoft:

int64 DoCoreUpload(/* … */) {
/* … */
Ret = WerpSubmitReportFromStore(ReportPath, /* … */);
if (Ret >= 0) {
/* Report successfully uploaded */
} else {
if (Ret == ERROR_FILE_CORRUPT) {
DeleteCorruptedReportFromStore(ReportPath);
}
}
}
Step 2:

当wermgr.exe遇到已损坏的名为report.wer的INI文件时,它会更改其访问控制权限以便稍后删除它。更具体地说:

1.第一,wermgr!DeleteCorruptedReportFromStore会列出子目录下的所有文件;

2.接着,wermgr!PreparePathForDeletion会修改每个文件的权限。这就是漏洞原理所在!因为此函数会使用kernel32!GetFileSecurity读取文件的安全描述符,并利用kernel32!SetFileSecurity将其设置为可删除。

int64 PreparePathForDeletion(wchar_t* FileName) {

PSECURITY_DEsc riptOR SecurityDesc riptor = NULL;

DWORD BytesRead = 0;

PDACL Dacl = NULL;

/* … */

if ( !GetFileSecurity(FileName,

DACL_SECURITY_INFORMATION,

NULL, 0, &BytesRead) ) {

/* … */

return;

}

SecurityDesc riptor = new BYTE[BytesRead];

if ( !GetFileSecurity(FileName,

DACL_SECURITY_INFORMATION,

SecurityDesc riptor,

BytesRead, &BytesRead) ) {

/* … */

return;

}

if ( GetSecurityDesc riptorDacl(SecurityDesc riptor,

&DaclPresent,

&Dacl, &DaclDefaulted) )

{

/* … */

HANDLE TokenHandle = NULL;

PACL NewAcl = NULL;

EXPLICIT_ACCESS ExplicitAccess = {0};

/* … */

LPVOID UserName = new BYTE[/* … */];

GetTokenInformation(TokenHandle, TokenUser,

UserName, &BytesRead);

ExplicitAccess.Trustee.ptstrName = UserName;

ExplicitAccess.Trustee.TrusteeType = TRUSTEE_IS_NAME;

ExplicitAccess.grfAcces**ode = GRANT_ACCESS;

ExplicitAccess.grfAccessPermissions = DELETE | /* … */;

/* … */

SetEntriesInAcl(1, &ExplicitAccess, Dacl, &NewAcl);

InitializeSecurityDesc riptor(&SecurityDesc riptor, 1);

SetSecurityDesc riptorDacl(&SecurityDesc riptor, 1, NewAcl, 0);

SetFileSecurity(FilePath, DACL_SECURITY_INFORMATION,

&SecurityDesc riptor);

}

}

不过,在特定的时间创建文件链接较为困难,这可能需要一次又一次的尝试。攻击者在实际**作中很可能以可执行文件(dll、exe或脚本)为目标,尝试使用恶意文件覆盖它们,最后等待系统自动执行。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场

来源:https://nosec.org/home/detail/2742.html

原文:https://unit42.paloaltonetworks.com/tale-of-a-windows-error-reporting-zero-day-cve-2019-0863/

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

拓展知识:

原创文章,作者:九贤生活小编,如若转载,请注明出处:http://www.wangguangwei.com/32034.html