黑客入侵检查

思路

  • 扫描木马工具:clamAV
    官网:http://pkgs.repoforge.org/clamav/
  • CentOS 安装:yum install -y clamav*
  • 启动 clamAV 服务:service clamd restart
  • 更新病毒库:freshclam
  • 扫描方法:
    • 扫描 /etc 目录,并把扫描结果放在 /root 目录下:clamscan -r /etc –max-dir-recursion=5 -l /root/etcclamav.log
    • 扫描 /bin 目录,并把扫描结果放在 /root 目录下:clamscan -r /bin –max-dir-recursion=5 -l /root/binclamav.log
    • 扫描 /usr 目录,并把扫描结果放在 /root 目录下:clamscan -r /usr –max-dir-recursion=5 -l /root/usrclamav.log
  • 如果日志有类似内容,表示有木马病毒:
    • /usr/bin/.sshd: Linux.Trojan.Agent FOUND
    • /usr/sbin/ss: Linux.Trojan.Agent FOUND
    • /usr/sbin/lsof: Linux.Trojan.Agent FOUND
  • 看下当前有多少登录者:who
  • 看下最近有哪些登录者:last
  • 查看最近尝试登录的账号信息:grep “sshd” /var/log/secure
    • 很多这种信息就表示有人在不断地尝试用 root 登录:Failed password for root from 222.186.56.168 port 4080 ssh2
  • 查看最近登录成功的账号信息:grep “Accepted” /var/log/secure,可以看到:pop3, ssh, telnet, ftp 类型
  • 看下查看系统资源占用有无异常:top
  • 看下所有进程:ps aux
  • 查看当前系统登录者有哪些,及其登录记录:last | more
  • 把最近执行的所有命令输出到一个文件,然后下载下来细细研究:history >> /opt/test.txt
  • 查看当前系统所有用户有哪些:cat /etc/passwd |awk -F \: ‘{print $1}’
    • 更多详细可以用:cat /etc/passwd
  • 查看开放的端口,比如常用的80,22,8009,后面的箭头表示端口对应占用的程序:netstat -lnp
  • 检查某个端口的具体信息:lsof -i :18954
  • 检查启动项:chkconfig
  • 检查定时器(重要):cat /etc/crontab
  • 检查定时器(重要):crontab -l
    • vim /var/spool/cron/crontabs/root
    • vim /var/spool/cron/root
  • 检查其他系统重要文件:
    • cat /etc/rc.local
    • cd /etc/init.d;ll
  • 检查文件:
    • find / -uid 0 –perm -4000 –print
    • find / -size +10000k –print
    • find / -name “…” –print
    • find / -name “.. “ –print
    • find / -name “. “ –print
    • find / -name “ “ –print
  • 下载 iftop 分析流量,查看是否被黑客当做肉鸡使用
  • 安装 iftop
  • 运行:iftop
    • 显示端口与 IP 信息:iftop -nP
1
2
3
4
5
6
7
8
9
10
11
中间部分:外部连接列表,即记录了哪些ip正在和本机的网络连接

右边部分:实时参数分别是该访问 ip 连接到本机 2 秒,10 秒和 40 秒的平均流量

=> 代表发送数据,<= 代表接收数据

底部会显示一些全局的统计数据,peek 是指峰值情况,cumm 是从 iftop 运行至今的累计情况,而 rates 表示最近 2 秒、10 秒、40 秒内总共接收或者发送的平均网络流量。

TX:(发送流量) cumm: 143MB peak: 10.5Mb rates: 1.03Mb 1.54Mb 2.10Mb
RX:(接收流量) 12.7GB 228Mb 189Mb 191Mb 183Mb
TOTAL:(总的流量) 12.9GB 229Mb 190Mb 193Mb 185MbW
  • 禁用 root 账号登录:vim /etc/ssh/sshd_config
    把 PermitRootLogin 属性 yes 改为 no
  • 如果安全度要更高,可以考虑禁用口令登录,采用私钥/公钥方式:vim /etc/ssh/sshd_config
    设置属性:PasswordAuthentication 为 no
  • 如果还要限制指定 IP 登录,可以考虑编辑:hosts.allow 和 hosts.deny 两个文件
  • 重要系统软件更新(更新之前最好先做好系统镜像或是快照,以防万一):
1
2
3
4
5
6
7
yum update kernel
yum update kernel-devel
yum update kernel-firmware
yum update kernel-headers
yum update openssh
yum update openssh-clients
yum update openssh-server

实战
挖矿程序

  • 先查看调度任务是否有新增内容
    • vim /var/spool/cron/root
    • vim /var/spool/cron/crontabs/root
  • 如果有,先停止定时任务:systemctl stop crond
  • 如果对方有去 wget curl 指定网站,则先在 hosts 里面映射为 127.0.0.1,比如:127.0.0.1 prax0zma.ru
    • 查看当前最占用 CPU 的进程 PID,加入发现是 22935,则:cd /proc/22935 && ll,_发现程序目录是:/root/.tmp00/bash64
    • 我们就把该程序去掉执行任务的权限:chmod -R -x /root/.tmp00/,然后再 kill 掉该程序
  • 打开别人的脚本,看下是如何书写的,发现有写入几个目录,这里进行删除:
    • rm -rf /tmp/.ha /boot/.b /boot/.0 /root/.tmp00
  • 最后检查下是否有免密内容被修改:cd ~/.ssh/ && cat authorized_keys