Vulnhub系列:FristLeaks

news/2025/3/14 21:34:44/

一、配置靶机环境

以往的靶机,本人是在virtual box中,去配置,和vm上的kali进行联动,但是这个靶机需要DHCP,以往的方式可能不太行了,或者可以在virtual box中桥接成统一网卡。下面介绍下本人最有用的方法:

靶机地址:Vulnhub

下载好后,利用vm导入,导入期间存在报错 ,无需理会,直接重试,即可导入成功。

下一步,在编辑该靶机设置的时候会出现错误,导致虚拟机整体错误,直接退出。这是因为虚拟机版本太高导致,仅需将该靶机右键打开管理,修改兼容度,即可正常访问编辑设置。

向下兼容到16.x,就可以修改靶机配置,将靶机设置为NAT模式,并且在高级选项中,按照靶机要求修改MAC地址:08:00:27:A5:A6:76

然后开启靶机,即可正常出现如下图的ip地址,接着就可以开始本次渗透之旅了。

二、渗透过程

  1. 信息收集

因为已经知道该靶机的ip地址,这边可以直接用nmap进行端口探测,或者利用arp-scan,namp检测同网段存活的主机。具体命令,如果不清楚,请看之前的工具试用介绍。

kali ip:192.168.44.188 靶机ip为:192.168.44.132

扫描发现只有80端口,存在web端服务,对其进行目录爆破,发现了/images/、/robots.txt目录

访问ip,发现了主页,查看源代码没什么发现

查看robots.txt发现了三个小目录,分别打开后都是同一张图片,将图片下载到本地,猜测可能存在图片隐写之类的,利用strings 该图片,发现并没有什么有用的信息

返回主页后,一筹莫展,在主页上,它的标语,keep calm and drink fristi,意思是保持冷静和喝fristi,有点奇怪,浅浅的试了下fristi,发现了登录界面。

查看源代码后,在注释中看到了by eezeepz,这应该是用户名

在底下有一大串的base64的字符串,将其复制到本地,进行解码

发现是个png文件,于是将其解码后,变为png文件。

查看文件发现是个keKkeKKeKKeKkEkkEk,这应该是密码(吐槽一句,什么鬼密码!)

得,登陆成功,发现了个上传文件的按钮

2、web渗透

这就很明显了,这是要利用文件上传漏洞来获取shell,那就先随便传一个看看有没有什么限制

果然,只让传png,jpg,gif图片类型的文件。下面就好办了,利用burp抓包,将事先准备好的马,上传,拦截后,发送到重发中,修改后缀尝试下,上传成功!那就直接在包里修改,上传。ok!

上传后,显示了上传的文件夹,然后在kali本地新开终端利用nc进行监听,在网页访问刚才上传的文件,即可反弹shell

  1. 提权

搜索了一圈,也没有什么有用的信息,在/home中发现了3个用户,经过尝试只能进入eezeepz用户中,同时发现了个notes.txt文件

查看一下:

