
포트 스캐너를 속이는 경량 유틸리티
이 스크립트는 원하는 만큼 많은 소켓을 열기 위한 것입니다 (1024 ~ 65535 사이).
1024보다 낮은 포트도 작동하지만, 루트 사용자여야 합니다.
이것은 사람들이 당신의 장치를 매핑하여 어떤 서비스를 실행 중인지 알아내는 것을 방지하고자 할 때 유용합니다. 정찰을 방어하는 작은 단계입니다.
Portforge.cr은 Crystal 컴파일러에 내장된 Fibers라는 기술을 사용합니다.
Fibers는 시스템 스레드와 매우 유사하지만 훨씬 가볍고 실행이 프로세스에 의해 관리됩니다 1.
선택한 범위가 클수록 스크립트가 모든 소켓을 로드하는 데 더 오래 걸리지만, 스크립트를 최적화하기 위해 최선을 다했으므로 보통 몇 분 정도면 됩니다 (물론 시스템에 따라 다름).
스크립트는 2단계로 작동합니다.
먼저 시스템을 자체 스캔하여 어떤 포트가 이미 열려 있는지 확인합니다.
열린 포트는 하나의 목록에, 닫힌 포트는 다른 목록에 저장됩니다.
다음 단계는 닫힌 포트를 여는 것으로, 스크립트는 모든 닫힌 포트 목록을 가져와 각 포트에 소켓을 엽니다.
메인 파이버가 모든 포트에 소켓을 여는 동안, 메인 파이버 아래에 또 다른 파이버가 호출되어 들어오는 연결을 수신하고 직접 닫습니다.
이 과정은 무한히 반복되거나 스크립트를 중단할 때까지 계속됩니다.
crystal build portforge.cr
./portforge IP startport endport
첫 번째 이미지는 portforge.cr이 실행 중인 모습이고, 두 번째는 Nmap 스캔 결과입니다.
보시다시피 Nmap은 제가 모든 서비스를 실행 중이라고 생각하지만, 실제로는 portforge.cr만 실행 중입니다.
