【突破限制】谈谈CMD中那些命令混淆的姿势
一、简介
CMD中有许多的特殊字符,都有一定的特殊功能,我们将这些特殊字符拼接进命令中,并不影响命令本身的执行。可能达到绕过杀软的效果。在内网渗透的时候,执行CMD命令难免会被杀软拦截,因为杀软规则库的不同,可能会体现出不同的效果。总的来说能绕过还是很开心的事情。基于本人在学习上的研究,希望将一些姿势拿出来与大家分享一下。
二、CMD命令混淆姿势
- 使用双引号绕过(注意:双引号成对使用)
wh""oa""m""i
- 使用转义符绕过(注意:不能连续使用 会报错)
who^am^i
- 使用set命令设置环境变量
set a=cmd /c whoami ---> %a%
- 使用管道符执行命令
echo calc | whoami
- 使用@传递值绕过
cmd /c "set x=c@alc & echo %x:@=% | whoami"
- 设置环境变量,进行字符串提取
set b=abwhoamic ----> %b:~2,6%
- 使用&符号
set c=abwc & %c:~2,1%hoami
- 使用括号绕过
cmd /c "((whoami))"
- 逗号和分号进行混淆执行
cmd,qsasahshashshq,,,,,;;;;;/c whoami
- 使用大小写绕过
WhOAmi
- 使用 %comspec%绕过
%comspec% /c whoami
- 使用&&符号
net user && whoami
- 使用||符号
net user || whoami
-
使用for循环
for循环的语法:
for /f “条件” in “范围”
这里以一个简单的语句进行举例
for /f "tokens=4 delims=\" %g in ("c:\windows\system32\powershell\") do %g
- tokens:表示第几列
- delims:表示切割符
语句的含义为:以\作为分隔符、提取第四列进行执行
- 利用自动化工具
前辈们也开发了很多用来命令混淆bypass的工具。像Invoke-DOSfuscation类似的工具。可以通过工具进行混淆。
本人能力有限,到这里能想到的差不多也就这么多了,能想到的话后期再补充。文章的目的在于思路。希望大家在CMD命令混淆的时候,通过多方面的组合使用,达到bypass的效果。感觉有价值的话可以适当收藏关注一下呀。我们下期见喽!
本文来自博客园,作者:Master先生,转载请注明原文链接:https://www.cnblogs.com/mastersir/p/16260222.html