freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

vulhub-FourAndSix2
2024-04-15 22:29:52

这台靶机的知识点有nfs渗透,john破解转换hash文件的.7a和rsa,doas中的less+vi提权

常规端口扫描

nmap -sn 10.10.10.0/24
nmap --min-rate 10000 -p- 10.10.10.143
nmap -sT -sV -O -sC -p22,111,2049 10.10.10.143
nmap -sU --min-rate 10000 -p- 10.10.10.143
nmap --script=vuln -p22,111,2049 10.10.10.143

发现靶机的ip是10.10.10.143,开放了3个端口,分别是22的ssh端口,111的rpc端口,2049的nfs共享文件端口

NFS渗透

使用showmount工具查看靶机是否有共享文件夹

showmount -e 10.10.10.143

可以看到共享目录是/home/user/storage,同时(everyone)表明任何人都可使用此共享目录1713189898_661d340a8ae93dbd9c999.png!small?1713189898668

本地创建tmp目录,尝试挂载

mkdir tmp 
mount -t nfs 10.10.10.143:/home/user/storage tmp

-t是type的意思,指定为nfs共享文件模式

1713190003_661d34733451c45f94db1.png!small?1713190003270

成功挂载,接下来看一下挂载的目录里面有什么东西

1713190050_661d34a26083b23f77a3d.png!small?1713190053384

拿到backup.7z后,把这个文件复制到上级目录(避免在挂载目录处理留下痕迹),看起来是个7z的压缩包,我们先用file查看具体的文件类型,并用binwalk看看有啥捆绑:

1713190077_661d34bd993eff765f771.png!small?1713190078077

没有什么感兴趣的,接下来尝试解压他

破解7z压缩包密码

7z -x backup.7z

直接利用7z解压提示需要密码,暂时没有有关密码的凭证

随便尝试输入一个,会出现报错信息,将里面的文件暴露出来,有8张图片和两个文件(id_rsa,id_rsa.pub),嗯,这两个像ssh公私钥的文件很感兴趣

接下来尝试利用john转换格式爆破(这个方式很好用)

1.先用7z2john生成7z压缩包的哈希

7z2john backup.7z > backup7z_hash

如果出现这种报错

1713190351_661d35cfa5f5e207feb63.png!small?1713190351806

解决方法:

sudo apt update
sudo apt install libcompress-raw-lzma-perl

然后删掉错误生成的backup7z_hash,再次运行7z2john backup.7z > backup7z_hash应该就不会有报错了。查询结束。

2.利用john破解hash文件

john --format=7z --wordlist=/usr/share/wordlists/rockyou.txt backup7z_hash

1713190402_661d36026c97918c4abc7.png!small?1713190403188

得到压缩包的密码是chocolate

将压缩包解压,先不着急利用公私钥文件,看看那8张图片有没有让人惊喜的地方

看看有没有捆绑

binkwalk hello*.*

没有捆绑

看看隐写

exiftool hell*.*

没啥东西,让我们试试公私钥文件吧

ssh私钥登录

查看一下,是openssh的密钥

1713190579_661d36b3d040be49040b0.png!small?1713190580157

1713190592_661d36c020e998a64db3b.png!small?1713190592451

ssh -i id_rsa user@10.10.10.143

连接需要密码(user用户是咱们上面挂载文件夹下有个user目录,猜测有个用户是user)

1713190637_661d36ed27c1264729a9d.png!small?1713190637269

让我们破解一下d_rsa私钥的密码,思路和破解压缩包是一样的

ssh2john id_rsa > id_rsa_hash

john id_rsa_hash --wordlist=/usr/share/wordlists/rockyou.txt

拿到了私钥的passphrase是12345678

再次登入

1713190773_661d377534adbd025736d.png!small?1713190774185

less+vi提权

还是常规的提权枚举

在find / -perm -u=s -type f 2>/dev/null查找suid的方法找到感兴趣的东西

1713190844_661d37bc7323711b80c33.png!small?1713190844714

这里要重点关注doas这个指令,该指令类似于sudo,即以高权限运行指令需要添加的命令。由于doas指令是具有s位的,因此使用doas可以以高权限运行指令。我们要查找的就是有哪些指令可以免密doas运行(即类似于ubuntu/debian的Linux运行sudo -l 后有哪些免密sudo的指令),这就需要查找doas的配置信息了。我们直接用find搜索doas的相关文件:

find / -name doas* -type f 2>/dev/null

1713190933_661d38151d3d09411a9b2.png!small?1713190933232

doas.conf应该就是doas的配置文件了,查看一下它

1713190997_661d385503f23c5eb9f1f.png!small?1713190996939

非常关键的信息!这个文件告诉我们,less和authlog指令是可以用doas免密以root权限运行的!那我们就运行试试:

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

发现在执行用less读取authlog的操作

那么要如何提权呢?此处我们是使用less命令对authlog进行查看,且此时less命令是具有root权限的。但less只能读文件,不能执行系统命令。我们要找可以交互的地方,在less中按字母v是可以启动vi编辑器的,而vi编辑器中输入冒号:后即可输入交互的指令,又由于less具有root权限,在less中启动的vi编辑器应该也具有root权限,那么我们按v进入vi编辑器后,输入:!sh应该就能够以root身份启动shell了。

1713191167_661d38ff0cd874b9f5ad0.png!small?1713191167326

成功提权

1713191186_661d3912cf99a3f834e24.png!small?1713191186832

扩展

OpenBSD 是⼀个基于 Berkeley Software Distribution (BSD) 的开源操作系统,强调正确性、简单性和安全性。这个系统中的 "doas" 是⼀个命令⾏⼯具,设计⽤来提供超级⽤户权限(类似于 Linux 中的"sudo" 命令),允许普通⽤户执⾏需要超级⽤户权限的操作。

"doas" 的配置⽂件默认位置是 /etc/doas.conf 。此配置⽂件规定了哪些⽤户可以使⽤ "doas" 命令以及他们可以执⾏的命令范围。

⼀个基本的 "doas.conf" ⽂件的条⽬可能会如下所示:

permit keepenv :wheel

这个条⽬允许 "wheel" 组的所有成员使⽤ "doas" 命令执⾏任何操作,并保留他们的环境变量。

"doas.conf" ⽂件的每⼀⾏都代表⼀个规则,这些规则按照⽂件中的顺序进⾏处理。⼀旦找到⼀个匹配的规则,系统就会停⽌搜索,所以具有最⼤限制的规则通常会放在⽂件的顶部。

更复杂的规则可以限制⽤户能够运⾏的具体命令,例如:

permit nopass jsmith as root cmd reboot

这个规则允许⽤户 "jsmith" 不需要密码就可以作为 root ⽤户运⾏ "reboot" 命令。

请注意,修改 "doas.conf" ⽂件需要超级⽤户权限,并且⼀定要谨慎处理,因为错误的配置可能会导致系统安全性的问题。

# 渗透测试
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录