그물고양이

netcat
그물고양이
Netcat.png
netcat명령하다
원본 작성자*호빗*
개발자어비언 리서치
초기 릴리즈1995년 10월 28일; 26년(1995-10-28)[1]
안정적 해제
1.10 / 2007년 1월 2일; 15년(2007-01-02)
운영 체제Unix 및 Unix 유사, DOS, Microsoft Windows, Windows CE
유형네트워크 효용
면허증원래 버전: 사용자 지정, 허용 라이센스
GNU 버전: GPL
OpenBSD 버전: BSD
웹사이트nc110.sourceforge.그물을 치다

nccat(흔히 nc로 약칭)은 TCP나 UDP를 이용하여 읽고 네트워크 연결로 쓰기 위한 컴퓨터 네트워킹 유틸리티로, 다른 프로그램과 스크립트에 의해 직접 또는 쉽게 구동될 수 있는 신뢰할 수 있는 백엔드로 설계되어 있다.동시에 사용자가 필요로 할 수 있는 거의 모든 종류의 연결을 만들 수 있고 다수의 내장 기능이 있기 때문에 기능이 풍부한 네트워크 디버깅과 조사 툴이다.

그것의 기능 목록에는 포트 검색, 파일 전송, 포트 수신 등이 포함되어 있다. 다른 서버와 마찬가지로 백도어로 사용할 수 있다.

특징들

원래 넷캣의 특징은 다음과 같다.[2]

  • 아웃바운드 또는 인바운드 연결, TCP 또는 UDP, 모든 포트와의 연결
  • 적절한 경고가 있는 전체 DNS 정방향/역방향 확인
  • 로컬 소스 포트 사용 기능
  • 로컬로 구성된 네트워크 소스 주소를 사용할 수 있는 기능
  • 내장 포트 스캔 기능, 랜덤화 기능
  • 느슨한 소스 라우팅 기능 내장
  • 표준 입력에서 명령줄 인수를 읽을 수 있음
  • 느린 전송 모드, N초마다 한 줄씩
  • 전송 및 수신된 데이터의 16진수 덤프
  • 다른 프로그램 서비스에서 연결을 설정할 수 있는 선택적 기능
  • 선택적 텔넷 옵션 응답기

GNU 및 OpenB와 같은 다시 쓰기SD의 지원 추가 기능예를 들어, OpenBSD의 nc는 TLS를 지원하고, GNU netcat는 기본적으로 UDP와 TCP(옵션으로 하나를 다른 버전으로 터널링하도록 허용)를 지원하는 터널링 모드를 지원하며,[3] 다른 버전에서는 한 Netcat 인스턴스의 배관 데이터가 필요할 수 있다.

포트 25에 대한 원시 연결 열기

nc우편지server.net 25

HTTP 요청 수행

인쇄f "GET /index.properties HTTP/1.0\r\nHost: info.cern.ch\r\n\r\n" nc info.cern.ch 80

전체 응답(HTTP 헤더 포함)은 표준 출력에 덤프된다.

파일 내용을 표시하기 위해 포트 8080에 원샷 웹 서버 설정

 {'HTTP/1.0 200 OK\r\nContent-Length: %d\r\n\r\n' "$(wc -c <some.file)"; cat some.파일; } nc -l 8080

그런 다음 이 파일은 http://servername:8080/ 아래의 웹 브라우저를 통해 액세스할 수 있다.Netcat은 파일을 연결한 다음 종료하는 첫 번째 클라이언트에 한 번만 제공한다. 또한 이 파일은 예상하는 브라우저의 콘텐츠 길이도 제공한다. (이것은 LAN에서는 잘 작동하지만, 그 사이에 어떤 종류의 방화벽으로도 실패할 수 있다.)데비안 8.6의 netcat-전통적인 netcat와 같은 일부 버전에서는 포트 번호 앞에 -p를 지정해야 한다.

제로 모드 I/O(-z)를 사용하여 UDP 포트(-u) 80–90이 192.168.0.1에서 열려 있는지 확인

nc -vzu 192.168.0.1 80-90

UDP 테스트는 항상 "열림"으로 표시된다는 점에 유의하십시오.

UDP 포트가 열려 있는지 테스트: 단순 UDP 서버 및 클라이언트

이 테스트는 테스트해야 하는 서버에 대한 셸 액세스 권한이 있지만 서버의 특정 UDP 포트를 차단하는 방화벽이 있는지 여부를 모르는 경우에 유용하다.

수신 호스트, 즉 포트를 확인해야 하는 서버에서 다음을 수행하십시오.