我让你可以做一些自动检查,但是我只允许你访问/usr/bin/*系统二进制文件。我所做的

然而,复制一些额外的经常需要的命令到我的Homedir: chmod df cat echo ps grep egrep你可以使用这些从/home/admin/

不要忘记为每个二进制文件指定完整路径!

只需在/tmp/中放入一个名为“runthis”的文件,每行一个命令输出到/tmp/目录下的“cronresult”文件。它应该用我的账户权限每分钟运行一次。

大致意思是,在/tmp/下建立一个runthis文件,然后利用chmod命令进行授权,它会自动运行。

touch runthis
echo "/usr/bin/chmod -R 777 /home/admin"> /tmp/runthis

发现可以列举出/home/admin中的文件,并且出现了两个txt文件

过一分钟多后,可以进入admin的文件夹中,这里有个加密的python脚本,结合刚才两个文件夹的内容,可以联想到应该是利用加密脚本将明文加密成了现在的密文。查看脚本

那就浅浅的写个解密的脚本

import base64, codecs, sys
def decodeString(str):decod = codecs.decode(str[::-1], 'rot13')return base64.b64decode(decod)
cryptResult = decodeString(sys.argv[1])
print cryptResultorimport base64,codecs,sysdef decodeString(str):string = str[::-1]string = string.encode('rot13')return base64.b64decode(string)print decodeString(sys.argv[1])

运行后得到:

thisisalsopw123,LetThereBeFristi!

之前在home中还存在着第三个用户,这两个难道就是那个用户名的密码?浅浅的一试,切换到了fristigod用户

利用sudo -l查一下看看存在什么提权:

发现了个二进制运行文件doCom,进入文件夹后输入sudo -u fristi ./doCom su -

直接切换到root,清清爽爽提权成功,获取flag

三、总结

本次靶机渗透,前期的环境配置着实有点坑,花费了点小时间,因为习惯了virtual box运行靶机,vm运行kali,这样将kali的一个网卡设置为桥接,直接桥接到virtual box的本地网,运行起来比较稳定。

再加上兼容的问题,在环境配置方面有一丢丢小麻烦,不过just小麻烦。最终还是开启了渗透之旅。

该靶机利用web端文件上传漏洞,反弹shell,在shell中的信息收集,获取了靶机的各类信息,同时发现了加密脚本,利用加密脚本写出破解脚本,解密密文,最后切换到具有提权的用户,成功提权。难度适中,可以巩固操作,加深印象!后续会继续更新!

每天学习一丢丢,进步一丢丢!


http://www.ppmy.cn/news/31344.html

相关文章

[ 云计算 | Azure ] Episode 03 | 描述云计算运营中的 CapEx 与 OpEx,如何区分 CapEx 与 OpEx

正常情况如果你不是会计,或者对钱相关的数字比较敏感的财务,本文的一些东西你不会接触的,但是最为云架构或者云运营,你可能会遇到如何采购亦或者估算的我成本和运营成本等等,所以本文的一些知识点就需要进行一定的了解…

还不会CAD批量打印图纸?学会这招再也不怕

各位工程师,相信大家在工作过程中,经常会遇到需要打印大量图纸文件的时候,那么多的图纸,一张张打印太麻烦,此时便需要用到CAD批量打印功能啦!可是,总有些新手设计师不直达奥CAD批量打印&#xf…

MySQL 主备一致

MySQL 主备一致主备切换binlog 格式statementrowmixed生产格式循环复制问题主备切换 MySQL 主备切换流程 : 状态 1 : 客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只将 A 的更新都同步过来 , 并本地执行。来保持节点 B 和 A 的数据是相同当切换…

手把手开发一门程序语言JimLang (2)

根据爱因斯坦的相对论,物体的质量越大,时间过得越快,所以托更对于我的煎熬,远远比你们想象的还要痛苦…今天给大家来盘硬菜,也是前些时日预告过的JimLang的开发过程… Let’s go !!! 语法及解析 JimLang.g4 这里我们…

Rust Web入门(八):打包发布

本教程笔记来自 杨旭老师的 rust web 全栈教程,链接如下: https://www.bilibili.com/video/BV1RP4y1G7KF?p1&vd_source8595fbbf160cc11a0cc07cadacf22951 学习 Rust Web 需要学习 rust 的前置知识可以学习杨旭老师的另一门教程 https://www.bili…

java Math类 和 System类 详解(通俗易懂)

Math类介绍Math类常用方法及演示System类简介System类常用方法及演示一、前言本节内容是我们《API-常用类》专题的第四小节了。本节内容主要讲Math类和System类, 内容包括Math类介绍、Math类常用方法、System类介绍,System类常用方法。该小节内容基本不涉…

电脑怎么重装系统?教你轻松掌握这些方法

重新安装计算机系统有两种原因:一种是计算机系统可以正常使用,但是电脑比较卡,为了提高它的运行速度,所以想要通过重新安装系统来解决这个问题;另一种原因是计算机系统文件丢失,系统出现蓝屏,或者黑屏的情况…

【JVM篇1】认识JVM,内存区域划分,类加载机制

目录 一、JVM内存区域划分 ①程序计数器(每个线程都有一个) ②栈:保存了局部变量和方法调用的信息(每一个线程都有一个栈) 如果不停地调用方法却没有返回值,会产生什么结果 ③堆(每一个进程都有一个堆,线程共享一个堆) 如何区分一个变量是…