문자 생성기 프로토콜

Character Generator Protocol

CARGEN(Character Generator Protocol)은 다음에 정의된 인터넷 프로토콜 제품군의 서비스다. 1983년포스텔RFC864.시험, 디버깅 및 측정 목적으로 제작되었다.프로토콜은 설계상의 결함으로 인해 즉시 오용될 수 있기 때문에 거의 사용되지 않는다.[1]

호스트는 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol) 포트 번호 19에서 문자 생성기 프로토콜을 지원하는 서버에 연결할 수 있다.TCP 연결을 열면 서버는 임의 문자를 연결 호스트에 보내기 시작하고 호스트가 연결을 닫을 때까지 계속한다.프로토콜의 UDP 구현에서, 서버는 연결 호스트로부터 데이터그램을 수신할 때마다 임의의 숫자(0과 512 사이)를 포함하는 UDP 데이터그램을 전송한다.서버가 수신한 데이터는 모두 폐기된다.

inetd 구현

대부분의 유닉스 유사 운영 체제에서는 CHARGEN 서버가 inetd 또는 sinetdaemon에 내장되어 있다.일반적으로 CHARGEN 서비스는 기본적으로 활성화되지 않는다.파일에 다음 행을 추가하여 활성화할 수 있음/etc/inetd.conf 및 inetd에 구성을 다시 로드하도록 지시:

chargen 스트림 tcp nowait 루트 내부 chargen dgram udp 내부 대기 루트

적용들

CHARGEN 서비스는 적절한 경계 검사 및 버퍼 관리를 위해 TCP 네트워크 코드를 디버깅하기 위한 바이트 스트림의 소스로 사용될 수 있다.대역폭 측정 및/또는 QoS 미세 조정을 위한 일반적인 페이로드의 소스가 될 수도 있다.[citation needed]하드웨어 압축이 활성화되어 있으면 반드시 고려해야 하지만, CHARGEN 서비스의 출력은 쉽고 효율적으로 압축되기 때문이다.이 압축을 통해 대역폭 테스트는 와이어를 통과한 실제 데이터 양 대신 압축 해제 데이터 크기를 보고할 수 있다.

샘플 세션

일반적인 CHARGEN 서비스 세션은 다음과 같다.사용자는 텔넷 클라이언트를 사용하여 호스트에 연결한다.사용자는 바이트 스트림을 받는다.출력의 특정 형식은 RFC 864에 의해 규정되지 않지만 권장 패턴(및 사실상의 표준)은 72개의 ASCII 문자를 반복하는 시프트 라인이다.

