Linux 应急响应命令总结【持续更新】

系统基本信息

CPU 信息

CPU 信息:

lscpu

Linux 应急响应命令总结【持续更新】_第1张图片

操作系统信息

操作系统信息:

uname -a

img

操作系统信息:

cat /proc/version

img

模块信息

模块信息:

lsmod

Linux 应急响应命令总结【持续更新】_第2张图片

账户信息

系统所有账户

系统所有账户:

cat /etc/passwd

Linux 应急响应命令总结【持续更新】_第3张图片

超级权限账户

超级权限账户:

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

img

可登录账户

可登录账户:

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

img

最近20条登录失败信息

最近20条登录失败信息:

lastb | head -n 20

Linux 应急响应命令总结【持续更新】_第4张图片

所有账号最后登录信息

所有账号最后登录信息:

lastlog

Linux 应急响应命令总结【持续更新】_第5张图片

最近20条登录信息

最近20条登录信息:

last | head -n 20

Linux 应急响应命令总结【持续更新】_第6张图片

当前登录账号信息

当前登录账号信息:

who

img

空口令账号

空口令账号:

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

img

启动项

启动项:

ls -lat /etc/init.d/

Linux 应急响应命令总结【持续更新】_第7张图片

启动项:

cat /etc/init.d/rc.local

img

启动项:

cat /etc/rc.local

Linux 应急响应命令总结【持续更新】_第8张图片

计划任务

当前计划任务

当前计划任务:

crontab -l

img

Linux Crontab 计划任务

/var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
/etc/crontab 这个文件负责调度各种管理和维护任务。
/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。

我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作作)

我们用crontab -e进入当前用户的工作表编辑,是常见的vim界面。每行是一条命令。

crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有

* 取值范围内的所有数字
/ 每过多少个数字
-XZ
,散列数字
<分钟> <小时> <> <> <星期> <命令>

实例1:每1分钟执行一次myCommand
* * * * * myCommand
​
实例2:每小时的第3和第15分钟执行
3,15 * * * * myCommand
​
实例3:在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
​
实例4:每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2  *  * myCommand
​
实例5:每周一上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand
​
实例6:每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
​
实例7:每月11022日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
​
实例8:每周六、周日的1 : 10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
​
实例9:每天18 : 0023 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
​
实例10:每星期六的晚上11 : 00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
​
实例11:每一小时重启smb
0 */1 * * * /etc/init.d/smb restart
​
实例12:晚上11点到早上7点之间,每隔一小时重启smb
0 23-7/1 * * * /etc/init.d/smb restart
创建、编辑计划任务的命令为crontab -e
查看当前计划任务的命令为crontab -l
删除某条计划任务的命令为crontab -r

另外,如果您是以管理员的身份登录的系统,还可以在crontab命令中加上-u参数来编辑他人的计划任务。

crontab命令的参数及其作用
参数       作用
-e       编辑计划任务
-u       指定用户名称
-l       列出任务列表
-r       删除计划任务
分、时、日、月、星期 命令
如果有些字段没有被设置,则需要使用星号(*)占位
使用crond设置任务的参数字段说明
字段       说明
分钟       取值为059的整数
小时       取值为023的任意整数
日期       取值为131的任意整数
月份       取值为112的任意整数
星期       取值为07的任意整数,其中07均为星期日
命令       要执行的命令或程序脚本

在crond服务的配置参数中,一般会像Shell脚本那样以#号开头写上注释信息,这样在日后回顾这段命令代码时可以快速了解其功能、需求以及编写人员等重要信息。

计划任务中的“分”字段必须有数值,绝对不能为空或是*号,而“日”和“星期”字段不能同时使用,否则就会发生冲突。

cron是Linux中默认的计划任务。使用cron,你可以安排一个计划(比如:命令或者shell脚本)周期性地运行或者在指定的分钟、小时、天、周、月等特定时间运行。cron在你安排不同的常规维护任务时是很有用的,比如周期性地备份、日志循环、检查文件系统、监测磁盘空间等等

每个cron任务的格式如下。

<分钟> <小时> <> <> <星期> <命令>

查看计划任务文件

查看计划任务文件:

ls -lat /etc/cron*

Linux 应急响应命令总结【持续更新】_第9张图片

