
공격적 정찰 및 사후 침투를 위해 설계된 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:)에 전달되어야 합니다.
호스트 플래그(/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 서버 인스턴스에서 실행을 지원하는 각 모듈 사용에 대한 세부 정보가 있습니다.
연결 체인 모듈은 연결된 서버 체인의 마지막 Microsoft SQL Server에서 실행됩니다. 모든 연결 체인 모듈에는 다음과 같은 최소 요구 사항이 있습니다.
/l:, /link: 플래그에 지정되어야 합니다. SQL01이 SQL02에 연결되고 SQL02가 PAYMENTS01에 연결된 경우 PAYMENTS01에서 모듈을 실행하려면 인수는 /l:SQL02,PAYMENTS01이 됩니다./chain 플래그를 포함해야 합니다./m:, /module:).위키에는 연결된 SQL 서버 체인에서 제공된 마지막 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% 최신 상태가 아닙니다. 선택적(필수 아님) 인수로 SCCM 클라이언트를 필터링하려면 /option:을 사용하십시오.TaskList 모듈은 SCCM 데이터베이스에 저장된 모든 작업 시퀀스 목록을 제공하지만 실제 작업 데이터 내용에는 액세스하지 않습니다.TaskData 모듈은 SCCM 데이터베이스에 저장된 모든 작업 시퀀스를 복구하고 일반 텍스트로 해독합니다. 작업 시퀀스에는 도메인에 시스템 가입, 공유 매핑, 명령 실행 등을 위한 자격 증명이 포함될 수 있습니다.Credentials 모듈은 다양한 기능에 사용하기 위해 SCCM에 저장된 자격 증명을 나열합니다. 이러한 자격 증명은 키가 SCCM 서버에 저장되어 있으므로 원격으로 해독할 수 없습니다. 그러나 이 모듈은 키를 획득하는 것이 합리적인지 여부에 대한 정보를 제공합니다.DecryptCredentials 모듈은 복구된 SCCM 자격 증명 blob을 해독하려고 시도합니다. 이 모듈은 SCCM 서버에서 높은 무결성 또는 SYSTEM 프로세스로 실행되어야 합니다.SQLRecon 확장에 관심이 있다면 wiki의 기여 및 확장 섹션을 참조하십시오.
제안이나 아이디어가 있으면 issue를 열어 주시기 바랍니다.
목표는 SQLRecon을 지속적으로 개선하는 것입니다. 아래는 계획된 몇 가지 연구 영역입니다.
다음 사람들은 SQLRecon의 다양한 측면에 직간접적으로 기여했습니다.
/auth:pth) 추가. PTHTdsConnection, NtlmHelper 및 PthState를 통해 원시 TDS/NTLM 인증을 구현하여 모든 모듈이 일반 텍스트 자격 증명이나 상승된 권한 없이 작동합니다. 주요 수정 사항에는 로그인 후 ANSI 세션 옵션, 다중 패킷 TDS 분할, 동시 CLR 연결에 대한 TCP 흐름 교착 상태 처리 및 OPENQUERY 대괄호 표기법 호환성이 포함됩니다._linkedChainRpcQuery의 버그 수정.System.Byte[]가 제대로 변환되어 콘솔에 출력되지 않는 오랜 문제 해결.credentialobjectss 및 proxies 모듈 추가 (jakxx).agentcmd에 프록시 지원 추가 (jakxx).role 열거가 제대로 작동하지 않는 문제 해결 (passthehashbrowns).impersonate 모듈이 제대로 작동하지 않는 문제 해결 (passthehashbrowns).EnableRpc/DisableRpc 사용 가능하지 않은 문제 해결 (passthehashbrowns).XpCmd 모듈이 작동하지 않는 문제 해결, 이제 출력도 지원 (passthehashbrowns).EXEC AT 쿼리에서 대괄호로 묶지 않으면 문제가 발생하는 문제 해결. 이는 연결된 서버 이름이 IP 주소 또는 FQDN인 경우 문제를 일으킵니다 (passthehashbrowns)..First 함수가 "0"을 반환하는 등 연결 체인을 반복해야 하는 모듈을 개발할 때 직관적이지 않은 동작을 유발합니다. LinkedChainQuery 함수가 앞에 "0"이 있는 새 배열을 만든 다음 별도의 함수(이제 LinkedChainQueryRecurse라고 함)에서 기존 로직을 호출하도록 업데이트했습니다 (passthehashbrowns).impersonate 모듈에서 sysadmin 사례를 올바르게 처리하도록 문제 수정 (n3rada).scriptdata 및 cidata 구현 (G0ldenGunSec).auditstatus 모듈 생성 (chryzsh).whoami 모듈에 사용자가 액세스할 수 있는 데이터베이스 추가 (JBalanza).adsi 모듈에서 LDAP 서버를 msdb 데이터베이스에 추가할 필요가 없는 문제 수정, 생성된 함수가 이제 적절하게 삭제됨./host 또는 /h 플래그에 제공된 여러 SQL 서버에 대한 실행이 지원됩니다./link 또는 /l 플래그에 제공된 여러 연결된 SQL 서버에 대한 실행이 지원됩니다./lhost를 /link로 변경.'s' 모듈 제거 및 SCCM 모듈을 위한 /s, /sccm 스위치 생성.DecryptCredentials를 제외한 모든 SCCM 모듈에 가장 지원 추가./enum) 모듈 info 추가. 인증되지 않은 컨텍스트를 사용하여 UDP 프로토콜을 통해 인스턴스 이름 및 TCP 포트를 포함한 SQL 서버 정보를 얻을 수 있습니다.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로 변경.SetAuthenticationType.cs 생성자를 EvaluateAuthenticationType이라는 새 메서드로 변경.SetAuthenticationType.cs에 CreateSqlConnectionObject 생성. SQLRecon이 여러 동시 SQL 연결 개체를 지원하도록 확장.ADSI.cs 생성. 여기 설명된 대로 ADSI 자격 증명 공격을 통합.adsi, iAdsi 및 lAdsi 모듈 생성.lLinks 및 iLinks 모듈 생성.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 모듈 제거.lDisableRpc 모듈 제거.lAgentCmd 버그 수정.SqlCommand.ExecuteNonQuery를 사용하여 clr, iClr 및 lClr 안정성 수정.lClr에서 생성된 어셈블리나 저장 프로시저를 제거하지 않던 버그 수정.columns 모듈 추가.iColumns 모듈 추가.iDatabases 모듈 추가.iSearch 모듈 추가.iTables 모듈 추가.lColumns 모듈 추가.lSearch 모듈 추가.ExecuteLinkedCustomQueryRpcExec에서 제공하는 출력 개선.x로 변경.Random.cs를 utilities 디렉터리로 이동.Windows 인증을 WinToken으로 변경.WinDomain 인증 생성. 가장을 통해 인증을 위해 AD 도메인 사용자 이름 및 암호를 사용합니다. 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 생성.iDisableClr 생성.iClr 생성.iWhoami 생성.iMapped 생성.iRoles 생성.lEnableRpc 생성.lDisableRpc 생성.lWhoami 생성.lEnableXp 생성.lDisableXp 생성.lEnableOle 생성.lDisableOle 생성.lSmb 모듈 생성.lWhoami 모듈 생성.lRoles 모듈 생성.oleCmd 모듈 수정.iOleCmd 모듈 수정.lDatabases 모듈 수정.lTables 모듈 수정.| 모듈 이름 | 설명 | 가장(Impersonation) | 연결된 실행 | 연결 체인 실행 | 권한 있는 컨텍스트 필요 |
|---|
AuditStatus | SQL 감사가 설정되어 있는지 확인합니다. | ✅ | ✅ | ✅ | ❎ |
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 /subsystem:(OPTIONAL) /proxy:(OPTIONAL) | 에이전트 작업을 사용하여 시스템 명령을 실행합니다. 선택적으로 /subsystem:으로 하위 시스템을 지정할 수 있으며, 기본값은 'PowerShell'입니다. 선택적으로 /proxy:로 SQL 에이전트 프록시 계정을 지정할 수 있습니다. | ✅ | ✅ | ✅ | ✔️ |
Adsi /adsi:SERVER_NAME /lport:LOCAL_PORT | 연결된 ADSI 서버에서 일반 텍스트 ADSI 자격 증명을 가져옵니다. | ✅ | ✅ | ✅ | ✔️ |
Clr /dll:DLL /function:FUNCTION | 사용자 정의 저장 프로시저에서 .NET 어셈블리를 로드하고 실행합니다. | ✅ | ✅ | ✅ | ✔️ |
CredentialObjects | sys.credentials에서 자격 증명 개체를 가져옵니다. | ✅ | ✅ | ✅ | ✔️ |
OleCmd /c:COMMAND /subsystem:(OPTIONAL) | OLE 자동화 프로시저를 사용하여 시스템 명령을 실행합니다. | ✅ | ✅ | ✅ | ✔️ |
Proxies | SQL 에이전트 프록시 정보를 가져옵니다. | ✅ | ✅ | ✅ | ✔️ |
XpCmd /c:COMMAND | xp_cmdshell을 사용하여 시스템 명령을 실행합니다. | ✅ | ✅ | ✅ | ✔️ |
| 모듈 이름 | 설명 | 가장(Impersonation) | 권한 있는 컨텍스트 필요 |
|---|
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 데이터베이스에서 사용자의 권한을 제거하거나 사용자를 완전히 제거합니다. | ✅ | ✔️ |
ScriptData | SCCM에서 실행하도록 구성된 모든 스크립트를 반환합니다. | ✅ | ✔️ |
CIData | SCCM에서 스크립트를 실행하도록 구성된 모든 CI를 반환합니다. | ✅ | ✔️ |
AddAdmin 모듈은 지정된 계정을 SCCM 내에서 '전체 관리자'로 승격합니다. 대상 사용자가 이미 SCCM 사용자인 경우 이 모듈은 대신 승격에 필요한 권한을 추가합니다. SCCM에서 SQLRecon 프로세스를 실행 중인 사용자를 '전체 관리자'로 추가하려면 두 인수를 /user:current /sid:current로 제공하십시오. 다른 사용자를 SCCM의 '전체 관리자'로 추가하려면 도메인 사용자 이름과 전체 SID를 지정하십시오(/user:DOMAIN\USERNAME /sid:S-1-5-...). 이 모듈은 SCCM 데이터베이스 테이블에 쓰기가 필요하므로 sysadmin 또는 유사한 권한이 필요합니다.RemoveAdmin 모듈은 SCCM 데이터베이스에서 새로 추가된 사용자를 완전히 제거하여 사용자의 권한을 제거합니다. 사용자가 이미 어떤 식으로든 존재했다면 이 모듈은 권한 테이블에 쓰기를 통해 계정에 추가된 세 가지 역할을 제거합니다. 이 명령을 실행하려면 sAddAdmin 명령의 출력에서 제공된 인수를 사용하십시오. 이 모듈은 SCCM 데이터베이스 테이블에 쓰기가 필요하므로 sysadmin 또는 유사한 권한이 필요합니다.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로 통합.