译者:興趣使然的小胃
预估稿费:120RMB
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
一、前言
从安全分析以及威胁情报的角度来看,Pastebin是一个难得的信息宝库。只要没有设置隐私(private)选项(需要注册账户才能设置该选项),任何人都可以查看上传到pastebin数据的具体内容。
本文介绍了一款PasteHunter工具,该工具可以使用Yara规则从Pastebin上搜索有价值的信息,并将结果保存到本地环境中。
二、实现方案
公开数据来源非常广,比如,黑客以及脚本小子迫不及待地想把他们的成果推送到网站上,享受被全世界瞩目的自豪感,而开发者或网络工程师一旦出现疏忽,就会不小心把内部配置信息以及凭证信息公之于众。
这种情况下,普通安全分析师如何筛选这些数据,在安全分析行业中发挥这些数据的价值呢?
我们可以搜索Pastebin上的所有上传数据,检查这些数据是否包含有价值的信息。现在有很多工具可以提供类似功能,比如,dumpmon使用了一组正则表达式来监控类似Pastebin的多个网站,然后通过推特公布监控结果。
这个资源很不错,然而我希望自己能在更多细节上进行控制。Pastebin并不反对我们爬取其数据,但该网站存在某些限制条件,同一个IP地址多次请求后可能会被临时或者永久封禁。
幸运的是,Pastebin提供了一个API,这种API专门服务于此类任务场景。目前,Pastebin正在搞为期几天的促销,一次支付19.95美元就能永久拥有Pro(专业版)账号。
图1. Pro账户促销
拥有Pro账户后,我们可以使用某个白名单IP,以每秒1次的频率请求API。实际环境中,我们请求的频率并不需要那么高。
现在我们已经可以访问所有的数据,接下来如何处理这些数据呢?是时候请出PasteHunter这个工具了。
这个工具实际上是一个简单的脚本,可以通过一组Yara规则,利用pastebin API来获得数据,筛选其中匹配的数据内容,存放到elastic search引擎中,然后使用Kibana前端来展示匹配的结果。
图2. 前端仪表盘
图3. 后端已存储数据
如果你不熟悉Yara规则,这里稍微介绍一下。Yara是一种模式匹配引擎,主要用来扫描文件以及分类恶意软件家族。Yara使我们能够很方便地构造复杂的匹配规则,无需陷入正则表达式的泥潭。
安装过程非常简单,如果你需要Web界面来搜索内容的话,你可以安装Elastic Search以及Kibana。
当然我们也需要选择Python3、Yara,并将两者绑定(使用pip install yara-python这条命令)。
安装基础环境后,我们需要从代码库中下载代码,创建计划任务以定期运行脚本。详细信息可以阅读Github上的readme文档。
代码中自带了一些规则,这些规则可以扫描最常见的那些数据,比如密码信息、泄露的凭证信息、被黑的网站等等。你也可以创建自定义关键词的规则文件,添加自己的关键词,例如,某个custom_keywords.yar文件如下所示:
/* This rule will match any of the keywords in the list */
rule custom_keywords {
meta: author = "@KevTheHermit" info = "Part of PasteHunter"
strings:
$my_email = "thehermit@techanarchy.net" wide ascii nocase
$my_domain = "techanarchy.net" wide ascii nocase
$this_word = "This Word"
$other_word = "More Words"
condition:
any of them
}
你可以使用这种规则搜索匹配的域名、邮件地址、文档名等各类信息,以了解是否有任何数据意外泄露或者被他人窃取。
如果你想了解创建Yara规则的更多细节,可以参考官方文档中的详细说明。
你所要做的就是这么简单,运行脚本后,你可以看到数据源源不断汇聚进来。
已收集的部分数据样本如下所示:
图4. Base64编码的恶意软件
图5. API密钥
图6. 邮件地址
图7. Doxing信息
图8. 工具使用说明
图9. Powershell及exe的下载
需要注意的是,这些规则可能会出现误报,相对于数据的可信度而言,你更应该衡量首次上传该数据的人的可信度。