Man-in-the-browser跟man-in-the-middle(中间人攻击)有点类似,浏览器(IE, firefox)被木马感染后,木马可以修改web页面,修改或者添加http(s)中的任何数据。而这个过程中用户和服务器都不知晓。去年玩过一个flash游戏,游戏成绩最后使用一个POST请求score=2000,通过https传送到服务器上。这时注入一段程序到浏览器中,在数据加密之前把成绩改了,就大功告成,得了一个不错的成绩。是想,如果是网银交易是否也存在同样的问题:交易金额被修改,交易账号被修改等等。
之前发了一篇文章支付宝是加密还是编码说支付宝使用固定密钥加密登陆密码,致使密文永远不变,不能抵御重放攻击。当zbot之类的木马出现的后,支付宝的密码就不安全了。zbot能抓取浏览器中的包括https在内的所有数据,窃取密码是zbot的一个重要功能。Zbot将自身注入到浏览器中,hook关键API:PR_Write, HttpSenRequest等,将抓取的感兴趣的数据传送给它的主人。
我针对Firefox做了一个简单的POC程序,根据关键字抓取用户名和密码。使用Detours完成hook,detours的使用很简便,安装包中有samples,不赘述。PR_Write函数原型Firefox官网上