IT와 예술이 만나면?

'리눅스'에 해당되는 글 3건

  1. [해킹강좌]02.Kali linux를 활용한 DoS공격 22
  2. [해킹강좌]01.Kali Linux 설치 32
  3. [해킹강좌]00.Prologue

[해킹강좌]02.Kali linux를 활용한 DoS공격

IT/해킹

 

 

Denial of Service(서비스 거부)공격은, 이름 그대로 서비스를 제공하는 서버가 서비스를 하지 못하게 하는 모든 공격을 통틀어서 일컫는 말입니다. 그 말은, DoS공격도 여러가지 종류가 있다는 것이죠.

우리는 수많은 DoS공격 방식 중, 대표적인 SYN Flood 공격과 UDP Flood 공격을 배워보겠습니다.

 

SYN Flood 공격

먼저 SYN Flood 공격은 TCP연결의 특성을 이용한 방식인데요. TCP의 연결 방식은 3Way Handshake라고 불립니다.  

 

위의 사진에 아주 잘 설명되어 있는데, 먼저 클라이언트가 서버에게 연결을 하고싶다고 물어봅니다. 물어보는 것을 SYN패킷을 통해 하죠. 그리고 서버는 SYN패킷을 받으면 연결해도 좋다는 대답을 클라이언트에게 SYN+ACK패킷으로 보낸 후, 클라이언트로부터 올 ACK패킷을 기다리게 됩니다. 마지막으로 클라이언트가 서버에게 ACK패킷을 보내면, 연결이 성사 되는 것 이죠.

 

서버가 ACK패킷을 기다린다는 것을 강조했죠? 바로 이 점을 이용해서 SYN Flood 공격이 이루어지기 떄문에 그랬습니다. 이제 SYN Flood 공격을 설명해 드리자면, 공격자가 서버에게 막대한 양의 SYN 패킷을 보냅니다. 하지만, 원래 정상적인 SYN패킷은 클라이언트의 ip주소가 적혀있어서 서버가 그 ip주소로 SYN+ACK패킷을 보내지만 SYN Flood 공격을 할때는 모든 SYN 패킷의 ip주소를 각각 다른 엉뚱한 IP주소로 변조하여 보내기 때문에 서버는 엉뚱한 클라이언트에게 SYN+ACK 패킷을 보내죠. 결국 엉뚱한 클라이언트는 ACK패킷을 리턴 해 주지 않고, 서버는 계속 ACK패킷을 기다리니 리소스가 모두 소모되면 더 이상의 연결이 불가능해지게 됩니다.

 

그렇다면 이제 원리를 알았으니 Kali Linux를 통해 SYN Flood공격을 직접 해봅시다.

 

 

칼리 리눅스를 켜시고 맨 위에 보시면 터미널 아이콘이 있습니다. 그 아이콘을 누르고 위의 사진과 같은 명령어를 자신의 상황에 맞게 맞춰 바꿔 써 주시면 되겠습니다.

 

 hping3:SYN Flood공격을 위해 사용하는 프로그램 이름

192.168.0.1:표적의 IP주소

-S:SYN패킷을 사용하라는 옵션

--flood:최대한 빠른 속도로 패킷을 전송하라는 옵션

--rand-source:Client(Source)IP를 랜덤으로 변조하라는 옵션

-p 80:표적의 80번 포트로 패킷을 전송하라는 옵션

 

직접 자기가 명령어 하나하나 써가면서 해야 실력이 늘기 때문에, 위의 사진을 보고 직접 따라 치시기 바랍니다.

 

저렇게 명령어를 작성하고 Enter버튼을 누르면..!


 

 

위 사진의 'hping in flood mode~'까지 나올겁니다. 'hping in flood mode~'가 나온다면 현재 공격이 진행중인 것이고, 표적 웹서버에 접속을 해보시면 접속이 되지 않는것을 확인하실 수 있습니다. 그리고 공격을 이제 멈추고 싶다면 Control+C를 누르시면 '표적 IP hping statistic~'가 나오고, 공격이 멈추게 됩니다.

 

여기까지가 SYN Flood 방식의 공격이고, 만약 표적 서버가 자동으로 복구가 안된다면..뭐 간단하게 서버를 재부팅 하시면 됩니다.

 

UDP Flood 공격

