
포트 789에서 수신 대기하도록 작성한 C# 응용 프로그램이 있습니다. 이 응용 프로그램은 Windows XP Professional 컴퓨터에서 실행됩니다. 달리기
netstat -an | find "789"
TCP 0.0.0.0:789 0.0.0.0:0 LISTENING
다른 Linux 시스템(동일한 서브넷)에서 실행하면 nmap -A -vv ip
호스트에서 열려 있는 다른 포트(예: mysql, vnc 등)만 보고되고 내 응용 프로그램에서 열린 포트는 보고되지 않습니다.
그러나 실행하면 다음과 같은 nmap -p 789 ip
결과를 얻습니다.
PORT STATE SERVICE
789/tcp open unknown
두 nmap 스캔 사이에 차이점이 있는 이유는 무엇입니까? 전체 스캔을 수행할 때 nmap이 열린 포트를 감지하도록 할 수 있는 방법이 있습니까?
답변1
기본적으로 nmap은 "공통" 포트(프로토콜당 가장 일반적인 1000개의 포트)만 검색합니다. 789는 일반적인 포트가 아니기 때문에 찾을 수 없습니다. 만약 당신이
nmap -A -vv -p- ip
포트 1-65535를 스캔해야 합니다.
기본적으로 어떤 포트가 스캔되는지 알려주는 nmap 문서는 다음과 같습니다. http://nmap.org/book/man-port-specation.html
답변2
이를 수행할 수 있는 유일한 방법은 nmap의 서비스 파일을 수정하는 것인데 이는 권장되지 않습니다. 이 -A
옵션은 서비스 검색, OS 검색, 라우팅 추적 등을 포함한 고급 옵션을 실행하며 전체 범위를 검색하지는 않습니다. 65k 포트를 모두 스캔하려면 옵션을 사용하십시오 -p-
. 그 외에는 포트를 -p 789
. 최선의 선택은 아마도 시간을 절약하기 위해 별칭을 만드는 것입니다 nmap -p 789
.
서비스 파일(기본적으로 /usr/local/share/nmap/nmap-services)을 정말로 변경해야 한다면, 읽는 줄을 찾아서 unknown 789/tcp 0.000075
프로그램 이름으로 바꾸고, 끝에 번호를 넣으십시오 0.9
. 최상위 포트 nmap에는 다음이 포함됩니다. 별칭이 훨씬 더 좋을 것입니다.
답변3
잘 모르겠습니다. "열림"으로 감지하고 있는데, 이것이 바로 당신이 원하는 것입니까? 그래서~이다청취. -A를 사용하여 찾을 수 없는 이유는 확실하지 않습니다.
편집 - 이것은 귀하의 버전에 적용되지 않을 수 있는 이전 문서에서 가져온 것입니다. 실행하여 man nmap
사용 중인 버전을 알려주세요.
문서에서 다음을 볼 수 있습니다.
"기본값은 1에서 1024 사이의 모든 포트와 nmap과 함께 제공되는 서비스 파일에 나열된 모든 포트를 검색하는 것입니다."
따라서 서비스 파일에 789가 없더라도 789를 검색해야 합니다("알 수 없음"으로 표시되어 있으므로 그렇지 않을 것이라고 확신합니다).
따라서 나는 모른다. nmap 버전에 대한 man 파일을 확인하십시오. -A를 사용하여 스캔할 포트의 동작이 내가 찾은 문서와 다를 수 있습니까?
가능성은 낮지만 조사해 볼 가치가 있습니다. 차이점은 Linux 시스템의 사용자 ID에 있을 수 있습니다. NMap의 권한이 있는 사용자와 권한이 없는 사용자는 기본 스캔 유형이 다릅니다. 루트가 있는 사용자는 TCP SYN 스캔을 수행할 수 있으며 루트가 없는 사용자는 기본적으로 TCP connect() 를 사용합니다.
답변4
nmap은 -A
백그라운드에서 여러 스크립트를 실행하므로 공격적인 명령이며 이것이 더 많은 결과를 제공하는 주된 이유입니다. 이는 버전 감지를 -sV
운영 체제 감지 -O
(숫자 0이 아닌 대문자 O) 및 기타 검색 스크립트와 결합합니다. 기본적으로 Nmap은 특정 포트 번호가 지정되지 않은 경우 처음 1000개의 가장 일반적인 포트를 검색합니다(이 포트는nmap 서비스편집할 수 있는 파일입니다). 공격적인 명령은 스캔하려는 포트와 함께 제공될 수 있으므로 스캔하려는 포트(TCP 789) 이외의 다른 포트에 대한 결과를 얻지 못합니다.
nmap -p 789 -A TARGET_IP_ADDRESS_OR_IP_RANGE
반면 귀하의 경우 포트 789가 열려 있는지/닫혀 있는지/필터링되었는지 확인하려는 경우
nmap -p 789 TARGET_IP_ADDRESS_OR_IP_RANGE
여러 스크립트를 실행하고 시끄럽기 때문에 -A
(네트워크 트래픽 측면에서) IDS에 의해 쉽게 플래그가 지정되고 방화벽이나 IPS에 의해 차단될 가능성이 높으며 이는 올바른 포트 상태를 제공하지 않는 이유 중 하나일 수 있습니다.