정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은...

53
본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다. 정보보호를 위한 해킹의 이론과 실제 학습정리노트 1. 보안의 정의 및 개요 일반적으로 보안이라 함은 외부의 침입 또는 공격으로부터 보호하는 활동을 말합니다. ○ 보안의 영역 - 물리적인 보안: 출입통제, 도난 등 일반 보안 - 시스템 보안: 웹, 네트워크, 서버 등 시스템 보안 출입 통제, 도난 방지 등 물리적인 보안을 막는 것과 인터넷을 통한 웹, 네트워크, 서버 등의 공격을 막는 시스템보안 두 가지 영역으로 나누어 볼 수 있습니다. ○ 보안의 위험 요소 자연적 위험 천재 지변 및 자연 현상에 의한 것으로, 홍수 또는 태풍으로 인한 물리적 손해를 말합니다. 인간의 의도적 위험 인간이 계획하고, 침입 또는 공격을 시도하는 것으로, 외부로부터의 해킹 공격을 예로 볼 수 있습니다. 인간의 비의도적 위험 인간이 계획하지 않은 행동이 침입 또는 공격을 하는 것과 같은 결과를 발생하는 것으로,프로그램 오류에 의한 시스템 다운 현상 같은 것을 예로 볼 수 있습니다. ○ 정보보안이 필요한 이유 인터넷의 개방성 인터넷의 개방성으로 인하여, 우리는 언제, 어디서든지, 쉽게 정보를 얻을 수 있는 반면에, 해킹에 의한 정보 유출의 위험 성도 내포하고 있습니다. 해킹 도구의 보편화 해킹 도구가 보편화되고, 쉽게 해킹 툴을 사용할 수 있게 됨 에 따라 사용법만 알면, 어렵지 않고 쉽게 누구나 해킹을 할 수 있게 되었습니다. 사용자의 인식 부족 인터넷의 발달로 인하여 사용자들은 편리해졌지만, 해킹의 위험성에 대해서는 사용자들의 인식 부족으로 인하여, 시스템 패치나 보안 활동은 거의 하지 않기 때문에, 해킹 사고는 더욱 많이 일어나고 있습니다. ※ 정보보안 활동은 또 하나의 자산으로 부각되고 있는 정보를 보호하는 활동이며, 컴퓨터 범죄로 인한 무형이든 유형이든 피해를 막는 것이 목적입니다. ○ 기술적 해킹의 정의 1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정 개인이나 특정 단체의 정신적 또는 물리적인 이익을 위하여 허가받지 않은 시스템에 강제로 침입하는 것

Upload: others

Post on 29-Oct-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

1. 보안의 정의 및 개요

일반적으로 보안이라 함은 외부의 침입 또는 공격으로부터 보호하는 활동을 말합니다.

○ 보안의 영역

- 물리적인 보안: 출입통제, 도난 등 일반 보안

- 시스템 보안: 웹, 네트워크, 서버 등 시스템 보안

출입 통제, 도난 방지 등 물리적인 보안을 막는 것과 인터넷을 통한 웹, 네트워크, 서버 등의

공격을 막는 시스템보안 두 가지 영역으로 나누어 볼 수 있습니다.

○ 보안의 위험 요소

자연적 위험천재 지변 및 자연 현상에 의한 것으로,

홍수 또는 태풍으로 인한 물리적 손해를 말합니다.

인간의 의도적 위험인간이 계획하고, 침입 또는 공격을 시도하는 것으로,

외부로부터의 해킹 공격을 예로 볼 수 있습니다.

인간의 비의도적 위험

인간이 계획하지 않은 행동이 침입 또는 공격을 하는 것과

같은 결과를 발생하는 것으로,프로그램 오류에 의한 시스템

다운 현상 같은 것을 예로 볼 수 있습니다.

○ 정보보안이 필요한 이유

인터넷의 개방성

인터넷의 개방성으로 인하여, 우리는 언제, 어디서든지, 쉽게

정보를 얻을 수 있는 반면에, 해킹에 의한 정보 유출의 위험

성도 내포하고 있습니다.

해킹 도구의 보편화

해킹 도구가 보편화되고, 쉽게 해킹 툴을 사용할 수 있게 됨

에 따라 사용법만 알면, 어렵지 않고 쉽게 누구나 해킹을 할

수 있게 되었습니다.

사용자의 인식 부족

인터넷의 발달로 인하여 사용자들은 편리해졌지만,

해킹의 위험성에 대해서는 사용자들의 인식 부족으로 인하여,

시스템 패치나 보안 활동은 거의 하지 않기 때문에,

해킹 사고는 더욱 많이 일어나고 있습니다.

※ 정보보안 활동은 또 하나의 자산으로 부각되고 있는 정보를 보호하는 활동이며,

컴퓨터 범죄로 인한 무형이든 유형이든 피해를 막는 것이 목적입니다.

○ 기술적 해킹의 정의

1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것

2) 특정 개인이나 특정 단체의 정신적 또는 물리적인 이익을 위하여

허가받지 않은 시스템에 강제로 침입하는 것

Page 2: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

2. 시스템 해킹 단계의 정의

실제 시스템 해킹은 아래의 3 단계를 거쳐 일어난다고 볼 수 있습니다.

○ 시스템 해킹 단계

시스템 정보 수집 단계침투하기 위한 시스템 정보를 수집하는 단계입니다.

침투 이전의 준비 단계라고 볼 수 있습니다.

시스템 침입 단계

시스템 정보 수집 단계에서 수집한 정보를 가지고, 실제

시스템에 침입 하는 단계입니다.

즉, 시스템 침입 단계는 침입 유형 및 침입 공격 방법이

정의되는 단계입니다.

시스템 전이 단계

시스템 전이 단계는 반드시 필요한 단계는 아닙니다.

해킹 시에 있을 수도 있고, 없을 수도 있는 단계 입니다.

일차적으로 해킹이 일어난 후, 다른 컴퓨터로 제 2차 공

격을 시도하기 위한 단계입니다.

실제 해킹이 일어나는 과정을 그림으로 표시하면 다음과 같은 그림으로 표현됩니다.

<설명>

시스템 정보 수집단계에서 수집된 정보의 일부분만이 실제 시스템을 침입하는데 이용이

됩니다. 불필요하게 수집된 정보는 그냥 버리게 되는 겁니다.

실제 침입에 성공한 이후에는 제 2차의 공격을 위한 전이 부분에서 여러 갈래로 나뉘어

침입 할 수 있습니다.

여기서 설명을 드리자면, 제 2차 공격은 시도를 할 수도 있고 안 할 수도 있다는 것입니다.

반드시 제 2차 공격을 하는 것은 아닙니다.

Page 3: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 시스템 정보 수집 활동

footprinting

footprinting 은 발자국이라는 뜻입니다.

특정 시스템에서 정보를 수집하기 위한 방법은 정해져 있습니다.

정해진 정보 수집 방법을 footprinting 이라고 하죠.

원격의 시스템에서 운영체제 정보를 알아내기 위해서는, 그에 맞는

footprinting 기법을 이용해야 합니다.

적절한 footprinting 기법을 이용하여 시스템의 정보를 가져옵니다.

scanning

footprinting 이 정보 제공 기법을 제공하는 것이라면, scanning 은

문이나 창문을 찾기 위해서 벽을 노크하는 것과 같다고 할 수 있습니다.

어떠한 서비스와 호스트가 있는지 상대편 서버를 찔러 본 후에 나타나는

반응으로 유효한 서비스 및 호스트를 가려냅니다.

enumeration

enumeration 은 정보를 목록화하는 것입니다.

scanning 을 통한 유효한 정보들 중에서 시스템에서 또 다시 유효한

정보를 추출해내어 목록화 하는 것을 말합니다.

○ 시스템 침입 유형

패스워드 크랙을 하여,

패스워드를 알아낸 후 침입

한마디로 찍어서 맞추기입니다.

사용자가 사용할 만한 패스워드를 입력하여,

패스워드가 맞으면 시스템에 접근 하는 것입니다.

사전에 침입 하기 위해서는 사용자 계정 정보를

수집해야 합니다.

패스워드 파일을 크랙하여,

사용자의 패스워드를 알아낸 후 침입

시스템의 패스워드 파일을 불법적이든 합법적이든

가져와서, 패스워드 파일을 크랙을 하여 시스템에

접근 하는 방법입니다.

사전에 침입 하기 위해서는 사용자 계정 정보 및

시스템 패스워드 파일을 수집 해야 합니다.

시스템 버그를 이용한 침입

시스템 버그를 이용한 침입은 버퍼 오버플로우나

DoS 공격 spoofing 등 불법적인 쉘을 획득하는 공

격이 있습니다. 사전에 시스템의 파악된 정보를 가

지고, 취약점 정보를 도출해 내야합니다.

스니핑을 통한

패스워드를 알아낸 후 침입

네트워크를 모니터링 하여, 사용자의 로그인 아이

디/패스워드를 알아내어 시스템에 침입하는 방법입

니다.

시스템의 버그를 이용한 침입의 경우, 단순히 시스템 정보만을 파악하고 시도 할 수 있는

것이 아니라, 파악된 시스템 정보를 가지고 취약점 정보를 도출해 내야 합니다.

Page 4: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

※ 시스템 버그를 이용한 침입의 특징

원격의 해커가 시스템 버그를 이용하여, 침입 하는 것은 다음과 같은 두 가지 내부 버그에

의해 취약점이 존재 할 수 있습니다.

시스템 내부 프로그래밍 상의 버그

시스템 자체가 가지는 버그로써, 내부 프로그래밍

로직 중에서 버퍼 사이즈를 체크 하지 않는 등의

버그로 인해 공격 할 수 있는 취약점 버그

관리자의 오설정에 의한 버그관리자의 설정 잘못으로 인하여, 외부에서 공격

할 수 있는 취약점 버그

관리자의 오설정에 의한 버그는 설정을 바꾸면 조치가 되지만, 시스템 내부 프로그래밍 상의

버그로 인한 취약점의 경우는 프로그램 패치를 통해서 조치가 됩니다.

○ 시스템 전이를 위한 공격 기법

백도어

백도어는 시스템을 해킹한 이후에 스니핑 관련 모니터링 툴을 확인하여

재 침입을 쉽게 침입 하기 위해 설치하는 침입 경로 입니다.

백도어는 시스템 재 침입을 위한 침입 경로 이외에도 사용자 몰래 설치

되어 동작하는 프로그램을 뜻하기도 합니다.

스니퍼

시스템의 트래픽을 모니터링 하여, 모니터링된 트래픽 중에서

시스템에 로그인 하기 위한 사용자 아이디/패스워드 등을 도출해내어

다른 시스템으로 스니핑한 아이디/패스워드를 이용하여 접근하는 것을

말합니다.

○ 백도어를 이용한 전이 공격의 특징

백도어를 이용한 전이 공격에 있어서 백도어의 의미를 해석하자면 '뒷문'이라는 뜻입니다.

일차적으로 해킹에 성공한 이후에 사용자가 데이터 베이스로 접근을 시도할 때,데이터베이스

연결 아이디와 패스워드를 알아내거나, 시스템 관리자의 패스워드를 알아낼 때 사용합니다.

○ 스니퍼를 이용한 전이 공격의 특징

스니퍼는 어려운 해킹을 굳이 할 필요 없이 손 쉽게 해킹하는 방법중의 하나입니다.

네트워크상의 떠도는 패킷을 모니터링하여, 패킷 내용에 사용자와 관련된 중요 정보

(아이디 및 패스워드 정보)를 알아내어, 정상적인 인증 절차를 거쳐서 시스템에 침입하는

공격 방법입니다.

Page 5: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

3. 해킹 유형

서비스 거부 공격이라 함은 DoS (Denial Of Service)의 약자로 외부의 공격에 의해,방해를

받아 정상적인 서비스가 동작하지 못하는 것을 말합니다.

일반적으로 해킹이라 함은 불법적으로 상위 권한을 얻는 것을 말합니다.

사용자의 데이터를 빼내어 갈 수 있는 권한 또는 사용자의 데이터를 변조 할 수 있는 허락되지

않은 권한을 불법으로 얻는 것을 해킹이라고 합니다.

그러나, 서비스 거부 공격은 '못 먹는 감 찔러나 보자'라는 해킹 공격의 일종입니다.

즉, 불법적인 권한을 얻을 수 없다면 시스템이나 망가뜨려 보자는 것입니다.

○ 서비스 거부 공격(Dos)의 특징

공격의 원인 및 근원지를 찾기 힘듦

2003년 1월 25일 인터넷 대란과 같이 여러대의 시스템

이 한꺼번에 공격을 한다면, 추적에 추적을 거듭한다

해도 근원지를 파악하기 힘듭니다.

공격 방법이 매우 다양

단순히 네트워크 트래픽의 폭주 이외에도,

시스템 버그를 이용하거나, 인터넷 접점의 장비를

다운 시키는 방법 등 다양한 공격 방법이 존재합니다.

단순한 공격 방법이 많아

누구나 쉽게 이용

현재 해킹의 위험성은 인터넷에서 손쉽게 해킹 도구를

구할 수 있다는 것입니다.

DoS 공격 역시 인터넷에서 쉽게 공격용 도구를 구하여

테스트 해 볼 수 있습니다.

뚜렷한 방지 대책 부재

DoS 공격은 정상적인 서비스의 일종입니다.

해킹 공격이 아니라 정상적인 서비스인데, 시스템이

처리 할 수 없는 많은 양의 트래픽에 의해 시스템이

다운되는 것입니다.

정상적인 서비스를 DoS 공격으로 판단하여 막을 수

있는 방법은 없습니다.

사용자의 실수에 의해

발생 할 수 있음

외부에 의한 공격이 아니라, 사용자의 잘못된 실수로

시스템에 이상이 생겨 정상적인 서비스가 안 될 수도

있습니다.

최근 네트워크를 이용한

원격 DoS 공격 급증

2003년 1월 25일 인터넷 대란과 같이 인터넷이라는

매체의 네트워크를 이용한 원격 DoS 공격이 발생하고

있습니다.

실제 예) Code Red worm, Nimda Worm

Page 6: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 현대의 서비스 거부 공격(Dos)의 특징

현대의 시스템인 메모리와 하드 디스크는 CPU 속도 면에서 과거 보다는 성능이 매우 좋습니다.

따라서, 이러한 성능 좋은 시스템을 서비스 거부 공격(DoS)을 하기는 어렵습니다.

왜냐하면, 시스템이 처리할 수 없을 정도로 트래픽을 발생 시켜야 하는데, 시스템 성능이

좋기 때문에 왠만한 트래픽에 의해서는 서비스 거부 공격(Dos)을 할 수 없습니다.

현대에는 이러한 성능 좋은 시스템을 다운 시키기 위해서, 여러 대의 시스템을 해킹한 뒤,

원격에서 해킹한 여러 대의 시스템에 동시에 명령을 내려 공격하도록 하여, 서비스 거부 공격

(DoS)을 합니다.

○ spoofing

spoofing(스푸핑) 이라는 말은 '속이다' 라는 뜻으로 해커가 해킹을 하기 위한 방법의

일종으로 시스템에 접근하기 위하여 IP 또는 아이디 등을 속여, 시스템에 위장하여

접근하는 해킹 기법을 의미합니다.

○ IP spoofing

IP spoofing 은 IP 를 속인다는 것으로, 특정 IP 에서만 접근 할 수 있도록 설정이된

시스템에 외부에서 불법적으로 접근 하기 위하여, 사용자는 접근 가능한 IP 인 것처럼

자신의 IP를 속여서 접근을 합니다. 이것을 IP spoofing 이라고 합니다.

○ E-mail spoofing

