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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。6 k4 c* t7 T0 t/ p
; T1 p5 [4 R6 q/ A# \+ o
1 E4 S" x9 d; e- [% u- o
............................................................................................................................................
' o1 L0 k1 ?1 x3 Z
# j. o. N. y0 L7 K是谁控制了我们的浏览器?
8 \! [3 h$ a- W1 J" T" d, r
1、现象是什么?
& z# r. Q  I9 S  [9 S    q  t9 n/ i$ X! f! L9 X- K- [
大约从今年年初开始,很多人就发现,在浏览一些网站的时候,0 d- Q6 x! d+ ]0 o5 R1 F
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。! H4 F3 S$ R5 n4 F
很多人以为这是网站自己弹出的广告,也就没有在意。
- W& C4 L3 o# i  ! `  d. l4 {8 d3 X
我是属于很在意的那些人之一。
3 F1 L$ o5 U9 ~& V+ x& B  
8 n- q4 f" }) B" V/ v' W" }7 u2、这是怎么回事?# r" Y/ d$ C( F: Z7 G3 f
  
/ X. _' o% T' {% i( K& B8 F) A经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
2 Q; `8 F: R, _% L6 d与使用何种操作系统也无关(linux用户也有相关报告)。: f7 y( |  u4 i+ C/ q
我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。4 e8 ]4 r6 B+ G5 N
  
8 ?) [, h" I$ u( a那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。2 P5 C& ^3 c& w# R
  ; p! b: ^2 d( @, `  A3 ^
那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,
( h- o& ~! J/ R( N. v1 Y劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。
" l9 w* m4 D( V* T5 M: }* H  
1 W% R9 [  S! k9 D0 b/ D2 h# j* t伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。* [+ A4 E1 M& c5 F7 R. d
  * M; t' X& A- O4 Q$ k" o% B, ~
为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。
0 y% I- r. t! H直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
/ k& a$ t3 \7 B( ~( f! {我写了一个脚本。不断访问这个IP,同时记录进出的数据包。& z6 \) P$ q8 T" p0 H  B
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
2 \- }! ]" O2 U1 b5 O& R' h# o4 iHTTP/1.1 404 Object Not Found" ]1 C" o& U  f, H4 c. z
Server: Microsoft-IIS/5.0+ U- R/ h! F! u% W; W6 y$ Q4 s
Date: Mon, 19 Jul 2004 12:57:37 GMT: B% n5 h. c* n! }* U
Connection: close
" {- r0 `  V1 U3 W! Q) }& o% uContent-Type: text/html; r+ Q$ T: {: g; M: i8 I7 A% Q
Content-Length: 1118 f, J7 j2 w  i
〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
4 }7 y# d/ p3 B〈body〉No web site is configured at this address.〈/body〉〈/html〉
, E9 `3 O. [) S8 D  
0 ^$ `( s! Y3 `& a( B% X但是有两次,返回了这个:1 }) s0 c4 d/ i/ U% O8 @; ?
HTTP/1.1 200 OK/ U. L6 G: N" o  Q4 b# h* G& }
Content-type: text/html* T. c+ F! K# k% ]5 k1 W
〈html〉5 p$ o& I$ ?( \8 \3 r  G
〈meta http-equiv='Pragma' content='no-cache'〉
% z' a: ]/ G; e$ @  y% k〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉3 X. P" b  {. }. g( T) l" [
〈script〉# C) z( C8 ~6 h8 D) W/ x& c
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');# J! s2 ~* ^  @
〈/script〉
4 M" ~, V% e& p- H) L* b% z1 F〈head〉( C) X+ x. ?( y3 }3 Q. Q- A( A2 g
〈title〉〈/title〉
& G- ]0 n+ q- S# o! {1 D6 C〈/head〉
4 b& a( t& g; D7 `8 h/ C〈body〉+ g4 z3 Z1 S) d7 @" o
〈/body〉- q4 l+ o1 \7 c6 z+ q% U
〈/html〉3 A0 C9 u  r$ n! h; Q, Z
  
' Y! z1 J0 r( _' l更进一步分析数据包,可知劫持流程如下:! a6 H  ^5 q$ C4 W: b
  
) K; y9 i! R$ z, DA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。/ }4 p, r* |" j3 C$ z
这个设备按照某种规律,对于某些HTTP请求进行特殊处理。6 k1 g7 l: |9 w# d: O
  
