监控app下载安装官方免费下载(监控app软件下载官网)

监控app下载安装官方免费下载(监控app软件下载官网)

安全漏洞hacker2022-08-07 13:00:231513A+A-

前言

技多不压身,多掌握几种不同的编程语言,不但有助于开拓我们的视野,还可以让我们在工作时,自己写一些小程序来帮我们减少工作量。

前段时间给一个客户维护服务器,服务器总是被挂马,装了个某狗,然后并没有解决问题,到不是说安全狗不行,是现在很多防护软件并不贴心啊。

下面,我举个栗子

目前WAF用户体验性差

某狗、某网站防护、某主机卫士,只针对文件上传进行拦截和防护,先不说特征库全不全的问题,但是,如果攻击者利用远程下载的方式,直接下载到服务器,或者通过命令执行写进去,亦或者通过其他方式进行创建写入的,这些防护软件就没有办法管了。

而杀软对webshell后门貌似也不是很敏感,所以,这就尴尬了。摆在管理员面前的,只有手工查杀或者工具主动扫描两条路了。但是,你真的确定你天天会上去点查杀么?

好吧,我也遇到了这样的问题。一天登录服务器千百遍啊,就是为了点下查杀按钮。

前段时间给一个客户维护服务器,服务器总是被挂马,装了个某狗,然后并没有解决问题,到不是说安全狗不行,是现在很多防护软件并不贴心啊。

解决思路

起初为了解决这个问题,用C#写了个命令行程序,对网站目录进行循环检测:

展开全文

但是240G的源代码,跑完一次需要1个多小时,也就是说,在这个时间范围内,网马可以存活一定时间,对于一个黑客来说,一个多小时,能做很多事情,所以,这不是我想要的。

之前一直在琢磨,有没有一个好的方式,能够代替人工去监控网站目录文件,一旦出现webshell,就自动进行隔离呢。

之前写了个小工具,但是界面有点小气。

监控app下载安装官方免费下载(监控app软件下载官网)

从乌云群里要了个shack2写的,一个“超级文件监控”工具,貌似是前两年的,我就顺手改了改,实现了下这个功能,下面详细说下正题。

要想实现这个功能,首先得解决两个问题。

1、针对文件的创建、更改、重命名进行监控;

2、对触发创建、更改、重命名的文件内容进行判断;

1、针对文件的创建、更改、重命名进行监控;

2、对触发创建、更改、重命名的文件内容进行判断;

先说说第一个,我是用C#来写的。程序开始,肯定得先指定文件监控路径。C#对文件进行监控,得用到FileSystemWatcher类。FileSystemWatcher类提供了Created, Deleted,Rename等事件的监控

例如shack2写的文件监控源码,我以创建文件为例:

privatevoidfileCreate_EventHandle(Object sender, FileSystemEventArgs e)//文件增删改时被调用的处理方法 {

add++; this.lvw_log.Invoke(newupdateResult(addNode), newObject[] { e, "创建"}) }

privatevoidfileCreate_EventHandle(Object sender, FileSystemEventArgs e)//文件增删改时被调用的处理方法 {

add++; this.lvw_log.Invoke(newupdateResult(addNode), newObject[] { e, "创建"}) }

当触发了创建文件操作时,将内容输出。

当然了,除了创建以外,还可以用WatcherChangeTypes来注册其他事件。因为shack2已经共享了源码,这里就不再累述。

文件监控这里,百度有很多现成的方法,这个完全可以复制粘贴的,重点是第二个问题,如何对触发行为的内容进行处理。大致处理思路是:

触发文件状态(如:创建)---->对触发该状态的文件进行检查------->确定文件内容是否存在可疑------->不处理or隔离

监控app下载安装官方免费下载(监控app软件下载官网)

触发文件状态(如:创建)---->对触发该状态的文件进行检查------->确定文件内容是否存在可疑------->不处理or隔离

知道了思路,写起来就相对简单些了。

先创建个ScanHelper类,这个类,主要是写扫描方法和所关联的特征码,也就是表达式。以及文件的处理措施。这里的表达式,可以根据需求来自己设定,也可以将特定脚本类型的特征码进行归类。表达式写清楚了,然后就是写文件打开的方法和文件内容的判断。

这里使用 FileInfo NextFile = new FileInfo(filePath);

判断文件是否存在 if (NextFile.Exists)

string FileText = File.ReadAllText(Path.GetFullPath(filePath));//读取文件内容

if (RegString.IsMatch(FileText) || RegPattern.IsMatch(FileText) || Regsjm.IsMatch(FileText)) //如果存在危险字符

string FileText = File.ReadAllText(Path.GetFullPath(filePath));//读取文件内容

if (RegString.IsMatch(FileText) || RegPattern.IsMatch(FileText) || Regsjm.IsMatch(FileText)) //如果存在危险字符

如果存在设定好的字符,则处理文件;

这里呢,当然不能直接删除,通过moveTo的方式移动到别的地方来处理。