UDP는 TCP와는 달리 비연결지향적이라서, TCP처럼 뭔가를 막 주고 받지는 않습니다. 그러면 UDP Flood는 어떻게 서비스거부를 일으키냐.! UDP Flooding은 쉽게 말하면 무식하게 많은 패킷들을 표적에게 보내서 표적의 네트워크 대역폭을 모두 차지해버리는 방식입니다. 뭐 자세하게 들어가자면 표적 서버가 ICMP패킷을 보내는 내용도 있지만.. 중요해보이진 않는군요. 어찌됬던 이제 UDP Flood공격은 어떻게 진행하는지 알아보죠.

 

보통 NAVER같은 포털 사이트들의 서버를 UDP Flood공격으로 마비 시키려면....음.....그냥 불가능합니다.. 서버의 네트워크 대역폭이 어마어마하게 크기 때문이죠. 그래서 보통은 흔히들 알고있는 DDoS공격을 합니다. DDoS공격은 Distributed DoS, 그냥 UDP Flooding을 수백마리의 좀비피씨들을 통해 동시에 진행한다고 생각하시면 됩니다. 하지만 뭐 개인용 웹서버, 혹은 컴퓨터 등은 별도의 방화벽만 없으면 혼자서 공격해도 충분히 마비시킬 수 있습니다.

 

 

보시면 아시겠지만 UDP Flood공격도 SYN Flood와 명령어가 상당히 비슷합니다. 사용하는 프로그램이 같기 때문이죠. 사실 hping3이외에도 solaris 등의 다양한 프로그램이 있지만, 개인적으로 hping3이 가장 간단한 것 같습니다. 명령어 설명드리겠습니다.

 

 hping3:SYN Flood공격을 위해 사용하는 프로그램 이름

192.168.0.1:표적의 IP주소

-2:UDP패킷을 사용하라는 옵션

--flood:최대한 빠른 속도로 패킷을 전송하라는 옵션

--rand-source:Client(Source)IP를 랜덤으로 변조하라는 옵션

-d 100:패킷의 데이터 크기를 100byte로 설정하라는 옵션

-p 80:표적의 80번 포트로 패킷을 전송하라는 옵션

 

역시 직접 자기가 명령어 하나하나 써가면서 해야 실력이 늘기 때문에, 위의 사진을 보고 직접 따라 치시기 바랍니다.

 

저렇게 치고 나면..

 

 

역시 SYN Flood 공격과 마찬가지로, 공격이 시작되고, Control+C를 누르면 멈추고 밑에 statistic이 나오게 됩니다. 우리는 statistic에 관심이 없기 떄문에 넘어가도록 하죠.

 

아마 공격이 진행되고 5분정도 지나게 되면 대부분의 시스템은 마비될것 입니다. 아, 그리고 DoS공격은 무선인터넷으로 진행하는것이 거희 불가능한 수준이니 유선인터넷으로 하는것이 좋겠습니다.

 

 

2015/01/21 - [IT/해킹] - [해킹강좌]00.Prologue

 

2015/01/22 - [IT/해킹] - [해킹강좌]01.Kali Linux 설치

 

*공감은 블로거에게 힘이 됩니다(로그인이 필요없습니다)

*이 곳의 강좌를 악용하는데 있어서 발생하는 책임을 UniqueZ는 대신 져 주지 않습니다.

[해킹강좌]01.Kali Linux 설치

IT/해킹

 Kali Linux를 설치하기 시작하기 전에 먼저 굳이 Kali Linux를 사용하는 이유를 설명드리겠습니다.

 

 

 

사실 해킹은 거희 모든 OS에서 가능합니다. Windows, Mac OSX, Linux, Android, 심지어 iOS에서도 탈옥을 하면 가능하죠. 하지만 대부분의 해커들과 보안전문가들은 리눅스를 사용합니다. 뭐 여러가지 이유가 있겠지만 제 생각에는 아마도 Windows나 다른 OS들은 Linux에 비해 쉘의 활용도가 상당히 떨어져서 그때그때 상황에 맞춰 스크립트를 수정하기도 해야하는 작업에서 그런거 같습니다. 그리고 지피지기면 백전백승이란 말이 있듯이 대부분의 서버는 Linux기반이기 때문에 공격을 할때도 Linux를 사용한다? 뭐 그런거죠.

