用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代码(逐级优化)
May 25 Python
Python中字符编码简介、方法及使用建议
Jan 08 Python
Python实现的随机森林算法与简单总结
Jan 30 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
Django之无名分组和有名分组的实现
Apr 16 Python
在python shell中运行python文件的实现
Dec 21 Python
pytorch sampler对数据进行采样的实现
Dec 31 Python
OpenCV+python实现实时目标检测功能
Jun 24 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 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下使用SMTP发邮件的代码
2008/01/10 PHP
thinkphp实现数组分页示例
2014/04/13 PHP
destoon各类调用汇总
2014/06/20 PHP
推荐25款php中非常有用的类库
2014/09/29 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
JS把内容动态插入到DIV的实现方法
2016/07/19 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
javascript实现下雨效果
2017/03/27 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
python实现数通设备端口监控示例
2014/04/02 Python
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
python3 shelve模块的详解
2017/07/08 Python
详解django中使用定时任务的方法
2018/09/27 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
如何在python中写hive脚本
2019/11/08 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
使用python接受tgam的脑波数据实例
2020/04/09 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
客运企业隐患排查工作方案
2014/06/06 职场文书
联谊活动总结
2014/08/28 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
瘦西湖导游词
2015/02/03 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers