Linux 应急响应

大道之行,天下为公。这篇文章主要讲述Linux 应急响应相关的知识,希望能为你提供帮助。
查询特权用户特权用户(uid 为0)awk -F: $3==0print $1 /etc/passwd
查找远程可以登录的账户awk /\\$1|\\$5|\\$6/print $1 /etc/shadow

  • $1:MD5(长度 22个字符)
  • $5:SHA-256(长度 43 个字符)
  • $6:SHA-512(长度86 个字符)
检查sudo权限
cat /etc/sudoers | grep -v "^#\\|^$" | grep "ALL=(ALL"

删除或锁定账号
通过上面的步骤可以找到可疑的账号
usermod -L root #禁用帐号,帐号无法登录 userdel root#删除user用户userdel -r root #将删除root用户,并且将/home目录下的root目录一并删除

查看当前登录系统的信息
who#查看当前登录用户(tty本地登陆pts远程登录) w#查看系统信息,想知道某一时刻用户的行为 uptime #查看登陆多久、多少用户,负载

检查异常端口使用netstat 网络连接命令,分析可疑端口、IP、PID等信息。
netstat -tunlp | less

使用ps命令检查可疑的进程
ps -ef ls -al /proc/pid号/exe查看异常进程对应文件 stat 对应文件查看文件的时间信息

查看隐藏进程
ps查看进程:ps -ef | awkprint $2 |sort -n |uniq > ps.p proc目录进程文件:ls /proc | sort -n | uniq > proc.p 对比两个文件找出不同的Pid:diff ps.pproc.p-y#-y 是并排格式输出

查父进程
查看子进程和父进程三种方法:例如子进程为64263 1、ps -ef | grep 64263第三列为父进程 2、pstree -aps 64263 systemd,1 --system --deserialize 20 └─nginx,64261 └─nginx,64263 3、cat /proc/64263/status看PPID(父进程)

查超系统中占用资源最高的资源
top 发现异常进一步检查ps eho command -p $PID#查看该进程启动的完整命令行 readlink /proc/$PID/cwd #查看该进程启动时候所在的目录ls -l /proc/$PID/exe#查看下pid所对应的进程文件路径strings -f /proc/$PID/environ | cut -f2 -d#查看该进程启动时的完整环境变量:lsof -p $PID #列出该进程所打开的所有文件

检查系统服务Linux系统服务管理,CentOS7使用systemd控制 CentOS6之前使用chkconfig控制。查看正在运行的服务
检查开机自启的服务对于systemd服务管理器来说,可以通过下述方式查看开机自启的服务
chkconfig就是CentOS6以前用来控制系统服务的工具,查看服务自启动状态
检查启动项脚本命令查看下开机启动项中是否有异常的启动服务。
cat /etc/rc.localchkconfig --list命令查看自启动服务systemctl list-unit-files

检查计划任务利用计划任务进行权限维持,可作为一种持久性机制被入侵者利用。检查异常的计划任务,需要重点关注以下目录中是否存在恶意脚本。
/var/spool/cron/* /etc/crontab#对所有用户生效 /etc/cron.d/* /etc/cron.daily/* /etc/cron.hourly/*/etc/cron.monthly/*/etc/cron.weekly//etc/anacrontab/var/spool/anacron/*

检查系统的异常文件查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以.为名的文件夹具有隐藏属性
查找1天以内被访问过的文件
检查历史命令
  1. 查看被入侵后,在系统上执行过哪些命令,使用root用户登录系统,检查/home目录下的用户主目录的.bash_history文件
  2. 默认情况下,系统可以保存1000条的历史命令,并不记录命令执行的时间,根据需要进行安全加固。
检查系统日志在Linux上一般跟系统相关的日志默认都会放到/var/log下面,
若是一旦出现问题,用户就可以通过查看日志来迅速定位,
```及时解决问题。常用日志文件如下:
/var/log/btmp
记录错误登录日志,这个文件是二进制文件,不能用vi直接查看,可以用lastb看
/var/log/lastlog
记录系统中所有用户最后一次成功登录系统的时间,这是一个二进制文件,不能用vi查看,可以用lastlog查看
【Linux 应急响应】/var/log/wtmp
永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。
同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看。
/var/log/utmp
记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化
只记录当前登录用户的信息。
同样这个文件不能直接vi, 而要使用w,who,users等命令来查询。
/var/log/secure
记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录
比如SSH登录,su切换用户,sudo授权, 甚至添加用户和修改用户密码都会记录在这个日志文件中
/var/log/cron记录了系统定时任务日志
/var/log/dmesg记录了系统在开机时内核自检信息
/var/log/message记录系统重要信息日志
/var/log/mailog记录邮件信息
##### web日志分析工具工具:比如360星图##### 数据库日志在数据泄漏方面,mysql或者其他数据库的日志就非常重要了,首先查看mysql配置文件配置了哪几种日志记录,如bin log,query log慢查询日志,慢查询日志要在超过特定阀值,才会触发登陆mysql执行,查看是否开启日志记录show variables like %general%; show variables like slow_query%; 查看相关的日志Mysql慢查询日志分析工具mysqldumpslow,使用方法如下https://blog.csdn.net/weixin_34681072/article/details/113160046查找登录系统失败的20个账号> lastb | awk print $1 | sort | uniq -c | sort -nr | head -n 20查看哪些IP在爆破> grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c查看哪些IP登录成功了> grep "Accepted" /var/log/secure | awk print $11 | sort | uniq -c | sort -nr | more登录成功的日期,用户名,IP> gerp "Accepted" /var/log/secure | awk print $1,$2,$3,$9,$11![扫码_搜索联合传播样式白色版1.png](https://s2.51cto.com/images/20220507/1651903356964147.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)


    推荐阅读