| 취약점ID |
25001 |
| 위험도 |
40 |
| 포트 |
1521 |
| 프로토콜 |
TCP |
| 분류 |
DB |
| 상세설명 |
해당 호스트에 Oracle tnslsnr가 가동되고 있다. TNS listener (tnslsnr)는 데이터베이스 클라이언트와 서버간의 네트워크 인터페이스이다. tnslsnr는 1521/tcp 포트를 사용하지만 DBA가 이를 변경할 수도 있다. 해당 서버의 Oracle tnslsnr에는 패스워드가 설정되어 있지 않다. 디폴트로 설치된 Oracle listener 프로그램은 원격지의 listener 컨트롤러로 부터 원격 명령들을 수용한다. 적절하게 구성되어 있다면 listener 명령을 받아들이기 전에 사용자를 인증받기 위해 패스워드를 요구한다. 만약 패스워드가 셋되어 있지 않다면 Attacker가 유용한 정보를 수집할 수 있는 적어도 세가지 명령들, 즉 version, status와 services을 원격으로 수행할 수 있으며, listener 프로그램을 임의로 다운시킬 수도 있다. 'version' 명령은 Oracle의 버전을 알려준다. 또다른 명령어인 'status' 명령은 START_DATE, UPTIME 필드와 LOGFILE와 PRMFILE로의 경로명을 포함하고 있다. 이것은 파일시스템 레이아웃에 관한 좋은 정보가 된다. 'services' 명령은 좀 더 많은 정보를 보여준다: PROGRAM, ENVS, 그리고 ARGV0을 포함하는데 tnslsnr가 만약 interactive shell로 부터 실행되었다면 ENVS는 사용자의 환경설정 정보를 가지고 있을 것이다.
* 영향을 받는 플랫폼: Oracle Database 서버 |
| 해결책 |
다음과 같은 절차에 의해 listener 패스워드를 설정하여야 한다.
1. 'lsnrctl' 명령을 수행시킨다. 그리고 LISTENER 프롬프트 상태로 들어간다. 2. 'change_password'를 타이프하고 LISTENER의 패스워드를 바꾼다. 이 명령은 listener의 패스워드를 바꿀 수 있게 해 준다. 3. 'set password'를 타이프하고 2번에서 설정한 패스워드를 입력한다. 이 명령은 단지 인증 목적으로 LSNRCTL 유틸리티에서 listener 프로세스에 보내게 되는 패스워드를 설정해 준다. 4. 'save_config'를 타이프한다. 이 명령은 listener 설정파일의 백업 (LISTENER.BAK 파일)을 생성하고 실제 설정파일 (LISTERNER.ORA) 자체에 변경된 내용을 업데이트 한다. 5. 'exit'를 타이프하여 프롬프트에서 빠져 나온다. |
| 관련 URL |
CVE-2000-0818 (CVE) |
| 관련 URL |
1853 (SecurityFocus) |
| 관련 URL |
5380 (ISS) |
|