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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。; V  j. B) n. v+ P) u2 T
7 N# B! D2 [  i/ ]: K+ ~
' V/ Z/ Q9 P. \. {1 \
............................................................................................................................................; @# T& u* o2 Y! f: H( W+ _6 e; p

6 u! @: M3 ^# Z' e3 ]: @是谁控制了我们的浏览器?6 [# [4 K" L7 C
1、现象是什么?! C) J3 q1 \1 [7 E8 Q7 Z
  & i' M) g) f1 d2 _/ t
大约从今年年初开始,很多人就发现,在浏览一些网站的时候,* c) _5 R3 R- V, e
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
; g! u" y2 C& ~! r9 v很多人以为这是网站自己弹出的广告,也就没有在意。! ^- M) O$ }9 ^1 P1 p8 \
  
$ k2 }" U1 K: ?3 P我是属于很在意的那些人之一。
& h: R( T" |: p  / @- E* @6 K6 S+ w. w( p
2、这是怎么回事?
5 N! ~. t& \. Y5 @  1 V4 H- T+ K4 g' v
经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
  A$ r( p5 x' M与使用何种操作系统也无关(linux用户也有相关报告)。
: B! q, C3 V+ x# _. r8 _我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。* P8 s- b( Q+ I" z
  
! K1 n+ w" h  t# O: B$ e那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。$ s5 R' l. p5 n0 i; l# j, H% f
  ) G* p9 N; x: L
那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,
& J% O( h; r& R4 I. W: m* l劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。$ k2 M- o7 {$ D' q/ e! \7 O7 U9 q
  
. Y/ c7 s5 D: L; }: Q; d* Z伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。1 Q7 @- s, A0 S7 \1 H
  
8 K4 j7 R# @9 J5 p5 U为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。
* D5 e1 e0 `/ p8 k4 j% A直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。8 j4 `1 R2 e7 N. t8 j" [
我写了一个脚本。不断访问这个IP,同时记录进出的数据包。; w0 L2 N0 ?7 O& d7 [' i6 }# H, M
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:5 j- V, ~- L: q. }! h& h; t' K% q
HTTP/1.1 404 Object Not Found( K. A1 \# s3 J9 A% m/ e) F2 x
Server: Microsoft-IIS/5.03 B+ y7 x+ M8 K) _( Q; A' V
Date: Mon, 19 Jul 2004 12:57:37 GMT- C6 x' a/ O9 I8 M( m$ l6 ?! J
Connection: close
2 R7 y! F2 y! R+ ~7 |& aContent-Type: text/html, J9 r( U- C, W
Content-Length: 111
( s. f1 H& G4 |' w* T〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉5 q. c) f' F, A2 v# C" k
〈body〉No web site is configured at this address.〈/body〉〈/html〉8 }; |% H/ T7 B0 {0 d  ]
  9 A, F9 a# }! [2 j
但是有两次,返回了这个:
+ k( u5 N- N2 u: \  XHTTP/1.1 200 OK. K2 M5 p8 X  T9 p2 T
Content-type: text/html: y5 ]* f- M. e" g+ Y+ \, x3 C
〈html〉
% c  Y- O9 v# p3 m  x% X8 p: n〈meta http-equiv='Pragma' content='no-cache'〉
, q1 [9 U' z* r: J7 S〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉- e8 n' l/ E1 s7 F
〈script〉" b/ C0 m5 r: r0 |- f
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
2 x/ j% @4 V0 g" a8 L〈/script〉7 u; E, f" D( K
〈head〉  v0 U# H! O- K& Q% E+ e
〈title〉〈/title〉) \4 w! r) Y1 b/ l- E
〈/head〉( @& U8 X) F! ]/ ]
〈body〉
: D% k8 s3 J0 t) {$ d〈/body〉
. |( W* ]# C7 ]1 O〈/html〉* Z) O& w$ k1 x0 _6 [4 P
  
  Z  f# m5 V! e7 N) W更进一步分析数据包,可知劫持流程如下:% e9 {3 g, r0 s
  
: T  n" T1 C( d3 h  O2 o* VA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
8 |$ `4 E  `7 A0 z7 x1 V7 ?( K$ t这个设备按照某种规律,对于某些HTTP请求进行特殊处理。
1 x0 F; v; [7 c/ a1 u  ! }7 g  W/ E0 b* z. ^0 F( E- X
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。- x3 ?' E: J" L" k
这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
6 ?& F9 `5 z& I  w( J6 G$ }, U而任何正常的服务器都不可能在这么短的时间内做出回应。
! A- W  o3 v, |" \  
; K! H0 c. n2 X5 sC、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
2 \" s) c9 z: R/ `6 F# c2 i& f  ! c6 D5 T' q8 f
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
4 j  [; v+ a6 E$ \重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。, i% _* v8 b- H. g
  
2 F; _0 T4 y' W2 A, v在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
" h0 N/ w- C/ O- Q: [( y$ \这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。, I! c6 L$ y: I% n+ n7 J8 d  @' b# ?
  
. O  ?+ d  i0 E8 \& h0 ?: }真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。" x/ ~% \0 `& o9 A$ @9 D
    |' _2 z% L& }1 U$ n
3、现在怎么办?5 w  E# T; k) `5 z% ]5 \
  
2 i- T& M* h) w$ j: p3 T在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:8 p& V' K$ {/ `( k/ b  K' R& Z* l; J2 t
  
! O2 l9 r. k7 B4 BA、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
: C% `; Q  a+ J3 D  
  ]% Y5 F6 z5 w8 I3 I& y$ uB、在你自己的个人防火墙上,完全封锁211.147.5.121。3 ?# v) _; @5 G+ f; D
  
/ t' k: G# X" KC、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。% \4 S6 @( y9 t; c( W( _. [
  
' g+ Y8 L9 B2 i* P+ O% `$ u绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。& I4 j1 x' s, b" j0 r# |( O" F/ {7 ~
今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?, _9 {( M. R# K% k2 [
我们的HTTP通信完全控制在别人手里。
* @3 O- k( v, H2 i+ K1 }) p  ) y/ f4 c( M2 @: ]
4、如何把坏家伙揪出来?4 G$ h( k4 V4 k, ]1 K
  
% d& C  a. \$ d7 I# q  M+ X+ f如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:
' X! V/ {! u# b  Y- e  # |# j: ^) C: D1 l" Q* P
方法1:1 A7 a; Y2 V! `3 M8 L& m
  
4 v! J" `7 d# R2 G伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。0 ~, ?: |5 ?5 _- d* Z, v' k
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。. t) D; e" T: W+ m% y
那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。) x, G$ q) g9 m/ \, e1 u
只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!. q  m7 D" r* X% g2 j* z
  8 q" ~, `+ Z, M+ |. w
