内网渗透之云桌面文件上传限制绕过

文章前言

有时候我们在对内网环境环境进行渗透时发现了可渗透的云桌面并且进入到了云桌面的操作界面时,此时我们想要对该内网进行进一步的渗透测试却发现当我们上传一些工具到云桌面时却无法上传exe文件,但是可以上传诸如txt的文本文件,而且云桌面不出网,在这种情况下我们可以考虑通过window系统自带的一些工具来实现对文件上传限制的绕过

具体实现
CertUtil

Windows 7之后的windows系统自带CertUtil命令,它可以用于MD5、SHA1等算法的加密和解密操作,我们可以使用CertUtil对我们想要上传的exe文件进行base64加密并输出未文本之后在通过目标主机上的certUtil将其还原从而实现上传文件的目的,下面进行尝试

Step 1:正常fscan执行如下

代码语言:javascript
复制
fscan64.exe -h

Step 2:使用CertUtil进行编码

代码语言:javascript
复制
CertUtil -encode fscan64.exe fscan_base64.txt

Step 2:使用CertUtil进行编码

代码语言:javascript
复制
CertUtil -encode fscan64.exe fscan_base64.txt

Step 3:之后使用CertUtil进行解码还原fscan64.exe

代码语言:javascript
复制
CertUtil -decode fscan_base64.txt fscan_base64.exe

Step 4:执行解密后的fscan确定可以正常使用

Powershell

Powershell亦可以用于加密解密操作,这里的思路和上面一致,我们可以使用Powershell对想要上传到目标云桌面的exe程序进行base64加密操作并转为txt格式,之后上传txt到云桌面,最后在云桌面在调用系统自带的Powershell进行解密还原exe程序即可,下面是具体实现:

Step 1:Fscan执行结果如下

Step 2:使用PowerShell进行base64编码,将fscan64.exe编码输出未txt文本程序

代码语言:javascript
复制
$PEBytes = [System.IO.File]::ReadAllBytes("fscan64.exe") 
$Base64Payload = [System.Convert]::ToBase64String($PEBytes) 
Set-Content fscan_base64.txt -Value $Base64Payload

Step 3:之后使用PowerShell对fscan_base64.txt进行base解码并从中还原处fscan64.exe

代码语言:javascript
复制
$Base64Bytes = Get-Content ("fscan_base64.txt") 
$PEBytes= [System.Convert]::FromBase64String($Base64Bytes) 
[System.IO.File]::WriteAllBytes("fscan_base64.exe",$PEBytes)

Step 4:之后执行还原后的程序确保可以正常使用