Netcat에 대한 올바른 이해 [닫기]

Netcat에 대한 올바른 이해 [닫기]

Netcat은 나를 약간 혼란스럽게 하는데 그 이유는 다음과 같습니다.
실행하면
nmap localhost 여러 포트가 열려 있는지 닫혀 있는지에 대한 정보와 함께 나열됩니다. 따라서 다음 명령을 실행 nc -l -p 60000하고 다른 터미널에서:
nmap localhost -p 60000
포트 60000이 나열되고 열려 있다고 표시됩니다.
듣기를 멈추면 꺼진 것입니다. 나는 netcat 수신기가 단지 듣고 있다고 생각합니다. 여기서 내가 이해한 것은 그것이 특정 포트를 연다는 것입니다. 명령을
실행할 때 포트가 나열되지 않는 이유는 무엇입니까 ? 항상 몇 개의 포트만 있습니다.nmap localhost

답변1

TCP 포트는 주소로 사용되는 숫자일 뿐입니다. 포트가 "열려 있다"는 것은 프로세스가 해당 포트 번호로 들어오는 연결을 위해 운영 체제에 등록되었으며 Nmap과 프로그램 사이에 연결이 중단되지 않는다는 것을 의미합니다. 포트의 기본 상태는 "닫힘"입니다. 즉, 해당 포트에 운영 체제에 대한 연결을 등록한 프로세스가 없으므로 운영 체제는 이러한 연결을 거부합니다.

포트 60000에서 netcat 수신기를 시작하면 해당 포트에서 연결을 수락할 준비가 된 것입니다. Nmap으로 스캔하면 연결이 승인되므로 Nmap은 이를 "open"으로 표시합니다. 그러나 netcat 수신기는 이미 연결을 처리했기 때문에 종료되므로 다음번에는 포트가 "닫힘"으로 표시됩니다.

전통적인 온라인 고양이한 번에 하나의 연결만 처리할 수 있습니다.OpenBSD 네트워크 고양이그리고인터넷 고양이이 옵션을 사용하여 포트에서 다중 연결을 허용할 수 있습니다 -k.

-sS사용하려면 루트 권한이 필요한 half-open TCP SYN 스캔 옵션( )을 사용하여 Nmap에 대한 전체 연결 설정을 피할 수 있습니다. 이 경우 Nmap은 완전한 연결을 설정할 수 없으므로 운영 체제는 netcat에 연결을 알리지 않으며 종료되지 않습니다. 루트 권한을 사용하는 TCP 스캔의 기본 스캔 유형입니다.

관련 정보