저는 사실 리눅스가 간지나서...

 

 

어찌됬던 우리가 해킹을 위해 사용할 OS는 Kali라는 리눅스 기반 OS입니다. 그 많고 많은 리눅스들 중에서 왜 하필 Kali냐! 하면은 Ubuntu같은 다른 Linux는 당연한 얘기지만 해킹을 위해 직접 툴과 스크립트들을 다운로드 받아야하는 귀찮음이 있습니다. 하지만 Kali 리눅스는 해킹에 필요한 대부분의 툴들이 이미 내장되어있기 때문에 그런 수고를 덜을 수 있죠.

 

 

Kali Linux의 이전에는 BackTrack이라는 OS가 있었습니다만 BackTrack에서는 어떠한 툴을 사용하려고 명령어를 입력할때면 다른 리눅스 들이 그렇듯 해당 툴의 경로까지 입력해야했지만 Kali Linux에서는 더이상 그럴 필요 없이 툴의 이름만 입력하면 되도록 바뀌었습니다.

 

Kali Linux를 돌리는 방법 중에는 가상머신을 사용할 수도 있는데 필자는 컴퓨터의 성능을 풀로 활용하지 못하고 실제 사용환경과 다르다는 이유로 가상머신 보단 USB라이브 부팅방식을 선호하기 때문에 라이브 부팅하는 법을 설명드리겠습니다.

 

자, 이제부터 본론으로 들어갑시다. Kali Linux를 설치하기 위해서 몇가지 준비물이 필요합니다

 

 

1.Kali Linux ISO파일

2.4GB 이상 USB

3.Win32 Disk Imager

3.컴퓨터

 

 

ㅎㅎ간단하죠?

아님말구....

 

일단 Kali Linux ISO파일을 다운받아 봅시다..!

 

 

 

먼저 여기를 클릭해 Kali Linux 공식 사이트에 접속합니다.

 

 

이 화면이 보이면 DOWNLOADS 버튼을 눌러 다운로드 페이지에 들어갑시다

 

 

 

이곳에서 자신의 컴퓨터에 맞게 64bit 혹은 32bit를 선택하고 토렌트를 사용하든 직접 다운받든 ISO파일을 다운받습니다.

 

그리고 다운받는 동안 이곳을 누르거나 정식 다운로드 페이지를 방문해 Win32 Disk Imager를 다운받아 설치합시다. 설치과정은 다 아실테니 패스..

사실 귀찮아서.....

 

그 후 한 10분만 기다리면 ISO파일이 다 받아져있을테고 이제 아까 설치해놓은 Win32 Disk Imager를 실행시킵시다.

 

 

실행시키면 이런 깔끔한(?) 화면이 나올겁니다. 우리가 여기서 건들일건 딱 세가지 입니다

 

1.

요렇게 생긴 버튼

 

이 버튼을 누르면 '찾아보기' 창이 나오고 우리의 ISO파일을 찾아야 하죠. 근데 잠깐..!

 

 

두둥....img파일만 지원한다.

하지만 걱정하지 마시라. ISO파일의 확장자만 IMG로 바꿔도(대소문자 상관없음) 멀쩡하게 작동된다.

 

 

 

 

이렇게 확장자명만 바꾸고 다시 Win32 Disk Imager로 img파일을 로드하면..!

 

 

성공적으로 올라가죠 후후..

그리고 다음으로는..

 

2.

 

디바이스 선택창..!

 

이친구는 어느 USB에 Kali Linux를 설치할지 결정하는 친구(?)입니다..! 하지만 USB명이 아니라 포트 위치(?)라 해야하나 하여튼 F:\이런 식으로 나오기 때문에 내 USB가 뭔지 확인하러 가야겠죠.

 

확인하는 법은 간단합니다. '컴퓨터' 혹은 '내 컴퓨터' 창에 들어가서

 

 

Kali Linux를 설치하고자 하는 USB옆에 괄호치고 나오는 저 알파뱃..!을 외워 두면 되는데.. 이왕 '내 컴퓨터' 창에 들어온 김에 USB 포맷까지 하고 가죠. 포맷 타입은 FAT32로 하시면 되겠습니다..! 이것도 귀찮아서 스크린샷은 패스..

 

