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

攻防演练:1.木马后门文件演练

为了防止 Linux 服务器上传木马后门文件,可以编写一个脚本,定期检查系统中的可疑文件、进程和权限。以下是一个示例脚本,用于检查常见的后门文件、异常进程和权限问题。


脚本功能

  1. 检查常见后门文件路径。
  2. 检查异常 SUID/SGID 文件。
  3. 检查异常进程。
  4. 检查定时任务(cron jobs)。
  5. 检查网络连接。
  6. 记录检查结果到日志文件。 

脚本代码

#!/bin/bash# 日志文件路径
LOG_FILE="/var/log/security_scan.log"# 时间戳
echo "===== 安全扫描开始 [$(date)] =====" >> $LOG_FILE# 1. 检查常见后门文件路径
echo "===== 检查常见后门文件路径 =====" >> $LOG_FILE
BACKDOOR_PATHS=("/tmp" "/var/tmp" "/dev/shm" "/root/.ssh/authorized_keys""/etc/passwd" "/etc/shadow" "/etc/crontab" "/etc/ld.so.preload"
)
for path in "${BACKDOOR_PATHS[@]}"; doif [ -e "$path" ]; thenecho "检查路径: $path" >> $LOG_FILEfind "$path" -type f -mtime -7 -exec ls -lh {} \; >> $LOG_FILEfi
done# 2. 检查异常 SUID/SGID 文件
echo "===== 检查异常 SUID/SGID 文件 =====" >> $LOG_FILE
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -lh {} \; 2>/dev/null >> $LOG_FILE# 3. 检查异常进程
echo "===== 检查异常进程 =====" >> $LOG_FILE
ps aux | grep -E "(bash|sh|nc|telnet|ssh|wget|curl|python|perl|php)" | grep -v grep >> $LOG_FILE# 4. 检查定时任务
echo "===== 检查定时任务 =====" >> $LOG_FILE
crontab -l >> $LOG_FILE
ls -lh /etc/cron* >> $LOG_FILE# 5. 检查网络连接
echo "===== 检查网络连接 =====" >> $LOG_FILE
netstat -tulnp | grep -E "(LISTEN|ESTABLISHED)" >> $LOG_FILE# 6. 检查 /etc/passwd 和 /etc/shadow 权限
echo "===== 检查 /etc/passwd 和 /etc/shadow 权限 =====" >> $LOG_FILE
ls -lh /etc/passwd >> $LOG_FILE
ls -lh /etc/shadow >> $LOG_FILE# 扫描完成
echo "===== 安全扫描完成 [$(date)] =====" >> $LOG_FILE

使用方法

  1. 将脚本保存为 security_scan.sh

  2. 赋予脚本执行权限:

    chmod +x security_scan.sh
  3. 定期运行脚本(例如每天一次),可以通过 cron 设置:

    crontab -e

    添加以下内容:

    0 2 * * * /path/to/security_scan.sh

    这表示每天凌晨 2 点运行脚本。

  4. 检查日志文件 /var/log/security_scan.log,查看扫描结果。 

注意事项

  • 脚本仅用于基本检查,无法检测所有类型的后门或恶意文件。
  • 如果发现可疑文件或进程,需要进一步分析。
  • 定期更新系统和软件,以减少漏洞风险。
  • 结合其他安全工具(如 fail2banrkhunterclamav)使用,增强安全性。 

扩展功能

  • 添加邮件通知功能,将扫描结果发送到管理员邮箱。
  • 使用 clamav 等工具扫描系统中的恶意文件。
  • 检查系统日志(如 /var/log/auth.log)中的异常登录记录。

通过定期运行此脚本,可以有效提高服务器的安全性,及时发现潜在的木马后门文件。

http://www.lqws.cn/news/444493.html

相关文章:

  • 选择标签词汇功能(单选多选),在文本框展示
  • JS红宝书笔记 8.2 创建对象
  • 使用Dagster资产工厂模式高效管理重复ETL任务
  • 257. 二叉树的所有路径(js)
  • JavaEE->多线程2
  • 使用Haporxy搭建Web群集
  • 网页后端开发(基础4--数据库MySQL)
  • 第一章 空间解析几何与向量代数 ~ 向量的数量积与向量积
  • Linux head 命令
  • 穿不了 NAT 怎么办?用 TURN Server 把墙搬走!
  • 《Go语言圣经》map
  • C#的泛型和匿名类型
  • Nacos:微服务架构的神经中枢与配置大脑
  • 413. 等差数列划分
  • day09——Java基础项目(ATM系统)
  • Github 热点项目 [特殊字符]PHP性能革命!FrankenPHP让Laravel/Symfony飞起来!
  • 目标检测之YOLOV11自定义数据预处理——从原始标注到YOLO-OBB格式转换与验证
  • SecureCRT 安装、破解、汉化及配色方案优化指南
  • OpenSSL引擎 + PKCS11 + SoftHSM2认证
  • 【技术管理的第一次转身】从认知到落地的12个实战模块
  • 【算力网络】算网安全
  • MySQL: Invalid use of group function
  • Redis 的优势有哪些,它是CP 还是 AP?CAP 理论又是什么?
  • Java中的守护线程与非守护线程
  • 用 STM32 HAL/LL + Arduino 混合编程
  • LeetCode 662. 二叉树的最大宽度
  • F接口基础.go
  • JETBRAINS IDE 开发环境自定义设置快捷键
  • 单服务器部署多个Discuz! X3.5站点并独立Redis配置方案
  • redux以及react-redux