NextFile.MoveTo(Path.Combine(TempPath, NextFile.Name));

NextFile.MoveTo(Path.Combine(TempPath, NextFile.Name));

只是判断文件还不行,如果文件出现重复,依然会出现问题,这里,需要对文件进行一个处理。比如说,当发现1.asp文件存在问题,我们处理以后,下次再出现1.asp文件时,则会报错。

这里,我们需要用到下面的方法来处理下文件重复的问题。当发现文件重复了,在新处理的文件名加上.bak来做区分,当再次发现.bak也重复的时候,直接进行删除操作。

在处理完这些问题后,有一个核心的问题,线程占用的情况。也就是说,在windows文件系统中,你创建一个文件时,会触发created和changed两种操作,你修改文件内容时,也同样会触发这两个操作,这样就会冲突了。

这不是关键,关键问题时,在执行监控时,你还要对文件内容进行判断和处理,这样就很容易发生错误。

我问过好多C#大牛,都说不好解决,最好的办法,是用C++来写,通过底层的方式来处理,但是坑的是,我还没学C++,C#也是才学了2个月吧,如果这样就放弃了,那整个程序就白写了。。

后来琢磨了好几天,想到了一个不是解决办法的解决办法。用try catch和Thread.Sleep来解决这个问题。try执行,当文件触发了创建操作,就执行文件内容判断和处理的方法。

如果线程出错,则通过catch的方式来重复执行,但是catch不再判断文件状态,只是判断是文件,然后对内容进行检查,发现问题,则进行下一步处理操作。

这里用到了 Thread.Sleep(20000);睡眠时间,是为了让程序在判断的时候,有足够的时间释放线程,免得出现冲突,而导致程序崩溃。

当然了,界面我没改动,还是shack2得界面,我只是在界面上加入了一个隔离区操作。

我把软件贴出来,大家可以玩玩。使用方法:监控目录输入你要监控的网站目录,点击“开始监控”。隔离区默认设置在C:TEMP目录下,凡是被隔离的文件,均在该目录下。

当创建文件、修改文件或者重命名文件时,内容中如果含有webshell的关键词或函数,则会进行处理。

补充说明:

监控后缀和跳过后缀完全可以忽略,因为这个监控,是针对所有文件内容的,所以无所谓监控哪个或不监控哪个,管它是畸形文件名还是war,都会去进行检测。

第一次执行时,执行可能会有些缓慢,当执行完一次后,会建立索引,后面速度则会有提升。

软件中已写好了近百种特征,共170个webshell样本,虽然不一定全,但是至少还是有些查杀能力的。

一般同文件名,首次上传到被处理,存活周期在10-20秒之间。

当文件监控到“修改”操作时,其实就已经执行了处理操作,只是我把显示的时间延迟了20秒。

不管什么软件,误杀的情况是不可避免的,假如在使用该软件的时候,软件匹配到特征,就会将文件隔离到c:temp目录下,并不会直接删除

当你发现文件是误删除的,可以点击“停止监控”,将文件根据软件下方显示的位置,还原到原来的目录,再点击监控就可以了,这样,这个文件就不会查杀了,除非这个文件的名字、内容有了变动,则会继续触发规则。

因为这段时间要做移动APP安全审计的工作,C#暂时先放放,准备开始学移动APP这块,功能暂时不做改动了。

后面找时间修改,计划是把功能修改的更为简洁,把监控的记录完善下,增加白名单区域等小功能。有什么问题,欢迎邮件或站内信反馈。欢迎测试。

下载地址:http://pan.baidu.com/s/1kUUon7x

总结

顺便打个广告:新版D盾的不久将会面世,据D哥说,除了要支持windows 2008 、2012,还会加入文件内容监控等功能,也就是说,新版的功能,肯定是网站防护+webshell查杀+上传防御+文件内容监控等多个实用功能。坐等新版D盾出现吧。

最后,再次感谢shack2的无私奉献。点击阅读原文可查看文中代码。

*本文作者:鬼魅羊羔,本文属FreeBuf原创奖励计划,未经许可禁止转载

点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 3条评论
  • 假欢笑惜2022-08-07 22:10:53
  • 不是我想要的。之前一直在琢磨,有没有一个好的方式,能够代替人工去监控网站目录文件,一旦出现webshell,就自动进行隔离呢。之前写了个小工具,但是界面有点小气。从乌云群里要了个shack2写的
  • 听弧葵袖2022-08-07 18:26:54
  • 断文件是否存在 if (NextFile.Exists)string FileText = File.ReadAllText(Path.GetFullPath(filePath));//读取文件内容if (RegString
  • 弦久南简2022-08-07 15:11:09
  • ,只有手工查杀或者工具主动扫描两条路了。但是,你真的确定你天天会上去点查杀么?好吧,我也遇到了这样的问题。一天登录服务器千百遍啊,就是为了点下查杀按钮。前段时间给一个客户维护服务器,服务器总是被挂马,

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理