前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >如何使用PHP Malware Finder检测主机中潜在的恶意PHP文件

如何使用PHP Malware Finder检测主机中潜在的恶意PHP文件

作者头像
FB客服
发布于 2022-04-11 13:04:10
发布于 2022-04-11 13:04:10
2K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

关于PHP Malware Finder

PHP Malware Finder是一款针对主机安全和PHP安全的强大检测工具,在该工具的帮助下,广大研究人员可以轻松检测其主机或服务器中可能存在的潜在恶意PHP文件。

PHP Malware Finder本质上就是一款恶意软件检测工具,它将尽其所能地去检测那些经过代码模糊/混淆处理的恶意代码,以及潜在恶意PHP文件中所使用的各种PHP功能函数。

功能介绍

PHP Malware Finder支持检测跟下列编码器、代码混淆工具和Webshell相关的恶意PHP文件:

Bantam Best PHP Obfuscator Carbylamine Cipher Design Cyklodev Joes Web Tools Obfuscator P.A.S PHP Jiami Php Obfuscator Encode SpinObf Weevely3 atomiku cobra obfuscator nano novahot phpencode tennc web-malware-collection webtoolsvn

当然了,绕过PHP Malware Finder的检测其实也并不负责,但PHP Malware Finder的主要目的就是帮助我们检测一些比较明显和常见的恶意文件。

工具运行机制

整个检测过程是通过对目标主机或服务器的文件系统进行数据爬取来实现的,并根据一组YARA规则测试文件来执行恶意文件的检测。没错,就是这么简单!

PHP Malware Finder没有使用基于哈希的方法,但它会尽可能多地使用语义模式,检测诸如“一个$_GET变量被解码两次,解压,然后传递给某个危险的系统函数”这样的场景。

工具安装

首先,我们需要安装好Yara。我们可以通过Linux包管理器来完成安装:

Debian

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install yara

Red Hat(需要EPEL库):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum install yara

除此之外,我们还可以使用下列命令从源码编译Yara:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone git@github.com:VirusTotal/yara.git

cd yara/

YACC=bison ./configure

make

接下来,我们就可以通过下列命令将该项目源码克隆至本地,并进行安装和配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/jvoisin/php-malware-finder.git

工具使用

查看工具帮助信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./phpmalwarefinder -h

Usage phpmalwarefinder [-cfhtvl] <file|folder> ...

    -c  Optional path to a rule file

    -f  Fast mode

    -h  Show this help message

    -t  Specify the number of threads to use (8 by default)

-v  Verbose mode

或者,我们也可以通过Yara来使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ yara -r ./php.yar /var/www

请注意,我们说使用的Yara版本必须为Yara v3.4或更高版本,因为我们会在白名单系统中使用到某些组件(比如说哈希)。如果你想通过源码构建Yara的话,还必须要在系统上安装好libssl-dev以便支持哈希。

顺带提一句,我们还可以用“make tests”来对工具进行综合测试。

白名单系统

具体的白名单信息可以参见whitelist.yar文件,如果你懒得看的话,可以直接使用generate_whitelist.py脚本来为整个目录生成白名单。

许可证协议

本项目的开发与发布遵循General Public License v3开源许可证协议。

项目地址

https://github.com/jvoisin/php-malware-finder

参考资料

https://yara.readthedocs.io/en/stable/gettingstarted.html#compiling-and-installing-yara

https://fedoraproject.org/wiki/EPEL

https://yara.readthedocs.org/en/latest/modules/hash.html

https://github.com/jvoisin/php-malware-finder/blob/master/php-malware-finder/whitelist.yar

