专栏首页鸿鹄实验室windows命令行混淆

windows命令行混淆

前言:

后台有朋友找我要猎鹰C2,这个我也没有哈,有需要的可以自己花钱去买,事情忙完了,可以恢复更新了。

命令行通常是杀软检测比较严格的地方,比如一些被滥用的命令就会被杀软重点关注,比如:rundll32、powershell、certutil等等。当我们使用命令行混淆时,可以适当的规避某些杀软的检测规则,达到我们执行命令的目的。

典型:Emotet木马

下面是一些常见的混淆方法

环境变量

环境变量的基本用法是使用set对变量进行赋值,然后可以直接使用赋值后的变量进行直接调用。

查看环境变量:

set

便可以看到我们所有的环境变量。然后我们来设置环境变量:

set a=cmd /c whoami

然后执行:

%a%

该方法可以用与静态检测绕过,要对其进行日志监测还需要装sysmon。

双引号

双引号没有什么特殊的含义,它可以帮助文件或目录保持一个整体,而不会被中间的空格所切割。

一个简单的例子就是目录名中间有空格。

用法即是我们可以在敏感文件名、命令中间添加空格。

转义符

转义符(^)也可以做为切割文件名的一个符号,但是该符号不能够连续输入。

转义符也可以作为一个换行

垃圾分隔符

先来了解一下管道,通过管道结合cmd我们可以执行前者。

echo calc | cmd

结合环境变量,再引入@符,可以发现仍然能够执行。

cmd /c "set x=c@alc & echo %x:@=% | cmd"

@符的作用,@符能够将值传递到前面的环境变量中,如:

cmd /c "set x=c@alc & echo %x:@=test% | cmd"

这就可以将test传到c@alc的@位置,输出将是ctestalc。

字符串提取

cmd中也可以通过环境变量的方式进行变量值的字符串提取。

如:set a=abcd,要想提取里面的某个字符串,可以通过

%a:~0,1%

其中0表示从第几位开始提取,1表示提取几个字符串。

所以,我们可以这样去执行一个计算器。

set a=abcd & %a:~2,1%alc

圆括号

成对的圆括号()也会出现在命令参数中,也不影响命令的执行。圆括号表示嵌入子命令组,同样被cmd.exe参数处理器进行解释

cmd /c "(((ipconfig)))"

逗号与分号

逗号与分号某些情况可以当作一个终止符号或者代替空格。

循环语句查找

我们也可以通过for循环去查找我们所要的字符串执行,可以避免在命令行输入特殊的字符。

首先要说明for循环的几个参数及语句的意义。

1.for /f "条件" in "范围"
2.tokens表示第几列
3.delims表示切割符,可输入多个切割符
完整语句:
FOR /F “tokens=4 delims=\“ %g IN (“c:\windows\system32\powershell\”) do %g
从”c:\windows\system32\powershell”中以反斜杠为分隔符,提取第四列的字符串并执行。当然我们可以从文件名、目录名、文件中、环境变量中去读取数据,这样我们需要的字符串就都能够提取到。

自动化:

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

与lolbins配合

有一些混淆需要配合指定的程序使用,下面是方法

选项字符替换

这个其实没啥说的,无非就是比如像-n,替换为/n,看图

字符替换

利用对unicode的处理问题,当使用 ˪、ˣ 和 ˢ 等字符。一些命令行解析器将它们识别为字母并将它们分别转换回 l、x 和 s。

unicode地址如下

https://www.unicode.org/charts/nameslist/n_02B0.html

demo如下

参数简写

这个可以拿powershell为例,其-e参数与下面所有写法同理

-e
-ec
-en
-enc
-enco
-encod
-encode
-encoded
-encodedc
-encodedco
-encodedcom
-encodedcomm
-encodedcomma
-encodedcomman
-encodedcommand

各lolbin所支持的方法:

自动化工具地址:https://github.com/wietze/windows-command-line-obfuscation

参考文章:

https://www.fireeye.com/content/dam/fireeye-www/blog/pdfs/dosfuscation-report.pdf

https://www.wietzebeukema.nl/blog/windows-command-line-obfuscation

