声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果
引言:
1.Shodan 是一个专门用于搜索连接到互联网的设备的搜索引擎。与传统搜索引擎(如 Google)不同,Shodan 的焦点不在于网页内容,而是寻找物联网设备、服务器和其他网络设备的开放端口和服务。用户可以通过 Shodan 查找特定类型的设备,如摄像头、路由器、服务器、打印机等,甚至可以根据设备的地理位置或软件版本进行搜索。
2.Shodan 的工作原理是不断扫描互联网,收集设备的元数据,包括 IP 地址、端口信息、服务和协议等。该搜索引擎能够揭示潜在的网络安全漏洞,也因此被安全研究人员和黑客广泛使用。Shodan 也提供了一些工具和API,方便用户进行更深入的分析和集成。
目录
一、搜索网段:net
二、搜索一些组织的IP:org
三、搜索一些网址所在组织的IP:hostname
四、查找一些安装了安全狗waf的网站
五、检索一些html前端页面带有关键字的ip,用法和title类似
六、MongoDB数据库未授权登录
七、Jenkins未授权访问
1.Jenkins 组件介绍
2.shodan搜索jenkins
一、搜索网段:net
1. net:后面跟上网段这边以美国国家安全局网站为例:www.nsa.gov : 208.88.84.0命令:shodan search --limit 10 --fields ip_str,port net:208.88.84.0/24
二、搜索一些组织的IP:org
1.命令:shodan search --limit 10 --fields ip_str,port org:nsa
三、搜索一些网址所在组织的IP:hostname
1.命令:shodan search --limit 10 --fields ip_str,port hostname:google
四、查找一些安装了安全狗waf的网站
1.字眼:http.waf:
2.命令:shodan search --limit 10 --fields ip_str,port country:cn http.waf:safedog
五、检索一些html前端页面带有关键字的ip,用法和title类似
命令:shodan search --limit 10 --fields ip_str,port country:cn http.html:login
六、MongoDB数据库未授权登录
1.字眼:Mongodb server information - authentication,端口:27017
2.命令:shodan search --limit 10 --fields ip_str,port "Mongodb server information -authentication" port:27017
3.连接数据库
使用数据库连接工具navicat
可以对指定ip进行连接
mongodb连通性测试
from pymongo import MongoClient import socket def check_mongodb(ip): try: client = MongoClient(f"mongodb://{ip}:27017", serverSelectionTimeoutMS=2000) client.admin.command('ismaster') # 测试连接是否成功 print(f"[+] '连接成功': {ip}") except Exception as e: print(f"[-] '连接失败': {ip} ({e})") with open('所在目录的ip集合.txt', 'r') as file: ips = file.readlines() for ip in ips: ip = ip.strip() check_mongodb(ip)
七、Jenkins未授权访问
1.Jenkins 组件介绍
一、⾃动化构建与部署能⾃动从代码仓库获取代码并进⾏编译、打包等构建操作。可以把构建好的成果⾃动部暑到不同环境中。二、⾃动化测试⾃动运⾏各种测试,如单元测试、集成测试等三、任务管理
- 可设置定时任务,按特定时间⾃动执⾏工作。
- 能管理任务问的依赖关系。
- 监控任 务状态,失败时通知相关⼈员。
四、可扩展定制有很多插件可满⾜不同的需求,也能⾃⾏开发插件。⾃动测试、⾃动测试、⾃动回滚。五、在渗透测试过程中的辅助作用⾃动化测试:Jenkins 可以用于⾃动化渗透测试过程中的一些任务,如漏洞扫描、安全测试等。通过编写 Jenkins 任务,可以定期对目标系统进⾏安全测试,提⾼测试效率和覆盖范围。持续集成与持续部署(CI/CD):在一些企业中,Jenkins 被用于 CI/CD 流程中。渗透测试⼈员可以利用 Jenkins 的 CI/CD 流程,在开发和部署过程中进⾏安全测试,及时发现和修复安全问题。漏洞管理:Jenkins 可以与漏洞管理工具集成,帮助企业管理和跟踪安全漏洞。渗透测试⼈员可以利用 Jenkins 的漏洞管理功能,了解目标系统中存在的安全漏洞,并制定相应的攻击策略。总之, Jenkins 在渗透测试中既可能是攻击目标,也可以作为辅助工具 。渗透测试⼈员需要了解 Jenkins 的安全风险和漏洞,以及如何利用 Jenkins 来提⾼渗透测试的效率和效果。同时,企业也需要加强 Jenkins 的安全配置和管理以防止被攻击者利用)。
2.shodan搜索jenkins
1.字眼:
import requests
# 设置请求的 Headers
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36'
}
def check_jenkins(ip):
url = f'http://{ip}:8080/'
try:
# 访问 Jenkins 主页面
response = requests.get(url, headers=headers, timeout=5)
if "Dashboard [Jenkins]" in response.text:
print(f"[+] '检测到 Jenkins' {ip}")
# 检查是否存在未授权访问
script_url = f"{url}script"
script_response = requests.get(script_url, headers=headers, timeout=5)
if script_response.status_code == 200:
print(f"[!] '存在潜在的未经授权的访问' {script_url}")
else:
print(f"[-] '不存在未经授权的访问' {script_url}")
else:
print(f"[-] '未发现Jenkins' {ip}")
except requests.RequestException as e:
print(f"[!] '访问错误' {ip}: {e}")
# 读取 IP 列表并检测
with open("所在目录的ip集合.txt", "r") as file:
ips = file.readlines()
for ip in ips:
ip = ip.strip()
check_jenkins(ip)
好啦,以上就是有关本文的内容了,希望对你有所帮助咯。