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

windows网站篡改脚本编制

✅ 功能简介

该监控系统具备如下主要功能:

功能点说明
📁 目录监控实时监听指定主目录及其所有子目录内文件的变动情况。
🔒 文件哈希校验对文件内容生成 SHA256 哈希,确保变更检测基于内容而非时间戳。
🚫 排除机制支持设置需排除的子目录或特定文件,避免频繁改动目录带来的干扰。
🧾 日志记录所有非排除目录中的新增或被篡改的文件将自动写入 update.txt 日志文件中。
🧠 基线建立系统首次运行时自动建立哈希基线作为“可信状态”,便于后续变更比对。


📋 应用场景示例

  • 监控业务系统配置文件:防止配置被恶意或误操作修改;

  • 跟踪重要文档目录:如合同、方案等文档被非法修改或替换;

  • 代码安全检测:辅助识别可能被植入恶意代码的敏感代码文件夹。


🔧 使用方法(示意)

  1. 配置监控路径
    修改 MONITOR_FOLDER = "C:/YourFolder" 指定你需要监控的文件夹;

  2. 可选:配置排除路径

    python

    复制编辑

    EXCLUDE_PATHS = [ "logs", # 忽略日志文件夹 "temp/cache.txt" # 忽略某个具体文件 ]

  3. 运行程序(建议后台运行或注册为服务):

    bash

    复制编辑

    python monitor.py

  4. 查看变更日志:
    所有被篡改或新增的文件信息将写入 update.txt,格式如下:

    bash

    复制编辑

    [2025-05-15 21:40:15] 🚨 文件被篡改:docs/readme.md [2025-05-15 21:41:03] 🆕 新增或未知文件被修改:uploads/newfile.txt


🔐 安全建议

  • 建议将 update.txt 设为只读,仅安全管理员可查看;

  • 建议每次系统更新或目录内容变动后手动重建一次哈希基线;

  • 可配合企业文件服务器策略,加强操作权限管理。

实战

代码

import os
import hashlib
import json
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler# === 配置路径 ===
MONITOR_FOLDER = "C:/MySecureFolder"
HASH_DB_FILE = "hash_baseline.json"
LOG_FILE = "update.txt"# ❗ 要排除监控的子目录(相对于 MONITOR_FOLDER 的路径)
EXCLUDE_PATHS = ["temp","logs","secret/ignore.txt"
]def is_excluded(path):rel_path = os.path.relpath(path, MONITOR_FOLDER)for ex in EXCLUDE_PATHS:if rel_path == ex or rel_path.startswith(ex + os.sep):return Truereturn Falsedef calculate_hash(file_path):hasher = hashlib.sha256()try:with open(file_path, 'rb') as f:while chunk := f.read(8192):hasher.update(chunk)return hasher.hexdigest()except Exception:return Nonedef log_change(message):timestamp = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())with open(LOG_FILE, 'a', encoding='utf-8') as f:f.write(f"[{timestamp}] {message}\n")def build_baseline():hash_dict = {}for root, _, files in os.walk(MONITOR_FOLDER):for file in files:full_path = os.path.join(root, file)if is_excluded(full_path):continuerel_path = os.path.relpath(full_path, MONITOR_FOLDER)file_hash = calculate_hash(full_path)if file_hash:hash_dict[rel_path] = file_hashwith open(HASH_DB_FILE, 'w') as f:json.dump(hash_dict, f, indent=4)print("✅ 哈希基线已建立")def load_baseline():if not os.path.exists(HASH_DB_FILE):return {}with open(HASH_DB_FILE, 'r') as f:return json.load(f)class TamperAlertHandler(FileSystemEventHandler):def on_modified(self, event):if event.is_directory:returnif is_excluded(event.src_path):returnrel_path = os.path.relpath(event.src_path, MONITOR_FOLDER)current_hash = calculate_hash(event.src_path)baseline = load_baseline()if rel_path in baseline:if current_hash and current_hash != baseline[rel_path]:message = f"🚨 文件被篡改:{rel_path}"print(message)log_change(message)else:message = f"🆕 新增或未知文件被修改:{rel_path}"print(message)log_change(message)def start_monitor():print(f"🚀 正在监控文件夹:{MONITOR_FOLDER}")print(f"🚫 排除路径:{EXCLUDE_PATHS}")event_handler = TamperAlertHandler()observer = Observer()observer.schedule(event_handler, MONITOR_FOLDER, recursive=True)observer.start()try:while True:time.sleep(1)except KeyboardInterrupt:observer.stop()observer.join()if __name__ == "__main__":if not os.path.exists(HASH_DB_FILE):build_baseline()start_monitor()

http://www.xdnf.cn/news/522847.html

相关文章:

  • 低功耗:XILINX FPGA如何优化功耗?
  • 入职软件开发与实施工程师了后........
  • MySQL故障排查与生产环境优化
  • 仿腾讯会议——音频服务器部分
  • 图像分割(2)u-net代码实战——基于视网膜分割
  • 【Hadoop】--HA高可用搭建--3.2.2
  • 【520快乐】写一个网页送上520祝福
  • 智慧电力赋能金融机构,用数据守住“电力生命线
  • uniapp小程序获取手机设备安全距离
  • 中小实验室质检LIMS 系统选型 从成本管控到竞争力升级的黄金法则
  • 【MySQL】基础操作
  • 用户行为日志分析的常用架构
  • TCP和套接字SSL加密连接行为分析
  • 二分交互题总结
  • 深入探讨死区生成:原理、实现与应用
  • 词嵌入基础
  • 【Rust迭代器】Rust迭代器用法解析与应用实战
  • Python Django 的 ORM 编程思想及使用步骤
  • R语言数据可视化
  • Elasticsearch 深入分析三种分页查询【Elasticsearch 深度分页】
  • 力扣面试150题--从前序与中序遍历序列构造二叉树
  • Windows 下 Nginx 安装与配置指南 [特殊字符]
  • Axure难点解决分享:垂直菜单展开与收回(4大核心问题与专家级解决方案)
  • LeetCode 35 搜索插入位置题解
  • Axure设计数字乡村可视化大屏:构建乡村数据全景图
  • 【滑动窗口】LeetCode 1004题解 | 最大连续1的个数 Ⅲ
  • 小程序弹出层/抽屉封装 (抖音小程序)
  • CSS- 4.6 radiu、shadow、animation动画
  • CVE-2015-4553 Dedecms远程写文件
  • prisma连接非关系型数据库mongodb并简单使用