CPU 信息:
lscpu
操作系统信息:
uname -a
操作系统信息:
cat /proc/version
模块信息:
lsmod
系统所有账户:
cat /etc/passwd
超级权限账户:
awk -F: '{if($3==0)print $1}' /etc/passwd
可登录账户:
cat /etc/passwd | grep '/bin/bash'
最近20条登录失败信息:
lastb | head -n 20
所有账号最后登录信息:
lastlog
最近20条登录信息:
last | head -n 20
当前登录账号信息:
who
空口令账号:
awk -F: '{if($2==0)print $1}' /etc/shadow
启动项:
ls -lat /etc/init.d/
启动项:
cat /etc/init.d/rc.local
启动项:
cat /etc/rc.local
当前计划任务:
crontab -l
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的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
* 取值范围内的所有数字
/ 每过多少个数字
- 从X到Z
,散列数字
<分钟> <小时> <日> <月> <星期> <命令>
实例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:每月1、10、22日的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 : 00至23 : 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设置任务的参数字段说明
字段 说明
分钟 取值为0~59的整数
小时 取值为0~23的任意整数
日期 取值为1~31的任意整数
月份 取值为1~12的任意整数
星期 取值为0~7的任意整数,其中0与7均为星期日
命令 要执行的命令或程序脚本
在crond服务的配置参数中,一般会像Shell脚本那样以#号开头写上注释信息,这样在日后回顾这段命令代码时可以快速了解其功能、需求以及编写人员等重要信息。
计划任务中的“分”字段必须有数值,绝对不能为空或是*号,而“日”和“星期”字段不能同时使用,否则就会发生冲突。
cron是Linux中默认的计划任务。使用cron,你可以安排一个计划(比如:命令或者shell脚本)周期性地运行或者在指定的分钟、小时、天、周、月等特定时间运行。cron在你安排不同的常规维护任务时是很有用的,比如周期性地备份、日志循环、检查文件系统、监测磁盘空间等等
每个cron任务的格式如下。
<分钟> <小时> <日> <月> <星期> <命令>
查看计划任务文件:
ls -lat /etc/cron*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/*
/etc/anacrontab
网络连接:
netstat -antlp
查找对应运行程序:
ls -lat /proc/20583
查看程序打开文件:
lsof -p 20583
结束进程:
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
查看资源占用率较高的进程:top
系统运行服务:chkconfig –list
Centos7 查看自启动列表systemctl list-unit-files以及设置服务自启动
系统运行服务:systemctl list-unit-files
所有服务状态
所有服务状态:service --status-all
所有服务状态:
显示所有的服务状态—空格翻页 q推出
systemctl list-units --type service –all
查看启动成功的服务列表
systemctl list-unit-files | grep enabled
查看启动失败的服务列表
systemctl --failed
查看所有服务的状态—空格翻页 q退出
systemctl list-unit-files --type service
文件痕迹排查
敏感目录
/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"
查看排序后前10行的内容
查看排序后前10行的内容:ls -lat | head -n 10
排查文件创建、修改、访问时间
排查文件创建、修改、访问时间:stat /etc/passwd
特殊权限文件
特殊权限文件:find /tmp -perm 777
WebShell
WebShell:find /var/www/ -name "*.php"
系统命令检测
系统命令检测:ls -lat /bin/ /sbin/
系统命令检测:ls -lah /bin/ /sbin/
后门检测
后门检测:chkrootkit -q | grep INFECTED
SUID 程序排查
SUID 程序排查:find / -type f -perm -04000 -ls -uid 0 2>/dev/null
日志概述
/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
【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
转载引用,后续更新