# temp_files **Repository Path**: finy/temp_files ## Basic Information - **Project Name**: temp_files - **Description**: 临时markdown文件 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-11-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 缘由 某台服务器CPU异常, 4核心CPU使用 3个核心 使用top 查看看不到那个程序使用了CPU ### 分析 1. top 命令后输入小写c 看到一个命令在使用CPU 杀掉后马上又起来了, 怀疑已经安装了后门程序去除非木马运行 2. 删除了木马后又自动生成了新的木马, 怀疑部分命令已经被劫持故意隐藏木马和触发木马运行 3. 发现部分命令属性(lsattr /usr/bin/ps)都带**i**了 4. 使用vim 编辑命令文件可以发现里面有带木马字符串等 ### 处理 1. 先找出$PATH下所有命令带i 属性的 2. 找一台系统版本一致的 比如 生产CentOS 6.7 本地环境6.5 左右都可以 3. 本地环境执行以下命令 常用命令处理 ``` cd / python -m SimpleHTTPServer # 开启一个简单的HTTP服务器, 生产能够访问随意映射一个端口 ``` 4. 生产服务器执行命令 ``` mkdir -p ~/safe cd ~/safe #!/usr/bin/env bash s=~/safe host="http://112.5.6.8:8000" #修改成自己的服务器 for c in $(echo "/bin/chmod /bin/rm /usr/bin/wget /usr/bin/chattr /usr/bin/lsattr");do echo $host$c 1>/dev/null 2>&1 #chmod 755 $(echo $c|awk -F"$(dirname $c)" '{print $2}'| sed -e 's/\///') done chmod 755 $s/* for p in $(echo $PATH| sed -e 's/:/ /g');do if [ ! -d $p ];then continue ;fi cd $p files=$($s/lsattr 2>/dev/null | $s/grep '\-i\-' | $s/awk '{print $2}'|$s/sed -e 's/\.\///g') echo $files for f in $(echo $files);do error_404=$(curl $host$p/$f -I 2>/dev/null | $s/grep -Po "HTTP/1.\d 404") if [ -z "$error_404" ];then $s/chattr -i $p/$f $s/rm -f $p/$f $s/wget $host$p/$f $s/chmod 755 $p/$f else $s/chattr -i $p/$f $s/rm -f $p/$f fi done done ``` 4. 一般会隐藏成系统服务 修改回来即可 centos7: /etc/rc.d/init.d/network centos6: /etc/init.d/network ``` find / -type f | grep -E -v "(sys/|proc/|dev/)" | xargs lsattr | grep "\-i\-" >/tmp/file ``` 5. 碰到这样的情况最好重装系统, 更新内核, 服务普通用户运行 6. 病毒名为tplink /usr/sbin/tplink 劫持 ps netstat network top 等命令 /usr/lib64/... 目录 系统内所有带 i属性文件 清空 /usr/lib64/... 目录 ``` cd /usr/lib64 chattr -i \.\.\. mv \.\.\. fuck cd fuck find -type d | xargs chattr -i find -type f | xargs chattr -i rm -rf * cd ../ rm -rf fuck ```