' J8 h( \+ A) e+ U" q, V8 ~. V$ {B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
+ t7 T5 o; \: }6 a6 Q这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
! b0 _" m1 t1 @' t而任何正常的服务器都不可能在这么短的时间内做出回应。
6 Y" Z) E& A/ a  {1 Z- |    [0 B: q% }5 ?! h
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
' E- X0 _7 x5 K6 c9 _# g) v  & D+ Z: K7 h  P
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,9 x) V- s5 P( L4 j  D, @, v$ D' C2 i
重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。& {, Z2 ^+ U  W9 z9 b* z
  
2 J; g- W' J6 |8 u在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,) _6 @8 b% p4 |8 C! [) T
这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。
6 _* ]/ E4 d6 `/ h4 {  B  
7 d. h  ]. u5 H; F+ i真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。* U8 k8 ?2 F' I
  # M; N6 q4 B- b
3、现在怎么办?
- ]8 l  g- p* p  6 T2 W9 r, w. A) K2 A7 g! g% {% B
在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
+ s# P: \( g) W  P; i  
+ _) F2 {+ o1 c- k: c# Z% i. jA、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
( ^4 I5 g, e& l' ]9 r% O! H& o  ) x2 V% q4 D% ?; @) e9 F2 L
B、在你自己的个人防火墙上,完全封锁211.147.5.121。
/ q3 \- k( S. y7 ~4 I  
% }7 N- c6 y. m2 E; fC、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。
9 e" ?; l6 [& _8 q; _. M) K. w  
7 `' h( R+ @/ ^1 p# ^" o+ u绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
! @$ C3 P0 R$ U  H* l2 ?1 w/ ~! d今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?
3 r8 x! t6 k* {, a; c我们的HTTP通信完全控制在别人手里。
2 J% e; p' Y! n8 f) D  % u9 z  M* Y% ?- [: T) X5 R
4、如何把坏家伙揪出来?2 X0 a  w' H& r( Q
  
# o  e* ^6 y, C. V如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:
; J  {/ y# I7 A  
! u0 K( O1 v$ o7 B方法1:- V/ w8 r* O! k& j
  0 E: e6 @8 G- D$ V& F/ {( Q5 D: ?
伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。4 h! L2 _3 M6 N+ Y5 c5 E
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。/ U$ e( m! ?* M, {" V3 }# k# B3 s& t
那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
8 |8 H2 Z5 J% x& T- q8 X( M5 ~只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
3 I2 F' \7 w) O. f0 W$ g7 w  
0 v! o7 h5 B, L3 M方法2:
( W7 G  g* @% v! D- j  
7 E9 K$ w, V3 I% \  S! p假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。+ {% q& L8 e- a7 l: x2 W
在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
, h( v" t+ U7 ^1 R9 p编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
$ f" w5 h* z1 a5 E9 C在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
! n. @6 s, n5 Q$ ^- x8 f% {  
5 q( M  W' k' s4 @# A7 t& N5 y, W! [上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,# N) z. p0 y% S/ o( E1 x4 ]" r
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。5 X/ w1 o, s9 l7 R. F$ v# P6 q
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
) t1 {' q, b% T2 ~! }2 S( {MyIP-12-13-14-15-65-[89]-15-57-A. ^; w1 Z  ?% L, f" W
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B% `+ [+ o' I) I
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
2 E- v  s* {; n3 ^7 }, c4 [MyIP-22-25-29-32-65-45-[89]-58-D
/ R0 D, h. [; T$ d1 ]  
. [  [/ P' k$ a" [# h4 O; h# j6 `9 p9 L显然,inject设备极大可能就在“89”所在的机房。2 i7 Z7 o: M0 |
  9 c5 ?1 b' K8 q5 F1 ^
方法3:: `+ U5 n) K' `
  
& U7 s8 \$ O! A" o( G7 f  }另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:: n, @% v" X" o$ y
inetnum: 211.147.0.0 - 211.147.7.255' j0 A. w7 F% e1 f
netname: DYNEGY-COMMUNICATION& C6 A/ F/ [" Y. i+ T/ B
descr: DYNEGY-COMMUNICATION
- T  w3 c& e- s0 fdescr: CO.LTD
( u. X9 n, m2 Z" u" @% z1 Pdescr: BEIJING
" _' U. n0 A: \6 M0 N" Q  j( Acountry: CN# X5 t+ j( Y  P: ^! ^( R) y0 F
admin-c: PP40-AP
# Y- {, C3 u7 ntech-c: SD76-AP
9 q1 d; Q/ L# f0 Omnt-by: MAINT-CNNIC-AP" R; F0 H4 m: p, `3 I) d
changed: [email protected] 20011112
9 Q1 G# t- c5 @( x& [; h7 f  Cstatus: ALLOCATED PORTABLE0 B- Z- n# f& Z, @3 b
source: APNIC. J+ ]7 c+ i; [, u! J
person: Pang Patrick  n0 a; C9 E& t+ n$ n8 r
nic-hdl: PP40-AP, q: U( t, K. n+ O5 `$ ^
e-mail: [email protected]$ H5 W9 |, ?* c. p
address: Fl./8, South Building, Bridge Mansion, No. 53
1 I$ K! p6 D4 Y- M8 Q0 M+ nphone: +86-10-63181513: ?/ v5 T2 L+ O* I/ E0 d
fax-no: +86-10-63181597: X$ N. i* B4 H" v
country: CN
' N( H8 W; H$ x- ]changed: [email protected] 200303046 m# E  t$ q) l, L+ X! G% }
mnt-by: MAINT-CNNIC-AP0 l  M2 G" i+ ?/ M
source: APNIC& B, z' z+ \2 O5 q+ c$ d+ g& a1 {
person: ShouLan Du
  v( i# Y0 c' b- n% L7 daddress: Fl./8, South Building, Bridge Mansion, No. 53
5 @- k/ }+ Z( J: L0 B8 R# \country: CN
: a1 Z* i+ O. [' H( p) \phone: +86-010-83160000
( f: F6 b5 s; q+ v3 Qfax-no: +86-010-83155528, _; W) Y3 `0 q" C- v  c/ R
e-mail: [email protected]
$ R3 g# f7 s( G( Enic-hdl: SD76-AP, e7 d5 V3 E+ v  f
mnt-by: MAINT-CNNIC-AP& @) Y: b: t" q; {; G; u+ a* b/ H
changed: [email protected] 20020403" U( O+ y0 v2 B- }- o' Z( ^9 o
source: APNIC, p( s, [& D' ]$ R
  $ Y) s2 t! z) s2 N0 G( F) k% \; R& Y$ v
5、我为什么要写这篇文章?5 F* l3 z4 S; O  j
  " s, I- y# V6 C+ A- I
新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;
# _, M; s- s" F3 d3 k( G或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。3 ~8 O; \6 m- ]; A( r1 Q
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。
. K  ~2 N( n4 @1 P! N事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,
4 I# \( W1 q& v# G, F$ s2 o但是现在你既然打搅了我的生活,我就不得不说几句了。5 D. S2 W! _' w
  
9 C; z. h0 R* ?3 P6、我是谁?/ K0 l$ d. J4 P+ S1 }; p) b# m6 @
    F/ j) p7 c  |  W  K9 }$ z
如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
- r( W$ V& K: Z- m+ Y3 z( d5 R0 G#!/usr/bin/perl -w6 g( O6 n% K5 p) R. n1 ^7 R
use Digest::MD5 qw(md5 md5_hex md5_base64);) ]8 p% [4 _$ I5 w+ |
$name = 'MyName';
3 x6 m! X$ H( u) E$count = MyCount;
( J  |5 Q( Z8 y( K2 g1 d/ o/ ufor ($i=0; $i〈$count; $i++)+ j1 M4 }5 V; ]- W
{
7 V# \; J6 }3 v! k/ ^1 ?9 G$name = md5_hex($name);
6 M5 T* B7 c+ b& V9 g}
. x. A- `$ s, fprint $name;5 E( |$ ]% ]) c+ `9 z
   
6 g" ^8 A0 d% J0 |+ ]3 ]" u( G. W. `以下签名,用于以后可能出现的关于此文的交流:
! u$ h) ^, _+ L" ?! d5 o! x1 6631876c2aea042934a5c4aaeabb88e9
  H6 ^/ c2 q9 p4 s$ n# x. k2 a6a607b3bcff63980164d793ff61d170' b2 n+ K/ L* ]' @" C) Q8 R, k3 @5 \, ?
3 6a58e8148eb75ce9c592236ef66a3448
1 q+ A  ^' @& B2 M; X4 ded96d29f7b49d0dd3f9d17187356310
/ ?3 r& M2 `9 {& U8 e5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。  I6 q3 i: E4 O1 A+ G7 \
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。9 R3 m$ n4 c+ J( C
+ ^% X+ \7 B8 A! D: y" z
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-8 17:37 , Processed in 0.084387 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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