Shodan Web端非常好用,但如果我们有从Python搜索的需求怎么办?
没关系,Shodan 官方也提供了 PythonSDK 包,下面就来讲讲这个 SDK 包的使用。
1.准备
开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南进行安装。
(可选1) 如果你用Python的目的是数据分析,可以直接安装 Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了 Python 和 pip .
(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。
请选择以下任一种方式输入命令安装依赖:
- Windows 环境 打开 Cmd (开始-运行-CMD)。
- MacOS 环境 打开Terminal (command+空格输入Terminal)。
- 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pipinstall shodan
2.注册账号获取API
使用 Shodan 必须注册账号,注册网址:https://account.shodan.io/register
输入完相关信息,点击 CREATE 会跳转到个人账户页:
此时 API Key 会显示你的API秘钥,请记录这个秘钥,后续会使用到这个秘钥去请求接口。
3.Shodan 基本调用
Shodan 本质上就是一个搜索引擎,你只需要输入搜索的关键词:
# 公众号:Python 实用宝典# 2021-05-04fromshodanimportShodan api = Shodan('你的API KEY')defsearch_shodan(keyword):# 调用搜索接口result = api.search(keyword)# 显示所有IPforserviceinresult['matches']:print(service['ip_str']) search_shodan("Hikvision-Webs")
结果如下:
可惜的是,普通API只能像这样搜索关键字,无法使用过滤条件如:**Hikvision-Webs country:"US"
**搜索美国境内的所有 Hikvision 网站管理端。
如果你想要使用过滤条件,Shodan 需要你升级API权限:
挺贵的,不过还好是一次性支付,永久使用。
4. Shodan 高级使用
Shodan 的用处当然不仅仅是在黑客攻防中,它还能用于统计。如果你想要了解哪些国家的使用这款摄像头的数量最多,可以使用 Facets 特性。
# 公众号:Python 实用宝典# 2021-05-04fromshodanimportShodan api = Shodan('你的API KEY')deftry_facets(query):FACETS = ['org','domain','port','asn', ('country',3), ] FACET_TITLES = {'org':'Top 5 Organizations','domain':'Top 5 Domains','port':'Top 5 Ports','asn':'Top 5 Autonomous Systems','country':'Top 3 Countries', }try:# 使用 count() 方法可以不需要升级API,且比 search 方法更快。result = api.count(query, facets=FACETS)print('Shodan Summary Information')print('Query: %s'% query)print('Total Results: %sn'% result['total'])# 显示每个要素的摘要forfacetinresult['facets']:print(FACET_TITLES[facet])forterminresult['facets'][facet]:print('%s: %s'% (term['value'], term['count']))exceptExceptionase:print('Error: %s'% e) try_facets("Hikvision-Webs")
得到结果如下:
从 Top 3 Countries 中可以看到,这款摄像头使用数量排名前三的国家分别是:美国、日本和德国。
没想到吧,Shodan 居然还能用于产品分析。同样地原理,如果你把关键词改为 **apache
** ,你可以知道目前哪些国家使用apache服务器数量最多,最普遍被使用的版本号是什么。
简而言之,Shodan 是一个非常强大的搜索引擎,它在好人手里,能被发挥出巨大的潜能。如果 Shodan 落入坏人之手的话,那真是一个可怕的东西。
为了避免受到不必要的攻击,请大家及时检查所有联网设备的管理端的密码,如果有使用默认密码及弱口令,立即进行密码的更改,以保证服务的安全。
- 编辑器
+关注
关注
1文章
795浏览量
30852 - 数据分析
+关注
关注
2文章
1388浏览量
33882 - python
+关注
关注
53文章
4747浏览量
83938 - SDK
+关注
关注
3文章
997浏览量
45312
发布评论请先登录
相关推荐
评论