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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
, n$ H0 Y3 u. i# t- ?+ g9 I- B0 x& \, k8 R$ D( T

3 ]; q5 J3 ^1 M' H" K: O5 a............................................................................................................................................
# N. a( z+ g) e" w- G
: a' {  W0 A9 N9 i是谁控制了我们的浏览器?
1 a/ ~5 E; {: K& ^% s! H6 T# N
1、现象是什么?
& {6 d) w  S- P2 g/ j. D7 }2 Z  
: n+ d& n9 P2 s1 h! L% L9 g大约从今年年初开始,很多人就发现,在浏览一些网站的时候," G. l; R8 i2 l: M/ |, r
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。* I8 H: k3 l0 n4 O
很多人以为这是网站自己弹出的广告,也就没有在意。
( @) K# e/ Z, |% R  
7 T9 O. |5 c/ l我是属于很在意的那些人之一。% P6 b1 w3 ^+ V0 }
  
# Y  ?" G' W6 E: a' ]2、这是怎么回事?
- s( Y' C, `/ Y* w! S  
+ m0 ?; C) }2 g, ]4 p1 ~9 g1 F经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),
4 _9 I+ K5 I  t' d5 G$ @与使用何种操作系统也无关(linux用户也有相关报告)。
4 ]) h  f: p1 l, l6 ?4 ^3 m我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
1 T3 x  z3 `; o3 @- H  
* o1 S3 a- p- M5 R& T6 J那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。- k. P: u8 f/ c& ~0 D* z# X' G- l* s% u
  
$ v8 J& o7 P1 F那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,
) e, r7 B8 G# g) e6 o5 A劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。
2 X" _; l' j6 `2 H, t" D  % |9 \6 L; B0 q
伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。
5 }8 V5 I, O2 D. t# Q* G& I  
) E+ P  U: Q7 o. m6 F为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。
( L4 h* w8 P+ ^1 W; f3 Z直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
% h2 m, y% _$ ?3 @4 V, U" e, ?我写了一个脚本。不断访问这个IP,同时记录进出的数据包。* Y! c4 `5 H# d7 _/ x
在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:5 ]# u, R  N/ |, H# z% _
HTTP/1.1 404 Object Not Found3 ?8 D' m. V; w9 Q1 q7 M- X' W
Server: Microsoft-IIS/5.0
! Z! @9 g5 n* J2 kDate: Mon, 19 Jul 2004 12:57:37 GMT1 j2 f  M" z4 e5 y! f( m' B
Connection: close! o/ ]1 u3 b" @8 r  ?5 T7 U4 g
Content-Type: text/html
9 ~% A, L9 M& T/ GContent-Length: 1115 y* D% ^1 M6 ?; m  y
〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉* @! g; N' v3 n: X, L& e
〈body〉No web site is configured at this address.〈/body〉〈/html〉; e+ ?1 F0 o( h( a& n5 D
  ) I* S( D" Q  K9 _! @
但是有两次,返回了这个:: s1 f8 r1 |* X: l8 S
HTTP/1.1 200 OK
! W3 F1 P7 s& e( G4 l: a5 y& ZContent-type: text/html+ l9 M* @0 E! _& Y5 z
〈html〉
% C, \9 m* E& @. m0 R4 c$ @( [〈meta http-equiv='Pragma' content='no-cache'〉
7 C' y& E0 E. o/ k〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉; N7 C0 J' n1 V; m
〈script〉5 g# ?9 m( ~. d0 N/ M" z
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');- o1 F4 t1 X7 ?2 Y
〈/script〉
4 E. I- j' E+ k8 {3 A〈head〉8 i0 ~, d. o+ l6 E5 z3 K2 k1 l
〈title〉〈/title〉; M* _9 J+ d1 ]8 ?( g* X
〈/head〉
8 g$ h6 b& k! p/ J+ X〈body〉
- I% ^! a" D( h0 J1 o7 b〈/body〉9 U% J# }' [9 i% d# S
〈/html〉9 M0 h  U* }1 ]/ G5 X
  
6 \) V+ w2 C: S更进一步分析数据包,可知劫持流程如下:/ ^$ K) r  j9 r
  
2 E, i6 U" ^) M- ~9 r& w8 lA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。
0 m) ?2 G# O' z9 ^$ E% Y这个设备按照某种规律,对于某些HTTP请求进行特殊处理。/ l* r! z$ c  x# `% r
  / O: ?6 W2 a  }/ U# m) ?; e! \
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
& O/ x" @$ Q2 j6 h0 L. R/ W4 ~这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。
5 e. b, u2 t# Z( L而任何正常的服务器都不可能在这么短的时间内做出回应。" f5 X, X, c$ S0 J: G, U6 T9 y
  7 h1 d* v- Z; H# `
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。# V* N+ i. k6 Y  y7 o1 M( L$ d: U
  
