前言

最近有些朋友问我一些免杀问题,由于个人技术有限,对静态免杀有些了解(动态免杀真的不会,太菜了),所以就总结了一些Windows中cmd的命令混淆思路,静态免杀无非就是对安全设备检测到代码(命令)中的特征字符进行查杀、过滤,首先做的就是对于特征字符的处理,随后就是对环境中限制的字符替换或混淆,从而达到免杀效果。

查看资料】

一、选项字符替换

CMD命令中可以执行ping 命令,该命令是由unix系统移植过来的,帮助页面建议命令行选项应使用连字符作为选项字符,例如ping -n 1 127.0.0.1. 这与大多数其他使用正斜杠的 Windows 原生命令行工具不一致。大概是为了帮助有疑问的用户,该程序还接受正斜杠作为选项比如 ping /n 1 127.0.0.1也能运行的。

大多数使用连字符的内置 Windows 可执行文件也接受正斜杠,但有的命令却不可以,例如find /i keyword,该命令将显示包含单词“keyword”的所有文件,但find -i keyword会提示语句错误。

二、字符替换

Unicode修饰符替换

另一种方法是用类似的字符替换命令行中的其他字符(即除了选项字符之外)。特别是当你考虑整个 Unicode 范围时,在某些进程可能接受的 ASCII 范围中还发现了许多字母变体。

涉及到的 Unicode 字符ʱ ʰ ʲ ʳ ʷ ʸ ˢ ˣ ˡ

ʷ 修饰字母小写 W

ʸ 修饰字母小写 Y

ʰ 修饰字母小写 H

ʱ 带钩的修饰字母小写 H

ʲ 修饰字母小写 J

ʳ 修饰字母小写 R

ˡ 修饰字母小写 L

ˢ 修饰字母小写 S

ˣ 修饰字母小写 X

Unicode 包含一个间距修饰字母范围(0x02B0 - 0x02FF) [ 4 ],其中包括 ˪、ˣ 和 ˢ 等字符。一些命令行解析器将它们识别为字母并将它们分别转换回 l、x 和 s。这方面的一个例子是reg,它将reg export HKCU out.reg和reg eˣport HKCU out.reg视为平等。

因为编码问题显示 ˣ 为方框

逗号、分号替换空格

使用 ; (分号) 和 , (逗号)替换合法空格,但是在某些命令中无法替换,例如:net user会提示语法错误。

三、 字符插入

同样,有时可以在命令行中插入额外的字符,这些字符将被执行程序忽略。例如,某些可执行文件可能会删除不可打印的字符,同时也可能会过滤掉某些可打印的字符。

例如,Windows 事件日志工具wevtutil似乎接受在随机位置插入某些范围内的 Unicode 字符(ࢯ)的命令行。因此执行wevtutil gli hardwareeventsandwevtutil gࢯli hardwareevents将产生完全相同的输出,尽管后者在第一个参数的中间包含一个阿拉、伯字母。

还有常见的 ^ 转义字符插入

插入多个(),也不会影响命令运行

四、 行情插入

在保持流程完整的同时操纵命令行的另一种方法是插入引号。尽管这听起来像是先前技术的一个子集,但这里的要求是引号成对出现。

您可能熟悉在参数周围加上引号的概念。就拿dir "c:\windows"例如,这是有效的一样dir c:\windows\,由于缺乏空间。大多数程序都接受这个约定。鲜为人知的是,大多数程序在任意位置接受引号:该命令dir c:“win"d”"ow"s"也可以工作。只要每个参数的引号数是偶数并且后面的引号不超过两个,大多数程序似乎都接受这一点。

五、环境变量

在cmd命令行中支持设置环境变量和自定义变量,使用环境变量中的值或字符串可以拼接成想要的命令。例如whoami,将am 设置变量为 t,将命令拼接成who%t%i,执行成功。

利用@在cmd中的特性,@表示后面的命令不显示执行

六、参数缩写

插入和替换字符后,我们还需要尝试删除字符。一些应用程序允许为其他冗长的命令行选项提供“速记”,从而更容易记住这些命令,或者缩短命令字符个数。

这是基于 Unix 的工具(例如grep -i keywordvs grep --ignore-case keyword)中的一个众所周知的概念,但在 Windows 上则不然。然而,一些程序接受缩短的版本。有些程序采用与 Unix 类似的方法并接受单字母版本(例如cmdkey /lvs cmdkey /list),有些程序接受其他缩写版本(例如wevtutil glivs wevtutil get-loginfo),而其他程序则采用“通配符方法”。这方面的一个例子是 PowerShell,它的许多关键字允许您在关键字 [ 5 ]的末尾省略一个或多个字符。

需要注意的是有些命令的缩写会出现一些冲突。可以查看powershell相关文档。

免杀的方法有很多,只要思路灵活,静态免杀很容易的。

命令混淆工具已经有好多大佬开发出来了,详细用法大家可以自己研究(网上已经有很多了),命令混淆过静态免杀很简单,在这里提供一个简单的样例供大家参考。

下载地址:https://github.com/danielbohannon/Invoke-DOSfuscation

大概使用方法也很简单。

下载文件后再当前目录运行powershell,导入使用的模块 Import-Module .\Invoke-DOSfuscation.psd1 ;

再运行程序Invoke-DOSfuscation ;

