Python实现的检测网站挂马程序

系统管理员通常从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()
(0)

相关推荐

  • phpsir 开发 一个检测百度关键字网站排名的python 程序

    源码如下 :保存成utf-8 bd.py 文件 复制代码 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import sys import urllib ,urllib2 import re def baidu(w): url= "http://www.baidu.com/s?" values = { "w":w.encode('gbk','ignore') } data = urllib.urlencode

  • 使用Python脚本实现批量网站存活检测遇到问题及解决方法

    做渗透测试的时候,有个比较大的项目,里面有几百个网站,这样你必须首先确定哪些网站是正常,哪些网站是不正常的.所以自己就编了一个小脚本,为以后方便使用. 具体实现的代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*- ''' @Author:joy_nick @博客:http://byd.dropsec.xyz/ ''' import requests import sys f = open('url.txt', 'r') url = f.readline

  • Python检测网站链接是否已存在

    Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. 像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议. 早就听说Python语言操作简单,果然名不虚传,短短几句,就实现了基本的功能. 要检测目标网站上是否存在指定的URL,其实过程很简单: 1.获得指定网站网页的HTML代码 2.在HTML代码中查找指定的UR

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

    一.程序测试 复制代码 代码如下: # 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

  • Python实现的检测网站挂马程序

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

  • Python实现定时检测网站运行状态的示例代码

    通过定时的检测网站的状态,通常检测地址为网站的域名,如果链接的状态码不是200,那么,就将对其进行下线处理,在特定时间后对其进行二次探测状态,如果符合将其上线,以前使用的创宇云的监控,但是功能比较单一,无法满足需求,近期使用Python来实现这一功能,后期将编写监控模块,并进行代码开源或搭建公共服务器. 本次抒写的是链接状态码获取,可以一应用在网站监控,友情链接监控等方面,及时作出提醒预警.状态处理等,方便网站优化.本次使用了python的requests.datatime.BlockingSc

  • php下批量挂马和批量清马代码

    复制代码 代码如下: <?php function gmfun($path=".") { $d = @dir($path); while(false !== ($v = $d->read())) { if($v == "." || $v == "..") continue; $file = $d->path."/".$v; if(@is_dir($file)) { gmfun($file); } else {

  • 让McAfee来终结网站被挂马的时代图文教程

    很多站长因为使用网上不常见的程序,有漏洞得不到补丁:而自己又没有编程能力无法修复或者干脆不知道漏洞在那里,被挂马后恢复程序结果不久又被挂--还有很多人即使使用的是应用比较广泛的程序,但也可能因为没及时打上补丁或出了漏洞官方还未发现而被挂马. 老是被挂也不是个事.怎么才能彻底杜绝被挂马呢?让程序完美,没有任何漏洞?这个可能性好象接近于0.我们只能从其他的地方想办法. 首先来看一下马是怎么挂上去的.首先,"黑客"会找到一个漏洞,然后利用这个漏洞上传一个后门程序上去以取得WEBSHELL,这

  • Python实例分享:快速查找出被挂马的文件

    思路 需要实现准备一份未受感染的源代码和一份可能受感染的源代码,然后运行以下脚本,就能找出到底哪些文件被挂马了. 其中,主要是根据比对2份文件的md5值来过滤可能被挂马的文件(确切的说应该是被修改过的文件) Python脚本 复制代码 代码如下: __author__ = 'Flying'#coding:utf-8#Date:2014.6.5#检测修改过的文件import os,sys,hashlib,datetimeglobal_DirOld = ""global_DirNew =

  • python基于opencv检测程序运行效率

    这篇文章主要介绍了python基于opencv检测程序运行效率,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 涉及到的函数主要有两个: 1.cv2.getTickCount()函数返回从参考点到这个函数被执行的时钟数.所以当你在一个函数前后都调用它的话,你就会得到这个函数的执行时间(时钟数). 2.cv2.getTickFrequency()返回时钟频率,或者说每秒钟的时钟数. 所以你可以按照以下的方式得到一个函数运行了多少秒: # -*- c

  • 记一次Centos服务器被挂马的抓马经历

    今天早上五点,收到监控宝的警告短信,说是网站M无法访问了.睡的正香,再说网站所在系统是centos,重要数据每天都备份,应该很安全,也没有在意.倒头接着睡觉去了. 早上九点,机房负责人直接给我打来电话,说是全机房网络巨慢,单位的所有网站都打不开或打开的很慢.Centos服务器被挂马的一次抓马经历. 我赶紧赶了过去,查看了一下那里网络,发现175服务总是以50M/S速度向外发包,而175服务器正是网站M所在的服务器. 果断SSH连接175服务器,发现175服务器连接也很慢,连上之后top一下,查看

随机推荐