3 M# D# W( P3 i* k# F7 eD、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
* h# g: _" y5 {7 r* P+ Q5 w重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。6 h% F: [% Y. k
  0 |- W8 ^  J6 \; [6 V8 u0 ^
在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
. w3 i7 c/ J) N& S, z1 p; K- ?这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。2 H) w" f# j9 i' z
  
* n  j* w- m* U2 j  e真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。
$ p! Q# A+ g: [; y  
) c1 W8 o( |! k5 `; A7 P3、现在怎么办?
. \, h, h" \. {; D. [+ y2 @  
/ ~7 j" L% C7 B& g" c8 ~( {/ ^在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:# P! L- H: F. I" ~) m3 ]
  
! F+ t. i# u9 k7 E( M$ b5 N2 JA、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。( P( |7 _! q/ E. O
  & [/ _8 O6 N% g. a' ]0 t4 @3 B
B、在你自己的个人防火墙上,完全封锁211.147.5.121。
2 l9 t# ]5 k# b* m: E  
! F+ P% R0 ~; J9 F# x* ^) p+ rC、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。
# [" M  r; @6 H% v( W' z  : K# c5 Q8 }& K
绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。* T" a, g* z5 N3 }1 `) a  O! e4 `
今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?
( j, E0 S6 |0 X, B我们的HTTP通信完全控制在别人手里。
, s2 V5 A. M7 ]7 ^: ~9 d( V  ) ~: G# z* \, j6 \" e% D
4、如何把坏家伙揪出来?7 Y4 P8 h9 u, r* W2 A
  ) j* V$ k# u* ]! f; L- x- a! o4 V7 F
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:* U0 u3 K# A5 {, D, x: U" z
  ' n* b- _* E' w  P8 H, `7 c* i