方法2:# m0 V/ r( b- l5 W
  0 l" r& E5 Y* _& J0 L( G& I+ `* w+ B
假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
' h- e& f% v$ [; C/ [( r0 E在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
1 D  S) G/ d- v/ J* ]编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
4 {8 P4 e5 V- {, c% ?在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。) ?3 r5 ]4 T7 N# o1 M( d
  : D' @6 f; Q; Z# e* A* Y
上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,
$ d. a& l5 o  T& a  O! }6 K* o  i那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。) W' }1 h3 R- T
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
- w9 w* ~- M# ^% H! v7 XMyIP-12-13-14-15-65-[89]-15-57-A) Z+ H2 r3 \2 D. ~; v9 I
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B# v$ b: {# N" B5 E
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C, [  m7 S, ~$ I& F
MyIP-22-25-29-32-65-45-[89]-58-D
; c/ x, ]( w1 d  
7 ~6 m/ C- E$ X- B. [/ @4 y, R显然,inject设备极大可能就在“89”所在的机房。
  r; r# H2 J; m( S. L  
5 [( [6 w) a( l4 P9 G3 G方法3:
% }. N/ v9 p. S. T5 Y$ u" }0 S2 t: g  
" p* @; j8 Z8 T/ X另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
! v$ `6 O  h7 n7 Y' S" x3 |inetnum: 211.147.0.0 - 211.147.7.255! t! h; \% X: i& b" @5 Y7 ?) m
netname: DYNEGY-COMMUNICATION
. C4 y; ]0 {  `+ @' w0 c! O& \' v8 Vdescr: DYNEGY-COMMUNICATION; p1 F" q; R/ J( |1 w4 K  [' p) v+ ^
descr: CO.LTD" C- |( i4 Q- h/ @8 G5 j
descr: BEIJING! w2 G; t* I: H6 e8 K' I
country: CN
# e% @) F# ~( V* Jadmin-c: PP40-AP
9 l( }) r6 _: |tech-c: SD76-AP
2 w0 k' W0 N& qmnt-by: MAINT-CNNIC-AP5 a; C' v) U. ~) }: Y
changed: [email protected] 20011112: Q- C! O9 y; s$ \. t9 z
status: ALLOCATED PORTABLE
% a, F: P; Z( N+ S7 B9 ^source: APNIC
  t. x9 X7 k' J! c9 u5 Cperson: Pang Patrick! [7 K6 B2 z  @' U- q/ n. T% [/ S  H
nic-hdl: PP40-AP
* X# S, v+ Q3 o9 W) Xe-mail: [email protected]: d8 T8 q# z, X) t' V9 Q' n
address: Fl./8, South Building, Bridge Mansion, No. 53
4 x3 i8 v; u& p8 b# Nphone: +86-10-63181513
/ e6 [( g# T6 x0 P9 N% R% ffax-no: +86-10-63181597
. n+ E, q' u- U( O" E+ Scountry: CN7 c2 [9 l6 [  X4 `1 m0 \* Y4 F
changed: [email protected] 20030304
1 R1 `% A. @4 k) T+ qmnt-by: MAINT-CNNIC-AP6 v4 C9 ^" F9 s& `( ^4 z! J
source: APNIC+ \" `* l: n& e
person: ShouLan Du
% u" Q% Z9 C  c1 V$ a; `: g% a  ]address: Fl./8, South Building, Bridge Mansion, No. 53
6 A4 x- u# }, v( g9 X7 G& jcountry: CN5 e  @% S% V/ s4 Y$ G& J. I2 Y$ g
phone: +86-010-83160000, I4 I% Q" d1 v
fax-no: +86-010-831555287 w7 {2 W# S, d% _8 p
e-mail: [email protected]
# [1 P3 o5 [- q/ z. f6 Tnic-hdl: SD76-AP
  l1 N2 v8 g- kmnt-by: MAINT-CNNIC-AP
% }3 v% {# I5 t: B9 z0 U: `" Bchanged: [email protected] 20020403
% W' |& Y# W% ~source: APNIC, M4 A  S* k7 `2 C. j' i/ E
  8 o5 o7 s- r, _; p$ _4 Y
5、我为什么要写这篇文章?; n% m5 N0 n2 N/ h
  
& m9 S# Q& X# H, l  F3 ~$ e新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;$ y: G: h, |9 u3 @$ g; Q
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。( `/ F: |! c" M& n+ m
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。
! d8 G5 P6 C( i/ x事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,
) Z5 d1 ?. K" r但是现在你既然打搅了我的生活,我就不得不说几句了。
( H1 v) ]' W# y  : s: K$ Y0 ]) d+ m
6、我是谁?
" f$ R2 v4 T8 ~2 @" I6 K! f! d/ @  g  
% L2 K- i- U- m/ k如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
8 `* ~6 l( g0 u" g7 v$ [% E* l#!/usr/bin/perl -w8 h# A7 e  G4 e
use Digest::MD5 qw(md5 md5_hex md5_base64);6 u; `# m" \% D6 e5 I% F
$name = 'MyName';# c& l+ L0 d- x0 T) Z3 |
$count = MyCount;8 A" v7 S1 _7 ^, M1 Z
for ($i=0; $i〈$count; $i++)  G& U; b! [( |! a7 P
{
7 U# x2 y& y6 T$name = md5_hex($name);8 P6 ^; {. X* J
}2 o$ m' E+ i6 U1 @$ C/ y9 p
print $name;  f$ i- e1 f1 i- R6 w; A7 B0 f
   
$ N$ Y7 h8 U( c. p3 b1 z# C以下签名,用于以后可能出现的关于此文的交流:
5 Y. P( Z/ {6 @7 \1 6631876c2aea042934a5c4aaeabb88e9
! K) z% }0 u6 F2 a6a607b3bcff63980164d793ff61d170
) x* m% o5 i4 x- E8 V3 6a58e8148eb75ce9c592236ef66a3448& @9 j8 L8 [7 v
4 ded96d29f7b49d0dd3f9d17187356310( o) I( ^4 I  p! h7 X3 q7 d
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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。: f" Z: w1 a" D7 n
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
  W  J" S4 {% P. v- Y7 R: v, t* T5 S* X
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-10 18:08 , Processed in 0.056684 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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