shodan用法(完)
声明
学习视频来自B 站up主泷羽sec,如涉及侵权马上删除文章。
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。
shodan
今天,我们把shodan完结了,因为也没几条命令了,不过今天仍然是干货满满呦!
mongodb数据库
MongoDB未授权登录数据库是一个严重的安全问题,以下是相关情况:
一、漏洞产生原因
启动Mongodb的时候未设置--auth,并且很少有人会给数据库添加上账号密码(默认空口令),这将导致恶意攻击者无需进行账号认证就可以登陆到数据服务器。
二、漏洞利用方式
环境安装(以Kali系统为例)
导入MongoDB公共GPG密钥: 如果提示错误运行sudo apt - get install gnupg之后,重新运行相关命令。
创建一个列表文件来配置下载列表和下载源。
重新加载更新源: sudo apt - get update
安装MongoDB的最新稳定版本: sudo apt - get install - y mongodb - org
启动进程: sudo systemctl start mongod,若失败(如提示Failed to start mongod.service: Unit mongod.service not found.)
首先运行特定命令,然后再次运行开始命令。
配置开机自启: sudo systemctlenable mongod
漏洞利用步骤
扫描或者通过FOFA发现端口或者服务(默认端口27017)。
使用mongo连接数据库,命令格式: mongo--host目标ip--port目标端口
查看用户、数据库信息等。
创建系统用户管理员,例如创建一个用户名为myUserAdmin,密码为Passw0rd的系统用户管理员账号:
切换到admin库:use admin。
创建用户:
db.createUser({user:myUserAdmin ,pwd:Passw0rd,roles:[{role:userAdminAnyDatabase,db:admin}]}),创建成功后会有提示信息:Successfully added user:{user:myUserAdmin,roles:[{role:userAdminAnyDatabase,db:admin}]}。
可以通过ssh直接登录系统完成利用。
shodan search --limit 10 --fields ip_str "Mongodb server information -authentication" port:27017
第一个直接就来连接成功了,成功率还是挺高的。
不过显然这个数据库已经被别人挟持了,没有任何价值。
jenkins组件
Shodan搜索基础
这是一个Shodan搜索命令。Shodan是一个网络搜索引擎,主要用于搜索网络上的设备、服务等信息。
命令参数含义
--limit 10: 这个参数表示限制搜索结果的数量为10条。这样做可以避免得到过多的搜索结果,方便查看和分析与特定条件匹配的结果。
--fields ip_str: 表示只显示搜索结果中的IP地址字段。这样能聚焦于目标的IP信息,去除其他可能的多余信息。
"X - Jenkins" OR "Set - cookie:JSESSIONID": 这是搜索的条件之一。它表示查找包含X - Jenkins或者Set - cookie:JSESSIONID信息的目标。这里X - Jenkins可能与Jenkins服务相关的特定HTTP头信息有关,JSESSIONID通常是在基于Java的Web应用(如可能使用Jenkins服务的应用)中用于跟踪用户会话的Cookie标识。
http.title:"Dashboard" : 这是另一个搜索条件,表示查找HTTP标题为Dashboard的目标。在很多系统(包括Jenkins)中,Dashboard通常是管理界面或者控制面板的标题。
shodan search --limit 10 --fields ip_str "X-Jenkins" OR "Set-cookie:JSESSIONID" http.title:"Dashboard"
可以看到,很轻松的进到dashboard的面板,也说明确实存在漏洞。
Jenkins特性
Jenkins具有易于安装、易于配置等特点。所有配置都可以通过Jenkins提供的Web界面完成,也可以通过手动修改XML文件进行配置。Jenkins能跟踪每次构建生成哪些jar包以及使用哪个版本的jar包。此外,Jenkins还支持分布式构建,可以通过第三方插件扩展,也可以根据团队需要开发插件。
Jenkins中的任务和构建
在Jenkins中,任务(Job)是一个执行计划,是一系列操作的集合,构建是Jenkins的任务的一次运行。在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。
Jenkins的应用场景
Jenkins广泛应用于软件开发领域,特别是在敏捷开发和DevOps实践中。它可以帮助团队实现自动化构建、测试和部署,从而加快软件交付的速度,提高软件质量。同时,Jenkins的插件系统使其能够与各种工具和服务集成,进一步扩大了其应用范围。
jenkins在渗透测试过程中的辅助作用
Jenkins简介
Jenkins是一个开源的持续集成和持续交付/部署(CI/CD)平台,广泛用于自动化软件的构建、测试和部署过程。它支持多种插件,可以与各种开发工具和流程集成,极大地提高了软件开发的效率和质量。
Jenkins在渗透测试中的作用
自动化测试脚本管理
Jenkins可以用来管理和执行自动化测试脚本,这对于渗透测试来说非常重要。渗透测试过程中,测试者需要编写和执行大量的测试脚本来发现系统的安全漏洞。Jenkins可以自动化这一过程,每当有新的代码提交或更新时,都可以触发Jenkins执行相应的测试脚本,从而及时发现潜在的安全问题。
构建和部署
在渗透测试中,可能需要频繁地构建和部署测试环境。Jenkins可以自动化这一过程,使得测试环境的搭建和更新变得更加高效。例如,可以配置Jenkins在每次代码提交时自动构建一个新的测试环境,并部署最新的代码,以便测试者可以立即在最新的环境中进行测试。
数据收集和分析
渗透测试过程中会产生大量的数据,包括扫描结果、漏洞信息等。Jenkins可以通过插件与其他工具集成,自动收集和分析这些数据。例如,可以使用插件将扫描结果导出到数据库或报表中,便于测试者进行进一步的分析和处理。
团队协作
Jenkins支持多用户协作,可以方便地进行任务分配和进度跟踪。在渗透测试团队中,不同成员可能负责不同的测试任务。Jenkins可以提供一个统一的平台,使得团队成员可以共享资源、协调工作,并及时了解项目的进展。
Stats
** Shodan Stats 功能介绍**
Shodan Stats 提供了搜索结果的概要信息,帮助用户快速了解搜索到的设备分布情况。
这些信息包括但不限于以下几个方面:
Top Services (Ports): 显示使用最多的服务/端口,帮助用户了解网络中最常见的服务类型。
Top Organizations (ISPs): 列出使用最多的组织/ISP,这对于市场研究和网络风险分析非常有用。
Top Operating Systems: 展示使用最多的操作系统,有助于了解不同操作系统在网络中的普及程度。
Top Products (Software Name): 列出使用最多的产品/软件名称,这对于软件开发和安全研究人员来说是非常有价值的。
使用 Shodan Stats 功能非常简单,用户只需在 Shodan 的搜索栏中输入关键词,然后点击搜索。在搜索结果页面,用户可以看到一系列的汇总数据,包括上述提到的各项统计信息。此外,Shodan 还提供了多种过滤选项,允许用户进一步细化搜索结果,例如按国家、城市、ISP、产品、版本等进行筛选。
shodan stats --facets ssl.version country:jp has_ssl:true http
命令理解
用户想要使用Shodan的stats命令来获取关于中国境内启用了SSL的HTTP服务器的统计信息,特别是关于SSL版本的分组统计。
命令解析
shodan stats: 这是Shodan CLI工具的一个命令,用于获取统计信息。
--facets ssl.version: 这指定了要分组统计的字段是SSL版本。
country:jp: 这限制了搜索结果仅包括jp的服务器。
has_ssl:true: 这确保只统计启用了SSL的服务器。
http: 这进一步限制了搜索结果仅包括HTTP协议的服务器。
为了扩大搜索范围,需要学习多种参数的组合,国家地区,城市,漏洞,版本,ip ,端口配合起来过滤出更精准的信息:
1. Echo (7) - 回声协议,用于网络中的诊断和调试。
2. Chargen (19) - 字符发生器协议,主要用于测试和诊断。
3. FTP (20-21) - 文件传输协议,用于文件在网络上的传输。
4. SSH/SCP (22) - 安全外壳协议,用于安全的远程登录和传输文件。 [加密 (Encrypted)]
5. Telnet (23) - 远程终端协议,用于远程登录,不安全的明文传输。
6. SMTP (25) - 简单邮件传输协议,用于发送电子邮件。
7. WINS复制 (42) - Windows Internet 名称服务,用于Windows网络中的名称解析。
8. WHOIS (43) - 查询域名注册信息的协议。
9. TACACS (49) - 终端访问控制器访问控制系统,用于网络设备的身份验证。
10. DNS (53) - 域名系统,将域名转换为IP地址。
11. DHCP/BOOTP (67-68) - 动态主机配置协议和引导协议,为设备分配IP地址。
12. TFTP (69) - 简单文件传输协议,基于UDP,常用于设备启动。
13. Gopher (70) - 一种较早的互联网文档搜索和检索协议。
14. Finger (79) - 用户信息查询协议,显示用户的信息。
15. HTTP (80) - 超文本传输协议,用于浏览网页。
16. Kerberos (88) - 一种网络认证协议,提供安全的身份验证。 [加密 (Encrypted)]
17. MS Exchange (102) - Microsoft Exchange邮件服务使用的端口。
18. POP3 (110) - 邮局协议版本3,用于接收电子邮件。
19. Ident (113) - 用于标识连接的用户身份。
20. NNTP (119) - 网络新闻传输协议,用于Usenet新闻组。
21. NTP (123) - 网络时间协议,同步网络时间。
22. Microsoft RPC (135) - Microsoft的远程过程调用协议。
23. NetBIOS (137-139) - 网络基本输入输出系统,用于局域网通信。
24. IMAP4 (143) - 互联网邮件访问协议,用于邮件接收和管理。
25. SNMP (161) - 简单网络管理协议,用于网络设备管理。
26. XDMCP (177) - X显示管理控制协议,用于远程显示。
27. BGP (179) - 边界网关协议,用于互联网路由。
28. AppleTalk (201) - Apple的网络协议栈,用于设备通信。
29. BGMP (264) - 边界组播网关协议,用于组播路由。
30. TSP (318) - 传输层安全协议,用于网络安全通信。
31. HP Openview (381-383) - HP网络管理工具使用的端口。
32. LDAP (389) - 轻量目录访问协议,用于访问目录服务。
33. Direct Connect (411-412) - 点对点文件共享协议。 [点对点 (Peer to Peer)]
34. HTTPS (443) - HTTP的安全版本,使用SSL/TLS加密。 [加密 (Encrypted)]
35. SMTP over SSL (465) - 安全的SMTP端口。 [加密 (Encrypted)]
36. Microsoft DS (445) - Microsoft目录服务,用于文件共享。
37. ISAKMP (500) - Internet安全关联和密钥管理协议。 [加密 (Encrypted)]
38. MyDoom (1090) - MyDoom病毒常用的端口。 [恶意 (Malicious)]
39. Kazaa (1214) - 点对点文件共享应用Kazaa使用的端口。 [点对点 (Peer to Peer)]
40. Microsoft SQL (1433-1434) - Microsoft SQL数据库服务。
41. MS Media Server (1755) - 用于Microsoft媒体流服务。 [流媒体 (Streaming)]
42. RADIUS (1812-1813) - 远程身份验证拨入用户服务,用于身份验证和授权。 [加密 (Encrypted)]
43. MSN (1863) - Windows Live Messenger使用的端口。 [聊天 (Chat)]
44. cPanel (2078-2083) - 网站管理工具cPanel使用的端口。
45. Xbox Live (3074) - Xbox Live服务的游戏端口。 [游戏 (Gaming)]
46. HTTP Proxy (3128) - HTTP代理服务器常用的端口。
47. MySQL (3306) - MySQL数据库服务的默认端口。
48. Terminal Server (3389) - 远程桌面服务端口。
49. iTunes (3689) - Apple iTunes共享服务。 [流媒体 (Streaming)]
50. World of Warcraft (3724) - 魔兽世界游戏使用的端口。 [游戏 (Gaming)]
51. Google Desktop (4664) - Google桌面搜索。
52. UPnP (5000) - 通用即插即用协议,用于设备发现。
53. SIP (5060) - 会话初始协议,用于VoIP。 [聊天 (Chat)]
54. AIM/ICQ (5190) - AOL即时通讯和ICQ服务。 [聊天 (Chat)]
55. XMPP/Jabber (5222-5223) - 即时通讯协议。 [聊天 (Chat)]
56. PostgreSQL (5432) - PostgreSQL数据库服务。
57. VNC Server (5800-5900) - 虚拟网络计算,用于远程控制。
58. Battle.net (6112) - 游戏平台Battle.net使用的端口。 [游戏 (Gaming)]
59. IRC (6665-6669) - 互联网中继聊天协议。 [聊天 (Chat)]
60. BitTorrent (6881-6999) - 点对点文件传输协议。 [点对点 (Peer to Peer)]
61. Windows Live (6891-6901) - Windows Live Messenger使用的端口。 [聊天 (Chat)]
62. Quicktime (6970) - Apple Quicktime视频流端口。 [流媒体 (Streaming)]
63. TeamSpeak (8767) - 语音聊天软件TeamSpeak使用的端口。 [聊天 (Chat)]
64. Call of Duty (28960) - 游戏《使命召唤》使用的端口。 [游戏 (Gaming)]
65. Back Orifice (31337) - 恶意软件Back Orifice使用的端口。 [恶意 (Malicious)]
66. traceroute (33434+) - 一种网络诊断工具,用于追踪数据包从源到目的地经过的路由。通常从端口 **33434** 开始,然后逐步增加端口号。通过发送带有递增TTL(生存时间)值的数据包,traceroute 能显示每一跳的路由节点,以帮助定位网络问题和查看数据包路径。