最近东京举办的2015年PacSec会议中,腾讯玄武实验室的研究员通过条形码扫描仪扫描中毒的条形码打开了机器上的shell。这个攻击被称为BadBarcode,操作起来极其方便,但是目前很难确定到底是扫描仪还是主机系统需要修补。
BadBarcode:用一张纸入侵企业号星舰
这个项目是于旸(江湖人称TK教主)和他的同事马Hyperchem共同研讨的。去年,于旸发现“缓解旁路衍生”后成为了第二个将微软的十万美元奖金收入囊中的人。
这次,他们在PacSec大会上演示的话题是“BadBarcode:用一张纸入侵企业号星舰”。( PPT 链接)
“我们不知道坏人会做什么。BadBarcode可以在主机系统上执行任何命令或植入木马。所以基本上你可以用BadBarcode做任何事。”
团队之所以能够发现该漏洞是因为大多数条形码不仅包含数字和字母—数字字符还包含了取决于条码码制的ASCII字符。而且,条形码扫描仪基本上是键盘模拟器,如果他们支持类似于code128的条码码制,那攻击者就可以创建一个可以读取或打开shell的条形码。
在展示过程中他们解释道,Ctrl前缀的命令映射到ASCII码后可以触发之前设置好的热键,以打开文件、保存文件或打印的对话框。攻击者就可以使用这些热键浏览电脑上的文件系统、启动一个浏览器或执行程序。
教主于旸说:
“我们设计了几种不同的攻击,关键是将特殊的控制字符的放在条形码里,这样,条形码扫描仪将就会打开主机系统的热键并激活一个特定的功能。BadBarcode开发很容易。你只需要做一些恶意的条形码然后打印在纸上就可以了。”
解决这个问题很棘手,因为它并不局限于特定的扫描仪,不同制造商制造的扫描仪都会造成这样的结果。
“BadBarcode不是一种特定产品的漏洞。它会影响到整个条码扫描仪的相关行业。而且目前BadBarcode是扫描仪还是主机系统的问题很难说。所以当我们发现这个漏洞时,都不知道应该向哪个制造商报告。”
安全建议
于旸建议,当前情况下条码扫描器制造商在扫描仪的默认设置中不要启用超出标准协议的附加功能,也不要将ASCII控制字符发送到主机设备。同时,也需要考虑物联网的主机是否需要使用条形码扫描仪。
视频分享
FreeBuf小编搜集到此前TK教主在极棒相同题目的演说,不想看英文PPT的看这个视频也能近距离感受BadBarcode。
*参考来源: threatpost ,FB小编江湖小吓编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)