用Python和MD5实现网站挂马检测程序


Posted in Python onMarch 13, 2014

一、程序测试

# 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()
Python 相关文章推荐
Python脚本在Appium库上对移动应用实现自动化测试
Apr 17 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
Python模拟三级菜单效果
Sep 11 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
django 实现电子支付功能的示例代码
Jul 25 Python
Python的numpy库下的几个小函数的用法(小结)
Jul 12 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
Oct 18 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
python实现双人五子棋(终端版)
Dec 30 Python
Keras保存模型并载入模型继续训练的实现
Feb 20 Python
python操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 #Python
使用Python判断IP地址合法性的方法实例
Mar 13 #Python
Python 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 #Python
详解Python中的__init__和__new__
Mar 12 #Python
python文件和目录操作方法大全(含实例)
Mar 12 #Python
Python 文件读写操作实例详解
Mar 12 #Python
Python 异常处理实例详解
Mar 12 #Python
You might like
详解WordPress中分类函数wp_list_categories的使用
2016/01/04 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
深入理解Javascript里的依赖注入
2014/03/19 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
浅谈js原生拖放
2016/11/21 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
Python Queue模块详细介绍及实例
2016/12/27 Python
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Django中的forms组件实例详解
2018/11/08 Python
详解Django中CBV(Class Base Views)模型源码分析
2019/02/25 Python
Python在Matplotlib图中显示中文字体的操作方法
2019/07/29 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
基于FME使用Python过程图解
2020/05/13 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
医生实习工作总结的自我评价
2013/09/27 职场文书
安全员岗位职责
2013/11/11 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
党建目标管理责任书
2014/07/25 职场文书
四风问题查摆材料
2014/08/25 职场文书
银行开户授权委托书格式
2014/10/10 职场文书
群众路线组织生活会发言材料
2014/10/17 职场文书
公司员工安全协议书
2014/11/21 职场文书
先进班集体事迹材料
2014/12/25 职场文书
Python实现自动玩连连看的脚本分享
2022/04/04 Python
使用python绘制分组对比柱状图
2022/04/21 Python