吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1402|回复: 7
收起左侧

[Python 原创] [原创]根据MD5特征制作定时木马查杀工具

[复制链接]
小奥2014 发表于 2022-11-3 17:46
本帖最后由 小奥2014 于 2022-11-4 13:45 编辑

首先应该明白您的木马文件的真实性,也就是删除不会影响正常业务,确信这是一个木马
接下来我们开始通过工具获取md5

一,宝塔获取MD5码

通过宝塔获取MD5的方式很简单
[Bash shell] 纯文本查看 复制代码
md5sum file

file是文件名称,在当前目录,否则补全绝对路径

二,通过其他的方式获取MD5

当然你可以通过河马shell查杀的建议清理文件,然后跑MD5码
或者通过阿里云安全感知,腾讯云安全等途径获取到

三,开始准备一套安全的机制

首先我选择了公开一份MD5清单到另外的服务器,这样子更加安全靠谱,免得被破坏造成损失!
将MD5文件统计好,放到txt,然后放到其他网站做成可访问url,方便调用

一行一个,爽歪歪

四,开始部署杀毒脚本

首先我们思路一定要清晰,这个脚本就是要去比对文件MD5是否和记录值相同,如果相同,就会删除它!
[Python] 纯文本查看 复制代码
import hashlib   
import os
import io
import sys
import wget
import ssl
import time
ssl._create_default_https_context = ssl._create_unverified_context


# 2022年11月3日17:23:42

def printUsage():
    print ('''Usage: [python] s.py ''')

# 计算MD5值
def geneMd5(filename):
    m = hashlib.md5()
    file = io.FileIO(filename,'r')
    bytes = file.read(1024)
    while(bytes != b''):
        m.update(bytes)
        bytes = file.read(1024) 
    file.close()
    return m.hexdigest()

# 获取MD5文件内容
def update_md5_file():
    url = 'http://xxxxxx.net/md5lib.txt' # 目标路由url
    md5lib = '/opt/md5lib.txt' # 保存的路径
    if os.path.exists(md5lib) == True:
        os.remove(md5lib)
        print('清理过期数据...OK')
    print('开始更新特征库...')
    wget.download(url, md5lib) # 下载

# 将MD5组成集合
def get_list():
    global md5_list
    md5lib = '/opt/md5lib.txt' # 保存的路径
    md5_list = []
    with open(md5lib,'r',encoding="utf-8") as rr:
        for i in rr.readlines():
            md5_list.append(i.strip('\n'))

# 清理符合的文件,如果担心的请勿开启
def clean_file(file):
    os.remove(file)
    print('[Succeed]清理病毒文件:%s成功!'%(file))
    
    
# 主脚本
def main():
    os.system('clear')
    update_md5_file()
    get_list()
    md5lib = '/opt/md5lib.txt' # 保存的路径
    if(len(sys.argv) != 1 and len(sys.argv) != 2):
        printUsage()
    mat = "{:48}\t{:32}"
    print('\n特征更新完成!')
    time.sleep(2)
    os.system('clear')
    print('[Work]Fiime病毒扫描器,扫描中...')
    if(len(sys.argv)==1):
        path="/www/wwwroot/"        #请修改此行!此处对应需计算的文件夹绝对路径
    if(len(sys.argv)==2):
        path=sys.argv[1]
    for fpathe,dirs,fs in os.walk(path):
        for f in fs:
            full_file = os.path.join(fpathe,f)
            # print (mat.format(full_file,geneMd5(full_file)))
            if geneMd5(full_file) in md5_list:
                print('[Info]发现感染:%s'%(full_file))
                # 如果不开启清理,请注释掉下面的一行
                clean_file(full_file)
            else:
                pass
    print('查杀完毕!')
    
    
    
    
main()


五,设置定时任务

手动的年代已经过去了,利用宝塔检测 /www/wwwroot/ 下的所有子民安全吧



好了摆烂了,以后新增MD5就去更新txt文件就行了,接下来看看效果!

六,效果图




八,总结感谢大家,请尊重我的原创文章,如需转载请联系我 FiimeROM 的奥奥

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
mengfang1 + 1 + 1 热心回复!
joblee + 1 + 1 热心回复!
wanfon + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zhouxinyi 发表于 2022-11-3 17:50
哈哈,KVx00杀毒软件特征码么
 楼主| 小奥2014 发表于 2022-11-3 17:54
zhouxinyi 发表于 2022-11-3 17:50
哈哈,KVx00杀毒软件特征码么

现在我的智商达不到 自己用倒是够了 真的还得是用大厂工具才行
hzhgz2006 发表于 2022-11-3 18:13
 楼主| 小奥2014 发表于 2022-11-3 23:40
hzhgz2006 发表于 2022-11-3 18:13
大量样本库怎么获取

大量就要多线程了 这个脚本不智能 大量除非有大量病毒文件MD5够拿
 楼主| 小奥2014 发表于 2022-11-4 09:39
本帖最后由 小奥2014 于 2022-11-4 09:45 编辑

Linux shell脚本报TERM environment variable not set
注意,如果出现定时任务报错,请删除脚本中的os.system('clear')
第45行 51行
 楼主| 小奥2014 发表于 2022-11-4 13:46
@苏紫方璇 已经搞定了 复制源码忘了去了 sorry
1587665267 发表于 2022-11-10 03:30
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-11 17:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表