지식 iN - 해킹 프로그램에 대해서

2009. 9. 13. 02:59Naver 지식iN 답변/Security

이 글은 제가 2009년 9월 13일에 답변 작성한 글입니다.

질문자의 글

그 사람들이 해킹프로그램 이랑
매크로 프로그램을 만들잖아요..
근데 해킹프로그램에서 프로그램 실행시키면
아이디 비번 어케 자신이 알게되나요 ??..

1. 해킹프로그램의 원리
2. 해킹프로그램 만드는방법
3. 매크로 프로그램 만드는방법
4. 프로그램 자체를 만드는방법

이 4가지좀 답변 해주시면 감사하겠습니다 ㅎㅎ


답변한 글

안녕하세요? ^^
Kinesis 입니다.

해킹프로그램에 대한 궁금증을 질문해 주셨군요 ^^;
질문에 대해서 제 성심 성의껏 답변해 드리도록 하겠습니다 ^^

※ 1. 해킹프로그램의 원리
해킹프로그램은 다양한 방식이 존재합니다. 백도어, 트로이목마, 키로그, 넷봇 등 참 다양한 방식과 프로그램들이 존재하고 만들어지고 또 사용됩니다. 보통은 해킹을 하는 해커가 자신에게 맞는 프로그램을 제작해서 사용하는것이 대부분이고, 일부는 어느정도 대처방안들이 나와 사람들이 대처하기 시작한 뒤에서야 공개하는 것이 일반적입니다.

그럼 우선 원리를 말씀드리겠습니다. 해킹의 원리는 간단하게 표현하면 다음과 같습니다. 네트워크상에 있는 대상(집으로 표현이 가능하겠죠)의 입구를 찾아 수많은 문 중에 가장 취약한 문을 부수고 들어가는 것이라고 설명할 수 있겟습니다.

─ 포트스캐너
일반적으로 이러한 입구를 찾는 것은 오랜 시간을 소모하게 됩니다. 일반적으로 네트워크 통신간에 쓰이는 입구가 포트(Port) 라고 부르는 것입니다만, 네트워크를 이용해 정보를 주고받기 위해서는 어쩔 수 없이 네트워크 포트를 일부 열어서 사용할 수 밖에는 없습니다. 바로 이러한 포트를 알아내는 해킹 보조 프로그램 중 포트스캐너가 존재합니다. 포트는 1-65535 까지의 개수가 존재합니다. 이러한 포트중에서 열린 포트를 하나씩 확인해서 어떠한 포트가 개방되어있지를 알아내는 프로그램이 되겠습니다.

─ 백도어
앞서 침입을 하기위해서는 포트가 필요하다는 것은 이해하실 수 있을 겁니다. 그럼 한번 침입한 컴퓨터를 다시금 쉽게 침입을 하려면 어떻게 하는 것이 좋을 까요? 안보이는 뒷문을 만들어 숨겨놓거나 쥐구멍을 만드는 방법이 있겠지요? 이러한 역할을 하는 것이 바로 백도어 입니다. 백도어는 침입한 컴퓨터 안에 실행시켜놓는 프로그램 중 하나로 나중에 다시 침입을 하기 쉽게끔 하기 위해서 설치합니다. 그리고 자신이 설치해놓은 백도어의 정보로 전에 했던 번거로운 작업없이 쉽게 침입을 하게 도와주는 프로그램이라 볼 수 있겠습니다.

─ 트로이목마
또 다른 방법으로는 트로이목마라는 방법이 있습니다. 이 프로그램은 작동하기 시작하면 설치된 컴퓨터 안에 있는 정보를 트로이목마안에 저장되어있는 본래의 해커의 주소로 발신을해서 해킹한 데이터를 보내주는 역할을 하게 됩니다. 따라서 보통 아무렇지 않게 이용하고 있었는데 개인정보가 유출되었다 라고하면 이 트로이 목마를 의심해볼 수 있겠지요.

─ 키로그
키로그는 트로이목마와 비슷한 역할을 합니다. 하지만 보다 근본적인 목적이 키 입력 값을 훔쳐내는데에 있다는 것이 주된 목적이 되겠습니다. 키 입력한 값을 저장해 두었다가 인터넷이 연결된 순간 인터넷에 노출시키게 된다면? 그럼 프로그램이 돌아가는 동안 입력한 모든 값이 노출이 되겠지요? ID 에서 PW 및 주민등록까지. 이러한 해킹 방법도 존재합니다.

간단하게 이정도만 소개해 드리겠습니다만, 이 외에도 참 많은 해킹 기법들이 존재합니다. 가장 흔히 쓰이는 버퍼오버플로우라던가 루트권한획득이라던가 사전대입방법등 참으로 다양한 방법이 존재하는데 이것을 전부 답변하나에 써드리기는 힘들 것 같습니다 ^^;

※ 2. 해킹 및 매크로 프로그램 만드는 방법
프로그램을 만드는거 자체에서는 프로그래밍 기술을 접목시킬 수 밖에는 없습니다. 매크로 프로그램 역시 마찬가지입니다. 단지 만드는 과정에 있어서 해킹프로그램은 해킹프로그램이 노출되지 않도록 루트킷 과같은 기술을 집어넣기도하고, 일반적으로 취약점을 공격할 수 있는 루틴(명령어) 등을 넣어두어 보안 취약점이 들어난 대상을 자동적으로 공격하게끔 만들어내거나 용도에 맞춰 만들어집니다. 매크로는 비슷하나, 실행을 할 경우 자동으로 어떠한 행동을 하도록 만들어주는 것이 그 차이입니다.

※ 3. 프로그램 자체를 만드는 방법
프로그램 자체를 만드는 방법은 프로그래밍 언어를 이용해 프로그램 코딩과정을 거쳐 만들어 지게 됩니다. 이런 프로그래밍을 하려면 C나 C++ 등의 프로그래밍 지식을 필요로 합니다. 덧붙여 네트워크와 접목되어있는 만큼 네트워크 기술역시 같이 들어가게 됩니다. 이러한 프로그래밍 언어에 대한 지식은 서적으로도 많이 나와있으니 참고하시면 될 것 같습니다.

도움이되셨을까요? ^^
가급적 자세하고 이해하기 쉽게끔 해드리기 위해서 이래저래 썻는데 도움이 되셨는지 모르겠군요 ^^
그럼 좋은 하루 되시길 바라면서 전 이만 물러가겠습니다 ^^

by Kinesis(http://kinesis.tistory.com)


제가 직접 작성했던 원문을 보시려면 다음 주소를 참고해 주세요.
http://kin.naver.com/detail/detail.php?d1id=1&dir_id=106&eid=MZ7tHls77xvgGVFtgUNyzrXcg57fga+n

그 외의 답변 리스트는 다음 주소로 가시면 볼 수 있습니다.
http://kin.naver.com/userinfo/answer.nhn?userId=kinesis815