Windows下cmd/powershell命令混淆绕过
2022/2/6 7:13:48
本文主要是介绍Windows下cmd/powershell命令混淆绕过,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
在Windows下绕过杀毒软件的主动防御机制的常见思路。
Bypass
1.特殊符号、大小写
常用符号: " ^ , ;
可以绕过一些常规的waf
2.环境变量
拿到一台机器时,可以先set
查看环境变量
这里我们拿Comspec=C:\WINDOWS\system32\cmd.exe
来举例,%comspec:~3,1%
的意思就是comspec路径中的第三位(从0开始)开始取1个字符,如果1不写的话就从第三位输出到最后一位
环境变量也可以配合我们的特殊符号大小写混写来组合,也是可以达到同样的效果的。
cmd /c “ set a1=ser&& set a2=ne&& set a3=t u&&call echo %a2%%a3%%a1%” 等同于 net user ^c^M^D, , , , /^c", ,(, , , , , (s^et ^ w^3=i^pco) , )&& (S^Et ^ eH^P=n^fig)& , , C^aLl, sE^t GyHE=%w^3%%eH^P%& , , %LoCaLAPpdata:~ -3,+1%%pRoGramw6432:~9,1%d, ,/^R, , %Gy^HE%" 等同于ipconfig
3.for循环
for /f "tokens=4 delims=\" %f in ("c:\windows\system32\whoami\") do %f
delims是以\分割,tokens是第几次分割,第四次分割就是whoami设为变量f,然后打印。
4.powershell base64
powershell.exe -Encodedcommand base64string 完全形式 powershell.exe -eNco base64string 大写截断形式
两种形式都调用了Encodedcommand参数,将base64字符串解码并执行。这里的base64字符串与常规的不太一样,只能通过powershell自带的base64加密方式获取。
$command = "whoami" $bytes = [System.Text.Encoding]::Unicode.GetBytes($command) $encodedCommand = [Convert]::ToBase64String($bytes) echo encodedCommand powershell.exe -EncodedCommand $encodedCommand
常用的powershell混淆方法:
这篇关于Windows下cmd/powershell命令混淆绕过的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-07fastcgi 是什么-icode9专业技术文章分享
- 2024-10-07fastcgi 的详细使用教程介绍-icode9专业技术文章分享
- 2024-10-07git如何更新单个文件到本地-icode9专业技术文章分享
- 2024-10-07如何使用ASM(Abstract Syntax Tree Manipulation)技术来修改第三方AAR依赖中的函数-icode9专业技术文章分享
- 2024-10-07Activity 跳转时间耗时很长怎么优化解决-icode9专业技术文章分享
- 2024-10-07Androud Toast 有哪些常用的第三方组件-icode9专业技术文章分享
- 2024-10-07在viewmodel中怎么使用 mmkv?-icode9专业技术文章分享
- 2024-10-07MMKV.defaultMMKV() 是单例模式吗?-icode9专业技术文章分享
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享