E-mail spoofing 은 메일 아이디를 속이는 것으로 발신자의 ID 를 속이는 방법과 수신자의

ID 를 속이는 2가지 방법이 있습니다.

○ 로그인 spoofing

마치 로그인 화면인 것처럼 속여서 사용자 아이디와 패스워드를 몰래 빼내는 것을

말합니다.

Page 7: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

4. 고전적인 해킹 방법 소개

○ More 명령의 취약성

More 명령어의 취약성은 앞서 설명한 More 명령어의 옵션 중에 있습니다.

예를 들어 setuid 가 설정된 파일에 읽기 권한이 설정되어 있어, 외부의 누군가가 more

명령을 이용하여 파일을 읽습니다. 이때, 일반 사용자가 setuid 설정 파일을 읽으면 일반

사용자는 잠시 시스템 어드민의 권한이 됩니다.

시스템 어드민의 상태에서 ! 옵션을 이용하여 잠시 쉘로 빠져나간다면 쉘은 당연히

시스템 어드민의 쉘로 실행될 것입니다.

별다른 해킹의 노력을 하지 않아도 more 명령어의 옵션을 이용하여 시스템 어드민의

쉘을 획득할 수 있습니다.

실제 예)

<설명>

more 명령어를 이용하여 파일을 읽는 도중에 ! 옵션을 이용하여 잠시 쉘 명령어를 실행

시킬 수가 있습니다. 예를 들어 시스템의 관리자가 일반 사용자에게 시스템 경고를 알리는

문구를 로그인 시에 나타나도록 하려고 합니다.

이때, 경고 문구가 길어 more 명령을 이용하여 경고 문구를 알리려고 합니다. 경고를 알리는

문구를 관리자 권한으로 실행한 상태라면 일반 사용자는 경고 문구를 more 명령어를 이용하여

Page 8: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

읽다가 ! 옵션을 이용하여 시스템 관리자의 권한으로 쉘을 실행 시킬 것입니다.

!주의

more 명령어의 옵션중 ! 옵션은 매우 정상적인 옵션입니다.

그러나 more 명령어를 통해 파일을 읽을 때, 파일의 설정된 권한이 매우 중요합니다.

! 옵션을 이용하여 쉘을 실행시키는 권한과 연관되기 때문입니다.

따라서, 경고 문구를 삽입하거나 할 때 setuid 설정으로 인하여 일반 사용자가 시스템

관리자의 상태에서 more 명령어를 이용하게 될 경우 ! 옵션을 이용하여 시스템 관리자의

쉘을 획득 할 수 있습니다.

반드시 more 명령어를 사용할 경우에는 파일의 설정 권한을 체크하여야 합니다.

5. 유닉스 시스템 정보 수집 기법

○ 유닉스 운영체제 시스템 정보 유형

사용자 로그인

아이디/패스워드 정보

유닉스 시스템에 접속하기 위한 사용자 정보(아이디/패스워드)

는 가장 중요한 정보입니다.

사용자 로그인 정보만 알게 되면 다른 부가적인 해킹 시도는

필요 없습니다.

운영체제 버전 정보

유닉스 운영체제의 버전 정보는 원격에서 해커가 시스템의

취약점을 이용하여, 침입 하려고 할 때 반드시 알아야 하는

정보입니다.

예를 들어 SUN 운영체제의 telnet overflow 기법을 이용하여

접근하려면 유닉스 운영체제의 정보가 SUN 인지 HP 인지

AIX 인지를 먼저 파악해야 합니다.

서비스 중인 서비스 정보

유닉스 시스템 운영체제의 취약점 이외에, 운영체제에서

서비스하는 서비스의 취약점을 이용하여 시스템에 침입 할 수

있습니다. 예를 들어 유닉스 시스템에서 ftp 서비스를 wu-ftp

를 사용한다면 원격에서 overflow 취약점을 이용하여 접근 할

수 있습니다.

서비스별 사용자 로그인

아이디/패스워드 정보

유닉스 시스템 사용자 로그인 정보 이외에 서비스에 접근하는

사용자 정보도 매우 중요합니다. 실제 유닉스 시스템의 취약

점 이외에 서비스의 취약점을 이용하여 시스템에 침입할 수

있으므로, 서비스 사용자 계정이 매우 중요합니다.

Oracle 데이터베이스 사용자 계정, ftp의 anonymous 사용자

나 웹 접근 사용자 등의 정보를 이용하여 시스템에 침입 할

수 있습니다.

Page 9: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

네트워크 정보

네트워크 정보는 시스템에 접근 제한이 되어 있는 경우라면,

접근이 허용된 IP 정보는 매우 중요합니다. 원격의 해커가 IP

스푸핑과 같은 기법을 이용하여 침입을 시도할 수 있습니다.

또한 1차 해킹 이후에 2차 해킹을 위하여, hosts 파일 정보나

rlogin 정보 등을 이용할 수 있습니다.

○ 운영체제 파악

해킹 하려고 하는 원격의 시스템이 윈도우 시스템인지, 유닉스 시스템인지를 먼저 알아야

합니다. 여러 가지 기법을 통해 운영체제를 파악 할 수 있는데, 일반적으로는 다음과 같은

기법을 이용합니다.

원격에서의 유닉스 시스템 파악;

- ping 을 통한 유닉스 시스템 판별

- telnet 배너를 통한 운영체제 판별

- 열린 port(서비스)를 통한 유닉스 시스템 판별

superscan 과 nmap 과 같은 도구를 이용한 유닉스 시스템에서 Port number는

어떠한 서비스를 의미하는 것인지 살펴 보도록 합시다.

○ 포트별 서비스

Port Number 서비스 명

21 ftp 서비스

23 telnet 서비스

25 SMTP 메일 서비스

79 유닉스 사용자 계정 정보 서비스

80 WEB 서비스

110 POP3 서비스

111 유닉스 RPC 서비스

513 rlogin 서비스

1521 오라클 서비스

6000 X-terminal

Page 10: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 서비스별 정보 목록화

서비스 목록화 정보

21/ftp ftp 종류 및 버전 정보 목록화

23/telnet 운영체제 종류 및 버전 정보 목록화

25/smtp 사용자 계정 정보 목록화

79/finger 사용자 계정 정보 목록화

80/web 웹 서버 종류 및 버전 정보 목록화

111/rpc RPC 프로그램 정보 목록화

6. 유닉스 시스템 침투

유닉스 시스템에서 침입이라 함은 2가지로 분류 할 수 있습니다.

로컬 공격

로컬 공격은 불법적이든 합법적이든 시스템에 접근 할 수 있는

사용자 정보(아이디/패스워드) 를 가지고, 시스템에 접근 한 뒤,

상위 권한(루트권한) 을 얻기 위해 공격하는 것을 말합니다.

※ 특징

로컬 공격 취약성이 존재한다 하더라도, 시스템 접근 권한이

없다면 해킹을 할 수 없습니다.

따라서, 반드시 로컬 공격의 경우 시스템 접근 권한을 획득

해야 합니다.

리모트 공격

리모트 공격은 어떠한 시스템 접근 권한도 없습니다.

즉, 사용자 정보(아이디/패스워드) 없이 시스템에 접근 하기 위해

공격하는 것을 말합니다.

※ 특징

아무런 접근 권한 없이도 시스템을 해킹 할 수 있으므로,

매우 위험합니다.

○ 유닉스 시스템의 취약성

- telnet 및 ftp 등 네트워크로 로그인을 할 때 사용자 정보(아이디/패스워드)가

암호화되어 전송되지 않습니다.

- RPC 계열의 리모트 함수에 많은 버퍼 오버플로우 취약점이 존재 합니다.

- setuid 라는 특성으로 인하여, 시스템 권한 상승이 일어날 수 있습니다.

- 사용자의 패스워드 해쉬값을 이용하여, 원래 평문 패스워드를 알아낼 수 있습니다.

Page 11: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ setuid 의 기본적인 의미

유닉스 시스템 내부적으로 일반 권한의 사용자가 특정한 업무를 수행하는 동안에

잠시 시스템 어드민의 권한이 되었다가 업무 수행을 종료하면 다시 일반 권한의 사용자로

복귀 하는 것을 말합니다.

○ setuid 의 위험성

Setuid는 잠시 시스템 어드민의 권한이 될 수 있는 것에 위험성이 존재합니다.

해커들은 잠시 시스템 어드민의 권한이 되는 틈을 타서, 해당되는 프로그램 수행만 하는

것이 아니라, 자신들이 수행하고 싶은 다른 것을 합니다.

예를 들면 해커들은 /bin/sh 를 수행하는 것을 하고 싶어 합니다.

setuid 파일은 유닉스 시스템에서 해커들의 공격 대상이라고 보면 됩니다.

즉, 로컬 공격이나 리모트 공격 등 시스템의 어떠한 상위 권한을 얻기 위해서는 setuid

파일을 이용해야 하기 때문입니다.

그래서 시스템 어드민 권한이 되는 것을 이용하여 공격의 틈을 노리는 것입니다.

○ 패스워드 크랙이란?

패스워드를 무작위로 대입하는 방법입니다

사람이 일일이 손으로 패스워드를 무작위로 대입한다면 노가다가 될 것입니다.

그러나 현대 컴퓨터 CPU 속도는 매우 빠르며, 이러한 컴퓨터를 이용하여, 자동화된

프로그램을 이용하여, 사용자가 사용할만한 패스워드를 대입합니다.

○ rlogin 이란?

rlogin(remote login)은 버클리 UNIX에 의해 제공되는 서비스로 주로 관리자들이

같은 네트워크에 있는 시스템들을 편리하게 관리하기 위해 사용했던 것입니다.

Telnet과 거의 유사하게 사용이 가능하며, 적당한 설정을 해두면 패스워드 없이 바로

로그인이 가능합니다.

Page 12: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ rlogin 동작 원리

rlogin으로 원격서버로 접속을 하면 원격서버의 /etc/hosts.equiv와 유저 홈 디렉터리의

.rhosts파일을 보고 확인된 유저는 바로 접속이 되고, 그렇지 않으면 암호를 묻게 됩니다.

이때 이 파일에 '+ +'을 추가해 두면 아무나 패스워드 없이 접근이 가능하게 됩니다.

물론 root권한도 암호없이 접근이 가능하게 됩니다.

○ rlogin 취약성

앞서 이야기 했지만 .rhosts 파일에 "+ +" 설정을 하게 되면 아무나 패스워드 없이

접근 가능합니다.

즉, 원격의 해커가 서버에 접근하기 위해서 .rhosts 조작을 하는 경우가 있습니다.

유닉스 백도어나 또는 해킹을 위해서 .rhosts 파일을 조작하여, 패스워드 인증을 받지

않고 유닉스 시스템에 침입 시도를 합니다.

○ rlogin의 사용 예

시스템 A(1.1.1.1) 사용자 root 가 시스템 B(2.2.2.2) 로의 rlogin 시도

#rlogin 2.2.2.2(B 시스템 IP)

#(시스템 B shell prompt) => 패스워드 묻는 과정 없이 B 시스템으로 telnet 로그인

○ rlogin 취약성 대처 방법

보안상 패스워드 없이 로그인하는 rlogin의 경우는 권고하는 바가 아닙니다.

왜냐하면 해커들이 패스워드 없이 로그인하는 rlogin을 이용하여, 시스템 침입의 경로로

이용할 수 있기 때문입니다. 하지만, 시스템 구성상 반드시 필요한 경우가 있습니다.

그렇다고 해도, 접근 제한 없이 rlogin을 사용하지 말고 반드시 접근 제한을 하여

rlogin을 사용하도록 해야 합니다.

○ X-Window 취약성

X-Window는 기본적으로 완벽한 멀티태스킹을 구현하는 UNIX를 기반으로 만들어진

GUI 환경입니다. 즉, 여러개의 윈도우를 열어 다중 작업을 할 수 있고 네트워크를 통해

다른 시스템의 X 어플리케이션도 실행시킬 수 있습니다.

이와같이 강력하고 자유로운 통신인 반면, X-Windows는 인증방식의 취약점으로 인해 많은

보안상의 취약점이 발견되었고 공격의 대상이 됩니다.

주요 취약점은 다음과 같습니다.

- 사용자의 키보드 입력을 외부에서 가로채기

- 로컬 스크린을 덤프하여 훔쳐보기

- 사용자의 키보드 입력과 같은 이벤트를 특정 윈도우에 보내 명령을 수행시키기

실제로, X-Window의 취약점을 이용한 해킹유틸리티들이 공개적으로 알려져 있습니다.

그 중에 대표적인 유틸리티로는 'X-Key' 와 'X-Hack' 이 있습니다.

- X-Key : 원하는 X 서버로부터의 키 입력을 그대로 아스키로 캡쳐함

- X-Hack : 공격대상인 X 서버의 입력현황을 해커가 조정함

Page 13: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

7. 유닉스 백도어

○ 백도어(backdoor)란?

백도어(backdoor)란 '뒷문' 이라는 뜻으로 해커가 시스템을 해킹한 뒤에 시스템에

재 침입을 할 목적으로 관리자 모르게 만들어 놓은 시스템 침입 통로입니다.

실제로 시스템을 해킹하는 과정은 매우 어렵고, 복잡합니다.

만약에 해킹한 시스템에 다시 접속 해야 한다면 매번 접속 할 때마다 어렵고, 복잡한

해킹 과정을 반복해야 할 것입니다.여기서 해커들은 한 번 해킹한 시스템에 재 침입

할 때에는 좀 더 쉽게, 접속 할 수 있도록 비밀 통로를 만들어 둡니다. 시스템 관리자가

모르도록 말이죠. 이것이 바로 백도어입니다.

그렇다면 해커는 시스템에 왜 재 침입을 할까요?

앞서, 중요한 시스템의 경우 한 번의 해킹으로는 실제 해킹이 이루어 질 수 없다는 것을

이야기 하였습니다.

일차적으로 해킹을 한 번 시도한 이후에 스니퍼나 또 다른 트로이 목마와 같은 프로그램을

이용하여, 중요 시스템에 접근 할 수 있는 관련된 중요 정보를 빼냅니다.

○ 백도어와 트로이 목마 비교

백도어(Backdoor) 트로이 목마 (Trojan Horse)

설치 방법 해커 클라이언트 사용자가 설치하도록 유도

만든 목적 시스템 재 침입사용자 정보를 빼내거나,

백도어의 역할 포함

○ 백도어의 특성

정상적인 인증 절차 없이 침입이 가능인증 절차 없이 바로 시스템에 접근이 가능 해야

합니다.

짧은 시간 내에 침입이 가능어려운 해킹 과정을 통하지 않고, 바로 시스템에

접근이 가능해야 합니다.

로그를 남기지 않고 침입이 가능해킹 과정 추적 시에 백도어 사용을 감추기 위해서,

로그를 남기지 않아야 합니다.

임의의 서비스 포트를 이용well known 포트 이외에 임의의 포트를 이용하여

관리자 모르게 설치를 합니다.

백도어 설치시 어드민 권한이 필요

백도어를 설치하기 위해서는 시스템 파일을

수정하거나 변경하게 되는데, 이때 시스템 파일

접근을 위하여 어드민 권한이 필요합니다.

Page 14: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 백도어의 설치 목적

- 시스템 해킹 후 재침입을 위해

- 침입 시에 어려운 해킹 과정을 통하지 않고, 쉽게 침입 하기 위해

- 사용자 정보를 몰래 저장 또는 빼내가기 위해

○ 백도어 설치 방어

사용자의 홈 디렉터리

퍼미션 700

사용자의 홈 디렉터리는 다른 사용자가 읽거나 쓸 수

없도록 합니다. 트로이 목마와 같은 프로그램을 사용자

