欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

爬取某在线恶意软件仓库病毒文件进行分析

发布时间:2023/12/16 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 爬取某在线恶意软件仓库病毒文件进行分析 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

 前段时间,因为工作需要,要收集一些木马文件,于是就找到了一个网站:VirusShare.com,在这里,研究者可以提交并获得恶意软件的样本。该网站实时更新来自全球的恶意文件样本。本来打算自己动手下载呢,但是特征文件更新比较慢,等好久才会出现一个我想要的文件。刚好当时也在写Python的爬虫,就写了一个爬虫来爬。后来实验的效果果然不错,一晚上就把我一星期的工作量就完成了。又一次说明一个道理:代码解放双手。。。
好了,不多说了,我们看一下这个网站的样子:

可以看到现在图片是黑白颜色的,原因是我们还没有进行登陆。登陆后会有一些变化。因为是实时更新的,我们现在看到的恶意文件的MD5和sha1以及SHA256的值,其中我们最想知道的是文件的类型,这个在File Type中可以看到是PE文件,也就是可执行文件。还有一些其他的参数,没怎么仔细看。好了,不多说了,下面说一下爬虫的编写过程:


  • 首先我们模拟一遍下载的过程,通过HTTPFox抓包分析每一条请求,然后把下载请求找出来,HTTPFox的使用细节不多说了。
  • 然后,我直接上代码吧
  • # coding=utf-8 #author='CMZ' import urllib import urllib2 import cookielib import datetime import time import reurl = 'http://www.virusshare.com' def Get_Page():#主机地址hosturl = 'http://virusshare.com/'# post的urlposturl = 'http://virusshare.com/processlogin.4n6'#设置cookie处理器cj = cookielib.LWPCookieJar()cookie_support = urllib2.HTTPCookieProcessor(cj)opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler)urllib2.install_opener(opener)#打开登陆页面h = urllib2.urlopen(hosturl)#构造headerheaders = {'User-Agent': 'Mozilla/4.0 compatible; MSIE 5.5; Windows NT'}postData = {'username': '*******',#登陆账号'password': '*******'#登陆密码}#给post数据编码postData = urllib.urlencode(postData)#通过urllib提供的request方法向指定的url发送刚才构造的数据,完成登陆request = urllib2.Request(posturl, postData, headers)# print requestresponse = urllib2.urlopen(request)text = response.read()return textdef Judje_Page(page):'''判断是不是PE文件,如果是,保存到本地,如果不是则丢弃!'''PE_page = re.search('PE', page)#这里可以修改第一个参数来改变你想要的文件类型,因为我需要的PE所以这里就填写的'PE'参数。if PE_page:SHA256 = re.findall(r'href="(.*?)">', page)url = 'http://virusshare.com/'+ SHA256[9]print '\033[0;32;40m'+'匹配成功! ',datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+'-------现在保存文件.....'# print url#用文件SHA256进行命名,将文件下载并保存到本地以文件的,i = str(SHA256[9])with open(str(i[-64:])+'.exe','wb')as code:code.write(urllib2.urlopen(url).read())else:print '\033[0;31;40m'+'匹配失败!',datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+'-------现在丢弃文件.....'while True:page = Get_Page()# print pageJudje_Page(page)time.sleep(15)

    3.上面就是代码了,写的很渣。
    **

    - 完!

    **

    总结

    以上是生活随笔为你收集整理的爬取某在线恶意软件仓库病毒文件进行分析的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。