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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。" k! I8 G& z+ o

& i4 e6 h7 a: Z; ^3 |6 T+ H9 H6 L$ z* Y9 Z  L3 h
............................................................................................................................................! `1 Q4 T) u4 R. d* h
7 B8 z- f& H3 S; c. X7 E: k
是谁控制了我们的浏览器?
) g2 h6 n% v" `  e
1、现象是什么?( s6 r/ ]. I7 C$ J7 M
  . p" _, P( b  K- s8 n" {( O3 b- }
大约从今年年初开始,很多人就发现,在浏览一些网站的时候,
; y9 }: Z$ V# L2 b/ p地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
3 d! J* {0 d" A3 U很多人以为这是网站自己弹出的广告,也就没有在意。
2 g  U, t6 i! C) E9 W  
! l3 M- p* S( c' j我是属于很在意的那些人之一。1 B& n- n! d! O  M6 O  K/ L% M" ]1 `
  7 r+ Z" b* d& n# i, S3 S6 k: ~
2、这是怎么回事?( N! p  i' G* F4 C
  7 r# A* a. z* h+ _$ P
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),8 ~* G/ u0 Q9 k* J+ b
与使用何种操作系统也无关(linux用户也有相关报告)。5 E: O7 ]3 `, ?6 {# L" L0 e
我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。% e. p6 _( F) @* J8 F1 [
  
& C1 I" C3 h/ ~! r. K0 N- k那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。+ w% e3 Z) ^* [, z
  
/ y; @& ]7 X( z$ U5 y- c/ t6 P' x% ?那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,2 q; y; `6 R$ M2 E! l
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。
6 n: q) Q- g/ H  R6 [0 t  + E% x2 J7 H" {- q0 @  i& U% U3 R, m
伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。0 o/ d8 N& n$ \6 z) }
  . f  _0 J. p! e6 x+ D7 P% c
