Vulnhub系列:FristLeaks

news2024/11/17 15:52:42

一、配置靶机环境

以往的靶机,本人是在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 cryptResult


or


import base64,codecs,sys

def 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.coloradmin.cn/o/398667.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2021牛客OI赛前集训营-提高组(第三场) T4扑克

2021牛客OI赛前集训营-提高组(第三场) 题目大意 小A和小B在玩扑克牌游戏,规则如下: 从一副52张牌(没有大小王)的扑克牌中随机发3张到每个玩家手上,每个玩家可以任意想象另外两张牌&#xff0…

Allegro如何知道单个操作命令的拼写

Allegro如何知道单个操作命令的拼写 在用Allegro做PCB设计的时候,时常需要给某些命令设置一些快捷键,但是有时候无法知道命令的拼写是什么,就无法定义到env文件里面去 如下图 如何知道上方图标的命令拼写,下面介绍两种方法 方法一 鼠标左键移动到图标的位置,就会出现命令…

【动态规划】背包问题(01背包,完全背包)

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

JavaWeb学习-Tomcat

常用的Web服务器 ①IIS:Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在…

二进制转换之命理学习

什么是十神 运用儒家学说: 克我者官也:古代没有民主思想,官不是为民服务的,官就是克的。 对男命来说克我的是儿女,女儿是正官,儿子是偏官(七杀)克的厉害,对父亲来说有了…

图解七大排序算法,面试超高频考点,java实现

前言 排序算法在面试中属于超高频的考点了,至少要学会如何手写各种排序算法,其中快速排序尤为重要 看完了本文以后,大家可以自己尝试着去手写一下这些排序算法啦,leetcode题号:75颜色分类 多努力点,活的…

体验用arduino来实现PLC编程器的功能

是不是想自己临时做个PLC的测试,但又不想卖西门子三菱的PLC,那就可以用这个,把arduino变成一个PLC的编程器。 文章目录一、下载与安装1、下载2、安装二、初次使用1、打开范例程序学习2、调试运行3、下载到arduino板中文章出处: ht…

科技成果赋智中小企业深度行 边界无限靖云甲ADR入选十大优秀案例

近日,国家工业信息安全发展研究中心、青岛市工业和信息化局、青岛市民营经济发展局、青岛市即墨区人民政府、青岛蓝谷管理局联合举办的科技成果赋智中小企业“深度行”活动(青岛站)成功举办,同步举行了赋智“深度行”活动&#xf…

最短路径Dijkstra算法的分析与具体实现(思路加代码)

❤️作者主页:微凉秋意 ✅作者简介:后端领域优质创作者🏆,CSDN内容合伙人🏆,阿里云专家博主🏆 ✨精品专栏:C面向对象 🔥系列专栏:数据结构与课程设计 文章目录…

Gson序列化Class对象报错解决办法

1. 背景 昨天在写RPC的基础Demo的时候,使用JSON作为序列化方式,然后在序列化对象的时候,报错了。 我复现一下该报错: public class GsonTest {public static void main(String[] args) {new Gson().toJson(String.class);}}具体…

C/C++每日一练(20230309)

目录 1. 罗马数字转整数 ★ 2. 最大数 ★★ 3. 有效数字 ★★★ 🌟 每日一练刷题专栏 C/C 每日一练 ​专栏 Python 每日一练 ​专栏 1. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C&…

达梦关系型数据库

达梦关系型数据库一、DM8 安装1. 安装包下载2. Docker 安装3. Linux 安装4. Windows 安装二、DM 管理工具三、命令行交互工具 DIsql四、DM8 SQL使用1. 创建模式2. 创建表3. 修改表4. 读写数据5. 查看库下所有的表名6. 查看表字段信息GitHub: link. 欢迎star国产自主研发的大型…

数据挖掘(2.2)--数据预处理

目录 二、数据描述 1.描述数据中心趋势 1.1平均值和截断均值 1.2加权平均值 1.3中位数(Median)和众数(Mode) 2.描述数据的分散程度 2.1箱线图 2.2方差和标准差 2.3正态分布 3.数据清洗 3.1数据缺失的处理 3.2数据清洗 二、数据描述 描述数…

自动化测试实战篇(9),jmeter常用断言方法,一文搞懂9种测试字段与JSON断言

Jmeter常用的断言主要有,JSON断言和响应断言这两种方式。 断言主要就是帮助帮助人工进行快速接口信息验证避免繁杂的重复的人工去验证数据 第一种响应断言Apply to:表示应用范围测试字段:针对响应数据进行不同的匹配响应文本响应代码响应信息…

【Go自学第一节】GoLang 数据类型

和Java类型,go拥有多种数据类型,可以把它分为四个大类基础类型、聚合类型、引用类型和接口类型 一、基本数据类型 基本数据类型又可以细分为:数字类型(整型、浮点型)、布尔类型、字符串类型 整型 Go 的整型分为有符号…

计算机网络的166个概念你知道几个 第十一部分

计算机网络数据链路层和物理层节点:一般指链路层协议中的设备。链路:一般把沿着通信路径连接相邻节点的通信信道称为链路。MAC 协议:媒体访问控制协议,它规定了帧在链路上传输的规则。奇偶校验位:一种差错检测方式&…

基于gin-vue-admin[gin+gorm]手动实现crud(全)

使用Gin-Vue- Admin框架手动实现crud 在gva框架下自己手动实现一个CRUD的操作,该操作将会结合gen进行探讨学习,具体实现可以看下面代码的实现,项目目录层级分为api层,service层,model层,common层&#xff…

1/4、1/2、整车悬架天棚主动控制仿真分析合集

目录 前言 1. 1/4悬架系统 1.1数学模型 1.2仿真分析 2. 1/2悬架系统 2.1数学模型 2.2仿真分析 3. 整车悬架系统 3.1数学模型 3.2仿真分析 4.总结 参考文献 前言 对于天棚控制相比大家不陌生,它是由美国的Karnopp提出,利用假设的与天棚固连…

【数据结构】链表相关题目(简单版)

🚀write in front🚀 📜所属专栏: 初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是…

软件测试10

Linux和数据库 1.Linux命令:软件测试第一个任务,一般都需要进行环境搭建,一部分环境搭建内容是在服务器上实现的,跟服务器交互需要使用Linux命令。(因为Linux没有图形化页面) 2.数据库:所有的软…