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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
  _  e+ T. j1 C8 W! C. y& f" \" m

3 ?: u3 A& p4 j1 n( M4 ]9 _# k$ }............................................................................................................................................9 g$ U' E9 X# a( O7 Z6 C

1 h' g. u# ~2 d$ c1 R" b3 }是谁控制了我们的浏览器?/ \) K  z3 B! `, `# d  R
1、现象是什么?6 z, Y' A8 Y7 c- R; A1 ?
  
9 X; ?* F; D" e4 |: Y+ V大约从今年年初开始,很多人就发现,在浏览一些网站的时候,5 s; q% G: x" T; d3 X8 X/ q$ Z
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
( L1 @6 f0 p# M2 f' V* r! `很多人以为这是网站自己弹出的广告,也就没有在意。
) [& k( H' v7 I% w* f& o  Q' T  ( `6 s3 o/ l: `, Z5 `
我是属于很在意的那些人之一。
' x) F; @) e# p$ o6 E( A/ ?! g2 x! V: _* x  : {* @  \" K  M) J8 k, z
2、这是怎么回事?
* j* u0 B; R+ u$ G" W  
: d4 y3 J5 ?. m经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
! v. @) A# ]" O$ ^+ X与使用何种操作系统也无关(linux用户也有相关报告)。; {' g0 e" |6 h+ K8 J) j% v
我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。3 Z& ?7 ?0 g8 X, T5 b! `& I( ~; {$ i
  
& C8 |1 B) V7 A: Y, x/ K那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。8 Y3 J, [# e# V* E" B: {; w
  ; v  @5 X0 o) o* F, b9 u
那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,$ m6 q" E* i1 i. E
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。
7 E- J2 k/ T% X4 Z! x1 I  
" A  l8 U' N; O! |0 W' N伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。
7 G2 Z# H9 y+ j9 R: g. [* H( I- o6 v  
( Y# o5 l7 M( Q3 I3 J3 B$ ]% Q/ z为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。) ~0 P. k- g  e1 ?) j7 M8 C
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。+ W8 M- x! r& O! E# I! f# H
我写了一个脚本。不断访问这个IP,同时记录进出的数据包。& P! i' y: D4 Y$ S7 l, y+ c' I# }0 e
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:" T2 ^* i6 T" n/ d7 ?
HTTP/1.1 404 Object Not Found
$ l, x7 x8 z& L) RServer: Microsoft-IIS/5.0. l* N+ T: O) D
Date: Mon, 19 Jul 2004 12:57:37 GMT
1 r5 b7 f/ S. V+ E1 N/ _- QConnection: close" t; X. j3 [4 O9 U5 I
Content-Type: text/html
, p2 K% G8 k& G0 A2 m. r, N. RContent-Length: 111
, o4 D- `/ w4 A7 e9 s" ]( U' K〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
$ \1 M. {+ V: {: e4 B& p! Y9 H〈body〉No web site is configured at this address.〈/body〉〈/html〉, B" W6 {4 r' }7 A
  ! G( n( N: ~3 u) i$ E7 v8 y: [7 S% r
但是有两次,返回了这个:
7 [" F/ i3 `9 O/ y/ z8 u# hHTTP/1.1 200 OK! v& s9 ?4 M6 `, _* t
Content-type: text/html1 ~1 _+ g  F' z* |+ ?
〈html〉
( f5 ?$ m4 a! [; x: e7 X$ r〈meta http-equiv='Pragma' content='no-cache'〉0 Q: \' K" j: M9 R
〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉1 |: F; H4 E6 a# ?% r0 i( m
〈script〉
& S- X3 |! Q8 \" n% S) O+ xwindow.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
- s3 R1 o! Q! d" P; @〈/script〉. s- x6 t" q3 A2 c& c) i
〈head〉: u7 D' D* q" D, w: T( P1 r5 B
〈title〉〈/title〉) k; R$ V2 ]1 ~6 ]* L; K
〈/head〉5 b+ v. z0 o0 Y1 ?
〈body〉
1 x, Y) h7 F0 ]0 ]# C〈/body〉
! f5 D/ d+ x% k〈/html〉
; i' F4 R) E$ ~! d$ A  z  
- u/ U7 s! e/ Y: q更进一步分析数据包,可知劫持流程如下:# n! ^5 x2 B% S' Z9 }8 j
  
