用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抓取某汽车网数据解析html存入excel示例
Dec 04 Python
pycharm 使用心得(三)Hello world!
Jun 05 Python
Python中实现常量(Const)功能
Jan 28 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
python写入并获取剪切板内容的实例
May 31 Python
Python实现在某个数组中查找一个值的算法示例
Jun 27 Python
python numpy实现文件存取的示例代码
May 26 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
Python装饰器原理与基本用法分析
Jan 07 Python
Tensorflow限制CPU个数实例
Feb 06 Python
降低python版本的操作方法
Sep 11 Python
上帝为你开了一扇窗之Tkinter常用函数详解
Jun 02 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
深入分析php之面向对象
2013/05/15 PHP
PHP命令空间namespace及use的用法小结
2017/11/27 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
50个比较实用jQuery代码段
2011/09/18 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
node.js中的fs.createWriteStream方法使用说明
2014/12/17 Javascript
jquery实现简单的自动播放幻灯片效果
2015/06/13 Javascript
jquery中取消和绑定hover事件的实现代码
2016/06/02 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
vue引入js数字小键盘的实现代码
2018/05/14 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
2018/06/19 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
windows上安装Anaconda和python的教程详解
2017/03/28 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
python 执行文件时额外参数获取的实例
2018/12/18 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
Python里面如何实现tuple和list的转换
2012/06/13 面试题
基层工作经历证明
2014/01/13 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
员工辞退通知书
2015/04/17 职场文书
公路施工安全责任书
2015/05/08 职场文书
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python
python热力图实现的完整实例
2022/06/25 Python