【技术分享】Windows 权限维持启动项合集
【技术分享】Windows 权限维持启动项合集
2022-07-19 / 0 评论 / 193 阅读 / 26 点赞

【技术分享】Windows 权限维持启动项合集

发光的神
2022-07-19 / 0 评论 / 193 阅读 / 正在检测是否收录...

1.Load注册键

HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load

2.Userinit注册键

这里能够使系统启动时自动初始化程序,通常该注册键下面有一个userinit.exe。
这个键允许指定用逗号分隔的多个程序,例如“userinit.exe,OSA.exe”(不含引号)。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit

l5tiv64n.png

3.Explorer-Run注册键

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

4.RunServicesOnce注册键

RunServicesOnce注册键用来启动服务程序,启动时间在用户登录之前,而且先于其他通过注册键启动的程序。RunServicesOnce注册键的位置是:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce

5.RunServices注册键

RunServices注册键指定的程序紧接RunServicesOnce指定的程序之后运行,但两者都在用户登录之前。RunServices的位置是:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ RunServices
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices

6.RunOnce\Setup注册键

RunOnce\Setup指定了用户登录之后运行的程序,它的位置是:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup

7.RunOnce注册键

安装程序通常用RunOnce键自动运行程序,它的位置在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce、
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE下面的RunOnce键会在用户登录之后立即运行程序,运行时机在其他Run键指定的程序之前。HKEY_CURRENT_USER下面的RunOnce键在操作系统处理其他Run键以及“启动”文件夹的内容之后运行。如果是XP,你还需要检查一下:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

8.Run注册键

Run是自动运行程序最常用的注册键,位置在:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER下面的Run键紧接HKEY_LOCAL_MACHINE下面的Run键运行,但两者都在处理“启动”文件夹之前。

9.Windows Shell 系统接口

位于HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
下面的Shell字符串类型键值中,基默认值为Explorer.exe,当然可能木马程序会在此加入自身并以木马参数的形式调用资源管理器,以达到欺骗用户的目的。

10.常用的启动 系统配置文件

Windows的配置文件,包括Win.ini、System.ini和wininit.ini文件也会加载一些自动运行的程序
Win.ini文件
在[windows]段下的“Run=”和“LOAD=”语句后面就可以直接加可执行程序,只要程序名称及路径写在“=”后面即可。
System.ini文件
默认[boot]段下“shell=”的语句为“shell=Explorer.exe”,启动的时候运行Windows外壳程序
explorer.exe,黑客可将该句变成“shell=病毒文件名.exe。

11.系统服务

位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,系统服务加载程序,其中netsvcs 是一组服务的集合(通过svchost 用来加载成组服务),不是单个的服务,具体哪些服务在 netsvcs 里,可以在注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost
右边的 netsvcs 值里查看,里面的不一定是当前都被加载了的,只是说它们若被加载都划归在 netsvcs 组里,其中哪些服务正运行着,可和服务里的相应服务状态对照着看。

12.windows 通过AppInit加载任意dll

windows操作系统允许将用户提供的dll加载到所有的进程的内存空间中。该功能可以用来做后门持久化。有点类似于linux的ld_preload环境变量。在进程启动的时候,操作系统会将用户提供的dll加载。在设置该功能时,需要administrator权限。设置方法为修改注册表中两个选项
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\WindowsNT\CurrentVersion\Windows
微软默认阻止用户通过appinit功能去加载未知的dll。不过,可以通过修改注册表键值HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Windows\LoadAppInit_DLLs为1去关闭该功能。将待加载的dll保存在Program Files文件夹,并且将AppInit_DLLs键值修改为待加载dll的路径,即可让所有windows进程都加载该dll。
这是因为在“ AppInit_DLLs”注册表项中指定的DLL是由user32.dll加载的,几乎所有应用程序都使用该user32.dll。

任务计划 (推荐)

l5tkbksm.png

使用cmd注册任务计划

当然也可以用Windows提供的API进行创建

schtasks /change /tn "Adobe Acrobat Update Task" /disable        //禁用名为Adobe Acrobat Update Task的计划任务
schtasks /change /tn GoogleUpdateTaskMachineCore /disable        //禁用名为Adobe Acrobat Update Task的计划任务   
schtasks /Change /TN "Adobe Acrobat Update Task" /enable         //启用名为Adobe Acrobat Update Task的计划任务
schtasks /create /tn "restart" /ru SYSTEM /sc ONSTART /tr "E:\dataojo\commond\restart.bat"         //创建计划任务
schtasks /delete /tn * /f          //删除所有计划任务

schtasks参数说明

SCHTASKS /Create [/S system [/U username [/P [password]]]] [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day] [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime][/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]] [/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F]
描述:
     允许管理员在本地或远程系统上创建计划任务。
 
