找回密码
 加入华同
搜索
黄金广告位联系EMAIL:[email protected] 黄金广告[email protected]
查看: 1347|回复: 5

是谁控制了我们的浏览器?

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。4 s# P4 m- d4 r) O& P
" u2 l# A  [/ Z" p

- ]6 j! H; J# _. u9 T............................................................................................................................................$ B+ N8 u8 Z$ F, N( G3 N

1 t* m  q$ w2 O/ W% f是谁控制了我们的浏览器?
' N7 F9 X7 Q7 k& T. k/ `; L; o2 v3 o
1、现象是什么?$ x+ Z! O( K' o+ t, r9 v- W- t8 ?
  ; |# M' X9 r0 Y
大约从今年年初开始,很多人就发现,在浏览一些网站的时候,! c! E4 X2 ~7 [
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。- M; r+ [. I) Z! _2 c
很多人以为这是网站自己弹出的广告,也就没有在意。
1 Y/ n& P- Q, K4 j3 ?  & W1 G# w; y7 {1 ]% p
我是属于很在意的那些人之一。5 A/ W# |& F( t/ z/ @
  
& ~- n) F0 `- V9 R6 I2、这是怎么回事?
9 T. u$ ~1 n1 Y8 N+ S  w: _  s$ W  7 i: R# o. E) _/ Q$ z
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
  p: f, x/ {6 V3 k  \0 ^# F与使用何种操作系统也无关(linux用户也有相关报告)。
7 s: k; E' W* W. N/ |0 T5 B我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
. m+ }4 ~1 Z! _% \2 g3 k) a$ m8 }  
5 y) v8 Q* }- V3 z  I; R那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。
1 \  y3 W; ^) W  . A1 V9 ]* q/ z" x
那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,* x. D6 D/ P- }$ A
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。: B: |: o, ~0 Y2 m  l( P2 I8 O
  
- K6 K6 F  V7 i伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。
4 t1 s* q! ^# J  2 l+ {! ~9 L+ X3 R2 N) @
为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。
2 @7 D; a# g: u, m5 V7 A: j) z% z( p: t直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
1 G( C  ?; a3 X我写了一个脚本。不断访问这个IP,同时记录进出的数据包。$ |& Z9 ]  E3 C4 {# D8 J
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
8 S/ G3 Q. J! e  o4 I# [HTTP/1.1 404 Object Not Found( g' S7 K# ^2 S) m. V
Server: Microsoft-IIS/5.0% ^4 T! S  [5 c- t" ~
Date: Mon, 19 Jul 2004 12:57:37 GMT
! k3 p) C$ Z5 r3 S6 [+ WConnection: close2 O' L4 G2 j5 R) u6 Y) n: I
Content-Type: text/html
6 g5 b8 C6 \( k3 cContent-Length: 1111 `) \) X* J  a: x0 |
〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉" u% P& }  L* ?6 o; _
〈body〉No web site is configured at this address.〈/body〉〈/html〉
" j) ]  I7 K2 t1 x: n- T  . [0 a# b0 B! y: M! a0 }3 m
但是有两次,返回了这个:+ k) o9 |' r1 ?- \
HTTP/1.1 200 OK" W0 `0 _% c$ D4 n' |# ]( d) `% i: o
Content-type: text/html" A" c% @% C3 [' L4 p
〈html〉
' I# h1 X7 D9 E8 |$ f, @6 I' g$ V〈meta http-equiv='Pragma' content='no-cache'〉
' h) @8 E1 j& c5 C# Y〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉2 A9 U: X% S8 Q* s. i
〈script〉; K: ]8 ~/ H$ d
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');# A  x) o% v, r0 h. \4 ]
〈/script〉* B/ t3 s; u* \5 |
〈head〉2 ~1 Q* \& P* `/ K
〈title〉〈/title〉) `5 z( f/ b: g9 P5 a
〈/head〉
9 [: n) v: g/ K0 \〈body〉
) b# G1 ^) W8 Y1 A〈/body〉
0 e# v3 i( ~  T〈/html〉% T0 I  N) _6 ?, x# M
  
# ~7 t& w% j1 n. R- i2 h" Q. Q! S更进一步分析数据包,可知劫持流程如下:
' n3 `6 l/ N: o  
" Z7 p: V) i1 v2 JA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。$ J8 j4 W, [! b
这个设备按照某种规律,对于某些HTTP请求进行特殊处理。. z) g% _0 q; z: Y# x9 t/ [
  1 w1 x0 x2 }/ k; B
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。  {) N' k) v& E; ?* X6 o% `# y
这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
( X1 o) W+ w7 h0 E) C1 j9 U而任何正常的服务器都不可能在这么短的时间内做出回应。, ]# U+ i/ _9 f5 `
  . G! u2 _, c  S  i2 r4 S
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
+ `4 }; F  s: Z  / d# b  b0 T# k/ o; F
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,) w/ o" [0 x. t. ?+ j
重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。
3 d! b4 v$ G' k9 D3 W6 @& ~2 Y" ~  2 o+ D7 Z! I2 ^
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
) _) V9 O1 V. @这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。- O5 J/ }* f4 U% T5 N3 K4 J
  & w: T' I  L) y- M& x1 O' `
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。% D# m" O- Q5 a* _' f
  
