您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python脚本实现查找webshell的方法

5b51 2022/1/14 8:18:05 python 字数 5865 阅读 351 来源 www.jb51.cc/python

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

概述

本文讲述了一个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,'(assert\(\$_(POST|GET|REQUEST)\[.{0,'(\$[\w_]{0,15}\(\$_(POST|GET|REQUEST)\[.{0,'(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脚本实现查找webshell的方法全部内容,希望文章能够帮你解决python脚本实现查找webshell的方法所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