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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。% I; o8 a- D# W3 g
  {) M  d( |- `, S! z

  ~8 q) U1 m& |. z* _, p5 u/ \............................................................................................................................................
1 Y: B. r5 h0 m; z! b" W
  ~# X" ?8 o, Q9 K) H9 u是谁控制了我们的浏览器?
0 P' {* l0 K  y! o
1、现象是什么?
& ?# w! s: y$ d' @8 s  7 p, U* l  j, u+ X+ f) r. t
大约从今年年初开始,很多人就发现,在浏览一些网站的时候,
* |" O% d7 k) I# D; |, P地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
% y6 b  h/ G' d5 A: ^很多人以为这是网站自己弹出的广告,也就没有在意。
) ]2 L9 q. O0 N1 n2 w& T  - h- S( ^; N9 d4 i& j2 X& D( @
我是属于很在意的那些人之一。
- a+ u9 D5 G+ S$ ^+ `! [5 E  
/ H8 E: x! n* \. f. X# Y( |! h( \/ B2、这是怎么回事?
0 T7 V% G& Y; ?3 B: o+ p  
5 R- D1 V2 ^4 R2 f, a, y7 e" a经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),: }" }& k8 t; V" i
与使用何种操作系统也无关(linux用户也有相关报告)。: ^' w. J. H8 P
我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
* t% L6 k5 n+ K7 P/ J2 i  5 T; m; O, G8 q3 O
那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。
4 W- h% f; z& C  T$ W  
% W% X' q* q! W那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,& ^8 F7 Z3 k+ n: A2 m& `
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。
1 C( Z' o" G- Z" N/ d2 K/ s  7 w1 i# z; D, N6 o- b
伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。8 A. A3 {+ Q% N1 `5 {- c* n5 V- E
  
7 O+ T/ B% K' s" D+ _0 q# @为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。
& i8 A: @* P' [7 G6 m. l) c直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
9 ~/ g8 i$ Z1 L, [: r- I我写了一个脚本。不断访问这个IP,同时记录进出的数据包。7 q! T9 d! y0 f" N$ `" g
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
# i9 o* @+ C0 Y) t/ w" WHTTP/1.1 404 Object Not Found3 e, _  s6 ]2 d2 m2 H' l
Server: Microsoft-IIS/5.0
5 }3 H! c$ l1 D6 W& @Date: Mon, 19 Jul 2004 12:57:37 GMT$ q' D( m2 n* |, s- N$ N6 v/ q/ @$ a! ?
Connection: close! T/ z9 W; y# `; b: h
Content-Type: text/html
0 S3 l3 S0 Z% K  }1 B2 RContent-Length: 111( l5 s" y! f/ ^/ |0 B
〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉9 F- s1 u# Q. E" Z  g
〈body〉No web site is configured at this address.〈/body〉〈/html〉! q" Y+ k: d: }; \3 _' z6 T8 E6 ]
  - K/ `" A4 q5 y9 S; @
但是有两次,返回了这个:
% e. k6 K" q. `, u+ q# mHTTP/1.1 200 OK
$ v3 p" v% v& f- @7 Y2 ]6 k* V5 S* CContent-type: text/html' c* T) q" m2 K0 J
〈html〉! C0 u3 c  u8 a/ }/ A3 Z
〈meta http-equiv='Pragma' content='no-cache'〉
+ X; D# K) a$ s〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉, I: _$ j4 ~+ K
〈script〉
  o; j  k/ @) ^5 }9 Uwindow.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
! r3 K5 E/ `4 p* F3 m+ l$ w7 I〈/script〉
$ a5 y1 B/ o. e〈head〉
' X) u3 L7 X6 R" D$ \6 S' `7 ^〈title〉〈/title〉; c9 y! \) a, E: C
〈/head〉0 B& O+ w. q% l: B) E* U
〈body〉
  J5 t$ E9 `& U1 i, i% O〈/body〉- L4 H# X6 z' L& h8 b, s) F
〈/html〉
$ \4 |8 ]  h9 g' X& R8 D  4 I; E- x) c# w( M" C6 N
更进一步分析数据包,可知劫持流程如下:1 X- G. p% X) z! ?, [! E7 b
  6 B/ [- {& d/ X# h- w
A、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
/ ]5 b9 F2 H% {3 `) F这个设备按照某种规律,对于某些HTTP请求进行特殊处理。
$ S- K. ^; u7 s  2 F/ p) B" w  Y1 D& `& S+ T
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。8 q0 q) h+ {/ |9 g3 i; H: @5 p
这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。3 g# W2 T! f  X
而任何正常的服务器都不可能在这么短的时间内做出回应。
8 w: d5 Z, c$ _2 F8 h; C  
7 m+ _5 p, {- w) pC、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
1 i0 G: ~; o. F  ; f8 U, r0 P7 G' @, T
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
* s3 n% j5 r& f4 T: b3 U重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。
5 S/ f4 c# a9 c+ s" t  u0 C  
1 p2 ]# ~$ p+ J; {在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
: T9 e4 m" |9 G! l这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。8 a8 l# T: N  q+ P" j
  0 ?6 y4 Y6 l  \  O  z$ M) }
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。6 O( U# V' Q& z
  6 B0 U  ]) o) }" U
