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)验证是否可正常连接,避免因字典误报导致无效操作。
相关推荐
紫丁香4 小时前
Postman 自动化测试完全指南2
测试工具·postman
Jianghong Jian5 小时前
Hashcat:强大的密码恢复与安全测试工具
测试工具·安全·密码学
椰椰椰耶5 小时前
接口性能测试:Postman与Fiddler双剑合璧
测试工具·fiddler·postman
我的xiaodoujiao8 小时前
3、API 接口自动化测试详细图文教程学习系列3--相关Python基础知识2
python·学习·测试工具·pytest
小陈的进阶之路10 小时前
接口测试分析及用例设计
测试工具
123过去10 小时前
impacket-mssqlclient使用教程
linux·测试工具·安全
Saniffer_SH11 小时前
【高清视频】实验室搭建PCIe 6.0测试环境需要的retimer卡介绍
服务器·驱动开发·测试工具·fpga开发·计算机外设·硬件架构·压力测试