1 ?- s5 K. c' ~7 bA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。7 S  d' {# J8 n8 f. V+ j, ?
这个设备按照某种规律,对于某些HTTP请求进行特殊处理。
( R( x% j7 i% O  
: H# J; T3 m5 P7 K/ s) ]. b7 R$ [2 ?B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
( v. B! g* C3 Z; a! y; J( z8 H/ q这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。" l$ c0 I+ O- y1 z- q
而任何正常的服务器都不可能在这么短的时间内做出回应。
1 j6 Z4 D( |' Q" f  ~  {  & j5 T1 W1 o) u1 V3 K+ A" ^
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
/ c( X5 I9 l1 p# r) P6 z% `  ; `' Q# ~% N" I
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,0 I* @: _6 O! B7 P: K% R% X) A
重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。2 m6 A, r/ m* ?4 D
  
. d8 T" `. ^4 q7 C0 A- D在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
- b: k! e% V, W6 ]这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。2 `& L' [' \; p, L( u% X+ T6 f; @
  
4 e+ u  n$ G9 b# n; T, B+ n4 `# r真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。
0 B  h2 E- T; w: ?) }# P" s! k  
5 B; a) p! e2 _- b- N' |$ T# j3、现在怎么办?: q; l. o3 O/ R+ j* O6 [' B! K
  
( @- {$ v# I; \" D% Q在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
: C; V/ m- {: s6 b. k' O! F  
* F9 V- Z3 T7 g, Y) s$ WA、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
1 U9 Z2 Z9 P" k0 P" M  
* P! ^2 U7 ^. X6 wB、在你自己的个人防火墙上,完全封锁211.147.5.121。
! [8 Z) f: K6 \& A6 I6 X- ?  
' w3 z( _% R, d0 c- N4 F6 mC、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。6 \/ ?' O* p0 F1 X- @$ P$ |0 d/ _
  % Z: |. G0 n/ [6 E* X7 T) k
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
& A) ?6 T: i+ \$ V今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?  w* `8 f: g4 @$ c
我们的HTTP通信完全控制在别人手里。6 _1 W; _! E* M) _" t: A
  2 y2 E8 r$ o$ X( y3 Q+ N
4、如何把坏家伙揪出来?1 m. D1 \' n" D, T8 G: X: W
  0 c' f5 o5 F* ?3 }. }
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:
0 s8 q3 ?, o& k7 D+ T  " n( r4 s7 E8 N$ X& D4 X
方法1:
; `( g, n/ x) z7 v% n: v  
3 w* |! j( X+ y% l. M! k1 n1 C- o9 u- d5 p伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。0 ]( @) {$ \1 z( P  v
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。; ~* G4 W5 i$ C
那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
1 Y3 R. A. H- a# f只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
5 n6 f8 R; I- a6 x" y4 o  + K% N# s& S/ m( r4 r0 _, Q% \
方法2:8 `' w, L. X* E: m# b( R. O3 P5 D
  
2 n8 V5 R" |4 L+ \( T( Q2 V! r假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。& M% H# r7 A; s4 F0 }
在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
) s1 Z7 m) K! M2 k9 B# }- w' E编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
- `- m) n9 i8 @, \在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。" n3 a# y' P' s# C" ^5 ?: Z
  
7 o# f/ R3 w, J& U8 v% Y上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,- Y% |# s, c. h* n
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。9 _$ E3 F8 |- ]7 D3 I" |
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:( p: U! C! U3 O8 B% a
MyIP-12-13-14-15-65-[89]-15-57-A1 S& `. ]" K' ~; ^  j
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B! w. @- r% G% R$ H- d
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
( ]0 w$ r9 \# r9 }$ fMyIP-22-25-29-32-65-45-[89]-58-D
. g6 z! k* u; d: o# `( U# _  1 V" Y& ~/ h, e* Y( Q% Z. n
显然,inject设备极大可能就在“89”所在的机房。
5 L, p9 b" _8 I9 W4 B    q3 I2 G! I1 D. @1 s* x, K
方法3:! L; M. L' R* o' t3 s) k5 X
  
6 {0 J# [: H8 c' ^/ m! [$ ?' l另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
) ~. g! `( e- L$ Iinetnum: 211.147.0.0 - 211.147.7.255
6 j& O) v  s  D0 {8 f) L" xnetname: DYNEGY-COMMUNICATION
2 w- N4 ?! \1 l0 p+ A4 d- [9 Edescr: DYNEGY-COMMUNICATION
+ w5 m2 F3 c: ^6 `descr: CO.LTD- F+ E& R3 F) M3 X! q
descr: BEIJING
" n; P: J; c& `, D7 k  Zcountry: CN
, ?' M& u3 X, M  V5 \; }; Nadmin-c: PP40-AP
! O- I& o5 [8 K8 B. H' ?/ X) xtech-c: SD76-AP
' E/ [* J+ T9 w3 bmnt-by: MAINT-CNNIC-AP- i* g0 s9 G% I6 K
changed: [email protected] 200111126 x# H, U1 h) T8 n2 f& w
status: ALLOCATED PORTABLE$ G# g! @5 s0 N5 k3 c  ~8 [, L
source: APNIC! v/ e5 q+ z* m
person: Pang Patrick
+ I! v9 t- d, z1 Gnic-hdl: PP40-AP
! |) B4 T1 I# G) d  Re-mail: [email protected]9 o! c& t0 l9 p) U& d8 ~0 a
address: Fl./8, South Building, Bridge Mansion, No. 53) ^' s9 N+ \' V1 t* M; {
phone: +86-10-63181513
  Z2 P' u5 [$ h* a0 c! Ifax-no: +86-10-63181597, Y# D0 @6 ]$ e4 ~
