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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。; D& [- H( k+ v3 a; h9 `) L

9 ^0 w2 ?$ ]; F
$ q% i  K: x+ v5 |) V............................................................................................................................................0 q7 ~% R+ m0 W$ M5 w; z/ a4 |
( o! n& H5 [# o
是谁控制了我们的浏览器?
) r0 ]3 @$ c# X/ v* L+ b+ W' G
1、现象是什么?
4 K' z7 `. t. i/ R  
; \3 H. k8 X* g  B- g- W, e大约从今年年初开始,很多人就发现,在浏览一些网站的时候,% x) f# ~9 w& }2 a2 P: l* Q
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
. A: _, S5 k$ [) @) u/ q/ p7 Q0 u& p很多人以为这是网站自己弹出的广告,也就没有在意。& z7 v% |- p7 S: f
  7 z' X3 P' x' W2 J/ `- s: P
我是属于很在意的那些人之一。
* _1 X; {0 h% L; K2 K1 G( x) g  + H8 G0 z( M- k. c
2、这是怎么回事?
; s$ B6 K$ q" `" V: H: X  
9 n8 m$ O2 ^6 q( _' |/ n经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),2 r7 D; Z9 n6 q
与使用何种操作系统也无关(linux用户也有相关报告)。. j+ ]/ Y8 ]; p
我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
) J! j9 O! ~. x$ @7 S7 s) \' @  
1 p  c1 {& u+ R: s( N; D% ]! `那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。
% l$ }- W& _1 w+ [; m* S! K+ O  1 ?" [6 S$ c+ L5 d
那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,
2 v2 ?' L" `$ g2 [3 s劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。
' h1 V# D+ t3 k9 ~$ H  
4 |; C! V4 {3 y4 \0 c. M伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。5 `, }# H* n. C9 L% @. V: F
  / l) S( b6 W% K6 V% o0 ~
为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。, }, g8 E: f' g& X. c
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
" S1 W1 ^4 I! B! Q/ ^+ z我写了一个脚本。不断访问这个IP,同时记录进出的数据包。/ b3 R- p2 J+ e" l
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:7 Y' P8 o/ s9 g9 |( S! s( K
HTTP/1.1 404 Object Not Found
/ I3 U; O$ B" X7 IServer: Microsoft-IIS/5.0
8 p( N5 j; M# H. wDate: Mon, 19 Jul 2004 12:57:37 GMT
: Q" T( `. G: JConnection: close% i/ y/ l7 s3 {4 A! k2 N! n
Content-Type: text/html
* V! k; Z4 x- h* G: N6 ^Content-Length: 111& ~, h. a' H& I# z
〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
$ N! A8 m$ Y! T* J8 h〈body〉No web site is configured at this address.〈/body〉〈/html〉
0 b4 @; ?9 D1 D  
2 q: C7 {% b. l8 X6 L0 R/ _但是有两次,返回了这个:9 |! T: `* X$ c$ C. X# e* \
HTTP/1.1 200 OK8 B' F7 D+ F6 J0 ^/ B
Content-type: text/html+ C8 B4 w3 G) k% L# u
〈html〉! v6 K. T1 s/ r9 v: B7 f
〈meta http-equiv='Pragma' content='no-cache'〉
6 {% H2 }8 `! N9 I9 P〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉; c' v% L* I  ?9 I
〈script〉" J+ Q9 C# x9 Y; {
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');; [' x+ D1 k& E- e( M6 B( L/ [
〈/script〉) S. v# N% R5 W# K$ a5 d' o
〈head〉
! l7 W; H$ x1 g〈title〉〈/title〉6 M; T" Z9 n; D% [. m( }& P* S
〈/head〉
" {% S6 ]* B9 W9 R  q〈body〉
* u5 c5 e, D$ I) J0 O# b〈/body〉# Y$ o8 t( u# Z: C9 ~  l+ [# b
〈/html〉; G" Q9 _; {) g: M+ `( r- i
  
7 d$ C1 ]  y+ C1 ]更进一步分析数据包,可知劫持流程如下:, R8 r" z0 [/ V/ J) c/ Q
  
* o0 S2 _$ q0 c: b! ^6 r3 {. aA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
9 W0 [3 Y2 l' R& A& i4 W/ A% s这个设备按照某种规律,对于某些HTTP请求进行特殊处理。1 L/ ~6 z* I# I
  
9 P- q* r. e& L: lB、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。7 x2 E2 |2 R: b6 ^, D
这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
" }( d# ]" p2 z7 T4 O0 g而任何正常的服务器都不可能在这么短的时间内做出回应。
' K! t, z5 J3 U2 X, u. `  & ^1 g; B$ r+ g1 I  E; C5 u
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。
" D6 s. Q% }0 R  2 }6 |! T6 m. V8 B- M
D、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,- A2 T' J! V8 j1 }9 c
重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。2 J& A! t7 l( Y1 Z, _
  
$ s- T( t) d5 P2 m% L在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
. B; ]5 {% Y9 l8 D" n1 X这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。
; e5 @9 b) w" h7 K5 b  d  
9 `4 T# ^/ x, P) ]% H) W4 I* u$ J真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。  ^6 x+ i+ s) O+ {% G
  . A2 Y- a7 R& K" j; O" g" x
3、现在怎么办?
( o5 e, Q( L/ g* r9 Q# B9 S9 X  % W6 j) ]7 L% ?  p$ j! h% I
在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:+ z9 v2 r7 J- g  d
  + o+ d2 _4 j4 N+ H; D, j
A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。3 R; z$ g& u! _
  
6 f, ]  C- c5 `$ R# \; ?( q5 LB、在你自己的个人防火墙上,完全封锁211.147.5.121。
( r. `. w. p7 `  3 e- U! s3 t3 b" }5 E
C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。, ?5 b8 w7 R) M1 a& N
  / ^. c  s% \% A& Y2 V
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。0 n6 d% }9 q5 Q0 j' l6 G& V
今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?( O! K5 k  Q; a) U+ k" n# a
我们的HTTP通信完全控制在别人手里。6 N" C8 a0 Q. h2 `
  
& T+ L! @6 ]. z0 V$ N9 q- M" N4、如何把坏家伙揪出来?/ ~# @4 ^6 I9 f2 i" w
  8 {: n& d* _7 u7 n- y! h! S
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:
" b* S( {0 @0 d3 R3 z' X) `% r: \+ f  w3 o  
6 U  p6 ~! q8 i' P" r: M! n方法1:$ R5 P' E8 c* i7 ~/ ^
  
" C( d) m" W/ z3 ?$ ~" k1 K伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。  j- A; d/ w" C+ ^' m& R
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。3 W( }/ X" K* R3 h
那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。: }* j$ @1 g4 X- }: @- k
只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
# X! n2 x2 K) c( w$ s8 z2 r7 G8 I% p  1 K* a3 c9 n% k4 x) Y
方法2:" C. t" r4 Z) Y- X' o
  
5 T; C* a) ?; A0 S假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
3 x6 W- \  D6 p* g* S$ W在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。- k. W0 @0 y- a# N! T8 ~) `
编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,0 l3 o0 T! u. e- h& h
在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
+ E1 L' z+ ]1 a' ^6 g! [0 ]  
5 m) _9 X! v5 \& S. @# x' I! s) G5 ~上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,; @: q- r( D3 I  _
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。
: i7 z5 _3 K" H9 J  k; e8 T例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:8 U* j( h+ U3 U
MyIP-12-13-14-15-65-[89]-15-57-A
9 e. A- p+ C$ q/ o* j$ k, CMyIP-66-67-68-69-85-[89]-45-68-84-52-44-B& P" L) q4 z+ r& k
MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
& I# @) K: s! `# `1 r- m. `MyIP-22-25-29-32-65-45-[89]-58-D
& U- ]9 U4 m2 H/ J- o: Q  ( V8 \) O: ^+ V' e5 A; Z0 K  h9 D
显然,inject设备极大可能就在“89”所在的机房。
- r7 a( S! N: c0 w8 ]  
5 O& a2 I3 o/ t% H方法3:4 K, Y+ L  E' b3 ^: z5 \* \8 E
  3 A9 h7 ~9 @* I! V  K6 c2 t+ H. L