nc -l -u -p 4172

전송 호스트에서 다음을 수행하십시오. 참고:servname수신 호스트의 호스트 이름:

nc -u servname 4172

송신 호스트에 입력된 텍스트(무엇을 입력하여 입력)가 수신 호스트에도 표시되면 UDP 포트 4172가 열린다.열리지 않으면 "Connection rejected" 등의 오류가 발생한다.

주의사항이 있다.일부 컴퓨터에서는 IPv6이 사용할 기본 IP 버전일 수 있음netcat따라서 호스트 이름에 의해 지정된 호스트는 IPv6을 사용하여 연결되며 사용자는 이에 대해 알지 못할 수 있다.포트는 IPv4를 사용할 때 열려 있더라도 테스트에서 닫힌 것처럼 보일 수 있다.이것은 알아차리기 어려울 수 있고, 실제로 열려 있는 동안 항구가 막혀 있다는 잘못된 인상을 줄 수도 있다.추가함으로써 IPv4를 강제로 사용할 수 있다.-4할 수 있는 한nc명령어

대기 시간이 1초인 UDP(-u)를 통해 포트 514의 "로거 호스트"로 파이프 연결

each '<0>reason' nc -w 1 -u loggerhost 514

포트 검색

의 흔치 않은 사용.netcat포트 검색.Netcat은 이 작업에 가장 적합한 도구로 간주되지 않지만 충분할 수 있다(더 고급화된 도구는 nmap임).

nc -v -n -z -w 1 192.168.1.2 1-1000

-n여기서 매개 변수를 사용하면 DNS 조회를 방지할 수 있으며,-z만든다nc서버에서 데이터를 수신하지 않고-w 11초 동안 사용하지 않으면 연결 시간이 초과된다.

프록시

또 다른 유용한 행동은netcat대리로서포트와 호스트는 모두 리디렉션할 수 있다.이 예를 보십시오.

nc -l 12345 nc www.google.com 80

포트 12345는 요청을 나타낸다.

시작은 다음과 같다.nc포트 12345의 서버 및 모든 연결 리디렉션google.com:80. 웹 브라우저가 다음 작업을 요청하는 경우nc요청은 구글로 보내질 것이지만 응답은 웹 브라우저로 보내지지 않을 것이다.그것은 파이프가 단방향이기 때문이다.이것은 입력과 출력리디렉션하기 위해 명명된 파이프로 작업할 수 있다.

$mkiffo 백파이프 $nc -l 12345 0<백파이프 nc www.google.com 80 1> 백파이프

-c옵션도 다음 구성 요소와 함께 사용할 수 있다.ncat구현:[4]

$ncat -l 12345 -c 'nc www.google.com 80'

명명된 파이프를 사용하는 것은 다음을 사용하기 때문에 더 신뢰할 수 있는 방법이다.-c옵션은 단발성 프록시만 제공한다.

또 다른 유용한 기능은 SSL 연결을 프록시화하는 것이다.이런 식으로, 와이어하크 같은 와이어 스니핑 애플리케이션에서는 트래픽을 볼 수 없다.이를 활용하면 UNIX에서 수행할 수 있음mkfifo,netcat, 그리고openssl.

 mkiffo tmp mkfo tmp2 nc -l 8080 -k > tmp < tmp2 & while true; do openssl s_client -connect www.google.com:443 -mp < tmp > tmp2 done.

프로세스를 서버로 만들기

netcat어떤 과정을 네트워크 서버로 만드는 데 사용될 수 있다.그것은 포트에서 수신한 입력을 그 프로세스로 수신할 수 있다.

-e옵션은 네트워크 소켓을 통해 리디렉션된 입력 및 출력으로 실행 파일을 생성한다.

예를 들어, 본 셸 프로세스를 원격 컴퓨터에 노출시키는 것이 가능하다.

이렇게 하려면 IP 주소가 192.168.1.2인 시스템 A에서 다음 명령을 실행하십시오.

$ nc -l -p 1234 -e /bin/sh

그러면, 같은 네트워크에 있는 다른 어떤 컴퓨터에서도 이것을 실행할 수 있다.nc명령:

$ nc 192.168.1.2 1234 ls -la total 4288 drwxr-xr-x 15 dummy users 4096 2009-02-17 07:47 . drwxr-xr-x  4 dummy users 4096 2009-01-18 21:22 .. -rw-------  1 dummy users 8192 2009-02-16 19:30 .bash_history -rw-r--r--  1 dummy users  220 2009-01-18 21:04 .bash_logout ... 

