网站篡改检测(WebsiteTamperingDetector)

Powehi—基于JAVA的Web服务器

项目描述

本项目是一个基于Java程序设计语言编写的Web服务器,能够支持解析基本的HTTP协议中的GET方法,响应Web客户端的请求,并生成相应的响应报文返还给Web客户端。并在Web服务器的主机上部署了相应的网页防篡改机制,能够有效地防止存储在远端服务器主机上的网页源文件被恶意篡改。

除此之外,我们还提供了部署在管理员远端的配置管理工具。配置管理工具通过SSH协议建立了一个管理员客户端与远程服务器主机的安全通信,管理员通过配置管理工具设置Web服务器监听的端口、日志、网页源文件运行的目录,并且可以进行网页源文件上传等功能。
开发环境配置

本项目使用了版本为1.8的JDK,并在编译配置管理工具时应用到了Java第三方包JSCH。远程测试服务器端运行的系统为Ubuntu 16.04。
如何运行

首先,需要将已经打包好的Web服务器程序jar包上传至远程服务主机的某一运行目录下,并在该目录下创建一个用于存放网页源文件的目录。初次运行Web服务器程序时,Web服务器会自动探寻当前目录下是否存在config.ini配置文件,若该文件不存在,Web服务器程序会自动生成默认的配置文件。

当Web服务器程序在服务器主机上部署完成之后,管理员通过配置管理工具连接到远程服务器主机,通过接收用户键的端口号、运行主目录生成Web服务器的配置文件,并将该文件上传至服务器上,将Web服务器程序重新启动实现更改Web服务器监听的端口。

注:Web服务器程序不允许用户直接在远程主机上对网页源文件进行修改,将任何对网页源文件的修改视作网页源文件已经被篡改,用户只能通过配置管理工具上传网页文件源码。
如何对服务器进行管理

配置好java环境即可点击Powehi.jar来对服务器进行管理。

首先需要进行登录,输入服务器的地址、用户名和密码,登录成功后即可看到相应的管理界面。管理页面使用方法如下:

选择文件页面:点击选择即可选择本地文件,然后在文件路径页面键入文件将要上传到的路径,点击确定即可完成上传。
日志页面:点击日志页面来查看服务器的访问日志,以及站点统计信息。
配置页面:输入端口号,运行主目录,默认页面,即可进行修改。修改默认页面时,如果服务器上不存在该文件,则需要首先进行上传相关文件。

https://github.com/gitergreat/WebServer

Libra

Libra [ 天秤座 ] | 网站篡改、暗链、死链监测平台
更新日志

V 1.1 更新
完善链接标签,丰富爬取维度
增加深度爬取黑名单,不再对css、图片、压缩文件等内容进行监测
具体参见 Libra\Moudle\Crawler\getweb.py file_type_black
优化各项正则语法,提升辨析准确度

开发背景

重保期间大量单位对关键站点存在防篡改需求,且大量资产存在维护不及时,存在未知暗链死链,这些资产被非法滥用将产生无法估量的损失,so
框架功能列表

██╗ ██╗██████╗ ██████╗ █████╗
██║ ██║██╔══██╗██╔══██╗██╔══██╗
██║ ██║██████╔╝██████╔╝███████║
██║ ██║██╔══██╗██╔══██╗██╔══██║
███████╗██║██████╔╝██║ ██║██║ ██║
╚══════╝╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝

Libra | 网站篡改、暗链、死链监测平台
By RabbitMask | V 1.1

usage: Libra.py [-h] [-u URL] [-m MONITOR] [-f FILE]

optional arguments:
-h, --help show this help message and exit
-u URL The Target Url
-m MONITOR Monitor The Target Url
-f FILE The List Of Target Urls

基础监测功能

会自动记录本次扫描结果,用于下次篡改比对,数据库采用sqllite,报告自动生成至Report目录

python Libra.py -u http://127.0.0.1

██╗ ██╗██████╗ ██████╗ █████╗
██║ ██║██╔══██╗██╔══██╗██╔══██╗
██║ ██║██████╔╝██████╔╝███████║
██║ ██║██╔══██╗██╔══██╗██╔══██║
███████╗██║██████╔╝██║ ██║██║ ██║
╚══════╝╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝

Libra | 网站篡改、暗链、死链监测平台
By RabbitMask | V 1.1

http://127.0.0.1 200
数据爬取完成,正在生成报告,请稍后......
报告已保存至:Report/libra_report_1625478929.md

持续监测功能:

python Libra.py -m http://127.0.0.1

██╗ ██╗██████╗ ██████╗ █████╗
██║ ██║██╔══██╗██╔══██╗██╔══██╗
██║ ██║██████╔╝██████╔╝███████║
██║ ██║██╔══██╗██╔══██╗██╔══██║
███████╗██║██████╔╝██║ ██║██║ ██║
╚══════╝╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝

