Hacking?
컴퓨터 네트워크의 보안 취약점을 찾아내어 그 문제를 해결하고 이를 악의적으로 이용하는 것을 방지하는 행위를 말한다


유래
1950년대 미국의 MIT 동아리 hack에서 유래.


 

Hacking? Cracking?

긍정적인 해킹과 부정적인 해킹으로 구분
악의가 없는 해킹은 그래도 해킹이라고 한다.
악의적인 의도가 있는 시도는 크래킹이라고 한다.

    

해커의 분류

 

v화이트 햇(White hat)

§„착한 사람이라는 뜻으로 악의가 없는 해킹을 말한다. 예) 보안 전문가

 

v블랙 햇(Black hat)

§„악당이라는 뜻으로 정보 삭제, 용카드 도용, 해적판 제작 등 타인에게 피해를 주는 불법적 해킹을 말한다. 크래커와 동의어로 사용됨

 

v그레이 햇(gray hat)

§화이트 햇과 블랙햇을 섞어 놓은 해킹이다. 그레이햇 해커들은 해킹을 한 후 해당 관리자에게 이 사실을 알린다. 해당 취약점을 수정해주는 대가로 실비를 받으려는 속셈이다.

 

v블루 햇(blue hat)

§보안 분야의 베타테스터로 생각하면 된다. 특정 시스템을 본격적으로 구동하기 젂에 버그를 찾아내는 보안 컨설팅 회사를 블루 햇이라고 한다.

 

v아마추어 해커(script kiddie)

§컴퓨터 지식이 부족해 남이 만들어 놓은 프로그램을 이용하여 해킹을 시도하는 사람을 말한다.

 

v핵티비스트(hacktivist)

§해커와 정치운동가를 합성한 용어로 정치, 사회, 종교 등의 메시지를 알리는 것이 주목적인 해커들이다. 이들은 특정 목적을 위해 해당 기관의 시스템을 다운 시키거나 관련 이미지 또는 문구를 홈페이지에 걸어놓는다.

 

 

 

Haking History


태동기 ( 1960 ~ 1970 )
폰 프리킹이라고 하는 1960년대 말에 공짜로 전화를 걸던 히피 대학생으로부터 태동.

 


성장기 ( 1970 ~ 1980 )
컴퓨터의 보급이 확산되고 정보 통신망이 발달하자 많은 폰 프리커들이 해커로 변경됨.
1970년대 후반에 수많은 개인용 컴퓨터가 가정, 학교, 사무실에 보급되면서 컴퓨터 해커들의 활동이 본격화 됨

 


전환기 ( 1980 ~ 1990 )
1980년대 들어오면서 컴퓨터가 널리 보급되고, 해커들의 사회적 비행이 시작.


 

 

탄압기 ( 1990 ~ 2000 )
1990년대 들어서면서 크래커들의 사회적 비행이 국가 안보를 위협하는 존재로 발전하고 정치적 이념을 가진 핵티비스트(hacktivist)들이 등장.

 


발전기 ( 2000 ~  이후 )
2000년대 부터 인터넷이 대중화 되면서 해킹기술이 급속도로 발전

 

 

 

해킹에 사용하는 기술

 

1.취약점 검사

-  시스템에 침투하기 위한 구멍(취약점)을 찾아내는 프로그램 또는 행위


2.비밀번호 크래킹

- 시스템에 저장되어 있는 비밀번호를 알아낸다


3.루트킷

- 피해자가 알아채지 못하게 특정 시스템에 몰래 설치되어 있는 프로그램


4.키로거

- 피해자가 입력한 정보를 로그를 훔친 후 복원하는 기술


5.스푸핑 (패킷 변조)

- 공격자가 자신을 감추고 신뢰성 있는 장치/사람으로 변장하는 것을 뜻한다.

 

6.패킷스니퍼(패킷 가로채기)

- 네트워크를 통해 오가는 데이터 패킷을 가로채는 기술.


7.그 외 트로이 목마, 바이러스, 웜 등..의 사이버 테러도 넓은 의미로 범주에

