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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
  `' Y0 g8 w. B/ }2 R5 p' k4 e& ?: [- t+ L& x
9 v3 J$ B" \7 E5 Y+ s5 k
............................................................................................................................................
) t+ \% z7 s; g) x' g
( |0 P  `' C: p5 t. U8 a, k是谁控制了我们的浏览器?  [/ Q6 v, A4 }$ h
1、现象是什么?
' o1 Q) M5 j& H, r/ C# o  1 i) o, H5 O( s7 [8 Q5 u# x; H
大约从今年年初开始,很多人就发现,在浏览一些网站的时候,4 p& |! T4 _' A/ [& T, ^3 f
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
6 e) R8 x2 {8 Y很多人以为这是网站自己弹出的广告,也就没有在意。
3 V$ p" M* V9 E  ^1 X/ V& ?( T  
* S  \. R2 ]; p我是属于很在意的那些人之一。) t. p( i# E# Y6 l5 P5 S' ~
  
5 J  y2 A5 R$ p8 B; {+ y2、这是怎么回事?/ W1 J" t) Y5 h. m6 O& B3 e
  
% t8 O8 I9 a5 X/ w; z2 h经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
) x( T; a0 G8 |; F6 a! q$ A/ R与使用何种操作系统也无关(linux用户也有相关报告)。
3 U. Q7 v, }" @我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
+ i  v# l: V+ P$ Y3 T. ]  
2 D* w. p: M, z+ j9 N那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。" H5 W3 N7 w1 {0 I; {
  
& k$ |$ [( Q3 o/ p; `那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,* b: y+ y3 T6 Y6 Q6 [& A
劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。. E, `+ ]  [( R5 ~
  
. w+ C0 P$ G" ?$ `' y5 \1 W伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。6 J; m8 a9 l: D! Z- r6 r
  ' j/ ?- ~* v9 h' n
为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。  ^0 {* T) k. w0 Y; F2 S
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
( `9 o8 }! N+ M) f0 }$ B我写了一个脚本。不断访问这个IP,同时记录进出的数据包。+ {5 L  L( _. h
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
) n* \& P$ ^2 nHTTP/1.1 404 Object Not Found
+ U6 w) u0 u# Y9 Z1 o5 eServer: Microsoft-IIS/5.0# C; O! D4 O! U0 s& n- j; J
Date: Mon, 19 Jul 2004 12:57:37 GMT
# t5 R+ y6 N8 v4 J/ Y" dConnection: close
2 g8 h% T( a* b  CContent-Type: text/html5 V5 G2 a; z+ w: o0 N/ u
Content-Length: 111
% h. Z# L( E) g〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
; n. x. _! S, A& o〈body〉No web site is configured at this address.〈/body〉〈/html〉
0 z" F. _2 D" r: m8 x+ x  % h& W" A9 t9 y8 v
但是有两次,返回了这个:* `- K5 P# w4 ]: M
HTTP/1.1 200 OK
: S! M4 P8 I/ XContent-type: text/html% d" `* g, g+ S) }9 b9 Y3 H5 Q: a4 d
〈html〉
0 o/ w$ O  L6 V, S〈meta http-equiv='Pragma' content='no-cache'〉
. J: V% L* ~* [2 R; g  K3 ]〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉2 g0 V' i+ Z5 G5 x* \
〈script〉) @$ J0 j2 F8 }6 i: U7 ^; p- a
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
2 N+ ?% @( w6 J/ v* B〈/script〉! F3 D; P% f! v
〈head〉# P/ D# |3 I+ j
〈title〉〈/title〉( M1 U4 p, Z% B/ w4 g6 \
〈/head〉7 A. a  y6 A7 U
〈body〉
+ l  q! X: }8 O7 Y! I5 v8 y〈/body〉
: P8 ]2 I7 I# k4 |〈/html〉$ G- h, n( z1 |: r  A% A
  4 k+ a, ]1 G8 G9 C" a- n
更进一步分析数据包,可知劫持流程如下:
& k0 i/ H* S, B  q1 D/ e- ]  
  s' K9 D! h( G2 [4 r" b! L2 X3 q* @A、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
4 s/ q1 C1 O4 L0 R; s这个设备按照某种规律,对于某些HTTP请求进行特殊处理。
) P# I5 ~6 o; L6 `! ~/ U) d$ B  
+ _, c0 ~  e8 F% wB、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
3 w' Q; g/ N/ O8 a2 j1 \0 d4 S& f这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。3 E& p# X$ k' }3 |$ m
而任何正常的服务器都不可能在这么短的时间内做出回应。6 F3 Z+ U& X  I3 X
  
$ m/ R% R' t9 z& y0 C# B: ?" |C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
* a+ Q+ c$ W1 T- ^! ^* \( W  2 }! r7 e9 L5 ~0 M
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
' g+ O2 `. v' v# T- }重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。* u, t* u# f5 y- G( w
  - `% b* @1 O! O7 ]3 x
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站," t! P5 }2 c" ?
这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。  h0 R& v5 r( T. c7 c5 T
  
3 b- V8 U. U* J: J6 {0 y8 e真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。  f7 ]  H9 N8 G
  0 U+ |+ G/ @4 [0 D* ~! _  R& J- O
3、现在怎么办?
  ~' }4 z. T4 {* h" G  8 @, D7 C* G. K  U! G( @. g, G
在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
* P5 W5 L2 l! m, B" D4 r0 e: J+ Y  " E! p$ o" g7 v
A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。! L# T, ]0 s+ ?/ B" y9 x
  6 z! {' \9 p- |" }
B、在你自己的个人防火墙上,完全封锁211.147.5.121。
9 g% ?' ^- E, w; Z, w: [  ( R0 r  _1 R3 P+ g) a" W
C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。8 d- n+ w4 T+ l: R
  6 \. C  z3 \; l: _
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
% ]1 n2 |5 L7 c/ G1 o* r# f+ h今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?
. B/ t* Y/ j* u; c: Q我们的HTTP通信完全控制在别人手里。
0 R) j. L; [7 r6 @4 z  ) H) a. }4 p/ H+ d2 Z. T% ?
4、如何把坏家伙揪出来?4 h/ d" J# u. e# P, m
  9 q% d6 r4 D* r9 j
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:$ I; q8 d! J# v0 d# m5 ?$ ^$ Q
  % n1 ~) f" `+ Y: K8 S. {/ t
方法1:% y# D# J& h5 W8 d
  
8 _2 o1 D: O  q+ Y伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。
2 B& |! T# U. ?以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。: e7 {! o8 \# P2 ~5 P
那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
* G1 j& m" F. `+ {6 a只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!: }( J: V% G5 z6 r" L2 K& n
  
/ x2 s  I# o; s' P. v$ w3 O方法2:. N3 X0 x) i$ k- y
  
+ U7 |; q" Z& G4 w1 [4 \9 |假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
, a  g& U& @' R% T$ N( @% W在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。) ^6 \8 k+ W7 f( w/ K; O
编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,
9 q7 |4 P9 L6 W9 n在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
. G3 N+ Z$ d) h8 b1 P  2 N3 f0 f" ]% d' U$ t7 {
上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,2 t4 ~9 _+ J2 C; z9 ~- _- s6 K) \
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。8 C3 h! c  x- l" V
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:, @) r( B: a4 A& c( Y! `
MyIP-12-13-14-15-65-[89]-15-57-A4 U9 M  ~3 r  f. r
MyIP-66-67-68-69-85-[89]-45-68-84-52-44-B" d/ _# {3 k2 k" @1 h: [# o
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
0 K: Q9 @; E0 v' qMyIP-22-25-29-32-65-45-[89]-58-D7 D/ H' v5 [/ b5 e
  
. J2 k+ {. L( N% S* W( N8 r! L; _显然,inject设备极大可能就在“89”所在的机房。0 @2 X1 y' u6 V% T2 w1 Z, H" D& K$ W" R0 @
  ) i( G, X+ X& M- [/ a" T9 Z
方法3:% A0 _9 @6 q# r5 D" ^
  % M  i' s3 d* x! w; d" D
另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
) v- j9 Q7 C% M5 f( K4 R, ^& Linetnum: 211.147.0.0 - 211.147.7.255- b& [1 D: q6 C
netname: DYNEGY-COMMUNICATION$ X: _# S! B" \
descr: DYNEGY-COMMUNICATION' e& M! J" S# `2 O7 h- n( l4 T* ?% U
descr: CO.LTD5 ^! `2 {7 |4 b4 D
descr: BEIJING
) ]* d) [, l: Z! M9 Q" e! \country: CN
9 b* o! O- W0 ]" S/ P9 H9 C& k" l  ]admin-c: PP40-AP' z0 b8 s9 }! J( h! Q) W- f
tech-c: SD76-AP  u9 {# S+ X& M% D& ?
mnt-by: MAINT-CNNIC-AP
2 j2 V7 j' K8 W3 ]changed: [email protected] 20011112; @4 R) a/ G+ f1 @" D
status: ALLOCATED PORTABLE
& h/ y8 g: G; }, k+ J! H# R6 g1 Rsource: APNIC; }; w# M" L/ B/ r3 \
person: Pang Patrick2 k% J9 U) {9 ~0 w) B  d+ T- T/ [
nic-hdl: PP40-AP
& f6 \+ p3 j) K! A( a; O' l( ae-mail: [email protected], o( P: ]! [& \
address: Fl./8, South Building, Bridge Mansion, No. 53
! C2 D8 ]/ a* [7 S" J* Fphone: +86-10-63181513
8 s9 U8 n1 `7 sfax-no: +86-10-63181597
' ^) R2 t8 b; x4 J* O  Dcountry: CN
' C, W. A* R6 d& _& Tchanged: [email protected] 20030304
# L* [8 l6 E) ^7 t: ]6 qmnt-by: MAINT-CNNIC-AP! ], b4 {" R8 \: o1 L' ?
source: APNIC; b# P( }3 E% x1 T# ^
person: ShouLan Du
" @! @+ t8 E5 b+ Z1 u( S* haddress: Fl./8, South Building, Bridge Mansion, No. 53, M' [! C- j, I
country: CN
% G6 P9 J& g. s( v* Z/ Hphone: +86-010-83160000
  x2 \; d, x, K+ g# `/ [  ufax-no: +86-010-83155528( [# l& R% a4 ~" ]. @
e-mail: [email protected], o+ C. z, h; [6 x
nic-hdl: SD76-AP
3 O+ W! E# B+ n! Vmnt-by: MAINT-CNNIC-AP: X) ~+ q- d$ f$ D" Z/ Z
changed: [email protected] 20020403
1 z8 [' ^- d7 b+ B) A/ j) Tsource: APNIC8 x- }: U& D5 c' r8 N& k0 l  N7 G
  " ^2 }' _* j2 H; |
5、我为什么要写这篇文章?5 n# S  ?  u& p/ R) {
  7 c/ ]; G, j. A
新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;& u% Q$ w" j9 w7 i: S3 n5 k
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。
' Y/ M0 H' `9 l2 c/ s9 `可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。
! n% L" ]+ K- S事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,$ G- o  g3 j0 ?/ o
但是现在你既然打搅了我的生活,我就不得不说几句了。
' {$ \, y' b6 _! L; ?! N  3 S& ], m6 N6 O& P3 M( Y& \
6、我是谁?
' |1 Y7 N) S0 o' w8 ]  
6 \& g  w/ b- C' K如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。& X& ]) v' d) n5 V- }$ t
#!/usr/bin/perl -w) x. f, \( o5 Y$ E6 y; a
use Digest::MD5 qw(md5 md5_hex md5_base64);
" P6 J$ I! W3 Z) D+ t$name = 'MyName';+ V: H! Q/ R5 r$ t% }/ M) y/ i2 q
$count = MyCount;
6 |/ f! R5 h1 Q. m9 ?for ($i=0; $i〈$count; $i++): E5 n' g! ~1 Q# `8 B' A8 G
{/ _" j7 p' C3 H# ?& W1 X
$name = md5_hex($name);: Q* [7 m3 z% m$ L, D0 v3 t5 u: j' ^
}
0 A7 Y! ~: i* {5 N* u! Qprint $name;
! B1 a- }" J2 N- {: G: t  l. E   
: f8 u7 x$ a2 z2 t7 U) ~( s9 P以下签名,用于以后可能出现的关于此文的交流:, e& }( ~5 I3 |# i2 I
1 6631876c2aea042934a5c4aaeabb88e9
, I) \5 [, I& K; z, c2 n2 a6a607b3bcff63980164d793ff61d170, g( v( ?! U5 |; o0 k; u5 g( J
3 6a58e8148eb75ce9c592236ef66a3448* C$ r) q- u0 Q/ S  {4 U" F0 `8 ^
4 ded96d29f7b49d0dd3f9d17187356310
4 x5 W6 m/ G5 C4 i" s+ S5 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( d$ X7 G# [: Z$ @7 R" x总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。# z3 \1 v' j" }* M6 T

8 C: V2 m- E5 n/ z4 }4 `+ ~rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-5 15:08 , Processed in 0.059172 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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