常见的几种Windows后门持久化方式 (常见的几种胃病)

教程大全 2025-07-21 08:56:25 浏览

背景

持久化后门是指当者通过某种手段拿到 服务器 的控制权之后,通过在服务器上放置一些后门(脚本、进程、连接之类),来方便他以后持久性的破坏,简单梳理一下日常遇见windows用的比较多的一些持久化方式方便以后排查问题使用。

注册表自启动

最常见的在指定键值添加一个新的键值类型为REG_SZ,数据项中添写需要运行程序的路径即可以启动,此类操作一些较为敏感容易被本地AV拦截,目前也是较为常见的一种方式。

键值路径如下:

自启动项目如下:

用户登录

在注册表路径:HKCU\Environment\

创建字符串键值:UserInitMprLogonScript

键值设置为特定的脚本路径即可:

另外一种实现方式是修改winlogon Userinit字段:

Powershell的一键修改命令如下:

定时任务

Windows实现定时任务主要有schtasks与at二种方式,一定层次说上schtasks是at命令的升级版、主要行为特别表现从一个特定的外网地址下载downloader样本或病毒母体或者维持CC通信的心跳包。

使用以下命令可以一键实现:

WMI是微软基于Web的企业管理(WBEM)的实现版本,这是一项行业计划,旨在开发用于访问企业环境中管理信息的标准技术。主要与Powershell命令配合使用可以实现无文件重要方式,具有良好的隐蔽性也是目前较为常用的持久化手段。

关键实现的代码如下:

WMI对象主要是执行一个WQL(WMI Query Language)的查询后,本地调用Powershell执行响应的代码由于没有文件保存在本地磁盘能够较好的免查杀。

Black Hat 2015公布了一个WMIBackdoor的poc毕竟还是经典,在流行的powersploit与nishang框架里面也有相关的ps1文件。

传送门:

在指定的web服务器路径藏的很深的那种放置一个webshell,同时做好免杀后的shell往往比常规的系统后门更难被发现,这个操作很常规。

各类webshell种类比较多传送门:

自启动服务

简单的分为二种方式将自己的恶意的可执行文件注册成服务或者调用系统进程如svchost加载dll文件运行服务。第二种方式相对隐蔽性较好由于系统进程的特殊性往往不敢轻易终止进程,由于此类均在PE文件或者其他类型文件在磁盘中容易被查杀,特殊处理过的除外。

Metasploit可以使用Metsvc创建服务,此类操作极容易被AV查杀。

如下是永恒之蓝挖矿病毒一个常见病毒,通过伪装服务名为系统服务瞒天过海。

在Meterpreter下可以运行run metsvc将会在目标主机上以Meterpreter的服务的形式注册在服务列表中,并开机自动自动:

Windows服务端服务注册成功:

dll劫持

常见的几种Windows后门持久化方式

如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows会尝试去指定的目录下查找这个DLL;如果者能够控制其中的某一 个目录,并且放一个恶意的DLL文件到这个目录下,这个恶意的DLL便会被进程所加载,从而造成代码执行。

比较常用的如LPK.dll的劫持:

win7及win7以上系统增加了KnownDLLs保护,需要在注册表:

下添加 “lpk.dll” 才能顺利劫持:

另外一种思路是通过查看被劫持的DLL的导出函数表,编程实现劫持DLL向原DLL的导出函数的转发,并加入你的恶意代码达到一个劫持的效果。

COM劫持

主要通过修改CLSID下的注册表键值,实现对CAccPropServicesClass和MMDeviceEnumerator劫持,而系统很多正常程序启动时需要调用这两个实例,所以,这就可以用作后门来使用,并且,该方法也能够绕过Autoruns对启动项的检测。

传送门如下:

Powershell版本的poc:

MBR后门主要的思路是读取主引导记录和把分区表从主引导记录中复制出来。然后把自己的包含恶意二进制数据的主引导记录放到主引导扇区,并复制新的分区表到它。但是,并非只有分区表需要保留,还有原来的主引导记录也需要保存下来,MBR病毒复制原始主引导记录到其它64个未用到的扇区。到MBR病毒执行完自己的操作后在读取原始的主引导记录并跳到0x7c00处执行来引导开机。目前比较流行的比如暗云木马系列:

