利用Censys进行信息侦查收集

Censys例子
Censys.io是一个新型的免费在线资源,它由密歇根大学的研究人员创建。这个项目提供了一个Web服务API,以及一个Python模块来提高API交互。一旦你创建了一个免费账户,那么就可以通过它使用Censys.io API。为了执行API查询,你需要API ID和与你的帐户关联的密钥值。这两个唯一的键值可以在“我的帐户”区域中找到。下面是一个在Python中与Censys.io API交互的简单例子:
$ python
>>>
>>> import censys
>>> from censys import *
>>>
>>> api = censys.ipv4.CensysIPv4(api_id="[INSERT_KEY]", api_secret="[INSERT_KEY]")
>>> res = api.search("ip:8.8.8.8")
>>> res
{u'status': u'ok', u'results': [{u'ip': u'8.8.8.8', u'protocols': [u'53/dns']}], u'metadata': {u'count': 1, u'query': u'ip:8.8.8.8', u'backend_time': 34, u'page': 1, u'pages': 1}}
 
>>> for i in res.get('results'):
...     print "{} {}".format(i.get("ip"), " ".join(i.get('protocols'))
...
8.8.8.8 53/dns
 
>>>
下面是一个POC脚本,它从API中提取数据。默认情况下,它只抓取结果(100个结果)中的第一页。为了绕过这个限制,我们添加了一些简单的逻辑来解析总量,并进行了适当数量的查询。
#!/usr/bin/env python
 
import sys
import censys
from censys import *
 
api = censys.ipv4.CensysIPv4(api_id="API_ID", api_secret="API_SECRET")
 
res = api.search(sys.argv[1])
matches = res['metadata']['count']
pageNum = matches / 100
if matches % 100 != 0:
    pageNum = pageNum + 1
 
count = 1
while count <= pageNum:
    res = api.search(sys.argv[1], page=count)
    count = count+1
    for i in res.get('results'):
        print "{} {}".format(i.get("ip"), " ".join(i.get('protocols'))

评论

此博客中的热门博文

Censys:新型搜索洞察引擎使用指南

利用Censys进行信息侦查收集

随机生成虚拟外国人全套信息 / 信用卡 / 身份信息的网站