홈 디렉터리에 설치하여, 사용자의 중요 정보를 빼내어

갈 수도 있기 때문입니다.

tmp 디렉터리 이외에는

시스템 디렉터리 일반 사용자

접근 금지

일반적으로 모든 사용자는 자신의 홈 디렉터리와 tmp

디렉터리 이외에는 시스템 디렉터리에 접근을 금지

합니다. 트로이 목마 프로그램을 설치 할 수 있는

디렉터리를 원천적으로 제한 하도록 합니다.

출처가 불분명한 파일은

설치하지 않음

트로이 목마와 같이 내부의 중요 정보를 빼내어 가는

백도어의 경우 일반적으로 해커가 설치하기 보다는,

정상적인 프로그램에 묻어서 설치가 됩니다.

따라서, 인터넷에 떠도는 출처가 불분명한 파일은

함부로 시스템에 설치하지 않도록 합니다.

8. 유닉스 스니퍼

○ 스니핑의 정의

스니핑(sniffing)이란 킁킁 거리다 냄새를 맡다라는 뜻으로, 네트워크상에 떠다니는 패킷을

모니터링하여, 패킷의 내용을 모니터링 하는 것을 말합니다.

스니퍼는 스니핑을 하는 도구를 말합니다.

원래 스니퍼 라는 도구는 네트워크상의 병목 구간을 모니터링하여, 튜닝을 하기 위한

네트워크 프로토콜 분석 도구였습니다. 그러나 스니퍼 라는 도구가 패킷이 암호화 전송되지

않고, 평문 형태로 전송되는 취약점을 이용한 해킹 도구가 되어 버렸습니다.

Page 15: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 스니퍼 원리

패킷이 평문으로 전송패킷은 암호화 적용되어 있지 않으므로, 누구나 볼

수 있습니다.

같은 네트워크에서는 패킷이

브로드캐스팅 되는 원리를 이용

이것은 네트워크 구조와 관련된 것인데,

같은 네트워크상에서 패킷이 브로드캐스팅 될 때,

스니핑이 가능합니다.

모든 패킷을 수용

네트워크 구조상 같은 네트워크상에는 상대 PC의

패킷도 떠다닙니다. 일반적으로 호스트는 자신의

패킷만을 수용합니다. 즉, 자신의 패킷만 읽는다는

것이죠. 그런데, 스니핑은 자신의 패킷 뿐만 아니라,

다른 패킷도 모두 읽어 버립니다.

○ 스니핑의 위험성

우리가 사용하는 인터넷 프로토콜은 TCP/IP 를 이용합니다.

하지만 초기에 TCP/IP 가 만들어 질 때부터 암호화에 대한 고려는 없었습니다.

그래서 현재 TCP/IP 를 사용하는 대부분의 인터넷 패킷은 암호화되어 있지 않은

평문 형태로 존재합니다. 즉, 누구나 패킷을 모니터링해서 볼 수 있다는 것입니다.

스니퍼 라는 도구를 이용한다면 옆 사람이 어떤 사이트에 접속하는지 어떠한 아이디와

패스워드로 로그인 하는지 알 수 있습니다. 인터넷상에서 전송되는 패킷은 암호화되어

전송되지 않기 때문입니다.

○ 스니퍼 유형

네트워크용 스니퍼네트워크상의 떠돌아 다니는 패킷을 수집하여, 패킷 내용을

모니터링 하는 스니퍼

호스트용 스니퍼임의의 서버 및 PC 에 설치되어, 서버 및 PC 와 통신하는

패킷을 수집하여 패킷 내용을 모니터링 하는 스니퍼

Page 16: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

- 네트워크용 스니퍼: 네트워크용 스니퍼의 경우, 패킷이 반드시 같은 네트워크상에서

브로드 캐스팅이 되어야 합니다.

브로드 캐스팅이 되지 않는 네트워크 구조의 경우 일반적으로 스니핑

이 불가능 합니다. 또한, 어려운 해킹을 하지 않고서 해커가 해킹 하고자

하는 네트워크에 접속해 있어도 스니핑이 가능합니다.

- 호스트용 스니퍼: 호스트용 스니퍼의 경우, 해킹 하고자 하는 시스템에 일차적으로

해킹 시도를 하여 시스템 어드민 권한을 획득 해야 합니다.

호스트용 스니퍼는 중요 시스템의 네트워크 트래픽을 모니터링하기

위한 것으로 네트워크 패킷이 브로드 캐스팅이 될 필요는 없습니다.

반드시 해킹을 하여 설치한 뒤, 중요 시스템에서 통신되는 패킷을

모니터링 합니다.

○ 유닉스 스니퍼 대처

스니퍼를 방어하기 위한 방법으로는 암호화 전송과 OTP 사용을 합니다.

암호화 전송;

- 스니퍼는 ID와 패스워드 등의 중요 정보가 암호화 되지 않고 전송되는 것을

이용하므로, 암호화 전송을 이용하면 스니핑을 막을 수 있습니다.

- SSH (Secure Shell) : 전송되는 데이터를 암호화 전송하므로 패스워드가

유출되지 않습니다. 서버, 네트워크 스니퍼에 모두 안전합니다.

- SSL (Secure Socket Layer) : Socket 통신시에 암호화 전송 기능을 제공합니다.

https나 SSH도 SSL을 이용합니다.

- VPN (Virtual Private Network) : IPSec, PPTP 등의 암호화 전송 프로토콜을 이용하여

안전하게 전송하는 방법으로, 네트워크 스니퍼에

안전합니다.

OTP (One Time Password) 사용;

- 로그인 할 때마다 패스워드를 생성하는 프로그램이나 기기를 이용하는 방법으로

스니핑 되어도 다음 로그인 패스워드가 바뀌므로 안전합니다.

실제로 OTP 의 경우 모든 서버와 패스워드 생성 기기와 시간을 동기화 한 뒤,

임의의 시간에는 정해진 패스워드를 하나 생성하여, 임의의 시간에는 생성된 패스워드만

사용할 수 있습니다. 한 번 사용한 패스워드는 재 사용이 불가능 하므로, 스니핑이

되어도 로그인 할 수 없습니다.

Page 17: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

9. 유닉스 시스템 보안 설정

○시스템 관리를 위한 어드민 지침사항은 다음과 같이 6가지가 있습니다.

1. 시스템 관리를 위한 어드민 지침 사항① (사용자 계정 관리)

- 사용자 계정의 등록 절차는 구두로 하는 것이 아니라, 적법한 프로세스 절차에 의해

관리자의 승인 통보가 나면 등록하도록 합니다.

- 퇴직자, 전배자, 휴직자 등 업무 변동 사항이 생기면 바로 사용자를 삭제 처리 하도록

합니다.

- 잠시 사용하는 계약자 사용자 계정의 경우, 설명란에 사용기간을 명시해두고,

사용기간이 지나면 바로 삭제처리 하도록 합니다.

- 시스템에서 제공하는 디폴트 계정은 해커들이 이미 알고 있고, 해킹에 이용 할 수

있으므로, 사용하지 않으면 제거하도록 합니다.

2. 시스템 관리를 위한 어드민 지침 사항② (사용자 패스워드 관리)

- 사용자 패스워드가 일정 횟수 이상 오류가 발생했을 때, 사용자 계정 잠금 설정을

합니다.

- /etc/passwd 파일에 패스워드 암호화 필드가 노출되었을 경우, 일반 사용자들이

볼 수 없도록 노출을 막도록 합니다.

- 일반 사용자들이 숫자로만 조합된 단순 패스워드나 원격에서 크랙이 가능한 취약한

패스워드를 사용할 수 없도록, 패스워드 포맷 설정을 하도록 합니다.

(패스워드 최소 길이 설정, 이전 패스워드 사용 금지 등)

- 취약한 패스워드를 사용하는 사용자가 있는지 시스템 어드민이 주기적으로,

자동화된 툴로 점검하도록 합니다.

3. 시스템 관리를 위한 어드민 지침 사항③ (사용자 권한 관리)

- 업무 영역별로 그룹을 먼저 정의하도록 하고, 그룹별로 사용자 계정을 추가 하도록

합니다.

- 사용자 계정의 uid 값을 조사하여, 루트 이외에 uid 가 0 인 사용자가 있는지 검사

하도록 합니다.

4. 시스템 관리를 위한 어드민 지침 사항④ (사용자 IP 접근 제한)

- 사용자 아이디를 서비스별(telnet, ftp 등) 네트워크 접속 IP 접근 제한을 실시하도록

합니다.

(TCP wapper 와 같은 무료 소프트웨어를 이용하거나, HP의 IP 접근 제한 기능을

이용하도록 합니다.)

- 특히, 패스워드 없이 로그인하는 rlogin의 경우 아무 곳에서나 로그인 할 수 없도록,

반드시 IP 접근 제한 기능을 실시하도록 합니다.

Page 18: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

5. 시스템 관리를 위한 어드민 지침 사항⑤ (불필요 서비스 제거)

- /etc/inetd.conf 파일 내에 다음과 같은 서비스들의 필요 유무를 확인 하여,

제거 하도록 합니다.

(shell, login, exec, finger, systat, netstat, tftp, printer)

- rlogin 서비스를 사용하지 않는 시스템의 경우, rlogin 과 관련된 .rhosts 파일을

/dev/null 링크를 시켜 사용하지 않도록 합니다.

- 다음과 같은 서비스들은 사용하지 않을 경우에 시스템에서 제거하도록 합니다.

(samba, nfs, nis, sendmail, omniback)

- 위의 서비스들 중에서 시스템의 특성상 반드시 사용해야하는 서비스가 있다면,

해당 벤더의 사이트에서 취약점과 관련된 패치를 적용한 후 사용하도록 합니다.

6. 시스템 관리를 위한 어드민 지침 사항⑥ (불필요 RPC 제거)

- 먼저 시스템에서 리스닝하고 있는 RPC 프로그램을 조사합니다.

