
공격적 정찰 및 사후 침투를 위해 설계된 C# MS SQL 툴킷.
SQLRecon은 공격적 정찰 및 사후 침투를 위해 설계된 Microsoft SQL Server 툴킷입니다. 각 기술의 사용 방법에 대한 자세한 내용은 wiki를 참조하세요.
SQLRecon 사본은 releases 페이지에서 다운로드할 수 있습니다. 또는 직접 솔루션을 컴파일해도 됩니다. 이는 저장소를 클론하고 솔루션 파일을 더블 클릭한 후 빌드하는 것만큼 간단합니다.
방어자를 위한 예방, 탐지 및 완화 가이드도 제공됩니다.
IBM Security Intelligence 웹사이트에서 내 블로그 게시물을 확인하세요. 동영상을 선호한다면 Black Hat 발표도 확인해 보세요.
열거 모듈은 인증 제공자가 필요하지 않습니다. 이러한 모듈은 열거 모듈 플래그(/e:, /enum:)에 전달되어야 합니다. 위키에는 열거 모듈 사용에 대한 자세한 내용이 있습니다.```
Info - Show information about the SQL server.
/h:, /host -> SQL server hostname or IP. Multiple hosts supported.
/port: -> (OPTIONAL) Defaults to 1434 (UDP).
/t:, timeout: -> (OPTIONAL) Defaults to 3s.
SqlSpns - Use the current user token to enumerate the AD domain for MSSQL SPNs. /d:, /domain: -> (OPTIONAL) NETBIOS name or FQDN of domain.
# 인증 제공자
SQLRecon은 Microsoft SQL Server와 상호 작용할 수 있도록 다양한 인증 제공자(`/a:, /auth:`)를 지원합니다.```
WinToken - Use the current users token to authenticate against the SQL database
/h:, /host: -> SQL server hostname or IP
WinDomain - Use AD credentials to authenticate against the SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> NETBIOS name or FQDN of domain.
/u:, /username: -> Username for domain user.
/p:, /password: -> Password for domain user.
Local - Use local SQL credentials to authenticate against the SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/u:, /username: -> Username for local SQL user.
/p:, /password: -> Password for local SQL user.
EntraID - Use Azure EntraID credentials to authenticate against the Azure SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> FQDN of domain (DOMAIN.COM).
/u:, /username: -> Username for domain user.
/p:, /password: -> Password for domain user.
AzureLocal - Use local SQL credentials to authenticate against the Azure SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/u:, /username: -> Username for local SQL user.
/p:, /password: -> Password for local SQL user.
Pth - Authenticate using an NT hash (pass-the-hash) over raw TDS/NTLM. Elevated privileges or SeImpersonate is not required.
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> NETBIOS domain name.
/u:, /username: -> Domain username.
/hash: -> NT hash (32 hex chars, 8846f7eaee8fb117ad06bdd830b7586c) or LM:NT format.
/h:, host:)는 필수이며 하나 이상의 SQL 서버를 허용합니다. 여러 SQL 서버에 대해 모듈을 실행하려면 호스트를 쉼표로 구분하십시오(예: /h:SQL01,10.10.10.2,SQL03).master 데이터베이스에 연결되지만, 데이터베이스(/database:) 플래그를 통해 사용자 정의 데이터베이스 이름을 지정하여 선택적으로 변경할 수 있습니다./debug 플래그는 선택 사항이며, 원격 호스트에서 실제로 실행하지 않고 모듈에 의해 실행되는 모든 SQL 쿼리를 표시합니다. 이에 대한 예제는 wiki에서 확인할 수 있습니다.1433을 통해 데이터베이스에 연결되지만, /port: 플래그를 사용하여 선택적으로 변경할 수 있습니다.3초이지만, 시간 제한 값(/t:, /timeout:)을 제공하여 연결 시도를 종료하기 전의 시간(초)을 선택적으로 변경할 수 있습니다./v, /verbose 플래그는 선택 사항이며, 원격 호스트에서 실행하기 전에 모듈에 의해 실행되는 모든 SQL 쿼리를 표시합니다. 이에 대한 예제는 wiki에서 확인할 수 있습니다.EntraID 인증 공급자는 SQLRecon이 실행되는 시스템에 Azure Active Directory Authentication Library(ADAL) 또는 Microsoft Authentication Library(MSAL)가 존재해야 합니다. 이는 Azure EntraID 인증 및 권한 부여 기능을 위한 것입니다.
SQL 모듈은 하나 이상의 Microsoft SQL Server 인스턴스에 대해 실행됩니다. 이러한 모듈은 모듈 플래그(/m:, /module:)에 전달되어야 합니다.