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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
. v6 `0 \% |0 }' f0 z
7 Z1 }9 L3 e6 m; t8 p$ \, d
7 |; `+ ?. b+ g/ C............................................................................................................................................
! A( A6 K' }0 t) Y9 e3 w3 R3 ?7 m* b& q) _( a1 |: b8 H
是谁控制了我们的浏览器?
' O' g6 x- _* r, _3 D
1、现象是什么?% w2 c5 i' \+ B8 V! Y- b4 K' l
  
' j6 j; [) V9 D大约从今年年初开始,很多人就发现,在浏览一些网站的时候,! {5 s7 q3 x7 H) d0 O5 j7 v2 i) F
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
/ t% \$ P% o: B# E; t0 D很多人以为这是网站自己弹出的广告,也就没有在意。
& E: ~3 b7 y4 C/ j* k5 X( T& U  " P& ?- o6 J% o, w2 t, m
我是属于很在意的那些人之一。
0 I/ ?% d" A5 k  
" _- @) x$ X; w' ^5 G6 Q2、这是怎么回事?
% ?4 \" E# D) K5 {  % @/ t" n! e" [2 k) _8 F
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),. O4 w& @% I: B0 g" t
与使用何种操作系统也无关(linux用户也有相关报告)。) i! O# O. y+ M* E& Z
我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。2 @' M- `/ k0 z6 U" i8 {3 `
  
8 V$ _4 a4 ], n0 V8 s那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。- S  v& W: a$ m, q* @' e- @! l3 z1 K
  
  k0 e6 j* |: @那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,: d' U- p6 Y6 ~2 V+ ^
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。( O1 H' ]! w2 q; N, J2 r
  
1 k9 e# U0 e& b( z1 a伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。2 }' M; m' S5 t( ?! |# n; _
  
5 j2 l+ w7 W" |* r2 E" g0 n为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。5 a9 ?* Q  |/ v2 E
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
  F0 }' f1 d' A9 o% |. b5 W3 s2 E我写了一个脚本。不断访问这个IP,同时记录进出的数据包。