넣을 수 있다.

 

 

 

 

Hacking Flow 과정 ( 상세 목록은 앞의 로드맵을 참조 )

   Target  -   Information gathering   -  Vulnearabillity Analyze   -   Attack

대상지정

      정보수집       

      정리 분석        

     공격     

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,

 앞서서 기초해킹 과정에서는 내부단에서 여러가지 과거 해킹기법의 원리와 테스트를 해보았다고 한다면, 네트워크 해킹 파트에서는 이제 본격적으로 GNS3 에서 스위치-라우터를 모의 연결하여 DHCP-NAT-을 거친 외부 인터넷 환경을 구성해 두고, 내부의 사설아이피를 이용하여 내/외부 다양한 네트워크 보안과정을 거치게 됩니다.

CISCO 의 Packet Tracer 이외에 실제의 스위치와 라우터의 os 를 가상화하여 모의환경을 실습하는 유명한 프로그램으로 GNS3 라는 것이 있습니다.

 

 

[ 구성 내용 ]

가상머신들을 GNS3 의 토플로지를 구성하여, 스위치와 라우터에 연결하고, 그 라우터를 외부 인터넷(실제로는 자신의 로컬 컴퓨터의 랜카드가 되겠죠?) 에 연결하여 NAT - DHCP 처리를 거쳐서 최종적으로는 내부의 가상머신들 ( 10.0.0.x/24) 사설 대역대가 인터넷이 가능하도록 설정하는 환경 구성입니다.

 

[ 세팅 준비 ]

앞의 기초해킹과정과 아이피를 좀 다르게 설정할 것입니다.

기초해킹 과정에서는 내부단으로 모두 같은 네트워크 어댑터인 WMnet1을 썼지만

이번에는 스위치와 라우터로 각각 별도의 랜카드 구성을 합니다.

사전에 만들어 두었던 VMnet1 , 2 , 3 으로 각각 설정합니다.

Backtrack R3 - 10.0.0.3 - 네트워크 어댑터 VMnet3

CentOS Linux - 10.0.0.2 - 네트워크 어댑터 VMnet2

Windows XP - 10.0.0.1 - 네트워크 어댑터 VMnet1

Windows NT 2000 - 10.0.0.100 - 네트워크 해킹 과정에서는 거의 쓰지 않습니다.

 

GNS3의 토플로지는 다음과 같이 구성합니다.

( 클릭하면 크게 보입니다 )

 

 

GNS3의 기초 세팅법은 차후에 다루도록 합니다. 

각 머신들은 자신들의 VMnet 1,2,3 을 달고, 스위치에 연결된 상태이며, 구름 모양의

Internet 이라는 부분은 결국 외부 인터넷이 가능한 공인 아이피를 갖고 있는, 현 로컬 컴퓨터의 실제 랜카드 가 되겠습니다.

아무튼, 라인에 우클릭하면 Wireshark가, 장치를 더블클릭하면 SecureCRT 가 자동으로 뜨도록 세팅해주세요.

 

 

 

보시다시피 스위치는 정해진 포트로 뿌려주는 역할을 맡게 되는데, 도달할 지점이

라우터의 FA0/0 부분이지요? 즉, 라우터의 Default Route 설정을, 각 운영체제의 환경설정에서 지정해 주어야, 문제없이 라우터까지 도달할 수 있습니다.

물론 선행으로 라우터 관리자모드에서 해당 인터페이스에 아이피를 지정해 주어야지요.

 

윈도우즈에서는 마찬가지로 ncpa.cpl 로 아이피 설정하는 부분에 게이트웨이 지정이 있습니다.

리눅스에서는 route 명령어로 확인 후, 지정되어 있지 않다면

환경설정 파일에서 GATEWAY= 로 지정해 주시던지, 아니면 직접

route add default gw 10.0.0.254 라고 필히 입력해 주십시오.

 

[ 라우터와 스위치 설정 과정 ]

[1] 토플로지의 스위치는 라우터 기기이다.

