U盘的漏洞扫描工具
朋友递过来一个U盘,漏洞扫说是描工从公司打印机上捡的。我随手插进电脑,漏洞扫Windows立刻弹出提示:“需要扫描并修复此驱动器吗?描工”我点了否。然后打开我的漏洞扫工具包,开始干活。描工
很多人以为U盘漏洞扫描就是漏洞扫把U盘插上去,杀毒软件扫一遍,描工完事。漏洞扫太天真了。描工真正的漏洞扫漏洞扫描,是描工给U盘做一次“解剖手术”——不光看它表面有没有病毒,还要看它的漏洞扫固件有没有被篡改,分区表是描工不是被动了手脚,甚至有没有藏着一个你根本看不见的漏洞扫“影子分区”。
我用的工具是开源的,叫USBDeview,加上一个自写的脚本,再配合Linux下的fdisk和strings命令。别嫌土,工具不在新,管用就行。
第一步,先看设备描述符。U盘的制造商、产品ID、序列号,这些信息都写在固件里。如果一块号称“金士顿”的U盘,读取出来的制造商代码是“Generic”,那就有意思了——大概率是山寨主控,这种盘的固件往往有后门,能偷偷执行恶意代码。我见过最离谱的一个,插上电脑后自动模拟键盘输入,直接往命令行里敲下载指令,要不是我盯着屏幕,根本发现不了。
第二步,查分区表。正常的U盘一般是MBR或者GPT格式,分区数量一目了然。但有些恶意固件会在物理层隐藏一个区域,Windows根本看不到,可U盘的主控能访问。怎么查?用Linux的lsblk看块设备,再用hdparm直接读底层扇区。有一次我扫出一个16G的U盘,表面容量只有14.4G,剩下的1.6G哪去了?不是虚标,是被人为分出去藏了一个加密分区,里面装的是从别人电脑上偷来的密码库文件。
第三步,也是最容易被忽略的——autorun.inf。这东西在Windows下已经被默认禁用,但很多企业内网的老机器依然开着自动播放。更阴险的是,有人会把autorun.inf伪装成文件夹图标,你双击进去,实际上运行了一个PowerShell脚本。我扫描的时候会特意检查根目录下有没有隐藏的.inf文件,哪怕只有一两个字节,也得揪出来看看内容。
还有一次,一个同事拿来个U盘,说打印店拷回来的文件打不开。我扫了一遍,没发现恶意代码,但用strings提取字符串时,看到一堆奇怪的路径——C:\Users\admin\AppData\Roaming\Microsoft\Crypto\RSA。这明显是系统密钥文件的路径,打印店的电脑怎么可能生成这种文件?唯一的解释是,那台打印店的电脑本身就被植入了窃密木马,U盘只是个载体,把木马的痕迹带了出来。
工具再好,也架不住人懒。很多人U盘一插就双击打开,这习惯得改。我的做法是,先用资源管理器地址栏输入盘符回车,而不是直接双击——至少能避免一部分自动运行的坑。但说实话,真正想防住,还得靠扫描。U盘漏洞扫描不是杀毒,它更像是一次“安检”,查的是你有没有带违禁品,而不是你有没有犯罪记录。
最后说个扎心的事实:市面上90%的U盘扫描工具都是摆设。它们只能扫出已知病毒库里的东西,对定制化恶意固件毫无办法。真正有用的,是那些能让你看到底层数据的工具,哪怕只是几个命令行。别嫌麻烦,安全这东西,从来不是点一下鼠标就能搞定的。
