Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SQLRecon — 공격적 정찰 및 사후 침투(포스트 익스플로잇)를 위해 설계된 C# MS SQL 툴킷입니다. | Kitploit
도구/GitHubGitHub/xforcered/sqlrecon
Privilege EscalationReconnaissancePassword AttacksExploitationLateral MovementPost-ExploitationPenetration TestingRed TeamingDatabase Security
GitHubxforcered/sqlrecon

SQLRecon

공격적 정찰 및 사후 침투(포스트 익스플로잇)를 위해 설계된 C# MS SQL 툴킷입니다.

3993891년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

  licence badge wiki Badge stars badge forks badge issues badge

SQLRecon

SQLRecon은 공격적 정찰 및 사후 침투를 위해 설계된 Microsoft SQL Server 툴킷입니다. 각 기법을 사용하는 방법에 대한 자세한 내용은 위키를 참조하세요.

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.

root@kitploit:~
# 인증 공급자

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.

인증 공급자 - 추가 세부 정보

  • 호스트: 호스트 플래그(/h:, host:)는 필수이며 하나 이상의 SQL 서버를 지정할 수 있습니다. 여러 SQL 서버에 대해 모듈을 실행하려면 호스트를 쉼표로 구분하세요. 예: /h:SQL01,10.10.10.2,SQL03.
  • 데이터베이스: SQLRecon은 기본적으로 master 데이터베이스에 연결되지만, 데이터베이스(/database:) 플래그를 통해 사용자 지정 데이터베이스 이름을 제공하여 선택적으로 변경할 수 있습니다.
  • 디버그: /debug 플래그는 선택 사항이며, 원격 호스트에서 실제로 실행하지 않고 모듈이 실행하는 모든 SQL 쿼리를 표시합니다. 이에 대한 예는 위키에서 확인할 수 있습니다.
  • 포트: 경우에 따라 Microsoft SQL Server가 표준 TCP 포트에서 수신 대기하지 않을 수 있습니다. 예를 들어 Microsoft SQL Server 장애 조치(failover) 클러스터링 또는 동적 TCP 포트가 있습니다. SQLRecon은 기본적으로 TCP 포트 1433을 통해 데이터베이스에 연결되지만, /port: 플래그를 사용하여 선택적으로 변경할 수 있습니다.
  • 시간 제한: 기본 SQL 데이터베이스 연결 시간은 3초이지만, 연결 시도를 종료하기 전의 시간(초)에 해당하는 시간 제한 값(/t:, /timeout:)을 제공하여 선택적으로 변경할 수 있습니다.
  • 자세한 출력: /v, /verbose 플래그는 선택 사항이며, 원격 호스트에서 실행하기 전에 모듈이 실행할 모든 SQL 쿼리를 표시합니다. 이에 대한 예는 위키에서 확인할 수 있습니다.

EntraID 인증 공급자를 사용하려면 SQLRecon이 실행되는 시스템에 Azure Active Directory 인증 라이브러리(ADAL) 또는 Microsoft 인증 라이브러리(MSAL)가 있어야 합니다. 이는 Azure EntraID 인증 및 권한 부여 기능을 위한 것입니다.

SQL 모듈

SQL 모듈은 하나 이상의 Microsoft SQL Server 인스턴스를 대상으로 실행됩니다. 이러한 모듈은 모듈 플래그(/m:, /module:)에 전달되어야 합니다.

SQL 모듈 - 표준

호스트 플래그(/h:, host:)는 필수이며 하나 이상의 SQL 서버를 지정할 수 있습니다. 여러 SQL 서버에 대해 모듈을 실행하려면 호스트를 쉼표로 구분하세요. 예: /h:SQL01,10.10.10.2,SQL03.

위키에는 하나 이상의 SQL Server 인스턴스에서 실행을 지원하는 각 모듈 사용에 대한 자세한 내용이 있습니다.

SQL 모듈 - 가장

가장 모듈은 가장된 SQL 사용자의 컨텍스트에서 하나 이상의 Microsoft SQL Server 인스턴스를 대상으로 실행됩니다. 모든 가장 모듈에는 다음과 같은 최소 요구 사항이 있습니다:

  • 가장 사용자를 지정해야 합니다(/i:, /iuser:).
  • 가장을 지원하는 모듈을 지정해야 합니다(/m:, /module:).

