sidguess使用教程

sidguess是Kali Linux中一款专门针对Oracle数据库的SID(System Identifier,系统标识符)猜解工具。在Oracle数据库环境中,SID是区分不同数据库实例的关键标识,只有获取正确的SID,才能建立有效的数据库连接并进行后续操作(如登录、数据查询等)。

该工具通过"字典爆破"的方式,向目标Oracle服务器(默认监听1521端口)发送包含不同SID的请求,根据服务器的响应判断SID是否存在,最终从字典文件中筛选出正确的Oracle数据库SID。它在Oracle数据库渗透测试的初始信息收集阶段至关重要,是突破Oracle数据库认证边界的基础工具之一。

二、sidguess参数说明

参数 英文说明 中文说明 是否必填
-i <ip> Specify the target Oracle server IP address 指定目标Oracle服务器的IP地址,是猜解的核心目标对象
-d <dictionary> Specify the dictionary file containing possible SIDs 指定包含可能SID的字典文件,工具将从该文件中读取SID进行爆破
-p <portnr> Use specific port (default 1521) 指定目标Oracle服务器的监听端口,默认端口为1521(Oracle默认监听端口)
-r <report> Report to file 将猜解结果保存到指定的报告文件中,避免结果丢失或便于后续分析
-m <mode> findfirst OR findall (default) 指定猜解模式: 1. findfirst:找到第一个有效SID后立即停止猜解 2. findall(默认):遍历整个字典,找出所有有效SID

三、sidguess工具使用教程

1. 工具准备

sidguess通常预装在Kali Linux中,可直接通过命令行调用。若未安装,可通过以下命令安装(依赖Kali官方仓库):

sudo apt update && sudo apt install sidguess

验证安装:执行sidguess -h,若显示参数说明列表,则安装成功。

字典准备:Kali Linux默认提供Oracle SID字典,路径通常为/usr/share/wordlists/oracle/sids.txt;也可自行下载或制作更全面的SID字典(如包含目标业务相关的自定义SID)。

2. 基础猜解场景

场景1:默认端口猜解单个目标(找出所有有效SID)

使用默认端口1521,遍历完整字典,找出目标服务器上所有有效的Oracle SID,并在终端直接输出结果。

sidguess -i 192.168.1.100 -d /usr/share/wordlists/oracle/sids.txt

参数说明:

-i 192.168.1.100:目标Oracle服务器IP

-d :指定默认SID字典路径

默认模式(findall):遍历所有字典条目,输出所有有效SID

场景2:指定端口猜解单个目标(找到第一个有效SID即停止)

若目标Oracle服务器监听非默认端口(如1522),且只需快速获取一个有效SID(用于紧急连接),可指定端口和findfirst模式。

sidguess -i 192.168.1.101 -d /usr/share/wordlists/oracle/sids.txt -p 1522 -m findfirst

参数说明:

-p 1522:指定目标端口为1522

-m findfirst:找到第一个有效SID后立即停止,节省时间

3. 结果保存与分析场景

场景1:将猜解结果保存到报告文件

在批量猜解或需要留存证据时,通过-r参数将结果保存到文件(如sid_result.txt),便于后续查看或分享。

sidguess -i 192.168.1.100 -d /usr/share/wordlists/oracle/sids.txt -r sid_result.txt

查看结果:执行cat sid_result.txt,文件中会记录有效SID、猜解时间、目标IP和端口等信息。

场景2:结合自定义字典猜解(针对特定业务)

若已知目标业务相关信息(如公司名、项目名),可制作自定义SID字典(如custom_sids.txt),提高猜解准确率(例如包含"ORCL_PROD""ERP_DB"等业务相关SID)。

自定义字典(custom_sids.txt)内容示例:

ORCL

XE

ORCL_PROD

ERP_DB

DEV_DB

执行猜解命令:sidguess -i 192.168.1.102 -d ./custom_sids.txt -r custom_sid_result.txt

4. 进阶使用技巧

技巧1:结合端口扫描确认监听状态

在猜解前,先通过nmap确认目标端口是否开放,避免无效猜解:
nmap -p 1521,1522 192.168.1.100

若端口显示"open",再执行sidguess;若"closed",则需先排查网络连通性或目标服务器状态。

技巧2:批量目标猜解(结合脚本)

若需对多个目标IP进行SID猜解,可编写简单Shell脚本(如batch_sidguess.sh)批量执行:

#!/bin/bash
`

批量SID猜解脚本,目标IP列表存于target_ips.txt`

while read ip; do
echo "开始猜解目标IP:$ip"
sidguess -i $ip -d /usr/share/wordlists/oracle/sids.txt -p 1521 -r "sid_$ip.txt"
done < target_ips.txt

使用方法:

  1. 创建target_ips.txt,每行写入一个目标IP

  2. 赋予脚本执行权限:chmod +x batch_sidguess.sh

  3. 执行脚本:./batch_sidguess.sh

  4. 结果会按IP分别保存为"sid_192.168.1.100.txt"等文件

四、注意事项

  • 法律合规:必须获得目标系统的合法授权后使用,未经允许的SID猜解属于非法入侵行为,需承担法律责任。
  • 字典选择:字典的完整性直接影响猜解成功率,建议优先使用Kali默认Oracle SID字典,或结合目标业务制作自定义字典。
  • 网络影响:频繁的猜解请求可能触发目标服务器的防护机制(如防火墙拦截、监听器限流),建议控制猜解频率,避免被阻断。
  • 版本兼容性:sidguess主要针对Oracle 11g及以下版本,部分高版本Oracle(如12c+)可能因监听器配置(如动态注册、访问控制)导致猜解失败,需结合其他工具(如oscanner)辅助验证。
  • 结果验证:猜解出的SID需通过Oracle客户端(如sqlplus、impacket-mssqlclient)验证是否可正常连接,避免因字典误报导致无效操作。
相关推荐
测试19985 小时前
软件测试 - 单元测试总结
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
影sir7 小时前
Selenium常用函数(等待)
selenium·测试工具
影sir7 小时前
Selenium常用函数(浏览器导航,文件上传,浏览器参数设置)
selenium·测试工具
德思特1 天前
通过 Wireshark 抓取串口命令
网络协议·测试工具·wireshark
影sir2 天前
Selenium常用函数(窗口与弹窗)
selenium·测试工具
Luminbox紫创测控2 天前
基于环境舱的新能源汽车三高试验方法与热响应评估
大数据·人工智能·测试工具·汽车·安全性测试·测试标准
菠萝猫yena3 天前
【读书笔记】《测试架构师修炼之道》读书笔记
功能测试·测试工具·单元测试
PhotonixBay3 天前
金属增材制造表面测量:共聚焦显微镜参数优化实践
人工智能·测试工具·制造
LT10157974443 天前
2026年 AI+RPA平台选型指南:智能自动化高效落地
测试工具