参数列表:
    /S   system        指定要连接到的远程系统。如果省略这个系统参数,默认是本地系统。
    /U   username      指定应在其中执行 SchTasks.exe 的用户上下文。
 
    /P   [password]    指定给定用户上下文的密码。如果省略则提示输入。
    /RU  username      指定任务在其下运行的“运行方式”用户帐户(用户上下文)。
                       对于系统帐户,有效值是 ""、"NT AUTHORITY\SYSTEM" 或"SYSTEM"。
                       对于 v2 任务,"NT AUTHORITY\LOCALSERVICE"和
                       "NT AUTHORITY\NETWORKSERVICE"以及常见的 SID。对这三个也都可用。
 
    /RP  [password]    指定“运行方式”用户的密码。要提示输入密码,值必须是 "*" 或无。
                       系统帐户会忽略该密码。必须和 /RU 或 /XML 开关一起使用。
                      
    /RU/XML  /SC  schedule     指定计划频率。
                       有效计划任务:  MINUTE、 HOURLY、DAILY、WEEKLY、
                       MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.
 
    /MO   modifier     改进计划类型以允许更好地控制计划重复
                       周期。有效值列于下面“修改者”部分中。
    /D    days         指定该周内运行任务的日期。有效值:
                       MON、TUE、WED、THU、FRI、SAT、SUN
                       和对 MONTHLY 计划的 1 - 31
                       (某月中的日期)。通配符“*”指定所有日期。
 
    /M    months       指定一年内的某月。默认是该月的第一天。
                       有效值: JAN、FEB、MAR、APR、MAY、JUN、
                       JUL、 AUG、SEP、OCT、NOV  和 DEC。通配符
                       “*” 指定所有的月。
    /I    idletime     指定运行一个已计划的 ONIDLE 任务之前
                       要等待的空闲时间。
                       有效值范围: 1 到 999 分钟。
 
    /TN   taskname     指定唯一识别这个计划任务的名称。
    /TR   taskrun      指定在这个计划时间运行的程序的路径
                       和文件名。
                       例如: C:\windows\system32\calc.exe
 
    /ST   starttime    指定运行任务的开始时间。
                       时间格式为 HH:mm (24 小时时间),例如 14:30 表示
                       2:30 PM。如果未指定 /ST,则默认值为
                       当前时间。/SC ONCE 必需有此选项。
 
    /RI   interval     用分钟指定重复间隔。这不适用于
                       计划类型: MINUTE、HOURLY、
                       ONSTART, ONLOGON, ONIDLE, ONEVENT.
                       有效范围: 1 - 599940 分钟。
                       如果已指定 /ET 或 /DU,则其默认值为
                       10 分钟。
 
    /ET   endtime      指定运行任务的结束时间。
                       时间格式为 HH:mm (24 小时时间),例如,14:50 表示 2:50 PM。
                       这不适用于计划类型: ONSTART、
                       ONLOGON, ONIDLE, ONEVENT.
    /DU   duration     指定运行任务的持续时间。
                       时间格式为 HH:mm。这不适用于 /ET 和
                       计划类型: ONSTART, ONLOGON, ONIDLE, ONEVENT.
                       对于 /V1 任务,如果已指定 /RI,则持续时间默认值为
                       1 小时。
 
    /K                 在结束时间或持续时间终止任务。
                       这不适用于计划类型: ONSTART、
                       ONLOGON, ONIDLE, ONEVENT.
                       必须指定 /ET 或 /DU。
 
    /SD   startdate    指定运行任务的第一个日期。
                       格式为 yyyy/mm/dd。默认值为
                       当前日期。这不适用于计划类型: ONCE、
                       ONSTART, ONLOGON, ONIDLE, ONEVENT.
    /ED   enddate      指定此任务运行的最后一天的日期。
                       格式是 yyyy/mm/dd。这不适用于计划类型:
                        ONCE、ONSTART、ONLOGON、ONIDLE。
 
    /EC   ChannelName  为 OnEvent 触发器指定事件通道。
    /IT                仅有在 /RU 用户当前已登录且
                       作业正在运行时才可以交互式运行任务。
                       此任务只有在用户已登录的情况下才运行。
 
    /NP                不储存任何密码。任务以给定用户的身份
                       非交互的方式运行。只有本地资源可用。
    /Z                 标记在最终运行完任务后删除任务。
 
    /XML  xmlfile      从文件的指定任务 XML 中创建任务。
                       可以组合使用 /RU 和 /RP 开关,或者在任务 XML 已包含
                       主体时单独使用 /RP。
 
    /V1                创建 Vista 以前的平台可以看见的任务。
                       不兼容 /XML。
 
    /F                 如果指定的任务已经存在,则强制创建
                       任务并抑制警告。
    /RL   level        为作业设置运行级别。有效值为
                       LIMITED 和 HIGHEST。默认值为 LIMITED。
 
    /DELAY delaytime   指定触发触发器后延迟任务运行的
                       等待时间。时间格式为
                       mmmm:ss。此选项仅对计划类型
                       ONSTART, ONLOGON, ONEVENT.
    /?                 显示帮助消息。
描述
允许管理员创建、删除、查询、更改、运行和中止
本地或远程系统上的计划系统。替代 AT.exe。
参数列表
/Create 创建新计划任务。
/Delete 删除计划任务。
/Query 显示所有计划任务。
/Change 更改计划任务属性。
/Run 立即运行计划任务。
/End 中止当前正在运行的计划任务。
/? 显示帮助/用法。

注册系统服务

终端输入 instsrv ServiceName srvany.exe // 注册服务
注册表找到这个 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName // 注册表找到服务
然后在ServiceName 新建Parameters项
里面新建 Application 存储的值是要运行的软件路径

26

评论 (0)

取消
0:00