如何防止 Docker 注入了恶意脚本
根据您的描述,攻击者通过 CentOS 7 系统中的 Docker 注入了恶意脚本,导致自动启动名为 “masscan” 和 “x86botnigletjsw” 的进程。这些进程可能用于网络扫描或其他恶意活动。为了解决这一问题,建议您采取以下步骤:
1. 停止并删除可疑容器和进程:
- 列出所有运行中的容器:
docker ps -a
检查输出,寻找与 “masscan” 或 “x86botnigletjsw” 相关的容器。
- 停止并删除可疑容器:
docker stop [CONTAINER_ID]docker rm [CONTAINER_ID]
将 [CONTAINER_ID] 替换为可疑容器的实际 ID。
- 查找并终止可疑进程:
ps aux | grep -E 'masscan|x86botnigletjsw'
找到相关的进程 ID(PID),然后执行:
kill -9 [PID]
将 [PID] 替换为实际的进程 ID。
2. 删除恶意镜像:
- 列出所有镜像:
docker images
检查输出,寻找不明来源或可疑的镜像。
- 删除可疑镜像:
docker rmi [IMAGE_ID]
将 [IMAGE_ID] 替换为可疑镜像的实际 ID。
3. 检查并清理持久化启动项:
- 检查定时任务(Cron Jobs):
crontab -lls -la /etc/cron.d/ls -la /etc/cron.daily/ls -la /etc/cron.hourly/ls -la /var/spool/cron/
查找是否有可疑的定时任务,如果发现,使用合适的编辑器(如 vi)打开并删除相关条目。
- 检查系统服务(Systemd):
systemctl list-units --type=service
查找是否有可疑的服务,如发现,停止并禁用该服务:
systemctl stop [SERVICE_NAME]systemctl disable [SERVICE_NAME]
将 [SERVICE_NAME] 替换为可疑服务的实际名称。
4. 加强 Docker 和系统安全:
-
限制 Docker API 访问:
确保 Docker API 未暴露在公共网络上,检查 Docker 的启动参数,确保未启用远程访问。 -
更新系统和 Docker:
保持操作系统和 Docker 的最新版本,以修复已知的安全漏洞。 -
配置防火墙:
使用firewalld或iptables限制不必要的入站和出站流量。 -
监控系统活动:
使用工具如auditd或syslog监控系统日志,及时发现异常活动。
5. 定期备份和审计:
-
备份重要数据:
定期备份关键数据,以防止数据丢失。 -
审计用户和权限:
定期检查系统用户和权限,确保没有多余的用户或权限配置。
通过以上步骤,您可以清理系统中的恶意容器和进程,并加强系统的安全性,防止类似事件再次发生。
在 CentOS 7 系统中,若要阻止名为 “x86botnigletjsw” 的进程执行,您可以采取以下步骤:
-
查找并终止现有的 “x86botnigletjsw” 进程:
首先,使用以下命令查找该进程的 PID(进程标识符):
pgrep x86botnigletjsw该命令将返回所有名为 “x86botnigletjsw” 的进程的 PID。然后,使用
kill命令终止这些进程:kill -9 <PID>请将
<PID>替换为实际的进程 ID。如果有多个 PID,可以重复执行上述命令,或者使用pkill命令一次性终止所有同名进程:pkill -9 x86botnigletjsw -
防止进程重新启动:
如果该进程由某个父进程监控并自动重启,需要找到其父进程并终止。使用以下命令查看进程的详细信息:
ps -ef | grep x86botnigletjsw输出示例:
root 28628 1 1.3 0.2 200844 36796 ? S 1:01 0:01 x86botnigletjsw在此示例中,
28628是目标进程的 PID,1是其父进程(PPID)。如果 PPID 不为 1,表示有特定的父进程在管理该进程,需要终止该父进程。 -
阻止进程再次执行:
为了防止 “x86botnigletjsw” 进程再次启动,可以采取以下措施:
-
检查启动脚本: 查看
/etc/init.d/、/etc/rc.d/、/etc/systemd/system/等目录,查找是否有与该进程相关的启动脚本。如果存在,删除或禁用这些脚本。 -
设置文件权限: 找到 “x86botnigletjsw” 可执行文件的位置,修改其权限以防止执行:
chmod -x /path/to/x86botnigletjsw或者更改所有者:
chown root:root /path/to/x86botnigletjsw并设置权限:
chmod 700 /path/to/x86botnigletjsw -
使用
systemd限制: 如果该进程通过systemd管理,可以创建一个自定义的systemd服务,将其设置为禁止启动。创建一个新的服务文件/etc/systemd/system/x86botnigletjsw.service,内容如下:[Unit] Description=Disable x86botnigletjsw Service [Service] Type=oneshot ExecStart=/bin/true [Install] WantedBy=multi-user.target然后启用该服务:
systemctl daemon-reload systemctl enable x86botnigletjsw.service这将创建一个空的占位服务,阻止同名的其他服务启动。
-
-
监控系统:
为了防止类似的进程在未来运行,建议:
-
安装并配置防火墙: 使用
firewalld或iptables限制不必要的网络访问。 -
安装防病毒软件: 定期扫描系统,查找并清除恶意软件。
-
定期检查系统日志: 查看
/var/log/目录下的日志文件,监控可疑活动。 -
更新系统: 确保系统和所有软件包都是最新的,以修复已知的安全漏洞。
-
通过以上步骤,您可以有效地阻止名为 “x86botnigletjsw” 的进程在 CentOS 7 系统中执行,并提高系统的整体安全性。
相关文章:
如何防止 Docker 注入了恶意脚本
根据您的描述,攻击者通过 CentOS 7 系统中的 Docker 注入了恶意脚本,导致自动启动名为 “masscan” 和 “x86botnigletjsw” 的进程。这些进程可能用于网络扫描或其他恶意活动。为了解决这一问题,建议您采取以下步骤: 1. 停止并删…...
使用python接入腾讯云DeepSeek
本文主要从提供SSE方式接入DeepSeek,并通过fastapi websocket对外提供接入方法。 参考文档: 腾讯云大模型:https://cloud.tencent.com/document/product/1759/109380 fastAPI官网:https://fastapi.tiangolo.com/ WebSocketManager…...
【MySQL】服务正在启动或停止中,请稍候片刻后再试一次【解决方案】
问题呈现 在使用MySQL的过程中我们可能会遇到以上的情况 解决方法 首先以管理员身份打开命令行窗口,注意是管理员身份,不然无权限访问。输入命令tasklist| findstr "mysql",用于查找mysql的残留进程。这个时候我们就会看到一个…...
测试工程师玩转DeepSeek之Prompt
以下是测试工程师使用DeepSeek的必知必会提示词指南,分为核心场景和高效技巧两大维度: 一、基础操作提示模板 1. 测试用例生成 "作为[金融系统/物联网设备/云服务]测试专家,请为[具体功能模块]设计测试用例,要求࿱…...
【PyTorch】2024保姆级安装教程-Python-(CPU+GPU详细完整版)-
一、准备工作 pytorch需要python3.6及以上的python版本 我是利用Anaconda来管理我的python。可自行安装Anaconda。 Anaconda官网 Free Download | Anaconda 具体Anaconda安装教程可参考 https://blog.csdn.net/weixin_43412762/article/details/129599741?fromshareblogdet…...
精选案例展 | 智己汽车—全栈可观测驱动智能化运营与成本优化
本案例为“观测先锋 2024 可观测平台创新应用案例大赛”精选案例,同时荣获IT168“2024技术卓越奖评选-年度创新解决方案”奖。 项目背景 近年来,中国汽车行业进入转型升级阶段,智能网联技术成为行业发展的核心。车联网、自动驾驶等技术的加速…...
MySQL 使用 `WHERE` 子句时 `COUNT(*)`、`COUNT(1)` 和 `COUNT(column)` 的区别解析
文章目录 1. COUNT() 函数的基本作用2. COUNT(*)、COUNT(1) 和 COUNT(column) 的详细对比2.1 COUNT(*) —— 统计所有符合条件的行2.2 COUNT(1) —— 统计所有符合条件的行2.3 COUNT(column) —— 统计某一列非 NULL 的记录数 3. 性能对比3.1 EXPLAIN 分析 4. 哪种方式更好&…...
Linux运维——网络管理
Linux网络管理 一、Linux网络应用要点二、命令常见用法2.1、curl2.1.1、发送GET请求2.1.2、发送POST请求2.1.3、设置请求头2.1.4、处理cookies2.1.5、处理重定向2.1.6、调试和详细信息2.1.7、使用代理2.1.8、文件上传2.1.9、其它常用选项2.1.10、综合示例 2.2、wget2.2.1、基本…...
STM32CUBEIDE FreeRTOS操作教程(十三):task api 任务访问函数
STM32CUBEIDE FreeRTOS操作教程(十三):task api 任务访问函数 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件,不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F401RCT6开发板…...
Jmeter+Jenkins接口压力测试持续集成
项目介绍 接口功能测试应用: http://www.weather.com.cn/data/cityinfo/<city_code>.html 测试功能:获取对应城市的天气预报 请求方法:Get 压测脚本开发工具:jmeter 源码脚本位置: https://github.com/shife…...
深入浅出ES6:现代JavaScript的基石
ES6(ECMAScript 2015)是JavaScript语言的一次重大更新,引入了许多新特性,使JavaScript更加强大、优雅和易于维护。这些特性已经成为现代JavaScript开发的基石,掌握它们对于任何JavaScript开发者都至关重要。本文将深入…...
实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能
下面将详细介绍如何实现使用RBF(径向基函数)神经网络模拟二阶电机数学模型中的非线性干扰,以及使用WNN(小波神经网络)预测模型中的非线性函数来抵消迟滞影响的功能。我们将按照以下步骤进行: 步骤1&#x…...
潜水泵,高效排水,守护城市与农田|深圳鼎跃
洪水是常见的自然灾害,在春夏季节的我国降水多为丰富,容易造成城市内部的洪涝灾害。特别是低洼地区的积水,不仅容易造成城市交通的出行不便,还存在潜在的隐患,严重影响了人们正常生活。 潜水泵作为一种高效、可靠的排水…...
易基因:RNA甲基化修饰和R-loop的交叉调控:从分子机制到临床意义|深度综述
大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 R-loop(RNA-DNA杂合结构)是转录调控、DNA复制和修复等关键细胞过程的重要组成部分。但R-loop异常积累可能会破坏基因组完整性,从而导致多种疾病的发生…...
115 道 MySQL 面试题,从简单到深入!
1. 什么是数据库事务? 数据库事务是一个作为单个逻辑工作单元执行的一系列操作。事务具有ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性…...
一周学会Flask3 Python Web开发-flask3上下文全局变量session,g和current_app
锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili flask3提供了session,g和current_app上下文全局变量来方便我们操作访问数据。 以下是一个表格,用于比较Flask中的…...
MFC学习笔记-1
一、编辑框和按钮 //.h文件private:CString str;//给窗口类加了一个变量(定义一个成员变量),关联到IDC_EDIT1中(要在实现中关联,源文件文件夹中)CString str2;//接收button2,和IDC_EDIT2绑定 p…...
Linux搜索查找类指令
1、find指令 基本语法:find [搜索范围] [选项] 功能:将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。 常用选项: 操作 命令示例 说明 查找指定路径下的所有文件 find /path/to/dir 查找指定目…...
江协科技/江科大-51单片机入门教程——P[1-1] 课程简介P[1-2] 开发工具介绍及软件安装
本教程也力求在玩好单片机的同时了解一些计算机的基本概念,了解电脑的一些基本操作,了解电路及其元器件的基本理论,为我们学习更高级的单片机,入门IT和信息技术行业,打下一定的基础。 目录 1.课程简介 2.开发工具及…...
监听load和hashchange事件
监听load和hashchange事件 上篇文章中,我们已经将菜谱的数据给拿到,并且已经可以渲染到页面上,本篇我们将为程序添加一些事件; 注:本项目来自于Jonas Schmedtmann创建,文章仅仅作为学习作用! 菜…...
Python|GIF 解析与构建(5):手搓截屏和帧率控制
目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