本文分享自微信公众号 - 鸿鹄实验室(gh_a2210090ba3f),作者:鸿鹄实验室a

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Windows和Linux服务器中检测混淆命令

    在目前的无文件恶意软件或网络犯罪领域中,命令行混淆已经是很常见的了。为了绕过基于签名的安全检测机制,红队渗透测试以及APT攻击活动都会使用各种专用的混淆/模糊技...

    FB客服
  • linux命令反混淆-忙里偷闲

    大家也都知道最近一直在做的是webshell的检测,为啥突然搞了一下linux命令反混淆呢?纯属忙里偷闲之举,主要听了几位大佬的关于linux恶意命令检测这方面...

    七夜安全博客
  • Invoke-Obfuscation混淆免杀过360和火绒

    乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任...

    乌鸦安全
  • Android混淆你了解多少?

    在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码混淆的...

    CCCruch
  • Android 混淆是啥玩意儿?

    Android混淆,是伴随着Android系统的流行而产生的一种Android APP保护技术,用于保护APP不被破解和逆向分析。简单的说,就是将原本正常的项目...

    用户5521279
  • Android开发:请你吃一顿史上最全的Android混淆大餐

    在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码混淆的...

    Android技术干货分享
  • 一篇文章带你领略Android混淆的魅力

    在 Android 日常开发过程中,混淆是我们开发 App 的一项必不可少的技能。只要是我们亲身经历过 App 打包上线的过程,或多或少都需要了解一些代码混淆的...

    Rouse
  • android混淆那些坑

    ProGuard简介 在最新的Android Studio 2.2.2版本创建的Android工程中,module中的build.gradle有如下一段配置。这...

    xiangzhihong
  • 一种 Powershell 的混淆方式绕过 AMSI 检测

    这篇文章将是关于通过 PowerShell 混淆来规避大多数 AV。这不是什么新鲜事,但很多人问我如何真正隐藏,或者如何混淆现有的有效载荷或 PowerShel...

    信安之路
  • Powershell编码与混淆

    在powershell中最常使用的编码就是base64编码了,今天主要说一下Invoke-Obfuscation 这个powershell混淆编码框架,这也是著...

    FB客服
  • APT的思考: CMD命令混淆高级对抗

    上一篇根据我对问题的认知方式,讲解了cobalt-strike的学习之路,希望对大家能有启发。

    七夜安全博客
  • APT的思考: PowerShell命令混淆高级对抗

    上一篇讲解了APT攻击中用到的cmd命令混淆,本篇延续上一篇的内容,分析一下攻击中更加常用的powershell混淆和检测方法。

    七夜安全博客
  • slopShell:你唯一需要的PHP Webshell

    slopShell是一款功能强大的PHP Webshell,有了它,你就不需要再用到其他Webshell了。

    FB客服
  • ATT&CK框架:攻击者最常用的TOP7攻击技术及其检测策略

    之前,青藤云安全已经对ATT&CK进行了一系列的介绍,相信大家都已了解,Mitre ATT&CK通过详细分析公开可获得的威胁情报报告,形成了一个巨大的ATT&C...

    FB客服
  • Pyinstaller加密打包应用的示例代码

    pyinstaller是一个非常简单的打包python的py文件的库。用起来就几条命令就够了,

    砸漏
  • 围绕PowerShell事件日志记录的攻防博弈战

    PowerShell一直是网络攻防对抗中关注的热点技术,其具备的无文件特性、LotL特性以及良好的易用性使其广泛使用于各类攻击场景。为了捕获利用PowerShe...

    风流
  • 揭秘如何使用跨平台的EvilClippy创建恶意MS Office文档

    今天给大家介绍的是一款名叫EvilClippy的开源工具,EvilClippy是一款专用于创建恶意MS Office测试文档的跨平台安全工具,它可以隐藏VBA宏...

    FB客服
  • Powershell绕过执行及脚本混淆

    为什么需要 powershell ?存在必然合理。微软的服务器操作系统因为缺乏一个强大的 Shell 备受诟病。而与之相对,Linux 的 Shell 可谓丰富...

    信安之路
  • 红队培训班作业 | 五种免杀bypass火绒360姿势横向测评:哪款更适合你?

    编译生成Project1.exe,将其传入装有360和火绒的Windows靶机进行免杀测试。

    Ms08067安全实验室

扫码关注云+社区

领取腾讯云代金券