= 라우터는 조건을 따지고, 모르는 패킷을 DROP 시켜 버리기 때문에, 저대로 냅두면

옆으로 보내지 못합니다. 조건없이 플러딩 수준으로 낮추기 위해서, 라우팅 기능을 끄면 됩니다.

Switch 더블클릭하여 시큐어CRT 창을 여신 후 글로벌 컨피그(전역 : 관리자모드 )로 갑니다.

다음의 입력으로 라우팅 기능을 꺼주면, 스위치 역할을 임시로나마 하게 됩니다.

no ip routing

 

[2] 라우터의 인터페이스에 아이피 할당.

패스워드는 알아서 나중에 지정하십시오.

설정을 마친 후 꼭 #copy run running-config startup-config 로 설정 내용을 저장해주세요

불러오기 : copy run start

 

라우터의 양 인터페이스 FA 0/0 과 0/1번에 각각 게이트웨이 주소 , DHCP 할당 임대 아이피를 지정해 주어야 합니다. 그래야  내부단 사설 아이피의 핑이 FA 0/0 을 디폴트 게이트웨이로 알고 찾아오겠죠?  라우터에 도착한 패킷이 이제 외부로 나가려면, 공인 NAT 을 거친 DHCP 랜덤 임대 아이피로 변환되어야 하는데, 외부로 나갈 FA 0/1 라인에 DHCP 임대 아이피를 설정하는 것입니다. 그러면 인터넷까지 나갈 수 있겠죠?

 

 

라우터의 fa0/0 에 게이트웨이 주소를 할당하고, 라인을 열어주었습니다.

핑을 넣어서 스위치를 거쳐 내부단에 핑이 도달하는지 확인합시다

처음에 . 으로 핑이 도달하지 않는 이유는 간단합니다.

처음에 테이블에 등록되어 있지 않기 때문이겠지요? 라우터는 학습했습니다!

이제 라우터의 fa0/1 부분을  dhcp 임대아이피를 받아와야 하는데, 굉장히 간단합니다.

이 쪽에서 DHCP 서버를 구성하는 것이 아니라, 그냥 외부에서 받아오는 것이기 때문이지요.

해당 인터페이스에 들어가서 입력해 줍니다. 

 

IP 주소 세팅을 그냥 DHCP 에서 받아오겠다고 선언하시면 끝납니다.

참 위에 그림이 하나 빠졌는데 반드시 인터페이스는 no shutdown 으로 열어주세요.

이제 show ip interface brief ( 줄여서 sh ip int bri 가능합니다 ) 로 확인해 봅시다.

 

알아서  ip를 DHCP 로 따왔음을 볼 수 있습니다.

하지만 여전히 외부로 인터넷을 할 수 없습니다. 핑이 통해도 안 됩니다.

이유는 간단 합니다. DHCP 로 받아온 192.168.31.X 단의 네트워크의 정보가

외부 로컬 실제 랜카드의 테이블 정보에 "없기" 때문입니다.

외부 랜카드가 내부단에서 올라온 새로운 사설 아이피를 알 리가 없죠.

라우터는 모르는 누가 쑤시면 핑까지는 받지만 다음으로 보내지 않고

그냥 "DROP" 해 버리죠? 결국 인터넷이 여전히 안 되게 됩니다.

 

 

해결 방법은 디폴트 스태틱으로 범위를 잡아준 후 NAT 설정으로 라우터가 DHCP 로 받아온 FA 0/1 부분의 아이피를 실제 로컬 랜카드의 네트워크 범위로 잡아주면 해결됩니다.

 

자신의 로컬 환경의 실제 게이트웨이를 확인해 봅니다.

저는 192.168.47.254 군요!

디폴트 스태틱을 설정하여, 내부단의 모든 네트워크를 라우터의 다음 hop인 실제 외부 랜카드의 첫 인터페이스... 즉 실제 외부 게이트웨이까지 연결해 줍니다.

