挖矿病毒自助查杀手册

/

  1. 阻断恶意网络通信。
    在发现主机存在挖矿行为后,由于完整地处理整个挖矿事件的周期比较长,所以为了及时控制挖矿影响,需要首先阻断挖矿木马的网络通信行为。
    执行以下命令,查看当前系统网络连接状态。
    netstat -antp
    执行以下命令查看网络连接ip归属

    #查询服务器上连接归属地

    1. netstat -tunp | grep ESTABLISHED | awk '{split($5, arr, ":"); print arr[1], $7}' | sort | uniq | while read ip process; do location=$(curl -s "ipinfo.io/$ip" | jq -r '[.country, .city, .org] | join(", ")') printf "%-15s %-20s %s\n" "$process" "$ip" "$location" done
    2. #备用
    3. netstat -tunp | grep ESTABLISHED | awk '{split($5, arr, ":"); print arr[1], $7}' | sort | uniq | while read ip process; do location=$(curl -s "http://ip-api.com/json/$ip" | jq -r '[.country, .city, .isp] | join(", ")')printf "%-15s %-20s %s\n" "$process" "$ip" "$location"done


    将以下命令中c2地址替换为正常业务不会使用的可疑远程地址(Foreign Address),然后执行下述命令添加防火墙规则,阻断服务器与该可疑地址之间的所有网络连接。
    iptables -A INPUT -s c2地址 -j DROP
    iptables -A OUTPUT -d c2地址 -j DROP
    iptables -L
    iptables-save | sudo tee /etc/iptables/rules.v4

    #批量处理
    while read ip; do

    1. sudo iptables -A OUTPUT -d "$ip" -j DROP

    done < ip.txt

    while read ip; do

    1. sudo iptables -A OUTPUT -d "$ip" -p tcp -j REJECT --reject-with tcp-reset

    done < ip.txt

    #终止tcp连接
    yum install dsniff
    tcpkill -i eth0 host 167.94.138.36
    vi /etc/hosts
    127.0.0.1 rootcanary.com canonicalconnect.com s3.tebi.io awarmcorner.world donate.v2.xmrig.com gcc.gnu.org xmrig.com

  2. 清除计划任务。
    挖矿木马常通过计划任务实现定期下载(更新)并启动挖矿木马,如果仅清理挖矿进程、挖矿木马文件,并不能根治挖矿程序,且会出现挖矿反复的情况。
    排查以下计划任务文件,删除计划任务中的挖矿木马下载和启动任务。
    cat /etc/passwd | cut -f 1 -d : |xargs -I {} sudo crontab -l -u {}

    列出 Linux 系统中 /etc 目录下所有以 cron. 开头的文件和目录

    ls /etc/cron.*
    清除自启动服务项。
    执行以下命令,排查系统所有自启动服务
    systemctl list-unit-files | grep enabled
    找到对应可疑服务的单元文件,排查服务详细信息。
    将命令中替换为服务名称,替换为服务的单元文件名称。
    ls -al /etc/systemd/system/
    .service
    ls -al /usr/lib/systemd/system/*.service

    查看服务详细信息(服务启动的进程文件)

    cat /etc/systemd/system/.service
    如果发现恶意的自启动服务项,使用以下命令禁用服务,删除对应单元文件。
    将命令中替换为服务名称,替换为服务的单元文件名称。
    systemctl disable
    rm /etc/systemd/system/.service
    rm /usr/lib/systemd/system/.service
    排查以下服务路径是否有自启动服务,然后参考以上步骤进行清理。
    /etc/rc.local
    /etc/inittab
    /etc/rc.d/
    /etc/init.d/

  3. 清除SSH公钥
    挖矿木马通常会将黑客SSH公钥写入/.ssh/authorized_keys文件中,以便黑客可以通过SSH免密登录受害主机,重新植入恶意文件。您需要排查/.ssh/authorized_keys文件,如果发现可疑公钥,立即删除。
    清除.so劫持。
    通过/etc/ld.so.preload文件设定预加载的.so文件,可以劫持常见的系统命令,例如top/ps/netstat等,达到隐藏挖矿进程的目的。
    执行以下命令,排查预加载的.so文件。
    cat /etc/ld.so.preload
    执行以下命令,删除预加载劫持
    echo > /etc/ld.so.preload

  4. 清除恶意账号
    部分挖矿木马家族会创建新的后门账号,以达到长期控制受害主机的目的。执行以下命令,查看恶意账号,然后手动删除相关账号信息。
    通过日志查看近期是否有创建账号行为。
    cat /var/log/audit/audit.log | grep useradd

    或者

    cat /var/log/secure | grep ‘new user’
    通过/etc/passwd文件查看是否有可疑账号
    cut -d: -f1 /etc/passwd
    通过账户的home目录查看可疑账户的创建或最近活跃时间,需特别关注近期创建的home目录。
    stat /home/guest/
    防修改对抗。
    部分挖矿木马在写入计划任务、自启动等持久化文件后,会为对应文件设置一个不可更改的属性,防止对应持久化任务被删除

    如上图,遇到此类情况可以执行以下命令,恢复文件属性后再删除对应任务
    chattr -i /etc/passwd
    chattr -i /etc/crontab

  5. 清除挖矿木马进程
    挖矿进程通常占用较高的CPU,通过以下命令可以排查可疑的挖矿进程。
    排查占用主机大量CPU的进程。
    top -c
    ps -eo pid,ppid,cmd,%cpu –sort=-%cpu | more
    获取可疑进程的文件路径。
    ls -al /proc/$PID/exe
    执行以下命令,终止挖矿进程,并清理挖矿文件
    kill -9 $PID

    删除 ls -al /proc/$PID/exe 获取的进程路径

    rm /path/to/executable

转载请注明作者和出处,并添加本页链接。
原文链接: //svn.seekcy.com/898