科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道网络安全利用NeopPI检测网站后门

利用NeopPI检测网站后门

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

当上述条件得到满足时,攻击者们往往会寻求一种利用部署网页shell代码并进行持续访问的方式来发动入侵。这种代码会建立起一套可以顺利访问网页服务器的"虚拟"shell。这种shell通常会在系统接受的指令执行及文件访问动作中,夹杂其它讨厌的恶意功能。

来源:51CTO 2011年4月19日

关键字: 网站后门 NeopPI

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共4页)

未来发展

NeoPI在未来的发展中将遵循以下几个特点:

" 额外的检测功能及根据文件格式进行良好的检测调整可以帮助我们更容易地通过测试发现细微的异常情况。举一个这方面的实例,比如运行并收集各个网页编程语言的平均巧合指数。目前所建立的检测方式在平均巧合指数方面只考虑到了文件内容的普遍情况,而未参照不同编程语言对其造成的影响。因此,要创建这样一套比照体系可能需要制作出非常大的Phthon代码库,用以进行巧合指数扫描以及结论信息的存储。否则可以预见,某个特定的Python文件极有可能因为其内容的特殊性而被巧合指数扫描误认为存在恶意代码。

" 熵模块则是另一项我们希望将其补充进传统统计分析过程的功能。熵模块将使我们能够读取基于预定义模块尺寸的文件并分析其特定部分的熵值。这可能会对识别那些利用结合英文文本及加密模块来回避检测的网页shell有所帮助。

" 引入多线程机制来加快文件的分析速度,这将对把此套检测系统推广到大型网络上非常有利。

最后,我们还计划向其中添加一些基本特征扫描,以为检测网页shell提供辅助机制。

如何使用

NeoPI具备独立的运行平台,因此无论是Linux还是Windows都能成为其发挥作用的舞台。要开始使用NeoPI,我们首先要从自己的github(即网站全局导航)代码库或从网上获取到必备的代码。

  1. git clone ssh://git@github.com:Neohapsis/NeoPI.git 

这套小巧的NeoPI脚本现在就保存在我们的本地目录中了。我们先举几个Linux系统上应用的实例,然后再转向Windows平台。

让我们在运行neopi.py时加入-h参数来察看选项。

  1. [sbehrens@WebServer2 opt]$ ./neopi.py -h  
  2. Usage: neopi.py [options]  
  3.    
  4. Options:  
  5. -version             show program's version number and exit 
  6. -h, -help            show this help message and exit 
  7. -C FILECSV, -csv=FILECSV  
  8. generate CSV outfile  
  9. -a, -all             Run all tests [Entropy, Longest Word, Compression  
  10. -e, -entropy         Run entropy Test  
  11. -l, -longestword     Run longest word test  
  12. -c, -ic              Run IC test  
  13. -A, -auto            Run auto file extension tests 

让我们将这些选项再进一步细化。

  1. -C FILECSV, -csv=FILECSV 

这将生成一个CSV输出文件,其中包含了扫描的结果。

-a, -all这将使NeoPI运行全部测试,包括熵量、最长字符串以及巧合指数检测。在一般情况下,我们建议大家运行全部测试项目,这样可以尽可能地建立起最为全面的网页shell名单。

-e, -entropy以上参数的加入会使扫描过程中只进行熵量测试。

-l, -longestword以上参数的加入会使扫描过程中只进行最长字符串测试。

-c, -ic以上参数的加入会使扫描过程只进行巧合指数测试。

-A, -auto

以上参数的加入会使扫描自动生成一个正式的书面列表,其中囊括了许多常见的网页应用程序文件扩展名。该列表并不全面,但包含了一种很好用的设置功能,即当我们不确定自己的服务器上所运行的网页应用程序是利用何种语言所编写时,它会"尽量"为其匹配合适的设置以进行扫描。当前列表所支持的扩展名如下:

  1. valid_regex =re.compile('\.php|\.asp|\.aspx|\.sh|\.bash|\.zsh|\.csh|\.tsch|\.pl|\.py|\.txt|\.cgi|\.cfm'

现在我们对参数已经比较熟悉,并且已经从GIT处下载得到了一套脚本,让我们继续进行,将其运行于可能被网页shell所感染的网络服务器上吧。为了事先了解最终扫描出的危险结果大概有多少页,我们可以运行如下命令:

 

需要强调的是,我们关注的并不是那些常见的图形模式。从这里我们可以看到,这类网络服务器上拥有数量庞大的网页。好吧,假如我可以自信地告诉大家,我的网络服务器只支持PHP类型的网页,那么看看在仅需处理这一类网页的情况下,我们得面对多少个页面吧:

我们可以看到,网络服务器中包含近四千个PHP页面。继续前进,我们在整个网页目录中安置四套网页shell程序。它们分别是一套经过完全加密的网页shell、一套C99型shell、一套包含加密机制与纯文本内容的混合shell及一个由Weevely所生成的shell。这些文件都经过了必要的修改,以防被基于签名认证体系的检测系统轻易发现。这一整套模拟环境是为了还原前面我们谈到的情况,即我们似乎意识到某个恶意的网页shell已然存在于自己的网页底层,但其于认证的恶意软件检测工具似乎无法找到任何危险文件。让我们继续运行NeoPI,看看它能不能帮我们解决问题。

  1. [sbehrens@WebServer2 opt]$ sudo ./neopi.py -C scan1.csv -a -A /var/www/ 

这就是输出的全部扫描结果

这就是输出的全部扫描结果。我们可以看到巧合指数平均值测试所找出的可疑文件数最多。这为我们提供一个巧合指数的平均值--0.0372。需要指出的是,通过分析所得出的巧合指数平均值并不具备标准的共同特点。另外一个有趣的现象是,对于一篇字母使用情况较为平均的英文文本的分析结果而言,其巧合指数平均值为0.0385。该工具将优先显示指数平均值最低的那些文件。我们可以看到shell3.php文件的巧合指数似乎存在异常。我们同样能看到Weevely,shell2.php以及shell.php被列入了可疑名单。接下来,我们继续看看熵量测试的结论,它所揪出的嫌疑人包括shell3.php,shell2.php以及Weevely。而最长字符串测试在全面检测方面的作用也得到了验证,shell3.php和shell2.php的加密后门被及时发现了。

我们粗略计算了全部上述三种功能的平均数,并尝试通过它来向大家说明这三种功能找出危险文件的概率。正如上图所示,在综合排名最高的前十个文件中,NeoPI能够准确识别出shell3.php,weevely.php以及shell.php。shell2.php因为未进行加密,所以只被巧合指数及熵量这两项测试所发现,但最终其并未出现在结论性的危险文件列表中。我们强烈建议大家在参考整体检测结果的同时,也别忘记关注那些在单项检测中出现异常的文件。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章