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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
! h, c; m. P, F# b! E! I. y4 q: B( O2 |* M4 R1 z5 J
$ i! ]4 e; X* |8 ^! N, m1 E
............................................................................................................................................7 r3 a9 y  R% v5 M; `, q
8 `$ h5 \" Y4 \
是谁控制了我们的浏览器?
' w4 S! a; D8 d, B6 x
1、现象是什么?3 X; q% c+ Y4 \3 t2 M- v: [+ H
  
, r1 O2 a) ^( ^, x. q大约从今年年初开始,很多人就发现,在浏览一些网站的时候,
5 i# M" }. K& U- Z' q+ n地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
) Z) _$ E& l" I1 M& j很多人以为这是网站自己弹出的广告,也就没有在意。
, J3 ^9 I& N  y! x  
8 y* Q5 l* y& g' B我是属于很在意的那些人之一。
9 ^- Z" z- s; Y: ~% d, j  
( z+ v! y% B( g' W) S0 E$ I) y; d2、这是怎么回事?- M2 {9 D) B  t; `2 [( W' u
  9 I# D$ z# @& v
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),9 J' G9 o  W( S- p6 V
与使用何种操作系统也无关(linux用户也有相关报告)。! W" T, x7 }( D9 f6 S1 n/ R3 B/ G
我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
" N* Y$ |4 F6 k. g0 u: L8 O  k9 T/ S  
/ D' [9 ?" Y% s) u# A那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。7 P7 _; E8 T$ C* x( r# t
  
/ ^3 z8 b7 }9 |* }" J4 N. b那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,
" {- ]( X1 Y' f2 T劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。
8 t- F: _* U+ w* l" H( V  
5 k  }& ^& h" L# n伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。
; {6 T2 s9 C8 p; X  
8 p; P2 h0 q* j7 A7 [3 J4 W为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。
0 _* Q7 A$ R1 M( h0 @) P4 b1 R直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。6 N% P6 u  ~( t+ T1 e0 d2 U
我写了一个脚本。不断访问这个IP,同时记录进出的数据包。* ~( _7 e. y) ~9 b7 J8 r; G
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
: a& H! `% |; g: IHTTP/1.1 404 Object Not Found; h, J) n* \) G8 L6 b
Server: Microsoft-IIS/5.0
9 Q" i5 u+ ~8 f! t: wDate: Mon, 19 Jul 2004 12:57:37 GMT
1 c: o1 h" j9 }  b  LConnection: close
3 A! B5 S7 b! d$ P: K( X8 HContent-Type: text/html. \' ^2 R- e! f  K1 L( R1 H
Content-Length: 111
( m7 o7 }* X- |〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
7 A7 Z* R" E- ^+ m4 T! R〈body〉No web site is configured at this address.〈/body〉〈/html〉5 |( V7 M/ \0 D, k( Y, D5 c% L
  
: P, _( _( O  `4 z) ~  I但是有两次,返回了这个:
3 P: k0 j6 v) b4 p/ U9 Q8 v8 ?HTTP/1.1 200 OK
% e/ L0 \: P5 F, yContent-type: text/html2 l6 w+ q' G8 |5 m( c7 y0 C
〈html〉1 t( g. Y* o2 j% N1 ^
〈meta http-equiv='Pragma' content='no-cache'〉9 [. X5 c& e. V# a0 T( o1 K! j
〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉  I9 F. v4 l. O! n/ w+ Y7 m; r
〈script〉
% v# A+ G3 x6 T8 K1 fwindow.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
0 j* i& G# v1 W" W6 w( M% K, l1 j〈/script〉
: m) ~; E! z4 u) c5 y〈head〉
& x( z9 P5 e3 c5 x4 Y( `0 r〈title〉〈/title〉
' v" A, `; }1 T: i8 \9 \. l' p( [〈/head〉" v/ ~4 p0 r# \$ q
〈body〉. y6 [4 d  a+ v, j( c' ?
〈/body〉
# a$ M4 P7 {& ?. |% O% J/ Z〈/html〉
/ U! W. [5 [& T* M# {/ }) e  
. y/ e: J8 @$ @更进一步分析数据包,可知劫持流程如下:9 H, r% E9 u" r8 t' c8 L
  
# J7 ^3 q" l7 D/ MA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。2 M7 z9 \# ^) C4 Y
这个设备按照某种规律,对于某些HTTP请求进行特殊处理。
/ w5 p% z& k0 @7 k9 ?, X" I- a  
: C8 J0 x% J$ L* f4 gB、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
: a) A( W& g$ [3 I( _- j这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
, h5 o: h& p0 {( @而任何正常的服务器都不可能在这么短的时间内做出回应。  V/ e! T! B2 n8 s% E) ?+ e8 g0 @2 P' k
  ( H& B5 ?2 L+ T1 T
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
. @, S2 i) X" B% C* ]# k) ]  0 b8 O9 @$ f2 M
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,4 y; u% ^- J# l+ b
重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。
' D5 A# M" `. t6 w% I6 W% V  2 A- n, c5 W& i% K
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
2 |- X/ P( a- S- D5 ]这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。
7 S" X& y$ P' b- ~7 t  
4 D0 H* @, r/ @- x真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。
% W1 }1 b: R" J+ u: T8 E. N  2 V' q, z8 x# O; g1 K5 s
3、现在怎么办?8 o( c% M% J- b: \% f( J
  
  f* N# M: O- L: ~4 M) F: S在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
9 c5 R: t# z: P' d  ) {" L" g9 z; @0 i0 X# I0 a. `
A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。, L1 L3 Z5 u' j* Y1 V& k) A/ V
  
" Q4 H' {' s+ y4 A8 q6 l5 rB、在你自己的个人防火墙上,完全封锁211.147.5.121。
7 y; c1 u1 g- U  
) E9 c8 k: O8 y8 _9 _3 \( `: ]C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。
  L8 ], W* M$ U8 \7 P$ _  ; g9 s* y, w' u! ?# }9 s3 \
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。  w/ s. j+ u. `5 V/ C6 s9 P
今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?) G) w  W- H% ^- g# ^; R' M
我们的HTTP通信完全控制在别人手里。
! V) r9 _; N+ Q0 A  
" z' {+ C: ^' i, a( H4、如何把坏家伙揪出来?# j, Z; {& V/ U  H
  
2 a. B  E8 j" @9 X如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:
3 k6 y& o+ \% h7 H4 ^) W( P0 U* _  : y  z' C  r- C7 o! @& ^: s+ W
方法1:+ K. E8 m, f" I8 r  k& W  O
  3 }; b0 M1 u# v5 i
伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。
* g6 N8 q# l( r以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
5 [9 D8 P, Z/ Q( B那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。7 x- }1 t; Z2 Z8 `
只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
1 O1 U3 u7 K0 k/ X  ( X, D0 l! g4 d$ F. P, F" n; r, c- u, k
方法2:+ L# ]* Y" v0 A- c& Z2 C
  
; X+ h! O) Z! _& M假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
- c& K" `; t1 r' k# i在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。1 f* Q. r- ~1 s/ D8 u  w
编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,4 u' T% R+ d$ D$ ]3 \( D6 P
在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
+ J/ C3 V9 u3 N: C( g/ S/ K  6 N2 T3 G* C3 S; l
上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,
; n+ V# d3 M# c* q4 ?/ @8 l那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。; E6 x3 O/ E4 \) Q  ]
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
1 k- ?  M; s) Y) K1 JMyIP-12-13-14-15-65-[89]-15-57-A
* @) I4 y0 v" S5 s) ]% I6 X. Z/ _MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B
3 t+ P+ [* O% u% d) t! [# MMyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C5 w- z6 a7 b- e; O
MyIP-22-25-29-32-65-45-[89]-58-D/ a' Z) N2 x5 Z( b* k
  ! M7 P$ _; {, ?- R
显然,inject设备极大可能就在“89”所在的机房。
$ t/ @, Z! G& l3 U  ( e9 w- Y0 t  D& I+ A+ G
方法3:
# ^4 g* |4 ]+ {) J+ B5 d$ T  
' V  F$ e9 D: a) k7 ]% m7 v" [另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
# s+ R+ J8 M! c1 ^# c7 Y) Ninetnum: 211.147.0.0 - 211.147.7.255) I! t  f, l' d4 }8 c
netname: DYNEGY-COMMUNICATION
. O$ n! B" n- f8 ~4 p% Ndescr: DYNEGY-COMMUNICATION
5 O% W' |4 y  f& l: c! \. zdescr: CO.LTD
  ]! g7 d0 L) X/ C- e7 s8 {descr: BEIJING2 [: k8 L7 f$ I2 N
country: CN  A0 A; i* v( e( I8 c! \4 G$ t
admin-c: PP40-AP5 c" s; s$ o2 k- S
tech-c: SD76-AP( @8 H2 c/ G) {& _* Z8 d" ?
mnt-by: MAINT-CNNIC-AP
+ J  p6 A/ J, C% Mchanged: [email protected] 200111127 U* y. [/ a* w7 L: P9 i6 g5 e
status: ALLOCATED PORTABLE
% F$ A: p! R( U. b7 T8 C0 Nsource: APNIC7 N6 f: Z9 L4 Q; y; K! s
person: Pang Patrick# I+ J6 _" q4 u. [6 Y2 {: {
nic-hdl: PP40-AP) @! L: J, P. v/ Q3 H/ b
e-mail: [email protected]
0 }5 z) J! m$ F7 p5 z4 \address: Fl./8, South Building, Bridge Mansion, No. 53& r9 B8 I- }7 R, g! J. A/ D# S
phone: +86-10-63181513
" S: z2 Y7 \' z: N6 Tfax-no: +86-10-63181597+ `; b. p1 ~( }8 ~5 }; ?2 c. x" v
country: CN
2 a! d. e+ O2 v0 h9 }6 y$ r4 l3 vchanged: [email protected] 20030304( F/ s( V" T0 o7 D
mnt-by: MAINT-CNNIC-AP
% r. E' V  h, L# k# V' c4 Isource: APNIC
2 C: M- U% V7 yperson: ShouLan Du, d3 J0 G4 Z( t# Y$ g7 u
address: Fl./8, South Building, Bridge Mansion, No. 53
7 E& d8 v- z0 C, W& xcountry: CN
/ M% q, ?! Y9 w* @& F3 qphone: +86-010-83160000
6 o* ?3 O9 u, [) X% ]5 Wfax-no: +86-010-83155528/ p, j, m4 u/ e1 ]7 Q: h
e-mail: [email protected]$ s, b8 s' \% X% D- h& @: S3 w
nic-hdl: SD76-AP8 ?, d6 l8 H7 q1 g' c% }5 }
mnt-by: MAINT-CNNIC-AP
* \+ K# s9 a, R8 `changed: [email protected] 20020403* N  Y. V0 h2 S/ z; Z9 |' o- E* {4 z
source: APNIC
  r5 Y0 |4 a, N1 v2 s/ g9 ?  ' T$ X9 U4 V; r5 W% k' L/ a
5、我为什么要写这篇文章?/ Z4 h, H8 b* k$ r4 e+ @6 t! ^
  " p1 }5 ?" A- [
新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;  T5 @: @" y3 T1 w
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。9 o% c  P. M  K: j
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。
+ }4 F" O1 W. V事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,9 M# ^) `: b" y9 O& w- v- B( E2 u
但是现在你既然打搅了我的生活,我就不得不说几句了。" ?+ E4 d: ], b* ]+ @& ]
  
- s* [; i6 _+ Z/ U: O; {( F' z6、我是谁?
5 f0 @2 d' H6 i# N& M  & P' D+ w3 E+ ~, Q. u9 \- k6 ~$ j1 m/ S
如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。! x: h2 H+ n* e$ @4 \
#!/usr/bin/perl -w
6 G9 V: l% P, d- luse Digest::MD5 qw(md5 md5_hex md5_base64);6 q& ^8 |! h: y0 U! ^
$name = 'MyName';) y$ }4 G/ Q( _2 r8 @
$count = MyCount;2 A5 u3 B' a- G
for ($i=0; $i〈$count; $i++)$ Y' i6 C7 w% |/ m: H' ~3 ?- g
{+ z* [* z* [1 F3 f. @
$name = md5_hex($name);
2 m3 _6 X# [) W0 ^}
7 B1 j2 e! O5 F: w, b# m2 rprint $name;
) v+ A2 |9 I6 t2 \    ( D. A3 j9 \* m
以下签名,用于以后可能出现的关于此文的交流:
% r# V% n. U  @. c1 6631876c2aea042934a5c4aaeabb88e9) v$ m# a) e7 ~
2 a6a607b3bcff63980164d793ff61d170$ P3 U# b0 x7 r  \# @; T! ~* a; W9 e
3 6a58e8148eb75ce9c592236ef66a3448
, T' v  X% r8 a, E/ H. n& I4 ded96d29f7b49d0dd3f9d17187356310
9 H4 V" V  @; ]5 ?( @5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。
- b9 |9 [3 `( E  a( _总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。6 d5 K& P" B' c: A
$ X7 w9 J" _9 Y) v; @6 M! n
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-27 23:44 , Processed in 0.071336 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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