首先工具的下载链接如下:
这里我整理了一些病毒的配置文件,如有需要可以下载,把文件名改成settings.txt即可使用。压缩包添加了入站445端口开启和封锁的bat和vbs脚本。
2019.4.29
更新内容:
版本更新至3.6.7.9
增加进程/服务/任务计划内容识别模块。
增加powershell内容识别模块。
优化了日志记录模块,优化程序逻辑。
更新详情:
content模块,可根据识别内容进行清除。目前包括schtask/service/process,格式如下
[类型]->[内容]
首先工具的下载链接如下:
这里我整理了一些病毒的配置文件,如有需要可以下载,把文件名改成settings.txt即可使用。压缩包添加了入站445端口开启和封锁的bat和vbs脚本。
2019.4.29
更新内容:
版本更新至3.6.7.9
增加进程/服务/任务计划内容识别模块。
增加powershell内容识别模块。
优化了日志记录模块,优化程序逻辑。
更新详情:
content模块,可根据识别内容进行清除。目前包括schtask/service/process,格式如下
[类型]->[内容]
目前可对powershell命令行base64编码进行自动解码,即在配置文件里填写powershell执行的明文,在任务计划或者进程中存在powershell,可自动识别并解码。
[powershell]模块是设计单独清除powershell进程使用的,也是添加执行内容匹配进程清除,匹配内容会自动进行base64解码。
日志记录区别为四种类型,debug/info/warn/error。
2019.4.5
更新内容:
版本更新至3.6.7.6
修复老版本BUG。
优化了驱动人生专杀模块
重构了部分日志模块。
驱动人生专杀增加防御功能。
修改日志存储位置。
设置同时只能一个程序运行。
更新详情:
驱动人生新增全区段MD5匹配,经过检测py打包文件的.text、.data等区段是一模一样,为区分病毒py,测试全段md5可匹配。
原本special模块,无论是否检测到病毒都会打印最终结果,重构了日志输出,将special和普通模块显示效果一致。
驱动人生病毒会将mimikatz读取本地密码写入到mkatz.ini,供其他模块读取密码爆破,新增防御,清除旧的mkatz.ini,在原本位置新增一个只读的mkatz.ini文件,防止病毒写入。以上操作无论是否感染病毒都会执行,一定程度上预防感染攻击。
原本保存在C:\backup下,为防止该目录和目标主机本身目录重名,修改为C:\AntiBackup。
设置同时只允许最新的进程运行,检测到老进程时自动清除。
2019.3.28
更新内容:
版本更新至3.6.7.1
配置文件新增扫描线程数设置。
针对最新驱动人生变种增加节区段MD5校验,通过设置新的配置文件drivelife_hash.txt实现。
新增wannamine4.0 special模块。
新增线程超时配置。
更新详情:
考虑到不同主机性能因素,可手动调整线程数,平衡速度和性能,参数名为thread。
分析了驱动人生变种样本,无法根本名称、文件MD5去定位一个变种文件,因为PE尾部增加了随机字符串,通过计算PE区段的MD5来识别。
经过测试,有的变种之间.text段均一致,有的代码段在.data里,.data段是一致的,为此新增配置文件drivelife_hash.txt,以适应最新变种。
如下:
[path]模块用来新增需要扫描随机文件的目录,本身内置了一些,这个适应最新变种位置。
[file]模块校验文件MD5
[.xxxx]模块设置病毒文件的区段MD5,根据实际添加,有新的区段,配置文件里直接新增新的[.xxx]即可。
wannamine4.0的服务名和文件名有一定随机性,所以special模块新增该功能来进行检测,模块下添加wannamine4.0即可。
防止有的线程卡死导致工具扫描无法进行下去,设置了线程扫描配置,参数名为timeout,单位秒。
2019.03.10
更新内容:
更新至V3.6
修复wmi检测BUG
special模块修改驱动人生检测模块,以检测最新变种。
重构扫描模块,传参和返回值调整,改为多线程运行。
更新详情:
驱动人生最新变种,会在windows目录下生成大量随机名称恶意exe文件,均为攻击模块svchost.exe的拷贝,根据MD5值进行清除,并清除对应服务、进程和任务计划。
扫描模块主要优化数据格式,返回值为字典形式,方便其他模块调用,后续好扩展,并且改为多线程并发,目前最大线程并发是60,测试提升速度一倍以上,后续再考虑是否改为手动设置。
2019.03.03
更新内容:
更新至V3.4
优化special模块驱动人生的随机服务检测。
这次没有多少新增的东西,重构了代码,代码更简洁,也易于扩展。
更新详情:
以后的版本,可复用之前的配置文件,之前每次新增功能,都需要将所有病毒的配置文件都更新一遍。
配置文件可根据实际情况只设置需要的模块即可,以前是全部都需要添加上。
更新至目前支持的模块
['mode', 'share', 'special', 'wmi', 'ipsec', 'advfirewall', 'service', 'dll', 'process', 'reg', 'schtask', 'dir', 'file', 'user']
其中mode和share是必要模块,其他模块可选。
比如配置文件如下,可以只有mode/share/special三个模块,其他可删除:
2019.03.02
更新内容:
增加special模块,特殊病毒的查杀。
更新详情:
配置文件新增[special],这一部分是为了解决特殊病毒,无法仅仅通用模块来进行清除,需要编写特殊处理模块。
参数目前只有drivelife一个,可针对驱动人生病毒特殊感染部分进行检测和清除,包括随机名称服务、端口转发策略和防火墙策略的查杀。
后续该模块有新的病毒参数会在博客里更新的。
2019.03.01
更新内容:
增加windows user查杀模块。
更新详情:
通过在配置文件里[user]模块设置查杀用户名,进行查杀,该模块由于最近的驱动人生病毒新增的。
2019.02.28
更新内容:
修复了subprocess编码问题。
配置文件新增service模块。
更新详情:
- -subprocess由于程序是在UTF-8环境运行,这个函数又是读取本地的编码,所以调试了这个第三方库改了编码解决。
service模块可以检测和删除指定服务,并停用指定服务对应进程。
2019.01.19
更新内容:
优化了老系统任务计划检测bug。
文件备份支持压缩加密,格式为rar,解压密码为antibackup。
更新详情:
原本调用自带的压缩接口,无法进行加密,所以考虑使用现成的命令行压缩工具rar进行压缩加密,效果还不错,也省的重复造轮子。
因为需要调用压缩工具,所以将压缩工具硬编码到程序里了,所以新版本的工具会比原来大一点,多了几百K。
2019.01.17
更新内容:
支持文件、注册表、IPSec策略、任务计划的备份。
支持后台静默运行。
增加扫描结果和报错信息写入文件保存,方便后续排查。
支持上传扫描结果到共享目录下。
优化了扫描速度,测试wannacry+wannemine 1.0 2.0 3.0扫描,从1分钟降到4秒。
工具自动进行提权,双击运行即可以管理员权限运行。
以上文件保存位置为C:\backup\下。
更新内容详细说明:
配置文件参数新增如下
virus_mode即为原来的scan和kill
backup_mode有两个选项:open、close,顾名思义开启备份,设置为open时,会将需要查杀的注册表在扫描时备份成.reg;文件和目录会打包压缩成zip,目前还未做加密,主要是因为用的接口不支持加密;IPSec策略备份为.ipsec,还原时导入即可;任务计划备份成xml格式,也是导入所支持的格式。
备份文件如下:
以type_name_time的格式保存,文件多了MD5值计算保存。
提一点,目录里会看到类似主机名的txt文件,这个是用来保存扫描结果的,error.log是用来保存程序运行错误时出错信息,方便排查。以上两个文件和是否开启备份无关,默认会保存的信息。
ui_mode也是两个参数:gui、quite,gui就是会有控制台显示,quite是完全静默的,运行结果需要到备份文件夹下查看。
[share]
新增的[share]模块需要先讲一下需求背景。
内网大量域用户主机感染相同的病毒,会通过永恒之蓝漏洞传播,并且感染主机用户还需要使用,运维去处理需要找用户有空的时候,效率太低,并且有的主机补丁打不上,病毒查杀后,不打补丁,仍然会被感染,客户寻求一种高效查杀,又对用户办公影响最小的方案,所以就增加了该模块。
该模块实际配套ui_mode使用,设置成静默模式,通过组策略下发到各个域用户本地启动项里。
1.当运行时,会先检查当前主机是否开启打印机共享功能:
如果在运行,则不封锁入站的445端口,并收集系统信息保存到本地备份目录下,以主机名为txt文件名保存,并将其拷贝到指定共享目录下,如\printer\,以此来收集共享打印机的主机信息。这一步是因为共享打印机封锁入站445会影响很多用户的办公,因为可能每个部门都有打印机,然而不封锁445端口会存在二次感染情况,收集完信息可优先对这些主机打补丁,并且可能像win7旗舰版打不上补丁,这些信息都会上传到共享目录下,一来可以得知主机是否有打补丁,主机IP是多少,用户是谁,二来可以判断是否为旗舰版,需要重装系统;
如果没开启打印机共享,则通过IPSec策略封锁入站445,这边不用windows防火墙是因为开启windows防火墙默认配置会拦截一些数据,所以考虑使用IPSec,影响最小。
2.接着就会进行病毒查杀,查杀完后,会将查杀结果和系统信息追加保存到本地备份目录下,同样文件名是主机名,然后将文件拷贝到指定共享目录下,如\clearvirus\,通过该目录可查看哪些主机扫描完成,是否中毒并清除成功,补丁修复情况,IP地址等信息。
总结以上,即运行共享打印的主机信息上传到指定目录如\printer\下,其他普通主机封锁入站445;查杀完后,所有主机包括共享打印的主机,将查杀结果及系统信息上传至共享目录如\clearvirus\下,分成两个目录分开统计。
这里说明几点可能存在疑问的地方,如果C:\backup目录不存在,会自动创建,运行结果信息是以追加的方式保存到文件里,不会存在覆盖情况,如果没有结果文件会自动创建,所以不用担心多次运行会覆盖原来的信息,并且会记录每一次查杀时的时间。
最后就是解释下配置文件里的参数:
share_mode:on和off,共享模式总开关。
deny445:on和off,是否开启入站445端口封锁。
getsysinfo:on和off,是否获取systeminfo信息。
upload:on和off,是否开启上传模式,如果设置为off,下面参数设置就无意义了。
ip:设置共享主机的IP。
user:共享主机的用户名。
pass:共享主机的密码。
share_svc_host_dir:共享打印的主机上传信息的共享目录,以根目录开头,如\xinxishouji\printer\。
virus_dir:病毒查杀结果上传的共享目录,以根目录开头,如\xinxishouji\clearvirus\
-----------------------------------------------------------分隔符------------------------------------------------------------------------------------
工具写的一般,但在客户端使用中不会出现设置以外的误操作,只是给大家多提供一下帮助,原本也是自己想干活轻松点而已,分享出来,大家需要自取,有问题可以联系我,优化工具。
这个工具主要是针对某些通用杀毒软件无法清除的病毒,进行检测和查杀,其实就是将人工处理病毒做成自动化工具,减少人工成本。
工具压缩包里包括三个文件,x64和x86两种执行程序,settings.txt为配置文件,将需要处理的信息填在txt里,运行exe读取配置文件内容,自动进行检测处理。
先展示下运行效果,以下为kill模式,对病毒进行清除。该工具经过调整,默认是以管理员权限运行的,双击即可运行,如有问题再使用右键管理权限运行。
该工具检测9个部分,模式、任务计划、wmi空间、IPSec策略、注入dll、进程、注册表、目录和文件。
在配置文件里对应关系,每部分以[xxx]开头,在标签下进行对应配置设置就行,注释行就是以#开头,不支持在某行结尾添加注释。
下面说下各个部分配置文件里的格式。
1. mode
[mode]表示工具的检测模式,分为两种模式,“scan”表示扫描,“kill”表示清除。
在某些情况下,可能担心工具清除病毒会导致系统出问题,这时候可以先做扫描,确认病毒是否存在。
2. wmi
WMI(Windows Management Instrumentation,Windows 管理规范)是一项核心的 Windows 管理技术;用户可以使用 WMI 管理本地和远程计算机。关于wmi的扩展知识可以自行百度学习,这里就不说了,感兴趣的也可以联系我。
[wmi]用来检测wmi空间的类和实例,填写对应的路径,就可以进行检测。
因为像经常遇到的powershell挖矿,就是将病毒注入到wmi里进行自启动操作,杀软根本无法查杀,所以多了这部分的检测。
检测对象分为两种,类和实例,举例说明格式:
(1) 清除命名空间root\Subscription里,类名为__EventFilter,实例名称为Windows Events Filter的实例。
(instance)root\Subscription:__EventFilter.name="Windows Events Filter"
(2) 清除命名空间root\Subscription里,类名为__FilterToConsumerBinding,实例路径包含%Windows Events Consumer%的实例。%表示模糊匹配。
(instance)root\Subscription:__FilterToConsumerBinding.__Path="%Windows Events Consumer%"
(3) 清除命名空间root\default里,类名为System_Anti_Virus_Core的类。
(class)root\default:System_Anti_Virus_Core
注意事项:
所有符号都为英文符号,引号使用双引号。
3. IPSec
[ipsec]用来检测windows自带的IP安全策略,类似于windows防火墙,实际上在windows vista之后,就不推荐使用firewall来管理windows的出入站流量了,而是用IPSec策略。
PS:此IPSec 不要误解为IPSec VPN了,这是两个东西。
策略的访问路径为 控制面板-系统和安全-管理工具-本地安全策略-IP安全策略
增加该模块,是由于一些病毒会在感染后封锁某些端口,如一些powershell挖矿会封锁445端口,即使正常清除病毒后,也会影响smb共享访问。
4. dll
[dll]填写恶意的dll文件路径即可。该模块是用来检测被注入了恶意dll的进程,并清除进程。
这一块功能不完善,其实主要是针对svchost或rundll32加载了dll,但是也不能根据进程名去检测进程进行清除,只能扫描dll,才能定位到进程。
后续会优化这块,因为这块还无法单独对正常进程被注入的dll进行清除,只能做的清除进程的粒度。
5. process
[process]填写进程对应的可执行文件路径即可,会根据文件路径匹配相应的进程进行清除。
这种就比较简单,病毒执行程序直接运行,通过路径可以精确定位到进程,防止病毒使用相同的文件名进行混淆。
6. reg
这里需要注意的是,注册表清除分为key和value两种清除,即子健和键值。可以类比于文件目录和文件。
在子健后面设置该符号"->"指向键值,即表示只清除键值,这个需要特别留意,像services,清除子健即可,因为每个服务都是独立的子健。
而系统对应的各个启动项,在保存在同一个子健下的,如Run和RunOnce,如果清除子健,会对其他正常启动项也造成影响。
7. schtask
[schtask]
gametime
任务计划就比较好懂了,根据任务计划的名称执行检测清除,有些病毒会设置定时任务,进行下载文件或者启动程序。
8. dir
[dir]
C:\windows\SpeechsTracing
设置指定目录,就可以进行自动清除了。这边没有太多需要注意的。
9. file
[file]
C:\windows\system32\wmassrv.dll
文件的清除需要注意的,如果该文件如exe在process里运行,或dll被某个进程加载,需要先在上面的process或dll模块里设置相应被调用的文件,先清除进程,否则这里的文件是无法被清除的。
其他情况暂时不用担心文件无法清除,因为这里在清除文件前,会恢复文件的特殊属性,比如去隐藏、系统属性、只读属性,或修改文件的访问权限。
以上就是工具的使用说明,有疑问的可留言。
这个工具还有部分需要完善的,后续完善后,会更新链接里的文件。帖子里也会说明更新内容。
版权声明
本站的文章和资源来自互联网或者站长友情链接
yodidi.github.io