vulhub-connect

该靶机的主要知识点有:摩斯密码,fuck脚本,断电文件,一种是tar直接读取root的flag,一种是polkit提权

开始渗透

常规nmap扫描

nmap -sn 10.10.10.0/24 端口比较多,可以处理一下方便复制,用/作分隔符取第一位,并将换行符替换为

cat portscan.nmap | grep 'open' | awk -F '/' {'print $1'} | tr '\n' ','

接着详细扫描

nmap -sT -sV -sC -O -p21,80,111,2049,7822,37381,39995,48903,53453 10.10.10.151

脚本扫描

nmap --script=vuln -p21,80,111,2049,7822 10.10.10.151 

这边扫描出一些目录枚举的内容还有一个sql注入

FTP和NFS渗透

有挺多值得尝试渗透的端口,我们先试试ftp和nfs

ftp 10.10.10.151,输入anonymous匿名登入,失败,试试nfs

查看挂载

showmount -e 10.10.10.151

有个目录,试试能不能挂载到本地

mkdir mor

mount -t nfs 10.10.10.151:/home/morris mor

ls -laih

可惜都没有什么有用的信息,接着我们可以去看看80端口

web渗透

进来是一堆文字,也没有什么功能点,查看源码也没有什么提示

试试目录爆破

gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://10.10.10.151

在/mysite目录下有一些文件

这个cs文件很值得查看一下(因为这种后缀的不常见)

下载下来看看

这是jsfuck(这么一大串,肯定很可疑,不知道的放gpt看一下就好了)

接下来来解密它把

记得把前面的变量和"全删了

或者直接在这个页面的console控制台用console.log将所有的字符串变量拼接即可

console.log(b1+b2+b3+b4+b5+b6+b7+b8+b9+b10)

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

CoderTab - JSUnFuck - Decode JSFuck Here

解码成功

You're smart enough to understand me. Here's your secret, TryToGuessThisNorris@2k19

TryToGuessThisNorris@2k19应该就是一个凭据,那么账号是什么,前面的挂载目录提示我们morris,试了一下不行,回到网站看看,首页的文字有提示我们

试一下norris

提权norris

ssh norris@10.10.10.151 -p 7822(注意ssh端口修改为7822)

成功

ls一下有个ftp ,进入,枚举有一些.bak文件想把他们下载下来看看

(如果目录下的文件不是文本.txt文件的话,需要先运行binary指令(转换为二进制格式,以保证通过FTP下载的文件不会损坏。运行了prompt指令可疑关闭了交互模式)

mget  *.*

都下载到本地了

file查看一下啊

game.jpg.bak下有个类是摩斯密码的

具体看一下

放到线上网站解密一下

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.

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

进入web目录/var/www/gtml查找线索:

有个secretfile.swp,优先查看它

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

下载下来试试能不能查看

本地查看

科普一下swp文件:是编辑器突然断电或 Ctrl+z 产生的文件

.swap是交互信息,vim非正常退出会有sawp,可以使用vim -r参数读取损坏的swp文件:

好像又得到了一个凭据

试试切换root,不行,试试morris,可疑

提权root

下一步就是进行提权了。两个用户用哪个提权都没有倾向性,因此根据用户组的信息,我们还是选用norris进行提权(起码norris所在用户组有sudo):

还是常规提权枚举,sudo -l,定时任务,history,find

最后是这个/sbin/getcap -r / 2>/dev/null后(用于递归地检查和列出根文件系统(“/”)中的文件和目录的文件功能。),其实可以用linpeas的

现有打包工具tar,具有能力cap_dac_read_search+ep:

cap_dac_read_search+ep:这是指定文件的扩展文件权限标志。它包含两个部分:

cap_dac_read_search:这是一种扩展文件权限标志,表示该文件具有读取和搜索(read/search)访问权限,通常用于文件系统的访问。具体来说,这个标志允许 tar 命令读取文件和搜索目录,而不需要使用者拥有完全的文件访问权限。

+ep:这部分表示该文件是一个具有执行权限(execute permission)的可执行文件。这意味着用户可以运行 /usr/bin/tar 命令,并且它将以正常的用户身份执行,而不需要特权(root权限)。+ep 的意思是执行和提升权限(effective privilege),这允许 tar 在不需要完全的 root 权限的情况下执行一些特定高权限的操作。

说白了,就是tar具有特殊高权限,我们使用tar时哪怕没有拥有文件的访问权限也可以正常读取和搜索。  那我们直接用tar把/root目录打包,然后再解压就可以看到flag即root.txt:

tar -zcvf  root.tar.gz /root

然后我们再解压即可读取root.txt:

tar -zxvf root.tar.gz

提权

1.find / -perm -u=s -type f 2>/dev/null

该文件的属主和数组都是root,且具有s位权限,可以以属主的身份运行,应该可以提权:

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具有高权限,因此就有可能实现提权。

systemd-run -t /bin/bash

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值