ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Windows下cmd/powershell命令混淆绕过

2022-02-05 19:04:05  阅读:208  来源: 互联网

标签:cmd Windows base64 set && powershell exe


前言

在Windows下绕过杀毒软件的主动防御机制的常见思路。

Bypass

1.特殊符号、大小写

常用符号: " ^ , ; 可以绕过一些常规的waf

image

2.环境变量

拿到一台机器时,可以先set查看环境变量

image

这里我们拿Comspec=C:\WINDOWS\system32\cmd.exe来举例,%comspec:~3,1%的意思就是comspec路径中的第三位(从0开始)开始取1个字符,如果1不写的话就从第三位输出到最后一位

image

环境变量也可以配合我们的特殊符号大小写混写来组合,也是可以达到同样的效果的。

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 %fdelims是以\分割,tokens是第几次分割,第四次分割就是whoami设为变量f,然后打印。

image

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

image

常用的powershell混淆方法:

image

标签:cmd,Windows,base64,set,&&,powershell,exe
来源: https://www.cnblogs.com/fullstar-l/p/15864533.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有