Netcat Tutorial | Introduction to Netcat | Cybersecurity Certification Training | Edureka
차례:
Netcat (또는 nc)은 TCP 또는 UDP 프로토콜을 사용하여 네트워크 연결을 통해 데이터를 읽고 쓰는 명령 줄 유틸리티입니다. 그것은 네트워크 및 시스템 관리자 무기고에서 가장 강력한 도구 중 하나이며 네트워킹 도구의 스위스 군용 칼로 간주됩니다.
Netcat은 크로스 플랫폼이며 Linux, macOS, Windows 및 BSD에서 사용할 수 있습니다. Netcat을 사용하여 네트워크 연결을 디버그 및 모니터링하고, 열린 포트를 스캔하고, 데이터를 프록시 등으로 전송할 수 있습니다. Netcat 패키지는 macOS 및 Ubuntu와 같은 널리 사용되는 Linux 배포판에 사전 설치되어 있습니다.
넷캣 구문
Netcat 유틸리티의 가장 기본적인 구문은 다음과 같습니다.
nc host port
우분투에서는
netcat
또는
nc
사용할 수 있습니다. 둘 다 OpenBSD 버전의 Netcat에 대한 심볼릭 링크입니다.
기본적으로 Netcat은 지정된 호스트 및 포트에 대한 TCP 연결을 시작하려고합니다. UDP 연결을 설정하려면
-u
옵션을 사용하십시오.
포트 스캐닝
스캔 포트는 Netcat의 가장 일반적인 용도 중 하나입니다. 단일 포트 또는 포트 범위를 스캔 할 수 있습니다.
예를 들어 20-80 범위의 열린 포트를 검색하려면 다음 명령을 사용하십시오.
nc -z -v 10.10.8.8 20-80
-z
옵션은
nc
에게 데이터를 보내지 않고 열린 포트만 스캔하고
-v
옵션은 더 자세한 정보를 제공하도록 지시합니다.
결과는 다음과 같습니다.
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused Connection to 10.10.8.8 22 port succeeded! nc: connect to 10.10.8.8 port 23 (tcp) failed: Connection refused… nc: connect to 10.10.8.8 port 79 (tcp) failed: Connection refused Connection to 10.10.8.8 80 port succeeded!
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Connection to 10.10.8.8 22 port succeeded! Connection to 10.10.8.8 80 port succeeded!
Netcat을 사용하여 서버 소프트웨어 및 해당 버전을 찾을 수도 있습니다. 예를 들어, 기본 SSH 포트 22의 서버에 "EXIT"명령을 보내는 경우:
echo "EXIT" | nc 10.10.8.8 22
결과는 다음과 같습니다.
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4 Protocol mismatch.
UDP 포트를 스캔하려면 아래에 표시된대로 명령에
-u
옵션을 추가하십시오.
nc -z -v -u 10.10.8.8 20-80
대부분의 상황에서 Nmap은 복잡한 포트 스캔을 위해 Netcat보다 나은 도구입니다.
Netcat을 통한 파일 전송
기본 클라이언트 / 서버 모델을 생성하여 Netcat을 사용하여 한 호스트에서 다른 호스트로 데이터를 전송할 수 있습니다.
이는 수신 호스트의 특정 포트에서 청취하도록 Netcat을 설정 한 후 (
-l
옵션 사용) 다른 호스트와 정기적으로 TCP 연결을 설정하고 파일을 통해 전송함으로써 작동합니다.
수신시 다음 명령을 실행하면 수신 연결을 위해 포트 5555가 열리고 출력이 파일로 경로 재 지정됩니다.
nc -l 5555 > file_name
보내는 호스트에서받는 호스트에 연결하고 파일을 보내십시오.
nc receiving.host.com 5555 < file_name
디렉토리를 전송하려면 tar를 사용하여 소스 호스트에서 디렉토리를 아카이브하고 대상 호스트에서 아카이브를 추출 할 수 있습니다.
수신 호스트에서 Netcat 도구를 설정하여 포트 5555에서 수신 연결을 수신하십시오. 수신 데이터는 tar 명령으로 파이프되어 아카이브를 추출합니다.
nc -l 5555 | tar xzvf -
송신 호스트 팩에서 디렉토리를 수신하고 수신 호스트의 수신
nc
프로세스에 연결하여 데이터를 송신하십시오.
tar czvf - /path/to/dir | nc receiving.host.com 5555
양쪽에서 전송 진행 상황을 볼 수 있습니다. 완료되면
CTRL+C
를 입력하여 연결을 닫으십시오.
간단한 채팅 서버 만들기
둘 이상의 호스트간에 온라인 채팅을 작성하는 절차는 파일을 전송할 때와 동일합니다.
첫 번째 호스트에서 Netcat 프로세스를 시작하여 포트 5555에서 청취하십시오.
nc -l 5555
두 번째 호스트에서 다음 명령을 실행하여 청취 포트에 연결하십시오.
nc first.host.com 5555
이제 메시지를
ENTER
하고 Enter 키를 누르면 두 호스트 모두에 표시됩니다.
연결을 닫으
CTRL+C
입력하십시오.
HTTP 요청 수행
curl과 같은 HTTP 요청을위한 훨씬 더 나은 도구가 있지만 Netcat을 사용하여 다양한 요청을 원격 서버로 보낼 수도 있습니다.
예를 들어, OpenBSD 웹 사이트에서 Netcat 매뉴얼 페이지를 검색하려면 다음을 입력하십시오.
printf "GET /nc.1 HTTP/1.1\r\nHost: man.openbsd.org\r\n\r\n" | nc man.openbsd.org 80
HTTP 헤더 및 HTML 코드를 포함한 전체 응답이 터미널에 인쇄됩니다.
결론
이 학습서에서는 Netcat 유틸리티를 사용하여 TCP 및 UDP 연결을 설정하고 테스트하는 방법을 배웠습니다.
자세한 내용은 Netcat 매뉴얼 페이지를 방문하여 Netcat 명령의 다른 모든 강력한 옵션에 대해 읽으십시오.
넷캣 터미널Bing은 연산자 및 구문에 대한 설명과 예제가 포함 된 광범위한 검색 쿼리 목록을 게시했습니다. 단위로 구성됩니다.

Bing Search는 기본 검색 쿼리를 보강하는 여러 가지 방법을 제공합니다. 대부분의 경우 Bing은 Bing API를 사용하여 요청을 조정하는 방법에 대해 이야기했습니다.
예제가 포함 된 Docker 실행 명령

docker run 명령은 주어진 이미지에서 컨테이너를 만들고 주어진 명령을 사용하여 컨테이너를 시작합니다. Docker 작업을 시작할 때 익숙해 져야하는 첫 번째 명령 중 하나입니다.
예제가 포함 된 Linux 티 명령

tee 명령은 표준 입력에서 읽고 표준 출력과 하나 이상의 파일에 동시에 씁니다. 티는 배관을 통해 다른 명령과 함께 가장 일반적으로 사용됩니다.