爬取某在线恶意软件仓库病毒文件进行分析
来源:互联网 发布:js金额大小写转换函数 编辑:程序博客网 时间:2024/05/22 04:52
前段时间,因为工作需要,要收集一些木马文件,于是就找到了一个网站:VirusShare.com,在这里,研究者可以提交并获得恶意软件的样本。该网站实时更新来自全球的恶意文件样本。本来打算自己动手下载呢,但是特征文件更新比较慢,等好久才会出现一个我想要的文件。刚好当时也在写Python的爬虫,就写了一个爬虫来爬。后来实验的效果果然不错,一晚上就把我一星期的工作量就完成了。又一次说明一个道理:代码解放双手。。。
好了,不多说了,我们看一下这个网站的样子:
可以看到现在图片是黑白颜色的,原因是我们还没有进行登陆。登陆后会有一些变化。因为是实时更新的,我们现在看到的恶意文件的MD5和sha1以及SHA256的值,其中我们最想知道的是文件的类型,这个在File Type中可以看到是PE文件,也就是可执行文件。还有一些其他的参数,没怎么仔细看。好了,不多说了,下面说一下爬虫的编写过程:
- 首先我们模拟一遍下载的过程,通过HTTPFox抓包分析每一条请求,然后把下载请求找出来,HTTPFox的使用细节不多说了。
- 然后,我直接上代码吧
# coding=utf-8#author='CMZ'import urllibimport urllib2import cookielibimport datetimeimport timeimport reurl = 'http://www.virusshare.com'def Get_Page(): #主机地址 hosturl = 'http://virusshare.com/' # post的url posturl = '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) #构造header headers = {'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 request response = 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 page Judje_Page(page) time.sleep(15)
3.上面就是代码了,写的很渣。
**
- 完!
**
0 0
- 爬取某在线恶意软件仓库病毒文件进行分析
- 10个在线检测病毒和恶意软件网站
- Android平台各类恶意软件及病毒分析
- 在线沙盒(恶意软件行为分析工具)整理介绍
- 一个恶意软件的分析
- 北京成病毒之都 占据全球40%恶意软件
- Android平台各类恶意软件及病毒概览
- Android平台各类恶意软件及病毒概览
- Android平台中各类恶意软件及病毒概览
- JX8NET可能被用来携带恶意软件、病毒,感染计算机系统
- 破解安卓恶意软件病毒锁机解决方案
- Betabot病毒回归,窃取密码并下载恶意软件
- 【Android病毒分析报告】 - AppPortal “恶意行为云端无限扩展”
- 修改注册表显示被病毒恶意隐藏文件
- 被病毒恶意篡改的文件怎么恢复
- 恶意软件分析环境cuckoo+malwasm
- Android逆向之分析某锁机恶意软件
- 【Android病毒分析报告】 - ZooTiger “集恶意推广、隐私窃取、恶意吸费于一体”
- [数学学习3]函数的基本概念
- iOS开发路线简述
- 【Face Learning Notes】ROC曲线
- I2C总线协议
- 发布时有些配置文件不存在,如何添加进 应用程序文件?
- 爬取某在线恶意软件仓库病毒文件进行分析
- 10618 - Tango Tango Insurrection
- ajax之 弹出框 保存 取消
- 如何编译内核(实例1.6.18)
- 使用字面量语法让iOS代码更漂亮
- I2C总线驱动代码
- 一个Activity在AndroidManifest配置多个Intent-Filter
- 利用Spring进行统一异常处理的两种方式
- sgu-257 Debt