初识应急响应之Linux篇

前言

注:文章中测试命令的操作系统为centos8
如果部分日志内容为空的话,尝试重启syslog服务和sshd服务

系统信息

lscpu 查看主机配置信息
在这里插入图片描述

uname -a 查看操作系统信息
在这里插入图片描述

cat /proc/version 查看操作系统版本信息
在这里插入图片描述

lsmod 查看系统模块信息
在这里插入图片描述

用户信息

cat /etc/passwd 查看系统用户信息

显示/bin/bash的表示账户状态为可登录

显示/sbin/nologin的表示账户状态为不可登录

root:x:0:0:root:/root:/bin/bash

# 用户名:密码:用户id:用户组id:注释:用户主目录:默认登录shell

在这里插入图片描述

查询uid为0的超级权限账户

awk -F: '{if($3==0)print$1}' /etc/passwd

# 在/etc/passwd文件中,如果第三组的值等于0,那么就输出第一组的值,也就是用户名

在这里插入图片描述

查询结尾为/bin/bash的可登录账户

cat /etc/passwd | grep "/bin/bash"

在这里插入图片描述

lastb 查询登录失败的信息
在这里插入图片描述

lastlog 查看所有用户最后的登录信息
在这里插入图片描述

last 查看用户最近的登录信息
在这里插入图片描述

who 查看当前用户登录情况
在这里插入图片描述

查询空密码账户

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

启动项

查看init.d文件下的内容,根据修改时间排序(init.d目录是rc.loacl的软链接,存放开机启动的服务脚本)

ls -alt /etc/init.d

在这里插入图片描述

查看rc.loacl文件内容(rc.loacl 启动加载文件)

cat /etc/rc.loacl 

在这里插入图片描述

计划任务

crontab -l 查看当前计划任务

crontab -u root -l 查看root用户的计划任务
在这里插入图片描述

linux计划任务一般是以cron开头

ls /etc/cron* 查看/etc下以cron开头的文件
在这里插入图片描述

进程排查

查看网络连接情况

netstat  #查看网络连接情况
netstat -antlp  # 查看所有tcp连接信息的详情

在这里插入图片描述

根据可以的pid值查找对应的程序,这里随便查个,pid 3260

ls -alt /proc/3260 

# 查找pid 3260对应的可执行程序

在这里插入图片描述

查看pid 3260打开的文件

lsof -p 3260 # -p参数为要查询的pid值

在这里插入图片描述

如果发现恶意文件或进程可以使用以下命令清除/结束

kill -9 pid  #强制结束进程
rm -rf  #强制删除文件

如果还是无法删除相关文件,可能是文件被加上了守护进程,需要移除i属性,可以自己新建个文件测试下,如下所示

lsattr filename  #查看文件属性
chattr -i filename  #移除文件i属性

在这里插入图片描述

查询隐藏进程

ps -ef | awk '{print}' | sort -n | uniq > 1
ls /proc | sort -n | uniq > 2
diff 1 2

在这里插入图片描述

top 查看系统状态

对于挖矿类的排查可以用过top命令来排查,挖矿类的通常资源占用率比较高
在这里插入图片描述

服务排查

查看系统运行的服务

chkconfig --list  #1-6代表不同等级

在这里插入图片描述

查看系统服务运行状态

systemctl list-unit-files

在这里插入图片描述

文件痕迹

敏感目录

下列路径通常为恶意软件的下载路径和后门配置的路径

  • /tmp
  • /usr/bin
  • /usr/sbin
  • ~/.ssh
  • /etc/ssh

查找时间点

通过find命令查找一天内新增的脚本文件

find / -ctime 0 -name "*.sh"

在这里插入图片描述

查看该目录下最近创建的前10个文件

ls -lha | head -n 10

在这里插入图片描述

stat查看文件的详细信息,access访问时间,modify修改时间,change文件属性更改时间
在这里插入图片描述

查找特殊文件,权限为777的文件

find / -perm 777

查找php文件里带有sys的文件,xargs egrep 后面为要查询的文件内容

find -name "*.php" | xargs egrep sys

在这里插入图片描述

查看系统命令的修改时间和大小

ls -alt /bin    
ls -lha /bin

查找有suid权限的程序

find / -type f -perm -04000 -ls -uid 0 2>/dev/null

后门检测工具:chkrootkit、rkhunter等

日志分析

日志概述

linux中日志文件一般存放在 /var/log目录 下

/var/log/wtmp 记录登录进入、退出、数据交换、关机和重启,类似于last命令

/var/log/cron 记录定时任务相关的日志信息

/var/log/messages 记录系统启动后的信息和错误日志

/var/log/apache2/access.log 记录apache的访问日志

/var/log/auth.log 记录系统授权信息,包括用户登录和使用的权限机制等

/var/log/userlog 记录所有等级用户信息的日志

/var/log/xferlog(vsftpd.log) 记录linux ftp日志

/var/log/lastlog 记录登录用户,等同于lastlog命令

/var/log/secure 记录大多数应用输入的账号和密码,以及登录成功和失败的信息

/var/log/faillog 记录登录系统不成功的账号信息

日志分析

linux日志分析主要使用grep、sed、sort、awk等命令

tail -n 10 xx.log  #查询最后10行的日志
tail -n +10 xx.log  #查询10行之后的日志
head -n 10 xx.log  #查询前10行的日志
head -n -10 xx.log  #查询除了最后10行的其他日志

在日志中统计独立ip地址个数的命令:

awk '{print $1}' xx.log | sort | uniq | wc -l
awk '{print $1}' xx.log | sort | uniq -c | sort -nr | head -10

查找指定时间段日志的命令:

sed -n '/2022-1-1 00:00:00,2022-1-1 23:59:59/p' xx.log
grep '2022-1-1 00:00:00' xx.log

定位有多少ip地址在暴破主机root账户:

cat /var/log/secure | awk '/Accepted/{print $(NF-3)}' | sort | uniq -c | awk '{print $2"="$1;}'

查看登录成功的ip地址

cat /var/log/secure | awk '/Failed/{print $(NF-3)}'| sort | uniq -c | awk '{print $2"="$1;}'

查看登录成功日期、用户名、IP地址

grep "Accepted" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值