从程序尸体发现黑客入侵痕迹
2023-2-21 08:5:9 Author: 奶牛安全(查看原文) 阅读量:25 收藏


使用windbgpowershelldump文件提取命令记录,用于恶意行为分析

译自:https://www.leeholmes.com/extracting-activity-history-from-powershell-process-dumps/

假设正在调查一个被黑客使用powershell入侵的系统,而这个系统的powershell的日志功能被停用了,而手上只有一个powershell进程的dump文件。该怎么办?

dump文件是取证黄金,而windbg的托管代码调试扩展(“SOS”--Strike之子)可以用来研究它。

在菜单选中打开dump文件,可以看到

image

执行如下操作,加载SOS

.loadby sos clr
.symfix
.reload

使用!help命令可以看到 SOS CLR调试扩展所有特性,其中一个很有用的命令是!DumpHeap,用来枚举托管内容所有对象,并且可以根据类型过滤。

Powershell把命令历史记录在HistoryInfo对象,使用!DumpHeap –Type HistoryInfo看一下,如果有报错,重新操作一下。

image

可以看到有6条HistoryInfo(黑客执行的命令),有7组HistoryInfo(内部数据)。堆是包含暂时在用的数据,所以不是所有都表示唯一的命令。

点击HistoryInfoMT列,可以知道对象的类型。然后再点击出来的地址,就可以看到HistoryInfo对象的内容。这些点击操作其实就是下图windbg下两条命令!DumpHeap /d -mt 00007ff8a140be70!DumpObj /d 0000024226256100

image

有一个偏移量为8的字符串的名称叫_cmdline,使用!DumpObj /d 0000024226255a30看一下内容

image

可以看到是执行whoami命令。

手工一个个地看HistoryInfo很费事,使用windbg的脚本语言来看。

.foreach (historyinfo { !dumpheap -type HistoryInfo -short }) { .echo ${historyinfo}; !DumpObj poi(${historyinfo}+8) }

!dumpheap的结果遍历,把每个内存地址分配给historyinfo变量,再打印这个变量内容,使用poi函数计算_cmdline的地址,然后使用!dumpobj_cmdline内容打印出来。

image

可以看到,攻击者使用whoami获取管理域的用户密码,再使用powershell远程连接域控。

=========================================

文中和文末的小广广,渴望你手指的触碰!!!

请关注,转发,点“在看”,谢谢!!

如需要转载,请在公众号留言!!

暗号:0d159


文章来源: http://mp.weixin.qq.com/s?__biz=MzU4NjY0NTExNA==&mid=2247488507&idx=1&sn=a10c936ca598396fa2e3d072615aff40&chksm=fdf978eeca8ef1f81ea0c2d3711284b5d3bf9d5e7fbbc5f3394683995e944a0ceec7876d8c45#rd
如有侵权请联系:admin#unsafe.sh