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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
/ E" [% s9 J: u* L8 V  B9 k3 a! K) e- ^% r  R1 s. P7 q

% B9 ]( D+ j- H: W, j............................................................................................................................................2 f# I/ C$ i) I. |4 a7 R
. |: V2 p4 O( g
是谁控制了我们的浏览器?
$ q/ v( k: v% t3 b7 ?: ~3 F* x
1、现象是什么?
5 G3 `, r0 O% `* ?8 L* P- d1 p  6 f9 H8 D* a" Y
大约从今年年初开始,很多人就发现,在浏览一些网站的时候,
7 ]% S- H& h8 P' u/ _8 m3 R2 ]/ e/ Q地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
  G1 U% n3 d- m# y很多人以为这是网站自己弹出的广告,也就没有在意。
2 l4 h+ Q; X1 E8 J6 m, e  
. F! [$ x' v% L: Z我是属于很在意的那些人之一。  E, p0 g7 u7 ]) `2 b
  0 L3 T1 [' }0 z
2、这是怎么回事?; j$ v: {/ k! ^- j0 h
  ' L* s: r  y0 t
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),8 H  f( a5 k- D/ z
与使用何种操作系统也无关(linux用户也有相关报告)。
' c" P, @5 S1 \/ z' b3 r' E我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
9 O3 Q* w6 S2 D6 n  " k/ V; u! J5 z7 v# Y$ s
那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。
9 c0 W4 _8 F' h; b  
, i9 i" h" }; t2 f. {5 A3 Q那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,) y+ O  ]" V; Y9 I$ _& s4 O
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。- I  |7 P0 q. b9 W' ~
  
0 s& d& @& k1 F% `3 S" h: I伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。
- b5 [3 I) y4 j  
9 ^, `' Q) h/ k* K7 y, A为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。. L2 U. ^4 D: d; m- Q
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
" u! \3 w* _7 s, c3 o; f1 w  A我写了一个脚本。不断访问这个IP,同时记录进出的数据包。
9 L3 ~6 w6 I* o" M6 }/ k在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
: w- ^* S+ i  |( Z' xHTTP/1.1 404 Object Not Found
' `* W8 T6 A% c  hServer: Microsoft-IIS/5.0% Y: ?. G' }) c- q( O
Date: Mon, 19 Jul 2004 12:57:37 GMT3 v( x6 e2 Y$ T; U: ~. B1 s
Connection: close
( _1 f. i  m& k% O. ]& ?Content-Type: text/html; D2 Q2 R6 S" l, Q4 v
Content-Length: 111
# @& M3 u3 N" p+ n〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉$ X0 w2 [( m8 {# M, r+ Q6 s3 q" F
〈body〉No web site is configured at this address.〈/body〉〈/html〉/ r1 M: \0 L" e9 _; w
  
$ v' g2 _( J. c( Z; ^& E但是有两次,返回了这个:
: V. y. M. a: JHTTP/1.1 200 OK! p/ g7 ~4 h6 u; ]
Content-type: text/html6 c/ v7 D' P$ ?9 j; i+ m9 |* K
〈html〉
7 ^% H8 \9 n! S$ F〈meta http-equiv='Pragma' content='no-cache'〉# k. f$ j8 p. [. C, s
〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉
$ l* P1 S5 K2 F/ j+ E% D+ t4 v. B〈script〉. ~! R! V+ g2 c; ^
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
+ l! D- b* o9 l  B: a2 x〈/script〉
: w: M, o% d% s8 w〈head〉  z1 W, w/ j7 @) P  ]- I! V+ C
〈title〉〈/title〉) e7 m  L  Y9 l* x5 z. C8 u9 Q" n
〈/head〉2 k: T+ ?1 T: N* N0 h
〈body〉% g# b' N; @1 T' w
〈/body〉
2 m9 K6 K9 ^: D! y〈/html〉( g, i6 e" a4 f( l( i/ |
  
& T; U4 U5 q+ G" u更进一步分析数据包,可知劫持流程如下:
' r: e2 h: @0 D0 W0 X  % i$ m' U6 ~' `& z# j6 L/ s8 B
A、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。$ S4 A0 ~) Z# C: r3 ]
这个设备按照某种规律,对于某些HTTP请求进行特殊处理。# v. N% O0 z. y: o' W  o
  1 B. _/ ?4 [5 V! T
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。! l9 l) Z8 W* M# t, D" j  i6 I
这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。) R' l  u* E$ H3 W; {1 Q
而任何正常的服务器都不可能在这么短的时间内做出回应。5 R/ p5 d2 {3 c' i: t  k
  
$ `9 [* B7 P3 h( J/ Q' D% @3 D' CC、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。% h2 `; K9 v  s: b6 G
  * }9 o5 {. V$ B5 W. p/ A& p
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,4 R* M0 e7 L7 ^
重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。: `  {& j: X+ Z7 }/ f
  1 S$ e- \# m4 s8 v5 W2 C
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
) _3 @7 v8 }, `9 e! F: L这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。/ Q, O" ?# d+ |( E% c8 ~$ U
  4 I& e, a1 ~! x* `+ X) |+ k2 x
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。
. L' W) Q" G7 C7 g" w5 C  4 O# F: d9 g1 f  e! D' e, F! o
3、现在怎么办?' D7 c4 ?( z  @9 z/ E
  
: r, {/ Y! _( y: F5 ?在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:2 _0 U. Y) g4 v: x! X
  3 D9 W9 _' C, H* C
A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
& ~% h8 c9 Y7 n! Z% d  ~7 d  
: J$ N/ i# P- N* YB、在你自己的个人防火墙上,完全封锁211.147.5.121。7 z' t+ {1 X& P0 D# T$ U
  / U" z7 K2 Z4 s8 U# |; T9 _' [
C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。1 U$ y5 Q# U4 Y8 ]# d. y
  
0 l6 N3 \. S% y$ K% c; G绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。3 t1 G9 p% C  l9 ?5 D- x* S/ w
今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?6 ]0 g' I6 n0 C) Y* g
我们的HTTP通信完全控制在别人手里。& i; k! H# ]8 D( F
  8 M% I- j0 W1 x2 x3 K6 H# S
4、如何把坏家伙揪出来?
1 f" r4 i# ?" V8 s3 i' e* K7 X  " c2 D6 c' Y% E$ z- O& I
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:7 S( u7 @0 P$ A& x4 L3 f$ j
  , H0 q, n. x" u
方法1:; Z: B. }$ U  L* X- D
  ! v6 V6 |3 j0 J2 D' t- {
伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。
! J0 |' X" F) d7 ~& S  k" N以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
7 C; @' J. V: {) E6 }. i0 u那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。. Q% W. E  N! _) w; U
只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
4 C+ r( D+ \/ \2 ?) u3 @0 Y2 t  
& {: \% {1 s! u: o+ N方法2:- V; f' }. \2 t
  - B! S; ]% K6 K: J6 H, I# s
假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
% h+ f5 f$ R& L在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。4 @. x0 V1 s2 E# ^0 e
编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,; a) |6 C4 {0 [
在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
2 `$ T0 h* y$ y8 w3 L7 o  : Y6 `0 i; r7 d# t7 G" U; A* k$ R
上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,
' E1 j% l, l! G9 T3 u& c9 @6 }那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。$ j3 i* ~  ?4 H' Y3 J1 o8 l- J8 @
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
  c- }7 f' _7 aMyIP-12-13-14-15-65-[89]-15-57-A2 L" }3 `/ J0 Y8 L* u0 D
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B
  f3 R% U) x: c% i4 hMyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