(#rpcinfo -p 로 확인 할 수 있습니다.)

- 해당 RPC가 사용 중인지 확인하여, 사용하지 않을 경우에는 제거 하도록 합니다.

(#/etc/rpc 에서 사용하지 않는 RPC 프로그램을 # 으로 주석 처리)

- 만약 RPC 프로그램 중 사용해야 하는 것이 있다면, 취약점 유무를 확인하여

패치를 적용하도록 합니다.

10. 윈도우 시스템 정보 수집

- GUI 환경에서 윈도우 시스템 정보 수집하기

○ "컴퓨터 관리" Console에서의 정보 수집

컴퓨터관리 Console은 크게 대상 컴퓨터의 시스템 이벤트와 성능을 관리할 수 있는 "

시스템 도구" 메뉴, 저장 장치의 속성을 관리할 수 있는 "저장소" 메뉴 그리고 서비스의

속성을 보고 관리할 수 있는 "서비스 및 응용프로그램" 메뉴로 이루어져 있습니다.

○ 이벤트 뷰어를 사용하면 응용 프로그램 로그, 보안 로그 및 시스템 로그에 기록된 이벤트를

모니터링할 수 있습니다.

- 응용 프로그램 로그 : 응용 프로그램 로그에는 응용 프로그램이나 프로그램에서 기록한

이벤트들이 수록됩니다.

- 보안 로그 : 보안 로그에는 파일이나 다른 개체 만들기, 열기 또는 삭제 등의 리소스 사용과

관련한 이벤트뿐만 아니라 올바른 로그온 시도 및 잘못된 로그온 시도와 같은 이벤트도

기록됩니다. 보안 로그에 기록될 이벤트 유형은 관리자가 지정할 수 있습니다.

보안로그는 시스템에 인가받지 못한 사용자의 접근시도가 있었는지를 알 수 있는 중요한

도구가 됩니다.

- 시스템 로그 : 시스템 로그에는 Windows 시스템 구성 요소에서 기록한 이벤트가 수록됩니다.

Page 19: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 공유 폴더를 사용하여 네트워크를 통해 공유 리소스를 관리할 수 있습니다. 공유 폴더를

사용하여 사용자 액세스 사용 권한, 세션 동작 및 공유 리소스 속성을 제어할 수 있습니다.

- 공유

공유에는 다음과 같이 컴퓨터에서 사용할 수 있는 공유 폴더의 정보가 들어 있습니다.

구분 설명

공유

컴퓨터에서 사용할 수 있는 공유 리소스를 표시합니다. 경우에 따라

명명된 파이프 연결로서 프린터 연결이 이 리소스에서 모니터링됩니

다. 공유 리소스는 공유 디렉터리, 명명된 파이프, 공유 프린터 또는

인식할 수 없는 유형의 리소스일 수 있습니다.

공유된 경로 공유 리소스의 경로를 표시합니다.

종류네트워크 연결의 종류를 Windows, NetWare 또는 Macintosh용으로

표시합니다.

# 클라이언트 연결 수 공유 리소스에 연결된 사용자의 수를 표시합니다.

설명 공유 리소스에 대해 설명합니다.

- 캐싱 옵션

캐싱은 사용자가 오프라인 상태에서도 이 폴더를 사용할 수 있게 해주는 기능입니다.

캐싱을 허용하게 되면 사용자는 공유폴더의 내용을 자신의 로컬 PC에 Sync 시킬 수 있습니다.

- 세션

구분 설명

사용자 컴퓨터에 연결된 네트워크 사용자들을 나열합니다.

컴퓨터 연결된 사용자의 컴퓨터 이름을 표시합니다.

종류네트워크 연결의 종류를 Windows, NetWare 또는 Macintosh용으로

표시합니다.

# 열린 파일 수 사용자가 해당 컴퓨터에서 연 리소스 수를 표시합니다.

연결 시간 이 세션이 설정된 이후부터 경과된 시간을 표시합니다.

유휴 시간이 사용자가 마지막으로 작업을 초기화한 이후 경과된 시간을

표시합니다.

게스트사용자가 이 컴퓨터에 게스트로 연결되어 있는지 예 또는 아니오로

표시하여 지정합니다.

Page 20: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

- 열린 파일

열린 파일에는 다음과 같이 컴퓨터에 있는 모든 열린 파일에 대한 정보가 들어 있습니다.

구분 설명

열린 파일

열린 파일의 이름을 나열합니다. 열린 파일은 파일, 명명된 파이프, 인쇄

스풀러의 인쇄 작업 또는 인식할 수 없는 유형의 리소스일 수 있습니다.

경우에 따라 인쇄 작업은 여기에 명명된 파이프로 표시됩니다

액세스한 사용자 파일을 열거나 리소스를 액세스한 사용자의 이름입니다.

종류네트워크 연결의 종류를 Windows, NetWare 또는 Macintosh용으로

표시합니다.

# 잠긴 횟수 리소스에서 잠긴 횟수를 표시합니다.

열기 모드 리소스가 열려 있을 때 허용된 사용 권한을 표시합니다.

○ 로컬 사용자 및 그룹 폴더를 사용하여 로컬 또는 원격 컴퓨터에 정의된 사용자 및 사용자

그룹을 관리할 수 있습니다. 로컬 사용자나 그룹은 시스템에서 "사용 권한"과 "권한"을

부여할 수 있는 계정입니다. 도메인이나 글로벌 사용자 및 그룹은 도메인컨트롤러를 관리하는

관리자가 관리합니다.

로컬 그룹에 로컬 사용자, 글로벌 사용자 및 글로벌 그룹을 추가할 수 있습니다만 로컬 사용자

와 그룹을 글로벌 그룹에 추가할 수는 없습니다.

○ 사용자와 그룹에 "권한"과 "사용 권한"을 할당하여 일정한 작업만 수행하도록 제한할 수 있기

때문에 로컬 사용자와 그룹은 보안 기능에서 중요한 역할을 합니다. 권한은 사용자가 컴퓨터에

서 파일과 폴더의 백업이나 컴퓨터의 종료와 같은 특정 작업을 수행하도록 인증하는 것입니다.

- 사용자

사용자는 직접 만든 사용자 계정뿐만 아니라 Administrator와 Guest의 두 가지 기본 제공

사용자 계정을 표시합니다.

각 사용자를 더블클릭하면 전체이름, 설명, 해당 계정에 대한 암호정책, 계정정책, 소속 그룹,

프로필 등 상세정보를 보실 수 있습니다.

- 그룹

그룹은 직접 만든 그룹과 함께 모든 기본 제공 그룹을 표시합니다. 기본 제공 그룹은 Windows

2000 또는 Windows XP를 설치할 때 자동으로 만들어집니다. 그룹에 속한 사용자에게는 컴퓨터에

서 다양한 작업을 수행할 수 있는 권한과 기능이 부여됩니다.

- 기본 제공 그룹

① Administrators : Administrators 그룹의 구성원은 가장 많은 기본 사용 권한을 가지며

직접 사용 권한을 변경할 수 있습니다.

② Backup Operators : Backup Operators 그룹의 구성원은 파일을 보호하는 사용 권한에

관계없이 컴퓨터의 파일을 백업하고 복원할 수 있습니다. 컴퓨터에 로그온하고 컴퓨터를

종료할 수도 있지만 보안 설정을 바꿀 수는 없습니다.

③ Power Users : Power Users 그룹의 구성원은 사용자 계정을 만들 수 있지만 직접 만든

Page 21: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

계정만 수정하거나 삭제할 수 있습니다. 로컬 그룹을 만들고 직접 만든 로컬 그룹에서

사용자를 제거할 수 있습니다.

Power Users, Users 및 Guests 그룹의 사용자를 제거할 수도 있습니다. 그리고 Power Users

그룹의 구성원은 Administrators나 Backup Operators 그룹을 수정할 수 없고 파일의 소유권

을 가질 수 없습니다. 또한 디렉터리를 백업/복원하지 못하고 장치 드라이버를 로드/언로드

할 수 없으며 보안 및 감사 기록을 관리할 수 없습니다.

④ Users : Users 그룹의 구성원은 응용 프로그램 실행, 로컬 및 네트워크 프린터 사용, 워크

스테이션 종료 및 잠금과 같은 대부분의 일반적인 작업을 수행할 수 있습니다. 또한 로컬

그룹을 만들 수 있지만 직접 만든 로컬 그룹만 수정할 수 있고 디렉터리를 공유하거나 로컬

프린터를 만들 수는 없습니다.

⑤ Guests : Guests 그룹은 컴퓨터에 계정이 없는 사용자가 일시적으로 워크스테이션의 기본

제공 Guest 계정에 로그온하여 제한된 기능을 사용할 수 있게 해 줍니다. Guests 그룹의

구성원도 워크스테이션의 시스템을 종료할 수 있습니다.

⑥ Replicator : Replicator 그룹은 디렉터리 복제 기능을 지원합니다. Replicator 그룹의

유일한 구성원은 도메인 컨트롤러의 Replicator 서비스 로그온에 사용되는 도메인 사용자

계정을 가진 사용자라야 합니다. 이 그룹에 실제 사용자 계정을 추가하지 마십시오.

○ 서비스를 사용하면 원격 또는 로컬 컴퓨터에서 서비스를 시작(▶), 중지(■), 일시 중지(II)

또는 다시 시작(■▶)할 수 있고 각 서비스를 더블 클릭하게 되면 서비스의 종속성 정보를

열람할 수 있고 시작 및 복구 옵션을 구성할 수 있습니다.

- 원격에서 "컴퓨터 관리"를 이용하여 정보수집 하기

○ 두 시스템이 모두 도메인의 멤버혹은 도메인 컨트롤러라면 먼저 제어판에서 "관리도구"를 더블

클릭 하고 "컴퓨터 관리"를 "Shift" + "마우스 오른쪽" 클릭한 다음 "다음 계정으로 실행"을

선택합니다. 다음사용자 항목에 도메인 관리자 계정과 Password를 넣습니다. 그리고 확인을

누르면 도메인 관리자 계정으로 컴퓨터 관리를 실행 시킬수 있습니다.

○ Standalone System이라면 먼저 "접속할 시스템" A에 "접속당할 시스템" B의 관리자 계정과

똑같은 사용자계정을 만들어 줍니다. 이때 Password도 동일하게 합니다.

그 다음 제어판에서 "관리도구"를 더블 클릭하고 "컴퓨터 관리"를 "Shift" + "마우스 오른쪽"

클릭한 다음 "다음 계정으로 실행"을 선택합니다.

사용자 항목에 접속당할 시스템의 관리자 계정과 Password를 넣습니다. 그리고 확인을

누릅니다. 위의 작업이 이루어진 다음에 "컴퓨터 관리"에서 "컴퓨터 관리 (로컬)을 마우스

오른쪽으로 클릭하고 "다른 컴퓨터로 연결" 을 선택하고 다른 컴퓨터에 접속당할 시스템의

이름을 넣어주면 원격에서 해당 시스템에 대한 정보를 수집할 수가 있습니다.

Page 22: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

- "내 컴퓨터" / "네트워크 환경" 등록정보

○ 바탕화면의 "내 컴퓨터" 아이콘을 마우스 오른쪽 버튼으로 클릭하고 등록정보를 선택하면 "

일반" 탭에서는 이 시스템의 OS, Service Pack, CPU, Memory 정보를 알 수 있으며 "네트워크

식별" 탭에서 이 시스템의 "NetBIOS 이름"과 이 시스템이 도메인의 멤버인지 아니면 단독

(Stand Alone) 서버로서 특정한 "작업 그룹"(WorkGroup)에 속해 있는지를 알 수 있습니다.

○ 윈도우즈 시스템들은 도메인이라는 서로 신뢰(Trust) 관계에 있는 시스템들의 집합을 구성

할 수 있습니다. 그 신뢰관계의 정점에 있는 시스템을 도메인 컨트롤러(DC)라고 합니다.

도메인컨트롤러의 관리자 계정은 신뢰관계에 있는 모든 시스템(멤버 서버, 워크스테이션)의

관리자 그룹에 포함이 되어있으므로 관리자들은 도메인 컨트롤러의 보안에 각별히 신경을

써야 합니다.

○ 바탕화면의 "네트워크 환경" 아이콘을 마우스 오른쪽 버튼으로 클릭하고 등록정보를 선택하면

현재 구성되어 있는 네트워크 인터페이스 정보를 볼 수 있습니다. 보통은 "로컬영역 [번호]"

로 표시되며 네트워크 인터페이스 카드 (랜카드, NIC) 의 수만큼 나타나는 것이 보통입니다.

○ 정보를 알고 싶은 인터페이스를 선택하고 마우스 오른쪽 클릭 후 등록정보를 선택하면 해당

인터페이스의 상세 정보를 볼 수 있습니다.인터페이스의 등록정보에서 인터넷 프로토콜

(TCP/IP)를 선택하고 등록정보를 누르면 IP주소, Gateway 정보, DNS 주소, WINS 구성 등을

볼 수 있으며 옵션에서 네트워크 보안을 설정할 수도 있습니다.

- IP보안 : 서로 신뢰하는 시스템간의 통신에 Kerberos 트러스트를 사용하여 보안을 강화

- TCP/IP 필터링 : TCP/ UDP/ IP 별로 허용포트를 정해줄 수 있습니다. 허용하지 않은

포트로의 통신은 이루어지지 않습니다.

- CLI 환경에서 시스템 정보 수집하기

○ net 명령어

- net /?를 입력하면 사용할 수 있는 모든 net 명령의 목록을 볼 수 있습니다.

- net help 명령을 입력하면 net 명령의 명령줄에서 구문 도움말을 얻을 수 있습니다.

예를 들어, net accounts 명령의 도움말을 보려면 net help accounts를 입력합니다.

- 모든 net 명령에 /yes와 /no 옵션을 사용할 수 있습니다

(각각 /y와 /n으로 줄여 쓸 수 있음).

/y 옵션은 명령에서 생성되는 모든 대화식 프롬프트에 자동으로 yes로 응답하고 반대로

/n은 no로 응답합니다. 예를 들어, net stop server는 일반적으로 Server 서비스에

의존하는 모든 서비스를 중단할지 확인하는 프롬프트를 표시하지만 net stop server

/y는 프롬프트에 대해 자동으로 yes로 응답하고 Server 서비스를 종료합니다.

○ net user

사용자 계정을 추가 또는 수정하거나 사용자 계정 정보를 표시합니다.

○ net (local)group

Windows 2000 Server 로컬그룹 혹은 글로벌 그룹을 추가하거나 표시하거나 수정합니다.

○ net accounts

사용자 계정 데이터베이스를 업데이트하고 모든 계정에 대해 암호와 로그온 요청을 수정합니다.

계정 매개 변수를 변경할 컴퓨터에 Net Logon 서비스가 실행 중이어야 합니다.

Page 23: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ net share

공유 리소스를 생성하거나 삭제하거나 표시합니다.

○ net session

로컬 컴퓨터와 그에 연결된 클라이언트 사이의 세션 목록을 표시하거나 연결을 해제합니다.

○ net file

서버에 열려 있는 모든 공유 파일의 이름을 표시하며 파일 잠금이 존재하면 각 파일의 파일

잠금 수를 표시합니다.

○ net view

도메인 목록, 컴퓨터 목록 또는 지정한 컴퓨터에서 공유하고 있는 리소스의 목록을 표시합니다.

○ net use

컴퓨터를 공유 리소스에 연결하거나 공유 리소스로부터 연결을 해제하거나 컴퓨터 연결 정보를

표시합니다. 이 명령으로 영구 네트워크 연결을 제어할 수도 있습니다.

○ net start/stop

- start : 서비스를 시작하거나 시작한 서비스의 목록을 표시

- stop : Windows 2000 네트워크 서비스를 중지

- nbtstat, netstat, ipconfig 명령어

○ NETBIOS (Network Basic Input Output System)

윈도우로 구성된 네트워크가 고유한 이름을 사용하여 서로간에 통신하기 위한 프로토콜로서

로컬 네트워크의 동일 브로드케스트 도메인 내에서는 빠른 속도로 동작하지만, 라우팅이

되지 않는 단점이 있습니다.

○ NBT (NETBIOS over TCP/IP)

NETBIOS가 라우팅이 되지 않기 때문에 단점을 보완하여 인터넷 연결에 사용하기 위하여

NBT를 사용합니다. TCP/IP에서 NETBIOS와 같은 기능을 구현하도록 한 것으로 icrosoft사의

TCP/IP라고 할 있습니다.

NBT 정보를 분석한다면 윈도우즈 네트워크 정보를 알아낼 수 있습니다.

○ nbtstat

NBT 정보를 분석하는 툴로서, 이 진단 명령은 NBT(TCP/IP 상의 NetBIOS)를 사용하여

프로토콜 통계 및 현재 TCP/IP 연결을 표시합니다.

이 명령은 TCP/IP 프로토콜을 설치해야만 사용할 수 있습니다.

○ netstat 명령어

프로토콜 통계와 현재 TCP/IP 네트워크 연결을 표시합니다. 이 명령은 TCP/IP 프로토콜을

설치해야만 사용할 수 있습니다.

○ ipconfig 명령어

이 진단 명령은 모든 현재 TCP/IP 네트워크 구성 값을 표시합니다.

GUI 에서 네트워크 환경의 등록 정보를 통해 수집할 수 있었던 정보를 모두 알아낼 수 있습니다.

Page 24: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

- 기타 방법으로 윈도우 시스템 정보 수집하기

○ port# : 135, 139, 445

- 139 : CIFS/SMB 와 NETBIOS는 이 포트를 이용해서 컴퓨터에 대한 정보를 가지고 오는

API를 포함하고 있습니다.

따라서 이 포트가 열려 있다면 그 시스템은 Windows 시스템이라고 판단 할 수 있습니다.

- 135 : Windows NT는 139번 포트 외에 135번 포트를 추가로 사용합니다.

- 445 : Windows 2000/XP는 445번 포트를 추가로 사용합니다.

- 기타 포트정보를 이용하면 어떤 서비스가 작동 중인지를 알 수 있습니다.

(21 : FTP, 23 : telnet, 25 : SMTP, 80 : http(Web))

○ IPC$는 Null session 통신을 위해 Windows System이 사용하는 system 공유 입니다.

이 공유를 이용하면 원격에서 각종정보의 획득이 가능합니다.

11. 윈도우 시스템 침투

- Win 98 공유폴더 크래킹

○ 이 취약점은 임의의 사용자가 인증을 위한 패킷을 전송 시 인증용 암호(평문)의 길이를 사용자

임의로 지정해 줄 수 있다는 사실에 기초하고 있습니다. 즉, 공유폴더를 가지고 있는 시스템에

서는 사용자가 지정해준 암호의 길이만 비교를 하게 되는 것입니다. 예를 들어 사용자가 길이를

1바이트로 정해주면 서버는 처음부터 1바이트까지의 패스워드만 비교를 하게 됩니다.

따라서 해커는 처음에 1바이트만 비교하게 해서 모든 문자를 대입 1번째 바이트의 Password를

알아내게 되고 그 다음에는 2바이트를 비교하게하여 2번째 바이트의 패스워드를 알아내어

패스워드를 크래킹할 수 있는 것입니다.

- Win NT,2000 계정 크래킹

○ Windows System의 관리자는 제어판의 "사용자 및 암호" 혹은 "컴퓨터 관리"의 "로컬 사용자

및 그룹"을 통해 컴퓨터에 사용자를 추가하고 그룹에 사용자를 추가할 수 있는데 여기서

사용자와 그룹을 계정이라고 합니다.

○ SID (보안 ID)

Windows System에서 계정과 함께 생각해야할 것이 바로 SID 입니다.

SID는 사용자, 그룹, 컴퓨터 계정을 식별하는 고유한 번호입니다. 네트워크 상의 모든 계정은

처음 만들어질 때 고유한 SID를 발급받습니다. Windows 2000의 내부 프로세스는 계정의 사용자

이름이나 그룹 이름이 아닌 SID를 참조합니다.

계정을 만들고 삭제한 다음 동일한 사용자 이름을 가진 계정을 만들면 이전 계정에 허가된

권리나 사용 권한이 새 계정에 허가되지 않습니다.

Page 25: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

C:\> user2sid "domain users"

S-1-5-21-201642981-56263093-24269216-513

Number of subauthorities is 5

Domain is TEST

Length of SID in memory is 28 bytes

Type of SID is SidTypeGroup

○ 여기서 처음 "S-1-5-21-201642981-56263093-24269216" 부분까지는 같은 도메인에 있는

계정이라면 모두 같습니다.

뒤에 "513" 부분은 RID 라고 하며 계정마다 틀려집니다.

※ Users Group의 RID는

항상 513 입니다. 관리자계정의 RID는 항상 "500" 이기 때문에 이것을 이용하면 관리자

계정의 사용자 이름을 알아낼 수 있습니다.

C:\> sid2user 5 21 201642981 56263093 24269216 500

Name is Administrator

Domain is TEST

Type of SID is SidTypeUser

○ 보통 관리자가 만든 계정들은 1000번 이상입니다. 따라서 RID만 1000, 1001, 1002, 1003....,

1999.... 이런 식으로 바꿔 주면서 검색을 하면 모든 사용자의 계정을 알 수 있습니다.

○ SAM (Security Account Manager)

\winnt\system32\config 를 탐색해 보면 SAM 이라는 파일을 볼 수 있습니다.

SAM 은 사용자나 그룹에 대한 정보를 가지고 있는 데이터베이스 파일로 레지스트리 형태로

시스템에 등록되어 있습니다.

시스템 구동시 OS가 SAM 파일을 잠그기 때문에 레지스트리나 파일을 읽기/복사/수정/삭제

하는 것은 불가능합니다. 실제 이 파일에는 사용자의 패스워드가 암호화된 형태로 저장되어

있기 때문에 Windows System의 계정 Crack을 원하는 많은 해커들의 표적이 되어왔습니다.

예를 들어 System에서 SAM 파일을 삭제하면 모든 사용자 계정의 Password가 Null값이 됩니다.

즉, 패스워드 인증을 받지 않고 로그온이 가능하게 되는 것입니다.

Page 26: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 관리공유

관리자가 리소스를 일부러 공유하지 않더라도 Windows System은 기본적으로 3개 이상의

리소스를 공유하게 됩니다.

○ Password Guessing

계정의 패스워드를 알아내기 위해 사용할 수 있는 방법중의 하나가 Password Guessing,

즉 "찍기"입니다. 위에서 우리는 Windows 시스템들의 사용자 리스트를 획득하는 방법이

그다지 어렵지 않다는 사실을 알게 되었습니다. 살펴본 방법들을 이용하여 사용자 이름을

획득하면 각 사용자 이름에 Dictionary 혹은 Wordlist 라고 부르는 자주 쓰이는 패스워드

리스트를 대입하여 암호를 알아내는 방법이 바로 Password Guessing입니다.

○ Brute forcing

Password Guessing 과 비슷한 방법이지만 좀 더 무식한 방법입니다.

Brute Forcing은;

1,2,3,.....11,12.....1a,1b,1c,....abcdef,abcdeg,abcdeh.....dddddf,dddddg.....

1easwed,1easwee.....와 같은 식으로 해당 계정에 대하여 지정한 숫자만큼 모든 숫자열과

문자열은 순차적으로 대입하여 패스워드를 알아내는 방법입니다.

○ Password Cracking

Brute forcing보다 조금 더 고차원적인 방법으로 Password를 알아내는 방법이

있습니다. 제일 많이 알려진 방법이 앞서 얘기한 SAM이라는 파일을 이용하는 방법입니다.

일단 SAM file 혹은 SAM file 내부에 있는 암호화된 Password list들을 획득하게 되면

그것들을 이용하여 패스워드를 알아내는 것이 가능합니다.

- 기타 해킹 기법

○ MS SQL 취약점

처음 MS SQL을 설치하게 되면 sa라는 DBA(Data Base 관리자) 계정이 Default로 생성이 되며

이 계정의 Password로 null 값을 가지게 됩니다. SQL서버의 DBA계정은 시스템 권한을 가지기

때문에 이 sa 계정을 이용하여 원격시스템의 DB 정보를 빼돌리거나 임의의 명령을 수행하는

해킹 기법이 가능하게 됩니다. 또한 꼭 sa/null 의 조합을 사용하지 않더라도 DB 계정에

대한 Password Guessing 공격을 통하여 Password를 알아내기만 하면 똑같은 공격을 수행할

수 있습니다.

Page 27: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○NC reverse telnet

NC는 Netcat이라는 프로그램으로 TCP나 UDP 네트워크 연결을 통해서 데이터를 읽거나 쓸 수

있도록 만든 프로그램입니다. Netcat은 실제로 nc라는 프로그램 이름을 가지고 있기 때문에

NC라고 불리기도 합니다. 예전부터 표준적인 유닉스 툴로 제공되었다가 최근에 Windows 버전이

나오게 되었습니다.

12. 윈도우 백도어

- 윈도우 백도어의 정의

타겟 시스템에 취약점을 만드는 하나의 방법이 Trojan Horse(트로이의 목마)에 Back Door

(개구멍)를 심어 보내서 타겟 시스템에 취약점을 만들어 내는 것입니다.

○ Trojan Horse

"유용한 소프트웨어 도구인 듯 보이지만 실제 실행을 시키게 되면 시스템 관리자 모르게

의도하지 않은 그리고 종종 인가받지 않은 작업을 수행하거나 악의로 시스템에 피해를 줄

수 있는 프로그램을 설치하는 프로그램" 입니다.

○ Root Kit

만약 Operating System 자체를 만들어 내는 Code가 공격자의 손에 넘어간다면 어떻게

될까요?

이 아이디어가 UNIX 시스템이 처음으로 선을 뵈면서 각 버전에 대한 kernel compiling이

종종 주단위로 빈번히 이루어지던 때에 현실화되어 나타나게 된 것이 rootkit 입니다.

rootkit이란 용어는 이 특별한 Trojan Horse가 해커들이 Root Shell을 얻는데 이용되었기

때문에 생긴 것입니다. 그러던 것이 인터넷이 활성화되고 각종 Trojan Horse와 Back Door들이

많이 세상에 알려지게 되면서 Trojan Horse와 Back Door 프로그램들의 종합선물 세트의

개념으로 많이 사용되고 있습니다.

Page 28: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

- 윈도우 백도어 동작 원리 이해

○ NTRK

NTRK는 Windows NT Resource Kit의 약자 입니다. Resource Kit이란 시스템의 관리를 쉽게

해주기 위해서 Microsoft 사에서 제공하는 Tool들의 집합으로 OS 와 별도로 판매하고 있는

제품입니다.

이 NTRK에는 원격에서 명령을 수행하게 해주는 2개의 유틸리티 프로그램이 있는데 바로

Remote Comand Line (remote.exe) 과 Remote Command Service (rcmd.exe → client ,

rcmdsvc.exe → Server) 입니다.

이 두 가지 유틸리티 중에서 remote.exe 가 설치/운영 모두 쉽기 때문에 더 위험하다고

할 수 있습니다.

※ Windows 2000의 경우 remote의 update 버전인 wsremote가 OS CD와 함께 제공되는

"지원도구 Support Tools)" CD에 지원이 됩니다.

○ Terminal Service

터미널 서비스는 Windows 2000의 등장과 함께 보편화 되어 사용되기 시작한 툴로서

관리자가 직접 해당 서버(터미널 서버 서비스가 구동 중인)의 화면을 원격에서 조정할

수 있는 서비스입니다.

터미널서비스는 클라이언트에 보이는 화면의 작업 프로세스가 기존의 원격 화면제어

프로그램들과는 달리 서버의 자원을 사용하기 때문에 훨씬 안정적이라는 장점을 가지고

있습니다.

터미널서버는 디폴트로 TCP 3389번을 이용하지만 설정에 따라 바꿔 줄 수도 있으며 서버와

클라이언트간 데이터 전송을 암호화 할 수도 있습니다.

○ BO (Back Orifice)

백오리피스는 원격에서 임의의 피해자 PC를 컨트롤하려는 목적으로 Cult Of The Dead Cow

(CDC) 라는 해커그룹이 만들어 낸 백도어 프로그램으로, 원격지 네트워크에서 사용자 모르게

정보 수집, 시스템 명령어 수행, 시스템 재구성,네트워크 트래픽 지정변경 등 시스템을 통제할

수 있는 클라이언트/서버 애플리케이션입니다.

○ NetBus

백오리피스의 먼 친척뻘로 백오리피스 만큼 다양한 기능을 제공하지는 못하지만 초보자들

도 쉽게 사용할 수 있도록 만들어진 프로그램이 NetBus 입니다.이 프로그램 역시 원격 조정

프로그램으로 백오리피스와 마찬가지로 서버/클라이언트 부분으로 나눌 수 있습니다.

- 먼저 서버 부분인 patch.exe를 피해자의 시스템에 실행을 시킨 후

- 침입자는 클라이언트 프로그램인 NetBus.exe를 실행하여 조정할 수 있습니다.

- 백오리피스와는 달리 사용자가 설정을 조정해 주어야 하는 부분이 없기 때문에 사용하기가

쉽다고 할 수 있는 것입니다.

- Netbus 역시 백오리피스와 마찬가지로 레지스트리의 시작프로그램 설정 부분을 변조해

놓기 때문에 시스템이 재부팅 되더라도 다시 프로세스가 시작 되게 됩니다.

Page 29: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ SubSeven

사용빈도 측면에서 볼 때, 백오리피스나 넷버스를 훨씬 뛰어넘는 백도어 프로그램이

바로 SubSeven 입니다.

두 프로그램보다 훨씬 안정적이고 사용하기 쉽기 때문입니다. 작동원리는 앞서 알아본

백오리피스나 Netbus와 크게 다른 것은 없습니다.

SubSeven은 Default로 TCP 27374 port를 이용 하며 remote 시스템에서의 포트스캔, FTP

서버 시작, RAS나 ICQ 등 각종 응용프로그램들이 캐쉬되어 저장되어 있는 패스워드 추출

등 다양한 기능을 제공 합니다.

○ Port Redirection

지금까지 우리가 살펴본 여러가지 백도어들은 침입자의 시스템이 피해자 시스템의 열려 있는

포트에 접속이 가능할 때만 써먹을 수 있다고 생각할 수가 있습니다.

즉, 방화벽이나 시스템 정책에 의해서 해당 포트로의 접속을 불가능하도록 막아 놓았다면 \

사용할 수 없다고 생각하기 쉽다는 말입니다.

하지만 앞 장에서 살펴본 nc의 reverse telnet 기능이나 지금 설명하게 될 Port redirection

기법을 사용하면 이런 보안책은 무용지물이 됩니다.

Port redirection이란 한 시스템의 특정 포트로 들어오는 트래픽을 전부 다른 시스템의

특정포트로 포워딩 시키는 기술입니다.

- 윈도우 백도어 탐지

앞서 백도어의 개요 부분에서 알아본 대로 이미 시스템에 작동중인 백도어를 탐지하는

것은 매우 많은 설정(변수)들이 있기 때문에 매우 어렵습니다 . 따라서 백도어를

탐지하기 위해서는 다차원적이면서 노동 집약적인 여러 탐지방법들을 사용해야만 합니다.

예를 들어 다음과 같은 사실을 알고 있다고 하겠습니다.

"디폴트로 설정된 백오리피스는 윈도우 시스템 디렉터리내에 UMGR32.EXE파일을 설치하며,

만약 윈도우 NT에서 작동한다면 원격관리서비스라고 표시된 서비스를 설치하게 됩니다."

이런 식으로 Default 설정만 가능하다면 백도어를 탐지하고 제거하는 작업은 훨씬 쉬워질

수 있습니다.

그러나 앞서 살펴본 대로 각종 소스코드와 설정방법의 개인화하가 가능하기 때문에

윈도우즈 시스템의 백도어가 의심될 때 가장 좋은 제거 방법은 OS를 다시 설치하고

Clean Backup을 이용해 Data나 Application을 복구하는 것이라고 합니다.

그럼 백도어의 제거는 차치 하더라도 어떻게 하면 내 시스템에 백도어가 설치되어 있는지

알 수 있을까요?

○ 작업관리자 (Task Manager)

작업관리자를 실행하게 되면 현재 실행 중인 응용 프로그램과 프로세스정보 그리고 CPU와

MEM의 성능 정보를 볼 수 있습니다.

○ 네트워크 상태

Command 창에서 netstat -an 했을때 나오는 정보를 살펴보면 현재 내 시스템의 어떤 포트가

열려 있는지 알 수 있습니다. State 정보가 Listening 이라고 나오는 포트 정보 중에 특별한

것이 없는지 알아보는 방법도 백도어를 찾아낼 수 있는 하나의 방법이라고 하겠습니다.

Page 30: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 시작프로그램 정보 또한 백도어를 탐지하는 중요한 수단이 될 수 있습니다.

시작프로그램을 변조는 Backdoor가 시스템에서 실행될 수 있도록 하는 중요한 수단입니다.

여기서 한가지 중요한 사실은 시작 -> 프로그램 -> 시작프로그램" 에서 보이는 프로그램들만이

시작프로그램의 전부는 아니라는 것입니다.

○ Task Scheduling

명령어 창에서 at 이라고 치고 엔터를 누르면 스케줄링 되어 있는 작업들의 목록을 볼 수

있습니다.

보통 스케줄링은 자동 백업을 실시하는 데에만 쓰이기 때문에 특별히 필요하지 않다면

서비스의 시작 옵션을 "사용안함" 으로 설정하는 것이 바람직 합니다.

열거된 작업 목록 중에 내가 설정하지 않은 작업이 있는지 살펴보는 것도 백도어를 탐지하는

하나의 방법이 될 수 있습니다.

○ 바이러스 백신 업데이트

디폴트의 형태로 시스템에 설치되려고 하는 백도어는 대부분의 경우 파일이름이나 패턴이 이미

여러 Anti-Virus 업체에 알려져 있기 때문에 바이러스 백신에 의해 필터링되기도 합니다.

따라서 항상 최신버전의 바이러스 백신으로 시스템을 감시한다면 어이 없이 시스템을 침투당

하는 일은 줄어들 것입니다.

○ 기타

- 모르는 사람으로부터 전송되어온 메일의 첨부는 함부로 개봉하지 않는다.

- Internet Chat System으로부터 받은 의심이 가는 파일은 열지 않는다.

- 인터넷 접속시, 보안대책없는 네트웍 파일 공유는 하지 않도록 유의한다.

Page 31: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

13.윈도우 스니퍼

- 윈도우 스니퍼 정의

○ Key Logger

Key Logging이란 키보드 입력을 도청하는 행위를 의미합니다. Key Logging은 Key Stroke

Logger라는 프로그램을 통해 이루어지는데 Key Stroke Logger는 키보드 하드웨어와 운영체제

사이에 보이지 않는 형태로 존재하여 모든 키보드 입력을 대게는 로컬 드라이브에 숨김 파일

형태로 저장하는 프로그램을 의미 합니다.

○ NetBus Key Stroke logger

앞 장에서 설명드린 백도어 툴인 NetBus를 이용하면 시스템에 대한 원격 제어 뿐만 아니라

Key Logging이 가능합니다.

Keyboard Listen 이라는 메뉴를 이용하면 가능한 기능입니다.

○ IKS

IKS는 설치될때 Keyboard Device Driver로 설치되어 운영체제의 Kernel에서 동작합니다.

IKS는 Windows System의 Console Login History를 관리할 수 있도록 CTRL-ALT-DEL Key의

입력까지 캡쳐 해내는 막강한 능력을 가지고 있습니다.

더 중요한 것은 IKS가 원격에서 설치하기 용이하다는 것입니다.

- 윈도우 스니퍼 동작원리 이해

○ Sniffer Pro

‘Sniffer Pro’는 네트워크 이론을 바탕으로 선로에서 관측되는 패킷을 분석하여 해당

네트워크에 존재하는 문제점을 파악, 그 원인을 제공해주는 도구로서 Network Associates 사(社)

가 상용으로 판매하는 소프트웨어입니다.

'네트워크 트래픽 관찰 기능’이라는 기본 기능 외에도 '네트워크 트래픽 분석', 'Packet Capture',

'Alarm' 등의 기능이 추가로 제공되기 때문에 네트워크분야에 종사하는 많은 사람들이 Sniffer를

이용하고 있습니다.

특히 막강한 'Packet Capture' 기능과 '네트워크 트래픽 분석' 기능 때문에 스니퍼가 처음

국내에 상륙했을 때에는 일부 네트워크 관련 업계에 종사하는 사람들이나 네트워크에 관심

있는 사람들 사이에서 해킹 도구로 많이 알려졌습니다.

사실 네트워크 라인을 도청하여 패킷 내부에서 원하는 정보를 얻을 수 있는 기능은 확실히

해커에게 매력적이라고 할 수 있겠습니다.

○ windump/ethereal

Sniffer Pro가 그 기능이나 성능 면에서 아주 뛰어난 특성들을 가지고 있기는 하지만 가격이

비싸기 때문에 그렇게 많은 해커들에 의해 사용되고 있지는 않습니다.

대신, 그 대안으로 여러 가지의 Freeware sniffing tool들을 많이 사용하고 있습니다.

그 중 대표적인 예가 windump와 ethereal입니다.

Page 32: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ BUTT Sniffer

상용 Sniffer 프로그램에 대한 또 다른 대안으로 제시되고 있는 툴이 BUTT Sniffer라는

툴입니다.

BUTTsniffer 는 DilDog 이라고 불리우는 Backorifice의 제작자들 중 한 명이 만들어 낸

툴로서 BUTTsniff.exe 와 BUTTsniff.dll 이라는 2개의 파일로 이루어졌습니다.

따로 설치가 필요없고 두 개의 구성 파일의 이름을 바꿀 수 있기 때문에 windump와는 달리

원격에서의 설치가 편하다는 장점이 있습니다.

○ l0phtcrack

윈도우즈 계정을 Cracking 할 때 보았던 l0phtcrack (LC) tool 역시 Windows Log On Traffic을

필터링해서 사용자 계정과 Password를 Sniffing하는 기능을 가지고 있습니다.

Plain Text의 ID/Password를 얻을 수는 없지만 HASH 값을 얻을 수 있기 때문에 이를 이용한

Password Crack이 가능하게 됩니다.

- 윈도우 스니핑 방어

○ key logging 방어

Key Stroke Logger는 Low-Level(Hard Ware Level)에서 시스템에 침투가 이루어지기 때문에

발견하기가 쉽지 않습니다.

Key Logging Program이 100여 가지가 있다면 100여 가지의 조치 방법이 있을 것입니다.

가장 중요한 것은 처음부터 시스템에 Key Logger와 같은 해킹 툴이 설치되지 않도록 방어를

철저히 하는 것이라고 하겠습니다.

○ Network Sniffing 방어

네트워크 Sniffing에 대한 가장 좋은 방어 방법은 Secure Shell(SSH), Secure Socket

Layer(SSL)와 같은 네트워크 트래픽 암호화를 이용하는 것입니다.

Page 33: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

14.윈도우 보안 패치

○ 윈도우 취약점

Windows 운영체제의 취약점이 나왔을 때와 또 다른 새로운 보안 패치가 나왔을 때에는

어떻게 알 수 있을까요?

가장 빠른 방법은 Mailing List를 이용하는 것입니다.

Security Focus (http://www.securityfocus.com)나 CERT-CC (http://www.certcc.or.kr/) 의

홈페이지에서 제공하는 Mailing List에 등록을 하면 매번 새로운 취약점과 Patch 정보가

나올 때 마다 메일로 그 사실을 알려줍니다.

다른 방법으로는 Microsoft의 보안사이트(http://www.microsoft.com/Security/)에 접속하거나

Microsoft관련 보안/해킹 사이트(예를 들어 http://www.securityfocus.com/microsoft)에 접속해

보는 방법이 있습니다.

○ 윈도우 보안 패치 방법

가장 간단한 방법은 Windows Update를 실시하는 것입니다. Internet Explorer의 도구 메뉴에

보시면 Windows Update 항목을 볼 수 있습니다.

혹은 http://windowsupdate.microsoft.com 에 접속하셔도 됩니다.

특정 핫픽스(패치)를 적용하고 싶다면 http://support.microsoft.com에서 핫픽스 번호를

검색한 다음에 (예를 들어 Q813498) 해당 사이트로 이동, 다운로드, 설치하셔도 됩니다.

그리고 핫픽스를 설치하기 전에 시스템 상태 파일, ERD (응급복구 디스크), Registry 정보,

컴퓨터 관리 정보 (계정, 서비스, 장치관리자) 등을 백업 및 확인 하는 작업이 선행되어야

하겠습니다.

그래야 문제가 생긴다면 복구가 쉽기 때문입니다. 만약 핫픽스를 설치했는데 문제가 생겼다면

Event Log(특히 System Log)를 확인 하시고 문제점이 보이는 이벤트 로그와 ID를 확인한 다음

http://support.microsoft.com 사이트를 통해 문제점을 해결하시기 바랍니다.

참고로 한가지 더 중요한 것은 Microsoft의 홈페이지가 아닌 다른 사이트를 통하여 핫픽스를

다운 받았을 경우 이를 설치하는 것은 결코 좋은 방법이 아니라는 사실입니다.

해커가 Backdoor나 Virus, Worm을 그 파일에 숨겨 놓았을 수도 있기 때문입니다.

○ 윈도우 보안 패치 확인 방법

내 시스템에 패치가 정확하게 이루어 졌는지 혹은 지금 내 시스템에 어떤 패치가 되어 있는지

알고 싶다면 어떻게 해야 할까요?

- 윈도우즈에 설치된 핫픽스 정보를 알아보기 위해 첫번째로 시도해 볼 수 있는 방법은

제어판의 "프로그램 추가/제거"를 확인해 보는 것입니다.

- 역으로 어떤 핫픽스가 아직 설치되지 않았는지를 알아볼 수 있는 방법도 있습니다.

Microsoft에서 제공하는 Microsoft Network Security Hotfix Checker를 이용하는 방법이

있습니다. 이 툴을 이용하면 현재 시스템에 올라가 있는 서비스팩의 정보와 Microsoft

의 권고 핫픽스들 중 설치되지 않았거나 제대로 설치되지 않은 핫픽스의 목록을 볼 수

있습니다. 즉 이 리스트에 이름이 없는 핫픽스는 이미 설치가 된 것입니다.

그리고 이리스트에 이름이 올라오는 핫픽스들은 설치가 권장되는 핫픽스입니다.

Page 34: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

Microsoft Network Security Hotfix Checker는 최근에는 MBSA (Microsoft Baseline Security

Analyzer)라는 통합 보안 검사 Tool에 포함되어 제공되고 있습니다.

MBSA를 이용하면 Windows 2000 서버에 대한 보안진단을 손쉽게 실시할 수 있습니다.

- 윈도우 보안 설정 (백신 설정 및 기타)

○ 사용자 및 권한 관리

사용자관리에서 가장 중요한 것은 관리자계정의 Default 이름인 Administrator를 다른

이름으로 '변경' 하고 게스트 계정을 '사용안함'으로 설정하는 것입니다.

○ Administrator

해커가 처음 윈도우즈 시스템을 공격하려고 했을 때 시도해 보는 것이 사용자 이름

"Administrator"를 이용해서 null 패스워드로 접근해보는 것입니다.

그만큼 많은 사용자들이 "보안의식의 결여" 혹은 " 사용상의 편이"를 이유로 Default

유저인 Administrator에 Password를 설정해 놓지 않고 사용하고 있습니다.

해커가 Windows System을 공격할 때 가장 시간이 많이 걸리는 작업이 관리자계정을

Cracking 하는 과정인데 이런 기본설정을 그대로 유지한다면 해커에게 좋은 기회를 제공할

것이라는 것은 불을 보듯 뻔한 일입니다.

관리자 계정의 이름을 바꾸는 방법은 "컴퓨터 관리 → 로컬 사용자 및 그룹 → 사용자"에서

administrator를 마우스 오른쪽으로 클릭하시고 이름 변경을 선택 한 후 변경해 주시면 됩니다.

○ Guest 계정

Guest 계정을 사용한다는 것은 누구나 해당 시스템에 쉽게 접근할 수 있다는 의미입니다.

Guset계정이 사용 가능하게 설정되어 있고 공유폴더 중에 Access 권한이 Everyone에게 있는

공유폴더가 있다면 누구나 그 폴더에 접근할 수 있을 것입니다.

따라서 Guest권한을 사용하지 않음으로 설정해 놓을 것을 권장합니다.

방법은 "컴퓨터 관리 → 로컬 사용자 및 그룹 → 사용자" 에서 게스트 계정을 더블 클릭 후

"계정 사용안함"의 체크박스에 체크를 해주시면 됩니다.

○ Password

또 한가지 중요한 사항은 사용자 계정 password의 설정입니다.

password가 길면 길수록, 그리고 다양한 문자를 사용하면 사용할수록 해커가 계정 password를

cracking 하기는 힘들어 집니다

강력한 password를 만드는 방법은 문자와 숫자를 혼합하고 가능하다면 특수문자를 석어서

가능하면 8자 이상의 password를 만드는 것입니다.

예를 들어 "I am the best"라는 문장을 패스워드로 만든다면 "!md@b35t"가 될 것입니다.

(I → ! , am → m , the → d@ , best → b35t)

○ 공유권한

Windows NT 이상의 시스템들은 NTFS 파일시스템을 지원합니다.

NTFS 파일시스템은 파일 및 폴더에 대한 공유 접근 권한을 설정할 수 있게 되어 있습니다.

되도록이면 공유를 하지 마시고 공유를 해야 할 경우에는 공유 폴더 사용권한에 Everyone

그룹을 제거시켜 주시기 바랍니다.

Page 35: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

공유폴더는 "정보유출" 의 위험성이 있을 뿐만 아니라 "바이러스의 전달 매개체(agent)" 의

역할을 할 수 있어 보안에 취약합니다.

공유폴더에 대한 접근 권한 설정은 컴퓨터관리 → 공유폴더에서 공유가 설정되어 있는 해당

폴더를 더블 클릭 하시거나 해당 공유 폴더를 탐색기에서 찾아 마우스 오른쪽 클릭 후 "공유"

메뉴를 선택하시면 됩니다.

각 로컬디스크에 세팅된 관리공유 역시 필요치 않다면 설정을 해제시켜 주시는 것이 좋습니다.

○ 보안권한

NTFS 파일시스템은 각 폴더와 파일에 "공유 접근 권한" 뿐만 아니라 "보안 권한"을 설정할 수

있습니다.

○ 서비스관리

서비스관리의 제1원칙은 [쓰지 않는 서비스는 "사용안함" 으로 설정]입니다.

서비스 관리에서 가장 중요한 것이 "IIS 서비스에 대한 설정 확인" 입니다.

○ 로그 관리

시스템의 이상징후를 탐지하거나 사후 추적을 위해서 가장 중요한 것이 바로 로그 파일입니다.

따라서 로그파일의 활용이나 보존은 매우 중요합니다.

○ Local 보안정책

Windows 2000 시스템의 경우 "시작 → 프로그램 → 관리도구 → 로컬보안정책" 에 가면 로컬

시스템의 보안정책을 설정해 줄 수 있습니다. 로컬 보안 정책을 사용하여 로컬 컴퓨터의 계정

및 로컬 정책, 공개 키 정책 및 IP 보안 정책을 직접 수정할 수 있습니다.

○ 계정 정책

계정 정책은 사용자 계정이 컴퓨터 또는 도메인과 상호 작용하는 방법에 대한 정책입니다.

계정정책에는 다음과 같이 세 개의 하위 집합이 있습니다.

- 암호 정책: 도메인 또는 사용자 계정에 사용되며, 강요 및 수명과 같은 암호 설정을

결정합니다. 권장 사항은 다음과 같습니다.

최근 암호 기억은 1로 설정, 최대 암호 사용 기간 90일 이하로 설정, 최소 암호 길이 6자,

최소 암호 사용 기간 1일

- 계정 잠금 정책: 도메인 또는 로컬 사용자 계정에 사용되며, 해당 시스템이 잠기는 환경과

시간을 결정합니다. 권장 사항은 다음과 같습니다.

계정 잠금 기간 → 30분, 계정 잠금 임계값 → 10번 시도, 다음 시간 후 계정 감금 시간을

원래대로 설정 → 15분

- Kerberos 정책: 도메인 사용자 계정에 사용되며, 티켓 수명과 강요와 같은 Kerberos 관련

설정을 결정합니다. Kerberos 정책은 로컬 컴퓨터 정책에는 없습니다.

Page 36: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 로컬 정책

로컬 정책은 컴퓨터에 적용되며 3가지(감사 정책, 사용자 권한 할당, 보안 옵션)의 하위집합이

있습니다.

- 감사 정책: 보안 이벤트가 컴퓨터의 보안 로그에 로그인되는지와 로그에 성공했는지,

실패했는지 또는 두 가지 모두의 경우인지 결정합니다.

- 사용자 권한 할당: 감사 및 보안 로그 관리, 로컬 로그온, 시스템 종료 등과 같은 권한을

갖는 사용자 또는 그룹을 결정합니다.

- 보안 옵션: 마지막 사용자 이름 표시 여부, [Ctrl+Alt+Del] 사용 여부, 로그온 시도하는

사용자에 대한 메시지 제목/텍스트 등과 같이 컴퓨터에 대한 보안 설정을 사용하거나

사용하지 않도록 지정 합니다.

○ Group Policy

컴퓨터에 적용되는 정책이 둘 이상 있을 수 있으므로 보안 정책 설정에서 충돌이 생길 수

있습니다.

우선 순위의 순서는 조직 구성 단위, 도메인, 로컬 컴퓨터 순입니다. 기본적으로 도메인에

적용되는 그룹 정책(Group Policy)은 도메인의 모든 컴퓨터와 사용자에게 적용됩니다.

그룹 정책에는 사용자에게 적용되는 사용자 구성 정책 설정과 컴퓨터에 적용되는 컴퓨터

구성 정책 설정이 있습니다.

그룹 정책과 그 확장을 사용하여 다음과 같은 작업을 수행할 수 있습니다.

- 관리 템플릿을 통해 레지스트리 기반의 정책 관리

- 스크립트 할당

- 폴더 리다이렉션

- 응용 프로그램 관리

- 보안 옵션 지정

○ 사용자 구성 정책 설정

그룹 정책의 사용자 구성을 사용하여 로그온하는 컴퓨터에 관계없이 사용자에게 적용되는

정책을 설정할 수 있습니다.

○ 컴퓨터 구성 정책 설정

그룹 정책의 컴퓨터 구성을 사용하여 관리자는 컴퓨터에 로그온하는 사람에 관계없이 그룹

정책에 있는 컴퓨터 구성을 사용하여 해당 컴퓨터에 적용할 정책을 설정합니다.

○ 백신 자동 업데이트

원격에서부터 이루어지는 해커의 침입이 아닌 무작위로 뿌려지는 바이러스나 웜에 대응하기

위해서는 백신프로그램이 필수입니다.

보통의 경우 바이러스 백신프로그램은 1주일에 1회씩 그리고 긴급한 Update 상황

(급속한 속도로 번지는 바이러스) 발생시 패턴 파일에 대해 업데이트를 실시 합니다.

따라서 1주일에 1회 정도는 정기적으로 바이러스 백신의 엔진을 업데이트 해주는 것이

바람직합니다.

Page 37: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

15. 웹 해킹에 대한 기본적인 원리

○ 웹 동작의 취약성

① 전송 데이터는 암호화되지

않는다.

HTTP 를 이용하여 전송되는 데이터는 모두 암호화되지

않습니다. 이것은 HTTP 를 초기에 만들 때부터 암호화에

대해 거론되지 않았기 때문입니다.

웹이 우리 일상에서 많은 편리함을 주는 것은 사실이지만,

보안상 매우 취약합니다. 암호화하여 전송되지 않으므로,

전송 데이터를 변경 또는 스니핑(훔쳐보기)이 가능합니다.

② 클라이언트와 서버 연결은

상태를 유지하지 않는다.

HTTP 의 기본동작이 request 에 대한 적절한 response를

하는 것입니다. request 에 대한 적절한 response 이후의

서버는 클라이언트가 어떠한 request를 다시 할 건인지

전혀 관계치 않고 연결을 바로 끊어 버립니다.

로그인해서 계속해서 연결을 지속해야하는 사이트의

경우는 cookie나 session을 이용하여 연결을 유지합니다.

여기서 cookie 및 session 취약성이 발생합니다.

③ 클라이언트로부터 입력받은

데이터는 GET 또는 POST

방식을 이용하여 전달합니다.

예를 들어 검색엔진에서 클라이언트는 "토토로" 캐릭터

관련 정보를 찾기 위하여 "토토로" 라는 값을 입력합니다.

이 때 서버로는 "토토로" 라는 값이 어떻게 전달이 될까요?

HTTP 의 GET 또는 POST 방식을 이용하여 값을 서버로

전달 합니다. 값을 전달하는 GET에서 취약성이 발생합니다.

○ cookie 취약성

cookie 에는 어떠한 취약성이 존재할까요?

사용자 정보를 이용하여 로그인을 해야 하는 사이트의 경우는 클릭을 할 때마다

클라이언트가 매번 사용자의 아이디와 패스워드를 입력해야하는 번거로움을 덜기 위해서

cookie 라는 것을 이용합니다.

이때 cookie는 클라이언트의 하드 디스크 또는 메모리에 저장이 됩니다.

클라이언트에 저장이 된다는 것은 클라이언트 사용자가 바꿀 수 있음을 의미합니다.

cookie 취약성의 원리를 간단히 살펴 보도록 하겠습니다.

클라이언트가 회원제 쇼핑몰 사이트에 로그인하면 서버는 사용자 아이디와 패스워드를

입력받아, 정상적인 사용자인지 확인한 후에 접속 허락을 합니다.

이 때, 서버는 다음 번에 클라이언트로부터 클릭 이벤트가 발생했을 때, 클라이언트가

아이디와 패스워드를 입력해 다시 로그인하지 않도록 cookie 라는 것을 사용하도록 합니다.

브라우저로 하여금 클라이언트의 하드디스크나 메모리에 사용자와 관련된 정보를 저장

하도록 하는 것이죠.

서버는 다음번에 클라이언트가 클릭을 하여 서버로 접속하려고 할 때 브라우저로 하여금

Page 38: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

클라이언트의 cookie를 가져오도록 합니다. cookie 에 설정된 값 중에서 서버가 필요한

것을 읽어 접속을 허락하는 것이죠.

이 때 cookie 라는 것은 클라이언트에 설정된 값이므로, 클라이언트가 바꿀 수 있습니다.

예를 들어 클라이언트의 cookie 값 중에서 id=totoro 로 설정되어 있다고 가정합니다.

서버에 접속하기 전에 클라이언트의 id=totoro 값을 id=admin 이라고 바꾸고 나서, 서버로

접속을 시도한다면 서버는 아무런 의심없이 cookie 의 id=admin 값을 읽어 클라이언트

사용자를 admin 이라고 생각하고 admin 사용자에 해당하는 정보를 보여 줍니다.

실제로 클라이언트에 남겨진 cookie 값을 다음과 같이 살펴 볼 수 있습니다.

!여기서 strCookieId=ggum 이라는 값을 다른 strCookieId=admin 으로 바꾼다면

admin 사용자의 정보를 볼 수 있고, admin 권한의 모든 일을 할 수 있게 됩니다.

○ cookie 취약성 보안 대책

다음 방법을 이용하여 cookie 임의 변조를 막을 수 있습니다.

① cookie 값 암호화

서버가 클라이언트에 cookie를 브라우저에 의해 저장 할 때,

암호화하여 cookie를 저장하여, 문자를 알아 볼 수 없도록

하여 임의 변조를 할 수 없도록 합니다. 이것은 서버에서 암호화

cookie를 복호하여, 열람하도록 하고 클라이언트에 cookie를

저장 할 때는 서버에서 암호화시켜 암호화된 cookie를 저장하도

록 합니다. 클라이언트에서 cookie 변조를 하려고 하여도 암호화

되어 있기 때문에 할 수 없습니다.

② cookie 체크섬 이용

cookie 내에 별도의 체크섬이라는 체크 값을 두어,클라이언트에

서 cookie 값을 변경하더라도 변경 여부를 알 수 있도록 하는

것입니다. 클라이언트에서 cookie 값을 변조하여도 체크섬 알고

리즘을 알지 못하면 체크섬을 계산해 낼 수 없으므로,cookie

값을 이용하여 계산한 체크섬이 맞지 않으면 cookie가 변경

되었음을 알 수 있습니다.

Page 39: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 게시판 취약성 보안 및 대책

게시판을 이용한 해킹의 경우는 해커가 제작한 jsp php asp 파일을 업로드 하였을 때

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

이와 같은 경우에는 파일 첨부 기능을 되도록이면 사용하지 않도록 하고, 파일 첨부 기능을

이용할 경우에는 다음과 같은 방법을 이용하여 해킹 시도를 막을 수 있습니다.

① 파일 첨부 확장자를 필터링

파일 첨부를 할 때 확장자를 확인하여,

jsp, php, asp 와 같은 파일이 업로드 되지 않도록

필터링을 합니다. 이것은 원천적으로 해킹 파일이

업로드 되는 것을 막는 것입니다.

② 업로드한 파일 실행을

불가능하게 함

해커가 임의의 다른 방법을 이용하여 파일을 업로드

하였을 경우에, 업로드된 파일이 실행 불가능 하도록

하기 위해 파일 저장 경로와, 저장된 파일의 이름을

해커가 알 수 없도록 하는 것입니다.

업로드된 해킹 파일이라 할 지라도 실행을 시켜야

하기 때문에 실행을 불가능하게 하는 방법입니다.

○ Java Decompile 의 취약성 보안 및 대책

Java 라는 언어를 사용할 경우에는 반드시 다음을 체크하도록 합니다.

① 클라이언트로 다운로드되는

정보는 최소

클라이언트에 Java 언어를 이용하여 class

파일을 다운로드 하게 된다면 중요 매개

변수 및 중요 소스는 다운로드 되지 않도록

해야 합니다.

② 다운로드된 정보는 암호화

중요 매개 변수가 클라이언트로 다운로드

되야 한다면, 암호화 시켜서 본래 java 소스를

복원 시켜도 중요 매개 변수 값을 알 수 없도록

합니다.

③ 다운로드된 정보는 체크섬 이용

cookie 와 마찬가지로 체크섬 값을 이용하여,

중요 매개 변수 값을 조정을 하더라도

변조 여부를 알 수 있도록 합니다.

○ SQL 취약성 보안 및 대책

SQL 취약성은 사용자의 입력값에 특수문자 필터링 처리를 하지 않았기 때문입니다.

사용자가 입력한 값을 아무런 의심없이 바로 SQL 구문에 넘겨 처리하였기 때문입니다.

즉, 입력 값에 대한 올바른 값인지 확인을 먼저 해야 합니다.

예를 들어 사용자가 아이디 입력란에 totoro 라고 입력하지 않고, totoro' or 1='1 이라고

입력하였다면 totoro' or 1='1 위와 같은 아이디는 존재하지 않기 때문에 입력값

오류를 발생 시켜야 합니다.

Page 40: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

※ SQL injection 을 방지하기 위해서는 입력받은 값을 바로 SQL 구문에 넘겨서

처리하는 것이 아니라, 입력값에 대한 특수문자가 존재하는지 확인하여 필터링 하도록

합니다.

① 사용자가 숫자를 입력해야 한다면, ISNUMERIC 함수 등을 이용해

입력을 검사합니다.

② 입력 폼에서 특수문자( ', ;, | , -) 필터링 기능을 추가합니다.

③ 사용자가 문자열을 입력한다면, ' 을 ' ' 로 바꿉니다.

( 작은 따옴표 두 개로 바꿔 줍니다. )

또한 '을 \' 로 바꾸는 방법도 있습니다.

④ php를 사용하는 경우라면, php.ini 설정에서 magic_quotes_gpc = On

으로 설정합니다.

⑤ java를 사용하는 경우라면, 자동으로 '를 \'로 치환해주는

Prepared Statement를 사용하여 SQL문을 작성합니다.

Page 41: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

16. WEB application 취약점

- IIS의 취약점

마이크로소프트 IIS 웹 서버는 다음과 같은 취약점을 가지고 있습니다.

① 원격에서 명령어를 실행할 수 있는 유니코드(Unicode) 취약점

② 디렉터리 리스팅 취약점

실행 예제) 원격에서 명령어를 실행할 수 있는 유니코드(Unicode) 취약점

실행 예제) 디렉터리 리스팅 취약점

Page 42: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

- IIS 취약점 제거 및 보안 관리

○ 디렉터리 리스팅 취약점

IIS 유니코드 버그는 웹 서버 관리자의 오설정에 의한 버그가 아니라, IIS 웹 서버가

내부적 프로그래밍 결합으로 가지는 취약점입니다.

따라서, 이 취약점을 제거 하려면 취약점 제거를 위한 패치를 적용해야 합니다.

아래 사이트에 IIS 유니코드 관련 취약점 패치를 적용하면 됩니다.

http://www.microsoft.com/korea/security/default.asp

○ 유니코드 버그 취약점

디렉터리 리스팅은 웹 서버의 관리자의 오설정에 의한 버그입니다.

IIS 설치 시에 디폴트로는 디렉터리 리스팅이 허용되지 않지만, 디렉터리 리스팅을

허용하는 옵션이 IIS에 존재합니다.

- Tomcat 취약성 및 보안 관리

○ Tomcat 취약점

사용자는 웹 서버에 접속하여, 웹 서버가 사용자에게 넘겨준 결과 값만을 돌려받아

웹 브라우저를 통해서 볼 뿐입니다.

웹 서버상에서 돌아가는 실제 처리는 알 수가 없습니다.

그런데 Tomcat 은 .jsp 파일의 본래의 소스 파일을 볼 수 있는 취약점이 존재합니다.

http://localhost:8080/[상대경로]/servlet/org.apache.catalina.servlets.DefaultServlet/

[세부경로]/file.jsp

○ Tomcat의 보안 방안

Tomcat 의 소스 노출 취약점을 막으려면 web.xml 파일에서 다음 부분을 주석 처리하면 됩니다.

<!-- The mapping for the invoker servlet -->

<!-- <servlet-mapping>

<servlet-name>invoker</servlet-name>

<url-pattern>/servlet/*</url-pattern>

</servlet-mapping>

- Apache 취약점 및 보안

○ Apache 취약점

Apache 웹 서버의 취약점은 웹 서버 자체 보다는 PHP 버전에 따라서 취약점 존재할 수도

있고, 취약점이 없을 수도 있습니다.

Apache 웹 서버에 PHP 버전 4.0.2 - 4.0.5 버전 사이에 원격 버퍼 오버플로우 취약점이

존재합니다.

Page 43: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

실행 예제)

○ Apache 취약점의 제거 및 보안 관리

Apache 의 PHP 원격 버퍼 오버플로우 취약점은 버퍼 사이즈를 체크하지 않는

프로그래밍상의 오류로 인하여, 따라서 해당 취약점에 대한 패치를 적용 하셔야 합니다.

- Weblogic 취약점 및 보안

○ Weblogic 취약점

① weblogic 관리 화면 DB 연결 정보 노출 취약점

② .jsp 파일 소스 노출 취약점

○ Weblogic 취약점 제거 및 보안 관리

Weblogic 의 파일 소스 노출 취약점은 두 가지 방법으로 제거가 가능합니다.

- file 로 인해 소스 노출 가능한 취약점에 대해 패치를 하면 제거가 가능합니다.

- weblogic.property 파일에 file에 해당하는 부분을 12foo34 와 같이 임의의 문자로

대체하면 됩니다.

Page 44: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

weblogic.httpd.register.file=weblogic.servlet.FileServlet

weblogic.httpd.initArgs.file=defaultFilename=index.html

weblogic.httpd.defaultServlet=file

weblogic.httpd.register.12foo34=weblogic.servlet.FileServlet

weblogic.httpd.initArgs.12foo34=defaultFilename=index.html

weblogic.httpd.defaultServlet=12foo34

17. 툴을 이용한 시스템 취약점 점검

○ 열린 포트의 의미

윈도우 및 유닉스 시스템에 포트가 열려 있다는 것은 다음을 의미합니다.

① 불필요 서비스 동작

② 백도어 동작

○ 열린 포트 점검툴

열린 포트는 다음과 같은 툴을 이용하여 점검할 수 있습니다.

- superscan

- nmap

○ superscan

superscan 툴은 윈도우상에서 원격지 시스템에 대해 열린 포트를 점검할 수 있는

간단한 도구입니다.

superscan 은 다양하게 열린 포트를 점검 할 수 있습니다.

○ nmap

nmap 은 주로 유닉스 시스템에서 사용하는 열린 포트를 점검하는 툴입니다.

nmap 은 윈도우에서도 사용할 수 있게 nmap for window 버전이 소개되었습니다.

○ 사용자 패스워드 점검의 의미

사용자의 취약한 패스워드는 해커들의 공격 대상이 됩니다.

시스템에 접근 하기 위한 방법으로 패스워드를 크래킹하여 접근 하기 때문입니다.

시스템 관리자는 사전에 패스워드 크래킹 툴을 이용하여, 자신이 운영하는 시스템에

취약한 패스워드를 사용하는 사용자가 있는지 점검 할 수 있습니다.

○ 사용자 패스워드 점검툴

사용자 패스워드는 다음과 같은 툴을 이용하여 점검 할 수 있습니다.

- NAT

- brutus

Page 45: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

사용법은 [-o filename] [-u userlist] [-p passlist] <address>

-u 옵션 뒤에 userlist 는 점검하고자 하는 사용자 리스트를 파일로 작성하여 점검합니다.

-p 옵션 뒤에 passlist 는 취약한 패스워드 리스트를 파일로 작성하여, 사용자들이

취약한 패스워드를 사용하는지 점검합니다.

-o 옵션 뒤에 filename 은 점검 결과를 저장하고자 하는 파일 이름을 작성하면 됩니다.

address 는 원격 점검을 하고자 하는 시스템의 IP 를 적으면 됩니다.

점검 결과는 다음과 같이 나타납니다.

○ brutus

brutus 툴은 앞서 사용했던 NAT 툴과 같이 윈도우 사용자들의 취약한 패스워드를

원격에서 점검 가능한 툴입니다.

NAT 툴은 윈도우 사용자의 취약한 패스워드만 점검 가능하나, brutus 툴은 윈도우 이외에

HTTP 또는 telnet 로그인 사용자의 취약한 패스워드도 점검이 가능합니다.

Page 46: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

18. 보안 관리 방안

○ 사용자 아이디 관리 방법

① 퇴직자, 휴직자, 전배자

사용자 아이디 즉시 삭제

업무상 퇴직하거나 전배 및 휴직을 한 경우

사용자 아이디를 바로 삭제하도록 합니다.

해킹이 아니더라도 내부자에 의한 정보 유출을

막기 위해서는 퇴직,휴직,전배 사용자 아이디를

즉시 삭제하도록 합니다.

퇴직,휴직,전배 사용자 아이디가 관리되지 않을

경우 외부 해킹에 이용되는 경우도 많습니다.

② 아이디 관리 등록 절차 수립

사용자 아이디를 등록할 경우에는 등록 절차를

수립하여, 관리자의 승인을 받은 후에 등록하도록

합니다.

사용자 아이디 등록 절차 없이 등록한 아이디는

관리가 잘 되지 않을 뿐더러, 사용자 등록 절차

추적 시 근거를 찾기 어렵기 때문에 반드시

사용자 아이디 등록절차를 수립해야 합니다.

③ 사용자 아이디 노출 방지

시스템의 특성상 사용자 아이디를 노출하는

경우가 존재합니다.

- 윈도우의 null session

- 유닉스의 finger 서비스

위와 같은 취약점을 이용하여, 사용자 아이디가

외부로 노출되므로 사전에 취약점을 막아 외부로

사용자 아이디가 노출되지 않도록 해야 합니다.

④ 디폴트 사용자 아이디 제거

시스템에서 기본적으로 제공하는 아이디는

외부의 해커에게 노출되어 있다고 할 수 있습니다.

즉, 아이디는 이미 알고 있으므로, 패스워드만

크랙하여 시스템에 접근합니다.

따라서, 이미 외부에 노출된 아이디를 제거하여

외부 해커가 도용하지 않도록 방지해야 합니다.

⑤ 계약자 계정의 경우 일반

사용자와 분리하여 관리

계약된 기간 이후 사용을 방지하도록 하여,

해킹 피해를 막도록 합니다.

일반 사용자와 달리 계약자의 경우는 사용기간을

설명란에 명시하여, 명시된 사용기간 이후에는

삭제하도록 합니다.

Page 47: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 패스워드 관리 방법

① 패스워드 크래킹 방지

잠금 설정

원격에서 사용자 패스워드를 알아내기 위해

패스워드 사전 파일을 이용한 크래킹 또는 무작위

대입법을 이용한 크래킹을 시도합니다.

일정 횟수 이상 패스워드가 틀리면 패스워드 크래킹

으로 간주하여, 더 이상 접근이 불가능하도록 합니다.

※ 패스워드 잠금 설정은 횟수를 작게 하면,

사용자의 실수에 의한 패스워드 오류도 크래킹

으로 간주하여, 시스템 관리자가 매번 일일이

사용자의 패스워드를 잠금 설정을 풀어 주어야

하는 불편함이 있습니다.

따라서, 패스워드 잠금 횟수를 적절하게 설정하여,

시스템 관리자가 불편하지 않도록 해야 합니다.

② 취약한 패스워드 금지

사용자가 패스워드를 1111 또는 abcd 등 단순한

패스워드를 사용하게 되면 해킹이 쉽게 일어나므로,

시스템에 쉽게 침입하는 기회를 주는 것입니다.

따라서, 사용자들이 너무 짧은 패스워드나

숫자로만 만들어진 패스워드를 사용하지 않도록

시스템에서 설정을 하여, 강제 적용토록 해야 합니다.

③ 암호화된 패스워드 노출 금지

유닉스의 /etc/passwd 암호화 필드의 경우 노출이

되면 해커가 사전 파일 공격으로 원래 평문 패스워드

를 알아낼 수 있습니다.

따라서, 암호화된 패스워드의 경우 노출되어도 괜찮을

거라 생각하지만 실제로는 평문 패스워드를 알아낼

수 있기 때문에 유의하여, 노출되지 않도록 설정해야

합니다.

④ 최대 패스워드

사용 기간 설정

스니퍼나 백도어에 의하여 해커에 패스워드가

노출되었을 경우 해킹 피해를 막기 위해

패스워드를 최대 사용 할 수 있는 기간을 설정하여,

일정 기간이 지나면 다른 패스워드를 사용하도록

합니다.

⑤ 패스워드 재사용 금지

횟수 설정

스니퍼나 백도어에 의하여 해커에게 패스워드가

노출되었을 경우 해킹 피해를 막기 위해 과거

사용했던 패스워드를 다시 사용하지 못하도록

패스워드 재사용 금지 횟수 설정을 하도록 합니다.

Page 48: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 서비스 관리

① 사용하지 않은 서비스 제거

사용하지 않으면서 시스템에 동작하고 있는 서비스는

해킹에 이용될 수 있는 취약점 요소입니다.

왜냐하면 사용하지 않는 서비스는 관리가 되고 있지

않기 때문에 향후 취약점이 발견된다 하더라도,

취약점에 대한 보안 조치 또한 되지 않기 때문입니다.

따라서, 사용하지 않으면서 시스템에 동작하고 있는

서비스를 찾아 제거 하도록 해야 합니다.

② 서비스 접근 제한

사용하고 있는 서비스 중에서 모든 사용자가 접근

할 필요가 없는 서비스는 사용자별 접근 IP 를

지정하여, 접근 할 수 있는 IP 를 제한하도록 합니다.

③ 서비스 동작 권한 관리

서비스를 구동 할 때 시스템의 어떠한 권한으로

서비스를 구동하는지의 여부에 따라, 해커가 해킹

하고자 할 때 해커의 권한이 달라지게 됩니다.

예를 들어, 웹 서버를 시스템 어드민 권한으로

구동 시켰을 경우, 해커가 웹 서버를 해킹 하였을 때,

시스템 어드민의 권한을 가지게 됩니다.

따라서, 시스템의 서비스를 구동 할 때는 최소한의

권한으로 시스템 서비스를 구동하도록 해야 합니다.

④ 서비스 관리 화면 제어

Netscape 웹 서버 및 Tomcat, webLogic 등

몇몇 서비스는 관리를 위한 서비스 관리 화면이

따로 존재합니다.

이 관리 화면에 접근하는 접근 경로 역시 해커도

이미 알고 있기 때문에 해킹에 이용 될 수 있습니다.

따라서, 서비스 관리 화면은 외부에서 접근이 불가능

하도록 IP 접근 제어를 하거나, 사용하지 않을 경우

접근을 불가능 하도록 제어 해야 합니다.

⑤ 서비스에 존재하는

불필요 기능 삭제

서비스에서 제공하는 필요 이상의 기능으로 인하여,

해킹에 이용되는 경우가 발생합니다.

예를 들어 sendmail 의 vrfy 와 expn 명령어는

외부 해커에게 사용자 정보를 노출 시킬 수 있는

해킹 명령어를 제공합니다.

따라서, 서비스에 존재하는 불필요 기능을 제거

하거나, 사용할 경우에는 접근 사용자를 최소화

하도록 합니다.

Page 49: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 파일 설정 관리

① 시스템 정보를 가지는

파일 접근 제어

유닉스 시스템의 /etc/passwd, /etc/hosts 파일이나

윈도우 시스템의 c:\winnt\system32\hosts 파일의

경우 시스템의 중요 파일에 대한 정보가 기록되어

있습니다.

해커에게 노출되었을 경우 접근하기 위한 경로 및

접근하기 위한 정보를 노출 할 수 있으므로, 시스템

관리자만이 접근하도록 접근 제어를 해야 합니다.

② 시스템 중요 명령어

접근 제어

윈도우의 cmd.exe 와 같은 명령어는 외부에서 명령을

실행하고자 할 때 해킹에 이용 되는 명령어입니다.

이와 같은 명령어 파일을 확인하여, 시스템 관리자

이외에 접근이 불가능 하도록 접근 제어를 해야

합니다.

③ 시스템 중요 설정 파일

접근 제어

유닉스의 /etc/inetd.conf 와 같은 파일은

서비스를 구동하기 위한 서비스 정보를 포함하고

있습니다. 해커가 이 부분을 건드려 백도어를 생성할

수 있기 때문에 시스템 어드민만 접근 가능 하도록

접근 제어를 해야 합니다.

④ 사용자 환경 파일

접근 제어

사용자 소유의 .rhosts 파일의 경우 패스워드 없이

접근하기 위하여,해킹이 이용 될 수 있으므로,

외부 사용자가 이용하지 못하도록 /dev/null

링크 또는 접근 제어를 해야 합니다.

⑤ 시스템 로그 파일

접근 제어

해커는 해킹을 한 이후에 자기 흔적을 지우려 합니다.

로그 파일에 대해 시스템 접근 제한을 해 놓았다

하더라도 해커가 해킹에 성공하여, 시스템 어드민

권한을 획득하였다면, 시스템 로그 파일을 삭제 할

수 있겠지요.

그러나, 시스템 어드민 권한을 얻지 못하였을 때,

로컬의 사용자가 시스템 어드민 권한을 얻기 위해

해킹 시도를 한 경우라면 추적이 가능합니다.

따라서 시스템 로그 파일에 대해 일반 사용자가 접근

하지 못하도록 접근 제어를 해야 합니다.

Page 50: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 디렉터리 설정 관리

① 사용자 이외에 다른

사용자 접근을 제어

사용자의 홈 디렉터리는 악의적인 사용자에 의한

백도어나 바이러스 침입 등 방지하기 위해,

사용자의 홈 디렉터리는 다른 사용자가 보거나 쓰지

못하도록 관리 해야 합니다.

② 프로그램 설치 디렉터리와

데이터 저장 디렉터리를

구분하여 관리

바이러스에 의한 데이터 저장 손실을 방지하기 위하여,

해킹 바이러스가 침투 하였다 하더라도 데이터가

저장된 부분의 파괴를 방지하기 위해 프로그램 설치

디렉터리와 데이터 저장 디렉터리를 구분하여,

관리하도록 합니다.

Page 51: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

19. 불법적인 해킹 대응 방안

○ 침해 사고 범위

침해 사고란 정보통신기반시설을 대상으로 비인가된 행위 또는 위협을 말합니다.

- 구제적으로는 비인가된 시스템 사용 또는 사용자 계정의 도용, 악성 코드 유입 및

실행, 정보 서비스 방해 등이 있음.

- 정전, 절도, 물리적 파괴와 같은 사고와 자연 재해적 사고는 침해사고의 범위에

해당되지 않음.

○ 침해 행위의 기술적 분류

- 비인가 접근

- 악성코드 공격

- 서비스 거부 공격

- 취약점 정보 수집

○ 침해 사고 시스템 분석 방법

격리 분석

- 대체 백업 시스템이 있어 정상적인 서비스에 지장이 없을 경우,

또는 분석할 동안 서비스를 하지 않아도 될 경우 가능

- 정확한 증거보존이 필요한 경우, 그리고 분석 시스템을 이용하여

아주 철저한 분석을 원할 경우

- 격리 이후에는 공격 프로그램 또는 침입자를 모니터링하기

어렵게 됨

온라인 분석

- 대체 백업 시스템이 없어, 해당 시스템이 없으면 정상적인

서비스를 하지 못할 경우

- 피해 시스템에 온라인으로 로그인해서 분석하게 되며,

주로 원격지의 시스템을 빨리 분석해야 할 경우에 적합함

- 공격 프로그램이나, 공격자의 활동 등을 지속적으로 모니터링

할 수 있음

- 분석 도중에 침입 흔적이 파괴되거나 손상될 수 있어 정확한

분석이 힘듦.

- 최소한 자원으로 최소한의 분석만을 원할 경우의 분석방법임.

분석 시스템을

이용한 분석

- 피해시스템의 디스크의 이미지를 복사해서 분석 시스템을

이용하여 분석하는 방법으로 “Computer Forensics"에서 증거를

훼손하지 않기 위한 분석 방법

- 피해 시스템의 자원을 이용하지 않고 분석 시스템의 자원을

이용하기 때문에 보다 정확한 분석이 가능

- 분석 시스템 준비, 디스크 복사 등 피해시스템 분석에 앞서

준비할 사항이 많으며 시간이 오래 걸림

Page 52: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 침해 시스템 분석 절차

분석 시스템 준비과정은 정확한 분석과 철저한 증거보존을 위해서는 꼭 필요한 절차입니다.

백업

피해 시스템 분석에 앞서 가장 먼저 해야 될 일은 데이터 백업입니다.

백업은 보안에 있어 가장 기본적인 조치입니다.

특히, 서비스의 지속성이 필요하여 온라인으로 분석해야만 할 경우,

그리고 보안업체의 전문가 등 제 삼자가 분석할 경우에는 필수적인

조치입니다. 왜냐하면, 피해 시스템을 분석하거나 모니터링 한다는

것을 공격자가 알게 되면 시스템 전체를 삭제하는 경우가 있으며,

제 삼자가 분석할 경우에는 이에 대한 책임을 져야 할 수도 있기

때문입니다.

분석 시스템 준비

만약 법적 대응을 원할 경우에는 피해 시스템의 철저한 보존이

필요합니다.

따라서, 보안업체의 전문가나 경찰 또는 검찰에 의뢰하여 처리하는

방법이 가장 바람직합니다. 피해 시스템 분석 시 보다 철저한 증거

보존과 정확한 분석을 위해 전용 분석 시스템을 마련하고, 이를 이용

할 수도 있습니다. 분석 시스템을 준비하는 과정은 생략될 수 있으나,

전문적인 분석을 수행하는 기관이나 향후 보다 정확하고 철저한 분석

을 하고자 하는 경우에는 미리 준비하고 연습해 보는 것이 좋습니다.

freezing the scene

공격자는 언제든지 시스템을 변경하거나 파괴할 수 있다라는 사실을

주지하여야 합니다.

따라서 공격 흔적을 더 이상 훼손되지 않도록 보존하려고 할 경우에는

시스템을 셧다운 시키거나 네트워크 선을 분리할 수 있습니다.

하지만 이러한 작업은 공격자의 로그인 상태, 네트워크 연결 상태 등

피해시스템의 몇 몇 중요한 현재 상태 정보를 잃게 만듭니다.

따라서, 피해 시스템을 격리하기 전에 현재의 시스템 상태를 정확히

파악하여야 합니다.

시스템 분석

피해 시스템을 분석한다는 것은 결국 공격의 흔적, 즉 증거를

찾아내는 과정입니다.

하지만 이에 대한 방법이나 절차는 일반적으로 정형화되어 있지 않고,

주로 경험을 통하여 이루어지는 경우가 많습니다.

최근에 "Computer Forensics" 라는 이름으로 이러한 방법에 대하여

과학적으로 접근하려는 시도들이 많이 나고 있습니다.

공격자들이 사용하는 공격도구, 루트킷, 백도어, 또는 트로이잔에 대한

지식을 바탕으로 피해시스템을 분석하는 방법이 있습니다.

그리고 이러한 분석을 체계적으로 도와주는 공개용 도구를 이용한

방법도 있습니다.

Page 53: 정보보호를 위한 해킹의 이론과 실제 학습정리노트 file1) 허가받지 않은 시스템에 대하여 정신적 또는 물리적인 피해를 입히는 것 2) 특정

본 교재의 판권 및 저작권은 삼성SDS의 소유이므로, 무단전재나 복사를 금합니다.

정보보호를 위한 해킹의 이론과 실제 학습정리노트

○ 침해 사고 대응팀 운영

정보통신망 해킹 등 침해사고에 대응하기 위한 팀으로 CERT 라는 조직이 있습니다.

CERT 는 Computer Emergency Response Team 의 약자로, 해킹 및 바이러스 사고에

대한 신속 처리 및 피해를 최소화 하고 미연에 예방하기 위한 조직이라고 볼 수 있습니다.

- CERT 정의

침해사고에 대한 예방을 목적으로 보안상의 문제점(보안 홀, 취약점, vulnerability)을

연구하고 방어대책을 강구하여 발표함으로써 크래킹을 막는 것

- CERT 역할

침해사고 발생시 피해의 확산 방지 및 복구 실시

○ 국내 침해 사고 대응 조직

- CERTCC-KR

1996년 KISA(한국정보보호센터)에서 처음으로 국가기관, 기업체, 대학교의 주요

관계자 약 150명을 주축으로 국가적 CERT모임을 발족함.

(명칭 : CONCERT : CONsortium of CERTs )

웹 사이트 : www.certcc.or.kr

○ 국외 침해 사고 대응 조직

- 국제 CERT 연합

FIRST

Forum of Incident Response and Security Teams

국제 전산망 침해사고 대응팀 연합회

100여개 세계 각국이 가입중임.

웹 사이트 : www.first.org