为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。4 o# t/ v) Y8 z
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。# T. }7 W4 Z3 @' _! }5 y$ ^
我写了一个脚本。不断访问这个IP,同时记录进出的数据包。4 e! Y" K5 Z8 ?8 |' P* J
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
2 n  S( Q; D; K. lHTTP/1.1 404 Object Not Found
  E& f( A% e" r. H; Q7 K; EServer: Microsoft-IIS/5.0
8 I1 _! N% G7 S2 NDate: Mon, 19 Jul 2004 12:57:37 GMT
- u2 N% R. ~7 [1 fConnection: close
1 Z5 {' u2 m7 mContent-Type: text/html
+ Z7 r0 G# f2 a" [Content-Length: 111& V$ h% O7 ]/ W* Q) v, ?3 ^/ Y1 ~
〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉$ f" O3 S* w3 y' w; y
〈body〉No web site is configured at this address.〈/body〉〈/html〉
( Y+ V3 Q: X6 S( G; M  
" i9 v, Q# W* _& z4 n但是有两次,返回了这个:2 l+ U1 ?% j2 u. w7 @- ]5 v, c% X
HTTP/1.1 200 OK" R& d$ j6 o" i: f$ [
Content-type: text/html
" p3 }1 K9 g- D  P9 X( M〈html〉  ]. S5 U1 F( T
〈meta http-equiv='Pragma' content='no-cache'〉
' P" O& h$ n2 L' d) j6 b〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉& m- v8 C1 c1 ]& B; q
〈script〉, r4 l9 r5 W- @' H
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
  o& n" h! H0 H7 ?  {" Q〈/script〉8 O' G' W4 L& ~$ X
〈head〉  U+ N& K: q# _4 B
〈title〉〈/title〉
$ e2 K  K% x! H, G3 C〈/head〉5 a5 p/ ~7 l5 u9 P$ b
〈body〉
( k  y# K3 d. h, {〈/body〉
7 Y, O" @3 x+ @7 a( g〈/html〉
' y9 l& G" q  t  2 w/ Z! Y, X$ y6 F
更进一步分析数据包,可知劫持流程如下:2 m) k+ h2 l, k, ]# T4 P! C% V
  / h5 {; W% s* d+ v( Q) Y: }; h  l
A、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
3 t5 N/ D; E3 c! K. z这个设备按照某种规律,对于某些HTTP请求进行特殊处理。; J& z: y+ n0 W- ^: q( C
  
$ n) Q* G, H$ T! t( JB、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
& B" B: m8 m, f$ `% v1 o7 H这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
5 }/ ]1 h' q; B$ ^+ z" L, o而任何正常的服务器都不可能在这么短的时间内做出回应。
# ^) S) Q- x! i5 j  
: [- `3 @  x+ n7 fC、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。% G  G/ S$ Z$ w% p! ~/ T& m
  
; Q: M; c. J' G& y0 _* j# m5 sD、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
) e6 m% A! u# f! c- S9 h. x重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。
  s! G3 A" x) g& R; z  
$ X( j. q+ G8 ]8 ?* L在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
6 y+ Q1 B8 _1 b2 t这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。% h7 A5 S. A; p# x: `
  ; m6 K3 w- |7 A. z- h
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。
1 B$ t0 G4 }) A1 ^- C8 \  6 Q7 G# X1 I5 _- R
3、现在怎么办?
2 g, K1 n" H$ j# }% G/ U  
3 j: X& d5 x6 ?! s在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
2 p3 ~4 x3 A: n  
$ s( J9 t7 Y; L2 X, r# y% B( D  hA、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
, N  m: e( }: e% x  
( }' i( P; G3 D% g. q; [1 u* J+ d1 tB、在你自己的个人防火墙上,完全封锁211.147.5.121。
6 W$ b# V' L/ S+ |9 X  2 ]( `% c7 Q/ D- q. n* s8 B
C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。, |. T% Y" ~* ]/ h
  # M# S: ?8 P! L: L: x$ R' R
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
& `% ^  C: q( N2 Y! I4 `5 v6 m今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?% V8 {+ }: o9 W: {
我们的HTTP通信完全控制在别人手里。* Y( ?  l' c' W" R) K- n
  9 x2 O" B" l  Z
4、如何把坏家伙揪出来?
5 ]0 @# u$ V4 ^: t4 ~& T  
3 c' S- Y5 X6 ?& P3 V0 m如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:
1 P& V* ?1 c# v9 D  
4 L3 w& c8 [9 }6 ^$ n% F( @方法1:8 w- h9 {( g: ]/ h( r
  $ W% v5 v% K" [9 U& s- N2 Z
伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。
( X. g! m4 R8 k7 W7 b/ h* P& t6 z/ o以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
$ z4 C( U# _& H2 {那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
# Q* f' j/ u. l, Y只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!( H" M: f& v) y( e6 v/ G0 ^
  
. s/ ]4 K, X1 ~" d4 Y$ H方法2:
: L' k+ g1 {: X0 n7 L9 }  
# q* A7 }" i! I5 Z1 M2 r假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
- b% c8 h# H6 y在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。3 t4 U- m5 U5 t  W- m7 l
编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
' J9 D+ Z: P9 L- ?/ d' c在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
0 J$ l! H! T9 |/ K5 {  : N& E! [7 ^! T8 I$ v3 M
上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,
6 y! i0 I3 @3 C# o$ w& S( z那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。
0 `; C- Q% D$ }6 {  S% O% I例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:2 e' u( i# T( r5 m! O1 S
MyIP-12-13-14-15-65-[89]-15-57-A+ I: W8 w# U7 K5 O9 f8 q
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B/ h0 h5 w! G) t7 _4 H0 U6 l
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
2 n3 b2 }4 e- c# |: n9 q$ pMyIP-22-25-29-32-65-45-[89]-58-D6 C. T* a5 _3 ?" T
  
9 T4 i, {) h% r6 g显然,inject设备极大可能就在“89”所在的机房。
$ {" B) }: }# A7 f/ d  
- E5 Q* a! J) S1 M5 q" r( ^# j) Z9 R方法3:. ]9 o. j6 ^7 N* N5 _4 x3 T+ e  F
  
# o3 w  a- o: X8 h5 V# q3 V9 N另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:9 D! W7 n/ t, J8 _" s; l
inetnum: 211.147.0.0 - 211.147.7.255
0 J! }1 ~) V& Lnetname: DYNEGY-COMMUNICATION8 i# s" R2 |& B$ x, G
descr: DYNEGY-COMMUNICATION% U) N8 Y. @. o2 `! O
descr: CO.LTD& S) q4 U3 I3 i* k: I4 l
descr: BEIJING3 C: V* F: c, Y
country: CN
6 D3 B0 [) u4 H* W+ b6 r+ T6 ?admin-c: PP40-AP
. x: g8 T  W+ Q6 jtech-c: SD76-AP0 J# S! K6 N3 m) F/ a5 i' ^+ y' K
mnt-by: MAINT-CNNIC-AP
- ^0 D* `9 F- r6 J' H& hchanged: [email protected] 20011112
0 T8 E# ?( \$ e& Xstatus: ALLOCATED PORTABLE
- d% f4 K7 R7 @: p3 C, C3 Y' ?7 qsource: APNIC
: e, M' T  R- U! U  J; X/ lperson: Pang Patrick
- o" }, a8 _2 S+ c1 jnic-hdl: PP40-AP
7 H* E2 E* r4 n, H9 _e-mail: [email protected]
& f* Q# v. T; @: U; j% l+ M$ baddress: Fl./8, South Building, Bridge Mansion, No. 53' b2 k# s- F$ \& ]1 o# s
phone: +86-10-63181513; [) Z. x# ?/ Z3 T: r* x& ]
fax-no: +86-10-63181597- W  V# l# `  t6 T
country: CN
$ o  @: @, l7 s/ m0 echanged: [email protected] 20030304
+ n- m" n% a7 l* J2 H% x+ m- Imnt-by: MAINT-CNNIC-AP; F4 Q; r3 C4 s. I
source: APNIC
" J  v& s0 F1 z3 ]: Hperson: ShouLan Du) e& z7 q) b2 T% s- J. L- Z, S
address: Fl./8, South Building, Bridge Mansion, No. 53  ]; W6 |4 D4 l
country: CN
' a! ?" D8 h4 Q/ j$ }! _& Rphone: +86-010-831600003 ~8 m, x5 c6 P9 |; @: `2 B
fax-no: +86-010-83155528& \# F8 A- k" t, o
e-mail: [email protected]
5 R( ?& y( D0 @5 A+ Jnic-hdl: SD76-AP: L# u7 m9 ]6 @& E3 |' T2 ~, ~
mnt-by: MAINT-CNNIC-AP" T# a3 T+ k9 a# K
changed: [email protected] 20020403) d+ D4 Y: V$ ~0 ~: t# x- m0 n( D8 E
source: APNIC
& i3 J- L# T4 e  
) a2 {$ x* a3 N0 V! v% U5、我为什么要写这篇文章?
% c* r* W4 N  w$ M/ Q( Q  5 x9 q; J: s: V) }
新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;( i$ A. b- v/ J- f% v
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。- q/ Z5 [  Z3 I# Q
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。( o  p. v2 p3 G8 T* G
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,3 ^- t: a9 V5 s
但是现在你既然打搅了我的生活,我就不得不说几句了。# s# ^. J& p' E' j1 U
  
3 X  A! M& J: z1 i# r6、我是谁?5 w. |. ^' H; G) t8 T1 e  y: h* c$ H- {
  
. Q5 k1 z: e- E8 O+ R8 U如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。0 K2 W1 a% F$ \0 k" u# t5 z. F  D
#!/usr/bin/perl -w
) [, |+ E$ [! R* X7 Euse Digest::MD5 qw(md5 md5_hex md5_base64);* A% `6 Z. Q* g4 u  X2 K
$name = 'MyName';7 E1 V3 b& ]. h% O) ~
$count = MyCount;4 y8 |* n) s* D( `
for ($i=0; $i〈$count; $i++)& P2 I5 ]& x  I% C2 K- C  K
{
  F4 e8 Z2 Y- Z  v& v& E) s9 d" b! P) ]1 _0 U$name = md5_hex($name);0 c, d' y4 F! o1 q' Y4 d1 U/ l
}  e9 O3 e6 [% x2 ~7 o
print $name;: B* {, o. X  T; p! L
    : X" S- c+ g- ~- A; o
以下签名,用于以后可能出现的关于此文的交流:, @7 q+ s. e$ m3 ]9 W1 Q
1 6631876c2aea042934a5c4aaeabb88e9: q' }# w% S  X1 X8 y
2 a6a607b3bcff63980164d793ff61d1705 _7 ~, j$ {# |1 h% f& y
3 6a58e8148eb75ce9c592236ef66a3448
2 j$ H9 a2 l- k# s4 ded96d29f7b49d0dd3f9d17187356310
) a# r& y4 C& Y( x5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。6 m: ], D" i( g6 J! z
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
- t: S1 q2 E9 j, [! o0 a3 V6 K7 U0 u$ d' j
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-31 07:06 , Processed in 0.062372 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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