디코 서버 해킹 - diko seobeo haeking

<2008년도 처음 쓴 글에 대해, 잘못된 부분 조금 수정한 글 입니다.>

요즘 많이 들어오는 질문 중 하나가  "

해킹 하는 법 알려주세요", "해킹 당했는데, IP 추적 부탁요"

등등, 즐기는 게임이 해킹을 당하였거나, 사기를 당하였거나, 상대방이 해킹툴이나 게임핵 등을 사용하

여 피해를 입어서 복수(?) 혹은, IP 추적을 통하여, 상대방을 찾아내어, 현실적인 복수를하기 위하는 분

들이 대다

수지만, 공부하여 네트워크 보안가나 해커 혹은 크래커 등....상당히 여러가지 이유로 해커가

되고 싶어 하는것 같습니다.

그런데 안타깝게도 질문하시는 분들을 보면 대부분이 컴퓨터에 대한 지식이 전무하거나, 막연한 열정

과, 아직 나

이가 많이 어리신 분들이죠.

"C 언어 부터 공부하세요" 라고 하니, "그럼 C 언어 보내주세요" 라고 하시는 분들이 80% 에 가깝다

고 하면

이해가 조금 더 빠르실려나....;;


필자도 그분들을 도와서 조금 더 전문적인 지식을 심어주
고 싶으
나, 필자도 아직까지 감히 누구를 가르

치고, 할 정도의 해킹에 관한 지식은 많이 부족한 상태이

지만, 그래도 기본적으로 "해킹" 이 무엇이고, "

해커" 가 되기 위해선 어떤 과정을 거쳐야 하는지, 이 블

로그를 본 사람들은 적어도 위와 같은 "그럼 C

언어 보

내주세요" 라는 질문은 더 이상 하지 않길 바라며, 글 몇자 끄적여 봅니다.


해킹과 크래킹에 대한 의견이 분분할 것 같아서 미리 말하지만, 일단, '해킹' 이란 단어로 모

든것을

통일합니다. 이 글은 해킹 기법에 대한 소개가 아니라, 해킹을 하기 위하여, 준비하여야

할 기본적인 상식에 대해서 다루니, 해킹에 대한 전문적인 정보를 목적으로 방문하신 분들께

선, 다른 전문 사이트를 방문하시기 바랍니다.

그리고 글이 잘못되었거나, 잘못된 정보에 대해서는 거

침없는 태클 부탁 드립니다.



1. 해킹이란 무엇인가 ?

- 사전적 의미

해킹(hacking)은 컴퓨터 네트워크의 보안 취약점을 찾아내어 그 문제를 해결하고 이를 불법적인

목적으로 이

용되는 것을 방지하고자 하는 행위이다. 하지만 대한민국에서는 해킹에 대한 잘못된 인

식으로 인해 '적법한 권

한을 갖지 않고 다른 사람의 데이터 정보에 접근하여 이를 가져가거나 수정

하는 것'으로 종종 오해되기도 한다.



그러한 의미를 갖는 단어는 해킹이 아니라
크래킹이다. <출처 : 위키 피디아>


2. 해킹을 하기 위한 기본 준비 단계!

해킹을 하기 위해선, 먼저 컴퓨터란 기계에 대해서 아주 많은 공부를 하여야 하고, 지식을 갖추고 있어

야 하며, 경험도 아주 많아야 합니다.

최근 인터넷을 보면, 유명 해커들이 이미 만들어 놓은 '해킹 툴' 만을 보고, 해킹이란게 아주 쉽게 이루

어 지

는것으로만 생각하시는 분들이 대다수인데, 물론, 이미 만들어진 '해킹 툴' 을 이용하는것도 해킹

의 한 방법이

긴 하지만, 현재 인터넷상을 돌아다니고 있는 '해킹 툴' 이란넘의 정체를 보면, 절대

대다수가 '해킹 툴' 을 가장

한 '바이러스' 입니다. 일명, '좀비 PC' 로 만들어 버리는 바이러스

가 심어져 있죠.

