Skip to content
No description, website, or topics provided.
Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
black-list
save
white-list init project Feb 2, 2018
check.py
readme.md init project Feb 2, 2018
requirements.txt
train.py
utils.py

readme.md

机器学习检测Webshell

简介

提取PHP执行中的opcode,采用 opcode词袋 + tf-idf 进行关键信息提取

采用朴素贝叶斯算法进行训练。

进行 PHP WebShell 的检测。

部署

step 1. Python环境部署

pip install -r requirements.txt

step 2. PHP opcode 部署

开启opcode模式

windows环境

1. 下载 vld.dll 插件并存放在php ext 目录下
2. 配置 php.ini 激活vld.dll 文件

VLD.dll下载地址

PHP.ini 配置参考文章

第一次进行训练

将白名单的文件放入到 white-list 文件夹中
将黑名单文件放入到 black-list 文件夹中

进行第一次训练

python train.py

Note:

避免每次生成opcode 的时间过长,每次训练完成后,会生成两个文件,black_opcodes.txt & white_opcodes.txt。

如果有新的白名单文件或者黑名单文件加入,先删除掉black_opcodes.txt 和 white_opcodes.txt 文件,然后再次进行训练。

训练完成后,会在save文件夹内,生成一个gnb.pkl文件,这个是训练好的缓存文件。

检测

检测单个文件

python check.py [filename]

重复训练

  1. 提供训练集 在人工得到结果后,可以在white-list & black-list 文件夹中,添加已知的结果,再按照第一次训练的方法,进行再次训练。得到的结果便会更加准确。

数据集(参考)

白名单

黑名单

You can’t perform that action at this time.