详细可参考腾讯的研究报告:

通过PCHunter也能够进行简单的MBR的异常判断,此类后门往往具有较大的实施难度病毒种类往往也较少。

总结

Windows环境的持久化还有更多霸气侧漏的姿势没有遇见总结到,相对于之前建立隐藏账户、网站跟目录下的webshell、一个后门的exe程序、定时任务这些手法一些更新的手法显得更加隐蔽与难以查杀,希望能给日常背锅的运维、安全应急、开发大佬与道歉师在客户现场搞的焦头烂额时候提供一些排查思路吧。


装系统中的后门是什么?起什么作用?有什么有利和有害的?如何弄?

传统的后门是软件设计者故意留下来方便管理的一个BUG。 现在的后门指的是远程控制类的木马等程序。 例如灰鸽子就是一个后门。 楼主可明白?

电脑的系统漏洞是什么意思啊?

后门程序,跟我们通常所说的木马有联系也有区别.联系在于:都是隐藏在用户系统中向外发送信息,而且本身具有一定权限,以便远程机器对本机的控制.区别在于:木马是一个完整的软件,而后门则体积较小且功能都很单一.而且,在病毒命名中,后门一般带有backdoor字样,而木马一般则是trojan字样.后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。 在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。 但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成了安全风险,容易被黑客当成漏洞进行攻击。 后门程序又称特洛依木马,其用途在于潜伏在电脑中,从事搜集信息或便于黑客进入的动作。 后门程序和电脑病毒最大的差别,在于后门程序不一定有自我复制的动作,也就是后门程序不一定会“感染”其它电脑。 最著名的后门程序,该算是微软的Windows Update了。 Windows Update的动作不外乎以下三个:开机时自动连上微软的网站,将电脑的现况报告给网站以进行处理,网站通过Windows Update程序通知使用者是否有必须更新的文件,以及如何更新。 如果我们针对这些动作进行分析,则“开机时自动连上微软网站”的动作就是后门程序特性中的“潜伏”,而“将电脑现况报告”的动作是“搜集信息”。 因此,虽然微软“信誓旦旦”地说它不会搜集个人电脑中的信息,但如果我们从Windows Update来进行分析的话,就会发现它必须搜集个人电脑的信息才能进行操作,所差者只是搜集了哪些信息而已。 木马(Trojan)这个名字来源于古希腊传说(荷马史诗中木马计的故事,Trojan一词的本意是特洛伊的,即代指特洛伊木马,也就是木马计的故事)。 “木马”程序是目前比较流行的病毒文件,与一般的病毒不同,它不会自我繁殖,也并不“刻意”地去感染其他文件,它通过将自身伪装吸引用户下载执行,向施种木马者提供打开被种者电脑的门户,使施种者可以任意毁坏、窃取被种者的文件,甚至远程操控被种者的电脑。 “木马”与计算机网络中常常要用到的远程控制软件有些相似,但由于远程控制软件是“善意”的控制,因此通常不具有隐蔽性;“木马”则完全相反,木马要达到的是“偷窃”性的远程控制,如果没有很强的隐蔽性的话,那就是“毫无价值”的。 它是指通过一段特定的程序(木马程序)来控制另一台计算机。 木马通常有两个可执行程序:一个是客户端,即控制端,另一个是服务端,即被控制端。 植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。 运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,使黑客可以利用这些打开的端口进入电脑系统,安全和个人隐私也就全无保障了! 木马的设计者为了防止木马被发现,而采用多种手段隐藏木马。 木马的服务一旦运行并被控制端连接,其控制端将享有服务端的大部分操作权限,例如给计算机增加口令,浏览、移动、复制、删除文件,修改注册表,更改计算机配置等。 随着病毒编写技术的发展,木马程序对用户的威胁越来越大,尤其是一些木马程序采用了极其狡猾的手段来隐蔽自己,使普通用户很难在中毒后发觉。

