知了堂|Linux系统入侵后的排查过程
nanshan 2024-10-24 11:42 11 浏览 0 评论
1、准备工作
尽可能物理接触到可疑的系统,防止黑客远程窃听你在检测
硬盘做实体备份,如有需要,断开所有与可以机器的网络连接
需要一台电脑专门对检查过程进行入侵检测结果的记录
找到维护此服务器的人员来配合你
2、步骤
检测项1:常用程序是否被替换
通常被替换的程序有login、ls、ps、ifconfig、du、find、netstat
执行相关程序参数,查看是否被替换
ls -alh
netstat -anp
检查md5sum和文件大小
md5sum /bin/netstat
【注】linux prelink预链接会对md5sum的值产生影响,建议禁用预链接
上传chkrootkit和rkhunter两个工具,检查是否有rootkit
使用开源防病毒引擎clamav antivirus检查bin
freshclam
clamscan -r PATH
检测项2:查看隐藏目录和文件
find / -name '...'
find / -name '..'
find / -name '.'
find / -name ' '
检测项3:检测近期系统登录
last命令
检测项4:检测系统用户
less /etc/passwd 查看是否有新增用户
grep ': 0' /etc/passwd 查看是否有特权用户
stat /etc/passwd 查看passwd最后修改时间
awk-F: 'length($2)**0 print{$1}' /etc/shadow 查看是否存在空口令用户
检测项5:查看进程
ps -aux 查看有无以./xxx开头的进程,使用kil -9 pid 杀死该进程,再运行ps -aux,若此类进程又出现了,则证明系统被放置了自动启动脚本,故使用find / -name 进程名 -print
lsof -p pid 查看进程所打开的端口及文件
检查隐藏进程
ps -ef | awk 'print($2)' | sort -n | uniq >1
ls /proc | sort -n | uniq>2
diff 1 2
检查项6:检查网络连接和监听端口
ip link |grep PROMISC 检查是否可能存在嗅探
netstat -lntp 查看监听端口
nestat -antp 查看所有已建立的外部链接,注意本机主动连接到外部地址的连接,可能意味着反弹shell
arp -an 查看arp记录是否正常
检查项7:计划任务
crontab -u root -l 查看root用户的计划任务
cat /etc/crontab 查看是否有异常条目
ls /var/spool/corn 查看是否有异常条目
ls -l /etc/cron.* 查看cron详细文件变化
检查项8:开机启动项
查看 /etc/rc.local文件的内容
systemctl 或 chkconfig检查开机启动项
检查项9:日志中的异常
建议先做好日志备份
日志类型
系统:message、secure、cron、mail等
应用程序:Apache、Nginx、FTP、Mysql、Oracle等
程序开发日志
bash_history
其他安全事件日志
分析异常
用户在非正常时间登陆
残缺的日志文件
登陆系统的ip和以往不同
失败的日志记录
非法使用或不正当使用su命令
非法或无故重启网络服务内容
检测项10:webshell检测
检查web目录
使用D盾或者LMD、安全狗等工具
3、检测注意项
若此机器的业务很重要,无法切断网络连接,则一定要备份所有重要的资料
若此机器的业务不重要,建议切断网络做物理隔离,将硬盘进行外置存储,可使用包括dd等工具
尝试找到黑客活动的证据
取证工具寻找攻击者使用过的文件
查找是否有远控或后门
修复攻击者利用的漏洞
4、修复
用原始工具重新安装系统,并安装所有补丁
对web服务器按照安全标准配置目录权限和配置文件
改变所有系统相关账号(包括数据库连接字符串)的密码
尝试检查、恢复被攻击者篡改的文件
5、出具检测报告
包含
检测概要步骤
初步检测结果
XX地方可能出现了问题
入侵事件对业务的影响
改进建议
6、防止服务器被入侵
在计算机安全技术上,我们可以从4个方面来着手分析服务器存在的风险,以及防范措施。
1、物理环境安全
物理环境就是指我们服务器存放的位置,我们需要分析它是否存在如下风险:
如果是自有服务器,你必须要有相对隔离的专用空间,并配上门禁和视频监控控制出入。因为如果服务器人人都可以触碰到它,那它没有任何安全可言。因为只要物理上可以接触到,那就有可能会被恶意的人盗走服务器,然后再慢慢破解服务器,获取服务器的信息。如果服务器是托管,你必须要求托管方有上面提到的门禁、视频监控等。不过,一般都会有。如果是云服务器,也就是虚拟机,那你要求云服务商的物理服务器必须在国内,同样有上面提到的基本物理安全。
2、通讯网络安全
通讯网络就是服务器需要对外提供服务使用的网络系统。这一块是我们比较熟悉的。我们需要做如下措施来保障安全:
出口必须有防火墙,(有条件用双机)通过防火墙的的规则,可以屏蔽不需要开放的端口。使得黑客们的攻击面变窄。服务器和桌面终端不能在同一个区域,至少需要划分VLAN隔离。对外服务的访问尽量采用加密访问,比如:web服务就尽量采用HTTPS来提供;有分支结构访问的,采用加密IPsec VPN或者SSL VPN来访问。服务器本身需要有 TPM 芯片(现在一般都有),该芯片是可信计算模块,可以帮助我们的服务器对内部的计算信息进行加密。确保不会在计算过程中因为信息被窃取而出现安全问题。
3、区域边界安全
不同的区域之间虽然有前面提到的VLAN隔离,但是我们还需要部署防火墙系统,让低安全等级的区域不能随意进入高安全等级区域。出口的边界区域,除了前面提到需要出口防火墙外,还可以配备入侵防御系统IPS、来防范攻击。因为防火墙只是收窄了攻击面。相当于只是一个小区保安帮忙过滤了一下进出人员。但无法防范伪冒正常流量的攻击。所以需要配备IPS,来对入侵进行防御。服务器必须配备防病毒系统。如果服务器众多,可以配备防病毒网关。服务器就1-2台,那就在服务器上安全企业杀毒软件,防止病毒入侵。
4、计算安全
系统要加固,也就是操作系统要及时打补丁,尤其是安全补丁。如果服务器众多,可以考虑上服务器加固系统。身份安全:也就是服务器的密码必须复杂口令、并且定时更换。有条件的可以采用动态密码和静态密码结合的双因子认证。定期要进行漏洞扫描,防止服务器在使用过程中出现漏洞。一旦扫描发现漏洞,需要立即进行修复。服务器日志要集中收集,运维人员定时分析日志。发现异常入侵行为日志,应该立即预警,并作出防御行动。最后,为了防止内部人员恶意入侵,我们还需要一套堡垒机,通过堡垒机来控制所有的运维人员对服务器的操作。确保其权限始终,并且操作行为可被追踪。
7、排查步骤实例
7.1、入侵者可能会删除机器的日志信息,可以查看日志信息是否还存在或者是否被清空,相关命令示例:
[root@hlmcen69n3 ~]# ll -h /var/log/*
-rw-------. 1 root root 2.6K Jul 7 18:31 /var/log/anaconda.ifcfg.log
-rw-------. 1 root root 23K Jul 7 18:31 /var/log/anaconda.log
-rw-------. 1 root root 26K Jul 7 18:31 /var/log/anaconda.program.log
-rw-------. 1 root root 63K Jul 7 18:31 /var/log/anaconda.storage.log
[root@hlmcen69n3 ~]# du -sh /var/log/*
8.0K /var/log/anaconda
4.0K /var/log/anaconda.ifcfg.log
24K /var/log/anaconda.log
28K /var/log/anaconda.program.log
64K /var/log/anaconda.storage.log
7.2、入侵者可能创建一个新的存放用户名及密码文件,可以查看/etc/passwd及/etc/shadow文件,相关命令示例:
[root@hlmcen69n3 ~]# ll /etc/pass*
-rw-r--r--. 1 root root 1373 Sep 15 11:36 /etc/passwd
-rw-r--r--. 1 root root 1373 Sep 15 11:36 /etc/passwd-
[root@hlmcen69n3 ~]# ll /etc/sha*
----------. 1 root root 816 Sep 15 11:36 /etc/shadow
----------. 1 root root 718 Sep 15 11:36 /etc/shadow-
7.3、入侵者可能修改用户名及密码文件,可以查看/etc/passwd及/etc/shadow文件内容进行鉴别,相关命令示例:
[root@hlmcen69n3 ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@hlmcen69n3 ~]# more /etc/shadow
root:*LOCK*:14600::::::
bin:*:17246:0:99999:7:::
daemon:*:17246:0:99999:7:::
7.4、查看机器最近成功登录的事件和最后一次不成功地登录事件,对应日志"/var/og/lastlog",相关命令示例:
[root@hlmcen69n3 ~]# lastlog
Username Port From Latest
root **Never logged in**
bin **Never logged in**
daemon **Never logged in**
7.5、查看机器当前登录的全部用户,对应日志文件"/var/run/utmp",相关命令示例:
[root@hlmcen69n3 ~]# who
stone pts/0 2017-09-20 16:17 (X.X.X.X)
test01 pts/2 2017-09-20 16:47 (X.X.X.X)
7.6、查看机器创建以来登录过的用户,对应日志文件"/var/log/wtmp",相关命令示例:
[root@hlmcen69n3 ~]# last
test01 pts/1 X.X.X.X Wed Sep 20 16:50 still logged in
test01 pts/2 X.X.X.X Wed Sep 20 16:47 - 16:49 (00:02)
stone pts/1 X.X.X.X Wed Sep 20 16:46 - 16:47 (00:01)
stone pts/0 X.X.X.X Wed Sep 20 16:17 still logged in
7.7、查看机器所有用户的连接时间(小时),对应文件日志"/var/log/wtmp",相关命令示例:
[root@hlmcen69n3 ~]# ac -dp
stone 11.98
Sep 15 total 11.98
stone 67.06
Sep 18 total 67.06
stone 1.27
test01 0.24
Today total 1.50
7.8、如果发现机器产生了异常流量,可以使用命令"tcpdump"抓取网络包查看流量情况或者使用工具"iperf"查看流量情况
7.9、可以查看/var/log/secure日志文件,尝试发现入侵者的信息,相关命令示例:
相关推荐
- 如何为MySQL服务器和客户机启用SSL?
-
用户想要与MySQL服务器建立一条安全连接时,常常依赖VPN隧道或SSH隧道。不过,获得MySQL连接的另一个办法是,启用MySQL服务器上的SSL封装器(SSLwrapper)。这每一种方法各有其...
- Mysql5.7 出现大量 unauthenticated user
-
线上环境mysql5.7突然出现大量unauthenticateduser,进mysql,showprocesslist;解决办法有:在/etc/hosts中添加客户端ip,如192.16...
- MySQL 在 Windows 系统下的安装(mysql安装教程windows)
-
更多技术文章MySQL在Windows系统下的安装1.下载mysql和Framework链接链接:百度网盘请输入提取码提取码:6w3p双击mysql-installer-communit...
- MySql5.7.21.zip绿色版安装(mysql数据库绿色版安装)
-
1、去网上下载满足系统要求的版本(mysql-5.7.21-winx64.zip)2、直接解压3、mysql的初始化(1)以管理员身份运行cmd,在mysql中的bin目录下shift+右键-在...
- MySQL(8.0)中文全文检索 (亲测有效)
-
在一堆文字中找到含有关键字的应用。当然也可以用以下语句实现:SELECT*FROM<表名>WHERE<字段名>like‘%ABC%’但是它的效率太低,是全盘扫描。...
- 新手教程,Linux系统下MySQL的安装
-
看了两三个教程。终于在哔哩哔哩找到一个简单高效的教程,成功安装,up主名叫bili逍遥bili,感兴趣可以去看看。下面这个是我总结的安装方法环境:CentOS764位1.下载安装包,个人觉得在...
- 麒麟服务器操作系统安装 MySQL 8 实战指南
-
原文连接:「链接」Hello,大家好啊,今天给大家带来一篇麒麟服务器操作系统上安装MySQL8的文章,欢迎大家分享点赞,点个在看和关注吧!MySQL作为主流开源数据库之一,被广泛应用于各种业务...
- 用Python玩转MySQL的全攻略,从环境搭建到项目实战全解析
-
这是一篇关于“MySQL数据库入门实战-Python版”的教程,结合了案例实战分析,帮助初学者快速掌握如何使用Python操作MySQL数据库。一、环境准备1.安装Python访问Pytho...
- 安装MySQL(中标麒麟 安装mysql)
-
安装MySQL注意:一定要用root用户操作如下步骤;先卸载MySQL再安装1.安装包准备(1)查看MySQL是否安装rpm-qa|grepmysql(2)如果安装了MySQL,就先卸载rpm-...
- Mysql最全笔记,快速入门,干货满满,爆肝
-
目录一、MySQL的重要性二、MySQL介绍三、软件的服务架构四、MySQL的安装五、SQL语句六、数据库相关(DDL)七、表相关八、DML相关(表中数据)九、DQL(重点)十、数据完...
- MAC电脑安装MySQL操作步骤(mac安装mysqldb)
-
1、在官网下载MySQL:https://dev.mysql.com/downloads/mysql/根据自己的macOS版本,选择适配的MySQL版本根据自己需求选择相应的安装包,我这里选择macO...
- mysql主从(mysql主从切换)
-
1、本章面试题什么是mysql主从,主从有什么好处什么是读写分离,有什么好处,使用mycat如何实现2、知识点2.1、课程回顾dubboORM->MVC->RPC->SOApro...
- 【linux学习】以MySQL为例,带你了解数据库
-
做运维的小伙伴在日常工作中难免需要接触到数据库,不管是MySQL,mariadb,达梦还是瀚高等其实命令都差不多,下面我就以MySQL为例带大家一起来了解下数据库。有兴趣的小伙伴不妨评论区一起交流下...
- 玩玩WordPress - 环境简介(0)(玩玩网络科技有限公司)
-
简介提到开源博客系统,一般都会直接想到WordPress!WordPress是使用PHP开发的,数据库使用的是MySQL,一般会在Linux上运行,Nginx作为前端。这时候就需要有一套LNMP(Li...
- 服务器常用端口都有哪些?(服务器端使用的端口号范围)
-
下面为大家介绍一下,服务器常用的一些默认端口,以及他们的作用: 21:FTP服务所开放的端口,用于上传、下载文件。 22:SSH端口,用于通过命令行模式远程连接Linux服务器或vps。 23:...
你 发表评论:
欢迎- 一周热门
-
-
极空间如何无损移机,新Z4 Pro又有哪些升级?极空间Z4 Pro深度体验
-
如何在安装前及安装后修改黑群晖的Mac地址和Sn系列号
-
UOS服务器操作系统防火墙设置(uos20关闭防火墙)
-
日本海上自卫队的军衔制度(日本海上自卫队的军衔制度是什么)
-
爱折腾的特斯拉车主必看!手把手教你TESLAMATE的备份和恢复
-
如何修复用户配置文件服务在 WINDOWS 上登录失败的问题
-
10个免费文件中转服务站,分享文件简单方便,你知道几个?
-
手机如何设置与显示准确时间的详细指南
-
【系统配置】信创终端挂载NAS共享全攻略:一步到位!
-
[常用工具] OpenCV_contrib库在windows下编译使用指南
-
- 最近发表
- 标签列表
-
- linux 查询端口号 (58)
- docker映射容器目录到宿主机 (66)
- 杀端口 (60)
- yum更换阿里源 (62)
- internet explorer 增强的安全配置已启用 (65)
- linux自动挂载 (56)
- 禁用selinux (55)
- sysv-rc-conf (69)
- ubuntu防火墙状态查看 (64)
- windows server 2022激活密钥 (56)
- 无法与服务器建立安全连接是什么意思 (74)
- 443/80端口被占用怎么解决 (56)
- ping无法访问目标主机怎么解决 (58)
- fdatasync (59)
- 405 not allowed (56)
- 免备案虚拟主机zxhost (55)
- linux根据pid查看进程 (60)
- dhcp工具 (62)
- mysql 1045 (57)
- 宝塔远程工具 (56)
- ssh服务器拒绝了密码 请再试一次 (56)
- ubuntu卸载docker (56)
- linux查看nginx状态 (63)
- tomcat 乱码 (76)
- 2008r2激活序列号 (65)