. f" Y: I  X9 v9 c! V# J9 ~; z& m在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:- K2 ]$ h1 C( ^$ S* G
HTTP/1.1 404 Object Not Found$ c4 u1 F- M/ A3 `/ \( |
Server: Microsoft-IIS/5.0: e7 [2 @$ K5 `% J3 p' Q5 q
Date: Mon, 19 Jul 2004 12:57:37 GMT( D* J% U! V% E: q
Connection: close! {: J- b& O8 u  e$ I* C
Content-Type: text/html
+ k- v# ]( z( AContent-Length: 111
( n- q" S" l, Y1 K! v  [% G〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
' x) h$ |# P$ |" I% R2 a〈body〉No web site is configured at this address.〈/body〉〈/html〉+ J; i/ z! U  j: A! g- K0 A* }+ I; p
  
4 u0 {) A# O( c- F# {6 ]但是有两次,返回了这个:
8 c8 `- X- F2 {9 S9 u6 JHTTP/1.1 200 OK* @7 S# Y) Q- |( T3 R. E1 e
Content-type: text/html: j# }5 K7 J6 O' P; [
〈html〉$ W3 a4 A9 I. V- p) _1 Q
〈meta http-equiv='Pragma' content='no-cache'〉
3 n. w# F8 W+ T〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉
9 d0 w0 q. ~$ w2 q* q/ V' K〈script〉5 l" w. g! D( q. v
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');5 u" B) R. A6 U& k/ Q- s
〈/script〉
0 @! }9 a, {" e6 w- K〈head〉* e# V* ]* q+ E7 E# t
〈title〉〈/title〉
: I* {& r& y; ?" w/ q" V* F2 e〈/head〉" b. n; l9 Y& c4 b: l2 D: S
〈body〉
. S" t' ]! D8 ]( b2 p# u/ O& _〈/body〉0 J5 |- S5 ]  F" k4 \
〈/html〉$ L9 e/ n, `4 Q, }( b
  ) _* Y  j' p* N$ O* T& T& @( O& d
更进一步分析数据包,可知劫持流程如下:
& Z1 ]4 J5 d! [* F$ n  % R  Y' o4 E$ n
A、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
' ~% ^: d: N+ Q$ u( q4 D# H1 Z这个设备按照某种规律,对于某些HTTP请求进行特殊处理。
0 q0 R7 y. |' ]/ B1 {  4 F" R9 x% N& G: Z0 O. K/ A
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
! s( m0 ?3 ~3 ]+ D2 p8 ?7 Y' [/ F这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
" n' ^% y. t% @而任何正常的服务器都不可能在这么短的时间内做出回应。
3 c$ n1 ~$ k5 `9 N& p) A  / |. ?: R8 S9 w- P, u
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
# R* Q1 I  m6 U$ N  4 y: f8 W' d/ j; N* X/ ~6 T
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,  ~( D& @5 X% _& q4 }9 J8 o- |
重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。
' m4 E7 s3 b- J. ]) b+ H  ; K6 S- ]6 m) G: c& T6 \0 f
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
) L4 o" ^- B* }' C7 X$ }! c" C7 k这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。
" d' j& E" M1 f3 @  7 V0 E2 n0 X5 z  J4 b) P% n' p
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。
" e/ |  _, l$ i; s  
; U! Q0 M, y) P( F3、现在怎么办?
. Z: S. b/ T1 k% p, x5 h$ I! o6 ^$ {  
& E6 Y4 E1 ]2 b3 _& W$ l  _在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
& f  b* o0 D. Q0 x& k  
3 N' R# i3 |& U1 X1 w6 p6 ^A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。: J2 ~& k/ Q/ i
  3 x- S- r: \4 k0 [
B、在你自己的个人防火墙上,完全封锁211.147.5.121。. c8 d+ R8 l2 J2 Y1 i: X
  
  M2 @8 P$ s+ m) U7 S4 w1 k6 tC、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。
  J6 L8 O$ g: x2 Q5 W; K6 q  2 `( e4 m6 l3 r' V0 s
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。6 R' t* ~' O& d0 H. R
今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?1 L: }8 ?: [3 t: I$ w
我们的HTTP通信完全控制在别人手里。1 p4 f- a  V& k$ F' N( m
  
2 q! q/ u9 l& k+ t' J* o. n4、如何把坏家伙揪出来?
' T+ B5 s4 u& n, j7 _6 `+ m5 ]  
3 y8 y/ S- A2 g' @如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:& k1 B/ j; C* M# i2 q' a3 z" |
  
  D/ w, ^# A: U方法1:$ j) d) f1 N! ?7 @& B
  
7 B. z! g  ~7 e3 y1 ]) z伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。" J# F5 A7 [" A8 w& l# f. z
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。6 g( n3 {% c* h7 w' F: a4 r) a
那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
* L% d/ N8 i' Y3 i8 F4 H只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!5 |; z- _1 k& v; ~
  1 c0 {1 U% B. d$ j
方法2:
" k: ?: k: Y/ B$ M4 X. {  
  n0 @( _  k% ^4 M/ n; d( g假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。6 A5 w0 k% y6 r5 d) c
在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。/ @, G! C! }  b$ m3 r
编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,+ }% @5 @4 O, b; F
在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
1 k! A$ y; L( p# O8 `3 i  6 e' J! c) {  V( U  f' g4 w: D
上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,
: N5 j/ w7 h: \9 G; q# n: b& q3 _那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。/ f; S, f+ G# d6 `* e6 ~2 a5 B4 H* S  x
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
8 j# S( @4 L$ n6 Y# xMyIP-12-13-14-15-65-[89]-15-57-A
4 D  B: U3 P. RMyIP-66-67-68-69-85-[89]-45-68-84-52-44-B
8 J. ^( B5 ?3 z$ V1 z2 TMyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C/ J. m9 N9 o6 y- `, H2 q) O1 T. ?6 d
MyIP-22-25-29-32-65-45-[89]-58-D
0 s- h+ D& w1 b  B  Q( w  + R" B2 l  ~* }1 U6 u
显然,inject设备极大可能就在“89”所在的机房。
9 L) g6 Z3 A* k" u% V7 B3 I  & D3 v  t7 a" G  m$ x; i
方法3:4 q0 }- T% e, }5 E; p
  7 z) \1 E% n& H& ~$ h: i
另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
3 Z7 v! R& W4 D' p' N/ r5 Ginetnum: 211.147.0.0 - 211.147.7.2557 ^* j( A1 ^# c! w
netname: DYNEGY-COMMUNICATION
( G: `  k1 `- b. C$ J8 N3 s1 }descr: DYNEGY-COMMUNICATION0 Q* M; D# T+ ~1 R9 _% M& w
descr: CO.LTD
+ n$ Q: R- H8 \2 D$ J) ~4 @descr: BEIJING
5 D  q0 Y  i+ [/ ?* M6 W" Jcountry: CN
7 L: N# ^2 {, c+ o: M. D/ Cadmin-c: PP40-AP
" O$ W# P/ v" Y+ mtech-c: SD76-AP. g9 _- S$ s0 S0 `1 S
mnt-by: MAINT-CNNIC-AP
& v+ f% S6 Q! ~6 w" P9 {) B8 r' S; ], p5 Kchanged: [email protected] 20011112
7 R# f- f9 |# k5 pstatus: ALLOCATED PORTABLE
+ [( u% C6 V' B8 k: e( q7 Ysource: APNIC/ x+ B4 l( k4 m: P& M
person: Pang Patrick  k* Q+ c! N; p1 p$ G( e& e3 a
nic-hdl: PP40-AP
( y# F$ K; {( ]' o& v# \8 }* O) re-mail: [email protected]
' F1 {) H1 [9 _" Faddress: Fl./8, South Building, Bridge Mansion, No. 53/ D/ r/ `; m1 A& [5 O  w$ P
phone: +86-10-631815134 S2 I$ @" |; a
fax-no: +86-10-63181597
/ b; z" e* X' ~country: CN: J! Z, a% \- m
changed: [email protected] 20030304! Y& r6 }7 o# O
mnt-by: MAINT-CNNIC-AP- t4 ]! x& h1 y% k! }5 t; I
source: APNIC
5 ?- q7 W/ X: D0 ~person: ShouLan Du, K# t6 ^7 \  e. W
address: Fl./8, South Building, Bridge Mansion, No. 53$ ~% |! q! D% x  R% b3 v; ]
country: CN2 W4 }% Y. n7 Z4 t& i3 Z
phone: +86-010-83160000- X% `! T/ N0 }) V8 S, b" J8 n. _
fax-no: +86-010-83155528
. t$ l& h. l  K/ \7 ?e-mail: [email protected], w. R% r: r) E3 s) c7 w. w
nic-hdl: SD76-AP
  |" c. k8 b+ P; Amnt-by: MAINT-CNNIC-AP$ o% g: x/ o/ v9 F3 n# B, L  u, K
changed: [email protected] 20020403
4 N8 X* H* g( e0 \# j. Ssource: APNIC. v- }, `7 `7 G( [6 r. J$ d! L
  
6 b! B' q& W0 B! P5、我为什么要写这篇文章?
6 y8 F, W8 R" T7 a$ y* Z: Y+ w  
9 d6 l; j2 E4 f. ^% y7 E新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;, \! [8 {# d9 F8 P  J. B- L4 g
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。
! H: U' X. K. d可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。
. d: f7 e2 P& G' J; [  G( X; |事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,
8 x! {3 Y& G- |6 Z) _1 t但是现在你既然打搅了我的生活,我就不得不说几句了。  v) A, s& x2 W2 x
  % f% N2 f9 Z! u9 N) S8 u1 H! S$ _
6、我是谁?+ S* R3 D' [# V- ?6 L- z
  6 `$ C2 X1 s) U9 y: H* d; U
如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。1 ]8 a% _. n4 j8 |/ H+ @% l
#!/usr/bin/perl -w
4 r" W, ~  H. U- guse Digest::MD5 qw(md5 md5_hex md5_base64);
( X) \: L) i  b$name = 'MyName';
* V: P# x. o- c: ~: i+ ?$count = MyCount;
; o( ]" M( n1 ^% i+ ifor ($i=0; $i〈$count; $i++)
0 O  `6 w1 d  f& d. z; K# L{' A; c- g% E1 c1 M; O; _# W, U
$name = md5_hex($name);
2 M+ p, @& d/ Z% v, s' W}: r" f2 n/ N! m; f
print $name;
/ E& F5 h5 s, x; @( h   
+ G: g: H9 b+ }, F# }以下签名,用于以后可能出现的关于此文的交流:) ~* q6 [) W2 D- l& F1 e
1 6631876c2aea042934a5c4aaeabb88e9
4 U0 ?  \8 u& ]% s3 P- t) V2 a6a607b3bcff63980164d793ff61d1707 z3 z3 \6 i/ w# S: J( ?" S  b
3 6a58e8148eb75ce9c592236ef66a3448- F6 Q. Q( d! z2 U! j4 R# W
4 ded96d29f7b49d0dd3f9d17187356310
, N; ]' }. f; n0 c  U0 u5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。& K7 N6 M' y: ^  a, d0 t  s$ w3 z
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。0 Q- [3 w9 y. I; ]" q

" s6 d8 e/ o. S) C/ _- ~rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-15 16:29 , Processed in 0.060259 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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