이렇게 해서 더.-e옵션을 사용하여 초보적인 백도어를 만들 수 있다.일부 관리자는 이를 위험으로 인식하고 있으며 따라서 이를 허용하지 않는다.netcat컴퓨터로

고양이

Ncat는 Nmap Suite가 제공하는 Netcat과 유사한 툴이다.[5]"Ncat은 "전통적인" Netcat(또는 다른 구현)의 어떤 코드에도 기반하지 않지만, Ncat는 정신과 기능 면에서 Netcat에 가장 확실히 기반을 두고 있다."[6]

Ncat 기능에는 Ncats를 함께 연결, TCP와 UDP 포트를 모두 다른 사이트로 리디렉션하는 기능, SSL 지원, SOCKS4 또는 HTTP(Connect method) 프록시를 통한 프록시 연결(선택적인 프록시 인증도 포함)[7]이 포함된다.

  • TCP 포트 8080에서 example.org에 연결:ncat example.org 8080
  • TCP 포트 8080에서 연결 수신:ncat -l 8080
  • 로컬 시스템의 TCP 포트 8080을 포트 80의 호스트로 리디렉션:$ ncat --sh-exec "ncat example.org 80" -l 8080 --keep-open
  • TCP 포트 8081에 바인딩하고 /bin/bash를 첨부하여 월드가 자유롭게 액세스할 수 있도록 하십시오.:$ ncat --exec "/bin/bash" -l 8081 --keep-open
  • 셸을 TCP 포트 8081에 바인딩하고 로컬 네트워크의 호스트에 대한 액세스를 제한하며 동시 연결의 최대 수를 3으로 제한하십시오.
    $ ncat --exec "/bin/bash" --max-conns 3 --allow 192.168.0.0/24 -l 8081 --keep-open
  • 포트 1080의 SOCKS4 서버를 통해 smtphost:25에 연결:ncat --proxy socks4host --proxy-type socks4 --proxy-auth user smtphost 25
  • 로컬 호스트 포트 8888에 HTTP 프록시 서버 생성:ncat -l --proxy-type http localhost 8888
  • TCP 포트 9899를 통해 파일을 host2(클라이언트)에서 host1(서버)로 전송하십시오.
    user@HOST1$ ncat -l 9899 > 출력파일 user@HOST2$ ncat HOST1 9899 < 입력파일
  • 다른 방향으로 전송하여 Ncat을 "하나의 파일" 서버로 전환하십시오.
    user@HOST1$ ncat -l 9899 < 입력파일 user@HOST2$ ncat HOST1 9899 > 출력 파일

암호화된 파일 전송

SSH 터널이 있고 원격 시스템에 파일을 복사하려고 한다고 가정해 보십시오.그냥 하면 돼.scp직접적으로, 하지만 다른 연결고리를 열 수 있어기존 연결을 재사용하는 것이 목표다.ncat을 사용하여 다음을 수행할 수 있다.

SSH에 로그인할 때-L 31000:127.0.0.1:31000(이것은 포트 포워딩이며, 원격 시스템의 포트 31000에서 로컬 시스템의 동일한 포트로 모든 것을 전송함)

  • 리모컨에서:ncat -lvnp 31000 127.0.0.1 > file
  • 로컬에서:ncat -v -w 2 127.0.0.1 31000 < file

추가 오버헤드 없음.TCP는 오류 수정을 처리한다.SSH는 이미 파이프를 암호화했다.

포트 및 재구축

넷캣의 원래 버전은 유닉스 프로그램이었다.마지막 버전(1.10)은 1996년 3월에 발매되었다.[2]

POSIX 시스템에는 GNU 넷캣이나[8] OpenBSD 넷캣처럼 처음부터 다시 쓰는 것을 포함하여 여러 가지 구현이 있으며, 그 중 [9]후자는 IPv6과 TLS를 지원한다.OpenBSD 버전은 FreeBSD 베이스와[10] Windows/Cygwin에 포팅되었다.[11]Mac OS X는 OSX 10.13을 기준으로 Netcat을 설치하거나 사용자가 MacPorts를 사용하여 변종을 설치할 수 있다.[12]

NTOOL이라는 이름의 도스 버전의 넷캣FreeDOS Package 그룹 Networking에 포함되어 있다.[13]WatTCP 스택을 기반으로 하며 유럽 연합 공공 라이센스 버전 1.1에 따라 라이센스를 부여받았다.[14]