怎样防止黑客侵入电脑?

当黑客入侵一台主机后,会想方设法保护自己的“劳动成果”,因此会在电脑上留下种种后门来长时间得控制这台电脑,其中使用最多的就是账户隐藏技术。在电脑上建立一个隐藏的账户,以备需要的时候使用。账户隐藏技术可谓是最隐蔽的后门,一般用户很难发现系统中隐藏账户的存在,因此危害性很大,本文就对隐藏账户这种黑客常用的技术进行揭密。

在隐藏系统账户之前,我们有必要先来了解一下如何才能查看系统中已经存在的账户。 在系统中可以进入“命令提示符”,控制面板的“计算机管理”,“注册表”中对存在的账户进行查看,而管理员一般只在“命令提示符”和“计算机管理”中检查是否有异常,因此如何让系统账户在这两者中隐藏将是本文的重点。

一、“命令提示符”中的阴谋

其实,制作系统隐藏账户并不是十分高深的技术,利用我们平时经常用到的“命令提示符”就可以制作一个简单的隐藏账户。

点击“开始”→“运行”,输入“CMD”运行“命令提示符”,输入“net user piao$ /add”,回车,成功后会显示“命令成功完成”。 接着输入“net localgroup administrators piao$ /add”回车,这样我们就利用“命令提示符”成功得建立了一个用户名为“piao$”,密码为“”的简单“隐藏账户”,并且把该隐藏账户提升为了管理员权限。

我们来看看隐藏账户的建立是否成功。 在“命令提示符”中输入查看系统账户的命令“net user”,回车后会显示当前系统中存在的账户。 从返回的结果中我们可以看到刚才我们建立的“piao$”这个账户并不存在。 接着让我们进入控制面板的“管理工具”,打开其中的“计算机”,查看其中的“本地用户和组”,在“用户”一项中,我们建立的隐藏账户“piao$”暴露无疑。

可以总结得出的结论是:这种方法只能将账户在“命令提示符”中进行隐藏,而对于“计算机管理”则无能为力。 因此这种隐藏账户的方法并不是很实用,只对那些粗心的管理员有效,是一种入门级的系统账户隐藏技术。

二、在“注册表”中玩转账户隐藏

从上文中我们可以看到用命令提示符隐藏账户的方法缺点很明显,很容易暴露自己。 那么有没有可以在“命令提示符”和“计算机管理”中同时隐藏账户的技术呢?答案是肯定的,而这一切只需要我们在“注册表”中进行一番小小的设置,就可以让系统账户在两者中完全蒸发。

1、给管理员注册表操作权限

在注册表中对系统账户的键值进行操作,需要到“HKEY_LOCAL_MACHINE\SAM\SAM”处进行修改,但是当我们来到该处时,会发现无法展开该处所在的键值。 这是因为系统默认对系统管理员给予“写入D AC”和“读取控制”权限,没有给予修改权限,因此我们没有办法对“SAM”项下的键值进行查看和修改。 不过我们可以借助系统中另一个“注册表编辑器”给管理员赋予修改权限。

点击“开始”→“运行”,输入“”后回车,随后会弹出另一个“注册表编辑器”,和我们平时使用的“注册表编辑器”不同的是它可以修改系统账户操作注册表时的权限(为便于理解,以下简称)。 在中来到“HKEY_LOCAL_MACHINE\SAM\SAM”处,点击“安全”菜单→“权限”,在弹出的“SAM的权限”编辑窗口中选中“administrators”账户,在下方的权限设置处勾选“完全控制”,完成后点击“确定”即可。 然后我们切换回“注册表编辑器”,可以发现“HKEY_LOCAL_MACHINE\SAM\SAM”下面的键值都可以展开了。

提示:上文中提到的方法只适用于Windows NT/2000系统。 在Windows XP系统中,对于权限的操作可以直接在注册表中进行,方法为选中需要设置权限的项,点击右键,选择“权限”即可。

2、将隐藏账户替换为管理员

