linux挂马检测,检测网站挂马程序(Python)

2023-11-11

系统管理员通常从svn/git中检索代码,部署站点后通常首先会生成该站点所有文件的MD5值,如果上线后网站页面内容被篡改(如挂马)等,可以比对之前生成MD5值快速查找去那些文件被更改,为了使系统管理员第一时间发现,可结合crontab或nagios等工具。

程序测试如下:

# python check_change.py

Usage: python check_change.py update /home/wwwroot

python check_change.py check /home/wwwroot

# python check_change.py update /data/www #生成站点的md5值

# echo ' ' > /data/www/sitemap.html #测试清空文件

# rm -rf /data/www/sitemap.xml #测试删除文件

# python check_change.py check /data/www #查找那些文件被篡改

/data/www/sitemap.xml

/data/www/sitemap.html

代码如下(check_change.py):

#!/usr/bin/env python

import os,sys,subprocess

def update(path):

f = open(file,'w')

for root,dirs,files in os.walk(path):

for name in files:

line = os.path.join(root, name)

(stdin,stderr) = subprocess.Popen(['md5sum',line],stdout=subprocess.PIPE).communicate()

f.write(stdin)

f.close()

def check(path):

f = open(file,'r')

for line in f:

check_ok = """echo '%s' | md5sum -c > /dev/null 2>&1""" % line

#print check_ok

if not subprocess.call(check_ok, shell = True) == 0:

abnormal = line.split()

print abnormal[1]

f.close()

def Usage():

print '''

Usage: python %s update /home/wwwroot

python %s check /home/wwwroot

''' % (sys.argv[0],sys.argv[0])

sys.exit()

if len(sys.argv) != 3:

Usage()

file = 'file.key'

model = sys.argv[1]

path = sys.argv[2]

if os.path.exists(path) == False:

print "\033[;31mThe directory or file does not exist\033[0m"

sys.exit()

elif model == 'update':

update(path)

elif model == 'check':

check(path)

else:

Usage()

