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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Invoke-TheHash — PowerShell Pass The Hash 유틸리티 | Kitploit
도구/GitHubGitHub/kevin-robertson/invoke-thehash
Password AttacksLateral MovementPost-ExploitationNetwork SecurityPenetration TestingAuthentication
GitHubkevin-robertson/invoke-thehash

Invoke-TheHash

PowerShell Pass The Hash 유틸리티

저장소 보기
1.8k3137년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Invoke-TheHash

Invoke-TheHash는 pass the hash WMI 및 SMB 작업을 수행하기 위한 PowerShell 함수를 포함합니다. WMI 및 SMB 연결은 .NET TCPClient를 통해 액세스됩니다. 인증은 NTLM 해시를 NTLMv2 인증 프로토콜에 전달하여 수행됩니다. 클라이언트 측에서 로컬 관리자 권한이 필요하지 않습니다.

요구 사항

최소 PowerShell 2.0

가져오기

Import-Module ./Invoke-TheHash.psd1

또는

. ./Invoke-WMIExec.ps1 . ./Invoke-SMBExec.ps1 . ./Invoke-SMBEnum.ps1 . ./Invoke-SMBClient.ps1 . ./Invoke-TheHash.ps1

함수

  • Invoke-WMIExec
  • Invoke-SMBExec
  • Invoke-SMBEnum
  • Invoke-SMBClient
  • Invoke-TheHash

Invoke-WMIExec

  • WMI 명령 실행 함수.
매개변수:
  • Target - 대상의 호스트 이름 또는 IP 주소.
  • Username - 인증에 사용할 사용자 이름.
  • Domain - 인증에 사용할 도메인. 로컬 계정이거나 사용자 이름 뒤에 @domain을 사용하는 경우 이 매개변수는 필요하지 않습니다.
  • Hash - 인증을 위한 NTLM 암호 해시. 이 함수는 LM:NTLM 또는 NTLM 형식을 허용합니다.
  • Command - 대상에서 실행할 명령. 명령이 지정되지 않은 경우 함수는 사용자 이름과 해시가 대상의 WMI에 액세스할 수 있는지만 확인합니다.
  • Sleep - 기본값 = 10밀리초: 함수의 Start-Sleep 값을 밀리초 단위로 설정합니다.
예시:

Invoke-WMIExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "실행할 명령 또는 런처" -verbose

스크린샷:

wmi

Invoke-SMBExec

  • SMB1, SMB2.1 및 SMB 서명 유무에 관계없이 SMB(PsExec) 명령 실행 함수.
매개변수:
  • Target - 대상의 호스트 이름 또는 IP 주소.
  • Username - 인증에 사용할 사용자 이름.
  • Domain - 인증에 사용할 도메인. 로컬 계정이거나 사용자 이름 뒤에 @domain을 사용하는 경우 이 매개변수는 필요하지 않습니다.
  • Hash - 인증을 위한 NTLM 암호 해시. 이 함수는 LM:NTLM 또는 NTLM 형식을 허용합니다.
  • Command - 대상에서 실행할 명령. 명령이 지정되지 않은 경우 함수는 사용자 이름과 해시가 대상의 SCM에 액세스할 수 있는지만 확인합니다.
  • CommandCOMSPEC - 기본값 = 활성화: %COMSPEC% /C를 Command 앞에 추가합니다.
  • Service - 기본값 = 20자 임의: 대상에서 생성 및 삭제할 서비스의 이름.
  • Sleep - 기본값 = 150밀리초: 함수의 Start-Sleep 값을 밀리초 단위로 설정합니다.
  • Version - 기본값 = Auto: (Auto,1,2.1) SMB 버전을 강제로 지정합니다. 기본 동작은 SMB 버전 협상을 수행하고 대상이 지원하는 경우 SMB2.1을 사용하는 것입니다.
예시:

Invoke-SMBExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "실행할 명령 또는 런처" -verbose

예시:

대상의 SMB 서명 요구 사항 확인. Invoke-SMBExec -Target 192.168.100.20

스크린샷:

smb

Invoke-SMBEnum

  • Invoke-SMBEnum은 SMB2.1에서 SMB 서명 유무에 관계없이 사용자, 그룹, NetSession 및 공유 열거 작업을 수행합니다.
