
Responder 포이즈닝과 Impacket 릴레이 및 secretsdump를 결합하여 자격 증명 탈취, 해시 릴레이, 측면 이동을 수행하는 자동화된 NTLM 릴레이 공격 도구
이름에서 알 수 있듯이, 독입니다. Cyanide는 본질적으로 다양한 중독(poisoning) 기법(현재는 Responder만 사용됨)을 Impacket의 ntlmrelayx.py를 통한 캡처된 해시 릴레이와 연관 짓기 위한 트래커입니다. 시작 시 SMB, HTTP, DNS 서버 없이 Responder를 시작하고, 기본적으로 SMB 및 HTTP 서버로 Ntlmrelayx를 시작합니다. 출력은 다음 정보를 알려줍니다:
ntlmrelayx 대상 파일은 필수입니다. 해시만 캡처하려면 smb://127.0.0.1을 입력하면 되고, 그렇지 않으면 평소처럼 대상 목록을 제공하세요 (예: smb://10.0.0.8\n mssql://10.0.0.9)
사용할 수 있는 몇 가지 방법이 있습니다.
권장되는 방법입니다. 이 방법은 SMB/HTTP를 통해 캡처된 해시를 사용하여 대상 파일에 지정된 대상으로 릴레이합니다. 릴레이에 성공하면 secretsdump가 실행되고 SAM이 (가급적이면) 덤프됩니다.
성공적인 로그인을 위해서는 대상 엔드포인트에서 smb signing이 비활성화되어 있어야 합니다.
이 방법은 Responder를 통해 호스트를 계속 중독시키지만 릴레이하지는 않습니다. SMB/HTTP 캡처를 계속하려면 필수 ntlmrelayx 대상 파일에 smb://127.0.0.1 호스트를 지정해야 합니다.
python3 -m venv venv
. venv/bin/activate
git clone https://github.com/horizon3ai/cyanide.git
cd cyanide
pip install -r requirements.txt
sudo -i (must be ran under root account)
python cyanide.py -iface <eth0> --watch --stdout-only --responder -ntf ntlmrelayx_targets.txt
참고: --watch/-w를 사용하면 프로그램 실행 중에 대상 파일을 편집하고 대상을 추가/삭제할 수 있습니다. Impacket은 변경 사항을 자동으로 감지하고 업데이트합니다.
python cyanide.py -iface <eth0> --stdout-only --responder -ntf ntlmrelayx_targets.txt --no-relay
Cyanide는 sqlite 데이터베이스를 사용하여 중독된 호스트(poisoner_cache.db), 발생한 릴레이(poisoner_relay.db) 정보를 저장하며, (--stdout-only를 지정하지 않은 경우) 포이즈너 소스, 릴레이 이벤트, secretsdump 데이터를 포함한 최종 메시지가 프로덕션 데이터베이스(poisoner_prod.db)에 저장됩니다. poisoner_prod.db는 30초마다 지정된 출력 파일로 덤프됩니다. 참고: 즉, 결과는 30초마다 덮어쓰여집니다.
python cyanide.py -iface <eth0> --watch --responder -ntf ntlmrelayx_targets.txt
python cyanide.py -iface <eth0> --responder -ntf ntlmrelayx_targets.txt --no-relay
horizon3_impacket 아래의 파일을 제외한 모든 코드는 GPLv3 라이선스를 유지합니다. horizon3_impacket 아래의 모든 코드는 Impacket의 원래 Apache 라이선스를 유지합니다. 자세한 내용은 licenses 디렉토리를 참조하세요.