前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >教你如何搭建威胁情报库

教你如何搭建威胁情报库

作者头像
FB客服
发布2019-09-09 17:32:41
发布2019-09-09 17:32:41
1.8K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

一、前言

威胁情报是一种基于数据的,对组织即将面临的攻击进行预测的行动。预测(基于数据)将要来临的的攻击。威胁情报利用公开的可用资源,预测潜在的威胁,可以帮助你在防御方面做出更好的决策。在企业或政府乃至国家,拥有一个高准确度,大数据量的威胁情报库是至关重要的。

二、简介

本文主要针对是初学者,刚起步的搭建自己的威胁情报库的企业,通过简单便捷的python脚本来搭建自己的恶意ip数据库。此恶意数据库的IP来源于国外较为权威的威胁情报。本文只是讲述其中的黑名单ip如何搜集,方向还可以拓展为恶意域名,恶意证书,可用类似方法。之所以要收录国外的开源情报威胁库,更大程度上是因为国内各个网络安全公司不会将自己的数据库分享,也是用与我一样的思路爬取国外信息为主。

三、黑名单IP(C&C,恶意软件,垃圾邮件,网络爬虫)

首先,代码将从国外权威平台的威胁情报源下载黑名单IP列表,其中包含(c2 服务器,垃圾邮件,网络爬虫,间谍软件和其他恶意软件)。并且在收集含有黑名单ip的文件同时,还需要聚合筛选数据,只提取重要可用的数据。

我们需要将下面的命令写入cron中,可用来每5分钟自动下载一次黑名单IP

代码语言:javascript
代码运行次数:0
运行
复制
"""
crontab -e
"""
代码语言:javascript
代码运行次数:0
运行
复制

在配置文件中添加下面三行

代码语言:javascript
代码运行次数:0
运行
复制
"""
*/5 * * * * cd && wget http://osint.bambenekconsulting.com/feeds/c2-ipmasterlist.txt
*/5 * * * * cd && wget reputation.alienvault.com/reputation.data
*/5 * * * * cd && wget https://myip.ms/files/blacklist/general/latest_blacklist.txt

在Home中,创建新py文件叫merge.py

代码语言:javascript
代码运行次数:0
运行
复制
"""
Filename: merge.py
Arthor:Mike
Date:2019.8.5
"""

打开文件

代码语言:javascript
代码运行次数:0
运行
复制
c2=open("c2-ipmasterlist.txt","r")
bl=open("latest_blacklist.txt","r")
reputation=open("reputation.data","a")

以行来分开下载的数据

代码语言:javascript
代码运行次数:0
运行
复制
for line in c2:
  ip = line.split(',')
  reputation.write(ip[0]+ ",c2\n")
for line in bl:
  ip = line.split()
  try:
    reputation.write(ip[0]+ "\n")
  except:
    pass

在执行代码之前,还需要添加一个命令在cron文件中,它会用下面的命令每5分钟导入黑名单IP列表:

打开cron的配置文件

代码语言:javascript
代码运行次数:0
运行
复制
crontab -e
代码语言:javascript
代码运行次数:0
运行
复制

添加运行每5分钟一次的merge.py文件,用于拓展黑名单数据量。

然后再重启cmikewhorontab服务:

代码语言:javascript
代码运行次数:0
运行
复制
代码语言:javascript
代码运行次数:0
运行
复制
service cron restart

这张截图显示merge.py所结合的恶意ip,域名的总文件

再次创建新py文件,检查IP是否被列入收录中的黑名单。

代码语言:javascript
代码运行次数:0
运行
复制
import mmap

打开IP收录文件,检测流量中的IP是否在黑名单中

代码语言:javascript
代码运行次数:0
运行
复制
file = open("reputation.data")
IP ='207.241.231.146'
s = mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ)
if s.find(IP) != -1:
  print "This "+IP+" is blacklisted"
  file.close()

四、总结

本文简单地描述如何利用开源威胁情报,帮助我们更好的防护网络不受到恶意的攻击。阅读者可以展开思维,通过爬虫技术去搜集各个情报源的C2数据库。

五、提示

经提示因为配置文件不同,可能造成一些同学无法启动crontab。这里为更详细的教程图解帮助大家配置威胁情报库。

开启crontab日志

crontab默认情况下是不执行开启日子的,所以一开始写完后,不能执行,想查看日志,却找不到。所以先开启定时任务的日志来查看

修改rsyslog服务,将 /etc/rsyslog.d/50-default.conf 文件中的 #cron. 和#daedon. 前的 # 删掉;

用以下命令重启rsyslog服务:

代码语言:javascript
代码运行次数:0
运行
复制
service rsyslog restart

然后再重启crontab服务:

代码语言:javascript
代码运行次数:0
运行
复制
service cron restart
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、简介
  • 三、黑名单IP(C&C,恶意软件,垃圾邮件,网络爬虫)
  • 四、总结
  • 五、提示
    • 开启crontab日志
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档