建议收藏 打开注册表命令


建议收藏 打开注册表命令



Windows注册表是一个庞大而复杂的话题,因此,我们根本不可能通过一篇文章讲清楚 。然而,从安全的角度来看,一个特别值得关注的领域是注册表运行键 。在这篇文章中,我们将探讨谁在使用运行键,如何发现该键的滥用情况,以及如何根除系统中的恶意运行键 。
运行键简介
什么是注册表运行键?运行键是注册表的一种开机运行机制:当用户登录或机器启动时,在Windows系统上执行一些程序 。
由于运行键很容易引发安全问题,所以,它自然会成为攻击者的研究对象 。例如,Fancy Bear(也被称为APT28)、TA456和Group 123都喜欢用运行键来实现对被攻击网络的权限维持 。同时,运行键还可以包含各种形式的恶意内容——从简单的可执行文件到充满宏代码的电子表格 。
MITRE ATT&CK将这种特殊的权限维持战术记为子技术T1547.001 。在入侵活动中,虽然这种技术并不常见,然而它却可以实现权限维持——因此,我们更有理由进一步探索这种“默默无闻”的技术 。
建议收藏 打开注册表命令


虽然高级攻击者偶尔会利用运行键,但我发现,关于这种机制的探讨却非常少见 。实际上,之所以很少有文章讨论这种注册表功能,并不是因为整个信息安全社区的技术差距 。相反,运行键是Windows注册表“配置数据库”的一个不太引人注目的可执行组件 。这意味着与更强大、更知名的攻击技术和操作系统组件相比,它们往往没有得到同等程度的关注 。然而,我最近在信息安全社交圈中看到了下面的讨论:
建议收藏 打开注册表命令


在我们介绍如何检测恶意运行键之前,让我们先来简单聊一下Windows注册表 。
Windows注册表Windows注册表是一个迷宫般的系统 。从表面上看,它是一个集中式数据库,用于存储与用户和机器设置有关的信息 。不过现实情况却是,它更像是一个由古怪和奇妙的功能组成的系统;尽管这些功能具有破坏性的潜力,但是,微软对这些功能的说明并不详尽 。
我可以花几个小时的时间,来讲述关于Windows注册表的不一致性和反复无常 。同时,试图了解其潜力的限制和参数确实会令人抓狂 。但是,注册表的杂乱无章的特性,貌似对攻击者特别有利,因为这便于藏匿其权限维护机制,并在网络外潜伏,直到蓝队转移视线 。
通常情况下,要想区分windows注册表中哪些是良性的,哪些是恶性的,通常是不可能的,特别是在安全事件发生时 。
运行键我希望到目前为止,我已经讲清楚了驯服注册表是多么的困难 。更糟糕的是,微软对运行键的功能的介绍,也是少得令人发指,因为他们只用了六段话来描述运行键 。
运行键存在于注册表中 。它们是可配置的,当用户登录或开机时,允许一个程序执行 。“但是等一下!”,我听到你愤怒地喊道,“Windows已经有一个任务调度器,这就是你安排任务的方式!!!”
不过,与Windows的任务调度器相比,运行键还是有一些重要的区别的,或者说它的功能更加有限 。
建议收藏 打开注册表命令


与Windows任务调度器相比,注册表运行键具有下列特点:
字符限制运行键只能存储少于280个字符的命令 。因此,攻击者的one-liner命令的字符数不能超过这个限制 。我希望微软并不是想以此作为一种底层的防御机制,因为脚本小子的许多反向shell的长度都少于50个字符 。

推荐阅读