나는 이것을 알아내는 데 어려움을 겪고 있습니다. 아마도 nmap
ACK 스캔이나 ACK 스캔을 사용하여 상태 저장 방화벽과 상태 비저장 방화벽을 구별할 수 있지만 ACK 스캔의 출력에서 이 사실을 식별하는 -sA
방법을 모르겠습니다 .nmap
내가 아는 한, nmap
ACK로 표시된 패킷은 대상으로 전송되고 대상은 일부 기준에 따라 응답할지 여부를 결정합니다.
- 포트가 열려 있거나 닫혀 있고 필터링되지 않은 경우 대상은 RST로 응답합니다.
- 필터가 트래픽을 삭제하는 경우 대상은 전혀 응답하지 않습니다.
- 필터가 트래픽을 거부하면 대상은 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
!nmap
IPTABLES
상태 비저장 방화벽에서 상태 저장 방화벽과 동일한 출력을 얻을 수 있다면 nmap
ACK 스캔을 통해 어떤 방화벽이 있는지 어떻게 알 수 있습니까?
너무 답답해서 도움을 받을 수 있다면 정말 감사하겠습니다.
답변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