本文作者:苏杰波、李布杰

1.     通过组策略运行指定脚本添加隐藏用户

在“开始菜单”->“运行”中输入gpedit.msc打开组策略编辑器,在左边导航栏中选择“计算机配置”->“windows设置”->“脚本(启动/关机)”,双击其右边的“启动”选项,打开“启动属性”窗口:

win11 system32 无权限_数据库

操作系统启动时自动运行该脚本,使用net user命令查看未发现hacker$用户,但通过net user hacker$查看该用户时发现它确实存在:

win11 system32 无权限_win11 system32 无权限_02

但在本地安全策略中可看到:

win11 system32 无权限_java_03

需通过在注册表中进行类似账号克隆的操作,分别将如下图所示的项分别导出为item1.reg和item2.reg:

win11 system32 无权限_linux_04

win11 system32 无权限_linux_05

在item1.reg中编辑F参数,通过复制Administrator在注册表中的F参数将该其覆盖后保存:

win11 system32 无权限_数据库_06

在cmd命令中执行“net user hacker$ /del”,然后双击item1.reg和item2.reg重新将hacker$用户写入到注册表中,此时在本地安全策略中已无hacker$用户,它只存留在注册表中:

win11 system32 无权限_windows_07

用“net user hacker$”查看发现该用户存在:

win11 system32 无权限_java_08

2.     在注册表中添加启动自动运行后门

下图所示为注册表中启动自动运行的目标目录:

win11 system32 无权限_java_09

win11 system32 无权限_数据库_10

通过reg add

"HKEY_CURRENT_USER\software\microsoft\windows\CurrentVersion\Run" /vmyPersist /t reg_sz /d "C:\Users\Administrator\Desktop\persist.exe"

命令,可将启动自动运行的程序添加到注册表中的相应项:

win11 system32 无权限_java_11

3.     通过计划任务添加后门

添加计划任务,每隔1分钟执行一次:

win11 system32 无权限_linux_12

4.     services.msc

win11 system32 无权限_linux_13

Windows 权限维持

隐藏技巧

"真正"的隐藏文件 

命令:Attrib +s +a +h +r [文件]

+s:系统 

+h:隐藏 

+r:只读

加上s属性后,文件会进一步被隐藏(打开查看隐藏文件都看不见),只有使用 dir - h(ls -h) 等才能看见。

当文件被加上s属性后,后续操作可能没有足够的权限取操作,需要先去掉s属性才能进行后续的操作。

改变系统文件夹图标

通过更改文件夹名称,能更改文件夹图标和双击打开的动作(命令行模式仍可以正常使用)。 

但通过命令行模式仍能看见其后缀。

一些代号
我的电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D}
回收站.{645ff040-5081-101b-9f08-00aa002f954e}
拔号⽹络.{992CFFA0-F557-101A-88EC-00DD010CCC48} 
打印机.{2227a280-3aea-1069-a2de-08002b30309d} 
控制⾯板.{21ec2020-3aea-1069-a2dd-08002b30309d} 
⽹上邻居.{208D2C60-3AEA-1069-A2D7-08002B30309D}

畸形目录

只有使用cmd能成功,

powershell不行 创建成功后图形界面不会显示,

但命令行能看见。某些操作不能对其作用,如 cd,dir等 ,但可以 copy 文件进去,或者直接查看文件 

创建目录:md test....\ 

删除目录:rd /s /q test....\

win11 system32 无权限_win11 system32 无权限_14

利用系统保留的文件名创建无法删除的webshell

只有使用cmd能成功,powershell不行 

保留文件名: aux com1 com2 prn con nul 等 

图形化使用此类名创建文件将会报错

此类文件图形化看不见,命令行可以

win11 system32 无权限_数据库_15

但可以通过cmd创建,创建和删除时要用绝对路径 

创建:md \\\\.\c:\com1\ 

删除: rd \\.\c:\com1\

创建与操作文件需要管理员权限,目录不需要 

在创建是添加 \\.\ 前缀是为了便于访问,不然访问时会将目标当作一个IO设备处理。

驱动级隐藏文件

工具:Easy File Locker

下载链接:http://www.xoslab.com/efl.html

通过设置其属性,达到对应目的(隐藏后命令行也不可见,只有知道完整目录才能访问)改软件可以设置密码、自启动,可以删除主界面,卸载程序都可以,只留下核心驱动文件即可。

win11 system32 无权限_win11 system32 无权限_16

如何清除

