目录
前言
Shodan的介绍
优点
缺点
总结Shodan优缺点与纠正思想
Shodan的安装
shodan的使用
1. search
2. count
3. host
4.honeyscore
5. download
其他命令
结语
学习是一场自我的修行,每一页书都是通往智慧高峰的石阶,每一次思索都是点亮心灵灯塔的火种,在求知的道路上坚定前行,方能遇见更为绚烂的风景与更卓越的自己
什么?学习Shodan?什么是Shodan啊?又是学习我不想学习啊!
害,多大点事。你要偷偷学啊卷死同行,方便自己
Shodan被某些人叫做撒旦,撒旦嘛,就是西方宗教文话中的地狱这一概念的最高统治者,当然现在还没普遍那么叫,听起来比较cool而已
强调声明:本文章仅提供网络安全学术交流,使用这个工具,若用于进行某些不法的事情,造成的后果自负(安全红线不可越)
文章创作由博主本人,信息来自学习而来,为方便您的阅读,您可以在阅读完毕后,在点击蓝色字体前往学习
什么是Shodan?
Shodan 是一个网络搜索引擎,但与传统搜索引擎(如百度、谷歌主要搜索网页内容)不同,Shodan 主要用于搜索网络空间中的各种设备,包括服务器、网络摄像头、打印机等设备
通俗一点说就是像谷歌搜索网页信息,Shodan 搜索网络设备信息
的使用可以使用浏览网页的方式进行使用,官方网页点击蓝色字体即可跳往,也可以以编程和操作系统等方式进行使用
网上都说shodan是一款强大的网络搜索引擎,但我们要知道任何事物都有它们自己的优缺点,合理利用它,才是自己掌控全局的关键之匙。把自己的路牢牢握在自己手中,不是必要之举,就不要行冲动之行
以下是Shodan这款工具的优缺点说明
强大的信息收集能力
能够搜索到各种联网设备的详细信息,如服务器、路由器、摄像头、打印机等,为网络安全研究人员、系统管理员等提供了全面的网络设备信息,有助于更好地了解网络环境和潜在风险
及时发现安全漏洞
可以快速获取最新的漏洞信息,帮助安全专业人员及时发现网络中存在的安全隐患,提前采取措施进行防范和修复,从而提高网络系统的安全性
助力物联网研究
随着物联网的发展,大量设备接入互联网,Shodan 能够帮助研究人员了解物联网设备的分布、类型和安全状况,对于推动物联网安全研究和发展具有重要意义
方便快捷
使用简单方便,用户只需在搜索框中输入相关的关键词、IP 地址、端口号等信息,即可快速获取所需的设备信息,节省了大量的时间和精力
提供多种搜索条件
支持通过国家、城市、端口、设备类型、操作系统等多种条件进行筛选搜索,能够精准地定位到目标设备和信息,提高搜索效率和准确性
数据更新不及时
扫描到的设备信息可能存在一定的延迟,不够实时,数据可能是几个月前的,无法反映设备当前的最新状态,这可能会影响到对网络设备实时监控和风险评估的准确性
隐私和安全问题
由于其能够搜索到大量的设备信息,可能会涉及到一些用户的隐私数据,如个人使用的网络摄像头、智能家居设备等。如果这些信息被恶意利用,可能会对用户的隐私和安全造成威胁。同时,黑客也可能利用 Shodan 搜索到的信息来寻找目标,发动网络攻击
信息准确性有限
虽然 Shodan 能够提供大量的设备信息,但其中部分信息可能不够准确或完整。例如,对于某些设备的描述可能不够详细,或者设备的实际配置与搜索结果存在差异,这可能会给用户的分析和判断带来一定的困难
商业化限制
Shodan 的高级功能和更多的搜索结果需要付费才能使用,对于一些个人用户或小型组织来说,可能会增加使用成本,限制了其在某些场景下的应用
可能被滥用
其强大的搜索功能如果被不法分子利用,可能会导致严重的后果,如寻找存在漏洞的设备进行攻击、窃取敏感信息等,从而对网络安全造成威胁
这些方面的问题,有可能会随着时代变迁,版本升级而会改变,当你能够熟练运用这个工具时就不要局限于这个工具而已了,要学会寻求突破,突破这种局限性
所以在看完这些优缺点,还有没有使用它的必要? 答案是有的,要知道,没有什么事物是完美的。举个例子,当你真的认为你把你所有的缺点都变成了优点,是不是就可以说你没有优点了?错了错了,是有缺点的,缺点就是你没有缺点(你品,你细品。品得出来吗?应该可以吧)
所以的所以你没办法真正的把所以缺点都划掉,这时你就要学会接受了,而不是嫌弃。不会用,倒不如会用。有时用到时,不会用的到会羡慕会用的。
这个工具比较适合在kali系统上使用,博主记得好像是自带的不用安装,还是说不自带,总之博主也有点忘了( ̄▽ ̄)"不好意思哈
看看有没有安装可以试试在命令框上输入 shodan 看看输入的命令有没有变颜色,如果是变颜色了那就是已经安装有了
在此说明以下,这个工具一些功能是免费的网页版的可能更方便,但是一些好用的功能又需要其他方式才能使用,我会在下方中进行说明
kali上就是在终端输入
sudo apt - get update 这个命令是更新软件包列表(可能有点久)
sudo apt - get install shodan 安装Shodan工具
如果是Centos就在终端输入
yum update 更新软件包列表
yun install shodan 安装Shodan工具
如果是用python就在终端输入
pip install shodan 安装Shodan工具
初始化shodan命令都是一样的,这里的<API-KEY>是需要注册账号了才有的,登录后在 Account 页面下可找到 API 密钥。博主的账户是终身学术会员,从而博主可以使用的功能更多。
一些工具的高级功能几乎都是需要你摸出点血汗才能提供使用的,理解这你就会成长
shodan init <API-KEY> 开始初始化
当初始化成功时,它会返回打印Successfully initialized
shodan -h 可以查看内置命令
这样看感觉很麻烦,又看不懂英语
那就按博主的教学顺序来学习吧
这个命令很重要,特别是它的过滤命令,如果你学会了有更多想法的可以有更多的过滤办法
首先我认为你要先学会搜索,搜索然后要学会退出,搜索的时候想指定搜索内容可以使用过滤命令,下方是一些过滤命令的使用
使用模板为 shodan search [过滤命令]
模板示例 shodan search hostname:"google"
过滤命令
hostname:指定按照主机名进行搜索
例如,hostname:"google" 可以搜索包含 特定域名的主机
port:指定按照端口进行搜索
例如,port:"21" 可以搜索指定端口或服务
country:指定按照国家进行搜索
中国:CN 美国:US 日本:JP 英国:GB 德国:DE
法国:FR 俄罗斯:RU 加拿大:CA 澳大利亚:AU
例如,country:"CN" 可以搜索指定国家的设备
city:指定按照城市进行搜索
例如,city:"Hefei" 可以搜索指定城市的设备
org:指定按照组织进行搜索
例如,org:"google" 可以搜索指定组织或公司的设备
isp:指定按照 ISP 供应商进行搜索
例如,isp:"China Telecom" 可以搜索指定 ISP 供应商的设备
product:指定按照特定产品进行搜索
例如,product:"Apache httpd" 可以搜索指定操作系统 / 软件 / 平台的设备
version:指定按照软件版本进行搜索
例如,version:"1.6.2" 可以搜索指定软件版本的设备
geo:指定按照地理位置进行搜索
例如,geo:"31.8639, 117.2808" 可以搜索指定经纬度的设备
before/after:指定在某个时间点之前或之后的数据。格式为 dd-mm-yy
例如,before:"11-11-15" 可以搜索指定收录时间之前的数据
net:指定进行子网搜索
例如,net:"210.45.240.0/24" 可以搜索指定 IP 地址或子网的设备
os: 根据操作系统进行过滤
例如, os:"linux" 可以搜索正在运行的Linux系统
以上这些过滤命令,并不是很全,有想法的可以去官方看看,可以有更多过滤命令
通过这些过滤命令,可以快速准确地找到感兴趣的内容
查找位于深圳的 Apache 服务器可以使用 apache city:"shenzhen"
查找位于国内的 Nginx 服务器可以使用 nginx country:"CN"
查找 GWS (Google Web Server) 服务器可以使用 "Server: gws" hostname:"google"
查找指定网段的华为设备可以使用 huawei net:"61.191.146.0/24"
使用 shodan search -h 进行查看该命令的详细使用方法
--color 给输出的内容颜色加深
比如 shodan search --color country:jp 颜色加深查找jp
--limit 数量
是需要选择数量,--limit命令指定的数量限制一般在1-1000之间,超过可能报错。数量一旦上来输出的时间就更久,所以一般不用太多
比如 shodan search --limit 10 country:jp 限制10数量查找jp
--fields
填写你想只显示的内容
比如ip/port/org (意思就是输出的时候会省略掉一些内容,提取想要提取的内容)
比如 shodan search --fields ip_str country:jp 指定ip查找jp
shodan search --fields ip_str,port country:jp 指定ip和端口的查找jp
综合运用命令
shodan search --color --limit 10 --fields ip_str,port country:jp
shodan search --color --limit 10 --fields ip_str port:443 country:cn city:shanghai
shodan search --limit 10 --fields ip_str port:80 country:jp
shodan search --limit 10 --fields ip_str,port http.title: hacked by 被黑客黑过的网站
shodan search --limit 10 --fields ip_str,port http.title:mysql
shodan search --limit 10 --fields ip_str,port country:cn http.waf:safedog 一些安装了安全狗的网站
shodan search --limit 10 --fields ip_str,port net:208.88.84.0/24 美国安全局
这些命令都可以去试试,总之search就是很牛逼又重要的一个命令,这些足以展示它的强大,当然想要更方便一点掌握就可以去用网页版的shodan
这个命令就是一个统计用的,其实也没啥
比如 shodan count search port:443 country:jp 就是统计在jp内有多少个开放的433端口
shodan count search os:windows country:jp 就是统计在jp内有多少正在运行的Windows
在 search 命令的基础
上使用 host 进行查看ip详细信息
比如 shodan host [ip]
honeyscore 查看是否是蜜罐
在刚刚host的基础上
使用honeyscore可以判断是否是蜜罐
比如 shodan honeyscore [ip] 查看某个ip是否是蜜罐
download:下载查询结果
使用方法为shodan download [OPTIONS] <filename> <search query>
<filename> 是保存搜索结果的压缩 JSON 文件的名称
<search query> 是在 Shodan 中执行的搜索查询语句
比如 shodan download results.json.gz "net:192.168.0.0/16" --fields ip,port,hostname --limit 100
会搜索192.168.0.0/16这个 IP 地址范围内的设备
并只下载前 100 个结果的 IP 地址、端口和主机名信息
然后将这些信息保存到名为results.json.gz的压缩文件中
info 命令可以查询当前用户还剩余的查询次数吧
比如 shodan info
Query credits available: 199985
表示你当前可用的查询积分数量是 199985 ,Shodan 的很多查询操作(比如进行搜索等)会消耗这些查询积分,不同类型的搜索消耗积分的情况不一样,积分数量会随着使用情况相应变化
Scan credits available: 65536
则说明你现有的扫描积分还有 65536 ,扫描积分主要用于一些涉及主动扫描网络设备等相关功能的操作消耗,同样也是根据具体使用按需扣除,有足够的扫描积分才能正常开展对应的扫描类活动呢
总的来说,通过这个命令可以方便你随时了解自己账号下 Shodan 积分的剩余情况,以便合理规划后续使用操作
version 命令就是查看shodan的版本
比如 shodan version
不同版本可能功能有可能不同,简单
scan 扫描,跟nmap的扫描ip或网段相似
shodan scan -h 查看帮助文档
shodan scan submit [ip地址或网段] 发起扫描
对指定的单个 IP 地址或整个网段进行扫描,以获取实时的设备信息
比如 shodan scan submit 192.168.1.1
shodan scan submit 192.168.1.0/24
shodan scan list 查看扫描列表
用于显示最近发起的扫描任务及其相关信息,方便用户查看过去启动的扫描任务的执行情况
shodan scan status <SCAN_ID> 查看扫描状态
通过指定扫描任务的 ID,可以查看某个按需扫描的当前状态,了解扫描任务是否完成、正在进行中或已失败等
具体一点说,就是你之前提交了一个扫描 IP 地址为 网段的扫描任务,得到的 是
那你在命令行输入
Shodan 就会反馈给你这个扫描任务当前的具体状态,然后你可以根据状态情况来决定后续是等待、获取结果还是排查故障等操作了
Pending(待定)
表示扫描任务已经提交成功了,但还在排队等待执行,可能是因为当前系统中还有其他正在处理的扫描任务,尚未轮到它开始扫描呢
In Progress(进行中)
意味着扫描正在按照既定流程对目标(IP 地址或者网段)进行信息收集,这个阶段 Shodan 正在主动探测目标的各个端口、识别运行的服务等相关操作
Completed(已完成)
说明扫描任务已经顺利结束了,这时候你就可以接着使用相应的命令(比如查看扫描结果相关的命令)去获取此次扫描所收集到的详细设备信息了
Failed(失败)
要是返回这个状态,那就是扫描过程中出现了某些问题导致无法正常完成任务,可能的原因有很多,比如目标网络不可达、你的扫描额度不足、遇到了临时的网络故障等等情况,这时候你可能就需要排查下具体原因,必要时可以联系 Shodan 的官方支持来协助解决
convert 数据格式的转换
将 Shodan 查询到的数据在不同格式之间进行转换,以便于在其他工具中进行分析或者存储
这个命令是这样用的 shodan host [IP] | shodan convert -t json 放在了后半部分用 | 隔开
比如 shodan host 192.168.1.1 | shodan convert -t json
把shodan host 192.168.1.1的内容放到json文件里面
shodan search --limit 10 country:jp | shodan convert -t csv
把shodan search --limit 10 country:jp 的内容放到csv文件里面
myip 查看自己当前设备在用的公网IP
这个命令一般用于查看自己代理是否代理成功
比如 shodan myip
Shodan 会向相关网络服务进行查询,然后返回当前设备正在使用的公网 IP 地址信息
Shodan的学习就到这了
谢谢各位道友的阅览
加油
知识的海洋浩瀚无垠,学习如同扬帆起航,别怕风浪,莫惧迷茫,因为每一次的奋力划桨,都在拉近你与梦想彼岸的距离,每一滴汗水洒落,都将浇灌出成功的繁花盛景