shodan 简单使用教程

shodan使用指南

查询

  • 基础查询:

    语法

    type:xxx
    

    注意:冒号左右没有空格

    搜索指定的主机或域名:

    hostname:"google"
    

    搜索指定的端口或服务(数字可以不用双引号包裹):

    port:21
    

    搜索指定的国家:

    country:"CN"
    

    搜索指定的城市:

    city:"Hefei"
    

    搜索指定的组织或公司:

    org:"google"
    

    搜索指定的ISP供应商:

    isp:"China Telecom"
    

    搜索指定的操作系统/软件/平台:

    product:"Apache httpd"
    

    搜索指定的软件版本:

    version:"1.6.2"
    

    搜索指定的地理位置,参数为经纬度:

    geo:"31.8639, 117.2808"
    

    搜索指定收录时间前后的数据before/after,格式为dd-mm-yy:

    before:"11-11-15"
    

    搜索指定的IP地址或子网:

    net:"210.45.240.0/24"
    

    搜索有shodan结果状态:

    status:200
    
  • 并集查询(A & B):

    语法

    type1:xxx type2:xxx
    

    用空格将两个查询条件隔开就可以了


    搜索指定主机为Google并且端口为80:

    hostname:'google' port:80
    
  • 差集查询(A - B):

    语法

    type1:xxx -type2:xxx
    

    用空格将两个查询条件隔开就可以了


    搜索指定主机为Google并且端口不为80:

    hostname:'google' -port:80
    

    注意:port前有个 -,代表减去

查询结果获取

1. 点击页面上的 Download Results 按钮下载

在这里插入图片描述

2. 使用 shaodan 官方提供 shodan 下载数据

下载速度比较慢,且数据始终会少于查询结果数据,偶尔会中断

1、 安装 shodan (请先安装python和pip)

pip install shodan

2、 初始化工具

shodan init [API Key]

提示: 登录 shodan 后在网站获取这个 API Key

3、 查询数据的结果数量

shodan count "查询条件"

例如查询主机为google的数据:

shodan count hostname:'google'

例如查询主机为google并且端口为80的数据:

shodan count "hostname:'google' port:80"

注意: 这里的查询条件的引号格式不要弄错了

4、 下载查询结果数据

  • 语法:
shodan download [保存文件名] "查询条件" [--limit n](条数限制)

说明: 如果不给保存文件名,则会以query为文件名保存。
如果不限制条数,则会默认为1000。
查询条件格式与上面查询数量的查询条件格式一致。

例如下载100条主机为Google并且端口不为80的数据并保存为google:

shodan download google "hostname:'google' -port:80" --limit 100

下载的数据每行为一个json

5、 可以直接使用shodan对数据进行分析(也可以不下载直接分析)

  • 提取下载数据中的ip和端口

    shodan parse --fields ip_str,port --separator , google.json.gz
    
  • 直接提取查询数据中的ip和端口

    shodan search --fields ip_str,port "查询条件" 
    

3. 使用代码下载数据

数据可能有重复,故下载是数量多于查询出来的结果数量(主要是会多用积分,费钱)

这里使用python语言,使用其他语言请自行查看官方文档

1、 按照第二种方式所述安装shodan
2、 代码示例:

import shodan
SHODAN_API_KEY = "API Key"
api = shodan.Shodan(SHODAN_API_KEY)
results = api.search(query, facets=page, limit=5, minify=True)
doing...

search函数参数说明:

  • query ( str ) – 搜索查询;与网站相同的语法
  • page ( int ) –(可选)搜索结果的页码
  • lint ( int )–(可选)要返回的结果数
  • offset ( int )–(可选)搜索偏移量以开始从中获取结果
  • facets ( str ) –(可选)用于获取摘要信息的属性列表
  • minify ( bool ) –(可选)是否缩小横幅并只返回重要数据

更多查询请查看官方文档 https://shodan.readthedocs.io/en/latest/api.html

  • 6
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值