原文:http://blog.linuxeye.com/376.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux挂马检测,检测网站挂马程序(Python) 的相关文章

  • 面试官:断网了,还能 ping 通 127.0.0.1 吗?

    你女神爱不爱你 你问她 她可能不会告诉你 但网通不通 你 ping 一下就知道了 可能看到标题 你就知道答案了 但是你了解背后的原因吗 那如果把 127 0 0 1 换成 0 0 0 0 或 localhost 会怎么样呢 你知道这几个IP
  • Python吴恩达深度学习作业22 -- Emoji表情情感分类器

    Emojify 此次你将使用单词向量表示来构建Emojifier表情符号 你是否曾经想过让短信更具表现力 你的emojifier应用程序将帮助你做到这一点 因此 与其写 恭喜晋升 有机会喝杯咖啡聊天吧 爱你 emojifier可以自动将其变
  • VMware(Ubuntu)共享文件夹设置

    VMware共享文件夹设置 安装完成ubuntu虚拟机后 需要建立共享文件夹来方便在Host主机和虚拟机ubuntu之间分享文件 在虚拟机设置中 在 选项 卡中找到 共享文件夹 项 在右侧添加共享文件夹 在虚拟机中 在ubuntu终端中使用
  • Linux内核同步之RCU机制基础

    Why RCU 1 中断与抢占 当一个进程被时钟中断打断后 kernel运行tick中断处理程序 一般是top half 中断处理程序运行结束后 有两种情况 之前的进程获得CPU继续运行 另一个进程获得了CPU开始运行 而之前的进程则被抢占
  • apt-get update不成功的解决方法

    1 apt get update的时候不成功 如下图所示 解决方法 修改DNS 文件是 etc resolve conf 添加nameserver 8 8 8 8 2 添加后再次运行又显示错误 和锁相关 如下图所示 解决方法 将apt ge
  • npm -v 报错:Error: EPERM: operation not permitted, mkdir 'C:\soft\nodejs'

    npm v 报错 Error EPERM operation not permitted mkdir C soft nodejs 起因 原本安装node在C盘soft文件夹下 按nodejs安装和配置安装后 因为公司电脑的各种权限问题 无法
  • SpringBoot开发日记(六)——如何部署SpringBoot项目

    一 jar包方式启动 使用spring boot内置的tomcat运行 不需要外置tomcat 1 打jar包 打包完成后 在Building jar后面就是打包完成后jar存放的位置 然后jar包所在的位置进入cmd 或者把jar放到自己
  • java.sql.SQLException: Connection is read-only 问题产生的原因及解决办法

    org springframework dao TransientDataAccessResourceException Error updating database Cause java sql SQLException Connect
  • 搞懂 Spark 系列之深入理解Spark内存管理

    Spark 内存概述 众所周知 Spark是比Hadoop快近百倍 理想条件下 如下图所示 的大数据计算引擎 而这其中最主要突出的地方就是Spark是基于内存的计算引擎 相比于Hadoop来说 减少了MR过程中的磁盘IO 通过将map端计算
  • 黑马程序员mysql高级_[杭州校区][技术笔记] MySql高级查询

    本帖最后由 小江哥 于 2019 12 24 15 16 编辑 高级查询 高级查询的格式 select 聚合函数 from 表名 where group by having order by limit order by 给查询结果排序 语
  • 【@FeignClient】

    FeignClient 在做springcloud分布式开发过程中会有需要访问其他服务的情况 每一个服务之间都是以接口的方式访问的 那么就需要使用到 FeignClient 来访问其他服务的接口 FeignClient 实现的是声明式的 模
  • 抽3分钟检验一下,自动化测试重运行,我会了么?

    测试失败时会发生什么 如果有人手动运行测试 那么他们会暂停并了解更多信息 但是 当自动测试失败时 其余部分可能会继续运行 在套件完成之前 你是没有办法看到测试报告的 并且自动化程序不会在故障时执行任何额外的操作尝试找出问题 当剩下的用例全部
  • toLua学习笔记十——lua调用C#的类

    toLua访问C 的类 固定套路 命名空间 类名 比如GameObject 在lua中调用就是UnityEngine GameObject 1 通过C 实例化一个对象 因为lua中没有new 所以我们直接使用类名 来实例化对象 local
  • (附源码)基于Android的订餐app 毕业设计 190711

    摘 要 随着现在网络的快速发展 网络的应用在各行各业当中它很快融入到了许多学校的眼球之中 他们利用网络来做这个职位推荐的网站 随之就产生了 订餐app 这样就让用户订餐app更加方便简单 对于本订餐app的设计来说 它主要是采用后台采用ja
  • python经典数据结构与算法之双指针 碰撞指针 快慢指针

    双指针之碰撞指针 也就是两个指针 分别指向头和尾 向中间靠拢 直到碰到一起 程序终止 移动过程中按照一定的规则进行移动 python中一般用List或字符串做数据 比如以下程序 来源Github 地址最下 用来解决 Leetcode 167
  • PTA 6-1 简单输出整数

    6 1 简单输出整数 10 分 本题要求实现一个函数 对给定的正整数N 打印从1到N的全部正整数 函数接口定义 void PrintN int N 其中N是用户传入的参数 该函数必须将从1到N的全部正整数顺序打印出来 每个数字占1行 裁判测
  • LeetCode260.只出现一次的数字 III(位运算)

    LeetCode260 只出现一次的数字 III 位运算 题目传送门 一 题目解析 给定一个整数数组 nums 其中恰好有两个元素只出现一次 其余所有元素均出现两次 找出只出现一次的那两个元素 你可以按 任意顺序 返回答案 进阶 你的算法应
  • C中的Flout和0的比较

    很清楚记得大学里的某一天 老师让我们写出float x与 零值 比较的if语句 我兴冲冲地2分钟写完上去演示 结果不知道这是个 套 当时只知道不能直接用float类型的值与0进行 或 比较 但不知道该具体怎么写这个if语句 看过答案才知道
  • 遇到Uncaught SyntaxError: missing ) after argument list 解决小思路

    vscode运行前端代码程序没有报错 控制台报错 SyntaxError missing after argument list 意思是有语法错误 仔细检查是es6语法低版本浏览器不支持导致的 升级最新版chrome浏览器 就解决了 这只是