위키에는 가장을 사용한 실행을 지원하는 각 모듈 사용에 대한 자세한 내용이 있습니다.

SQL 모듈 - 연결됨

연결된 모듈은 연결된 Microsoft SQL Server의 하나 이상의 인스턴스에서 실행됩니다. 모든 연결된 모듈에는 다음과 같은 최소 요구 사항이 있습니다:

  • 연결된 SQL 서버를 지정해야 합니다(/l:, /link:). 링크 플래그는 하나 이상의 연결된 SQL 서버를 허용합니다. 예를 들어, SQL01에 SQL02에 대한 링크가 있고 SQL01에 DB04에 대한 링크가 있는 경우 연결된 호스트를 쉼표로 구분할 수 있으며 각 연결된 SQL 서버에서 모듈이 실행됩니다. 예: /l:SQL02,DB04.
  • 연결된 실행을 지원하는 모듈을 지정해야 합니다(/m:, /module:).

위키에는 하나 이상의 연결된 SQL Server 인스턴스에서 실행을 지원하는 각 모듈 사용에 대한 자세한 내용이 있습니다.

SQL 모듈 - 연결 체인

연결 체인 모듈은 연결된 서버 체인의 마지막 Microsoft SQL Server에서 실행됩니다. 모든 연결 체인 모듈에는 다음과 같은 최소 요구 사항이 있습니다:

  • /l:, /link: 플래그에 연결된 SQL 서버 체인을 지정해야 합니다. SQL01에 SQL02에 대한 링크가 있고 SQL02에 PAYMENTS01에 대한 링크가 있으며 PAYMENTS01에서 모듈을 실행하려면 인수는 /l:SQL02,PAYMENTS01이 됩니다.
  • 제공된 연결 체인의 마지막 SQL 서버를 대상으로 모듈을 실행하려면 /chain 플래그를 포함해야 합니다.
  • 연결 체인 실행을 지원하는 모듈을 지정해야 합니다(/m:, /module:).

위키에는 연결된 SQL Server 체인에서 제공된 마지막 SQL 서버에 대한 실행을 지원하는 각 모듈 사용에 대한 자세한 내용이 있습니다.

SCCM 모듈

SQLRecon에는 Microsoft System Center Configuration Manager(SCCM) 및 Microsoft Endpoint Configuration Manager(ECM)를 열거하고 공격하는 데 도움이 되는 여러 모듈이 있습니다. SCCM 또는 ECM 서버에는 로컬 또는 원격으로 노출된 Microsoft SQL 데이터베이스가 있어야 합니다.

SCCM 모듈은 SCCM 모듈 플래그(/s:, /sccm:)에 전달되어야 합니다.

대부분의 SCCM 모듈은 가장된 SQL 사용자의 컨텍스트(/i:, /iuser:)에서 실행할 수 있습니다.

위키에는 SCCM/ECM 데이터베이스에 대해 각 모듈을 사용하는 방법에 대한 자세한 내용이 있습니다.