( v3 C  L& }, I8 B% a5 RMyIP-22-25-29-32-65-45-[89]-58-D6 F/ }* e/ _! c% v, i" W: f; h( B
  7 |/ G, {8 A/ e9 Y. b. Q
显然,inject设备极大可能就在“89”所在的机房。0 k( V- [3 ~) X; x1 _; m1 I4 ?* b
  
. z4 w$ J$ s9 u6 r( G; |方法3:* u" A& [* U- y, s3 p# v. ^
  
5 ~7 [8 N. g* n5 `# X9 ^另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
; K# O/ f$ {" Jinetnum: 211.147.0.0 - 211.147.7.255
) R, c7 r9 l4 q( d! F, `2 bnetname: DYNEGY-COMMUNICATION
1 _' _# O% h- n! j+ K! ^" f# edescr: DYNEGY-COMMUNICATION4 ~7 j; @) [/ a% |
descr: CO.LTD- h' G6 ^! A6 }# F
descr: BEIJING3 @9 k; b7 }3 A- O: |
country: CN
# q5 A2 q4 t7 Y; H( D& H' nadmin-c: PP40-AP' W# s, s; t$ j; q! N8 F
tech-c: SD76-AP( ?7 M3 _; V) u
mnt-by: MAINT-CNNIC-AP  u1 U9 @# k- s6 Y' w
changed: [email protected] 20011112  N) }: U9 g) I5 Z$ r
status: ALLOCATED PORTABLE( a6 V1 W% f% c: R  }" T
source: APNIC: _8 [! e. B( C% T1 f; ?, i7 ]
person: Pang Patrick: a6 z: K( n7 L8 e$ B6 i
nic-hdl: PP40-AP
+ F7 R6 b/ E" J2 `e-mail: [email protected]
  }1 }5 s, L8 t% v7 z; q& y+ Uaddress: Fl./8, South Building, Bridge Mansion, No. 53. X6 p# h' h% W! f
