信息收集
服务探测
先arp扫一下ip
还是nmap扫一下
靶机上开了很多服务大多是有关邮箱的端口,我们先看一下80端口上有哪些信息
不是基于wordpress就是一个普通的apache服务
浏览器访问发现是个ssh密钥,使用cyberchef将密钥文件与十六进制分离一下
文件名给出提示用户名是baby,使用ssh登录-i指定密钥文件名
登入用户
登入baby用户
1 | ssh [email protected] -i baby |
cat一下passwd发现有三个用户
Sudo提权mum
尝试sudo -l发现mom这个用户下可以使用sudo soelim
通过查询得知soelim是文本处理工具那么可以使用他来读取mon用户下的文件
我们直接尝试读取user的flag发现并没有这个文件
那么可以再试试读取他的ssh文件
一般在用户目录下的.ssh/id_rsa是个隐藏文件
成功读取到了连接mum用户的ssh密钥,
1 | ssh [email protected] -i mum |
Sudo提权dad
登录到了mum用户使用sudo -l查看sudo权限
发现第一个root用户下的命令是个大坑,你跳了基本就要重新开始了
问了下ChatGPT才知道后面为什么读不到passwd,原来是被自己删了
后面做第二遍的时候才知道
这时候直接利用dad用户下的权限后面紧跟ALL说明什么都可以执行
需要提供mum用户的密码,但我们是通过ssh密钥登录上来的,所以需要从其他地方找一下密码的线索查看环境变量发现密码藏着这里
passwd=LA0172
后续登录到dad账户在其根目录下找到user的flag1,这是base64编码后的
提权Root
如何拿到root权限从现在开始无从下手了,那就拿脚本扫一下好了, wget一下kali上的脚本
1 | dad@family2:/home$ cd /tmp/ |
SGID提权
发现/opt/clock
文件有SGID权限
切换到opt目录下执行一下clock发现就是一个显示时间的程序,可能调用了环境变量中的date命令使用strings查看一下
PATH环境劫持
那后面直接再新建一个环境变量
1 | dad@family2:/tmp$ echo -n "/bin/bash"> date |
再次执行
成功切换到root用户
拿到root的flag文件