SCCM 모듈 - 추가 세부 정보
  • Users 모듈은 RBAC_Admins 테이블의 모든 사용자를 나열합니다. 이들은 SCCM에 대해 어느 정도의 액세스 권한으로 구성된 모든 사용자입니다.
  • Sites 모듈은 SCCM 데이터베이스의 DPInfo 테이블에 데이터가 저장된 다른 모든 사이트를 나열합니다. 서로 다른 사이트가 서로 다른(안전하지 않은) 방식으로 구성될 수 있으므로 추가 공격 경로를 제공할 수 있습니다.
  • Logons 모듈은 Computer_System_DATA 테이블을 쿼리하여 연결된 모든 SCCM 클라이언트와 마지막으로 로그인한 사용자를 검색합니다. 참고: 기본적으로 일주일에 한 번만 업데이트되므로 100% 최신 상태가 아닐 수 있습니다. /option:을 선택적(필수 아님) 인수로 사용하여 SCCM 클라이언트를 필터링합니다.
  • TaskList 모듈은 SCCM 데이터베이스에 저장된 모든 작업 순서 목록을 제공하지만 실제 작업 데이터 내용에는 접근하지 않습니다.
  • TaskData 모듈은 SCCM 데이터베이스에 저장된 모든 작업 순서를 복구하고 평문으로 복호화합니다. 작업 순서에는 시스템을 도메인에 가입시키기 위한 자격 증명, 공유 매핑, 명령 실행 등이 포함될 수 있습니다.
  • Credentials 모듈은 다양한 기능에 사용하기 위해 SCCM이 보관한 자격 증명을 나열합니다. 이 자격 증명은 키가 SCCM 서버에 저장되어 있으므로 원격으로 복호화할 수 없습니다. 그러나 이 모듈은 키 획득을 시도하는 것이 타당한지에 대한 정보를 제공합니다.
  • DecryptCredentials 모듈은 복구된 SCCM 자격 증명 blob을 복호화하려고 시도합니다. 이 모듈은 SCCM 서버에서 높은 무결성 또는 SYSTEM 프로세스로 실행되어야 합니다.

SQLRecon 확장

SQLRecon 확장에 관심이 있다면 위키의 기여 및 확장 섹션을 참조하세요.

제안이나 아이디어가 있으면 이슈를 열어 주시기 바랍니다.

로드맵

목표는 SQLRecon을 지속적으로 개선하는 것입니다. 아래에는 계획된 연구 영역이 나열되어 있습니다:

  • NTLM 해시 기반 인증 지원 구현.
  • 연결된 SQL 서버 및 링크 체인 SQL 서버에 대한 enablerpc/disablerpc 기능 탐구.

크레딧

다음 사람들은 SQLRecon의 다양한 측면에 직간접적으로 기여했습니다.

  • Adam Chester (xpn)
  • Azaël Martin (n3rada)
  • Daniel Duggan (rasta-mouse)
  • Dave Cossa (G0ldenGunSec)
  • Dwight Hohnstein (djhohnstein)
  • Joshua Magri (passthehashbrowns)

변경 이력

v3.9
  • whoami 모듈에 사용자가 액세스할 수 있는 데이터베이스를 추가했습니다(JBalanza).
  • adsi 모듈에서 LDAP 서버를 msdb 데이터베이스에 추가할 필요가 없는 문제를 수정했으며, 생성된 함수가 이제 올바르게 삭제됩니다.
  • 제공된 호스트 이름이 FQDN인 경우 AT 문이 있는 RPC 쿼리가 대상 서버에서 실패하는 문제를 수정했습니다.
  • README를 업데이트했습니다.
  • 위키를 업데이트했습니다.
v3.8
  • SQL Server 2016 이하에서 CLR 어셈블리 실행을 지원하는 로직을 추가했습니다. 이는 clr 모듈을 위한 것입니다. 모든 컨텍스트에서 실행이 지원됩니다.
  • SQL Server 2016 이하에서 LDAP 서버 CLR 어셈블리를 로드하는 로직을 추가했습니다. 이는 adsi 모듈을 위한 것입니다. 모든 컨텍스트에서 실행이 지원됩니다.
  • README를 업데이트했습니다.
  • 위키를 업데이트했습니다.
v3.7
  • 코드 베이스 전체 리팩토링.
  • 문서(코드 주석, README, 위키) 업데이트.
  • 연결된 SQL 서버 체인에 대한 실행. 예를 들어 SQL01에 SQL02에 대한 링크가 있고, SQL02에 SQL03에 대한 링크가 있고, SQL03에 PAYMENTS01에 대한 링크가 있는 경우. 이제 연결된 서버 체인(/link:SQL02,SQL03,PAYMENTS01 /chain)을 사용하여 SQL01에서 PAYMENTS01에 명령을 실행할 수 있습니다. Azaël Martin(n3rada)에게 감사드립니다.
  • 'l' 및 'i' 모듈을 제거하고 표준, 가장, 연결 및 체인 실행에서 모듈 이름이 동일할 수 있도록 컨텍스트 로직을 도입했습니다.
  • 모든 연결된 모듈에 체인 지원을 추가했습니다.
  • 디버그(/debug) 지원을 추가했습니다. 이는 모듈이 실행할 모든 SQL 쿼리와 다양한 디버깅 정보를 실행하지 않고 표시합니다.
  • 자세한 출력(/verbose, /v)을 추가했습니다. 모듈 실행 중에 실행될 모든 SQL 쿼리를 표시합니다.
