Linux主机安全排查
文章源自【字节脉搏社区】-字节脉搏实验室
作者-kongfree
扫描下方二维码进入社区:
一. 进程
执行ps -aux或者ps -ef查看是否存在异常进程。
技巧:
使用 grep对进程进行塞选
示例:ps –ef |grep syslog
二. 网络连接
(1)可查看是否存在外部连接等 netstat -anptu
(2)执行w命令可以确定当前哪些用户已登录系统。
(3)使用lsof –i(仅限Linux)显示进程和端口对应关系
三. CPU等使用检测
使用top命令查看,可按大写P让其按cpu大小排序 。ps -elf 可疑$PID 、ps -aux命令检查排名靠前的或者不断变化的程序。同时使用 $ kill -s 9 pid 结束进程。
四. 登录情况
使用last命令
第一列信息:用户名,或者显示reboot(启动或者重启操作在这里会记录成reboot)
第二列信息:终端位置,pts/0 (伪终端或虚拟终端) 意味着从诸如SSH或telnet的远程连接的用户。
tty (teletypewriter) 意味着直接连接到计算机或者本地连接的用户,如果是启动或者重启操作,这里会显示成system boot
第三列信息:登录ip或者内核,如果你看见:0.0 或者什么都没有,这意味着用户通过本地终端连接。
也有在状态中显示内核版本的信息,笔者猜测这些记录应该是属于系统的操作,如开机,关机,重启等操作
第四列信息:开始时间,其中的日期格式为date +"%a %b %d"
第五列信息:结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机)
第六列信息:持续时间
五.动态链接与端口开放
动态链接 $echo $LD_PRELOAD
使用netstat –anp 命令查看当前开放的端口。
六. 用户及用户文件
1.查看是否有异常的系统用户。
解释/etc/passwd中7段意义:(用户名:密码:UID:GID:注释:家目录:默认SHELL)
1).account: 登录名
2).password: 密码
3).UID:
4).GID:基本组ID
5).comment: 注释
6).HOME DIR:家目录
7).SHELL:用户的默认shell
检查除root用户外是否存在其他用户的UID为0,也可执行命令:
awk -F : '$3==0{print}' /etc/passwd
2./etc/passwd默认权限为644,其最小权限为444,首先应对该文件权限进行检查,以确认配置是否正确
3. shadow文件
shadow默认权限为600,最小权限为400,检查权限配置是否正确:
ls – l /etc/shadow
七.计划任务(cron)
ls -latr /etc/cron.d/
ls -latr /etc/cron.daily/
ls -latr /etc/cron.hourly/
ls -latr /etc/cron.weekly/
ls -latr /etc/cron.monthly/
ls -latr /etc/crontab
八. 日志文件
less /var/log/messages
作用:纪录几乎系统发生的错误讯息
关注信息:记录运行信息和认证信息,对于追查恶意用户的登录行为有很大帮助
less /var/log/secure
作用:记录登入系统存取数据,例如pop3, ssh, telnet, ftp 等都会记录在此日志中
关注信息:记录添加用户,更改密码等。ssh登录日志会存储于/var/log/secure中,若日志中出现连续大量的登录错误信息,则可能意味着远程主机在尝试破解ssh登录口令。
/var/log/wtmp 用last打开
作用:记录登录信息
信息:查看最近的用户登录情况。
less /var/log/cron
作用:记录 crontab (计划任务)服务的内容
信息:查看是否有攻击者设置的计划任务或恶意脚本的计划任务
通知!
公众号招募文章投稿小伙伴啦!只要你有技术有想法要分享给更多的朋友,就可以参与到我们的投稿计划当中哦~感兴趣的朋友公众号首页菜单栏点击【商务合作-我要投稿】即可。期待大家的参与~
记得扫码
关注我们