$ telnet localhost chargen 127.0.0.1 시도 중...로컬 호스트에 연결됨.이스케이프 문자는 '^]'이다. !"#$%&'()*+,-,./0123456789:;<=?@ABCDEFGHIJKLMNOPQERSUVWXYZ[\]^_"abcdefg !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPXQERSUVWXYZ[\]^_"abcdefg "#$%&"()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPXQERSUVWXYZ[\]^_"abdfghi #$%&'()*+,-./0123456789:<=>?@ABCDEFGIJKLMNOPXIZ[\]^_"abdefgij $%&'()*+,-./0123456789:<=>?@ABCDEFGIJKLMNOPXQERSUVWXYZ[\]^_"abcdefigijk %&'()+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPXQERSUVWXYZ[\]^_"abcdefigijkl &'()+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPXQERSUVWXYZ[\]^_"abcdefigijklm '()+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPXQERSUVWXYZ[\]^_"abcdefijklmn()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPTHUVWXYZ[\]^_"abcdefigijklmno )*+,-./0123456789:<=>?@ABCDEFGIJKLMNOPHTUVWXYZ[\]^_"abcDEFJKLMNOP *+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQERSUVWXYZ[\]^_"abcDEFJKLMNOPQ +,-./0123456789:<=>?@ABCDEFGIJKLMNOPQERSUVWXYZ[\]^_"abcDEFJKLMNOPQr ,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQERSUVWXYZ[\]^_"abcDEFJKLMNOPrs -./0123456789:<=>?@ABCDEFGHIJKLMNOPQERSUVWXYZ[\]^_"abcDEFJKLMNOPQFirst ./0123456789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKMNOPQFRSTU /0123456789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKMNOPFRSUP 0123456789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFIJKNOPQFTUB 123456789:<=>?@ABCDEFGIJKLMNOPXECTUVWXYZ[\]^_"abcDEFIZKMNOPX 23456789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKMNOPXTWXY 3456789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFIZKMNOPQFRSUVWX 456789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKMNOPQFRSUVWXYZ{56789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFIZKMNOPQFRSUVWXY{6789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKLMNOPQFRSUVWXYZ{} 789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKMNOPQFRSUVWXY{} 89:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKMNOPQFRSUVWXY{}! 9:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFIJKMNOPQFRSUVWXYZ{} !" :<=?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKLMNOPQFRSUVWXYZ{} !"#;<=>?@ABCDEFHIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKLMNOPQFRSUVWXYZ{}}!"#$ <=>?@ABCDEFHIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKLMNOPQFRSUVWXYZ{}}!"#$ =>?@ABCDEFGHIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKLMNOPQFRSUVWXYZ{}}!"#$%& >?@ABCDEFGHIJKLMNOPXTUVWXYZ[\]^_"abcDEFJKLMNOPQFRSUVWXYZ{}}!"#$%&' ?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'(@ ABCDEFGHIJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()ABCDEFGHIJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()*BCDEFGHIJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()*+ CDEFGHIJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklm.nopqrstuvwxyz{}!"#$%&'()*+, DEFGHIJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()*+,- EFGHIJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()*+,-. FGHIJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()*+,-./ GHIJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!를 바랍니다.'#$%&'()*+,-./0 HIJKLMNOPQRSTUVWXYZ[)]^_`.abcdefghijklmnopqrsTuvwxyz{}!"#$%&'()*+,-./01 IJKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()*+,-./012 JKLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()*+,-./0123 KLMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()*+,-./01234 LMNOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!를 바랍니다.'#$%&'()*+,-./012345 MNOPQRSTU.VWXYZ[)]^_`abcdefghiJklmnopqrstuvwxyz{}!"#$%&'()*+,-./0123456 NOPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&OPQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}'()*+,-./01234567!"#$%&'()*+,-./012345678 PQRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!"#$%&'()*+,-./0123456789 QRSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{}!를 바랍니다.'#$%&'()*+,-./012345.6789:RSTUVWXYZ[)]^_`abcdefghijklmnopqrstuvwxyz{ } !"#$%&'()*+,-./0123456789:; STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ } !"#$%&'()*+,-./0123456789:;< TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ } !"#$%&'()*+,-./0123456789:;<<= UVWXYZ[\]^_"abcdefigjklmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:;<=> VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ } !"#$%&'()*+,-./0123456789:;<=>? WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ } !"#$%&'()*+,-./0123456789:;<=>?@ XYZ[\]^_`abcdefghijklmnopqrstuvwxyz{ } !"#$%&'()*+,-./0123456789:;<=>?@A YZ[\]^_"abcdefigijklmnopqfirstuvwxyz{}}#$%&'(')+,-./0123456789:<=?@AB Z[\]^_"abcdefigjklmnopqfirstuvwxyz{} !"#$%&'(')+,-./0123456789:<=?@ABC [\]^_"abcdefigijklmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=?@ABCD \]^_"abcdefigjklmnopqfirstuvwxyz{}}!"#$%&'()+,-./0123456789:<=?@ABCDE ]^_"abcdefigjklmnopqfirstuvwxyz{} !"#$%&'()*+,-./0123456789:<=?@ABCDEF ^_"abcdfigjklmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=?@ABCDEFG _`abcdefigjklmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=?@ABCDEFG "abcdefghijklmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=?@ABCDEFGI abcdefghijklmnopqfirstuvwxyz{} !"#$%&'()*+,-./0123456789:<=>?@ABCDEFGIJ bcdefigijklmnopqfirstuvwxyz{} !"#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJK cdefghijklmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKL defghijkljmnopqfirstuvwxyz{} !"#$%&'()*+,-./0123456789:<=>?@ABCDEFGHIJKLM 에프기글노프큐퍼스트부브wxy{} !"#$%&'(')+,-./0123456789:<=>?@ABCDEFGHIJKLMN fghijlmnopqfstuvwxyz{} !"#$%&'()+,-./0123456789:<=>@ABCDEFGHIJKLMNO ghijkmnopqfstuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOP hidklmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPQ ijklmnopq firstuvwxyz{} !"#$%&'()+,-./0123456789:<=?@ABCDEFGIJKLMNOPQR jklmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPQRS clmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=?@ABCDEFGIJKLMNOPQFIRST lmnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPKERSTU mnopqfirstuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPQERSTUV nopqirstuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPQERSTUVW opqfstuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPQERSTUVWX pqwxywx{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPQERSTUVWXY qrstuvwxy{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQERSUVWXYZ rstuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQERSUVWXYZ[ } !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPHTUVWXYZ[\ tuvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPXI[\] uvwxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPZ[\]^vwxyz{{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQERSUVWXYZ[\]^_ wxyz{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPXYZ[\]^_" xyz{{}}!"#$%&'()+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPXTUVWXYZ[\]^_a yz{{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPXIZ[\]^_"ab z{{{} !"#$%&'()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPXTUVWXYZ[\]^_"abc {}!"#$%&'()+,-./0123456789:<=?@ABCDEFGHIJKLMNOPXQERSUVWXYZ[\]^_`abcd } !"#$%&'()+,-./0123456789:<=?@ABCDEFGHIJKLMNOPXTUVWXYZ[\]^_"abcde } !"#$%&'()+,-./0123456789:<=?@ABCDEFGHIJKLMNOPXQERSUVWXYZ[\]^_"abcdef !"#$%&'(),*+,-./0123456789:<=>?@ABCDEFGHIJKLMNOPQERSUVWXYZ[\]^_"abcdefg !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPXQERSUVWXYZ[\]^_"abcdefg "#$%&"()+,-./0123456789:<=>?@ABCDEFGIJKLMNOPQERSUVWXYZ[\]^_"abcdefgi ^] 텔넷>은 접속을 종료했다. 

