CMD命令混淆学习(上)

简介: CMD命令混淆学习

1. 背景介绍


cmd命令混淆的意义主要是bypass,混淆也不能影响原来的命令执行结果。


2. 混淆方法


2.1 双引号法""


使用双引号包裹字符,相当于将字符进行连接。 who""a""mi

在这个也可以这样:

最好是成对使用:

2.2 转义符^

字符 ^CMD命令中最常见的转义字符,该字符不影响命令的执行。 who^am^i

在这里不能两个^^放在一起使用,不然会报错:

2.3 大小写混合

WHoAmI

2.4 空格替换 ,;

逗号 , 和分号 ;可以互换,可以取代命令中的合法空格,多个空格也不影响命令执行。

;, net user
,; net user

但是不能在一个连续命令中间使用:

2.5 括号()

成对的圆括号()也会出现在命令参数中,也不影响命令的执行。圆括号表示嵌入子命令组,同样被cmd.exe参数处理器进行解释 这个句子注意当前使用的时候,只能够使用完整的一个命令使用当前的符号,不能分开:

多层同样不影响使用:

2.6 set设置环境变量

set a=cmd /c whoami  --->  %a%

在这个例子中,通过设置变量,然后去执行变量,但是一定要注意在设置set的变量值和等号之间不能有空格:


3. 混淆工具 Invoke-DOSfuscation


3.1 工具介绍

在混淆中,由于命令和方法太多,比如管道符| & || 等等,有时候我们不知道如何处理,所以在这里提供了一个新的混淆工具:

https://github.com/danielbohannon/Invoke-DOSfuscation

首先导入该工具的包:

这里是因为默认禁止加载,修改下,以管理员身份运行powershell,然后执行命令:

set-ExecutionPolicy RemoteSigned
选择Y

再次加载的时候报毒:

在这里需要关闭你的杀软,然后再加载:

Import-Module .\Invoke-DOSfuscation.psd1
Invoke-DOSfuscation

在这里的命令非常的多,在这里演示下最简单的用法:

使用set command 设置命令,然后跟着步骤做就行了,最后生成的命令为:

whoa%ALLUSERSPROFILE:~-5,1%i

刚刚的命令执行结果:

相关文章
|
1月前
|
Windows
Windows系统环境编写DOS批处理文件
Windows系统环境编写DOS批处理文件
|
6月前
|
NoSQL 开发工具 数据库
基于Python开发的DIY字符画程序(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
基于Python开发的DIY字符画程序(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)
|
编译器 开发工具 Windows
VS2008 未找到编译器可执行文件 csc.exe【当网上其他方法试玩了之后不起作用的时候再用这个方法】
被公司派遣到中国海洋石油惠州炼化公司做项目,做的是生产管理,来了发现他们的项目结构简直烂的要命,和同学们写的毕业设计差不多,然后开发工具用的是vs2008,我电脑是安装了vs2005和vs2010,vs2012就是没有安装vs2008,在安装vs2008的时候那是一番折腾好长时间,然后把vs2008安装好了打开项目代码,生成解决方案发现报了好多错,然后一一解决,最奇怪的是VS2008 未找到编译器可执行文件 csc.exe,我把所以路径都配好了,并且在dos环境下执行csc.exe都可以执行,环境变量路径设置的也么有问题,就是很奇怪重启机子打开项目还是找不到csc.exe
187 0
|
存储 自然语言处理 IDE
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
【C进阶】——我们写的代码是如何一步步变成可执行程序(.EXE)的?
632 0
|
编译器 Windows
在windows命令行编译Qt程序并纠错
在windows命令行编译Qt程序并纠错
460 0
在windows命令行编译Qt程序并纠错
|
监控 Java PHP
Java常用命令行
java常用命令行,提升效率
288 0