
특정 TCP, UDP 및 ICMP 트래픽을 다른 대상으로 리디렉션합니다.
StreamDivert는 시스템에서 들어오고 나가는 네트워크 연결을 중간자 공격하거나 중계하는 도구입니다. 예를 들어, 포트 445로 들어오는 모든 SMB 연결을 다른 서버로 중계하거나, 특정 소스 IP 집합에서 오는 특정 SMB 연결만 다른 서버로 중계할 수 있습니다. 요약하자면, StreamDivert는 다음을 수행할 수 있습니다:
StreamDivert의 미리 컴파일된 바이너리는 여기에서 다운로드할 수 있습니다.
StreamDivert를 어떻게 사용하나요? 관리자 권한으로 도구를 실행하세요:
streamdivert.exe config_file [-f] [-v]
설정 파일은 전환하려는 스트림에 대한 항목을 포함합니다. 예시 설정 파일:
//Divert all inbound TCP connections to port 445 (SMB) coming from 10.0.1.50 to 10.0.1.49 port 445
tcp < 445 10.0.1.50 -> 10.0.1.49 445
//Divert all inbound TCP connections to port 445 (SMB) coming from 10.0.1.51 to a local SOCKS server
tcp < 445 10.0.1.51 -> socks
//Divert all inbound TCP connections to port 445 (SMB) coming from fe80::f477:846a:775d:d37 to fe80::20c:29ff:fe6f:88ff port 445
tcp < 445 fe80::f477:846a:775d:d37 -> fe80::20c:29ff:fe6f:88ff 445
//Divert all inbound TCP connections to port 445 (SMB) to 10.0.1.48 port 445
tcp < 445 0.0.0.0 -> 10.0.1.48 445
//Divert all inbound UDP connections to to port 53 (DNS) to 10.0.1.49 port 53
udp < 53 0.0.0.0 -> 10.0.1.49 53
//Divert all inbound ICMP packets coming from 10.0.1.50 to 10.0.1.49
icmp < 10.0.1.50 -> 10.0.1.49
//Divert all outbound TCP connections to 10.0.1.50, port 80 to 10.0.1.49 port 8080
tcp > 10.0.1.50 80 -> 10.0.1.49 8080
//Send all packets going to 10.0.1.50 port 80 and prefer interface 9 to send them. If the interface does not exist or is not up, the packets are send from the default interface.
tcp > 10.0.1.50 80 -> 10.0.1.50 80 interface 9
//Force all packets going to 10.0.1.50 port 80 over interface 9, or drop the packets if the interface does not exist or is not up.
tcp > 10.0.1.50 80 -> 10.0.1.50 80 force interface 9
//Divert all outbound UDP connection to port 53 (DNS) to 10.0.1.49 port 53
udp > 0.0.0.0 53 -> 10.0.1.49 53
[-f] 플래그가 있으면 Windows 방화벽을 수정하여 애플리케이션이 들어오는 트래픽을 다른 포트로 올바르게 리디렉션할 수 있는 예외를 추가합니다. [-v] 플래그는 로깅의 상세도를 제어합니다. 제공되면 StreamDivert는 리디렉션된 패킷 및 스트림에 대한 세부 정보를 기록합니다.
전환된 연결을 구성할 때 명심해야 할 한 가지는 충돌하는 전환된 스트림이 없도록 하는 것입니다. 다음 예시 설정 파일을 고려하세요:
icmp < 0.0.0.0 -> 10.0.1.50
icmp > 10.0.1.49 -> 10.0.1.48
이 두 전환된 스트림은 서로 충돌합니다. 첫 번째 전환된 스트림의 패킷이 두 번째 패킷 '전환기'에도 포착되기 때문입니다. 일반적으로 이러한 문제는 UDP와 ICMP, 그리고 와일드카드를 사용할 때만 발생합니다.
또한 IPv4를 IPv6 주소로 또는 그 반대로 전환하는 것은 UDP 및 ICMP 트래픽에서 지원되지 않습니다.
원하는 기능: