概述
PersistenceIsFutile是来自于HTB(hackthebox.com)的一个中级数字鉴识挑战,完成该挑战所需要掌握的知识点在于Linux下的升权方法。
题目分析
该挑战提供了一个在线环境,以及ssh登录的用户名和密码,挑战说明中提示目标系统存在8个安全隐患,将所有隐患清除后可以获得flag。
解题过程
使用提供的ssh用户登录, 并逐一清除系统中的安全隐患。
* 检查系统用户文件/etc/passwd
发现其中的gnats用户所属的组及其登录选项被篡改, 将其恢复原值。
* 使用crontab -e命令检查当前用户的cron表
发现其中被植入的命令行,将其删除。
* 检查/etc/cron.daily/目录下的文件,
发现两个被植入的文件
其中pyssh调用/lib/python3/dist-packages/ssh_import_id_update命令,
access-up则将/bin/bash复制到一些随机的文件路径,并赋予SUID文件属性。
将这两个文件删除。
* 列出系统中具有SUID属性的可执行文件
发现以上由access-up生成的/bin/bash复本,以及/usr/sbin/ppppd和/home/user/.backdoor,删除这些文件。
* 列出系统中root用户的进程
发现其中的/var/lib/private/connectivity-check进程,终止这些进程并删除该文件,及其启动文件/etc/update-motd.d/30-connectivity-check:nohup。
* 检查当前用户的.bashrc文件
发现其中被修改的cat命令, 将其删除。
* 检查root用户的.bashrc文件
发现其中的alertd命令, 将其删除,并删除/usr/bin/alertd文件。
* 检查/lib/python3/dist-packages/ssh_import_id_update文件
将其中的KEY和PATH进行base64解码后,可以发现其代码修改/root/.ssh/authorized_keys的内容, 删除该文件,并将植入的内容从/root/.ssh/authorized_keys中删除。
完成以上步骤后,允许sudo /root/solveme即可通过检查并获得flag.