v3.6
  • /host 또는 /h 플래그에 제공된 여러 SQL 서버에 대한 실행이 이제 쉼표로 구분된 값을 사용하여 지원됩니다.
  • /link 또는 /l 플래그에 제공된 여러 연결된 SQL 서버에 대한 실행이 이제 쉼표로 구분된 값을 사용하여 지원됩니다.
  • /lhost를 /link로 변경했습니다.
  • 's' 모듈을 제거하고 SCCM 모듈용 /s, /sccm 스위치를 만들었습니다.
  • DecryptCredentials를 제외한 모든 SCCM 모듈에 가장 지원을 추가했습니다.
  • info라는 새 열거(/enum) 모듈을 추가했습니다. 인증되지 않은 컨텍스트를 사용하여 UDP 프로토콜을 통해 인스턴스 이름과 TCP 포트를 포함한 SQL Server 정보를 얻을 수 있습니다.
  • 단순화와 확장성을 촉진하기 위해 인수 로직을 ModuleHandler.cs 내의 개별 메서드로 이동했습니다.
  • 모든 SQL 쿼리를 Queries.cs로 이동했습니다.
v3.5
  • 연결된 adsi 실행이 LDAP 서버를 제거하지 않던 버그를 수정했습니다.
  • 연결된 adsi에서 에이전트 작업 실행을 제거하고 openquery/rpc를 사용하도록 변경했습니다.
  • adsi 모듈에서 /lhost를 /adsi로 변경했습니다.
  • smb 모듈에서 /rhost를 /unc로 변경했습니다.
  • CaptureHash.cs를 제거하고 로직을 단순화했습니다.
  • SetEnumerationType.cs를 제거하고 로직을 단순화했습니다.
  • Impersonation.cs를 Impersonate.cs로 이름을 변경했습니다.
  • OleCmdExec.cs를 OleAutomation.cs로 이름을 변경했습니다.
v3.4
  • smb 모듈에 가장 지원을 추가했습니다.
  • info 모듈에 가장 지원을 추가했습니다.
  • info 모듈에 연결 지원을 추가했습니다.
v3.3
  • rows, iRows 및 lRows 모듈을 만들었습니다.
  • 선택적 필터를 포함하도록 sLogons를 업데이트했습니다.
  • xp_cmdshell 모듈이 명령 출력을 콘솔에 출력하지 않던 버그를 수정했습니다.
  • 도움말 메뉴를 정리했습니다.
v3.2
  • 명령줄 인수 구문 분석 정비.
  • 새 예제로 README, 테스트 사례 및 위키를 업데이트했습니다.
  • 열거 및 인증 기반 인수 구문 분석을 재작업했습니다.
  • SetEnumerationType.cs를 만들었습니다.
  • 열거 모듈 domain을 SqlSpns로 변경했습니다.