Libra | 网站篡改、暗链、死链监测平台
By RabbitMask | V 1.1

Wings守护 | Libra 持续监测中......
http://127.0.0.1 200
数据爬取完成,正在生成报告,请稍后......
报告已保存至:Report/libra_report_1625478705.md

Wings守护 | Libra 持续监测中......

已内置pushplus微信预警模块:

批量监测功能:

对集团或辖区内资产,可实现快速监测

python Libra.py -f urls.txt

场面过度限制级,请自行脑补,略

为保持高并发的稳定性和方便资产梳理,log中加入了master字段用于标记所属资产:

### http://127.0.0.1 `200`

  • * Master: `http://127.0.0.1`
  • * Time: `2021-07-05 17:57:14`
  • 框架核心模块
    Crawler 爬虫模块
    Comparer 篡改监测模块

    借助difflib库实现差异化精准定位:

    ========================篡改监测===============================

  • -

    hack by rabbit
    ? ^^^^^^

  • +

    hack by ccc
    ? ^^^

  • DiedLink 死链监测模块
    HiddenLink 暗链监测模块

    基于敏感字的暗链监测模块,随着规则库的完善,误报率直线上升,所以根据自己的需求维护合理的规则库,详见Libra.db
    其它

    微信推送模块默认关闭,请根据自身需求手动设置:Libra\Config\config_push.py push_token

    为保持启动速度,数据库自建模块默认关闭,如有需求,请手动解除注释:Libra\Libra.py # db_start()

    持续监测模块默认60分钟间隔,请自行调整:Libra\Framework\Console.py sleep(3600) #循环监控目标站点,默认时间60分钟
    项目地址

    https://github.com/rabbitmask/Libra

    pageMonitor

    本程序可用来对指定网站进行监测,实现的功能如下: 1、监测目标网站下的文件是否发生修改,也可从界面只勾选部分页面。 2、发生修改就从备份中恢复(也可配置不自动恢复)。 3、发生修改时会向配置的邮箱发送告警邮件。
    环境依赖:

    1、python 3(本人使用python 3.5)。 2、mongodb 数据库,自行百度安装。 3、python第三方库flask,安装命令:pip3 install flask 。
    运行方式:

    1、先运行mongodb数据库(如果采用默认安装,应该运行mongod命令即可)。 2、运行websiteMonitor/webConsole.py,方式:python webConsole.py 。 3、在浏览器中打开:127.0.0.1:5000 。 4、初始登录账号和密码:root / root123 。 5、登录后到界面右上角“设置”里选择“监测配置”,进行相关配置,其中 监测网站路径、备份路径和邮箱接收者三项必填。

    另外,在 core 目录下有个 monitor.py 和 monitor2.py,前者使用的是轮询的方式进行监测,后者使用更高级的文件嵌入方式,但只能在 linux 系统下使用,因为它依赖 linux 系统的 inotify 内核特性,而且还要自行安装 inotifywait 命令。若要使用后者,请自行调整代码。

    下面是部分截图
    登录界面

    image
    监测界面

    image
    监测配置

    image

    网站篡改检测(WebsiteTamperingDetector)

    功能说明

    对批量输入的网站进行篡改检测。 由于IP在中国大陆境外的网站域名可能是过期后被赌博色情等网站注册使用,故仅关注IP在大陆境内的网站。
    环境要求

    Python3
    pip3 install -r requirements.txt
    ChromeDriver & Chrome

    使用方法

    将需要检测的网站域名写入input.txt文件中
    python3 main.py
    检测完成后结果将输出到output.xlsx文件中

    支持检测的篡改特征

    UA判定型JS代码

    类型一
    image
    类型二
    image
    类型三
    image
    类型四
    image
    类型五
    image
    类型六
    image

    代码混淆型JS代码

    类型一
    image
    类型二
    image
    类型三
    image
    类型四
    image
    类型五
    image
    类型六
    image
    类型七
    image
    类型八
    image
    类型九
    image

    特定结构HTML代码

    类型一
    image
    类型二
    image
    类型三
    image
    类型四
    image

    准确率

    使用input.txt中的1万个域名进行测试,经人工验证,准确率约为96% (2024年8月测试,仅验证IP在中国大陆境内的网站,IP在大陆境外的网站仅供参考)。
    依赖的项目

    IP是否在中国大陆境内的判定数据来自17mon/china_ip_list, 程序首次运行时会从该项目下载数据,后续直接使用保存的数据文件。
    开源协议
    GPL-3.0

    https://github.com/XingZhou2024/WebsiteTamperingDetector