
공격적 정찰 및 사후 침투(포스트 익스플로잇)를 위해 설계된 C# MS SQL 툴킷입니다.
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.
# 인증 공급자
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.master 데이터베이스에 연결되지만, 데이터베이스(/database:) 플래그를 통해 사용자 지정 데이터베이스 이름을 제공하여 선택적으로 변경할 수 있습니다./debug 플래그는 선택 사항이며, 원격 호스트에서 실제로 실행하지 않고 모듈이 실행하는 모든 SQL 쿼리를 표시합니다. 이에 대한 예는 위키에서 확인할 수 있습니다.1433을 통해 데이터베이스에 연결되지만, /port: 플래그를 사용하여 선택적으로 변경할 수 있습니다.3초이지만, 연결 시도를 종료하기 전의 시간(초)에 해당하는 시간 제한 값(/t:, /timeout:)을 제공하여 선택적으로 변경할 수 있습니다./v, /verbose 플래그는 선택 사항이며, 원격 호스트에서 실행하기 전에 모듈이 실행할 모든 SQL 쿼리를 표시합니다. 이에 대한 예는 위키에서 확인할 수 있습니다.EntraID 인증 공급자를 사용하려면 SQLRecon이 실행되는 시스템에 Azure Active Directory 인증 라이브러리(ADAL) 또는 Microsoft 인증 라이브러리(MSAL)가 있어야 합니다. 이는 Azure EntraID 인증 및 권한 부여 기능을 위한 것입니다.
SQL 모듈은 하나 이상의 Microsoft SQL Server 인스턴스를 대상으로 실행됩니다. 이러한 모듈은 모듈 플래그(/m:, /module:)에 전달되어야 합니다.
호스트 플래그(/h:, host:)는 필수이며 하나 이상의 SQL 서버를 지정할 수 있습니다. 여러 SQL 서버에 대해 모듈을 실행하려면 호스트를 쉼표로 구분하세요. 예: /h:SQL01,10.10.10.2,SQL03.
위키에는 하나 이상의 SQL Server 인스턴스에서 실행을 지원하는 각 모듈 사용에 대한 자세한 내용이 있습니다.
가장 모듈은 가장된 SQL 사용자의 컨텍스트에서 하나 이상의 Microsoft SQL Server 인스턴스를 대상으로 실행됩니다. 모든 가장 모듈에는 다음과 같은 최소 요구 사항이 있습니다:
/i:, /iuser:)./m:, /module:).위키에는 가장을 사용한 실행을 지원하는 각 모듈 사용에 대한 자세한 내용이 있습니다.
연결된 모듈은 연결된 Microsoft SQL Server의 하나 이상의 인스턴스에서 실행됩니다. 모든 연결된 모듈에는 다음과 같은 최소 요구 사항이 있습니다:
/l:, /link:). 링크 플래그는 하나 이상의 연결된 SQL 서버를 허용합니다. 예를 들어, SQL01에 SQL02에 대한 링크가 있고 SQL01에 DB04에 대한 링크가 있는 경우 연결된 호스트를 쉼표로 구분할 수 있으며 각 연결된 SQL 서버에서 모듈이 실행됩니다. 예: /l:SQL02,DB04./m:, /module:).위키에는 하나 이상의 연결된 SQL Server 인스턴스에서 실행을 지원하는 각 모듈 사용에 대한 자세한 내용이 있습니다.
연결 체인 모듈은 연결된 서버 체인의 마지막 Microsoft SQL Server에서 실행됩니다. 모든 연결 체인 모듈에는 다음과 같은 최소 요구 사항이 있습니다:
/l:, /link: 플래그에 연결된 SQL 서버 체인을 지정해야 합니다. SQL01에 SQL02에 대한 링크가 있고 SQL02에 PAYMENTS01에 대한 링크가 있으며 PAYMENTS01에서 모듈을 실행하려면 인수는 /l:SQL02,PAYMENTS01이 됩니다./chain 플래그를 포함해야 합니다./m:, /module:).위키에는 연결된 SQL Server 체인에서 제공된 마지막 SQL 서버에 대한 실행을 지원하는 각 모듈 사용에 대한 자세한 내용이 있습니다.
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 데이터베이스에 대해 각 모듈을 사용하는 방법에 대한 자세한 내용이 있습니다.
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의 다양한 측면에 직간접적으로 기여했습니다.
whoami 모듈에 사용자가 액세스할 수 있는 데이터베이스를 추가했습니다(JBalanza).adsi 모듈에서 LDAP 서버를 msdb 데이터베이스에 추가할 필요가 없는 문제를 수정했으며, 생성된 함수가 이제 올바르게 삭제됩니다.SQL01에 SQL02에 대한 링크가 있고, SQL02에 SQL03에 대한 링크가 있고, SQL03에 PAYMENTS01에 대한 링크가 있는 경우. 이제 연결된 서버 체인(/link:SQL02,SQL03,PAYMENTS01 /chain)을 사용하여 SQL01에서 PAYMENTS01에 명령을 실행할 수 있습니다. Azaël Martin(n3rada)에게 감사드립니다.l' 및 'i' 모듈을 제거하고 표준, 가장, 연결 및 체인 실행에서 모듈 이름이 동일할 수 있도록 컨텍스트 로직을 도입했습니다./debug) 지원을 추가했습니다. 이는 모듈이 실행할 모든 SQL 쿼리와 다양한 디버깅 정보를 실행하지 않고 표시합니다./verbose, /v)을 추가했습니다. 모듈 실행 중에 실행될 모든 SQL 쿼리를 표시합니다./host 또는 /h 플래그에 제공된 여러 SQL 서버에 대한 실행이 이제 쉼표로 구분된 값을 사용하여 지원됩니다./link 또는 /l 플래그에 제공된 여러 연결된 SQL 서버에 대한 실행이 이제 쉼표로 구분된 값을 사용하여 지원됩니다./lhost를 /link로 변경했습니다.s' 모듈을 제거하고 SCCM 모듈용 /s, /sccm 스위치를 만들었습니다.DecryptCredentials를 제외한 모든 SCCM 모듈에 가장 지원을 추가했습니다.info라는 새 열거(/enum) 모듈을 추가했습니다. 인증되지 않은 컨텍스트를 사용하여 UDP 프로토콜을 통해 인스턴스 이름과 TCP 포트를 포함한 SQL Server 정보를 얻을 수 있습니다.ModuleHandler.cs 내의 개별 메서드로 이동했습니다.Queries.cs로 이동했습니다.adsi 실행이 LDAP 서버를 제거하지 않던 버그를 수정했습니다.adsi에서 에이전트 작업 실행을 제거하고 openquery/rpc를 사용하도록 변경했습니다.adsi 모듈에서 /lhost를 /adsi로 변경했습니다.smb 모듈에서 /rhost를 /unc로 변경했습니다.CaptureHash.cs를 제거하고 로직을 단순화했습니다.SetEnumerationType.cs를 제거하고 로직을 단순화했습니다.Impersonation.cs를 Impersonate.cs로 이름을 변경했습니다.OleCmdExec.cs를 OleAutomation.cs로 이름을 변경했습니다.smb 모듈에 가장 지원을 추가했습니다.info 모듈에 가장 지원을 추가했습니다.info 모듈에 연결 지원을 추가했습니다.rows, iRows 및 lRows 모듈을 만들었습니다.sLogons를 업데이트했습니다.xp_cmdshell 모듈이 명령 출력을 콘솔에 출력하지 않던 버그를 수정했습니다.SetEnumerationType.cs를 만들었습니다.domain을 SqlSpns로 변경했습니다.ExecuteImpersonationQuery와 ExecuteImpersonationCustomQuery를 생성했습니다.Impersonate.cs를 삭제했습니다.checkRpc 모듈을 추가했습니다.iCheckRpc 모듈을 추가했습니다.lCheckRpc 모듈을 추가했습니다.EnableDisable.cs를 ConfigureOptions.cs로 이름을 변경했습니다.ExecuteLinkedCustomQueryRpcExec가 호출되는 모든 곳에 RPC 오류 검사를 구현했습니다.PrintUtils.cs를 생성했습니다.TablePrinter를 Help.cs에서 PrintUtils.cs로 이동했습니다.PrintUtils 클래스를 사용하여 모든 콘솔 출력의 인쇄 형식을 표준화했습니다.querysearchtableslColumnslQuerylSearchlTablesiColumnsiQueryAzure 인증을 AzureAD로 변경했습니다.AzureLocal 인증을 생성했습니다.disableRpc 모듈을 추가했습니다.enableRpc 모듈을 추가했습니다.iEnableRpc 모듈을 추가했습니다.iDisableRpc 모듈을 추가했습니다.lEnableRpc 모듈을 제거했습니다.lDisbleRpc 모듈을 제거했습니다.lAgentCmd 버그 수정.SqlCommand.ExecuteNonQuery를 사용하여 clr, iClr 및 lClr 안정성을 수정했습니다.lClr 버그를 수정했습니다.columns 모듈을 추가했습니다.iColumns 모듈을 추가했습니다.iDatabases 모듈을 추가했습니다.iSearch 모듈을 추가했습니다.iTables 모듈을 추가했습니다.lColumns 모듈을 추가했습니다.lSearch 모듈을 추가했습니다.ExecuteLinkedCustomQueryRpcExec가 제공하는 출력을 개선했습니다.x로 변경했습니다.Random.cs를 utilities 디렉터리로 이동했습니다.Windows 인증을 WinToken으로 변경했습니다.WinDomain 인증을 생성했습니다. Impersonation.cs를 확인하세요.ArgumentLogic.cs, SQLAuthentication.cs 및 ModuleHandler.cs 전반의 인수 구문 분석과 처리를 재작업했습니다.ModuleHandler.cs는 더 이상 모듈을 실행하기 위해 거대한 if/else if/else 문을 사용하지 않습니다. 대신 이제 리플렉션을 사용하여 명령 모듈 이름과 일치하는 메서드를 호출합니다.commands 디렉터리를 추가했습니다.SQLAuthentication.cs로 통합했습니다.Program.cs에서 ArgumentLogic.cs로 이동했습니다.authentication 디렉터리를 제거했습니다.sccm 명령으로 실행할 수 있는 SCCM 모듈을 추가했습니다.roles, iRoles 및 lRoles 모듈에서 쿼리하는 역할을 확장했습니다.users, iUsers 및 lUsers 모듈을 생성했습니다.clr 및 iClr 모듈에서 sp_drop_trusted_assembly의 해시가 삭제되지 않던 문제를 수정했습니다.lAgentCmd 모듈을 생성했습니다.lClr 모듈을 생성했습니다.info 모듈을 추가했습니다.Local 및 Azure 인증에서 필수 인수 관련 문제를 해결했습니다.-e domain).Windows 및 Local 인증 모드에 -r 플래그를 추가했습니다.TestAuthentication.cs에서 Environment.Exit를 제거했습니다.AgentJobs.cs를 생성했습니다.agentStatus를 생성했습니다.iAgentStatus를 생성했습니다.lAgentStatus를 생성했습니다.agentCmd를 생성했습니다.iAgentCmd를 생성했습니다.clr을 생성했습니다.iEnableClr을 생성했습니다.iDisbleClr을 생성했습니다.iClr을 생성했습니다.iWhoami를 생성했습니다.iMapped를 생성했습니다.iRoles를 생성했습니다.lEnableRpc를 생성했습니다.lDisableRpc를 생성했습니다.lWhoai를 생성했습니다.lEnableXp를 생성했습니다.lDisableXp를 생성했습니다.lEnableOle를 생성했습니다.lDisableOle를 생성했습니다.lSmb 모듈을 생성했습니다.lWhoami 모듈을 생성했습니다.lRoles 모듈을 생성했습니다.oldCmd 모듈을 수정했습니다.iOleCmd 모듈을 수정했습니다.lDatabases 모듈을 수정했습니다.lTables 모듈을 수정했습니다.| 모듈 이름 | 설명 | 가장 | 연결된 실행 | 연결 체인 실행 | 권한 있는 컨텍스트 필요 |
|---|
CheckRpc | 연결된 서버 목록과 해당 RPC 상태를 가져옵니다. | ✅ | ✅ | ✅ | ❎ |
Databases | 모든 데이터베이스를 표시합니다. | ✅ | ✅ | ✅ | ❎ |
Impersonate | 가장할 수 있는 사용자 계정을 열거합니다. | ✅ | ✅ | ✅ | ❎ |
Info | SQL 서버에 대한 정보를 표시합니다. | ✅ | ✅ | ✅ | ❎ |
Links | 연결된 SQL 서버를 열거합니다. | ✅ | ✅ | ✅ | ❎ |
Users | 데이터베이스에 인증할 수 있는 사용자 계정과 그룹을 표시합니다. | ✅ | ✅ | ✅ | ❎ |
Whoami | 사용자의 권한을 표시합니다. | ✅ | ✅ | ✅ | ❎ |
Query /c:QUERY | SQL 쿼리를 실행합니다. | ✅ | ✅ | ✅ | ❎ |
Smb /unc:UNC_PATH | NetNTLMv2 해시를 캡처합니다. | ✅ | ✅ | ✅ | ❎ |
Columns /db:DATABASE /table:TABLE | 지정된 데이터베이스와 테이블의 모든 열을 표시합니다. | ✅ | ✅ | ✅ | ❎ |
Rows /db:DATABASE /table:TABLE | 지정된 데이터베이스 테이블의 행 수를 표시합니다. | ✅ | ✅ | ✅ | ❎ |
Search /keyword:KEYWORD | 연결된 데이터베이스의 지정된 테이블에서 열 이름을 검색합니다. | ✅ | ✅ | ✅ | ❎ |
Tables /db:DATABASE | 지정된 데이터베이스의 모든 테이블을 표시합니다. | ✅ | ✅ | ✅ | ❎ |
EnableRpc /rhost:LINKED_HOST | 연결된 서버에서 RPC 및 RPC out을 활성화합니다. | ✅ | ❌ | ❌ | ✔️ |
EnableClr | CLR 통합을 활성화합니다. | ✅ | ✅ | ✅ | ✔️ |
EnableOle | OLE 자동화 프로시저를 활성화합니다. | ✅ | ✅ | ✅ | ✔️ |
EnableXp | xp_cmdshell을 활성화합니다. | ✅ | ✅ | ✅ | ✔️ |
DisableRpc /rhost:LINKED_HOST | 연결된 서버에서 RPC 및 RPC out을 비활성화합니다. | ✅ | ❌ | ❌ | ✔️ |
DisableClr | CLR 통합을 비활성화합니다. | ✅ | ✅ | ✅ | ✔️ |
DisableOle | OLE 자동화 프로시저를 비활성화합니다. | ✅ | ✅ | ✅ | ✔️ |
DisableXp | xp_cmdshell을 비활성화합니다. | ✅ | ✅ | ✅ | ✔️ |
AgentStatus | SQL 에이전트가 실행 중인지 표시하고 에이전트 작업을 가져옵니다. | ✅ | ✅ | ✅ | ✔️ |
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:COMMAND | xp_cmdshell을 사용하여 시스템 명령을 실행합니다. | ✅ | ✅ | ✅ | ✔️ |
| 모듈 이름 | 설명 | 가장 | 권한 있는 컨텍스트 필요 |
|---|
Users | 모든 SCCM 사용자를 표시합니다. | ✅ | ❎ |
Sites | 데이터가 저장된 다른 모든 사이트를 표시합니다. | ✅ | ❎ |
Logons | 연결된 모든 SCCM 클라이언트와 마지막으로 로그인한 사용자를 표시합니다. | ✅ | ❎ |
Credentials | SCCM이 보관한 암호화된 자격 증명을 표시합니다. | ✅ | ❎ |
TaskList | 모든 작업 순서를 표시하지만 작업 데이터 내용에는 접근하지 않습니다. | ✅ | ❎ |
TaskData | 모든 작업 순서를 평문으로 복호화합니다. | ✅ | ❎ |
DecryptCredentials | SCCM 자격 증명 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)에게 감사드립니다.whoami 모듈을 개선했습니다. Azaël Martin(n3rada)에게 감사드립니다.impersonation 모듈을 개선했습니다. Azaël Martin(n3rada)에게 감사드립니다.sqlspns 열거 모듈에 IP 주소 검색을 추가했습니다. Azaël Martin(n3rada)에게 감사드립니다./enum:info 모듈에 DNS 지원을 추가했습니다.olecmdexec 모듈에 선택적 /subsystem 인수를 추가했습니다. CmdExec 또는 PowerShell OLE 자동화 하위 시스템을 사용한 실행을 허용합니다.AzureAD 인증을 EntraID로 변경했습니다.EnumerationModules.cs를 만들었습니다.FormatQuery.cs를 만들었습니다.SccmModules.cs를 만들었습니다.ModuleHandler.cs를 SqlModules.cs로 이름을 변경했습니다.PrintUtils.cs를 Print.cs로 이름을 변경했습니다.SQLServerInfo.cs를 Info.cs로 이름을 변경했습니다.iSearchHelp.cs를 메서드에서 생성자로 변경했습니다.CaptureHash.cs를 메서드에서 생성자로 변경했습니다.Impersonate.cs를 메서드에서 생성자로 변경했습니다.lEnableClr를 생성했습니다.lDisableClr를 생성했습니다.lXpCmd를 생성했습니다.lXpOle를 생성했습니다.Random.cs를 생성했습니다.EnableDisable.cs를 생성했습니다.clr에 대해 무작위로 생성된 어셈블리 이름을 구현했습니다.ole에 대해 무작위로 생성된 변수 및 메서드 이름을 구현했습니다.mapped 및 roles 모듈을 whoami로 통합했습니다.lMapped 및 lRoles 모듈을 lWhoami로 통합했습니다.iMapped 및 iRoles 모듈을 iWhoami로 통합했습니다.