简介
初步处理,待更新...
工具分享

这里分享个几个应急响应工具, 这里我用 toybox ,来查找恶意程序,再分享一个排查工具 GScan。

我把 toybox 这个工具上传到 /usr/bin 文件夹里,方便任意位置调用,它和 busybox 功能一样,那为什么不用 busybox?因为被恶意程序禁用掉了。
检查项
/etc/passwd
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/*
/etc/anacrontab
/var/spool/anacron/*
/var/log/auth.log
/var/log/syslog
/var/log/messages
/var/log/secure
/var/log/audit/audit.log
/var/log/boot.log
/var/log/kern.log
/var/log/httpd/
/var/log/mysql/
/var/log/dmesg
/var/log/btmp
/var/log/lastlog
/var/log/wtmp
/var/log/utmp{/collapse-item}
{collapse-item label="排查命令" close}
# 建议配合busybox或toybox来执行系统命令,避免文件被恶意程序劫持和替换。
top
iftop
ps -elf | grep <keyword>
netstat -anop
ss
who -m
awk -F: '($3==0)' /etc/passwd
find / -name <keyword>
cat
ls{/collapse-item}
查找异常

tobybox top通过 toybox 定位到可疑进程占用大量CPU,重启后 gettexted 后缀会随机变化,它是挖矿的主程序。

它有潜伏期现在是没挖矿状态,但后面跟着一堆可疑程序,通过计算哈希值提交给VT与微步,发现是有问题的。
system.pub



gettexted.psscn

疑似多个命令文件被恶意程序给劫持,通过 ps、ls 发现并不能找到恶意程序,而用toybox来执行却能找到。



review

通过VT查找可以看到程序的可以行为,并编写了清除恶意程序的 bash 脚本。
清除代码1
#!/bin/bash
processes=("gettexted.*" "postmaped.*" "matchpathcond.*" "postcated.*" "telinited.*" "devlinked.*")
for process in "${processes[@]}"; do
echo "$process"
toybox pkill -f "$process"
done
# 清理文件
files=(
"/etc/init.d/dns-udp4"
"/etc/profile.d/gateway.sh"
"/.mod"
"/etc/.cfg"
"/boot/system.pub"
"/etc/profile.d/bash.cfg"
"/lib/system.mark"
"/usr/lib/libgdi.so.0.8.2"
"/usr/sbin/netstat.cfg"
"/etc/profile.d/bash.cfg.sh"
)
cleanup_file() {
local file="$1"
toybox rm -rf "$file"
toybox echo -n > "$file"
toybox chmod 000 "$file"
chattr +i "$file"
}
cleanup_files() {
local files=("$@")
for file in "${files[@]}"; do
cleanup_file "$file"
done
}
cleanup_files "${files[@]}"
# 系统加固
toybox echo 32768 > /proc/sys/kernel/pid_max
toybox echo 0 > /proc/sys/kernel/ns_last_pid
toybox rm -rf /usr/bin/review
toybox rm -rf /usr/bin/gettexted*
toybox rm -rf /usr/bin/biosdecoded*
toybox rm -rf /usr/bin/devlinked*
toybox rm -rf /usr/bin/telinited*
toybox rm -rf /usr/bin/postcated*
toybox rm -rf /usr/bin/matchpathcond*
toybox rm -rf /usr/bin/postmaped*
toybox rm -rf /usr/bin/mldconfig
systemctl enable kdump.service
systemctl restart ssh清除代码2
#!/bin/bash
rm -rf /etc/init.d/dns-udp4
rm -rf /etc/profile.d/gateway.sh
sed -i '/\/usr\/sbin\/netstat.cfe/d' /etc/rc.d/rc.local
sed -i '/\*\/1 \* \* \* \* root \/\.mod/d' /etc/crontab
sed -i '/\/lib\/system.mark/d' /etc/rc.d/init.d/network
echo -n >/.mod
echo -n > /etc/.cfg
echo -n > /boot/system.pub
echo -n > /etc/profile.d/bash.cfg
echo -n > /lib/system.mark
echo -n > /usr/lib/libedi.so.8.8.2
echo -n > /usr/sbin/netstat.cfg
echo -n > /etc/profile.d/bash.cfg.sh
echo -n > /etc/selinux/config
echo -n > /dev/null
rm -rf /etc/selinux/targeted/tmp/modules/100/
chmod 000 /.mod /etc/.cfg /bot/system.pub /etc/profile.d/bash.cfg /lib/system.mark /usr/lib/libgdi.so.0.8.2 /usr/sbin/metstat.cfg /etc/profile.d/bash.cfg.sh
chmod +i /.mod /etc/.cfg /bot/system.pub /etc/profile.d/bash.cfg /lib/system.mark /usr/lib/libgdi.so.0.8.2 /usr/sbin/metstat.cfg /etc/profile.d/bash.cfg.sh
###替换被篡改的文件
./toybox-x86_64 cp -f ./agetty /usr/bin/agetty
./toybox-x86_64 cp -f ./tty /usr/bin/tty
./toybox-x86_64 cp -f ./ssh /usr/bin/ssh
./toybox-x86_64 cp -f ./scp /usr/bin/scp
./toybox-x86_64 cp -f ./umount /usr/bin/umount
sed -i '/auth[[:space:]]\+sufficient[[:space:]]\+pam_sftp\.so/d' /etc/pam.d/sshd
sed -i '/auth[[:space:]]\+sufficient[[:space:]]\+pam_sftp\.so/d' /etc/pam.d/su
sed -i '/auth[[:space:]]\+sufficient[[:space:]]\+pam_sftp\.so/d' /etc/pam.d/sudo
if [ $? -eq 0 ]; then
echo "命令执行成功。"
else
echo "命令执行失败。"
fi待分析...
评论 (0)