( 일반적인 공유기의 게이트웨이는 호스트가 254지만 VMware 가상 어댑터의 경우는 2번입니다. 나중에 커스텀하실때 참조하세요 )

 

 

이제 NAT 을 설정해야 할 차례입니다.

NAT 을 설정하려면 ACL을 지정해야 합니다. 내부단의 사설 IP 전체가 대상이지요.

그 ACL 로 사설(내부)/공인(외부) 위치를 라우터에게 정확히 알려주면 됩니다.

NAT 의 일반적인 방법은

1. 공인 ip 대역 : pool ( 공유기에서 따온다 ) 이름 설정

2. 변경시켜줄 사설 IP 대역 지정 : ACL 묶기

3. 앞에서 지정한 사설 IP 공인 IP Mapping. (PORT 옵션 : overload)

4. 인터페이스에서 inside / outside 라우터에게 사설/공인 위치를 알려주기

 

입니다만, 지금 우리는 DHCP 임대된 아이피 위에는 랜카드 1개에 할당된 외부 공인아이피 하나만 가지고 있으므로 1번의 경우는 의미가 없습니다. 그래서 생략해도 됩니다.

 

 

 

[ ACL 지정 ]

 

access-list 1 permit 10.0.0.0 0.0.0.255

 

1이라는 넘버의 ACL 영역에 [허용] 합니다. 다음의 네트워크 영역 10.0.0.0 0.0.0.255 를.

 

이란 의미입니다. 뒤의 넷마스크는 서브넷이 아닌 와일드카드 마스크 입니다.

 

간단히 말해서 255.255.255.0 이라는 서브넷 마스크(/24)는 앞의 8/8/8 비트의 네트워크 영역을 "고정" 하고 호스트만 나누는 "네트워크 분리" 를 목적으로 하는 것이고, 와일드카드 마스크는 거꾸로 0.0.0(0~255)의 네트워크단의 영역을 "지정" 하겠다는 의미라고 보시면 되겠습니다.

 

 

다음은 이제 NAT 설정입니다

 

ip nat inside source list 1 interface fa 0/1 overload

=[내부단 안쪽의] [ACL 리스트 넘버 1] 을 라우터의 [인터페이스 FA 0/1] 영역에 NAT 를 걸겠다.

 

 

라는 의미가 됩니다.

중요한건 다 끝났구요. 이제 마지막으로 라우터에게

내부가 어디고, 외부가 어디냐? 를 알려주면 됩니다.

안쪽 / 바깥쪽의 기준은 Router 를 한 가운데에 두고 생각하시면 됩니다

당연히 왼쪽 fa 0/0 은 inside 내부단, dhcp 로 나가는 fa0/1 은 외부단이 되겠죠?

 

설정을 마쳤으면 이제 각 가상서버에서 ping www.google.co.kr 를 때려봅시다.

정상적으로 가지 않는다면, 무언가 잘못된 것!

단, 8.8.8.8 로는 외부 핑이 나가는데, 네임 google.co.kr 로 가지 않는다면, 그것은

자신의 가상머신이 외부의 DNS 서버에 연결되어 있지 않기 때문입니다.

 

윈도우즈 같은 경우는 아이피 설정 밑에 dns 서버 설정이라고 있는데

그곳에서 KT 의 수퍼DNS 인 168.126.63.1 을 입력해 줍니다.

리눅스에서는 /etc/resolve.conf 파일을 열어서

nameserver 168.126.63.1 을 추가해 주면 되겠습니다.

 

이상 끝!

 

ps. 토플로지에서 외부 인터넷 구름(랜카드)이 유선이 아닌, 무선 네트워크일 경우에는 GNS3 토플로지에서 무선 랜카드를 잡으면, 인터넷이 죽어도 안 됩니다. 무선 인터넷 환경에서 구성하시고 싶은 경우에는 Internet 부분의 랜카드를 VMnet8 (NAT) 로 잡으시고, 디폴트 스태틱 설정을 192.168.31.2 ( 게이트웨이 ) 로 잡아주시면 되겠습니다.

 

 

 

 

 

 

블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,