3、现在怎么办?* N& q. X; G4 W1 K- ?# B
  
5 Z4 e* Y4 m! o3 ]: V  T$ s* \在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:# j8 @& w* }+ e( c  v3 S- [/ ]) h
  : m% r2 S0 l3 a
A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
! K$ V3 R0 q$ Y) o" |# `* K  
+ T7 R4 A- W* J- w6 B0 {B、在你自己的个人防火墙上,完全封锁211.147.5.121。" r, g# \( t  n* u! V4 _7 _3 F
  ' A  P! |+ s5 _0 S2 Z- j" _! i# q
C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。/ O7 |: I7 z! I; r, D
  9 R& N9 A/ p( Q7 r. E. O
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
* V  F/ A( _5 I) K2 f5 s今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?
  V1 V) n, v- L2 y  ~我们的HTTP通信完全控制在别人手里。
0 ^4 i# b! g, \- r4 v  " V7 ], Z, z6 X
4、如何把坏家伙揪出来?
' x$ b; R+ a, T& U! a, ]9 a. v  ) X3 M3 L! a/ V0 Z+ T! F$ N. @( O
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:9 Q# t: y( ]5 K3 V4 r$ U6 A- p
  
, z0 L0 l/ v* y  @0 y: J方法1:
* H' \9 w8 Q5 @  W! C( u  % N& |( _# ^8 t; P! c. T& {+ u/ e
伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。
3 R2 t/ _5 e' J以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
4 j8 t4 z  U/ G9 U  A那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
. O/ J, E& ]+ b! L! r9 E2 t% ^只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
3 W' n1 f" }" V2 |5 f7 N  
7 Y; ^7 ?: p# T* O3 H2 j( b) L方法2:$ M3 I, o  ]( N! \  V6 w
  & H8 L# s, q- Z# d& s% _8 _
假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
; t- L, w+ D# Z4 @( Y在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
/ N/ B% t  K: m编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
0 _! b" E* V# @# _: r在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
  k) c: W) u$ D; r; U  * V9 N1 r. m. m& ?