另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
/ `0 A6 P& m$ Q& l. G2 Binetnum: 211.147.0.0 - 211.147.7.255! f, _" {- c; L! z: F8 @. S
netname: DYNEGY-COMMUNICATION
6 e0 F$ ~: P5 {8 \* o% Zdescr: DYNEGY-COMMUNICATION
8 x" p; I& q1 l0 w, ^, \descr: CO.LTD* X0 Y9 r; `9 V; S2 T
descr: BEIJING
  Z% P/ K5 @$ Z- P" Jcountry: CN
3 O) h1 w& G$ Y2 padmin-c: PP40-AP4 {8 D; Z. M9 p' Q2 R( J
tech-c: SD76-AP
5 ?8 X( P+ e- z. l0 C4 n: d: p7 j! b+ m6 Hmnt-by: MAINT-CNNIC-AP
$ I0 f( Q8 Z" T# schanged: [email protected] 20011112) C) p* j( S5 m3 `8 x& G% k
status: ALLOCATED PORTABLE
$ N/ r+ I; U" X4 k3 @# d# Gsource: APNIC
) U$ V% G% s6 ?person: Pang Patrick
6 L" d. \- J! rnic-hdl: PP40-AP
$ F6 F) Z. g1 Ve-mail: [email protected]0 c! N6 \' F0 K' _. F, ^  d9 {
address: Fl./8, South Building, Bridge Mansion, No. 53
: S) e! y- S: H6 Q) k! M7 Nphone: +86-10-63181513
& {+ T/ Q$ U! x9 L5 S2 Sfax-no: +86-10-63181597
- t- Z2 h4 f& k% {7 j+ Ocountry: CN6 ?) M; O+ y6 E
changed: [email protected] 20030304
: @, n% o0 x( t1 v7 V5 wmnt-by: MAINT-CNNIC-AP4 I) U( c6 C" J0 Z
source: APNIC
6 b$ [$ [7 T" f1 F$ ~. P3 vperson: ShouLan Du* S2 r* x( W5 M% o9 @2 p- G
address: Fl./8, South Building, Bridge Mansion, No. 53
9 @( t0 J5 J8 k. n- |country: CN* b. s  c0 h& d
phone: +86-010-83160000; ~6 k7 v+ K$ @( r) |. L) `
fax-no: +86-010-83155528
& w. W* Q& R  L. K% U- [e-mail: [email protected]4 a# O7 |) f0 C" {( s
nic-hdl: SD76-AP8 U6 z- J+ O5 ]9 D
mnt-by: MAINT-CNNIC-AP
: N9 C+ ?  p. Y2 [: k& b( Xchanged: [email protected] 200204030 N4 x  V+ M1 B. |- \7 n* ^3 f
source: APNIC
4 M" D4 U" p8 b5 @- n& L  3 o: R9 g* ^8 k3 V5 B- l! l0 n
5、我为什么要写这篇文章?
8 e8 H  r  r( W  / Z. i' e$ `' I3 N5 l
新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;' g2 w  z" ]3 X3 ~' G4 ?0 h" M
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。
) ?; C$ w* j4 Z. |8 f* N$ e+ E可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。& v2 b! G5 Q3 V: H
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,9 |/ [0 K0 U( ?( W; h" A
但是现在你既然打搅了我的生活,我就不得不说几句了。
' S8 v# Q* F/ a* V* v. k  
" H* Z# w# i$ ]2 `# c$ @  g5 d6、我是谁?3 V# y5 j7 P4 I, c+ j/ G, ?1 A) J' L$ r
  : Q! f; }# e. g
如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
" ]6 r$ Q3 v5 [+ E#!/usr/bin/perl -w3 H: e' n: V; F% G: T  F
use Digest::MD5 qw(md5 md5_hex md5_base64);  \: F9 N8 S2 \- Y. \
$name = 'MyName';' ~" G* a8 M, m# g: j" B& c, f
$count = MyCount;
$ Z5 W2 k3 d7 H4 Dfor ($i=0; $i〈$count; $i++)3 ?5 _; Z- V6 C' d; T; p6 Y
{4 H0 K4 l9 l: R# Q" P1 U3 g
$name = md5_hex($name);
: o6 O$ I" ^" q}
" `  z8 k5 g3 D# H/ U% c' Z8 w& P4 ~print $name;! S) i) ]: T5 Y0 F" i
    7 Q3 T3 v. `: B
以下签名,用于以后可能出现的关于此文的交流:
- Y5 ~, S7 U! ?% l% \1 6631876c2aea042934a5c4aaeabb88e9' l! c! H4 y$ Q; I+ P- C! s
2 a6a607b3bcff63980164d793ff61d170
% Y: ]2 }  G$ H3 K3 6a58e8148eb75ce9c592236ef66a3448
/ f/ J# W& Y" J% A! w1 v4 ded96d29f7b49d0dd3f9d17187356310( ]" k. m0 w$ `0 G! R  v4 S8 c
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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。+ a( Q+ Y) e- S5 C8 G% g
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。$ S2 u; f! l* b$ t6 v

, Q/ h" y1 U1 _/ Yrulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-24 08:51 , Processed in 0.060647 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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