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
1 |
|
可以看到已经上线了
这里面也可以看到 可以将任务名字改得正常一点 提高隐藏性
现在将电脑关机 已经将cs里面会话的删掉
不管用什么用户登录都直接上线
但是测试的时候 发现最后要设置为system才执行上线 其他权限的不行
1 |
|
账号登录时上线
1 |
|
删除计划任务
1 |
|
但运行中的不会中断
结束计划任务
1 |
|
运行计划任务
立即运行 但不会影响计划任务
1 |
|
注册自启动服务
我们可以把后门注册为自启服务 电脑启动后会自动执行自启服务
创建名为test的服务(注意等号后面有空格),设置自启动,启动权限为system
1 |
|
但是需要尽快进行迁移以免shell掉线
自启动注册表植入后门
在每次开机完成后,计算机会自动遍历自启动注册表下的键值,获取键值中的程序路径,并创建进程启动程序,我们想要利用这个就需要修改注册表在键值存放我们的程序
常见的注册表键值
1 |
|
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
添加键test,值为后门程序路径
1 |
|
然后重启机器
HKEY_CURRENT_USER\Software\Mircosoft\Windows\CurrentVersion\Run
1 |
|
映像劫持
“映像劫持”,也被称为 “IFEO”(Image File Execution Options)。通过修改“Debugger“项值,替换执行程序,加以利用。
劫持对应的程序后,打开该程序运行的是别的程序,比如运行A.exe打开的则是B.exe
注册表路径为:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
在注册表路径下创建一个项,项名为要劫持的exe名称,可以为任意一个可以运行的exe程序,包括安装后和未安装的exe。并在该项创建一个Debugger的键值(名字只能为Debugger),键值填运行的恶意exe
对notepad++程序进行劫持
1 |
|
然后点击nodepade++.exe
打不开
上线了
映像劫持新玩法
新的利用方法,实现的效果是:程序A静默退出结束后,会执行程序B。
劫持notepad.exe
1 |
|
详细可参考https://www.anquanke.com/post/id/151425
logon scripts 后门
Windows 登录脚本,当用户登录时触发
注册表位置:HKEY_CURRENT_USER\Environment
1 |
|
创建隐藏账号
1 |
|
net user看不见 但管理员里面可以看见 以及管理用户面板
失败命令
Windows提供了一种功能,以便在服务无法启动或其通信过程终止时执行某些操作。具体来说,当服务被终止时,可以执行命令。控制此操作的注册表项是“ FailureCommand ”,其值将定义要执行的操作。
1 |
|
这样注册之后 我们将 win32time服务停止后 会执行ttt.exe
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!