https://github.com/jvoisin/php-malware-finder/blob/master/php-malware-finder/utils/generate_whitelist.py

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python获取昨天、今天、明天开始、结束时间戳
Python获取昨天、今天、明天开始、结束时间戳 # coding=utf-8 import time import datetime # 今天日期 today = datetime.date.today() # 昨天时间 yesterday = today - datetime.timedelta(days=1) # 明天时间 tomorrow = today + datetime.timedelta(days=1) acquire = today + datetime.timedelta(day
wo.
2021/06/15
5.3K0
python时间函数整理
有一些是拷的,自己加了一点,大家凑活看吧 #-*- coding:utf-8 -*- import time import datetime #in python is float while in php is int currenttime = 1402244512.48 print time.time() print time.ctime() print time.ctime(currenttime) print time.localtime() print type(time.localtime
老高的技术博客
2022/12/27
3330
python时间操作
1357548276.53 2013-01-07 08:44:36 1357519476.0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Mon Jan 07 16:44:36 2013 time.struct_time(tm_year=2013, tm_mon=1, tm_mday=7, tm_hour=16, tm_min=44, tm_sec=36, tm_wday=0, tm_yday=7, tm_isdst=0) 2013-01-07 16:44:36 Mon Jan 07 16:44:36 2013 1357548276.0 1357548276.0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2013-01-07 16:44:36.562000 2013-01-07 16:44:36562
py3study
2020/01/06
4650
Python time模块详解(时间戳↔元组形式↔格式化形式三者转化)计算时间差
在Python中, time有三种表示形式 1 时间戳:1970年1月1日之后的秒 2 元组格式化形式 包含了:年、日、星期 得到time.struct_time( tm_year=2017, tm_mon=10, tm_mday=14…) print(‘2.元组格式化形式:{}’.format(time.gmtime())) 3 可视化的字符串 2017-11-11 11:44
学到老
2019/02/14
2.7K0
Python time和datetime时间戳和时间字符串相互转换
时间戳是指格林威治时间1970年01月01日00时00分00秒开始计算,到记录的时间点所经过的秒数,是一个浮点数。
Python碎片公众号
2021/02/26
3.2K0
Python time和datetime时间戳和时间字符串相互转换
pandas技巧3
pandas中去重之后保留的索引仍是原数据的索引,有时候需要按照0,1,2,3,…进行重新排列
皮大大
2021/03/01
8760
pandas技巧3
python时间模块-time和datetime
python 中时间表示方法有:时间戳,即从1975年1月1日00:00:00到现在的秒数;格式化后的时间字符串;时间struct_time 元组。 struct_time元组中元素主要包括tm_year(年)、tm_mon(月)、tm_mday(日)、tm_hour(时)、tm_min(分)、tm_sec(秒)、tm_wday(weekday0 - 6(0表示周日))、tm_yday(一年中的第几天1 - 366)、tm_isdst(是否是夏令时)
Mirror王宇阳
2020/11/10
5700
python时间模块time和datet
通用时间格式:     1.时间戳(timestamp) import time   time.time()  1970年-目前     2.格式化的时间字符串     3.元组(struct_time)共九个元素         time.localtime() 查看九个元素         九个元素如下:             tm_year=2016,   年             tm_mon=5,       月(1-12)             tm_mday=6,      日(1-31
py3study
2020/01/09
7370
python时间模块time和datet
Python获取秒级时间戳与毫秒级时间戳的方法[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
7.9K0
Python3 日期与时间戳相互转换
开发中经常会对时间格式处理,对于时间数据,比如2019-02-28 10:23:29,有时需要日期与时间戳进行相互转换,在Python3中主要用到time模块,相关的函数如下:
双面人
2019/09/08
1K0
python日期格式化操作
2.格式更改 如a = “2013-10-10 23:40:00”,想改为 a = “2013/10/10 23:40:00” 方法:先转换为时间数组,然后转换为其他格式 复制代码代码如下:
周小董
2019/03/25
5.8K0
Python获取时间戳
↑↑↑↑↑↑↑↑↑↑ 点点关注吧!!! 用到的的机会还是有的,但是我感觉我用的少~ 获取秒级时间戳与毫秒级时间戳 import timeimport datetime t = time.time() print (t) #原始时间数据print (int(t)) #秒级时间戳print (int(round(t * 1000))) #毫秒级时间戳 nowTime = lambda:int(round(t * 1000))
萌海无涯
2019/08/03
2.9K0
python下的日期与时间(时间格式转换、时间戳处理,时间差处理)
时间戳单位最适于做日期运算。但是1970年之前的日期就无法以此表示了。太遥远的日期也不行,UNIX和Windows只支持到2038年。
学到老
2019/01/25
14K0
python---时间和时间戳的关系转换
经常用的有time.time()、time.strftime()、time.strptime()、time.localtime()、time.mktime()
py3study
2020/01/09
1.6K0
python---时间和时间戳的关系转换
python 获取时间戳_datetime获取当前时间
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188491.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
12K0
Python对时间的支持
在数据处理中,经常要进行时间相关的处理,有时候只是简单的时间格式转换,而有时,要计算两个时间的间隔。需求总是五花八门,但,有Python的话,这些处理都变的简单了……
数据处理与分析
2019/07/31
8930
一文带你理清Python时间处理
三种时间状态:时间戳、时间元组、字符串 四个转换函数:localtime、strftime、strptime、mktime
诡途
2022/05/09
5140
一文带你理清Python时间处理
Python时间和时间戳互相转换
# 将时间变成时间戳 def tranftimestamp(stringtime): try: return time.mktime(time.strptime(stringtime, "%Y-%m-%d %H:%M:%S.%f")) except: return time.mktime(time.strptime(stringtime, "%Y-%m-%d %H:%M:%S")) # 将时间戳转化为时间 def tranftime(timestamp):
机器学习和大数据挖掘
2019/07/02
1.3K0
python datetime 字符串 时间戳
#把datetime转成字符串 def datetime_toString(dt): return dt.strftime("%Y-%m-%d-%H") #把字符串转成datetime def string_toDatetime(string): return datetime.strptime(string, "%Y-%m-%d-%H") #把字符串转成时间戳形式 def string_toTimestamp(strTime): return time.mktime(strin
玩蛇的胖纸
2018/07/05
7610
python 时间、日期、时间戳的转换
在实际开发中经常遇到时间格式的转换,例如: 前端传递的时间格式是字符串格式,我们需要将其转换为时间戳,或者前台传递的时间格式和我们数据库中的格式不对应,我们需要对其进行转换才能与数据库的时间进行匹配等。
py3study
2020/01/16
19.3K0
相关推荐
Python获取昨天、今天、明天开始、结束时间戳
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验