python脚本实现查找webshell的方法
2014-07-31 00:00
746 查看
本文讲述了一个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脚本实现查找webshell的方法
- python实现在目录中查找指定文件的方法
- python实现根据ip地址反向查找主机名称的方法
- Python中在脚本中引用其他文件函数的实现方法
- python: 实现通讯录录入与查找的小脚本
- 使用Python脚本实现批量网站存活检测遇到问题及解决方法
- python实现在目录中查找指定文件的方法
- python脚本实现数据导出excel格式的简单方法(推荐)
- Python中在脚本中引用其他文件函数的实现方法
- 利用Python脚本生成sitemap.xml的实现方法
- Python实现从脚本里运行scrapy的方法
- python实现在字符串中查找子字符串的方法
- Python3实现从指定路径查找文件的方法
- Python脚本实现查找指定目录下包含指定关键字的文件
- python实现调用其他python脚本的方法
- python实现根据ip地址反向查找主机名称的方法
- python实现查找excel里某一列重复数据并且剔除后打印的方法
- python实现查找两个字符串中相同字符并输出的方法
- 利用Python脚本实现ping百度和google的方法
- 使用Python脚本实现批量网站存活检测遇到问题及解决方法