매개변수:
  • Target - 대상의 호스트 이름 또는 IP 주소.
  • Username - 인증에 사용할 사용자 이름.
  • Domain - 인증에 사용할 도메인. 로컬 계정이거나 사용자 이름 뒤에 @domain을 사용하는 경우 이 매개변수는 필요하지 않습니다.
  • Hash - 인증을 위한 NTLM 암호 해시. 이 함수는 LM:NTLM 또는 NTLM 형식을 허용합니다.
  • Action - (All,Group,NetSession,Share,User) 기본값 = Share: 수행할 열거 작업.
  • Group - 기본값 = Administrators: 열거할 그룹.
  • Sleep - 기본값 = 150밀리초: 함수의 Start-Sleep 값을 밀리초 단위로 설정합니다.
  • Version - 기본값 = Auto: (Auto,1,2.1) SMB 버전을 강제로 지정합니다. 기본 동작은 SMB 버전 협상을 수행하고 대상이 지원하는 경우 SMB2.1을 사용하는 것입니다. 참고, 서명 확인만 SMB1에서 작동합니다.
예시:

Invoke-SMBEnum -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -verbose

스크린샷:

invoke-smbenum

Invoke-SMBClient

  • SMB2.1 및 SMB 서명을 지원하는 SMB 클라이언트 함수. 이 함수는 주로 원격 명령 실행 권한이 없는 해시로 작업하기 위한 SMB 파일 공유 기능을 제공합니다. 이 함수는 Invoke-WMIExec 및 Invoke-SMBExec와 함께 사용할 페이로드를 준비하는 데에도 사용할 수 있습니다. Invoke-SMBClient는 .NET TCPClient를 기반으로 구축되었으며 Windows SMB 클라이언트를 사용하지 않습니다. Invoke-SMBClient는 Windows 클라이언트보다 훨씬 느립니다.
매개변수:
  • Username - 인증에 사용할 사용자 이름.
  • Domain - 인증에 사용할 도메인. 로컬 계정이거나 사용자 이름 뒤에 @domain을 사용하는 경우 이 매개변수는 필요하지 않습니다.
  • Hash - 인증을 위한 NTLM 암호 해시. 이 함수는 LM:NTLM 또는 NTLM 형식을 허용합니다.
  • Action - 기본값 = List: (List/Recurse/Delete/Get/Put) 수행할 작업.
      • List: 디렉터리의 내용을 나열합니다.
      • Recurse: 디렉터리와 모든 하위 디렉터리의 내용을 나열합니다.
      • Delete: 파일을 삭제합니다.
      • Get: 파일을 다운로드합니다.
      • Put: 파일을 업로드하고 생성, 액세스 및 마지막 쓰기 시간을 원본 파일과 일치하도록 설정합니다.
  • Source
      • List 및 Recurse: 디렉터리의 UNC 경로.
      • Delete: 파일의 UNC 경로.
      • Get: 파일의 UNC 경로.
      • Put: 업로드할 파일. 전체 경로를 지정하지 않으면 파일이 현재 디렉터리에 있어야 합니다. 'Modify' 스위치를 사용하는 경우 'Source'는 바이트 배열이어야 합니다.
  • Destination
      • List 및 Recurse: 사용되지 않음.
      • Delete: 사용되지 않음.
      • Get: 사용하는 경우 값은 다운로드된 파일의 새 파일 이름이 됩니다. 전체 경로를 지정하지 않으면 파일이 현재 디렉터리에 생성됩니다.
      • Put: 업로드된 파일의 UNC 경로. 파일 이름을 지정해야 합니다.
  • Modify
      • List 및 Recurse: 함수는 디렉터리 내용으로 구성된 개체를 출력합니다.
      • Delete: 사용되지 않음.
      • Get: 함수는 파일을 디스크에 쓰는 대신 다운로드된 파일의 바이트 배열을 출력합니다. 더 작은 파일에만 사용하고 출력을 변수로 보내는 것이 좋습니다.
      • Put: 바이트 배열을 새 대상 파일에 업로드합니다.
  • NoProgress - 업로드 및 다운로드 진행률 표시줄을 표시하지 않습니다.
  • Sleep - 기본값 = 100밀리초: 함수의 Start-Sleep 값을 밀리초 단위로 설정합니다.
  • Version - 기본값 = Auto: (Auto,1,2.1) SMB 버전을 강제로 지정합니다. 기본 동작은 SMB 버전 협상을 수행하고 대상이 지원하는 경우 SMB2.1을 사용하는 것입니다. 참고, 서명 확인만 SMB1에서 작동합니다.