随机推荐

  • 基于C++的水灵VTK8学习笔记3(VTK图形处理)

    VTK资料分享 张晓东的 VTK图形图像开发进阶 全套资料 包含书籍电子版 配套每章节所有源码 实现效果图和工程配置文件 水灵VTK学习全套资料 包含全部视频 PPT 源码和每个项目对应的工程配置文件CmakeLists txt 水灵VT视
  • Element中el-select下拉框无法回显

    使用elementUI时 在页面编辑时 下拉框回显数据有问题 这里主题类型默认选中类型为1的主题 并显示主题类型
  • 将一个有序的链表转化为一个二叉搜索树

    题目 Given a singly linked list where elements are sorted in ascending order convert it to a height balanced BST 解题思路 解决这道
  • 解决SpringBoot jar包中的文件读取问题

    前言 SpringBoot微服务已成为业界主流 从开发到部署都非常省时省力 但是最近小明开发时遇到一个问题 在代码中读取资源文件 比如word文档 导出模版等 本地开发时可以正常读取 但是 当我们打成jar包发布到服务器后 再次执行程序时就
  • Qt--自定义搜索控件,QLineEdit带前缀图标

    写在前面 这里自定义一个搜索控件 通过自定义LineEdit的textChange信号 搜索指定内容 并以QCheckBox的方式显示在QListWidget中 开发版本 Qt 5 15 2 Qt Creator10 0 2 编译环境 ms
  • 解决Failed to connect to 127.0.0.1 port 1080: Connection refused 报错

    https www jianshu com p 13099813f23d 解决Failed to connect to 127 0 0 1 port 1080 Connection refused 报错 0 4842018 07 03 14
  • 零基础JAVA——黑马程序员课程笔记

    视频地址 点击访问 我这里开发工具有时候用eclipse有时候用IDEA 看每个人的习惯 文中代码部分不会和老师讲的一模一样 因为我都是在看到老师给的案例后自己尝试写的 推荐大家这样做 可以帮助大家掌握 文章目录 JAVA语言发展史 JAV
  • 阿里云centos7安装mongodb,并开启远程连接

    1 下载mongodb 使用命令 curl O https fastdl mongodb org linux mongodb linux x86 64 3 2 9 tgz 2 上传到服务器 我这里用的是阿里云的远程服务器 并解压和重命名 r
  • charles使用

    安装 HTTPS的SSL证书配置 windows电脑 管理员模式打开Charles gt help gt SSL Proxying gt Install Chrales Root Certificate 安装证书 gt 下一步 gt 选择证
  • Gradle自定义插件详解

    首先认识plugin plugin采用groovy语言来编写 如果你对groovy语言不是很熟悉 请首先过一下groovy语法结构 groovy是运行于JVM的敏捷脚本语言 其最后会被编译成标准的JAVA语言 groovy语言最核心的应该是
  • ZIGBEE抓包工具Ubiqua使用介绍

    一 软件安装 Ubiqua 软件下载链接 https download csdn net download m pfly fish 12050973 二 安装CC2531抓包驱动 驱动软件下载链接 https download csdn n
  • Android am命令启动Service,Activity,BroadcastReceiver

    m命令启动Service Activity BroadcastReceiver 在frameworks base cmds am src com android commands am 一 am命令启动Activity am start n
  • Vlc.DotNet播放本地文件时的路径编码

    在播放本地媒体文件时 VLC会对文件路径进行编码 将中文字符编码为utf 8 在程序中也需要如此 否则不能正常播放 C 中可以用 System Web HttpUtility UrlEncode string System Text Enc
  • LR安装遇到 Cannot save the license information because access to the registry is denied

    在安装LoadRunner11时 会出现多种问题 在此以我遇到的问题一一进行解决 1 在首先安装时导入注册文件会遇到一个错误 就是 此时你需要一个工具 deletelicense 清除注册表信息的一个工具 可以轻易下载到 然后把LoadeR
  • 深入理解C++中的move和forward!

    导语 在C 11标准之前 C 中默认的传值类型均为Copy语义 即 不论是指针类型还是值类型 都将会在进行函数调用时被完整的复制一份 对于非指针而言 开销及其巨大 因此在C 11以后 引入了右值和Move语义 极大地提高了效率 本文介绍了在
  • 保险智能理赔-医疗票据OCR识别解决方案

    基于对健康险理赔行业的深刻洞察和理解 以领先的医疗AI数智化能力打通健康险理赔全流程 通过RPA人机协作实现对理赔材料的智能录入和初审工作 释放大量的专业录单和审核人力 减少企业运营成本 面临痛点 1 人工录入成本高 涉及个人证件 保险单据
  • Visual Attention Network(VAN)

    Visual Attention Network阅读翻译笔记 原文 https arxiv org abs 2202 09741 代码 https github com Visual Attention Network 摘要 虽然最初是为自
  • oracle 排序后取中间的数据

    用minus取 3000和5000的差值 排序后取序列为3000 5000的数据 select from table name t where rownum lt 5000 order by t sn asc minus select fr
  • php event监听

  • linux挂马检测,检测网站挂马程序(Python)

    系统管理员通常从svn git中检索代码 部署站点后通常首先会生成该站点所有文件的MD5值 如果上线后网站页面内容被篡改 如挂马 等 可以比对之前生成MD5值快速查找去那些文件被更改 为了使系统管理员第一时间发现 可结合crontab或na