(자신이 그 툴로 해킹하는것이 아니라, 자신이 해킹을 당하고 있는 것입니다. 그러니, 이런 툴을 사용하

기 전

충분히 그 툴에 대한 사전 지식을 습득하고, 그 툴 제작자나 그 툴 사용자들의 의견을 충분히 듣

고, 사용하시기 바랍니다.)

하지만, 이런 해킹툴을 가장한 바이러스의 존재에 대해선, 자신이 그 프로그램 제작자가 아닌 이상에야

알아내기가 쉽지 않습니다. 안티 바이러스 프로그램(백신) 이 해킹툴을 '바이러스' 나 의심파일로 찾아

내었다고 해도,

'해킹툴' 이니, 당연히 백신등에서 알아채는거라 생각하고, 백신의 진단을 무시하고, 그

냥 설

치, 실행 하여, 자신의 PC가 오히려, 해커에게 해킹당하는 경우가 많은데, 이런 툴에 의존하지 말

고, 공부하여 자신이 직접 이런 툴을 제작하는 방향으로 가길 권해 드립니다.


그렇다면, 해킹이란것은 어떻게, 어떤 과정으로 이루어지는가??

해킹을 하기 위한 방법으론, 수 많은 해킹 기법들이 존재하고, 다양한 방법이 있습니다.

이 블로그에선 전문적 용어나 방법은 배제하고, 원리만 간단히 설명하자면...;;

웹 사이트 같은 경우, 그 웹 사이트를 관리할 수 있는 '관리자 그룹'이 있고, 그 웹 사이트를 이용하는

'이용자

그룹' 이 있습니다.

이 두 그룹이 (관리자와 이용자) 웹 사이트에 접속해서 할 수 있는 역할은 서로가 다릅니다.

관리자 그룹은 이용자 그룹의 정보에 접근할 수 있고, 수정 및 삭제도 할 수 있으며, 웹 사이트의 코드소

스나 DB 에

직접 접근하여, 수정 및 삭제를 할 수 있는 막강한 권한을 가진 그룹입니다.

이용자 그룹은 앞의 관리자 그룹이 정해놓은 '룰' 대로만, 움직일 수 있는 그룹입니다. 예를들어, 관리자

가, 게시판 글을 '140 자' 만 적을 수 있게 만들어 놓으면, 이용자 그룹은 게시판에 '140' 자 이상의 글은

절대로 작성할 수가 없습니다.

그리고, '관리자 그룹' 과 '이용자 그룹' 을 구분지어주는, ID 나 PW 등은 모두 그 웹 사이트의 서비스를

가능하게 해주는 기계, 즉 '서버'라 불리는 컴퓨터의 하드 디스크에 프로그램 되어있는, 'DataBase' 속

에 저장 되어

있습니다.

이제부터 해커는 웹 사이트의 모든것을 조정할 수 있는, '관리자 그룹' 으로 들어갈 수 있게, '관리자 그

룹' 의 정보를 담고 있는, 서버의 DB 에서 '관리자 그룹' 의 정보를 알아내어야 할 것입니다.

'관리자 그룹' 의 ID 와 PW 를 알아냐기 위하여, 모든 조합 가능한 문자, 숫자를 대입

해 볼 수도 있을 것

이며, 컴퓨터상의 버그를 이용할 수도 있을 것이며, 특정 바이러스를 심어 놓기도 할 것입니다.

이제 해커는 여러가지 방법을 통하여, 알아낸 '관리자 그룹' 의 ID 와 PW 로 서버 컴퓨터에 접근하여, '

이용자

그룹' 의 소중한 개인정보를 훔쳐갈수도 있고, 서버의 Data 를 조작할 수도 있을 것이며, 자신이

원하는 모든 것

을 실행할 수 있을 것입니다.

이런 모든 과정을 하기 위해선, 역시나 컴퓨터에 대한 상당한 지식을 필요로 합니다.

참고 자료 : 웹 해킹 원리와 방어 방법

3. 해킹을 하기 위해 무엇을 공부 하여야 하는가!

1. 프로그램 언어 공부하기.

현 시대 프로그램의 가장 기초이자, 기본이 되는것이 'C 언어' 입니다.

