
도메인을 장악하세요. 최상위로 중계하세요.

RelayKing은 Active Directory 환경에서 릴레이 공격 기회를 식별하도록 설계된 종합적인 릴레이 탐지 및 열거 도구입니다. 실제 보고 옵션. 포괄적인 공격 범위. 숨겨진 릴레이 벡터를 찾아 원하는 출력 형식으로 보고하세요. Impacket의 ntlmrelayx.py에 탐지되고 릴레이 가능한 엄선된 호스트 목록을 공급하세요. 도메인에서 중요하고 악용 가능한 NTLM 릴레이 경로를 다시는 놓치지 마세요.
자세한 내용은 Depth Security 웹사이트에 게시된 관련 블로그를 참조하세요: https://www.depthsecurity.com/blog/introducing-relayking-relay-to-royalty/
**RelayKing은 특정 모드, 특히 --audit 모드에서 OPSEC 친화적인 도구가 아닙니다.
RelayKing은 있는 그대로 제공되며 어떠한 보장도 없습니다. readme 하단을 참조하세요.
# Use a venv. Save yourself the hassle.
# Clone repo:
git clone https://github.com/depthsecurity/RelayKing-Depth.git
#Navigate to cloned dir:
cd RelayKing-Depth/
# Configure Python venv:
virtualenv --python=python3 .
source bin/activate
# Install deps:
pip3 install -r requirements.txt
# Validate RelayKing installation was successful:
python3 relayking.py -h
--remove-mic를 이용한 교차 프로토콜 릴레이(SMB to LDAP/LDAPS)를 위한 MIC 필드 제거를 가능하게 합니다. HIGH로 보고됩니다. 이미 호스트별로 조회된 UBR을 사용하므로 추가 네트워크 요청이 없습니다.--audit 모드에서 호스트 이름에 DNS 레코드가 없는 서비스 사용자 이름(SPN)을 Active Directory에서 쿼리합니다. 공격자는 누락된 DNS 이름을 등록하여 해당 서비스 사용자 이름을 대상으로 하는 NTLM 인증을 가로챌 수 있습니다. 결과는 취약 (DNS 레코드가 전혀 없음)과 아마도 취약 (와일드카드 DNS로만 확인됨)으로 구분됩니다. MEDIUM으로 보고됩니다. 전체 결과는 possible-ghost-spns.txt에 기록됩니다. --no-ghosts로 비활성화할 수 있습니다.--ntlmv1 또는 --ntlmv1-all 필요 - 확인된 Net-NTLMv1 사용이 발견된 경우에만 교차 프로토콜 탐지)--remove-mic)를 통한 SMB-to-LDAP 교차 프로토콜 릴레이possible-ghost-spns.txt에 저장(--audit): LDAP를 통해 AD에서 모든 컴퓨터를 열거합니다. 낮은 권한의 AD 자격 증명과 환경 내 작동하는 DNS가 필요합니다. --dc-ip로 강제하거나 /etc/resolv.conf를 편집하세요.10.0.0.0/24)10.0.0.1-254)python3 relayking.py -u blah -p pass -d domain.local <your_target_ip_or_hostname>)--coerce-all을 --audit 및 낮은 권한의 자격 증명과 결합하여 도메인의 모든 머신을 강제하여 대규모 컴퓨터 계정 릴레이를 수행합니다. Net-NTLMv1이 활성화된 환경에서 매우 유용합니다.--ntlmv1 또는 --ntlmv1-all로 도메인 수준의 LanMan GPO를 탐지합니다. --ntlmv1-all은 AD의 모든 호스트와 해당 레지스트리 값을 RemoteRegistry를 사용하여 확인합니다. (로컬 관리자 필요).--gen-relay-list <file>로 ntlmrelayx.py의 -tf 스위치에 바로 가져올 수 있는 대상 파일을 생성합니다.--audit 모드에서 자동으로 실행됩니다. --no-ghosts로 비활성화할 수 있습니다. 전체 결과는 기본 보고서와 함께 possible-ghost-spns.txt에 기록되며, 보고서 자체에는 복잡함을 피하기 위해 처음 5개만 표시됩니다.-k(및 --dc-ip에 대한 FQDN)를 통한 Kerberos 인증은 꽤 잘 작동합니다. 환경에 NTLM이 완전히 비활성화된 도메인 컨트롤러가 있지만 다른 곳에서는 허용하는 경우 를 사용하여 어떤 검사에도 영향을 주지 않도록 할 수 있습니다. 또한 SOCKS/다른 프록시 피벗을 통해 수행되는 작업에는 와 를 사용할 수 있습니다. 이 시나리오에서도 Kerberos는 매우 쉽게 작동합니다.-h로 명령줄 인자/사용법을 출력합니다:python3 relayking.py -h
python3 relayking.py -u ‘lowpriv’ -p ‘lowpriv-password’ -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql,http,https --threads 10 -o plaintext,json --output-file relayking-scan --proto-portscan --ntlmv1 --gen-relay-list relaytargets.txt
python3 relayking.py -u ‘lowpriv’ -p ‘lowpriv-password’ -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql -o plaintext,json --output-file relayking-scan --proto-portscan --gen-relay-list relaytargets.txt
python3 relayking.py -u ‘lowpriv’ -p ‘lowpriv-password’ -d client.domain.local -vv --protocols smb,ldap,ldaps,mssql,http,https -o plaintext SERVER1-EXAMPLE.LAB.LOCAL
python3 relayking.py --null-auth -vv --protocols smb,ldap,http -o plaintext 10.0.0.0/24
python3 relayking.py -u ‘lowpriv’ -p ‘lowpriv-password’ -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql,http,https --threads 10 -o plaintext,json --output-file relayking-scan --proto-portscan --ntlmv1-all --gen-relay-list relaytargets.txt
--threads로 지정되는 10개의 메인 스캐너 스레드/작업이 있습니다. 각 메인 스레드에는 특정 작업을 위한 작업자 스레드가 있습니다. 예를 들어 HTTP는 메인 스레드당 20개의 스레드를 사용합니다. 결과적으로 HTTP NTLM 인증을 스캔하기 위해 약 200개의 HTTP 스레드가 열립니다. 대부분의 경우 상당히 잘 견디지만 지연/네트워크 문제가 발생하면 스레드를 줄이세요. 어차피 기본 10개 스레드는 매우 빠릅니다.--proto-portscan을 거의 항상 사용하고 싶을 것입니다. 성능을 크게 향상시키고 실제로 열려 있지 않은 포트에서 타임아웃을 기다리는 것을 방지합니다. 문제가 발생하면 스캔 성능을 희생하고 제거할 수 있습니다 (하지만 문제가 없을 것입니다!)--max-scangroup, --split-into 및 --skip 옵션을 사용하여 그룹화를 제어할 수 있습니다.--max-scangroup을 지정하여 각 그룹의 대상 수를 지정할 수 있습니다. 예를 들어, --max-scangroup 100은 299개의 대상을 3개의 그룹으로 나눕니다. 그룹은 100, 100, 99개의 대상을 갖게 됩니다.--split-into를 지정하여 그룹 수를 지정할 수 있습니다. 예를 들어, --split-into 3은 299개의 대상을 3개의 그룹으로 나눕니다. 그룹은 100, 100, 99개의 대상을 갖게 됩니다. --max-scangroup과 --split-into를 동시에 지정할 수는 없습니다.--skip을 지정하여 그룹을 건너뛸 수 있습니다. 예를 들어, --max-scangroup 3 --skip 1은 299개의 대상을 100, 100, 99개의 대상으로 3개의 그룹으로 나누고 첫 번째 그룹을 건너뛴 다음 두 번째 그룹부터 스캔을 시작합니다. 이 도구를 다시 시작하려는 경우에 유용합니다.--ntlmv1 또는 -ntlmv1-all: --ntlmv1을 추가하면 도메인의 모든 LanMan GPO만 가져옵니다. 낮은 권한의 AD 자격 증명이 필요합니다. --ntlmv1-all은 관리자 자격 증명이 필요하며 SMB가 열려 있는 도메인의 모든 개별 호스트에서 LMCompatibilityLevel 레지스트리 키를 확인합니다. 최소한 --ntlmv1을 실행하는 것은 교차 프로토콜 SMB 릴레이 경로를 표시/탐지하는 데 필요합니다.
--ntlmv1-all에 문제가 발생할 수 있습니다. 또한 매우 무겁고 OPSEC에 안전하지 않지만 철저합니다. YOLO 하거나 절박한 경우가 아니면 권장되지 않을 수 있습니다.-o json,plaintext)으로 형식을 제공하고 --output-file relayking-scan을 사용하면 relayking-scan.json + relayking-scan.txt가 생성되므로 여러 형식을 위해 두 번 실행할 필요가 없습니다. 사용 가능: plaintext, json, xml, csv, grep, markdown (기본값: plaintext)--coerce-all 기능은 대상이 되는 모든 호스트에서 PetitPotam, DFSCoerce 및 PrinterBug를 사용합니다. 또한 전체 프로토콜 감사를 실행하지 않고 도메인의 모든 머신을 대규모로 강제합니다. 동시에 --audit + 를 제공하면 도메인 감사 대규모 강제를 수행합니다. ()--opsec-safe 모드. 구현하기 쉽지 않습니다.--ntlmv1, 자격 증명 검증기, 고스트 SPN 모듈, 그리고 대상 분석기가 모두 인증을 각자 수행한다고 생각합니다. 이것은 정말 터무니없으며 인증을 위한 단일 모듈로 통합되어야 합니다.-vv 또는 -vvv로 도구를 실행하세요. 로깅은 각 버전에서 계속 개선됩니다.--audit을 실행했는데 대상 DNS 영역에서 DNS 서버가 컴퓨터 FQDN 확인을 거부하여 RelayKing이 DNS에서 호스트를 전혀 확인하지 못하는 경우. RelayKing 문제가 아닙니다.있는 그대로 제공됩니다. 많은 버그가 분명히 존재합니다. 위를 참조하세요. 불법/무단 활동을 위해 설계되거나 의도된 것이 아닙니다, 당연히.
클라이언트 작업 및 해당 네트워크에서 실행하는 모든 도구의 동작과 특성을 고려하세요. 이는 실행 전에 도구 소스를 읽고 내부 작동 방식을 이해함으로써 달성되며, GitHub에서 찾은 코드를 맹목적으로 실행하는 것이 아닙니다. RelayKing 내부에 의도적으로 악의적/파괴적인 코드가 없다고 확신할 수 있지만, 모든 새로운/사용하지 않은 도구를 실행하기 전에 검증하는 것은 일반적으로 좋은 관행입니다. 신뢰하되, 항상 검증하세요.
레드 팀 훈련에서 사용할 때 주의하세요, 특히 인증된 검사와 --audit에서. 당신은 반드시 탐지될 것이며 그것은 당신의 잘못입니다! 만약 이 문장을 읽고 있는데 이미 이것을 몰랐다면 README 상단의 경고를 읽었어야 합니다.
극히 가능성은 낮지만, RelayKing이 무언가를 망가뜨린다면 스스로 감당해야 하며, 작성자나 Depth Security는 RelayKing 실행으로 인해 발생할 수 있는 (아무리 가능성이 낮더라도) 어떤 결과/이슈/문제/뒤집힌-지리공간-비트-플리핑-핵폭발에 대해 책임을 지지 않습니다. 결과는 다를 수 있습니다. RelayKing은 다시 한번 말하지만, 어떤 특정 결과, 기능, 유용성 또는 동작에 대한 보증이나 보장 없이 제공됩니다 - 여기에 명시적으로 언급되었거나(및/또는 언급되지 않았거나) 또는 그 외에 암시적으로든.
작성자(logansdiomedi)의 유일한 정식 GitHub 저장소는 https://github.com/depthsecurity/RelayKing-Depth 입니다 - 다른 모든 것은 포크/복사본/기타 등등이며, 작성자는 기능/동작/정당성에 대해 읽거나, 검증하거나, 테스트하거나, 분석하거나, 검사하지 않았을 가능성이 높습니다. 머리를 쓰세요.
MIT License - 자세한 내용은 LICENSE 파일을 참조하세요
--krb-dc-only--dns-tcp-ns--coerce--audit 모드 전용): 호스트 스캔이 완료된 후 RelayKing은 호스트 이름에 DNS 레코드가 없는 SPN을 AD에서 쿼리합니다. 이들은 NTLM 인증을 가로채는 DNS 등록 공격의 후보입니다. 보고서에는 출력을 관리하기 쉽게 최대 5개의 결과가 포함됩니다. 전체 목록은 항상 작업 디렉터리의 possible-ghost-spns.txt에 기록됩니다. --no-ghosts를 전달하면 이 확인을 완전히 건너뜁니다.--remove-mic 플래그를 사용한 교차 프로토콜 릴레이 후보로 식별됩니다.