应急响应 | 使用Neopi检查Webshell
本文介绍了使用NeoPI工具检测和清理黑客上传的WebShell的过程。NeoPI通过统计最长字符串、熵值、恶意代码签名特征等方法识别隐藏或加密的恶意代码,并结合HM等特征库检测工具提高准确性。实验中使用Kali 2020服务器和相关工具完成测试后门生成及检测操作。 2025-9-27 03:16:41 Author: www.freebuf.com(查看原文) 阅读量:3 收藏

freeBuf

主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

【实验目的】

使用NeoPI对黑客上传的webshell进行检测,查找webshell并进行清理。

【知识点】

1. NeoPI是什么

NeoPI是一个由Python所编写的脚本,它使用多种统计方法来检测存在于文本及脚本文件中的、经过伪装处理或加密过的内容。NeoPI的预期目的是帮助定位网页shell的隐藏代码标识。NeoPI在发展方面的重心在于创造一套可与其它现有检测方案(例如Linux恶意软件检测或传统的基于签名认证/密钥信息的检索手段)共同作用的强大工具。
NeoPI是一款独立的平台,能够在安装了Python 2.6的任何操作系统平台上运行。要运行这套脚本的用户,首先需要获得读取计算机中所有文件的权限,这样该工具才能进行全盘扫描。
NeoPI将对整个文件系统由基层目录开始进行循环扫描,并按照一系列检测结果对文件进行评估分类。这种分类能够帮助我们识别哪些文件有较高的机率可能已经被经过加密的网页shell所入侵。它同时还提供了一种称为"总体"评分的系统,可以由单独的检测做出个别的文件分类。

2. NeoPI统计方法

NeoPI利用以下几种不同的统计方法,来尝试判断对象文件中包含恶意代码的可能性。

  1. 最长的字符串(LongestWord):最长的字符串指的是该种检测手段将文件中长度最长且不间断的字符串作为判断标识。由于典型的文本及脚本文件,其内容在字符串的长度方面普遍较短,因此找出那些反常的长串字符可能有助于识别该文件中是否存在恶意代码。

  2. 熵(Entropy):熵是一种用来衡量及描述某值在不确定性方面所表现出来的强度的概念。熵测量在识别加密型网页shell方面功效卓著,因为加密过程往往会使对象文本字符串的熵值大幅提升。

  3. 恶意代码签名特征(SignatureNasty):统计代码中包含的恶意代码片段个数。

  4. 重合指数(Indexof Coincidence):也叫巧合指数(简称I.C.)是指一种用来对文本进行加密分析或自然语言分析的技术指标。它可以计算某个所有字母的出现机率相对平均的文本中,其字母组合的出现情况。

  5. 压缩(Compression):对比文件的压缩比,Webshell文件压缩比通常比正常文件低。

【实验原理】

NeoPI是一个由Python所编写的脚本,它使用多种统计方法来检测存在于文本及脚本文件中的经过伪装处理或加密过的内容,比如统计最长字符串、统计巧合指数等方式,去查杀变形木马。NeoPI不同于基于特征库检测工具,有些恶意文件通过特征库方法是可以检测到,但是NeoPI工具却发现不了,通常结合依据特征库检测工具如HM、D盾等工具使用。

【软件工具】

  • 服务器:kali2020一台;

  • 软件:NeoPI工具、HM工具、Webacoo工具、Weevely工具。

【实验目标】

掌握NeoPI对WebShell进行检测原理和工具基本使用。

【实验步骤】

1.生成测试后门

(1)打开浏览器输入:http://10.0.0.50访问DVWA网站,该网站文件存储在/var/www/html/DVWA-master/目录下。

已在FreeBuf发表 0 篇文章

本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)


文章来源: https://www.freebuf.com/articles/system/450658.html
如有侵权请联系:admin#unsafe.sh