이제 디바이스 선택창에서 아까 외워둔 드라이브 명을 선택하고 마지막으로 해야 할 것은

 

3.

 

Read도 Exit도 Cancel도 아닌 Write..!!

 

클릭하고 한 3분? 정도 넋 놓고 기다리다 보면 어느새 완료되어있습니다..!!

 

그러면 이제 우린 Kali Linux가 들어있는 USB를 가지고 무얼 해야하나..! 일단 컴퓨터를 끄시고 다시 킬때 F2키 또는 DEL키를 눌러 BIOS설정에 들어갑니다.(Mac유저들은 Option키를 누르고 있으면 바로 어떤 장치로 부팅할건지 나오기 떄문에 이번 단계는 패스~)

 

영롱한 푸른빛을 내는 BIOS설정에 성공적으로 진입했다면.. 이제는 정말 메인보드에 따라 너무 달라서 자세히 설명은 못드리지만 Boot, Booting 등 Boot가 들어간 메뉴에 들어가서 Boot Priority 1순위를 Kali Linux가 깔려있는 USB로 설정해 주시고 재부팅을 하시면 되겠습니다. 다시 켜지고 나면..

 

 

 

 

성공적으로 설정이 되신 분들은 이러한 창이 뜨실겁니다..!

 

↓부팅이 안되거나, Windows로 들어가질때↓

 

저 창에서 Live로 시작하는 그 어떤 메뉴를 선택하셔도 상관 없습니다.

사실 필자도 별차이를 모르는....

 

어쨌든 저중 하나를 선택하고 나면 혼자 막 열심히 부팅을 하고나서 드디어..!

 

 

Kali Linux를 만나보실수가 있습니다..! 짝짝짝~

이렇게 되면 Kali Linux 설치를 완료 하신겁니다. 다음 강좌에서는 비교적 쉬운 DOS공격(Denial-Of-Service attack)을 배워보도록 하겠습니다.

 

 

2015/01/21 - [IT/해킹] - [해킹강좌]00.Prologue

 

2015/01/22 - [IT/해킹] - [해킹강좌]01.Kali Linux 설치

2015/02/04 - [IT/해킹] - [해킹강좌]02.Kali linux를 활용한 DoS공격

[해킹강좌]00.Prologue

IT/해킹

해킹강좌를 시작하기에 앞서 이렇게 미리 공지드리고 시작하는게 좋을 것 같아 제가 돌아왔습니다..!

 

사실 해킹이라고 하면 수많은 개인정보 유출 사건, 3.20사이버 대란 등 때문에 안좋은 인식이 퍼져있는데, 위키 백과에 따르면 해킹의 긍정적의미로는 '각종 정보 체계의 보안 취약점을 미리 알아내고 보완하는 데에 필요한 행위'란 뜻을 가지고있습니다.

 

 

물론 우리는 이미 알려져 있는 취약점을 가지고 모의 해킹을 진행할 것 이지만 이러이러한 공격기법들이 있다는것을 배우고, 또 직접 해보기도 하면서 자신의 컴퓨터 및 네트워크 환경의 취약점을 알아내고 보완할 수 있을테니 우리는 긍정적 의미의 해킹을 하는 것이죠.

물론 해킹강좌 쳐서 들어온 사람들이 해킹을 부정적으로 생각할리는..

 

그래서 제가 하고자 하는 말은, 이곳에서 배우게 되는 모든 해킹 기법들은 모의 해킹을 하여 네트워크 취약점을 막는등의 아름다운(?) 용도로만 사용하셔야 한다는 겁니다.

 

 

그 어떤 기법이라도 악용 할 시, 관련 법에 의거해 처벌 받을 수 있으며(자세한 내용은 사진을 클릭..) 당연히, Unique Z는 이 블로그의 강좌들을 악용하는데 있어서 발생하는 책임을 대신 져주지 않습니다.

 

그리고 사실 저도 배우고 있는 입장이라 완벽하지 않을 수 있지만 최선을 다해보도록 하겠습니다. 혹시 잘못된 정보가 있다면 댓글로 알려주시길..

그럼 다음 포스팅에서 해킹을 하는데 필요한 칼리 리눅스를 설치하는 법을 가지고 다시 뵙겠습니다..! ㅃㅃ~