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

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

[复制链接]
发表于 2006-8-23 18:49:01 | 显示全部楼层 |阅读模式
在剑盟看到的帖子,很值得玩味特此转来,建议新手就不用看了。
; \7 `4 N7 B# H
; s3 S1 A, p+ h* J# P: y% @& F  T  s9 t# z( X/ [
............................................................................................................................................* _4 g' o+ z0 u7 U. d, r

2 f% G. P$ ]3 e是谁控制了我们的浏览器?
$ E. d( y/ v6 u* j& e. B
1、现象是什么?6 ^6 @+ ]( D4 o; Y6 k& e
  
" X+ O0 r" t& G. m0 S) Q大约从今年年初开始,很多人就发现,在浏览一些网站的时候,; v4 p0 P, X* s
地址栏的url后面会被莫名其妙地加上“?curtime=xxxxxxxxxx”(x为数字),并且弹出广告窗口。
$ u' K% r, {$ @7 {+ L$ k! Y很多人以为这是网站自己弹出的广告,也就没有在意。
2 D  f% X' o$ k1 c' v  
7 C) k% M$ t/ `/ r( V% j& ^我是属于很在意的那些人之一。
( h: Z4 f" L6 e4 y2 p  6 C5 Y$ b- ?% C  d* a" T0 ]
2、这是怎么回事?: o' k- i$ u& Y' ]: y6 p0 L- {! O
  
* N& X) S$ O. ~; V8 |经过测试和分析,我们发现,上述现象与使用何种浏览器无关(我们测试了各种流行的http客户端),8 n/ Y# q; F  M/ z/ M- r6 ^& E
与使用何种操作系统也无关(linux用户也有相关报告)。
9 {3 {5 P2 n# w4 g我对出现该现象的IE浏览器进程进行了跟踪调试,没有发现任何异常。可以断定,并不是系统被安装了adware或者spyware。
1 t5 N: {: m6 M* }4 E  $ Q/ [) {5 b1 _9 f; Y
那么是不是那些网站自己做的呢?后来发现,访问我们自己管理的网站时也出现了这种情况,排除了这个可能。
" D0 F+ {2 L8 M5 i- _( x  4 B, I! O: a% p
那么剩下唯一的可能就是:有人在某个或某几个关键网络节点上安装了inject设备,
; l! U5 E- s4 G5 t0 L劫持了我们的HTTP会话——我实在是不愿相信这个答案,这个无耻、龌龊的答案。& D8 r6 W/ u$ c" Z/ S  |
  % g2 Z; m9 b; G+ k: R; U
伟大的谢洛克·福尔摩斯说过:当其他可能都被排除之后,剩下的,即使再怎么不可思议,也一定是答案。9 D4 ^/ R8 K: f: \
  
" J+ x; D! m& {为了验证这个想法,我选择了一个曾经出现过上述现象的网站附近网段的某个IP。2 b8 s3 b8 l% _- @& c' b
直接访问这个IP的HTTP服务,正常情况下是没有页面的,应该返回 404错误。
0 R" R: b' h7 P$ p4 v. X$ W! S我写了一个脚本。不断访问这个IP,同时记录进出的数据包。
- f* K4 P7 Q! y4 B9 E  x$ e在访问进行了120次的时候,结束请求,查看数据。120次请求中,118次返回的都是正常的404错误:
! N; I# @" R) k5 qHTTP/1.1 404 Object Not Found
6 @! W! u0 A' X6 N, d( DServer: Microsoft-IIS/5.0
; E5 E; }7 q8 \Date: Mon, 19 Jul 2004 12:57:37 GMT
; {! u" M5 ?7 f+ p- h2 JConnection: close
% P$ `) z  e4 i$ RContent-Type: text/html
% m1 s7 a8 w+ tContent-Length: 111
& {, D$ B+ v7 V5 m* M* q〈html〉〈head〉〈title〉Site Not Found〈/title〉〈/head〉
* l3 g2 ^3 I4 e( z& o〈body〉No web site is configured at this address.〈/body〉〈/html〉
$ G' S* k' W/ f5 n5 a  + D7 @% W- J6 Z, s
但是有两次,返回了这个:9 t# J# V% w/ n) Z( F  ?
HTTP/1.1 200 OK
+ m& U6 C' |3 H! Q, UContent-type: text/html0 `( X: Q0 i  \. L! o
〈html〉
( K' Z4 K$ H; Z! r% P# P" z  _〈meta http-equiv='Pragma' content='no-cache'〉6 ^  M4 S0 o5 I
〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉- Q7 n7 I- ^: g7 I
〈script〉; T4 a' b3 H/ _( t7 ~
window.open('http://211.147.5.121/DXT06-005.htm', '', 'width=400,height=330');
1 d* z: K5 _3 x3 z% J4 D2 A- k$ T〈/script〉, Z/ F6 G+ U; r) e
〈head〉9 w) c2 T8 N# w. p+ L
〈title〉〈/title〉2 b! B* |3 q6 i3 s+ \5 R! V
〈/head〉
+ [3 E" x5 n  I7 \4 z0 I〈body〉
) J% }- Q+ p4 N- {: v〈/body〉* {! m6 g" k: ^8 `& z: o
〈/html〉
+ e, X) H! {$ Y& T1 G2 H, Z  w) o: m  
/ A; A3 q' b3 x' t# g; m更进一步分析数据包,可知劫持流程如下:7 [2 j8 E' Q% _4 Y: y
  
( s3 E7 M' ^7 _* k+ aA、在某个骨干路由器的边上,躺着一台旁路的设备,监听所有流过的HTTP会话。* f! B$ k6 F4 ]
这个设备按照某种规律,对于某些HTTP请求进行特殊处理。% k7 t$ m6 z: @# U6 c
  * H# ~! r# ?- K$ Q+ }$ Y* U
B、当一个不幸的HTTP请求流过,这个设备根据该请求的seq和ack,把早已准备好的数据作为回应包,发送给客户端。
5 ?, @, F& ]1 M3 _( v$ Y- [这个过程是非常快的。我们的 HTTP请求发出之后,仅过了0.008秒,就收到了上面的回应。" {$ U6 G, _; y! f' d9 J3 ^
而任何正常的服务器都不可能在这么短的时间内做出回应。
7 E7 e/ T" t0 \0 M! |0 |4 {- \! N. c  & Y* e' L7 d+ \$ J* b
C、因为seq和ack已经被伪造的回应用掉了,所以,真正的服务器端数据过来的时候,会被当作错误的报文而不被接受。4 A, ?' p# |7 f* V- G
  
8 a5 \. ?6 W+ ^8 R7 W7 O" O+ sD、浏览器会根据〈meta http-equiv='Refresh' content='0;URL=?curtime=1091231851'〉这一行,
/ Z* I3 z5 E  c+ m% X重新对你要访问的URL进行请求,这一次,得到了请求的真正页面,并且调用window.open函数打开广告窗口。
6 `7 o7 _6 _8 d  
' z1 G( c7 \5 x4 I! Z; J4 D在google中以“php?curtime”、“htm?curtime”、“asp?curtime”为关键字搜索,出现的基本上是国内网站,
, l, I6 Y. h  O9 w1 d+ R这表明,问题出在国内。用于inject的设备插在国内的某个或某几个大节点上。
  {0 {; ^% N0 s6 O+ C& U# {  , ~  `7 Q) v1 h
真相大白。我们被愚弄了,全中国的网民都成了某些人的赚钱工具。9 f& D1 I/ |, k" P1 x# j. Z, `( m
  
* t  m' B# E# e; Z# o$ x3、现在怎么办?
1 n+ t! M9 `  K) @" S2 Q8 ^  
5 M" l# M, h* Q. j- t( u( a4 Q在坏家伙被捉出来之前,我们要想不受这个玩意的骚扰,可以考虑下面的方法:
1 R8 D! _6 w) \: x  d4 W  l  ! b5 E  m; l3 |; f) k& U
A、请各单位的网络管理员,在网络的边界设备上,完全封锁211.147.5.121。
; y* ]- k  l+ a! i& I$ n1 c# u. t$ F  
6 I) F' ]" D* }# \% g& l. _B、在你自己的个人防火墙上,完全封锁211.147.5.121。9 U. L3 T# o) |  E' t/ }/ v) k7 R
  7 r  C& f( E. B0 D
C、如果你的浏览器是FireFox、Opera、GreenBrowser、或者MyIE,可以把“http://211.147.5.121/*”丢到弹出窗口过滤列表中去。) }9 H/ ?5 ?; ~# r: B
  
" S+ C, C  e2 ]. v( y& \3 E1 n5 s3 B# |绝不只是广告那么简单,这涉及到我们的选择,我们的自由,这比垃圾邮件更加肮脏和无耻。
; G: p: K: ?2 Y8 ~) F今天是广告,明天就可能在你下载软件的时候给你加个adware或者加个病毒进去,谁知道呢?) {% I* D/ B$ k6 F" V: ~0 C
我们的HTTP通信完全控制在别人手里。
% `4 r: H- T& P' v  
' g+ B4 x7 K1 b' X9 K+ m4、如何把坏家伙揪出来?& J: n2 N. @  r3 ]8 D/ d# L- [
  2 C! {% q' u% M0 U9 _9 `* f! t" b
如果你是一个有权力调查和处理这件事的人,从技术上,可以考虑下面的手段:' H2 v+ [( F9 r6 k& q7 S
  
! g; G0 U2 K& S) t3 T) l" ~方法1:- w6 s6 N8 c: P! {' x7 r0 d% ]- e
  4 j5 V9 @' X% a. q) A3 t
伪造的回应数据中并没有处理TTL,也就是说,我们得到的回应数据中TTL是和inject设备位置相关的。
: u' a; z3 _7 T以我收到的数据包为例,真实的服务器端回应 TTL是107,伪造的回应TTL是53。
  f2 W/ k/ G3 H5 |那么,从我们这里到被请求的服务器之间经过了21(128-107)个节点,从我们这里到inject设备经过了11(64-53)个节点。3 z; ^- H2 U* B2 f  j
只需要traceroute一下请求的服务器,得到路由回溯,往外数第11个节点就是安插inject设备的地方!
7 E) s% G, `) ^) g+ c  
+ i& J) L1 o: n+ n+ _0 ]2 K+ h方法2:
7 I9 P; R" R9 y, s* U8 k. t& w  9 s( l  ?2 l. _7 @- r3 H0 |5 c& c
假如坏家伙也看到了这篇文章,修改了TTL,我们仍然有办法。
8 e  K1 M6 P" }- w& K在google上以下面这些关键字搜索:php?curtime,htm? curtime,asp?curtime,可以得到大量访问时会被inject的网址。
$ x  t+ i1 J8 s# b1 S% r编写脚本反复访问这些网址,验证从你的ip访问过去是否会被 inject.将确实会被inject的结果搜集起来,* j' p! J8 J( ?' F' L
在不同的网络接入点上挨个用traceroute工具进行路由回溯。分析回溯的结果。
5 z. t' t" ^* c0 @  % l/ c; n/ Z6 r# ?# S( L. O$ ?9 G
上面我们已经说明了,坏家伙是在某个或者某些重要节点上安插了inject设备,0 k  C0 E0 i4 ]$ D) ]
那么这个节点必然在被inject的那些网址到我们的IP之间的某个位置上。1 g% U+ ^+ m) p- v) K5 X' W( a
例如有A、B、C、D四个被inject到的网站,从四个地方进行路由回溯的结果如下:
/ L( T$ K$ W+ J5 M* uMyIP-12-13-14-15-65-[89]-15-57-A
! H& T( j# i$ D+ hMyIP-66-67-68-69-85-[89]-45-68-84-52-44-B
- v. D, F* j& ]) Q9 j0 o/ l% _MyIP-34-34-36-28-83-[89]-45-63-58-64-48-41-87-C
6 e2 R, N- Z) @MyIP-22-25-29-32-65-45-[89]-58-D
' ]* \6 w9 l1 S. w3 F' `, ^  9 N4 z9 r  \3 l- D( z
显然,inject设备极大可能就在“89”所在的机房。3 m) u4 X# C5 z8 n* ^
  . c3 N& L- x1 h' q/ T
方法3:
& a3 p( S; m, M' j6 a: o, P' K  
; x, z* ?5 o) j7 O6 t: q另一方面,可以从存放广告业面的211.147.5.121这个IP入手,whois查询结果如下:: j; a6 t5 a6 ]" }1 [8 W. O9 @  Z! Z
inetnum: 211.147.0.0 - 211.147.7.2556 H9 v% C9 P- b9 L, x& d! M! q
netname: DYNEGY-COMMUNICATION- U7 B* I9 m  z, _
descr: DYNEGY-COMMUNICATION
3 S- @: ^( _- g! g6 e1 f* {descr: CO.LTD
5 i  B+ z' u1 u& G5 A! C7 P4 kdescr: BEIJING4 G! X. y2 w$ ?& i
country: CN4 y& P7 ~: _( L, N
admin-c: PP40-AP
! ~; a4 p0 L1 k- I0 a4 Xtech-c: SD76-AP9 L  z: J" g) _4 x/ G) W5 C5 v
mnt-by: MAINT-CNNIC-AP
6 {8 G* W2 s* N6 f* Wchanged: [email protected] 200111126 j6 N7 d0 F5 `, I% Z2 j
status: ALLOCATED PORTABLE0 H" ^0 l! U- g$ {4 N) W" |! N
source: APNIC
, v% J5 x* Y3 Iperson: Pang Patrick/ r: [: N) }4 g+ m' h
nic-hdl: PP40-AP# w* B/ B! E. }3 r
e-mail: [email protected]- {% y% A8 D% d" H- O
address: Fl./8, South Building, Bridge Mansion, No. 53- Z2 E1 ?" D: X  F/ J* J. d7 `# j
phone: +86-10-63181513/ s4 ^: I- G# H4 A" N2 t) ~3 j
fax-no: +86-10-63181597
$ ]6 _! u, _! \' m8 h# s3 Y. ~country: CN+ H) d7 O6 ?1 O6 ~4 `- z& T! a- z- C
changed: [email protected] 200303040 s' Q6 l' `; c- T" n; O. n$ {
mnt-by: MAINT-CNNIC-AP
( O3 R* s! A% [. csource: APNIC. }$ a5 D, r7 Q, j$ [- m
person: ShouLan Du
+ [) ~9 k  Z3 c$ d7 u- L: C, Saddress: Fl./8, South Building, Bridge Mansion, No. 539 V8 b0 z; H0 @6 m' E0 p$ Y7 H+ X$ y
country: CN
, e( D7 F# f# D9 w. o- ^$ J( ~" C! iphone: +86-010-83160000
( r  ?0 g2 b4 k: E  A! b! V9 r# o6 ]fax-no: +86-010-83155528
8 l) `9 }' H  ?$ y. n) ]+ ce-mail: [email protected]$ c! j- M# ^8 g1 L- ^9 o- W4 l
nic-hdl: SD76-AP
: x( C' a" w9 E" Qmnt-by: MAINT-CNNIC-AP
/ @. j* v/ C8 Cchanged: [email protected] 20020403
' {0 Y. i% N( j8 @2 E' \source: APNIC
6 o! D1 K2 V1 M  k, L  
  @5 E+ J# R# w5 ~& T5、我为什么要写这篇文章?( {" p, x  X8 w- c7 y# r0 }: i* {
  
+ _! e& u) u2 e6 v* n/ P新浪为我提供桃色新闻,我顺便看看新浪的广告,这是天经地义的;. G! s6 ?* L) a, j5 O) j% M
或者我安装某某网站的广告条,某某网站付给我钱,这也是天经地义的。) T8 B- Q3 C& q2 R
可是这个 211.147.5.121既不给我提供桃色新闻,又不给钱,却强迫我看广告,这就严重伤害了我脆弱而幼小的心灵。; g6 M' I8 h1 f% R
事实上,你可以敲诈克林斯·潘,强奸克里奥·佩德拉,咬死王阳明,挖成吉思汗墓,我都不会计较,+ C: w4 p7 C, p3 [( A" S
但是现在你既然打搅了我的生活,我就不得不说几句了。
8 P2 ]( x8 P2 I% F& E3 A  / R1 E2 q5 X1 J; w. A9 @( D
6、我是谁?- P  D* d6 ^' ?# M2 Y' ], T" ~
  4 Q' T) Z; M' z* H0 \8 @
如果你知道MyName,又知道MyCount的话,那么,用下面这段perl可以得到:2f4f587a80c2dbbd870a46481b2b1882。
8 n; Z* E6 S% ]: c& \6 Z#!/usr/bin/perl -w3 x5 Z$ O. B; j; C
use Digest::MD5 qw(md5 md5_hex md5_base64);
  T; [, p6 B& \4 M$name = 'MyName';! Y4 P; y' d3 y! v7 @
$count = MyCount;
0 f8 e/ ^3 M. Afor ($i=0; $i〈$count; $i++)
' W# c/ `. |: g% @% @0 t! ~! T" d{! ~) w* q& j/ L+ v) k7 ]
$name = md5_hex($name);
# ]8 x3 d  q9 j/ ^% V7 k) }}- t/ |  i' d6 f1 O! O* ^+ Z! j
print $name;
2 l( T, I: J' _; c& H* P2 d9 `. J1 z* i    ! U, F9 b4 c9 s+ N5 J2 K8 @& r
以下签名,用于以后可能出现的关于此文的交流:
; O6 |- F$ N( Y) C: j7 c/ [9 F5 Y1 6631876c2aea042934a5c4aaeabb88e9
8 a) d6 p2 U- |* v2 a6a607b3bcff63980164d793ff61d170( T& v! a  o: f- q# D8 ]) z% X+ V
3 6a58e8148eb75ce9c592236ef66a34483 w- t) E8 M# G5 ~* c. r. k
4 ded96d29f7b49d0dd3f9d17187356310
! b3 P$ K$ i4 Z, G$ g$ Y5 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 | 显示全部楼层
是有点专业了,如果不是对计算机网络的工作流程比较了解的话,很难理解其中许多名次的含义。希望楼主能发一些比较通俗或者容易大家接受的文章,毕竟不是每个人都是研究计算机。
% ^" `; X/ Z8 v+ J. X# o- [8 y总之非常感谢您提供这篇文章,从文章的内容上来说还是很有帮助的,希望您以后继续支持改版。
回复

使用道具 举报

 楼主| 发表于 2006-8-24 00:36:50 | 显示全部楼层
...抱歉,原作者分析清晰,操作精准,如果有相关基础的话,是很值得学习的。
% Z- @: v) P5 _- f$ e; k# l
( X: ^# R# v$ S6 V' @" n4 erulingdanny斑竹所说即是,以后注意了,实在抱歉。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-14 11:44 , Processed in 0.075130 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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