Linux入侵排查

一、Linux入侵排查思路

1、检测系统的账号安全

  • 查询特权用户

    shell 复制代码
    # 查看UID为0的用户,排查可疑新用户
    awk -F: '{if($3==0)print $1}' /etc/passwd
  • 查询可以登录的用户

    shell 复制代码
    # 查看能够登录的用户
    cat /etc/passwd |grep bin/bash
    # 查看可以远程登录的账号
    awk '/\$1|\$6/{print $1}' /etc/shadow
  • 查看sudo用户列表,除了root账号外,其他账号是否存在sudo权限

    shell 复制代码
    # 查询除了root账号外,其他账号是否存在sudo权限(如非管理需要,普通账号应删除sudo权限)
    more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL) "
  • 查看当前登录用户及登录时长

    shell 复制代码
    # 查看系统登录用户,常用命令有:who、w、uptime
    who        # 查看当前登录用户(tty本地登陆 pts远程登录)
    uptime     # 查看登陆多久、多少用户,负载状态
    w          # 显示已经登录系统的所有用户,以及正在执行的命令
  • 查看用户登录信息

    shell 复制代码
    # 查看最近登录成功的用户信息
    last
    # 查看最近登录失败的用户信息
    lastb
    # 显示所有用户最近一次登录信息
    lastlog
  • 禁用或删除多余账号

    shell 复制代码
    # 禁用或者删除多余及可疑的账号
    usermod -L user        # 禁用账号,账号无法登录,/etc/shadow第二栏为!开头
    userdel [-r] user      # 伤处用户user,参数r表示将/home目录下的用户家目录一并删除

2、检查异常端口或进程

  • 使用netstat命令查看端口连接情况,分析可疑端口、IP、PID等信息

    shell 复制代码
    netstat -antlp|more

    Local Address(本地地址),查看有无重要端口被连接,如:22、3306等。
    Foreign Address(外部地址),查看有无常用IP或可疑IP连接,IP可疑使用在线危险情报平台检索,如:微步在线。
    PID/Program name(PID/程序名称),查看是否有可疑程序,如:bash可能为执行反弹shell。

  • 查看PID所对应的进程文件路径

    shell 复制代码
    # 查看pid所对应的进程文件路径($PID为对应的pid号)
    ls -l | /proc/$PID/exe
    file /proc/$PID/exe
    # 查看启动命令
    ps --ef |grep $PID(效果同 ps aux |grep $PID)
    # 查看pid进程启动的环境变量与命令行等信息
    ps eho command -p $PID
    # 查看pid进程启动时所在的目录
    readlink /proc/$PID/cwd

3、检查启动项

有时木马或者病毒等脚本会隐藏在开机启动中,而Linux的启动项是取决于当前用户的运行级别的,查看运行级别命令:runlevel

运行级别 含义
0 关机
1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重新启动
  • 开机启动配置文件

    shell 复制代码
    /etc/rc.local          # /etc/rc.local是/etc/rc.d/rc.local的软连接
    /etc/rc.d/rc[0~6].d    # 0~6代表运行级别

    当需要开机启动脚本时,将可执行脚本放在/etc/init.d/目录下,接着在/etc/rc.d/rc[0~6].d中建立软链接即可

  • 入侵排查项

    排查启动项文件,排查/etc/init.d/目录下是否存在可以的脚本或者文件,也可以排查原来的脚本是否被篡改(对关键文件做hash,然后进行对比)

4、检查系统自启动服务

查看系统的自启动服务,发现可疑服务,立即关停对应的服务

shell 复制代码
# Centos7 查看自启服务
systemctl list-unit-files --type=service | grep "enabled"
# Centos6 查看自启服务状态
chkconfig --list
# Centos6 查看系统在运行级别为3级和5级下的启动项
chkconfig --list | grep "3:on\|5:on"

5、检查定时任务

