利用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'))
评论
发表评论