이는 텔넷 세션을 종료하여 추적에 표시된 것처럼 TCP 연결이 닫힐 때까지 계속된다.

남용

서비스는 임의의 문자를 DNS 서버 수신 포트(telnet ntbox 19 telnet ntbox 53)에 직접 연결하여 Windows NT 4.0을 실행하는 Microsoft DNS(Domain Name Server)를 충돌시키는 데 악의적으로 사용되었다.[2][3]그러나 이번 공격은 마이크로소프트의 DNS 서비스 부분에 대한 부적절한 버퍼 관리의 증상일 수 있으며, CHARGEN 서비스와 직접 관련되지는 않았다.[citation needed]

UDP CHARGEN은 일반적으로 서비스 거부 공격에 사용된다.공격자는 가짜 소스 주소를 사용하여 UDP CHARGEN 응용 프로그램에서 공격자에게 바운스 트래픽을 전송할 수 있다.UDP CHARGEN은 구현에 따라 수신한 데이터보다 200~1000배 많은 데이터를 전송한다.이 「트래픽 곱하기」는 공격자의 IP 어드레스를 피해자에게서 흐리게 하기 때문에 공격자에게도 매력적이다.

CHARGEN은 네트워크로 연결된 프린터에서 널리 구현되었다.CHARGEN과 기타 보안 문제가 알려지기 전에는 구형 모델에서 프린터 펌웨어가 거의 업데이트되지 않았기 때문에, 프로토콜을 구현하는 네트워크로 연결된 프린터가 여전히 많이 있을 수 있다.이러한 것들이 인터넷에 보이는 경우, 그것들은 항상 서비스 거부 벡터로 오용된다.잠재적인 공격자는 종종 UDP 포트 19 CHARGEN 소스를 찾아 네트워크를 검색한다.

프린터에서 CHARGEN의 가용성이 너무 악명 높아서 일부 분산된 서비스 거부자들은 이제 그들의 공격 트래픽에 UDP 포트 19를 사용한다.조사관들을 궤도에서 벗어나게 하는 것이 목적이다; 그들이 변태된 컴퓨터보다는 오래된 프린터를 찾도록 하는 것이다.

참고 항목

참조

  1. ^ "NVD - CVE-1999-0103". nvd.nist.gov. Retrieved 2018-02-05.
  2. ^ "Access Violation in Dns.exe Caused by Malicious Telnet Attack". Support.microsoft.com. 2006-11-01. Archived from the original on 2014-08-19. Retrieved 2009-05-31.
  3. ^ "MS DNS Server subject to Denial of Service Attack". IT Pro. 1997-05-27. Retrieved 2018-02-05.