, T9 x$ I8 a/ j$ z9 O/ q: G* c0 P3、现在怎么办?) E9 R6 Z/ O7 R. e0 @+ L
  ' g4 V/ q1 [  H' @, o3 ]* ?
在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:. H+ Q# M0 X4 R: z$ Z; X& p
  
, {5 U, ~9 L4 r! B; O* L% S+ `7 l8 @A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
7 n& ~$ `2 |' q7 ^) [4 w  
. l- t5 S$ S  ^B、在你自己的个人防火墙上,完全封锁211.147.5.121。
3 g6 w& f( E  Y. y( r. x; A+ A; o  
( U1 e' w- D4 O: aC、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。  A# G  R( N# B- v* _
  
9 c! t, i; m9 g; U2 A$ g2 X绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
/ @0 l8 p2 r! S# a1 f/ |6 q  `% o0 J今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?% i: o: D. i' {$ O9 ]
我们的HTTP通信完全控制在别人手里。
/ t. ]' _% ~8 \4 c' [  
( u+ L8 i. T- t6 }/ X4 J% E4、如何把坏家伙揪出来?8 k+ i2 o3 Y! P9 }' L/ S+ x3 u2 U
  
) [( e1 k. g* ?, v1 m1 t如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:
, R4 }' T: a! |; d  ]% I" N  
% a/ v1 U# o" D, F- P! G7 ]方法1:
0 {& n9 |# a0 X7 E  h) M- |* N. Q  4 C4 r: n7 V# P0 g
伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。  D; A/ S# }8 O
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。- U) Q+ T$ p9 _2 }
那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。+ K; n/ s9 Y' u1 a" y' n
只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
. h- A" P) W+ ?! @$ X  w# d  " ]5 t. P; v$ @/ d$ M: v
方法2:  g! A& ?: b! W+ {' ?/ @
  
' n# a$ i. R$ D2 V假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。, N3 |. N+ i' A+ I9 d5 {0 l- m$ d* T
在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
, T* j$ p) D4 y  T- V  y编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
% b" [/ w6 w( y在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。6 u7 e: U: n8 ]5 H9 \: j
  
4 f" `. R6 m' j) \) N7 ]上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备," }2 v; ^1 R+ L' W3 j
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。8 F( W2 Y5 b( P. M0 i% l/ h/ m- z. }
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
" Z& d/ q/ E8 d6 x6 FMyIP-12-13-14-15-65-[89]-15-57-A. Y  P( h& L2 W; Z# l! y( N- O6 ~2 O
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B9 }: y: e$ J, P/ Y& @- f' ^
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
% I% `" O8 s# x( b' v0 E( ]4 dMyIP-22-25-29-32-65-45-[89]-58-D( {9 u0 @! s# T5 d
  1 R0 x4 d+ S( D- C$ }2 X7 a. ?
显然,inject设备极大可能就在“89”所在的机房。# O6 {' Y2 l5 f+ O" `: E
  9 o! c/ j4 G( P
方法3:
1 z8 q) K" P) c- }$ O3 V  
' n/ r  F+ M% z" @另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
# j: ~4 ~7 t- w2 i# v. xinetnum: 211.147.0.0 - 211.147.7.255$ [5 s  ^3 z, b9 B
netname: DYNEGY-COMMUNICATION5 U: ~' B* s1 g* r# g: N
descr: DYNEGY-COMMUNICATION* m* Z7 o% m( C2 I$ D
descr: CO.LTD, l0 F4 }7 t# K- F! M5 Y+ z
descr: BEIJING5 n- V% j3 n/ V: E7 P2 U  ^  J2 f. n
country: CN
3 s# Q; k$ B$ \* g. V8 q% P. _admin-c: PP40-AP
5 b7 @/ m! f6 {3 b7 Atech-c: SD76-AP$ F( Q+ Q& g8 G
mnt-by: MAINT-CNNIC-AP, }( m; ^# w( N' J
changed: [email protected] 20011112
8 C" j" E5 I" G, |, mstatus: ALLOCATED PORTABLE
2 h, j7 `5 i) \+ S! v4 D: {source: APNIC
4 j- ^. Y, i) _) h; H5 x  `/ J' cperson: Pang Patrick
- Y; R" M. T9 M4 g& G0 d* `nic-hdl: PP40-AP) r7 B+ I8 m) ?1 o1 R2 _7 o
e-mail: [email protected]
) Y" }  c/ t+ F% P: U  P. _+ maddress: Fl./8, South Building, Bridge Mansion, No. 53
/ L, z! x* L' D" Ophone: +86-10-63181513) ?; ~. [# j- ?7 D/ X
fax-no: +86-10-63181597
* U# o& k8 Q! b5 Wcountry: CN
# J! l6 o4 [: |: ?1 ?( H/ t8 Nchanged: [email protected] 20030304: A* k4 I( r( X& M
mnt-by: MAINT-CNNIC-AP' {* T% x5 |% t2 M/ d
source: APNIC
. ]4 e6 g; A4 H+ _  Z' F. }person: ShouLan Du6 {+ j  i3 t- K$ ]3 ^3 L# k$ \
address: Fl./8, South Building, Bridge Mansion, No. 53
) l! j8 V1 j2 Z& B7 f$ r+ Wcountry: CN( G# _" k2 ^, O( ]' w
phone: +86-010-83160000: f+ e! E& [" e0 q2 S
fax-no: +86-010-83155528
! R, D& m' n9 Q! m1 A4 b5 A, ]& Ke-mail: [email protected]- L' K  {8 \% X1 L; X( N
nic-hdl: SD76-AP) e$ I. i( _- P
mnt-by: MAINT-CNNIC-AP% A# s5 M2 E0 t7 M% T
changed: [email protected] 20020403
8 x' A* ?, f8 w6 Lsource: APNIC
$ _9 ]$ a6 A7 z  
5 U! |6 h5 B, c# ~4 z: L5、我为什么要写这篇文章?
- x# Q, `) R# Z( H) `7 Z& s  
# V# V' t/ F2 M; s2 C0 [7 g( }新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;2 P* x5 ]4 [( m4 ~9 e) N3 D
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。- a! n* F$ T8 G  }. S2 `
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。
4 K7 l9 K9 s* w+ ^; q# P; h事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,
" t. b. x( Z) p9 m2 w- D' J但是现在你既然打搅了我的生活,我就不得不说几句了。
; q, d# y! z8 J$ Z" o5 ^0 [  0 V7 V% w* x5 \( {
6、我是谁?, q1 `' i4 c6 ]$ j! R
  
) H2 _! D4 Y* \& `; O如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
* w; u0 _: y9 ~, P#!/usr/bin/perl -w
+ I& E4 I$ q# Q" I0 d6 b4 Muse Digest::MD5 qw(md5 md5_hex md5_base64);
8 E; n( q0 |; V$ t$ A. R) C$name = 'MyName';
: G. f+ M* \2 J6 A% M+ a: a$count = MyCount;
3 P# y% s; o8 v; p" R: cfor ($i=0; $i〈$count; $i++)
& ]( Q: ^1 K& |$ Q{
: J) N* D9 G7 N: Q# f$name = md5_hex($name);
  e4 X( w4 M2 M) V}* z6 m7 m2 r5 x& A8 ^
print $name;% \* T6 H) J; B/ B
   
* {( u4 o& G4 _0 I" Q! s# Q) H以下签名,用于以后可能出现的关于此文的交流:
. b& d0 H2 J' g2 q  n/ \1 6631876c2aea042934a5c4aaeabb88e98 d* X$ b1 W  @* p. @
2 a6a607b3bcff63980164d793ff61d170; k6 v/ j% C, O9 Z- x! n2 [
3 6a58e8148eb75ce9c592236ef66a34489 Z6 q) _% ~9 Y) F- P6 e
4 ded96d29f7b49d0dd3f9d17187356310
6 ^0 P* ]/ \+ I6 W5 cc603145bb5901a0ec8ec815d83eea66
发表于 2006-8-23 21:15:27 | 显示全部楼层
回复

使用道具 举报

发表于 2006-8-23 21:41:56 | 显示全部楼层
我有点看不懂?我太菜了。
回复

使用道具 举报

发表于 2006-8-23 23:40:54 | 显示全部楼层

谢谢版主,非常有用!

谢谢版主, 所言甚是,非常有用,稍后我将按照版主所教的方法来做!
回复

使用道具 举报

发表于 2006-8-23 23:40:58 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。
& x0 K" f% d: b2 j& T( Q总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
! S% B- e, L6 Y; \1 q
, O4 ^3 M# g% L+ u  G3 brulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入华同

本版积分规则

Archiver|手机版|小黑屋|华人同志

GMT+8, 2025-9-15 16:20 , Processed in 0.075015 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表