上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,
) e$ B3 u1 y5 w  ~$ B那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。
8 N6 [# b" l" Q% ]6 t2 [3 w例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
% z3 `* B( F% E+ X( n7 @& V6 OMyIP-12-13-14-15-65-[89]-15-57-A' F  `. J5 L) N, m( _
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B! j% d& I$ {6 \) o( {. b% a
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C/ Z1 `/ h: j7 Y  Q* i. P
MyIP-22-25-29-32-65-45-[89]-58-D
  ^9 C4 u; T: m- P  % O# y* B' j! k' {7 Z4 z1 B7 i
显然,inject设备极大可能就在“89”所在的机房。6 r7 r8 A, @8 i, ?: J( G
  
( c) V* f8 ^, h; D% W) c4 m方法3:2 W9 v' T, m9 F2 w7 S2 s
  
* j$ ]- Q1 c! e/ P- L2 U另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
; O( c- U0 r( u6 I: o, s) ainetnum: 211.147.0.0 - 211.147.7.255
! o$ [% f) B1 a0 F) C: `9 @# ~! s; Pnetname: DYNEGY-COMMUNICATION9 x$ z1 n; U5 n  Y6 C+ n9 n7 I- E
descr: DYNEGY-COMMUNICATION
% u, |( C1 C* u' Edescr: CO.LTD- Y; V5 L8 N$ W
descr: BEIJING
. E! \; j1 Z0 A/ E; qcountry: CN8 Z% u; i) p- Y
admin-c: PP40-AP
! W, w! s$ T. e; u- l  Wtech-c: SD76-AP
) m  {, s7 Q0 Lmnt-by: MAINT-CNNIC-AP
  R7 m4 A# T1 K' i+ x, r3 Q% A2 wchanged: [email protected] 200111125 b) n" ^) f8 ]0 \7 G; Q
status: ALLOCATED PORTABLE# }2 q  m1 C- U; n
source: APNIC" j2 _6 @6 o8 z
person: Pang Patrick# [# i- e1 f' ~  W$ E
nic-hdl: PP40-AP7 W1 n- n+ E; c- _7 a1 c/ d( ~
e-mail: [email protected]
, |4 E5 M: U5 n/ daddress: Fl./8, South Building, Bridge Mansion, No. 53- E. F: L( t" Q# r6 G
phone: +86-10-63181513
- g% B# ]2 J, j* X1 v6 Bfax-no: +86-10-63181597- ~& U7 C5 L3 N  _' X9 ^$ J
country: CN' Y4 P& d1 A# b$ K& m4 E
changed: [email protected] 20030304) j) ]/ W4 a& u9 X4 Y) k
mnt-by: MAINT-CNNIC-AP# _/ o) k' ]# {9 c; {: S7 N
source: APNIC9 `" f& E9 ?1 F, M9 L- }) x; v
person: ShouLan Du* [- P9 O% e2 U# J; G% l% m
address: Fl./8, South Building, Bridge Mansion, No. 53
2 w1 ~2 V' l& \  E7 X8 j' ocountry: CN; E; t6 b0 O. {
phone: +86-010-83160000" N, j. k* W$ `' z5 h; b& t
fax-no: +86-010-83155528* V" _4 b* c. ~9 u# Z8 U
e-mail: [email protected]+ u5 M8 v( m4 ]- t! c
nic-hdl: SD76-AP
* @/ t- Y: x$ o' G$ Smnt-by: MAINT-CNNIC-AP- n+ j, @* h5 j5 I5 P" Z
changed: [email protected] 20020403
/ p  u1 ?5 t  M6 L7 |3 `source: APNIC4 C- w* Q' d6 w; q, D
  9 V3 K- F8 U# Q% q$ |
5、我为什么要写这篇文章?7 S0 o- ?4 K8 N
  
& }1 g. }- {' |8 c新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;% O6 }& K3 v& B& t, R1 q5 N
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。
  Z( J  K6 ?5 F( B可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。- O$ G  L- i8 Q+ {; P% R
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,5 L# v! d# _: v' k  O' L
但是现在你既然打搅了我的生活,我就不得不说几句了。8 P* X- E2 w( T1 a7 a( i+ i+ ]
  / `, K& J; M1 E  t7 l( r" B# h
6、我是谁?
: G; I, b% l, l3 m' d" p  
0 z, z5 m6 B: m8 Q8 z8 e  V% K如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。) o6 Q$ q# @( I( s3 C3 V
#!/usr/bin/perl -w
- z, Q+ U0 T* u0 O+ G9 `3 Z( suse Digest::MD5 qw(md5 md5_hex md5_base64);
: Z5 f- y- s: T0 _, Q$name = 'MyName';
. V# {  G3 d$ l6 Y+ `" w7 T$count = MyCount;- X* _* r3 M8 k( r: D
for ($i=0; $i〈$count; $i++)
# ^2 g& C9 d7 p/ ?{, T# \/ ?; D7 \* ~/ w) U
$name = md5_hex($name);  G6 i( h+ p9 P
}
1 O: E% y* s. a4 z5 T: Cprint $name;
6 I& b  {' d1 R   
' N2 y! o5 ^/ w3 t( |% @7 N以下签名,用于以后可能出现的关于此文的交流:
: }2 c, T2 v1 v5 w( V. J+ o* S1 6631876c2aea042934a5c4aaeabb88e9
/ B! n6 I$ _* K/ m  C" b% [: P2 a6a607b3bcff63980164d793ff61d170+ A- W8 u3 B7 m. c. ]) t
3 6a58e8148eb75ce9c592236ef66a3448( h9 E' E8 e& G& d
4 ded96d29f7b49d0dd3f9d17187356310
4 c# k8 J4 @# t" P  _+ T5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。, G: n0 S* ^6 J  F7 ]$ e4 U
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
& K  e$ L2 v- h. {8 }5 d0 w1 d7 \# ?
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-18 06:44 , Processed in 0.077569 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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