원격 호스트가 특정 포트에 도달 할 수 있는지 확인해야합니다. 테스트시 해당 포트에 바인딩 된 서비스가 다운됩니다.
테스트로 해결할 수있는 문제는 다음과 같습니다.
- 네트워크를 통해 원격 호스트가 포트에 도달 할 수 있습니다.
- 호스트 (수신자)의 방화벽은 원격 호스트가 해당 포트에 연결할 수 있도록합니다.
텔넷을 시도했습니다. 그러나 telnet은 서비스가 해당 포트에 바인드되지 않은 경우 0이 아닌 종료 코드를 리턴합니다. 가능한 옵션은 무엇입니까?
업데이트 :
이 작업을 수행하는 nmap 방법이 없습니까? 필터링 된 상태의 출력은 빨간색 플래그를 의미해야합니다.
샘플 명령 : $ nmap -v 120.114.24.56 -P0 -p 8080
참조 : http://nmap.org/book/man-port-scanning-basics.html
Nmap이 인정한 6 개의 포트 상태 – (적색으로 표시된 상태는 이상적으로 우리에게 붉은 깃발이어야 함)
열다
응용 프로그램이이 포트에서 TCP 연결, UDP 데이터 그램 또는 SCTP 연관을 적극적으로 승인하고 있습니다. 이것을 찾는 것이 종종 포트 스캐닝의 주요 목표입니다. 보안을 염두에 둔 사람들은 각 열린 포트가 공격의 수단이라는 것을 알고 있습니다. 공격자와 펜 테스터는 열린 포트를 이용하려고하지만 관리자는 합법적 인 사용자를 방해하지 않고 방화벽으로 포트를 닫거나 보호하려고합니다. 개방 포트는 네트워크에서 사용할 수있는 서비스를 보여주기 때문에 비보안 스캔에도 유용합니다.
닫은
닫힌 포트에 액세스 할 수 있지만 (Nmap 프로브 패킷을 수신하고 이에 응답) 애플리케이션이 수신 대기하지 않습니다. 호스트가 IP 주소 (호스트 검색 또는 핑 스캔)에 있고 OS 감지의 일부로 작동 중임을 표시하는 데 도움이 될 수 있습니다. 닫힌 포트에 접근 할 수 있기 때문에 일부가 열린 경우 나중에 스캔 할 가치가 있습니다. 관리자는 방화벽으로 이러한 포트를 차단하는 것을 고려할 수 있습니다. 그러면 다음에 설명 할 필터링 된 상태로 나타납니다.
거르는
패킷 필터링으로 프로브가 포트에 도달하지 못하므로 Nmap이 포트가 열려 있는지 확인할 수 없습니다. 필터링은 전용 방화벽 장치, 라우터 규칙 또는 호스트 기반 방화벽 소프트웨어에서 수행 할 수 있습니다. 이 포트는 정보를 거의 제공하지 않기 때문에 공격자를 좌절시킵니다. 때로는 유형 3 코드 13 (대상에 도달 할 수 없음 : 통신 관리가 금지됨)과 같은 ICMP 오류 메시지로 응답하지만 응답없이 프로브를 삭제하는 필터가 훨씬 일반적입니다. 이렇게하면 필터링 대신 네트워크 정체로 인해 프로브가 삭제 된 경우를 대비하여 Nmap이 여러 번 재 시도합니다. 스캔 속도가 크게 느려집니다.
여과되지 않은
필터링되지 않은 상태는 포트에 액세스 할 수 있지만 Nmap이 포트가 열려 있는지 닫혀 있는지 확인할 수 없음을 의미합니다. 방화벽 규칙 세트를 맵핑하는 데 사용되는 ACK 스캔 만 포트를이 상태로 분류합니다. 창 스캔, SYN 스캔 또는 FIN 스캔과 같은 다른 스캔 유형으로 필터링되지 않은 포트를 스캔하면 포트가 열려 있는지 확인하는 데 도움이 될 수 있습니다.
열림 | 필터링 됨
Nmap은 포트가 열려 있는지 또는 필터링되었는지 확인할 수없는 경우 포트를이 상태로 둡니다. 이것은 열린 포트가 응답을 제공하지 않는 스캔 유형에 대해 발생합니다. 응답이 없다는 것은 패킷 필터가 프로브 나 해당 응답을 떨어 뜨 렸음을 의미 할 수도 있습니다. 따라서 Nmap은 포트가 열려 있는지 또는 필터링되고 있는지 확실하지 않습니다. UDP, IP 프로토콜, FIN, NULL 및 Xmas 스캔은 이러한 방식으로 포트를 분류합니다.
폐쇄 | 필터링 됨
이 상태는 Nmap이 포트가 닫혔는지 또는 필터링되었는지 확인할 수 없을 때 사용됩니다. IP ID 유휴 스캔에만 사용됩니다.
답변
리소스에 대한 액세스 권한에 따라 수행하기가 어렵거나 불가능하지는 않습니다.
유닉스 기반 서버 인 경우 서버에서 tcpdump를 실행하고 (관심있는 포트의 트래픽 만 수신하는 방식으로) Telnet을 통해 연결하십시오. 물론 Telnet은 실패하지만 최소한 응답이없는 수신 트래픽 만 있더라도 tcpdump를 통한 수신 서버 시도를 볼 수 있습니다. 이것은 트래픽이 박스에 도달한다는 것을 의미합니다. 박스에 프로그램이 작동하지 못하게하는 방화벽이 없다는 것을 의미하지는 않습니다.
답변
서버에서 이미 수신 대기중인 것이 없으면 일반적으로 포트에서 서비스를 시작합니다. 최신 방화벽은 패킷 검사를 사용할 수 있으므로 포트에서 수신 대기하려는 것이 제대로 작동한다는 보장은 없습니다.
nc와 같이이를 수행 할 수 있습니다 (예 : 포트 6667의 TCP의 경우)
nc -l 6667
그런 다음 송신 측에서 telnet 또는 nc를 시도하십시오. nc가 없으면 플랫폼에 따라 perl 및 예를 들어 IO :: Socket :: Inet 또는 python 또는 powershell을 사용하여 간단한 소켓 리스너를 작성할 수 있습니다.
UDP의 경우 nc를 -u 플래그와 함께 사용할 수 있지만 telnet으로는 확인할 수 없지만 nc는 송신 측에서도 작동합니다.