网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
查询特权用户特权用户(uid 为0):
awk -F: ‘$3==0{print $1}’ /etc/passwd
查询可以远程登录的帐号信息:
awk ‘/$1|$6/{print $1}’ /etc/shadow
除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限:
more /etc/sudoers | grep -v “#|$” | grep “ALL=(ALL)”
禁用或删除多余及可疑的帐号
usermod -L user # 禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头
userdel user # 删除 user 用户
userdel -r user # 将删除 user 用户,并且将 /home 目录下的 user 目录一并删除
**通过.bash\_history文件查看帐号执行过的系统命令:**
打开 /home 各帐号目录下的 .bash\_history,查看普通帐号执行的历史命令。
为历史的命令增加登录的 IP 地址、执行命令时间等信息:
1、保存1万条命令:
sed -i ‘s/^HISTSIZE=1000/HISTSIZE=10000/g’ /etc/profile
2、在/etc/profile的文件尾部添加如下行数配置信息:
USER_IP=who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'
if [ “$USER_IP” = “” ]
then
USER_IP=hostname
fi
export HISTTIMEFORMAT="%F %T $USER_IP whoami
"
shopt -s histappend
export PROMPT_COMMAND=“history -a”
3、让配置生效
source /etc/profile
注意:历史操作命令的清除:history -c
该操作并不会清除保存在文件中的记录,因此需要手动删除.bash\_profile文件中的记录
### 三、检查端口连接情况:
netstat -antlp | more
![在这里插入图片描述](https://img-blog.csdnimg.cn/8b26962627474b14b903e61db62d06aa.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rWB5rWq5rOV5biIMTI=,size_20,color_FFFFFF,t_70,g_se,x_16)
使用 ps 命令,分析进程,得到相应pid号:
ps aux | grep 6666
![在这里插入图片描述](https://img-blog.csdnimg.cn/2ca431912e4448399b967c63b652047e.png)
查看 pid 所对应的进程文件路径:
P I D 为对应的 p i d 号 l s − l / p r o c / PID 为对应的 pid 号ls -l /proc/ PID为对应的pid号ls−l/proc/PID/exe 或 file /proc/$PID/exe
分析进程:
根据pid号查看进程lsof -p 6071
通过服务名查看该进程打开的文件lsof -c sshd
通过端口号查看进程:lsof -i :22
查看进程的启动时间点:
ps -p 6071 -o lstart
根据pid强行停止进程:
kill -9 6071
**注意:** 如果找不到任何可疑文件,文件可能被删除,这个可疑的进程已经保存到内存中,是个内存进程。这时需要查找PID 然后kill掉
### 四、检查开机启动项:
系统运行级别示意图:
| 运行级别 | 含义 |
| --- | --- |
| 0 | 关机 |
| | – |
| 1 | 单用户模式,可以想象为windows的安全模式,主要用于系统修复 |
| – | – |
| 2 | 不完全的命令行模式,不含NFS服务 |
| – | – |
| 3 | 完全的命令行模式,就是标准字符界面 |
| – | – |
| 4 | 系统保留 |
| – | – |
| 5 | 图形模式 |
| – | – |
| 6 | 重启动 |
查看运行级别命令:
runlevel
开机启动配置文件:
/etc/rc.local/etc/rc.d/rc[0~6].d
启动Linux系统时,会运行一些脚本来配置环境——rc脚本。在内核初始化并加载了所有模块之后,内核将启动一个守护进程叫做init或init.d。这个守护进程开始运行/etc/init.d/rc中的一些脚本。这些脚本包括一些命令,用于启动运行Linux系统所需的服务
**开机执行脚本的两种方法:**
>
> 在/etc/rc.local的exit 0语句之间添加启动脚本。脚本必须具有可执行权限
> 用update-rc.d命令添加开机执行脚本
>
>
>
1、编辑修改/etc/rc.local
![在这里插入图片描述](https://img-blog.csdnimg.cn/0c28972e0a3743c39774307485ebe7ae.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rWB5rWq5rOV5biIMTI=,size_20,color_FFFFFF,t_70,g_se,x_16)
2、update-rc.d:此命令用于安装或移除System-V风格的初始化脚本连接。脚本是存放在/etc/init.d/目录下的,当然可以在此目录创建连接文件连接到存放在其他地方的脚本文件。
此命令可以指定脚本的执行序号,序号的取值范围是 0-99,序号越大,越迟执行。
**当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc\_.d文件中建立软链接即可**
语法:
update-rc.d 脚本名或服务 <remove|defaults|disable|enable>
#1、在/etc/init.d目录下创建链接文件到后门脚本:
ln -s /home/b4yi/kali-6666.elf /etc/init.d/backdoor
#2、用 update-rc.d 命令将连接文件 backdoor 添加到启动脚本中去
sudo update-rc.d backdoor defaults 99
开机即执行。
![在这里插入图片描述](https://img-blog.csdnimg.cn/aec3ef0d387c41d1af356b2ce2c837ec.png)
入侵排查:
more /etc/rc.local/etc/rc.d/rc[0~6].dls -l /etc/rc.d/rc3.d/
计划任务排查:
需要注意的几处利用cron的路径:
crontab -l # 列出当前用户的计时器设置
crontab -r # 删除当前用户的cron任务
上面的命令实际上是列出了/var/spool/cron/crontabs/root该文件的内容:
/etc/crontab只允许root用户修改
/var/spool/cron/存放着每个用户的crontab任务,每个任务以创建者的名字命名
/etc/cron.d/将文件写到该目录下,格式和/etc/crontab相同
把脚本放在/etc/cron.hourly/、/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly/目录中,让它每小时/天/星期/月执行一次
小技巧:
more /etc/cron.daily/* 查看目录下所有文件
入侵排查:
重点关注以下目录中是否存在恶意脚本;
/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/*
**入侵排查:**
查询已安装的服务:
RPM 包安装的服务:
chkconfig --list 查看服务自启动状态,可以看到所有的RPM包安装的服务
ps aux | grep crond 查看当前服务 系统在3与5级别下的启动项
中文环境
chkconfig --list | grep “3:启用|5:启用”
英文环境
chkconfig --list | grep “3:on|5:on”
源码包安装的服务:
查看服务安装位置 ,一般是在/user/local/
service httpd start
搜索/etc/rc.d/init.d/ 查看是否存在
异常文件检查:
按照三种方式查找修改的文件:
按照名称
依据文件大小
按照时间查找
根据名称查找文件
find / -name a.Test
如果文件名记不全,可使用通配符*来补全
如果不区分大小写,可以将-name 替换为-iname
依据文件大小查找:
find / -size +1000M
+1000M表示大于1000M的文件,-10M代表小于10M的文件
依据时间查找:
-atime 文件的访问时间
-mtime 文件内容修改时间
-ctime 文件状态修改时间(文件权限,所有者/组,文件大小等,当然文件内容发生改变,ctime也会随着改变)
要注意:系统进程/脚本访问文件,atime/mtime/ctime也会跟着修改,不一定是人为的修改才会被记录
查找最近一天以内修改的文件:
find / -mtime -1 -ls | more
查找50天前修改的文件:
find ./ -mtime +50 -ls
根据属主和属组查找:
-user 根据属主查找
-group 根据属组查找
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
查看属主是root的文件find ./ -user root -type f
-type f表示查找文件,-type d表示查找目录
注意:系统中没有属主或者没有属组的文件或目录,也容易造成安全隐患,建议删除。
按照CPU使用率从高到低排序:
ps -ef --sort -pcpu
按照内存使用率从高到低排序:
ps -ef --sort -pmem
**补充:**
1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“…”为名的文件夹具有隐藏属性。
2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?可以使用find命令来查找,如find /opt -iname “\*” -atime 1 -type f 找出 /opt 下一天前访问过的文件。
3、针对可疑文件可以使用 stat 进行创建修改时间。
### 五、系统日志检查:
日志默认存放位置:/var/log/
必看日志:secure、history
查看日志配置情况:more /etc/rsyslog.conf
![在这里插入图片描述](https://img-blog.csdnimg.cn/8b7cbc23b20445a5b3f2a07ad7573cde.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rWB5rWq5rOV5biIMTI=,size_20,color_FFFFFF,t_70,g_se,x_16)
### 最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
### 资料预览
给大家整理的视频资料:
![](https://img-blog.csdnimg.cn/img_convert/48b898a094f741b6889198fc928bf1ee.png)
给大家整理的电子书资料:
![](https://img-blog.csdnimg.cn/img_convert/830270de0f17d5319087ecf3ec2fe518.png)
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
...(img-I8K4IKzW-1715816678048)]
给大家整理的电子书资料:
[外链图片转存中...(img-nOdobv6Y-1715816678049)]
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618635766)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**