phone: +86-10-63181513+ U3 `' \- p4 K2 @
fax-no: +86-10-63181597
3 S5 l! a5 u: [2 \3 h  Xcountry: CN3 Y+ z, {. C9 x* u% P
changed: [email protected] 20030304
1 _' M# X5 h1 Zmnt-by: MAINT-CNNIC-AP
: t- [6 F: R$ T( h/ \! q( fsource: APNIC5 U# H  n8 B2 x! H
person: ShouLan Du
5 _; a7 i4 y0 `; Maddress: Fl./8, South Building, Bridge Mansion, No. 53' m$ {* w1 ?6 B$ v: |- l
country: CN' f7 A; E4 _  f% g$ d. @3 [
phone: +86-010-83160000
; Q5 U# t# |- {  p1 l/ ^fax-no: +86-010-83155528
" e2 \. ?% [& q% p  Re-mail: [email protected]
$ w- Z$ ?8 X; `, `" unic-hdl: SD76-AP
# l8 E3 q, ^+ X5 L6 q, D9 e. vmnt-by: MAINT-CNNIC-AP" ^* P, i0 u. I
changed: [email protected] 20020403
" t3 y& G% X2 \source: APNIC
. C  ?* @  X8 Z( [8 N% Q( y9 @  
2 E0 ]" H' O( K0 R& m8 y5 ]8 K5、我为什么要写这篇文章?
4 x& X8 u$ p# J3 Z4 o+ U) D  5 m! l7 b" X, w1 C
新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;
9 V- Z5 g3 b. L& y' s$ g& ^或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。
+ w' C! G( l* X  E( Q1 w可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。
" X! ?) `7 ?+ l8 H, Q* [- ~' n事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,) _, F. V7 M7 c! `  _4 Z
但是现在你既然打搅了我的生活,我就不得不说几句了。5 N, Z: d6 s5 w" B
  ; P9 Y# a% N! r) ?' \: u
6、我是谁?
+ T% p/ b5 z( W6 L1 g  
; ]3 I& l4 f( g" |( s' E+ P  o如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
) P! U/ ?7 F7 ]8 p" C; c$ o6 p#!/usr/bin/perl -w
: b9 l! d4 B( u. Q7 f$ Tuse Digest::MD5 qw(md5 md5_hex md5_base64);
+ E( d3 V/ A& v1 w6 ]" D$ Z( a$name = 'MyName';! o6 q4 T8 Q1 _0 v+ a* b
$count = MyCount;
' g3 f; y1 E: Q: wfor ($i=0; $i〈$count; $i++)
6 n3 b4 b2 T9 R, _: N$ y{
7 g% b: H' G- {8 }1 C* ~4 k$ Y$name = md5_hex($name);
4 A+ F" b. \' a}) T9 ~+ i& v7 g9 F1 z  j. ]
print $name;
  ]) |4 R0 Q( m; x$ x9 P   
7 d! j$ p. [7 W5 f& L以下签名,用于以后可能出现的关于此文的交流:
9 y/ r' m+ e# s/ o1 6631876c2aea042934a5c4aaeabb88e9, o' G& s# M7 Q" T) x
2 a6a607b3bcff63980164d793ff61d170$ L8 g" {3 `# f, l8 L# F9 j2 N, z
3 6a58e8148eb75ce9c592236ef66a3448
& j$ d& _! T; X5 ^( a4 ded96d29f7b49d0dd3f9d171873563105 M' @0 y& g5 H9 f. Z, K" ~9 X
5 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$ S0 ], |1 z( h$ E: Y9 B
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。3 C$ Y; a  L6 ]) @8 e$ C! G
/ o" M# T9 V/ {2 ?5 C/ A: Y
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-2 09:46 , Processed in 0.062795 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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