상태 저장 방화벽과 상태 비저장 방화벽을 구별하기 위해 nmap ACK 스캐닝을 사용하는 방법

상태 저장 방화벽과 상태 비저장 방화벽을 구별하기 위해 nmap ACK 스캐닝을 사용하는 방법

나는 이것을 알아내는 데 어려움을 겪고 있습니다. 아마도 nmapACK 스캔이나 ACK 스캔을 사용하여 상태 저장 방화벽과 상태 비저장 방화벽을 구별할 수 있지만 ACK 스캔의 출력에서 ​​이 사실을 식별하는 -sA방법을 모르겠습니다 .nmap

내가 아는 한, nmapACK로 표시된 패킷은 대상으로 전송되고 대상은 일부 기준에 따라 응답할지 여부를 결정합니다.

  1. 포트가 열려 있거나 닫혀 있고 필터링되지 않은 경우 대상은 RST로 응답합니다.
  2. 필터가 트래픽을 삭제하는 경우 대상은 전혀 응답하지 않습니다.
  3. 필터가 트래픽을 거부하면 대상은 ICMP 오류 메시지를 보냅니다.

그렇다면 "nmap"은 RST로 응답하는 모든 포트를 보고합니다.필터링되지 않은그리고 다른 모든 포트거르는. 이는 다음과 같습니다... ( IPTABLES상태 비저장 규칙이 있는 방화벽 사용)

$ sudo nmap -sA -T4 192.168.219.135


Starting Nmap 7.12 ( https://nmap.org ) at 2016-06-28 16:35 EDT     
Nmap scan report for metasploitable (192.168.219.135)    
Host is up (0.00027s latency).   
Not shown: 994 filtered ports   
PORT    STATE      SERVICE  
22/tcp  unfiltered ssh  
25/tcp  unfiltered smtp  
53/tcp  unfiltered domain  
70/tcp  unfiltered gopher  
80/tcp  unfiltered http  
113/tcp unfiltered ident  
MAC Address: 00:0C:29:B7:F7:70 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 4.40 seconds

이 출력을 바탕으로 이것이 상태 저장인지 상태 비저장인지 어떻게 알 수 있나요?

나는 이 책을 포함하여 그 주제에 관한 모든 것을 읽었 nmap지만 단 하나의 예도 나에게 이해가 되지 않습니다. 이는 기본적으로 책의 예제 10.2와 동일한 출력입니다 nmap. 실제로 거의 동일합니다. 문제는 책에서 이것이 상태 저장 규칙을 실행하는 호스트에 대한 출력이라고 명시하고 있다는 것입니다 nmap!nmapIPTABLES

상태 비저장 방화벽에서 상태 저장 방화벽과 동일한 출력을 얻을 수 있다면 nmapACK 스캔을 통해 어떤 방화벽이 있는지 어떻게 알 수 있습니까?

너무 답답해서 도움을 받을 수 있다면 정말 감사하겠습니다.

답변1

상태 저장 방화벽과 상태 비저장 방화벽 간의 동작 차이점을 고려해 보겠습니다. 상태 비저장 방화벽은 포트 번호를 기준으로 차단하지만 들어오는 ACK 패킷만 차단할 수는 없습니다. 이러한 패킷은 나가는 연결에 대한 응답으로 전송될 수 있기 때문입니다. 따라서 -sA검색 관점에서 볼 때 방화벽은 SYN 패킷만 필터링하므로 포트는 "필터링되지 않음"으로 표시됩니다.

반면에 상태 저장 방화벽은 들어오는 ACK 패킷이 설정된 나가는 연결의 일부인지 여부를 확인할 수 있습니다. 의 경우와 같이 요청하지 않은 경우에만 패킷을 차단합니다 -sA. 따라서 Nmap은 포트를 "필터링됨"으로 표시합니다.

따라서 최종 결론은 다음과 같습니다. ACK 스캔에서 일부 포트가 "필터링됨"으로 표시되면 이는 아마도 상태 저장 방화벽일 가능성이 높습니다. 모두 "필터링되지 않음"으로 표시되지만 일반 SYN 검사에서 일부 "필터링됨"이 표시되는 경우 이는 상태 비저장 방화벽입니다.

답변2

아래 답변에 동의합니다.보나스 바이킹스. 즉흥적으로, 기본적으로 일부 시스템 구현 세부 사항을 활용하는 창 스캔( )이 있습니다 -sW(따라서 nmap은 항상 신뢰할 수는 없다는 경고를 표시합니다). RST에서 반환된 패킷( -sA또는 -sW)은 TCP 창 필드를 확인하고 포트를 열지 닫을지 여부를 결정합니다.

인용하다:https://nmap.org/book/man-port-scanning-techniques.html

관련 정보