country: CN
' |! G1 z6 }. p$ o( b2 Fchanged: [email protected] 20030304
0 [+ F( ^* y4 s+ v1 j# {) t. nmnt-by: MAINT-CNNIC-AP+ X) R9 S( \5 D; e9 p! S+ J
source: APNIC) S" X( W0 x/ w9 P
person: ShouLan Du8 x/ r: u+ `# g3 [' L% u) f7 ^( l
address: Fl./8, South Building, Bridge Mansion, No. 53' J* e* c9 H' f0 V+ p+ R4 u& s
country: CN& d  N0 K7 [0 b
phone: +86-010-83160000
! A1 p5 f6 t# o5 ~& n$ ~fax-no: +86-010-83155528) q* n6 K( \, P
e-mail: [email protected]( n: R3 h# Q; r2 L; Q5 ?
nic-hdl: SD76-AP
' r4 z" E: z0 c) B& |) t) Tmnt-by: MAINT-CNNIC-AP
5 U# Y4 J! Q+ lchanged: [email protected] 20020403
* ~/ B- `$ M7 ~- Y7 o6 |8 P3 @6 A6 ssource: APNIC+ ^' Y! R/ H) _
  9 |- s" {0 Y: E) H/ r% i8 H
5、我为什么要写这篇文章?7 Q5 l* Q7 f# ]3 _! z: T
  
( L, W  C5 _& @: I- W新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;
) Y3 p! Q, d/ U0 t+ ]2 g( C或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。3 |/ p8 v% g/ O$ D0 s  q# n
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。, a- j: m. v% ~9 ~
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,
8 ^) k( m1 P* r( K! T但是现在你既然打搅了我的生活,我就不得不说几句了。" o/ h- g- H: {" t: k  D" P
  
$ [& v8 E- {- q9 [- Z! G6、我是谁?) X2 e/ j8 |! z4 o
  9 e* E- N, u2 I. u9 h+ M3 B0 b4 K4 Q5 p
如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
5 R: ^5 a! K( D; T#!/usr/bin/perl -w( m5 Q" N) N' N+ o' X) q5 [
use Digest::MD5 qw(md5 md5_hex md5_base64);8 T. Q9 E3 _5 H& i; R3 z. Q
$name = 'MyName';
7 c  s9 y* r3 t3 k. O' p$count = MyCount;
8 ]! u  a1 B, @- cfor ($i=0; $i〈$count; $i++)
0 U5 d: P& H! o9 j% {9 u4 ~" `{
0 N; X( N+ O+ F: E$name = md5_hex($name);9 z- L! }5 A+ W0 s; {. L
}# x" R& w( S; y" Z
print $name;
) T; W2 d4 {. s) U  a, D    5 E8 l. J! X! e: a$ g* C
以下签名,用于以后可能出现的关于此文的交流:) j& M! D+ _& n$ \  _4 ]0 C
1 6631876c2aea042934a5c4aaeabb88e9
, Q: v) r; e5 J8 H2 a6a607b3bcff63980164d793ff61d170
! `. d( d# |% u6 ~2 _3 6a58e8148eb75ce9c592236ef66a34481 b( `$ S9 k: l' A$ }% a8 W
4 ded96d29f7b49d0dd3f9d17187356310
3 ~( n  p6 b! v& I' a5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。( v1 A. |& @4 i7 a! e8 l
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
# H2 D) |* v% _# z4 y- M% r# c. R2 v! B% V
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-8 17:09 , Processed in 0.060021 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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