python脚本实现查找webshell的方法


Posted in Python onJuly 31, 2014

本文讲述了一个python查找 webshell脚本的代码,除了查找webshell功能之外还具有白名单功能,以及发现恶意代码发送邮件报警等功能,感兴趣的朋友可以自己测试一下看看效果。

具体的功能代码如下:

#!/usr/bin/env python
#-*- coding: utf-8 -*-

import os
import sys
import re
import smtplib

#设定邮件
fromaddr = "smtp.qq.com"
toaddrs = ["voilet@qq.com"]
username = "voilet"
password = "xxxxxx"


#设置白名单
pass_file = ["api_ucenter.php"]

#定义发送邮件函数
def sendmail(toaddrs,sub,content):
  '发送邮件模块'
  # Add the From: and To: headers at the start!
  msg = ("From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n"
      % (fromaddr, ", ".join(toaddrs), sub))
  msg += content
  server = smtplib.SMTP('mail.funshion.com', 25,)
  server.login(username, password)
  server.sendmail(fromaddr, toaddrs, msg)
  server.quit()

#设置搜索特征码
rulelist = [
  '(\$_(GET|POST|REQUEST)\[.{0,15}\]\(\$_(GET|POST|REQUEST)\[.{0,15}\]\))',
  '(base64_decode\([\'"][\w\+/=]{200,}[\'"]\))',
  'eval\(base64_decode\(',
  '(eval\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))',
  '(assert\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))',
  '(\$[\w_]{0,15}\(\$_(POST|GET|REQUEST)\[.{0,15}\]\))',
  '(wscript\.shell)',
  '(gethostbyname\()',
  '(cmd\.exe)',
  '(shell\.application)',
  '(documents\s+and\s+settings)',
  '(system32)',
  '(serv-u)',
  '(提权)',
  '(phpspy)',
  '(后门)',
  '(webshell)',
  '(Program\s+Files)',
  'www.phpdp.com',
  'phpdp',
  'PHP神盾',
  'decryption',
  'Ca3tie1',
  'GIF89a',
  'IKFBILUvM0VCJD\/APDolOjtW0tgeKAwA',
  '\'e\'\.\'v\'\.\'a\'\.\'l\'',
]

def Scan(path):
  for root,dirs,files in os.walk(path):
    for filespath in files:
      isover = False
      if '.' in filespath:
        ext = filespath[(filespath.rindex('.')+1):]
        if ext=='php' and filespath not in pass_file:
          file= open(os.path.join(root,filespath))
          filestr = file.read()
          file.close()
          for rule in rulelist:
            result = re.compile(rule).findall(filestr)
            if result:
              print '文件:'+os.path.join(root,filespath)
              print '恶意代码:'+str(result[0])
              print '\n\n'
              sendmail(toaddrs,"增值发现恶意代码",'文件:'+os.path.join(root,filespath)+"\n" + '恶意代码:'+str(result[0]))
              break

try:
  if os.path.lexists("/home/web_root/"):
    print('\n\n开始扫描:'+ "/home/web_root/")
    print('        可疑文件         ')
    print('########################################')
    Scan("/home/web_root/")
    print('提示:扫描完成--~')
  else:
    print '提示:指定的扫描目录不存在--- '
except IndexError:
  print "请指定扫描文件目录"
Python 相关文章推荐
python实现的阳历转阴历(农历)算法
Apr 25 Python
在Python中操作字符串之startswith()方法的使用
May 20 Python
django接入新浪微博OAuth的方法
Jun 29 Python
python开发中range()函数用法实例分析
Nov 12 Python
hmac模块生成加入了密钥的消息摘要详解
Jan 11 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
python3+selenium实现126邮箱登陆并发送邮件功能
Jan 23 Python
python中的print()输出
Apr 12 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 Python
分享Python获取本机IP地址的几种方法
Mar 17 Python
用python删除java文件头上版权信息的方法
Jul 31 #Python
Python datetime时间格式化去掉前导0
Jul 31 #Python
python处理文本文件并生成指定格式的文件
Jul 31 #Python
Python中关键字is与==的区别简述
Jul 31 #Python
python处理文本文件实现生成指定格式文件的方法
Jul 31 #Python
Python中zip()函数用法实例教程
Jul 31 #Python
Python中apply函数的用法实例教程
Jul 31 #Python
You might like
构建简单的Webmail系统
2006/10/09 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
jQuery之折叠面板的深入解析
2013/06/19 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
AngularJS HTML DOM详解及示例代码
2016/08/17 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
python处理csv数据的方法
2015/03/11 Python
Python使用pyshp库读取shapefile信息的方法
2018/12/29 Python
学习python的前途 python挣钱
2019/02/27 Python
详解Python中的format格式化函数的使用方法
2019/11/20 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
二年级语文教学反思
2014/02/02 职场文书
讲解员培训方案
2014/05/04 职场文书
小学感恩教育活动总结
2014/07/07 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
佛光寺导游词
2015/02/10 职场文书
联欢会开场白
2015/06/01 职场文书
嘉年华活动新闻稿
2015/07/17 职场文书
Django框架中表单的用法
2022/06/10 Python