/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/*
/etc/anacrontab

网络连接

网络连接:

netstat -antlp

Linux 应急响应命令总结【持续更新】_第10张图片

查找对应运行程序

查找对应运行程序:

ls -lat /proc/20583

Linux 应急响应命令总结【持续更新】_第11张图片

查看程序打开文件

查看程序打开文件:

lsof -p 20583

Linux 应急响应命令总结【持续更新】_第12张图片

结束进程

结束进程:

kill -9 20583

Linux kill命令

Linux kill 命令用于删除执行中的程序或工作。

linux 的 kill 命令是向进程发送信号,kill 不是杀死的意思,-9 表示无条件退出,但由进程自行决定是否退出,这就是为什么 kill -9 终止不了系统进程和守护进程的原因。

Linux pkill 命令

Linux pkill 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令。

kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作,更加方便。

pkill -9  php-fpm  //结束所有的 php-fpm 进程

Linux killall 命令

Linux killall 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程。

kill 命令杀死指定进程 PID,需要配合 ps 使用,而 killall 直接对进程对名字进行操作,更加方便。

killall -9 php-fpm          //结束所有的 php-fpm 进程

查看文件属性
查看文件属性:lsattr filename
移除 i 属性
移除 i 属性:chattr -i filename
查看隐藏进程
​
ps -ef | awk '{print}' | sort -n | uniq > 1
ls /proc | sort -n | uniq > 2
diff 1 2

Linux 应急响应命令总结【持续更新】_第13张图片

查看资源占用率较高的进程

查看资源占用率较高的进程:top

Linux 应急响应命令总结【持续更新】_第14张图片

系统运行服务

系统运行服务:chkconfig –list

Linux 应急响应命令总结【持续更新】_第15张图片

Centos7 查看自启动列表systemctl list-unit-files以及设置服务自启动
系统运行服务:systemctl list-unit-files
​
所有服务状态
所有服务状态:service --status-all

Linux 应急响应命令总结【持续更新】_第16张图片

所有服务状态:

显示所有的服务状态—空格翻页 q推出
systemctl list-units --type service –all

Linux 应急响应命令总结【持续更新】_第17张图片

查看启动成功的服务列表
systemctl list-unit-files | grep enabled

Linux 应急响应命令总结【持续更新】_第18张图片

查看启动失败的服务列表
systemctl --failed

Linux 应急响应命令总结【持续更新】_第19张图片

查看所有服务的状态—空格翻页 q退出
systemctl list-unit-files --type service

Linux 应急响应命令总结【持续更新】_第20张图片

文件痕迹排查

敏感目录

/tmp
/usr/bin/
/usr/sbin/
~/.ssh/
/etc/ssh/
​
时间点查找
find:在指定目录下查找文件
​
-type b/d/c/p/l/f:查找块设备、目录、字符设备、管道、符号链接、普通文件
​
-mtime -n +n:按文件更改时间来查找文件,-n 指 n 天以内,+n 指 n 天前。
​
-atime -n +n:按文件访问时间来查找文件,-n 指 n 天以内,+n 指 n 天前。
​
-ctime -n +n:按文件创建时间来查找文件,-n 指 n 天以内,+n 指 n 天前。
​
查找一天内新增的 sh 文件
​
查找一天内新增的 sh 文件:find / -ctime 0 -name "*.sh"

img

查看排序后前10行的内容
查看排序后前10行的内容:ls -lat | head -n 10

Linux 应急响应命令总结【持续更新】_第21张图片

排查文件创建、修改、访问时间
排查文件创建、修改、访问时间:stat /etc/passwd

Linux 应急响应命令总结【持续更新】_第22张图片

特殊文件

特殊权限文件
​
特殊权限文件:find /tmp -perm 777WebShellWebShell:find /var/www/ -name "*.php"
​
系统命令检测
​
系统命令检测:ls -lat /bin/ /sbin/
​
系统命令检测:ls -lah /bin/ /sbin/
​
后门检测
​
后门检测:chkrootkit -q | grep INFECTEDSUID 程序排查
​
SUID 程序排查:find / -type f -perm -04000 -ls -uid 0 2>/dev/null

Linux 应急响应命令总结【持续更新】_第23张图片

日志分析

日志概述
​
/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/vftpd.log FTP 日志
/var/log/lastlog 登录的账号,也可以使用命令 lastlog 查看
/var/log/secure 大多数应用输入的账号和密码,以及登录成功与否
/var/log/faillog 登录系统失败的账号信息

常见的日志文件及查看方式
日志文件 存放内容
/var/log/message 内核消息及各种应用程序的公共日志信息,包括启动、I/O错误、 网络错误、

/var/log/cron Crond周期性计划任务产生的时间信息

/var/log/dmesg 引导过程中的各种时间信息

/var/log/ maillog 进入或发出系统的电子邮件活动

/var/log/lastlog 每个用户最近的登录事件

/var/log/secure 用户认证相关的安全事件信息

/var/log/wtmp 每个用户登录注销及系统启动和停机事件

/var/log/btmp 失败的、错误的登录尝试及验证事件
​
日志分析
​
grep
​
sed
​
sort
​
awk

Linux 应急响应命令总结【持续更新】_第24张图片
常用操作

Linux
【cat /etc/passwd】
分析超级管理员账户:【awk -F: '{if($3==0)print $1}' /etc/passwd】
分析可登录的账号:【cat /etc/passwd | grep '/bin/bash'】
查看用户错误的登录信息:【lastb】命令
查看所有用户最后的登录信息:【lastlog】命令
查看用户最近登录信息(数据源为/var/log/wtmp、/var/log/btmp、/var/log/utmp):【last】命令
查看当前用户登录系统情况:【who】命令
查看空口令账号:【awk -F: 'length($2)==0 {print $1}' /etc/shadow】



1.系统排查
排查系统命令是否被修改
使用【stat】命令或【ls -alt /bin】命令查看相关系统命令的修改时间

查看相关文件的大小
使用【rpm -Va】命令,若正常,则不会输出

2.检查用户信息
【cat /etc/passwd】
【lastlog】命令查看系统中所有用户最后登录的时间
【lastb】命令查看用户错误登录列表
【last】命令查看用户最近登录信息
【who】命令查看当前用户登录系统的情况
【awk -F: 'length($2)==0 {print $1}' /etc/shadow】命令查看是否存在空口令账户
【awk -F: ‘$3= =0 {print $1}/etc/passwd】查看是否存在特权账号
3.检查进程
【ps aux】命令
【top】命令,使用【lsof -p PID】命令,查看PID对应的可执行程序,使用【lsof -i:port】命令查看指定端口对应的程序
使用【netstat -anpt】命令查看挖矿木马进程、端口、对于的PID,使用【ls -alh /proc/PID】命令查看挖矿木马对应的可执行程序,使用【kill -9 PID】命令结束进程,使用【rm -rf filename】命令删除该文件。
4.排查定时任务
使用【crontab -l】命令查看定时任务


HVV命令:
检查帐户
# less /etc/passwd
# grep :0: /etc/passwd(检查是否产生了新用户,和UID、GID是0的用户)
# ls -l /etc/passwd(查看文件修改日期)
# awk -F: ‘$3= =0 {print $1}/etc/passwd(查看是否存在特权用户)
# awk -F:length($2)= =0 {print $1}/etc/shadow(查看是否存在空口令帐户)
(window下可以 net user 类命令查看)
检查进程
# ps -aux(注意UID是0的)
# lsof -p pid(察看该进程所打开端口和文件)
# cat /etc/inetd.conf | grep -v “^#”(检查守护进程)
检查隐藏进程
# ps -ef|awk ‘{print }|sort -n|uniq >1
# ls /porc |sort -n|uniq >2
检查后门
# cat /etc/crontab
# ls /var/spool/cron/
# cat /etc/rc.d/rc.local
# ls /etc/rc.d
# ls /etc/rc3.d
# find / -type f -perm 4000
查找文件
find / -name hacker.jsp
history
last
cat /etc/profile 查看history最大存储多少行等信息
cat /root/.bash
cat /root/.bash_history
ls -lh 查看文件修改时间
etc/init.d 开机自启动项
etc/rc.d
sysconfig
netstat -antlp
cat log.log >> log.txt 将文件重定向到log.txt
ps -ef >> ps.log 将控制台显示重定向到ps.log(该命令能看进程启动命令附带参数,比如日志存放位置)
crontab -l
netstat -anplut | grep pid

ls -lh /var/log/audit
sz
rz
scp
ssh


ss -tuln
https://blog.csdn.net/carefree2005/article/details/114873194
在线linux命令查询
https://www.lzltool.com/LinuxCommand/ss

转载引用,后续更新

你可能感兴趣的:(linux,服务器,数据库)