可以查看工具的基本使用方法TUTORIAL

Set command //设置需要混淆的命令

Set FINALBINARY
//设置命令运行的环境

加载混淆模块,(可以查看下当前目录下的文件夹,不同文件有不同的混淆效果)

使用show命令查看当前命令设置的参数情况

\5. 可以使用test命令再当前窗口进行测试混肴过后的命令;

复测下再cmd 中运行的结果;


其中有很多混淆方法,可以自己看下教程,在这里就不一一举例了。混淆只是可以过一些静态面纱,静态免杀无非就是针对特征字符的处理,静态免杀的方法千千万,基本原理不会变,这里只是提供一种思路,供大家参考。参考文献

关注我,持续更新!!!

私我获取【网络安全学习资料·攻略】

【网络安全】Windows cmd的命令混淆学习思路相关推荐

  1. python pip、conda、windows CMD常用命令大全!

    文章目录 python pip 常用命令 1.查找软件 2.安装软件 3.更新软件 4.卸载软件 5.列出已安装软件 6.查看一个软件包时安装了哪些文件 7.命令补全 8.升级所有包 9.修改pip安 ...

  2. Windows CMD常用命令大全

    开始→运行(cmd)命令大全 开始→运行(cmd)命令大全 gpedit.msc-----组策略      sndrec32-------录音机  Nslookup-------IP地址侦测器  ex ...

  3. Windows cmd常用命令行命令

    Windows常用命令行命令 打开"运行"对话框(Win+R),输入cmd,打开控制台命令窗口... 也可以通过cmd /c 命令 和 cmd /k 命令的方式来直接运行命令 注: ...

  4. Windows CMD 常用命令指示符

    目录 I. 基本命令 1. 打开 2. 输入规范 3. 常用命令 II. 其他常用命令 1. taskmgr 任务管理器 2. msconfig 系统配置 3. shutdown 关机 4. Java ...

  5. windows cmd 执行命令文件路径带有空格的处理方式

    windows cmd 执行批处理命令文件路径带有空格的处理方式 当执行命令的时候如果文件路径带有空格,windows可能会找不到该目录,这时候需要使用双引号做一下处理 cmd执行: "D: ...

  6. Windows cmd(DOS)命令窗口中echo命令ANSI转义显示彩色字或背景

    2019独角兽企业重金招聘Python工程师标准>>> 前言 3个星期的周末了解LINUX下.WINDOWS下的ANSI颜色转义控制,LINUX下根据网上的搜索结果一下就成功了,但W ...

  7. Windows CMD DOS命令

    文章目录 DOS命令基础 进入cmd Windows下几种常用快捷键 基本命令 调整字体 操作文件 操作目录(文件夹) 查找命令 复制和移动 操作进程 关机和重启 其他命令 DOS命令基础 进入cmd ...

  8. Windows CMD/DOS命令,批处理

    文章目录 0. 写在前面 1. 常用的CMD命令 1.1 设置变量命令set 1.2 自定义DOS窗口color.title 1.3 网络连接相关 1.3.1 ping 命令 1.3.2 telnet ...

  9. Windows CMD常用命令查询

    CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本.文件系统版本) 1. appwiz.cpl:程序和功能  2. calc:启动计算器  3. certm ...

最新文章

  1. 现场丨2017中国计算机大会(CNCC2017)之沈向洋演讲:自然语言中的描述、对话和隐喻
  2. 分类系统的构成与外部表象
  3. [Everyday Mathematics]20150104
  4. Eclipse里不同的project,右键选择属性property facet里看到的list 内容是否相同
  5. 循环队列的java结构_Java数据结构——循环队列
  6. 计算机组装维修中级试题,计算机维修工中级理论知识试卷.doc
  7. 剑指offer面试题:替换空格
  8. Redis在windows下的配置
  9. POJ1256 (C++ compare函数)
  10. MFC 常见窗口操作
  11. 编译原理-提取左公因子---消除左递归(自己看)
  12. Unix环境编程-守护进程
  13. GeForce Experience显示帧数
  14. JS--JavaScript数值计算与类型转换详解
  15. 微信H5适配 解决微信调整字体大小导致Html5页面混乱
  16. Auto property synthesis will not synthesizeproterty;it will be implemented by its superclass, use@dy
  17. 毕业设计 嵌入式 扫地机器人系统
  18. windows Server 2012 R2安装 “vc_redist.x64.exe“ 报错
  19. 2017年第九届深圳国际物联网博览会盛大开幕
  20. LoadLibrary

热门文章

  1. SLAM:VSLAM简介之详细攻略
  2. CV之MobiLenet:基于openpose利用CMU/MobilenetV2算法实现对多人体姿态(2019湖人勒布朗詹姆斯扣篮)实时估计检测
  3. 成功解决from nets import inception_resnet_v2 ModuleNotFoundError: No module named 'nets'
  4. MAT之GA:遗传算法(GA)解决M-TSP多旅行商问题
  5. 关于我的CSDN博客的一些要说的话
  6. react中component存在性能问题
  7. 第8.23节 Python中使用sort/sorted排序与“富比较”方法的关系分析
  8. vue+iview 设置全局的url以及跨越问题
  9. 【转载】IIS网站配置不带www域名直接跳转带www的域名
  10. Windows 10 LTSC添加UWP支持