프로그램 공부를 위해 가장 기초가 되어야 하며, 기본적으로 C 언어 만큼은 마스터 하고 있어야 합니다.

Java 나 .NET 등의 플랫폼으로 프로그램이 주가 된 세상일지라도,

C 언어는 기본적으로 알아야, 컴퓨터

란 기계가 어떤 과정을 거쳐서, 사람이 입력하는 명령어를 알아듣고, 어떻게 처리하

여 어떤 결과를 다시

사람에게 보여주는지를 알 수 있죠.

물론, Java 나 웹 언어부터 시작한다고해서, 잘못된 것은 아니지만,

역시나, 모든것은 기본...기초가 튼실하여야 하죠.

현재는 C 언어에서 발전된 'C++', .NET 이 대세를 이루긴 하지만, 'C++', .NET 플랫폼을 하기 위해서도

'C 언어' 정도는 충분히 마스터 해야

하죠.

(

필자 추천 도서 : 열혈강의 C, 열혈강의 C++)

아직까지도 많은 분들이 'Visual basic' 을 기초로 배우는데, 필자가 보는 VB 는 프로그램을 만들기 위

한 거대

한 하나의 '툴' 이지, 그 자체로 프로그램 언어로 보기에는 많은 무리가 있어보입니다.

(단, .NET 은 전혀 다른 이야기 입니다)

이렇게 'C 언어' 에 대한 공부를 하면서, 하나, 둘씩 프로그램을 짜다보면, 자연스럽게 컴퓨터가 어떤 방

식으로

사람의 명령어를 알아듣고, 처리하며, 결과를 보여주는지에 대한 이해가 가기 시작하실 겁니다.

처음부터 시작을 JAVA 등으로 시작하시는 분들도 계시지만, 필자는 먼저 모든 프로그램은 'C 언어' 부

터 하라고 권합니다.

2. 웹 언어 공부하기

수 년 전만 하더라도, 프로그램등의 해킹은 '클라이언트' 컴퓨터에 설치 된 프로그램의 해킹이었죠.

허나, 시간은 흘러 현재는 '인터넷' 연결이 안된 컴퓨터는 필요 없을 정도로, 웹의 세상이 도래하였습니

다. 사용자의

정보는 클라이언트가 아닌 '서버' 컴퓨터의 DB에 저장이 되고, 사용자는 DB에 저장된

정보를 이용하며,

여기서 오고, 가는 명령어들은 인터넷망을 이용해, '웹 언어 (ASP, JSP, PHP 등)' 를

통하여, 처리가 되고, 실행이 됩니다.

즉, 웹 언어를

알아야 이런 서비스망의 구조와, 명령어 처리 방법등에 대하여 이해할 수 가 있습니다.

이런 웹 언어의 구조도 앞서 공부한 'C 언어' 와 유사하기에 (PHP 는 사실상 C 언어) 'C 언어' 를 공부한

라면, 쉽게 적응하여 공부할 수 있습니다.