1. 查询服务状态:sc qc xlkfs
2. 停止服务:net stop xlkfs(停止后,文件便会显现出来,cmd能见)
3. 删除服务:sc delete xlkfs
4. 删除系统目录下的文件,重启系统,确认服务被清除。

关闭杀软

命令 

需要管理员权限 

关闭防火墙:netsh advfirewall set allprofiles state off

关闭Defender: Net stop windefend 

关闭DEP(数据执行保护): bcdedit /set {current} nx alwaysoff

Meterpreter

直接运行 run killav

win11 system32 无权限_java_17

策略组(作业)

gpedit.msc -> 计算机配置 -> windows设置 -> 脚本

通过设置启动与关机时要运行的脚本,执行相关命令。(创建账户、嗅探密码、远程登录等)

# bat
@echo off
net user hack$ 123qwe /add
net localgroup administrators hack$ /add
exit

注册表(作业)

尽量使用 HKEY_LOCAL_MASHINE 而不是 HKEY_CURRNET_USER (没有的键值对需要自己去新建)

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 添加键,键值为
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce 只会运行一
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServer 以服务
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServerOnce 只
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\001 (
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\001\De
同理的还有HKEY_CURRNET_USER树下的。

Meterpreter

1. Persistence后门 

在 Meterpreter 中 Persistence 用于后渗透中的权限维持。通常是通过 cscript.exe 这个程序去执行,创建一个 VBS 脚本 (msf和cs都是,对应的,cs是通过rundll32.exe去执行命令,而msf是通过其启动的后门文件。)

win11 system32 无权限_windows_18

常用的参数有

-S 创建一个服务,随系统启动而启动(System权限)
-U 用户登录时启动后门,就是向注册表HKCU树下写入自启动项
-X 系统登录启动后门,向注册表HKLM树下写入启动项

关于创建的持续性后门,当这个后门启动的时候会周期性的连接目标,只要 cscript.exe 这个进程没有结束。

SharPersist

计划任务(schtasks.exe)(作业)

schtasks.exe 用于在windows系统中指定任务计划,使其能在特定的事件日期执行程序和脚本。

SCHTASKS /parameter [arguments]
描述:
 允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任
 务。参数列表:
 /Create 创建新计划任务。
 /Delete 删除计划任务。
 /Query 显示所有计划任务。
 /Change 更改计划任务属性。
 /Run 按需运行计划任务。
 /End 中止当前正在运行的计划任务。
 /ShowSid 显示与计划的任务名称相应的安全标识符。
 /? 显示此帮助消息。

示例

schtasks /create /tn/tr <"程序路径和文件名"> /sc <什么时候运行 如 o

创建计划任务启动notepad(需要管理员权限)

win11 system32 无权限_数据库_19

对应的可以在 _Task Scheduler 查看

win11 system32 无权限_win11 system32 无权限_20

在svchost进程下成功创建了notepad进程

win11 system32 无权限_数据库_21

当使用指定账户创建运行计划任务时,当前用户必须具有与之相对或者更高的权限 (使用管理员账户以ystem权限运行计划任务失败)

创建新服务(作业)

cmd使用 sc 对任务进行管理,powershell中使用 get-help service 查看对应的服务操作命令

创建

sccreate [service name] [binPath= ]...
选项:
注意: 选项名称包括等号。等号和值之间需要一个空格。type=(默认 = own)
start=(默认 = demand)
error=(默认 = normal)
binPath= <.exe 文件的 BinaryPathName>
group=tag=depend= <依存关系(以 / (斜杠)分隔)>
obj=(默认= LocalSystem)
DisplayName= <显示名称>
password= <密码>

实例

创建服务:sc createbinpath= <"可执行二进制文件"> start= <"启动模式"> obj
启动服务: sc start删除实例:sc delete

创建服务能成功,但是启动一直爆1053错误。

win11 system32 无权限_win11 system32 无权限_22

启动错误

win11 system32 无权限_win11 system32 无权限_23

内存马

劫持后门

MSDTC服务 (没成功) MSDTC服务开启时默认会加载三个DLL: oci.dll、SQLLib80.dll、xa80.dll , windows系统默认不包括 oci.dll ,将后门dll重命名并放置到 %SystemRoot%\system32\ 中,远程杀掉 MSDTC 服务,使其重启,加载恶意DLL.

镜像劫持

Logon Scripts 

Logon Scripts比av先执行,利用这点可以绕过av 

注册表路径:HKEY_CURRENT_USER\Environment 键:UserInitMprLogonScript

值:恶意文件路径