入侵系统的黑客一般会使用crontab创建定期任务,如定期下载木马,定期下载挖矿病毒,定期进行内网扫描等等。

  • crontab命令

    shell 复制代码
    crontab -l         #列出某个用户cron服务的详细内容
    crontab -e         #进入crontab任务编辑
    crontab -r         #删除所有计划任务
  • anacron命令
    Linux系统创建定时任务除了crontab之外,还有一个工具是anacron。anacron是一个异步定时任务调度工具,用来弥补crontab的不足。

  • 入侵排查项

    shell 复制代码
    # 重点关注以下目录是否存在恶意脚本
    /var/spool/cron/* 
    /etc/crontab
    /etc/cron.d/*         # 此目录下存放的是系统级任务的任务文件
    /etc/anacrontab       # 这个文件存着系统级的任务。它主要用来运行每日的(daily),每周的(weekly),每月的(monthly)的任务。
    /var/spool/anacron/*
    /etc/cron.daily/* 
    /etc/cron.hourly/* 
    /etc/cron.monthly/*
    /etc/cron.weekly/

6、检查异常文件

  • 查看敏感目录

  • 发现Webshell、远控木马的创建时间,可以使用find命令来查找,如下命令:

    shell 复制代码
    # 找出 /opt 目录下一天前访问过的文件
    find /opt -iname "*" -atime 1 -type f 
    -atime n  # 表示查找文件的访问时间距离当前时间为n*24小时以内的文件
    -atime +n # 表示查找文件的访问时间距离当前时间超过n*24小时的文件
    -atime -n # 表示查找文件的访问时间距离当前时间不超过n*24小时的文件
  • 针对可疑文件可以使用stat查看创建、修改以及访问时间

    shell 复制代码
    stat <文件名>

7、检查历史命令

  • 查看当前用户的历史命令

    shell 复制代码
    history
  • 查看其他用户的历史命令

    打开/home各帐号目录下的.bash_history

    shell 复制代码
    cat .bash_history

    如果用户的默认shell 是bash,那么bash会记录用户的默认历史记录

    /.bash_history记录的是上一次登陆系统所执行过的命令,而当前登陆这一次则保存在内存缓存中,当系统关机/重启后会更新到/.bash_history文件中

  • 清除历史操作命令

    shell 复制代码
    # 该命令并不会清楚保存在文件中的记录,需要手动删除~/.bash_history文件中的记录。
    history -c
  • 历史命令优化查看

    1)增加历史命令查看条数,保存1万条命令配置

    shell 复制代码
    sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile

    2)增加显示登录的IP和执行命令的时间信息,在/etc/profile的文件尾部添加如下行数配置信息

    shell 复制代码
    ######jiagu history xianshi#########
    USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
    if [ "$USER_IP" = "" ]
    then
    USER_IP=`hostname`
    fi
    export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
    shopt -s histappend
    export PROMPT_COMMAND="history -a"
    ######### jiagu history xianshi ##########

    使配置生效:source /etc/profile

8、检查系统日志

系统日志默认存放位置:/var/log/

日志文件 说明
/var/log/cron 记录了系统定时任务相关的日志
/var/log/cups 记录打印信息的日志
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/mailog 记录邮件信息
/var/log/message 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件
/var/log/btmp 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看
/var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看
/var/log/wtmp 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看
/var/log/utmp 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w、who、users等命令来查询
/var/log/secure 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中

二、Linux入侵排查技巧

  • 定位有多少IP在爆破主机的root帐号

    shell 复制代码
    grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
  • 攻击者爆破哪些用户名

    shell 复制代码
    grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
  • 登录成功的IP有哪些

    shell 复制代码
    #登录成功的日期、用户名、IP:
    grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' 
  • 系统添加、删除用户的记录和时间

    shell 复制代码
    grep "useradd" /var/log/secure
    grep "userdel" /var/log/secure

三、Linux入侵排查工具介绍

1、Rootkit查杀

2、病毒查杀

3、Webshell查杀linux版:

4、linux安全检查脚本

四、善用威胁情报

威胁情报是识别和分析网络威胁的过程。威胁情报平台可以查出一些域名和IP地址得信誉度,一旦发现它们存在网络攻击痕迹可以迅速封禁。

参考文档:https://www.cnblogs.com/illusory---/p/15004485.html

相关推荐
且从容.21 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道21 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达1 天前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
且从容.1 天前
ubuntu安装flink
linux·ubuntu·flink
数字新视界1 天前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落1 天前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨1 天前
WSL2的安装与使用
linux·wsl
微小的鱼1 天前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng1 天前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮1 天前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频