(필자 추천 도서 : TAEYO's ASP )

추천 이유 - TAEYO 시리즈가 나온지도 정말 많은 시간이 흘렀고, 상당히 많은 관련 서적이 출시되고,

개발 기법

도 많이 바뀌었고, 환경도 바뀌었지만, 이보다 기본을 충실하고, 튼튼하게 설명해 놓은 책은

없는것 같습니다.

3. 네트워크 구조 공부하기

- 모든 과정 중 가장 중요한 부분이라 생각합니다.

집 컴퓨터에 연결된 인터넷 선 (or 전화선) 을 통해서 어떻게 집 컴퓨터에서 입력한 문자나 숫자가, 서비

스 제공

업체 (서버) 에 까지 도달하여, 명령어를 받아들이고, 처리해서, 결과를 사용자 컴퓨터에까지 도

달하며, 사용자가 원하는 결과를 보여

주는지 등에 대해서 알기 위해선, '네트워크' 에 관한 공부는 필수

중 필수 입니다.

OSI Layer 구조나 ,TCP/IP , 패킷, 소켓 통신등의 구조를 기초로 Router 니, Gateway 니 하는 모든것

들의 구

조를 알고, 작동 방식을 알아야, 상대방의 서버에 접속하고, 뚫고 나갈 수 있기 때문이죠.

(필자의 추천도서 : 열혈강의 TCP/IP 소켓 프로그래밍, 후니의 쉽게 쓴 시스코 네트워킹)

4. DataBase 공부하기

프로그램을 만들고, 네트워크를 구축하고, 사용자들과 주고 받는 이 모든 정보들을 담고있는 거대한 도

관인 DataBase 에 대하여 공부할 차례 입니다.

데이타베이스의 개념

여러 사람에 의해 공유되어 사용될 목적으로 통합 관리되는 정보의 집합이다. 논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조함으로써 검색과 갱신의 효율화를 꾀한 것이다. 즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있다.

데이터베이스는 똑같은 자료를 중복하여 저장하지 않는 통합된 자료를 저장할 수 있어야 하며, 컴퓨터가 액세스하여 처리할 수 있는 저장장치에 수록된 자료로 어떤 조직의 기능을 수행하는 데 없어서는 안 되며 존재 목적이 뚜렷하고 유용성 있는 운영 자료이기 때문에 임시로 필요해서 모아 놓은 데이터나 단순한 입출력 자료가 아니다. 한 조직에서 가지는 데이터베이스는 그 조직 내의 모든 사람들이 소유하고 유지하며 이용하는 공동 자료로서 각 사용자는 같은 데이터라 할지라도 각자의 응용 목적에 따라 다르게 사용할 수 있다. <출처 : 위키피디아>


현재 많이 쓰고있는 Database (이하 DB) 는 크게 3 가지로 나눌수 있습니다. (회사별 제공 프로그램)

Oracle, MS SQL, MY SQL 인데...;;

MS 속국인 대한민국에서 태어나고, 자라, 공부한 필자로썬 Oracle 은 아직 구경도 해보지 못한 관계

로 생략 합니다.

<오라클 자료 참조>

보통 많이들 쓰는게, 'MY SQL' 이라 불리우는 DB 입니다. 왜냐면, 무료로 쉽게 구할 수 있으며, 관련 자

료도 쉽게 찾을 수 있기 때문입니다.

다운로드는 이곳에서


DB 를 다운로드 후 설치까지 하셨다면, 공부하여 만든 프로그램과, DB를 연동 하는것부터 시작입니다.

그리고, DB 와 연동된 데이타를 어떻게 저장할 것인지...어떤 방법으로 정렬할 것인지, 그리고, 이렇게

입력된

데이타를 어떻게 보여줄 것인지를 공부하다보면, 'SQL' 을 움직이는 거대한 손 '쿼리'에 대한 기

본 개념이 잡힐 것이고, '쿼리문' 을 이용하여, 어떻게 데이터를 처리하는지에 대하여 이해하실 수 있으

실 겁니다.

5. 정리

- 위와 같이 1, 2, 3, 4 번을 차례로 공부하였다면, 일반 4년제 대학의 학부과정 중 3 년치를 공부하신 겁

니다.

(물론, 자료구조, 데이터 구조, 알고리즘, OS 구조, WIndows API 등등등등 많은 관문이 남았지만..)

그렇다면, 이제 해킹을 할 수 있느냐??

안타깝게도 지금까지 공부한 내용은 말 그대로 '기본 중의 기본' 이며, 컴퓨터라는 기계가 어떻

게 작동하고, 사람의

명령어를 입력받아 어떻게 처리하고, 저장하는지에 대한 기본 정보를 익

혔을 뿐입니다.

앞서 소개한 책들도, 각 주제를 공부하기 위하여 필자가 보기에 가장 쉽고, 차근차근 설명이 잘 되어있

어 기초를 쌓기에

가장 좋을것같다고, 생각한 책들을 몇 권 나열해 보았습니다.

가장 기본부터 하나씩, 열심히 공부를 하셨다면, 더 이상 이 블로그에 적혀있는 글들을 보지 않아도, 스

스로 이제 어떤것을

더 공부하여야할지, 무엇이 부족하고, 더 공부하여야 할지에 대해 깨닫게 될 것이

며, '찰스 페졸드' 라는 이름이 상당히

반갑게 느껴질지도, Cisco 라는 이름만 들어도 머리가 지끈거릴

지도, Open source 는 언제나 친구처럼 느껴질

것이고, 어떤 이들은 그동안 하던 프로그램 공부 다 접

고, '수학' 기초부터 다시 공부할지도 모르겠군요.

*여기서 잠깐*

수학을 공부해야 하는 이유는 '암호화' 과정에서 사용되어지는 모든 '암호' 는 특정 '수학 공식'

을 이용해

만들어 집니다.

예를들어, 'ABCD" 라는 암호가 있으면, 이것을 보안 과정을 통해 서버에 전달될 때에는 특정 수학

공식을

거쳐서 '&*%!' 라는 문자로 저장이 됩니다.

'&*%!' 로 저장된 문자를 라는 문자를 다시 'ABCD' 로 만들기 위해선,

역으로 다시 그 수학 공식을

이용하여 풀어야 하는데요,

이차 방정식을 생각하면, 더 이해가 쉬우실 듯.......;;

이렇듯, 암호화 과정을 거쳐서 암호화 된 암호를 다시 풀기 위해선, 수학을 잘 해야겠죠.

이쯤이되면, 자신이 앞으로 어떤 진로를 선택해야할 것인지도, 정해지지 않을까 싶습니다.

막연히 열정만 가지고 '해커' 를 꿈꾸는 어린 친구들에겐 조금 미안한 소리일지도 모르겠지만, '해커' 라

는 직업군을 가지기 위해서는 지금부터라도 정말 열심히 하루종일 컴퓨터와 두터운 책을 가지고 씨름을

해야

할것이라는거....이젠 아시겠죠?

*추가 사항*

"IP 추적 해주세요", "IP 추적 어떻게 하죠?", "IP 추적 해주는데 돈 XX 받습니다." 등등 IP 추적

관련해서도 많은 분들이 물어 보십니다.

그리고, 이와 관련된 네이버 지식iN 을 보면 참으로 잘못된 답변이 상당히 많이 있으며, 위와 같이, IP 추

적 해준다고 돈 받

고, 잠적해버리는 경우도 종종 있다고 들었습니다.

그래서 이 블로그를 통해서 한 마디 하자면,

"개인이 IP 추적을 통해서 상대방의 위치를 알아내는것은 사실상 불가능하다." 입니다.

(단, 고정 IP 를 가지고, 정식으로 사업자 등록을 하여, 서비스 하는 회사등이라면 가능합니다.)

우리가 집이나, PC 방등에서 흔히 사용하는것은 고정 IP 가 아닌, 유동 IP 입니다.

각 지역  ISP 업체에서 IP 를 할당받아 사용하기 때문에, 상대방의 IP : 192.168.XXX.XXX 를 알아낸다고

하여도

, 이 IP 는 그 지역을 담당하는 ISP 업체에서 할당한 IP 이기 때문에, 각 Domain 등록 업체에서

사용자들에게 제

공하는 검색 툴이나, IP 추적해준다는 웹 사이트, 'whois' 명령등으로 알아낼 수 있는것

은 그 IP 를 받아 사용할 수 있게 해주는 ISP 업체의

주소 정도나 알아낼 수 있지, 정확하게 그 사람의

소를 알아낼 수는 없습니다.(정상적인 방법으로는)

정확히 IP 를 통해서 그 사람이 사용한 PC 의 실 주소를 알아내기 위해서는, ISP 업체를 해킹하거나, 정

식으로 검, 경찰의 수사

협조를 얻은 다음,  그 지역의 IP 를 할당하여 주는 ISP 업체를 통하여 알아내는

방법뿐 밖엔 없습니다.

그러니, "IP 추적 해주세요" 라고 해봤자, 개인이 알아내는것은 사실상 불가능 할 뿐더러, 누군가 IP 를

추적하여, 실 주소를 알아냈다는것은 심각한 '범죄' 행위 입니다.

그러니, "IP 추적해주니 돈 주세요" 등의 내용에 속지도, 이용 당하지도 마시기 바랍니다.