v3.1* `SetAuthenticationType.cs` 생성자를 `EvaluateAuthenticationType`이라는 새 메서드로 변경했습니다. * SQLRecon이 여러 개의 동시 SQL 연결 개체를 지원하도록 확장하는 `CreateSqlConnectionObject`를 `SetAuthenticationType.cs`에 생성했습니다. * [여기](https://www.tarlogic.com/blog/linked-servers-adsi-passwords/)에 설명된 대로 ADSI 자격 증명 공격을 통합한 `ADSI.cs`를 생성했습니다. * `adsi`, `iAdsi`, `lAdsi` 모듈을 생성했습니다. * `lLinks` 및 `iLinks` 모듈을 생성했습니다. * 새 예제로 README, 테스트 케이스 및 위키를 업데이트했습니다.
v3.0
  • 존재하지 않는 가장된 사용자에 대한 오류 검사를 구현했습니다.
  • ExecuteImpersonationQuery와 ExecuteImpersonationCustomQuery를 생성했습니다.
  • Impersonate.cs를 삭제했습니다.
  • checkRpc 모듈을 추가했습니다.
  • iCheckRpc 모듈을 추가했습니다.
  • lCheckRpc 모듈을 추가했습니다.
  • SCCM 모듈을 재작업했습니다.
  • SCCM 인수 구문 분석을 재작업했습니다.
  • 가독성을 위해 도움말 메뉴의 명령어를 카멜 케이스로 변경했습니다.
  • 새 모듈로 테스트를 업데이트했습니다.
v2.9
  • EnableDisable.cs를 ConfigureOptions.cs로 이름을 변경했습니다.
  • 고급 옵션 구성을 대대적으로 개편했습니다.
  • ExecuteLinkedCustomQueryRpcExec가 호출되는 모든 곳에 RPC 오류 검사를 구현했습니다.
v2.8
  • 표준화된 출력을 위한 인쇄 클래스를 구현하는 PrintUtils.cs를 생성했습니다.
  • TablePrinter를 Help.cs에서 PrintUtils.cs로 이동했습니다.
  • PrintUtils 클래스를 사용하여 모든 콘솔 출력의 인쇄 형식을 표준화했습니다.
  • 클래스 및 클래스 변수의 접근 한정자를 변경했습니다.
  • 결과가 비어 있는지 확인하는 검사를 추가했습니다:
    • query
    • search
    • tables
    • lColumns
    • lQuery
    • lSearch
    • lTables
    • iColumns
    • iQuery
v2.7
  • Azure 인증을 AzureAD로 변경했습니다.
  • AzureLocal 인증을 생성했습니다.
  • disableRpc 모듈을 추가했습니다.
  • enableRpc 모듈을 추가했습니다.
  • iEnableRpc 모듈을 추가했습니다.
  • iDisableRpc 모듈을 추가했습니다.
  • lEnableRpc 모듈을 제거했습니다.
  • lDisbleRpc 모듈을 제거했습니다.
  • 새 모듈로 테스트를 업데이트했습니다.
v2.6.1
  • lAgentCmd 버그 수정.
  • 저장 프로시저를 생성할 때 SqlCommand.ExecuteNonQuery를 사용하여 clr, iClr 및 lClr 안정성을 수정했습니다.
  • 생성된 어셈블리나 저장 프로시저를 제거하지 않던 lClr 버그를 수정했습니다.
v2.6
  • columns 모듈을 추가했습니다.
  • iColumns 모듈을 추가했습니다.
  • iDatabases 모듈을 추가했습니다.
  • iSearch 모듈을 추가했습니다.
  • iTables 모듈을 추가했습니다.
  • lColumns 모듈을 추가했습니다.
  • lSearch 모듈을 추가했습니다.
v2.5
  • SCCM 모듈의 다양한 버그를 수정했습니다.
  • 표를 사용하여 도움말 메뉴를 정리했습니다.
  • ExecuteLinkedCustomQueryRpcExec가 제공하는 출력을 개선했습니다.
  • 전반적인 코드 주석을 개선했습니다.
  • 명령 실행 함수 전반에 걸쳐 메서드 이름의 일관성을 개선했습니다.
  • 객체 지향 프로그래밍을 더 잘 활용하여 모듈성을 개선했습니다.
  • 사용자 지정 SQL 서버 포트 플래그를 x로 변경했습니다.
  • Random.cs를 utilities 디렉터리로 이동했습니다.
  • 모든 모듈에서 더 일관되도록 인쇄 스타일을 표준화했습니다.
  • 표준, 가장 및 연결 테스트 하네스를 생성했습니다.
v2.4
  • Windows 인증을 WinToken으로 변경했습니다.
  • 가장을 통한 인증에 AD 도메인 사용자 이름과 비밀번호를 사용하는 WinDomain 인증을 생성했습니다. Impersonation.cs를 확인하세요.
  • ArgumentLogic.cs, SQLAuthentication.cs 및 ModuleHandler.cs 전반의 인수 구문 분석과 처리를 재작업했습니다.
  • ModuleHandler.cs는 더 이상 모듈을 실행하기 위해 거대한 if/else if/else 문을 사용하지 않습니다. 대신 이제 리플렉션을 사용하여 명령 모듈 이름과 일치하는 메서드를 호출합니다.
  • 프로그램 전체에서 사용되는 전역 변수가 있는 commands 디렉터리를 추가했습니다.
  • 모든 인증 공급자를 SQLAuthentication.cs로 통합했습니다.
  • 인수 구문 분석을 Program.cs에서 ArgumentLogic.cs로 이동했습니다.
  • authentication 디렉터리를 제거했습니다.
v2.3
  • SCCM 기능을 추가했습니다.
  • sccm 명령으로 실행할 수 있는 SCCM 모듈을 추가했습니다.
  • 연결된 SQL 서버에서 RPC 상태를 확인하는 문제를 수정했습니다.
  • HTTP/S를 통해 .NET 어셈블리를 다운로드하는 기능을 추가했습니다.
v2.2
  • roles, iRoles 및 lRoles 모듈에서 쿼리하는 역할을 확장했습니다.
  • users, iUsers 및 lUsers 모듈을 생성했습니다.
  • clr 및 iClr 모듈에서 sp_drop_trusted_assembly의 해시가 삭제되지 않던 문제를 수정했습니다.
  • lAgentCmd 모듈을 생성했습니다.
  • lClr 모듈을 생성했습니다.
v2.1.6
  • info 모듈을 추가했습니다.
  • 도움말 메뉴를 수정했습니다.
  • Local 및 Azure 인증에서 필수 인수 관련 문제를 해결했습니다.
v2.1.5
  • 도메인 SPN을 열거하는 모듈을 추가했습니다 (-e domain).
v2.1.4
  • 사소한 문자열 형식 문제를 수정했습니다.
v2.1.3
  • 비표준 TCP 포트를 지정할 수 있도록 Windows 및 Local 인증 모드에 -r 플래그를 추가했습니다.
v2.1.2
  • null 연결 문자열 관련 로직을 개선했습니다.
v2.1.1
  • TestAuthentication.cs에서 Environment.Exit를 제거했습니다.
v2.1
  • AgentJobs.cs를 생성했습니다.
  • agentStatus를 생성했습니다.
  • iAgentStatus를 생성했습니다.
  • lAgentStatus를 생성했습니다.
  • agentCmd를 생성했습니다.
  • iAgentCmd를 생성했습니다.
v2.0
  • clr을 생성했습니다.
  • iEnableClr을 생성했습니다.
  • iDisbleClr을 생성했습니다.
  • iClr을 생성했습니다.
  • iWhoami를 생성했습니다.
  • iMapped를 생성했습니다.
  • iRoles를 생성했습니다.
  • lEnableRpc를 생성했습니다.
  • lDisableRpc를 생성했습니다.
  • lWhoai를 생성했습니다.
  • lEnableXp를 생성했습니다.
  • lDisableXp를 생성했습니다.
  • lEnableOle를 생성했습니다.
  • lDisableOle를 생성했습니다.
v1.2
  • lSmb 모듈을 생성했습니다.
  • lWhoami 모듈을 생성했습니다.
  • lRoles 모듈을 생성했습니다.
v1.1
  • oldCmd 모듈을 수정했습니다.
  • iOleCmd 모듈을 수정했습니다.
  • lDatabases 모듈을 수정했습니다.
  • lTables 모듈을 수정했습니다.
  • 코드 베이스를 정리했습니다.
  • 도움말 메뉴의 불일치를 수정했습니다.
도구 다운로드
모듈 이름설명가장연결된 실행연결 체인 실행권한 있는 컨텍스트 필요
CheckRpc연결된 서버 목록과 해당 RPC 상태를 가져옵니다.✅✅✅❎
Databases모든 데이터베이스를 표시합니다.✅✅✅❎
Impersonate가장할 수 있는 사용자 계정을 열거합니다.✅✅✅❎
InfoSQL 서버에 대한 정보를 표시합니다.✅✅✅❎
Links연결된 SQL 서버를 열거합니다.✅✅✅❎
Users데이터베이스에 인증할 수 있는 사용자 계정과 그룹을 표시합니다.✅✅✅❎
Whoami사용자의 권한을 표시합니다.✅✅✅❎
Query /c:QUERYSQL 쿼리를 실행합니다.✅✅✅❎
Smb /unc:UNC_PATHNetNTLMv2 해시를 캡처합니다.✅✅✅❎
Columns /db:DATABASE /table:TABLE지정된 데이터베이스와 테이블의 모든 열을 표시합니다.✅✅✅❎
Rows /db:DATABASE /table:TABLE지정된 데이터베이스 테이블의 행 수를 표시합니다.✅✅✅❎
Search /keyword:KEYWORD연결된 데이터베이스의 지정된 테이블에서 열 이름을 검색합니다.✅✅✅❎
Tables /db:DATABASE지정된 데이터베이스의 모든 테이블을 표시합니다.✅✅✅❎
EnableRpc /rhost:LINKED_HOST연결된 서버에서 RPC 및 RPC out을 활성화합니다.✅❌❌✔️
EnableClrCLR 통합을 활성화합니다.✅✅✅✔️
EnableOleOLE 자동화 프로시저를 활성화합니다.✅✅✅✔️
EnableXpxp_cmdshell을 활성화합니다.✅✅✅✔️
DisableRpc /rhost:LINKED_HOST연결된 서버에서 RPC 및 RPC out을 비활성화합니다.✅❌❌✔️
DisableClrCLR 통합을 비활성화합니다.✅✅✅✔️
DisableOleOLE 자동화 프로시저를 비활성화합니다.✅✅✅✔️
DisableXpxp_cmdshell을 비활성화합니다.✅✅✅✔️
AgentStatusSQL 에이전트가 실행 중인지 표시하고 에이전트 작업을 가져옵니다.✅✅✅✔️
AgentCmd /c:COMMAND에이전트 작업을 사용하여 시스템 명령을 실행합니다.✅✅✅✔️
Adsi /adsi:SERVER_NAME /lport:LOCAL_PORT연결된 ADSI 서버에서 평문 ADSI 자격 증명을 얻습니다.✅✅✅✔️
Clr /dll:DLL /function:FUNCTION사용자 지정 저장 프로시저에서 .NET 어셈블리를 로드하고 실행합니다.✅✅✅✔️
OleCmd /c:COMMAND /subsystem:(OPTIONAL)OLE 자동화 프로시저를 사용하여 시스템 명령을 실행합니다.✅✅✅✔️
XpCmd /c:COMMANDxp_cmdshell을 사용하여 시스템 명령을 실행합니다.✅✅✅✔️
모듈 이름설명가장권한 있는 컨텍스트 필요
Users모든 SCCM 사용자를 표시합니다.✅❎
Sites데이터가 저장된 다른 모든 사이트를 표시합니다.✅❎
Logons연결된 모든 SCCM 클라이언트와 마지막으로 로그인한 사용자를 표시합니다.✅❎
CredentialsSCCM이 보관한 암호화된 자격 증명을 표시합니다.✅❎
TaskList모든 작업 순서를 표시하지만 작업 데이터 내용에는 접근하지 않습니다.✅❎
TaskData모든 작업 순서를 평문으로 복호화합니다.✅❎
DecryptCredentialsSCCM 자격 증명 blob을 복호화합니다. SCCM 서버에서 높은 무결성 또는 SYSTEM 프로세스로 실행해야 합니다.❌✔️
AddAdmin /user:DOMAIN\USERNAME /sid:SID지정된 계정을 SCCM의 '전체 관리자'로 승격합니다.✅✔️
RemoveAdmin /user:ADMIN_ID /remove:STRING사용자의 권한을 제거하거나 SCCM 데이터베이스에서 사용자를 완전히 제거합니다.✅✔️
  • AddAdmin 모듈은 지정된 계정을 SCCM 내에서 '전체 관리자'로 승격합니다. 대상 사용자가 이미 SCCM 사용자인 경우 이 모듈은 대신 승격에 필요한 권한을 추가합니다. 두 개의 인수를 제공합니다. 현재 SQLRecon 프로세스를 실행 중인 사용자를 SCCM의 '전체 관리자'로 추가하려면 /user:current /sid:current를 사용합니다. 다른 사용자를 SCCM의 '전체 관리자'로 추가하려면 해당 도메인 사용자 이름과 전체 SID /user:DOMAIN\USERNAME /sid:S-1-5-...를 지정합니다. 이 모듈은 SCCM 데이터베이스 테이블에 대한 쓰기가 필요하므로 sysadmin 또는 유사한 권한이 필요합니다.
  • RemoveAdmin 모듈은 새로 추가된 사용자를 SCCM 데이터베이스에서 완전히 제거하여 사용자의 권한을 제거합니다. 사용자가 이미 어떤 형태로든 존재했다면 이 모듈은 권한 테이블에 대한 쓰기를 통해 계정에 추가된 세 가지 역할만 제거합니다. 이 명령을 실행하려면 sAddAdmin 명령의 출력에서 제공된 인수를 사용하세요. 이 모듈은 SCCM 데이터베이스 테이블에 대한 쓰기가 필요하므로 sysadmin 또는 유사한 권한이 필요합니다.
  • 시간 제한(/timeout, /t)을 추가했습니다. SQL Server 데이터베이스 연결 시간 제한에 대한 정수 값을 사용합니다.
  • 자세한 정보를 포함하도록 links 모듈을 개선했습니다. Azaël Martin(n3rada)에게 감사드립니다.
  • Windows 보안 주체와 데이터베이스 사용자를 포함하도록 whoami 모듈을 개선했습니다. Azaël Martin(n3rada)에게 감사드립니다.
  • Windows 보안 주체와 데이터베이스 사용자를 포함하도록 impersonation 모듈을 개선했습니다. Azaël Martin(n3rada)에게 감사드립니다.
  • sqlspns 열거 모듈에 IP 주소 검색을 추가했습니다. Azaël Martin(n3rada)에게 감사드립니다.
  • 해당되는 경우 콘솔 출력을 마크다운으로 표준화했습니다. Azaël Martin(n3rada)에게 감사드립니다.
  • /enum:info 모듈에 DNS 지원을 추가했습니다.
  • olecmdexec 모듈에 선택적 /subsystem 인수를 추가했습니다. CmdExec 또는 PowerShell OLE 자동화 하위 시스템을 사용한 실행을 허용합니다.
  • CLI 변경 사항과 새 모듈을 반영하도록 테스트 하네스를 업데이트했습니다.
  • AzureAD 인증을 EntraID로 변경했습니다.
  • EnumerationModules.cs를 만들었습니다.
  • FormatQuery.cs를 만들었습니다.
  • SccmModules.cs를 만들었습니다.
  • ModuleHandler.cs를 SqlModules.cs로 이름을 변경했습니다.
  • PrintUtils.cs를 Print.cs로 이름을 변경했습니다.
  • SQLServerInfo.cs를 Info.cs로 이름을 변경했습니다.
  • iSearch
  • 모든 인증 공급자 및 모듈에 대한 상당한 안정성 및 기능 테스트를 수행했습니다.
  • Microsoft의 C#/.NET 코드 스타일 가이드를 더 잘 따르도록 코드 스타일을 변경했습니다.
  • Help.cs를 메서드에서 생성자로 변경했습니다.
  • CaptureHash.cs를 메서드에서 생성자로 변경했습니다.
  • Impersonate.cs를 메서드에서 생성자로 변경했습니다.
  • 전체 코드 베이스를 리팩터링했습니다.
  • lEnableClr를 생성했습니다.
  • lDisableClr를 생성했습니다.
  • lXpCmd를 생성했습니다.
  • lXpOle를 생성했습니다.
  • Random.cs를 생성했습니다.
  • EnableDisable.cs를 생성했습니다.
  • clr에 대해 무작위로 생성된 어셈블리 이름을 구현했습니다.
  • ole에 대해 무작위로 생성된 변수 및 메서드 이름을 구현했습니다.
  • mapped 및 roles 모듈을 whoami로 통합했습니다.
  • lMapped 및 lRoles 모듈을 lWhoami로 통합했습니다.
  • iMapped 및 iRoles 모듈을 iWhoami로 통합했습니다.
  • 전체 코드 베이스를 리팩터링했습니다.