vm2是一个沙箱,可以使用白名单中的Node内置模块运行不受信任的代码。vm2版本至3.9.16中存在异常清理漏洞,允许攻击者在handleException()中引发未经过清理的主机异常,从而逃离沙箱并在主机上下文中执行任意代码。该漏洞已在vm2的3.9.17版本中修复。目前没有已知的变通方案。建议用户升级。
PoC的Python代码来自 https://gist.github.com/leesh3288/381b230b04936dd4d74aaf90cc8bb244。 用于Codify HTB。
usage: exploit.py [-h] [-u URL] [-p PORT] [-i IP]
description: 使用Base64编码的JSON格式载荷从存在vm2漏洞的网站打开反向Shell
options:
-h, --help 显示此帮助信息并退出
-u URL, --url URL 目标网站的HTTP地址
-p PORT, --port PORT 监听的端口
-i IP, --ip IP 你的IP地址