方法1:
% w8 P: N. H% \+ z' V' M' \( v  
) t! a" e  K7 R; ?8 S! V, I( k1 j伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。- A3 m0 }* w1 _% ^' {8 ~8 k
以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
" w+ g. i- m7 j" P; W那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。
: R/ |* I1 E- B" E* t. S只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
9 O6 z. T. H% F7 x: u0 X1 ?  
8 F1 t- a/ w% ]: W* P1 N/ y方法2:/ U- a5 ^6 s/ ]0 Z8 ~
  7 F0 u/ u1 D  @7 ~) {5 Q2 [
假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
6 V  c# m2 N4 D/ n1 w在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。, v0 g3 u' @/ q) e* l
编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,# I0 u) ?" @3 k* m! Z
在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
3 X6 L, V4 W6 V$ B0 U5 P7 U. K+ h  
+ N. a4 M" [- ?0 X( c6 I/ k上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,
' q3 s, w7 {2 [# _那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。! g- y* t: j+ |" j' ~0 r- l9 h* a
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:4 P3 F# M7 B  B3 D5 g( ]/ N
MyIP-12-13-14-15-65-[89]-15-57-A
6 b4 x. z  u9 v1 I: S' CMyIP-66-67-68-69-85-[89]-45-68-84-52-44-B
# \7 x% `( x) W( ]8 a$ LMyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C, \* x6 r/ x3 Y( `4 i( f
MyIP-22-25-29-32-65-45-[89]-58-D
" t' b. e6 w1 P* Z- o  
4 ]! o! |; r! V* ?2 `4 P- w+ X显然,inject设备极大可能就在“89”所在的机房。3 J( f. Z, r( Y
  + @* W' N- S% [9 R2 y
方法3:
( N. D* w  [' g! V  
3 y1 X8 @3 E" x1 c1 N另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:
$ F& i- l: N8 B, O4 |$ S; C/ P7 X( ~inetnum: 211.147.0.0 - 211.147.7.255
, `+ }( k; Q+ @6 ~5 l6 |, Dnetname: DYNEGY-COMMUNICATION2 R+ C5 G  T; m" j
descr: DYNEGY-COMMUNICATION1 Z, \. k7 f, L1 U: N/ a$ G
descr: CO.LTD
/ e3 q) l$ N; B3 @; E& ddescr: BEIJING$ ^* I& `# e8 d0 z
country: CN
% q7 k& y& V$ S+ A: badmin-c: PP40-AP# O8 q+ N3 g. c$ E# \
tech-c: SD76-AP& P* h3 w& \# }8 N. H- k6 C; F$ _
mnt-by: MAINT-CNNIC-AP- F2 P9 z# _& Z$ e* _; p
changed: [email protected] 20011112
+ S/ w, B- D4 Z' @2 nstatus: ALLOCATED PORTABLE
! V* p$ S, `" ^7 S! S: z2 isource: APNIC
+ m; E2 @# a. q5 Q% C" aperson: Pang Patrick' T1 b. T. G6 g$ f7 j1 `& u$ @
nic-hdl: PP40-AP9 s1 ~/ g  u( Y' Q/ b! f
e-mail: [email protected]
0 k% [) f2 V8 @address: Fl./8, South Building, Bridge Mansion, No. 53$ Z0 L/ `6 _3 n  U
phone: +86-10-63181513" [. l5 r: v7 e1 m& N1 N
fax-no: +86-10-63181597
, \0 M" t( ]8 @, |) hcountry: CN
0 ^2 q" F; q2 ]- q+ g* echanged: [email protected] 200303040 G% F8 g5 K* F! `+ A$ Z% o, t
mnt-by: MAINT-CNNIC-AP
/ {2 i3 K. b' ~: S1 X1 O" Nsource: APNIC! ^4 I0 L/ W' q, q8 s/ L
person: ShouLan Du% d3 j" ?, g, Y% t
address: Fl./8, South Building, Bridge Mansion, No. 536 U4 V7 ~6 K: a! V
country: CN, f; _0 e" R0 f$ T/ U
phone: +86-010-831600008 d. X( E/ p- q: [/ j: d
fax-no: +86-010-831555288 ~) }9 \' h7 K1 ]8 {# j$ y
e-mail: [email protected]0 }! m/ e' `9 H( C! }* P. T' h1 L& K
nic-hdl: SD76-AP$ \# E6 |1 c7 s& \+ n! C
mnt-by: MAINT-CNNIC-AP
) Y+ E% I2 H1 A4 s" A5 cchanged: [email protected] 200204031 R* i& o& ~: O7 {7 a4 B. V& q' J
source: APNIC
+ F/ i9 q+ k2 o2 ~  v4 R5 w/ P  ; A/ I1 p7 I9 y/ R( C* G, ?9 L
5、我为什么要写这篇文章?- `$ f7 ]- ]& _" o$ v$ M
  
+ t* _- J! B& K! O& z新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;
. p& v3 n: @% E' I) M- x或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。: H% f! r$ z- g  _2 V0 a" u3 n$ H
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。
6 z1 @- J  H3 M) P7 b事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,
; R! |8 Y1 N, w/ b但是现在你既然打搅了我的生活,我就不得不说几句了。
+ \' C2 U9 u/ e4 A  ; d, z, I- \$ V, W
6、我是谁?3 I9 G+ m5 }" k8 Y8 M( L% ^
  - R6 M2 y; ]! Y0 s8 [2 \
如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。. @9 B5 P8 g% A
#!/usr/bin/perl -w
! ?0 [. Q# Q! h, x( quse Digest::MD5 qw(md5 md5_hex md5_base64);4 I& h7 ]6 [7 @$ B
$name = 'MyName';" R0 r* d) U6 s% {
$count = MyCount;1 @  b  O: a8 \4 H5 `% W
for ($i=0; $i〈$count; $i++)
# g+ _; B% [8 p! b% a/ E+ O{
+ U$ u; l' S" d$name = md5_hex($name);
1 U2 v6 u# ]3 n3 Y0 F}
2 I* f7 j6 h9 r  b# yprint $name;5 k/ u1 X  n: F- ]0 }) Q* n6 ?
   
2 ~" b/ U# d+ q2 y1 j以下签名,用于以后可能出现的关于此文的交流:( `: W; i$ X9 I& H) N- O6 m, b
1 6631876c2aea042934a5c4aaeabb88e9
+ ~. k( O% K2 V5 j9 H2 a6a607b3bcff63980164d793ff61d170
! ]% m# m' w2 Q8 U3 6a58e8148eb75ce9c592236ef66a3448
( ~$ G) S- c# P; T% ~5 E4 ded96d29f7b49d0dd3f9d17187356310
; W* \! g2 t+ T2 l, |" L1 S: v; J5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。9 H0 `6 e# E- G8 d
总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
: V, Y$ P* x7 R  Q' S$ O+ ^" ~4 M2 F/ M" U
rulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-19 03:02 , Processed in 0.057894 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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