FOURANDSIX:2.01

靶场下载

FourAndSix: 2.01 ~ VulnHub

信息收集

# nmap -sn 192.168.1.0/24 -oN live.nmap                          
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-02 10:42 CST
Nmap scan report for 192.168.1.1
Host is up (0.00030s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.1.2
Host is up (0.00025s latency).
MAC Address: 00:50:56:FE:B1:6F (VMware)
Nmap scan report for 192.168.1.78
Host is up (0.00039s latency).
MAC Address: 00:0C:29:B6:28:96 (VMware)
Nmap scan report for 192.168.1.254
Host is up (0.00031s latency).
MAC Address: 00:50:56:F7:33:D9 (VMware)
Nmap scan report for 192.168.1.60
Host is up.

探测存活主机的IP地址为192.168.1.78

# nmap -sT --min-rate 10000 -p- 192.168.1.78 -oN port.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-02 10:44 CST
Warning: 192.168.1.78 giving up on port because retransmission cap hit (10).
Nmap scan report for 192.168.1.78
Host is up (0.00042s latency).
Not shown: 62021 filtered tcp ports (no-response), 3511 closed tcp ports (conn-refused)
PORT    STATE SERVICE
22/tcp  open  ssh
111/tcp open  rpcbind
659/tcp open  unknown
MAC Address: 00:0C:29:B6:28:96 (VMware)

发现并没有开放http服务,第一次看到这种的靶机,先别慌,先按部就班的探测相信服务信息,观察一下:

# nmap -sT -sC -sV -O -p111,22,659 192.168.1.78 -oN details.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-02 10:45 CST
Nmap scan report for 192.168.1.78
Host is up (0.00053s latency).

PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 7.9 (protocol 2.0)
| ssh-hostkey: 
|   2048 ef:3b:2e:cf:40:19:9e:bb:23:1e:aa:24:a1:09:4e:d1 (RSA)
|   256 c8:5c:8b:0b:e1:64:0c:75:c3:63:d7:b3:80:c9:2f:d2 (ECDSA)
|_  256 61:bc:45:9a:ba:a5:47:20:60:13:25:19:b0:47:cb:ad (ED25519)
111/tcp open  rpcbind 2 (RPC #100000)
| rpcinfo: 
|   program version    port/proto  service
|   100000  2            111/tcp   rpcbind
|   100000  2            111/udp   rpcbind
|   100003  2,3         2049/tcp   nfs
|   100003  2,3         2049/udp   nfs
|   100005  1,3          659/tcp   mountd
|_  100005  1,3          957/udp   mountd
659/tcp open  mountd  1-3 (RPC #100005)
MAC Address: 00:0C:29:B6:28:96 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: OpenBSD 6.X
OS CPE: cpe:/o:openbsd:openbsd:6
OS details: OpenBSD 6.0 - 6.4
Network Distance: 1 hop

22端口是ssh,这里就不多说了;111端口是rpcbind 2 ;659 是mountd服务,1-3;其他的信息目前没有;探测一下UDP的端口信息:

# nmap -sU --min-rate 10000 -p- 192.168.1.78 -oN udp.nmap
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-02 10:49 CST
Warning: 192.168.1.78 giving up on port because retransmission cap hit (10).
Nmap scan report for 192.168.1.78
Host is up (0.00038s latency).
Not shown: 61858 open|filtered udp ports (no-response), 3675 closed udp ports (port-unreach)
PORT     STATE SERVICE
111/udp  open  rpcbind
2049/udp open  nfs
MAC Address: 00:0C:29:B6:28:96 (VMware)

udp端口开放了两个,分别是111端口和2049端口!

# nmap -sT --script=vuln -p22,111,659 192.168.1.78 -oN vuln.nmap 
Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-02 10:49 CST
Pre-scan script results:
| broadcast-avahi-dos: 
|   Discovered hosts:
|     224.0.0.251
|   After NULL UDP avahi packet DoS (CVE-2011-1002).
|_  Hosts are all up (not vulnerable).
Nmap scan report for 192.168.1.78
Host is up (0.00038s latency).

PORT    STATE    SERVICE
22/tcp  filtered ssh
111/tcp filtered rpcbind
659/tcp filtered unknown
MAC Address: 00:0C:29:B6:28:96 (VMware)

默认的漏洞脚本信息探测的结果可以看作是没什么信息;此时我陷入了迷茫的境地,不知道从哪里入手进行突破!(这里先去看看111端口和659以及2049端口上的各个服务,能否在这几个端口上找到突破点!)

渗透测试

111端口RPCBIND

RPC(remote procedure call)远程过程调用!它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议,简单的理解就是一个节点请求另一个节点提供的服务。

RPC协议假定某些传输协议的存在,如TCP或者是UDP,为通信程序之间携带信息数据,在OSI网络通信模型中,RPC跨越了传输层和应用层;

RPC采用了客户端/服务器的模式,请求程序就是一个客户机,而服务提供程序就是一个服务器;

2049端口 NFS

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源;

在NFS的应用中,本地的NFS客户端应用可以透明的读写位于远端NFS服务器上的文件,就像是访问本地文件一样

NFS适用于Linux和Unix之间实现文件共享,不能实现Linux和windows之间的文件共享功能;

NFS是运行在应用层的协议,其监听于2049/tcp和2049/udp套接字上

NFS服务只能基于IP进行认证!

(PS:大概看到这里我便有了一种思路,靶机上既然开启了NFS,那么我们攻击机是客户端,是不是就能访问到靶机上的文件呢?)

攻击机安装NFS

既然靶机上已经开启了NFS,那么我们尝试就是利用kali当作是客户端,来尝试访问靶机上的文件!首先我们在攻击机kali上安装NFS;

apt-get install nfs-common

等待安装完成之后,利用showmount命令进行测试:

-a : 显示指定NFS服务器的所有客户端主机及其所连接的目录
-e : 显示指定的NFS服务器中已被客户端连接的所有输出目录
-d : 显示指定的NFS服务器上所有输出的共享目录
showmount -e 192.168.1.78

可以看到存在一个共享目录是/home/user/storage目录,尝试利用mount命令手动挂载到我们的本地的目录:

mount -t nfs 192.168.1.78:/home/user/storage ./storage

这里首先我在当前的目录下,创建了一个目录 storage:

然后客户端执行的手动挂载命令,将192.168.1.78的nfs服务的共享目录/home/user/storage 挂载到本地./storage目录中:

查看当前的storage目录,发现了backup.7z文件!

尝试下载下来利用7z进行解压!但是存在密码~

尝试利用hashcat进行破解!先7z2john提取出hash:

7z2john backup.7z > hash.txt

然后利用hashcat进行破解:7-Zip对应的hash模式为11600

相关参考资料:hashcat破解压缩包密码(7z/rar/zip) - 哔哩哔哩

最终拿到密码为chocolate!尝试解压文件!

拿到了8个图片和ssh登录的公钥私钥文件!尝试利用公私钥文件进行登录ssh:查看公钥文件拿到了用户为user

尝试利用id_rsa进行登录!

id_rsa文件的权限过高了,修改为600!

修改完之后,再次尝试利用私钥文件进行登录:

但是要输入id_rsa文件的密码,这个密码我们又不知道,再次尝试利用john进行破解!

ssh2john id_rsa > id_rsa_hash
john id_rsa_hash /usr/share/wordlist/rockyou.txt

破解得到密码,这里我没去看图片的隐写,因为比较麻烦,所以先去尝试了直接进行破解,然后破解不成功的话,就需要去看一下图片的隐写了,这里比较幸运,直接破解成功拿到了密码是12345678

再次尝试ssh登录:

最终成功登录进来!准备提权~

提权

当前用户是user,查看/etc/passwd文件,判断是否存在其他可以利用的文件:

发现没有其他常用的用户!内核版本信息发现了OpenBSD 6.4版本,尝试利用searchsploit进行搜索:

发现一个权限提升的漏洞,下载下来尝试能否利用:下载下来的是一个txt文件,这里我直接下载的:

https://github.com/bcoles/local-exploits/blob/master/CVE-2019-19726/openbsd-dynamic-loader-chpass

然后通过NFS上传到storage目录下面了,给执行的权限,尝试执行!

提权成功~ 查看flag文件:

拿到最终的flag文件!

总结

看了红笔大佬的分享,学习一下大佬提权的手法,利用的是doas进行的后续提权!

什么是doas?

doas出现在OpenBSD系统中,这里前面通过uname即可收集到的信息,所以我们需要去关注doas!它类似于sudo!

相关的配置文件出现在/etc/doas.conf文件中!

允许user无密码的情况下,保持环境变量执行 /usr/bin/less 后面加参数 /var/log/authlog 查看这个日志文件,那么我们就按照他说的去执行即可!

doas /usr/bin/less /var/log/authlog

打开之后,按v启动vi编辑器;这个vi编辑器的权限就是less给的权限

按v之后,可进入编辑模式,但是会提示只读,进入编辑模式后,可以通过vi编辑器操作方式,执行系统命令,即:!/bin/sh,此时便会提升到root权限!

彩蛋

        这里为什么拿到的backup压缩包中存在着8张看起来没什么用处的图片呢?还记不记得我们id_rsa也是有密码的,输入的密码是什么?(12345678)刚好是12345678,是不是对应着这八张图片呢???这个脑洞稍微有点点大,当作是小彩蛋啦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/291655.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript 基础三part1.数组

JavaScript 基础三part1.数组 2.1 数组是什么2.2 数组的基本使用(1)声明(2)取值(3)一些术语(4)遍历数组 2.3 操作数组(1)修改(2)新增&…

SpringBoot日志打印Logback详解【子节点详解】【附案例】

笑小枫的专属目录 1. 背景2. 什么是Logback3. SpringBoot使用logback介绍4. 自定义logback配置5. 如何把日志同步到ES中6. logback配置属性详解根节点< configuration>子节点:< property>子节点:< appender>filetargetappendprudentlayout和encoderlayout和e…

Spring的bean的生命周期!!!

一.单例模式 单例&#xff1a;[启动容器]--->通过构造方法&#xff08;创建对象&#xff09;---->调用set方法&#xff08;注入&#xff09;--->调用init方法&#xff08;初始化&#xff09;----[容器关闭]----->调用destroy方法&#xff08;销毁&#xff09; app…

任务需求分析中的流程图、用例图、er图、类图、时序图线段、图形的作用意义

任务需求分析中的流程图、用例图、er图、类图、时序图线段、图形的作用意义 流程图 流程图中各种图形的含义及用法解析 连接线符号 连接各要素&#xff0c;表示流程的顺序或过程的方向。 批注符号 批注或说明&#xff0c;也可以做条件叙述。 子流程 流程中一部分图形的逻辑…

SpringMVC通用后台管理系统源码

SpringMVC通用后台管理系统源码 整体的SSM后台管理框架功能已经初具雏形&#xff0c;前端界面风格采用了结构简单、 性能优良、页面美观大的Layui页面展示框架 数据库支持了SQLserver,只需修改配置文件即可实现数据库之间的转换。 系统工具中加入了定时任务管理和cron生成器&am…

代码随想录27期|Pthon|Day31|贪心算法|理论基础|455.分发饼干|376. 摆动序列|53. 最大子序和

理论基础 首先&#xff0c;贪心算法基本靠“做题感觉”&#xff0c;所以没有规范的总结和做题技巧&#xff0c;只能说见到过之后还能想起来。 一般情况可以看成是对于一个大的问题的子问题的局部最优的求解&#xff0c;然后可以推导出全局的最优。 这个过程没有证明&#xf…

【C#】知识点实践序列之Lock的锁定代码块

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂之知识点实践序列》文章。 2024年第1篇文章&#xff0c;此篇文章是C#知识点实践序列之Lock知识点&#xff0c;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 本篇验证Lock锁定代…

常用环境部署(十三)——GitLab整体备份及迁移

一、GitLab备份 注意&#xff1a;由于我的GitLab是docker安装的&#xff0c;所以我的操作都是在容器内操作的&#xff0c;大家如果不是用docker安装的则直接执行命令就行。 1、Docker安装GitLab 链接&#xff1a;常用环境部署(八)——Docker安装GitLab-CSDN博客 2、GitLab备…

Python常用模块之hashlib

常用模块 - hashlib模块 一、简介 Python的hashlib提供了常见的摘要算法&#xff0c;如MD5、SHA1、SHA224、SHA256、SHA384、SHA512等算法。 什么是摘要算法呢&#xff1f;摘要算法又称哈希算法、散列算法。它通过一个函数&#xff0c;把任意长度的数据转换为一个长度固定的…

C# 全屏label控件实现的贪吃蛇。

C# 全屏label控件实现的贪吃蛇。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using stat…

两阶段提交协议三阶段提交协议

两阶段提交协议 分布式事务是指会涉及到操作多个数据库的事务,在分布式系统中&#xff0c;各个节点之间在物理上相互独立&#xff0c;通过网络进行沟通和协调。 XA 就是 X/Open DTP 定义的交易中间件与数据库之间的接口规范&#xff08;即接口函数&#xff09;&#xff0c;交易…

网络安全—模拟ARP欺骗

文章目录 网络拓扑安装使用编辑数据包客户机攻击机验证 仅做实验用途&#xff0c;禁止做违法犯罪的事情&#xff0c;后果自负。当然现在的计算机多无法被欺骗了&#xff0c;开了防火墙ARP欺骗根本无效。 网络拓扑 均使用Windows Server 2003系统 相关配置可以点击观看这篇文章…

安卓和Android是两种不同的操作系统?

实际上&#xff0c;安卓和Android并不是同一种操作系统&#xff01; Android是由Google开发并维护更新的一款操作系统&#xff0c;目前仅能运行在Pixel手机上。 Google Pixel 与 iPhone手机&#xff1a;哪个更好&#xff1f;Google Pixel 与 Apple iPhone哪个手机才是性价比最…

【 RF 射频 电缆】 MIL-C-17F 标准 规格

第〇、&#xff1f;&#xff1f; RGXXXXX 第一、应用场景 标准号应用场景–&#xff08;–&#xff09;RG-8 RG-9 RG-11粗缆以太网–RG-58细缆以太网–RG-59 RG-75电视系统–RG-62ARCnet网络和IBM 3270网络–RG142电信设备之间的互连 航空电子机架 雷达 GPS 医疗–RG178通信…

Unity坦克大战开发全流程——结束场景——失败界面

结束场景——失败界面 在玩家类中重写死亡函数 在beginPanel中锁定鼠标

红日靶场第一关 attck

之前因为事情耽搁了&#xff0c;今天争取把第一关红日靶场完成 目前找到了关于外网服务器的网址 之前有过扫描目录得知了登陆界面 和爆破得到的密码 目前我们的想法是把病毒上传到网页当中&#xff0c;所以我们应该找个文件注入点 但是再次之前 我们需要找到网页的绝对路径 …

抽奖的问题

import randomlucky_num [] # 存放中奖人名单&#xff0c;避免多次中奖 lucky_count 0 # 表示每一种奖品人数够了for time in range(0, 3): # 抽三次奖lucky_count 0 # 每次刷新print(f第一次抽奖现在开始&#xff0c;这次抽的是{3-time}等奖\n)# 判断奖品是哪个if time…

什么是 JSON?JSON详解

现在程序员还有谁不知道 JSON 吗&#xff1f;无论对于前端还是后端&#xff0c;JSON 都是一种常见的数据格式。那么 JSON 到底是什么呢&#xff1f; JSON 的定义 JSON &#xff08;JavaScript Object Notation&#xff09; &#xff0c;是一种轻量级的数据交换格式。它的使用…

LLM Agent之再谈RAG的召回多样性优化

1. Query多样性 2019 Query Expansion Techniques for Information Retrieval: a Survey 传统搜索Query的扩展&#xff0c;有基于用户搜索日志挖掘的相似Query&#xff0c;有基于相同召回文档关联的相似Query&#xff0c;也有基于SMT的Query改写方案。那和大模型时代更搭配的自…

C语言快速入门——高级特性

C语言高级特性 C语言高级特性函数创建和使用函数全局变量和局部变量函数参数和返回递归调用 指针什么是指针指针与数组多级指针指针数组与数组指针指针函数与函数指针 结构体、联合体和枚举创建和使用结构体结构体数组和指针联合体枚举typedef关键字 预处理文件包含系统库介绍宏…