예시:

루트 공유 디렉터리의 내용을 나열합니다. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Source \\server\share -verbose

예시:

루트에서 시작하여 공유 내용을 재귀적으로 나열합니다. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Recurse -Source \\server\share

예시:

공유 하위 디렉터리의 내용을 재귀적으로 나열하고 내용 출력만 변수로 반환합니다. $directory_contents = Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Recurse -Source \\server\share\subdirectory -Modify

예시:

공유에서 파일을 삭제합니다. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Delete -Source \\server\share\file.txt

예시:

공유 내 하위 디렉터리에서 파일을 삭제합니다. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Delete -Source \\server\share\subdirectory\subdirectory\file.txt

예시:

공유에서 파일을 다운로드합니다. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\file.txt

예시:

공유 하위 디렉터리 내에서 파일을 다운로드하고 새 파일 이름을 설정합니다. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\subdirectory\file.txt -Destination file.txt

예시:

공유에서 파일을 디스크 대신 바이트 배열 변수로 다운로드합니다. $password_file = Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\file.txt -Modify

예시:

공유 하위 디렉터리에 파일을 업로드합니다. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Put -Source file.exe -Destination \\server\share\subdirectory\file.exe

예시:

바이트 배열 변수에서 공유로 파일을 업로드합니다. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Put -Source $file_byte_array -Destination \\server\share\file.txt -Modify

스크린샷:

invoke-smbclient

Invoke-TheHash

  • 여러 대상에 대해 Invoke-TheHash 함수를 실행하는 함수.
매개변수:
  • Type - 원하는 Invoke-TheHash 함수를 설정합니다. SMBClient, SMBEnum, SMBExec 또는 WMIExec로 설정합니다.
  • Target - 대상의 호스트 이름, IP 주소, CIDR 표기법 또는 IP 범위 목록.
  • TargetExclude - 목록 또는 대상에서 제외할 호스트 이름, IP 주소, CIDR 표기법 또는 IP 범위 목록.
  • PortCheckDisable - (스위치) WMI 또는 SMB 포트 검사를 비활성화합니다. 이 함수는 아직 스레드되지 않았기 때문에 포트 검사는 동기식 TCPClient 연결을 시도하기 전에 열린 WMI 또는 SMB 포트가 있는지 확인하여 함수 속도를 높이는 역할을 합니다.
  • PortCheckTimeout - 기본값 = 100: WMI 또는 SMB 포트 검사에 대한 응답 없음 시간 제한을 밀리초 단위로 설정합니다.
  • Username - 인증에 사용할 사용자 이름.
  • Domain - 인증에 사용할 도메인. 로컬 계정이거나 사용자 이름 뒤에 @domain을 사용하는 경우 이 매개변수는 필요하지 않습니다.
  • Hash - 인증을 위한 NTLM 암호 해시. 이 모듈은 LM:NTLM 또는 NTLM 형식을 허용합니다.
  • Command - 대상에서 실행할 명령. 명령이 지정되지 않은 경우 함수는 사용자 이름과 해시가 대상의 WMI 또는 SCM에 액세스할 수 있는지만 확인합니다.
  • CommandCOMSPEC - 기본값 = 활성화: SMBExec 유형만 해당. %COMSPEC% /C를 Command 앞에 추가합니다.
  • Service - 기본값 = 20자 임의: SMBExec 유형만 해당. 대상에서 생성 및 삭제할 서비스의 이름.
  • SMB1 - (스위치) SMB1을 강제로 사용합니다. SMBExec 유형만 해당. 기본 동작은 SMB 버전 협상을 수행하고 대상이 지원하는 경우 SMB2를 사용하는 것입니다.
  • Sleep - 기본값 = WMI 10밀리초, SMB 150밀리초: 함수의 Start-Sleep 값을 밀리초 단위로 설정합니다.
예시:

Invoke-TheHash -Type WMIExec -Target 192.168.100.0/24 -TargetExclude 192.168.100.50 -Username Administrator -Hash F6F38B793DB6A94BA04A52F1D3EE92F0

스크린샷:

ithsmb

도구 다운로드