linux 应急响应排查笔记

经过几次应急,总结出常用的命令,命令可能不全,欢迎网友来补充。


常规操作

二、 查看系统异常进程

命令:top

    大写P排序COU从高到底

    大写M排序内存从高到低


三、 根据PID查看异常进程运行的文件

命令:ls -la /proc/$pid/exe

    (例子:ls -la /proc/123/exe)


四、 根据PID查看异常进程打开的文件

   命令: lsof -p 123

五、 根据PID查看异常进程占用的端口

   命令: netstat -anltp | grep 123

六、 根据PID跟踪异常进程运行情况

    命令:strace -tt  -T -e  trace=all  -p 123


七、 结束进程

    命令:kill -9 123
    #往往病毒进程被kill了还是会自启动,可以先检查会在什么目录下生成,然后用chattr +i 目录 将该目录先锁定,阻止异常进程不断自启动,然后再对定时任务以及启动项等进行排查。

八、 查看开机自启的程序

    命令: systemctl list-unit-files|grep enabled
                ls -alt /etc/init.d/

停止启动
     命令:systemctl stop mongodb.service

九、 查找隐藏文件

    命令:ls -ar | grep "^\."



全面步骤

端口排查

#查看端口建立连接情况

    netstat -pantu | grep ESTABLISHED

#查看端口监听情况

    netstat  -anptl | less

#抓取流量

    tcpdump -i eth0 -w ./aa.cap

修改文件排查

#查找24小时内被修改的文件

    find / -mtime 0

#查找24小时内,被修改过的jsp文件

    find / -mtime 0 -name *.jsp

可疑文件排查

#查找后缀为jsp,内容包含eval的文件

    find /www/wwwroot/ -name "*.jsp" | xargs grep  "eval" |more 

#查找可读可写可执行的jsp文件

    find / -name *.jsp -perm 777 

#使用find将可疑文件进行打包,使用软件进行分析

    find ./ -name '*.php' |tar -cvf php.tar

SUID文件排查

S:代表以拥有者的权限执行此文件。

    find / -perm -4000  2>/dev/null

历史命令排查

#查看本地用户的历史命令

    history

#查看别的用户历史命令,进入到别的用户家目录下。

    more ~/.bash_history

用户及登录情况排查

#用户最近登录信息

    last

#查看所有登录失败的用户

    lastb

#查看所有用户历史登录情况

    lastlog

#显示目前登入系统的用户信息

    w

#查看ROOT以外的其它UID是0的用户

    awk -F: '$3==0{print $1}' /etc/passwd | grep -v root

#查看root以外其它GID是0的用户

    awk -F: '$4==0{print $1}' /etc/passwd | grep -v root

#查看是否与空口令的用户

    awk -F: 'length($2)==0 {print $1}' /etc/shadow

#查看是否有其他非需要账户存在sudo权限:

    more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

#去除不需要使用的账户

    系统默认帐号不需要的话,建议停用。

    /bin/bash 或者/bin/sh 等 Shell 变量。

    可以在/etc/passwd 中将它们的 shell变量设为/bin/false、/dev/null或者/sbin/nologin/ 等,

    也可以使用 usermod -s /dev/null username 命令来更改 username 的 shell 为/dev/null。

    1、/etc/passwd字段格式说明:

    第一字段:用户名。

    第二字段:口令。显示为X即为密码存在且已映射到/etc/shadow文件。显示为!!即为

    空密码。

    第三字段:UID

    第四字段:GID

    第五字段:用户名全称,可选设置。例如示例中gdm用户未设置全称,webalizer用户

    设置webalizer用户全称。

    第六字段:用户“home”目录所在位置。

    第七字段:用户所用shell类型,如换成/sbin/nologin/则该用户无法登陆

远程登录配置排查

#限制管理员root远程登录

    1.通过root用户vim/etc/ssh/sshd_config
    2.将#PermitRootLogin yes 修改为PermitRootLogin no
    3.保存然后重启shh服务就可以生效
    4.重启ssh服务操作
    5.service sshd restart

#修改SSH登录端口
    1、通过root用户vi/etc/ssh/sshd_config
    2、在防火墙上放行TCP-33389端口
    3、将#port 22 修改为port 33389
    4、保存然后重启ssh服务就可以生效
    5、重启ssh服务操作
    6、service sshd restart

#允许IP可以远程登录root 、
    #vi /etc/hosts.allow
        新加sshd:192.168.2.188:allow
        如有多个另起一行sshd:192.168.2.199:allow(单独IP的添加方法)
        新加sshd:192.168.2.:allow (一段IP的添加方法)

    #vi /etc/hosts.deny
        添加:sshd: ALL    禁用其它IP连接ssh服务
        添加:sshd:deny    允许其它IP链接SSH服务

你可能感兴趣的:(linux 应急响应排查笔记)