当前位置: 首页 > news >正文

对shell脚本敏感命令进行加密执行

我要加密这条命令:rm /root/scripty.sh 如何利用openssl aes-256-cbc 实现加密和解密,并执行命令

加密、解密并执行命令的完整流程

以下是使用 openssl aes-256-cbc 加密命令 rm /root/scripty.sh,解密并执行的详细步骤:


1. 加密命令

步骤:
  1. 生成密钥(KEY)和初始化向量(IV)。
  2. 将命令加密为 Base64 编码的密文。
命令:
# 生成密钥和 IV(32 字节密钥,16 字节 IV)
KEY=$(openssl rand -hex 32)
IV=$(openssl rand -hex 16)

# 加密命令
ENCRYPTED_COMMAND=$(echo "rm /root/scripty.sh" | openssl aes-256-cbc -K ${KEY} -iv ${IV} -base64)

# 输出加密结果
echo "Key: ${KEY}"
echo "IV: ${IV}"
echo "Encrypted Command: ${ENCRYPTED_COMMAND}"
输出示例:
Key: 5f4dcc3b5aa765d61d8327deb882cf99b7c4e8d3b8b7e8f8b7e8f8b7e8f8b7e8
IV: 1234567890abcdef1234567890abcdef
Encrypted Command: U2FsdGVkX1+1234567890abcdef1234567890abcdef==

2. 解密并执行命令

步骤:
  1. 使用相同的密钥和 IV 解密密文。
  2. 执行解密后的命令。
命令:
# 解密命令
DECRYPTED_COMMAND=$(echo "${ENCRYPTED_COMMAND}" | openssl aes-256-cbc -K ${KEY} -iv ${IV} -base64 -d)

# 执行解密后的命令
eval ${DECRYPTED_COMMAND}
说明:
  • eval:执行解密后的命令。
  • 确保密钥和 IV 与加密时一致。

3. 完整脚本示例

#!/bin/bash

# 加密
KEY=$(openssl rand -hex 32)
IV=$(openssl rand -hex 16)
ENCRYPTED_COMMAND=$(echo "rm /root/scripty.sh" | openssl aes-256-cbc -K ${KEY} -iv ${IV} -base64)

echo "Key: ${KEY}"
echo "IV: ${IV}"
echo "Encrypted Command: ${ENCRYPTED_COMMAND}"

# 解密并执行
DECRYPTED_COMMAND=$(echo "${ENCRYPTED_COMMAND}" | openssl aes-256-cbc -K ${KEY} -iv ${IV} -base64 -d)
eval ${DECRYPTED_COMMAND}

注意事项:

  1. 密钥和 IV 安全

    • 密钥和 IV 必须妥善保存,避免泄露。
    • 建议将密钥和 IV 存储在安全的位置(如密钥管理系统)。
  2. 权限管理

    • 确保执行命令的用户具有足够的权限(如 root 用户)。
  3. 命令安全性

    • 避免执行未经验证的命令,防止恶意代码注入。
  4. 环境兼容性

    • 确保目标系统已安装 openssl

通过以上步骤,您可以使用 openssl aes-256-cbc 加密命令,并在需要时解密并执行。

openssl aes-256-cbc 命令通常用于以下场景:

加密/解密文件或数据:

  • 用于保护敏感数据,如配置文件、数据库备份、通信内容等。
    支持对称加密,确保只有持有密钥的双方可以解密数据。

数据传输安全:

  • 在数据传输过程中,使用 AES-256-CBC 加密保证数据机密性。
    常用于安全通信协议(如 HTTPS、SSH)之外的场景。

自动化脚本中的加密操作:

  • 在 CI/CD 管道或自动化脚本中,用于加密/解密敏感信息(如凭据、密钥)。
    兼容性需求:

需要与其他系统或工具兼容时,AES-256-CBC 是一种广泛支持的加密算法。

🔥运维干货分享

  • 软考高级系统架构设计师备考学习资料
  • 软考高级网络规划设计师备考学习资料
  • Kubernetes CKA认证学习资料分享
  • AI大模型学习资料合集
  • 信息安全管理体系(ISMS)制度模板分享
  • 免费文档翻译工具(支持word、pdf、ppt、excel)
  • PuTTY中文版安装包
  • MobaXterm中文版安装包
  • pinginfoview网络诊断工具中文版
  • Xshell、Xsftp、Xmanager中文版安装包
  • Typora简单易用的Markdown编辑器
  • Window进程监控工具,能自动重启进程和卡死检测
  • 免费Oracle 数据库学习资源 零基础到进阶

相关文章:

  • PyTorch模型构造实战:从基础到复杂组合
  • 力扣刷题DAY12(动态规划-区间DP)
  • AUTO-RAG: AUTONOMOUS RETRIEVAL-AUGMENTED GENERATION FOR LARGE LANGUAGE MODELS
  • 用Java实现O(n)时间复杂度查找最长连续序列
  • 【特权FPGA】之SRAM读写
  • C语言--汉诺塔问题
  • 软考 系统架构设计师系列知识点之杂项集萃(50)
  • asm汇编源代码之按键处理相关函数
  • 《JVM考古现场(十八):造化玉碟·用字节码重写因果律的九种方法》
  • 操作系统:线程间同步之事件集
  • 【人脸识别中的“类内差异”和“类间差异】
  • 关闭当前微信小程序解决方案
  • FFMPEG和opencv的编译
  • 音视频之H.265/HEVC编码框架及编码视频格式
  • Vue3.5 企业级管理系统实战(十四):动态主题切换
  • 行星际激波数据集 (2023)
  • 利用python从零实现Byte Pair Encoding(BPE)
  • Node.js中fs模块详解
  • 浏览器多开
  • MCP遇见Web3:从边缘计算到去中心化的无限想象
  • 贵阳网站建设培训/谷歌app下载
  • 学校网站建设与维护/软文优化
  • 现在一般做网站都是去哪家做的/提供seo顾问服务适合的对象是
  • 厦门制作网页公司/优化推广联盟
  • 眉山北京网站建设/国外网络推广
  • 黑糖主题2.0wordpress/seo点击器