임베디드 시스템의 알려진 포트에는 Windows CE(이름: "Netcat 4 wince")[15] 또는 iPhone용 버전이 포함되어 있다.[16]

BusyBox에는 기본적으로 경량 버전의 넷캣이 포함되어 있다.

Solaris 11은 OpenBSD netcat에 기반한 netcat 구현을 포함한다.

Socat은[17] 넷캣의 더 복잡한 변종이다.더 크고 유연하며 주어진 작업에 대해 구성해야 하는 옵션이 더 많다.2016년 2월 1일, 산티아고 자넬라-베겔린마이크로소프트 취약성 연구소socat의 OpenSSL 구현에 하드 코딩된 복합 Diffie-Hellman 매개변수에 관한 보안 권고안을 발표했다.[18]프라임 넘버가 필요한 곳에 의도치 않게 합성물이 도입됐을 가능성이 의심되면서 백도어 소프트웨어 취약점 도입을 위한 방해공작 의혹이 제기되고 있다.[19]이 socat 버그는 버전 1.7.3.0과 2.0.0-b8에 영향을 미쳤으며, 1.7.3.1과 2.0.0-b9의 후속 버전에서 수정되었다.[18]

Cryptcat은[20] 통합 전송 암호화 기능을 갖춘 넷캣의 버전이다.

2005년 중반, Nmap은 Ncat이라는 또 다른 넷캣 화신을 발표했다.[5]"연결 브로커링", TCP/UDP 리디렉션, SOCKS4 클라이언트 및 서버 지원, Ncat 프로세스 "체인" 기능, HTTP CONNECT 프록시(및 프록시 체인), SSL 연결/청취 지원, IP 주소/연결 필터링 등의 새로운 가능성을 특징으로 한다.Nmap과 마찬가지로 Ncat도 크로스 플랫폼이다.

일부 시스템에서는 수정된 버전 또는 유사한 Netcat 유틸리티가 명령 이름으로 사용됨nc,ncat,pnetcat,socat,sock,socket,sbd.

참고 항목

참조

  1. ^ Hobbit (1995-10-28). "New tool available: Netcat". Bugtraq mailing list. Retrieved 2019-06-05.
  2. ^ a b "Netcat 1.10". nc110.sourceforge.net. 2008-02-14. Retrieved 2019-06-05.
  3. ^ Giovanni Giacobbi (2006-11-01). "The GNU Netcat project". Retrieved 2020-03-22.
  4. ^ "Ncat Users' Guide: Command Execution". Nmap. Retrieved 2019-06-05.
  5. ^ a b "Ncat - Netcat for the 21st Century". Nmap. 2009-07-08. Retrieved 2019-06-05.
  6. ^ "ncat(1) - Ncat Reference Guide". manpages.debian.org. 2016-12-18. Retrieved 2019-06-05.
  7. ^ "Ncat - Netcat for the 21st Century".
  8. ^ Giovanni Giacobbi (2006-11-01). "The GNU Netcat project". Retrieved 2019-06-05.
  9. ^ "OpenBSD CVSWeb: /src/usr.bin/nc/". OpenBSD. Retrieved 2019-06-05.
  10. ^ delphij (2005-02-06). "Contents of /release/5.4.0/usr.bin/nc/Makefile". FreeBSD. Retrieved 2019-06-05.
  11. ^ Thomas Linden (2011-03-02). "Netcat OpenBSD Cygwin Port 1.10.2.3". Daemon.de. Retrieved 2019-06-05.
  12. ^ "MacPorts Portfiles: netcat". MacPorts. Retrieved 2019-06-05.
  13. ^ "ibiblio.org FreeDOS Group -- Networking". ibiblio. 2019-03-03. Retrieved 2019-06-05.
  14. ^ Jürgen Hoffmann (2018-11-03). "various tools". Retrieved 2019-06-05.
  15. ^ Andreas Bischoff (2010-06-07). "Netcat 4 wince". Retrieved 2019-06-05.
  16. ^ "Revision 835: /trunk/data/netcat". 2008-08-18. Retrieved 2019-06-05.
  17. ^ "socat - Multipurpose relay". 2019-04-06. Retrieved 2019-06-05.
  18. ^ a b "Socat security advisory 7". 2016-02-01. Retrieved 2019-06-05.
  19. ^ Chirgwin, Richard (2016-02-03). "Socat slams backdoor, sparks thrilling whodunit". The Register. Retrieved 2019-06-05.
  20. ^ "CryptCat Project". 2005-10-18. Retrieved 2019-06-05.

외부 링크