안녕하세요? GreatDG입니다.
(어찌 저의 첫번째 강좌는 잘 봐주셨나요? 부족한점이 많아서 읽기 불편하셨다고요?
그럼 이번 편은 어떤지 한번 평가부탁드립니다.^^)
드디어 두번째 강좌를 쓰게 됍니다. 지난번 강좌에는 해킹의 정의와 함께 해킹의 절차, 역사, 유형, 기법등등을 알아보았습니다. 도움이 좀 돼셨는지요? 글을 읽으시고 도움이 돼셨다면, 이번편 역시 도움이 돼실줄로압니다. 그럼 Part-2 '해킹 세상 속으로..' - 해킹, 실전 속으로.. 편을 시작하겠습니다. 이번편에서는 유명한 해킹툴과 방어툴을 소개하고, 해킹을 할때 꼭 알아야 하는 용어, 각 포트별 설명 정도를 하겠습니다. 자 그럼..Let's Go ~~~~
※ 모든 내용을 자세히는 다루지 못하였습니다. 해킹이란 부분이 좋게만 받여지지 않고, 악용하시는 분이 아직까지는 많은 관계로 저는 여러분에게 "해킹도 공부다" 라는 취지에서 적어놓은것 이기에 이점 참고바랍니다.
◎ 해킹툴, 뭐뭐 있나?
1. Back orifice 2000(해킹툴)
Back orifice 2000란?
백오리피스는 악용의 목적을 위해 만들어진 백도어프로그램으로 보는데, 원격지 네트워크에서 사용자가 모르게 정보 수집, 시스템 명령어 수행, 시스템 재구성, 네트웍 트래픽 지정변경 등 시스템을 통제할 수 있는 클라이언트/서버 애플리케이션이다. 시스템상에서 백오리피스 서버 프로그램을 수행했기 때문에, 침입자는 특정 IP주소에 원격으로 접속할 수 있으며,
앞에서 말했던 것들이 가능하게 된다. 백오리피스가 간단한 모니토링 툴로 사용되지만 이것의 주요 목표는 다른 시스템을 재구성하고 데이터를 수집하는 등의 비인가된 통제를 하기 위한것이다. 백오리피스 2000(BO2K)은 사용자에게 매우 심한 피해를 끼칠 수 있다. 바이러스와는 달리 BO2K는 번식하는 것이 아니라 프로그램을 설치함으로써 사용자를 속여 뜻하지 않은 피해를 당할 우려가 높기 때문이다.
구조 살펴보기
간단하게 말해서 서버툴과 클라이언트툴이란 두개의 툴이 있는데 이중 서버툴을 상대방 서버에 설치하고 자신은 클라이언트툴을 이용해서 상대방 서버에 설치시킨 서버툴을 이용해 상대방 컴퓨터를 제어하는 것이다.
대표적인 기능들 살펴보기
Keylog begin/end, Process kill/list/spawn, Redir add/del/list, File delete / del 등등의 많은 메뉴들이 있다. 실질적인 메뉴 설명은 피하겠습니다.
Back Orifice 2000 보안권고문
시스템에 작동중인 백오리피스를 탐지하는 것은 매우 많은 설정(변수)들이 있기 때문에 매우 어렵다 . 동시에 백도어는 다차원적이며 여러 탐지방법들이 네트웍상에 있는 하나 혹은 여러 시스템 상의 BO2K 설치를 인지하여 최대한 방어할수 있도록 권고한다.
디폴트로 설정된 BO2K는 윈도우 시스템 디렉토리내에 UMGR32.EXE파일로 설치될 것이다. 만약 윈도우 NT에서 작동하면, 원격관리서비스라고 표시된 서비스를 설치하게 된다.
이것은 디폴트명이며 변경될 수 있다. 이에 대한 권고책으로 네트웍상에서의 공격을 인식하기위한 침입탐지 소프트웨어와 업데이트 된 취약점 검사(네트웍상의 시스템에 백오리피스가 설치되었는지를 탐지하기위한)를 하는 업데이트된 백신 소프트웨어 버전을 사용해야 한다. 외부에서의 네트웍 연결시도뿐 아니라 시스템상에서 백도어 프로그램 출현을 탐지하는 것들은 기존의 백신소프트웨어의 한계를 넘어섬에 따라 네트웍 취약점 및 침입탐지 가능성은 백도어 프로그램을 확인하여 제거시키는데에 있어 매우 중요하다.
그밖에도 사용자들은 다음과 같은 주의사항을 염두하여 컴퓨터 안전예방책을 취해야 한다.
모르는사람으로부터 전송되어온 메일의 첨부물은 함부로 낳의舊?않는다.
Internet Chat Systems로부터 취약점을 소개한 파 일을 열지않는다.
인터넷 접속시, 보안대책없는 네트웍파일은 공유하지 않도록 유의한다.
2. netbus : 넷버스(해킹툴)
NetBus : 넷버스의 구조
이 프로그램은 원격 조정 프로그램으로 서버/클라이언트 부분으로 나눌수 있다.
먼저 서버 부분인 patch.exe(트로이 라고두 불림)을 당신이 조정 하고자 하는 컴퓨터에 실행을 시킨후 당신은 클라이언트 프로그램인 NetBus.exe를 실행하여 조정할수 있다.
넷버스 트로이 patch.exe를 당신이 해킹하고자 하는 컴퓨터에 실행하기 위해서, 단지 이 파일을 클릭해서 실행 시키면 된다.
patch.exe(트로이)의 특징은 한번 실행 되어지게 되면 윈도우가 리부팅 될때마다 자동적으로 실행이 되어 진다. 이유인즉 이 파일은 실행 되어지는 동시에 레지스트리 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run
안에 기록 되어지기 때문이다.
NetBus : 넷버스 살펴보기
모든 메뉴가 한글로 패치돼어있어 굳이 따로 설명이 필요없습니다.
NetBus 대처 & 삭제 방법
① 레지스트리 편집하기(WINDOWS 9X/ME/2000공통)
[시작 - 실행]선택하고 regedit를 입력하여 레지스트리편집기를 실행하여 아래 경로로 이동하여 등록된 patch.exe(넷버스의 서버파일명)값을 삭제한다.
HKEY_LOCAL_MACHINE - SOFTWARE - Microsoft - Windows - Currentversion
- Run 디렉토리에서 patch REG_SZ E:winntpatch.exe /nomsg
② 파일 삭제하기
[ windows 9x/me 사용자 ]
ⅰ) 시작 - 프로그램 - 보조 프로그램 - 시스템 도구 - 시스템정보 - 소프트웨어 환경 - 실행중인 작업과 시작 프로그램 탭에서 patch.exe가 실행중임 확인할 수 있다.
ⅱ) 재부팅한 후 windows의 찾기(윈도우키 + f)를 이용하여 아래 파일들을 모두 삭제한다.
c:windowspatch.exe, c:windowskeyhook.dll
[ windows 2000 사용자 ]
ⅰ) ctrl + alt + del키를 누르면 windows 작업관리자가 실행되는데, 여기서 프로세스 탭으로 이동하면 patch.exe가 실행 중임을 확인할 수 있다. 이를 치료하기 위해선 patch.exe를 선택한 후 프로세스 끝내기를 클릭하여 강제로 프로세스를 종료시킨다.
ⅱ) windows의 찾기(윈도우키 + f)를 이용하여 아래 파일들을 모두 삭제한다.
c:winntkeyhook.dll, c:winntpatch.exe
3. School Bus : 스쿨버스 (해킹툴)
School Bus : 스쿨버스의 구조
server 파일 (기본적으로 server.exe)를 해킹하고자 하는 상대방의 컴퓨터에 실행시키면, 그 파일은 실행되면서 특정 포트를 열어논다. 그러면 여러분들은 상대방 컴퓨터의 IP주소의 그 포트에 접속을 한다. 기본적인 구조는 백오리피스 2000과 같다.
School Bus : 스쿨버스 살펴보기
Crash Windows, Shut Down Windows, Close Server, Remove Server, Get system info
등등 많은 메뉴가 있습니다. 실질적으로 백오리피스보다 강력한 기능과 친숙한 비쥬얼 메뉴등은 장점이나 백오리피스보다 뒤쳐지는게 사실이다.
School Bus : 대처 & 삭제 방법
안전모드로 부팅한 후 해당 경로로 이동하여 서버파일만 삭제하면 되므로 의외로 치료방법은 간단하다.
① 파일 삭제하기
[ windows 9x/me 사용자 ]
ⅰ) 시작 - 프로그램 - 보조 프로그램 - 시스템 도구 - 시스템정보 - 소프트웨어 환경 - 실행중인 작업과 시작 프로그램 탭에서 Grcframe.exe가 실행중임 확인할 수 있다.
ⅱ) 안전모드로 부팅한 다음 windows의 찾기(윈도우키 + f)를 이용하거나 해당 경로로 이동하여 아래 파일들을 모두 삭제한다.
- c:windowssystemGrcframe.exe
- c:windowssystemRunonce.exe
※ windows 98과 2000(fat32사용자)을 멀티 부팅하는 시스템에서 찾기 기능을 이용하여 Runonce.exe을 찾을 경우 검색된 winntsystem32Runonce.exe와 winntsystem32DLLCACHERunonce.exe는 정상파일이므로 삭제하지 않도록 주의한다.
4. NOBO : 노보 (해킹 & 방어툴)
NOBO : 노보의 구조
NOBO는 백오리피스로 누군가 나의 컴에 들어 오려 할때 그것을 막아 주는 해킹툴입니다
어떻해 보면 방어툴로 보일수도 있으나 역시 IP가 노출돼는건 마찬가지 이므로 해킹툴로 보는것이 좋을듯 합니다. 이 툴은 너무나도 간단하고도 또한 특별한 다른 메뉴 설정이 없는 툴이므로 더이상의 설명은 하지 않겠습니다.
◎ 루트? 쉘? 백도어? 해킹용어... 살펴보기
위의 툴들은 잘 보셨는지요. 기본적으로 위의 툴들은 윈도우를 기반으로 하는 해킹툴들이었습니다. 위의 글을 보시고 "아. 나도 크래킹 해봐야지.."라고 생각하시는분은 없길바랍니다. 부디 저의 강좌를 악용보단 공부의 계기로 삼으셨으면 한다는말 제차, 말씀드립니다.
지금부터 설명할것들은 해킹을 알려면 가장 많이 나오는 용어들입니다. 이미 첫번째 강좌에서 몇가지 언급을 하였지만, 자세한 설명이 없었으므로 이번에는 여러가지 해킹용어를 정의하여보겠습니다.
※참고로 지금부터 설명드리는 용어는 윈도우가 아닌 리눅스를 기반으로 해킹을 할 경우 사용돼는 용어들입니다.
루트(Root)
리눅스에서 root는 현실 인간 세계의 신이라는 정도로 표현하면 적당하다고 생각이 듭니다. root란 윈도우의 administrator와 비슷한 개념이지만 그보다 더 강력한 개념이라고 말하고 싶습니다. root의 권한은 리눅스 내에 관리하고 있는 모든 권한을 지휘 할수 있고, 또한 변경, 삭제, 추가 등등의 모든것이 가능합니다. 전세계의 모든 해커와 크래커의 첫번째 목적은 아마 root 권한 획득이 첫번째 목표일것입니다. 이 root 권한만 있으면 모든게 가능하기 때문입니다. 하지만 리눅스에서는 root 권한을 획득하기가 하늘에 별따기 이니 안심하셔도 될듯합니다.
쉘(shell)
리눅스 시스템과 사용자 사이에서 사용자의 명령을 해석해서 리눅스 시스템에 전달해 주고, 사용자에게 그 결과를 보여주기도 하는 중간 매개체의 역할을 하는 것이 쉘입니다.
쉘의 종류를 살펴보면,
·sh(Bourne Shell)
다른 모든 셀 들의 기본 모델이 된 오리지널 쉘
·bash(Bourne Again Shell)
리눅스 상에서 가장 많이 사용되고 있는 쉘
·csh(C Shell)
버클리에서 개발된 쉘로 Bourne 쉘과 가장 호환성이 좋지만, 쉘 프로그래밍에서는 매우 다른 인터페이스를 가진다. 명령행 편집기능은 제공하지 않는 대신 매우 복잡한 히스토리 대체 기능을 제공합니다.
·tcsh(Enhanced C Shell)
C 쉘의 강화된 버전으로 명령행 편집기능을 제공합니다.
이렇게 정의할수 있습니다. 후에 해킹에 대해서 공부하시면 알겠지만 이 쉘(shell)도 유용한 해킹기법에 들어가니 많이 공부하셔야 할듯 합니다.
백도어(Backdoor)
시스템 관리자가 일부로 열어놓은 시스템의 보안 구멍으로 주로 시스템이 고장났을 경우 시스템을 만든 회사의 프로그래머로 하여금 직접 접속해 들어와 점검하도록 하기 위해 즉정 계정을 열어놓는 것이다.
-------------------이게 가장 표준적인 설명입니다. 그러나 리눅스 해킹에서는??
해커가 해킹을 하고 나서 다음번에 수월한 해킹을 위해 만들어 두는 뒷구멍을 말합니다.
이렇게 표현할수 있겠군요.. 백도어 이제 뭔지 아시겠져?^^
포트 스캐닝(port scanning)
포트 스캐닝이란 해당 IP의 컴퓨터에 열려있는 포트들을 검색하는 것을 말합니다. 예를 들어, 집에 대문이 열려있다면 다른 사람이 그것을 통해 들어올 수 있을 것입니다. 마찬가지로 컴퓨터에 포트가 열려있다면 그것을 이용해 해킹을 하는 것이 가능해집니다. 포트 스캐닝 프로그램은 리눅스 & 윈도우즈 용으로 많이 배포돼어있습니다. 이 프로그램은 해킹 프로그램이 아닌 자신을 방어하고, 또한 해킹을 위한 절차를 밟는 단계라고 생각할수 있겠습니다.
데몬(deamon)
각 시스템에 관련된 작업을 하는것으로써 윈도우에서의 '서비스'라고 이해하셔도 좋을듯 싶습니다. 예를 들어 파일 전송을 가능케 해주는 FTP서비스를 제공하는 것은 리눅스에서는 FTP 데몬입니다. 리눅스에서 데몬의 종류에는 httpd, innd, inet, portmap등등 다양한 데몬들이 있스니다.
이외에도 리눅스 해킹 기법에는 여러가지 용어들이 존재합니다. 제가 나열해드린건 가장 기초적인 단어들만 보여드렸습니다. 다른 단어들은 리눅스 해킹을 공부하시면 좀더 깊이 알수있으실듯 합니다.
◎ 정리합시다^^
강좌 1, 2를 통해서 저는 여러분에게 해킹은 이런것이다. 그리고 해킹과 크래킹의 구별, 또한 해킹툴 소개등등 다른 각도에서 여러분에게 해킹이란 단어를 접근 시켰습니다. 다소 이색적인 강좌가 될수있었으나 전문적인 기술 문서, 자세한 해킹 방법등을 소개 못한게 아쉽긴 합니다. 하지만 모든지 노력이 있어야 결실을 얻는법. 여러분도 해킹이란 단어에 관심을 갖고 공부하시면 언제가는 해커의 의미를 진정으로 아시게 될것입니다.
혹, 저의 강좌를 읽으시고 해킹에 손을 대신분이 계시다면, 해커의 진정한 의미를 되새기며 공부하시기 바랍니다. 그리고 마지막으로 명심하셔야 할것은
"해킹은 크래킹이 아닙니다. 보안입니다." 그럼 여기서 저의 마지막 강좌를 마치겠습니다.
다음번에는 더 새로운 주제로 여러분 찾아뵙겠습니다. 긴글 끝까지 읽어주신 분들께 정말로 감사드립니다. 감사합니다.
마지막 교훈 :
크래킹은 강아지 만도 못한 행동입니다. 공익 캠페인..^^
(자료 : 안철수 바이러스, 해쿨메뉴얼 -리눅스 해킹-, 해커와 이야기)
-By GreatDG-