概述
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.