
아웃바운드(이그레스) 방화벽 규칙을 테스트하도록 설계된 클라이언트/서버 스크립트.
아웃바운드(egress) 방화벽 규칙을 테스트하기 위해 설계된 클라이언트/서버 스크립트입니다.
Egresser는 기업 네트워크 내에서 이그레스 필터링이 적절한지 평가하기 위해 침투 테스터를 위해 설계된, 아웃바운드 방화벽 규칙을 열거하는 도구입니다. 각 TCP 포트를 차례로 프로브하면 Egresser 서버가 클라이언트의 소스 IP 주소와 포트로 응답하여 클라이언트가 아웃바운드 포트가 허용되는지 여부(IPv4 및 IPv6 모두)를 결정하고 NAT 통과가 발생하고 있는지 평가할 수 있습니다.
작동 방식
서버 측 스크립트는 Iptables와 함께 작동하여 모든 TCP 트래픽을 '실제' 서버가 있는 포트 8080으로 리디렉션합니다. 서버 측 스크립트는 Perl로 작성되었으며 Net::Server::Prefork를 사용하는 프리포킹 서버로, 가능한 경우 IPv4와 IPv6 모두에서 수신 대기합니다. 모든 TCP 연결은 연결된 클라이언트의 IP와 포트로 구성된 널 종료 문자열을 포함하는 간단한 응답을 생성합니다. Egresser 클라이언트에 액세스할 수 없는 제한된 환경에 있는 경우 Telnet을 사용하여 서비스와 상호 작용할 수 있습니다(당사의 Egresser 서버는 egresser.labs.cyberis.co.uk에서 찾을 수 있으며 합법적인 목적으로 자유롭게 사용할 수 있습니다).
클라이언트도 Perl로 작성되었으며 속도를 위해 스레드로 구현되었습니다. 기본적으로 TCP 포트 1-1024를 스캔하지만, 이는 스크립트 내에서 구성 가능합니다. 명령줄 인수 ‘-4’를 사용하여 IPv4를 강제하거나 ‘-6’을 사용하여 IPv6를 강제할 수 있습니다. 기본적으로 운영 체제에서 선호하는 프로토콜을 선택합니다. 열린/닫힌 모든 포트를 명시적으로 나열하려면 상세 플래그(-v)를 지정하십시오. 일반 출력은 허용된 포트만 간결하게 요약한 것입니다.
왜?
기업 환경에서는 아웃바운드 방화벽 규칙을 제한하여 경계 제어가 쉽게 우회되지 않도록 하는 것이 좋습니다. 예를 들어, 조직 내 부적절한 이그레스 필터링은 악의적인 사용자가 브라우저의 연결 설정을 변경하기만 하면 필터링/안티바이러스/로깅을 제공하는 웹 프록시를 쉽게 우회할 수 있습니다. 다른 많은 예도 있습니다. 많은 웜이 SMB 프로토콜을 통해 확산되고, 맬웨어는 다양한 채널을 사용하여 데이터를 유출할 수 있으며, 잠재적으로 승인되지 않은 소프트웨어(예: 토렌트/P2P 파일 공유)가 자유롭게 작동하여 기업 리소스를 낭비하고 환경에 악성 코드가 유입될 가능성을 크게 높일 수 있습니다.
일반적으로 모든 아웃바운드 프로토콜을 제한하고, 특정 호스트에 대한 예외는 사례별로 허용하는 것이 좋습니다. 웹 브라우징은 전용 웹 프록시를 통해서만 수행해야 하며, 직접 연결 시도는 경계 방화벽에서 기록하고 필요에 따라 조사해야 합니다. Egresser는 침투 테스터가 기업 환경 내에서 허용된 포트를 신속하게 열거할 수 있는 간단한 사용 도구입니다.
iptables 1.4.17 이상, 그리고 커널 3.7+가 ipv6 nat 지원에 필요합니다.
클라이언트에는 다음 Perl 모듈이 필요합니다.
Thread::Queue ;
IO::Socket::IP;
Getopt::Long;
서버에는 다음 Perl 모듈이 필요합니다.
Net::Server::PreFork
모든 문제는 https://github.com/cyberisltd/Egresser/issues 를 통해 보고해 주시기 바랍니다.