
Active Directory 객체 메타데이터, 그룹 구성원, 세션, ACL 및 트러스트를 수집하여 보안 평가를 위한 BloodHound 공격 경로 매핑에 데이터를 제공합니다.
최신 SharpHound 빌드는 항상 여기에서 찾을 수 있습니다.
배포된 BloodHound CE 인스턴스와 호환되는 SharpHound 버전을 확인하려면 BloodHound CE 웹 UI에 로그인하여 ⚙️(설정) → Download Collectors를 클릭하세요. 그런 다음 사용자 인터페이스의 "Download SharpHound" 버튼을 클릭하거나 표시된 SharpHound 버전을 사용하여 해당 릴리스 바이너리를 다운로드하세요. 또는 해당 릴리스 커밋에서 SharpHound 바이너리를 직접 컴파일할 수도 있습니다.
BloodHound Community Edition 문서의 SharpHound 섹션을 참조하세요.
이 프로젝트를 빌드하려면 .NET SDK를 사용하여 다음을 실행하세요:
dotnet restore
dotnet build
기본적으로 이 프로젝트는 SharpHoundCommon Library의 다음 프리릴리스 -dev 버전(v4 브랜치 추적)을 대상으로 빌드됩니다.
라이브러리의 로컬 복사본을 대상으로 빌드하려면 _CommonLibPath 및 _RPCPath 속성이 올바른 DLL을 가리키는지 확인하고 dotnet build -p:CommonSource=Local을 실행하세요.
CommonLibsVersion에 이미 프리릴리스 태그(예: 4.6.0-rc1)가 포함되어 있으면 해당 정확한 버전이 Stable 및 Dev 소스 모두에 그대로 사용됩니다.
dotnet build # Dev (default)
dotnet build -p:CommonSource=Stable
dotnet build -p:CommonSource=Local
dotnet build --tl:off # To view CommonLib resolution logs
SharpHound는 .Net 4.7.2를 대상으로 설계되었습니다. SharpHound는 도메인 사용자 컨텍스트에서 실행해야 하며, 로그온을 통해 직접 실행하거나 RUNAS와 같은 다른 방법을 통해 실행해야 합니다.
아래 목록은 SharpHound가 지원하는 CLI 인수를 설명합니다. 이러한 옵션에 대한 추가 세부 정보는 BloodHound CE 수집 문서에서 확인할 수 있습니다.
-c, --collectionmethods (Default: Default) Collection Methods: Container, Group, LocalGroup, GPOLocalGroup,
Session, LoggedOn, ObjectProps, ACL, ComputerOnly, Trusts, Default, RDP, DCOM, DCOnly, UserRights,
CARegistry, DCRegistry, CertServices, WebClientService, NTLMRegistry,SMBInfo,LdapServices
-d, --domain Specify domain to enumerate
-s, --searchforest (Default: false) Search all available domains in the forest
--stealth Stealth Collection (Prefer DCOnly whenever possible!)
-f Add an LDAP filter to the pregenerated filter.
--distinguishedname Base DistinguishedName to start the LDAP search at
--computerfile Path to file containing computer names to enumerate
--outputdirectory (Default: .) Directory to output file too
--outputprefix String to prepend to output file names
--cachename Filename for cache (Defaults to a machine specific identifier)
--memcache Keep cache in memory and don't write to disk
--rebuildcache (Default: false) Rebuild cache and remove all entries
--randomfilenames (Default: false) Use random filenames for output
--zipfilename Filename for the zip
--nozip (Default: false) Don't zip files
--trackcomputercalls (Default: false) Adds a CSV tracking requests to computers
--zippassword Password protects the zip with the specified password
--prettyprint (Default: false) Pretty print JSON
--ldapusername Username for LDAP
--ldappassword Password for LDAP
--domaincontroller Override domain controller to pull LDAP from. This option can result in data loss
--ldapport (Default: 0) Override port for LDAP
--secureldap (Default: false) Connect to LDAP SSL instead of regular LDAP
--disablecertverification (Default: false) Disable certificate verification for secure LDAP
--disablesigning (Default: false) Disables Kerberos Signing/Sealing
--skipportcheck (Default: false) Skip checking if 445 is open
--portchecktimeout (Default: 500) Timeout for port checks in milliseconds
--skippasswordcheck (Default: false) Skip PwdLastSet age check when checking computers
--excludedcs (Default: false) Exclude domain controllers from session/localgroup enumeration (mostly for
ATA/ATP)
--throttle Add a delay after computer requests in milliseconds
--jitter Add jitter to throttle (percent)
--threads (Default: 50) Number of threads to run enumeration with
--skipregistryloggedon Skip registry session enumeration
--overrideusername Override the username to filter for NetSessionEnum
--realdnsname Override DNS suffix for API calls
--collectallproperties Collect all LDAP properties from objects
-l, --Loop Loop computer collection
--loopduration Loop duration (hh:mm:ss - 05:00:00 is 5 hours, default: 2 hrs)
--loopinterval Add delay between loops (hh:mm:ss - 00:03:00 is 3 minute)
--statusinterval (Default: 30000) Interval in which to display status in milliseconds
--localadminsessionenum Specify if you want to use a dedicated LOCAL user for session enumeration
--localadminusername Specify the username of the localadmin for session enumeration
--localadminpassword Specify the password of the localadmin for session enumeration
-v (Default: 2) Enable verbose output. Lower is more verbose
--help Display this help screen.
--version Display version information.
CommonSource (기본값: Dev) | 해석되는 패키지 |
|---|
Dev | 프리릴리스(예: 4.6.0-rc1) 또는 다음 패치 -dev*(예: 4.6.1-dev*) |
Stable | 현재 CommonLibsVersion(예: 4.6.0) |
Local | 로컬 SharpHoundCommon DLL |