成功得到注册表操作权限后,我们就可以正式开始隐藏账户的制作了。 来到注册表编辑器的“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names”处,当前系统中所有存在的账户都会在这里显示,当然包括我们的隐藏账户。 点击我们的隐藏账户“piao$”,在右边显示的键值中的“类型”一项显示为0x3e9,向上来到“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\”处,可以找到“E9”这一项,这两者是相互对应的,隐藏账户“piao$”的所有信息都在“E9”这一项中。 同样的,我们可以找到“administrator”账户所对应的项为“F4”。

将“piao$”的键值导出为piao$,同时将“E9”和“F4”项的F键值分别导出为,。 用“记事本”打开,将其中“F”值后面的内容复制下来,替换中的“F”值内容,完成后保存。 接下来进入“命令提示符”,输入“net user piao$ /del”将我们建立的隐藏账户删除。 最后,将piao$和导入注册表,至此,隐藏账户制作完成。

3、切断删除隐藏账户的途径

虽然我们的隐藏账户已经在“命令提示符”和“计算机管理”中隐藏了,但是有经验的系统管理员仍可能通过注册表编辑器删除我们的隐藏账户,那么如何才能让我们的隐藏账户坚如磐石呢?

打开“”,来到“HKEY_LOCAL_MACHINE\SAM\SAM”处,设置“SAM”项的权限,将“administrators”所拥有的权限全部取消即可。 当真正的管理员想对“HKEY_LOCAL_MACHINE\SAM\SAM”下面的项进行操作的时候将会发生错误,而且无法通过“”再次赋予权限。 这样没有经验的管理员即使发现了系统中的隐藏账户,也是无可奈何的。

三、把“隐藏账户”请出系统

隐藏账户的危害可谓十分巨大。 因此我们有必要在了解了账户隐藏技术后,再对相应的防范技术作一个了解,把隐藏账户彻底请出系统。

1、添加“$”符号型隐藏账户

对于这类隐藏账户的检测比较简单。 一般黑客在利用这种方法建立完隐藏账户后,会把隐藏账户提升为管理员权限。 那么我们只需要在“命令提示符”中输入“net localgroup administrators”就可以让所有的隐藏账户现形。 如果嫌麻烦,可以直接打开“计算机管理”进行查看,添加“$”符号的账户是无法在这里隐藏的。

2、修改注册表型隐藏账户

由于使用这种方法隐藏的账户是不会在“命令提示符”和“计算机管理”中看到的,因此可以到注册表中删除隐藏账户。 来到“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names”,把这里存在的账户和“计算机管理”中存在的账户进行比较,多出来的账户就是隐藏账户了。 想要删除它也很简单,直接删除以隐藏账户命名的项即可。

3、无法看到名称的隐藏账户

如果黑客制作了一个修改注册表型隐藏账户,在此基础上删除了管理员对注册表的操作权限。 那么管理员是无法通过注册表删除隐藏账户的,甚至无法知道黑客建立的隐藏账户名称。 不过世事没有绝对,我们可以借助“组策略”的帮助,让黑客无法通过隐藏账户登陆。 点击“开始”→“运行”,输入“”运行“组策略”,依次展开“计算机配置”→“Windows 设置”→“安全设置”→“本地策略”→“审核策略”,双击右边的“审核策略更改”,在弹出的设置窗口中勾选“成功”,然后点“确定”。 对“审核登陆事件”和“审核过程追踪”进行相同的设置。

4、开启登陆事件审核功能

进行登陆审核后,可以对任何账户的登陆操作进行记录,包括隐藏账户,这样我们就可以通过“计算机管理”中的“事件查看器”准确得知隐藏账户的名称,甚至黑客登陆的时间。 即使黑客将所有的登陆日志删除,系统还会记录是哪个账户删除了系统日志,这样黑客的隐藏账户就暴露无疑了。

5、通过事件查看器找到隐藏帐户

得知隐藏账户的名称后就好办了,但是我们仍然不能删除这个隐藏账户,因为我们没有权限。 但是我们可以在“命令提示符”中输入“net user 隐藏账户名称 ”更改这个隐藏账户的密码。 这样这个隐藏账户就会失效,黑客无法再用这个隐藏账户登陆。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