【突破限制】谈谈CMD中那些命令混淆的姿势

一、简介

CMD中有许多的特殊字符,都有一定的特殊功能,我们将这些特殊字符拼接进命令中,并不影响命令本身的执行。可能达到绕过杀软的效果。在内网渗透的时候,执行CMD命令难免会被杀软拦截,因为杀软规则库的不同,可能会体现出不同的效果。总的来说能绕过还是很开心的事情。基于本人在学习上的研究,希望将一些姿势拿出来与大家分享一下。

二、CMD命令混淆姿势

  1. 使用双引号绕过(注意:双引号成对使用)
wh""oa""m""i

在这里插入图片描述

  1. 使用转义符绕过(注意:不能连续使用 会报错)
who^am^i

在这里插入图片描述

  1. 使用set命令设置环境变量
set a=cmd /c whoami  --->  %a%

在这里插入图片描述

  1. 使用管道符执行命令
echo calc | whoami

在这里插入图片描述

  1. 使用@传递值绕过
cmd /c "set x=c@alc & echo %x:@=% | whoami"

在这里插入图片描述

  1. 设置环境变量,进行字符串提取
set b=abwhoamic  ---->   %b:~2,6%

在这里插入图片描述

  1. 使用&符号
set c=abwc & %c:~2,1%hoami

在这里插入图片描述

  1. 使用括号绕过
cmd /c "((whoami))"

在这里插入图片描述

  1. 逗号和分号进行混淆执行
cmd,qsasahshashshq,,,,,;;;;;/c whoami

在这里插入图片描述

  1. 使用大小写绕过
WhOAmi

在这里插入图片描述

  1. 使用 %comspec%绕过
%comspec% /c whoami

在这里插入图片描述

  1. 使用&&符号
net user && whoami

在这里插入图片描述

  1. 使用||符号
net user || whoami

在这里插入图片描述

  1. 使用for循环

    for循环的语法:
    for /f “条件” in “范围”

这里以一个简单的语句进行举例

for /f  "tokens=4 delims=\" %g in ("c:\windows\system32\powershell\") do %g
  • tokens:表示第几列
  • delims:表示切割符

语句的含义为:以\作为分隔符、提取第四列进行执行
在这里插入图片描述

  1. 利用自动化工具
    前辈们也开发了很多用来命令混淆bypass的工具。像Invoke-DOSfuscation类似的工具。可以通过工具进行混淆。
    在这里插入图片描述

本人能力有限,到这里能想到的差不多也就这么多了,能想到的话后期再补充。文章的目的在于思路。希望大家在CMD命令混淆的时候,通过多方面的组合使用,达到bypass的效果。感觉有价值的话可以适当收藏关注一下呀。我们下期见喽!

posted @ 2022-05-11 22:15  Master先生  阅读(128)  评论(0编辑  收藏  举报