权限维持篇-用户登录初始化后门

释放双眼,带上耳机,听听看~!

用户登录初始化

首先,我们需要了解userinit.exe

Userinit.exe是Windows操作系统一个关键进程。用于管理不同的启动顺序,例如在建立网络链接和Windows壳的启动。

Userinit会在用户登录时进行初始化设置,而WinLogon进程将执行指定的login scripts,我们可以修改Userinit的键值来加载我们需要执行的程序。

初始化后门设置

定位键值

我们需要找到所在的键值

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit

我的实验机器为WIN7,我所找到的注册表路径为:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

如图:

第一种方法

假设当前我们已经远程登陆到了目标机器,并且是高权限,那么我们就可以直接进行修改。这里我以计算机为例子展示:

双击Userinit进行修改,在原本数据的基础上再添加计算器的路径,要注意的是两个程序路径之间需要以,相隔。

修改完成之后,我们注销用户,再登录用户,就可以看到屏幕上已经自动启动了计算器程序。如图:

第二种方法

Powershell很强大,所以我们可以利用Powershell进行注册表数据的修改。

假设的环境为:已经拿到了一个高权限的meterpreter shell。

echo Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\WINDOWS NT\CurrentVersion\Winlogon" -name Userinit -value "C:\Windows\system32\userinit.exe,C:\Windows\system32\calc.exe" > system.ps1
PowerShell.exe -ExecutionPolicy Bypass system.ps1

echo Set-ItemProperty “HKLM:\SOFTWARE\Microsoft\WINDOWS NT\CurrentVersion\Winlogon” -name Userinit -value “C:\Windows\system32\userinit.exe,C:\Windows\system32\calc.exe” > system.ps1

解释一下,为什么先使用echo命令,因为在测试过程中发现,powershell在msf中的回连是有问题的,导致无法运行powershell,所以我们只能通过powershell.exe来加载脚本运行,最后的效果都是一样的。参数-ExecutionPolicy Bypass用于绕过权限限制,不加此参数,可能会执行失败,报错提示无权限执行脚本。

执行完之后,我们再使用命令del system.ps1,将文件删除即可。

总结

用户登录初始化后门,隐蔽性高,并且其优先于大部分杀软启动,免杀性好,当然对权限的要求也是相当严格了。

 

相关文章

人已赞赏
安全教程

moeCTF WP之stronger_php

2020-3-25 18:34:13

安全教程

权限维持篇-NC后门

2020-3-26 2:19:30

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索