IT와 예술이 만나면?

[해킹강좌]04.와이파이 비밀번호 알아내기 Kali Linux

IT/해킹

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

와이파이 비밀번호 뚫는법을 알아봅시다.

옛날에 사용하던 WEP방식은 무조건 뚫렸지만 요즘은 WPA2방식을 주로 사용하기 때문에 현재까지는 사전대입법이나 무차별대입법이 유일한 방법입니다.

아마 기술의 발전이 계속되면 WPA2방식도 뚫리는 날이 오겠죠...?

 

제가 직접 실행하고 캡처하기엔 여건이 마땅치 않아서 해외 유튜버가 올린 영상을 캡처해서 설명하도록 하겠습니다.

airmon-ng

이 명령어를 이용하여 우리가 사용할 무선랜 인터페이스 이름을 알아냅니다.

아마 대부분 wlan0 아니면 wlan1일겁니다.

 

airmon-ng start wlan0

여기서 wlan0은 본인이 사용하는 네트워크 인터페이스에 맞게 수정하시면 됩니다.

이후 나오는 wlan0도 마찬가지입니다.

이 명령어로 wlan0을 모니터 모드로 전환합니다.

airmon-ng

다시 airmon-ng를 이용해 모니터모드로 들어간 인터페이스의 이름을 알아냅니다. 

이 경우에도 아마 대부분 wlan0mon 혹은 wlan1mon일겁니다.

airodump-ng wlan0mon

새로 알아낸 인터페이스명을 써줍니다.

그러면 위와 같이 주변의 wifi들을 스캔하기 시작합니다.

여기서 목표로 하는 와이파이의 BSSID와 CH, ESSID를 찾아서 따로 메모해둡니다.

(참고로 BSSID는 공유기의 MAC ADDRESS, CH는 와이파이 채널, ESSID는 와이파이 이름입니다.)

airodump-ng -c [메모해둔 채널] --bssid [메모해둔 BSSID] -w [메모해둔 ESSID] wlan0mon

이 명령어를 실행하면 뭔가 아까랑 비슷한 창이 열심히 돌아갈겁니다.

잠시 두고 새로운 터미널을 열어 다음 명령어를 실행합니다.

 
aireplay-ng -0 0 -a [메모해둔 BSSID] wlan0mon

위 명령어는 해당 와이파이 네트워크에 연결된 기기들을 순간적으로 연결해제하여 재인증을 하도록 유도하는것입니다.

이때 WPA2인증을 위해 4-way handshake라는걸 하는데 이 과정에서 암호화된 와이파이 암호를 주고받습니다.

이 전에 입력했던 명령어가 그 순간을 포착하고

암호화된 와이파이 암호가 들어있는 패킷을 캡처하여 저장하는 역할을 합니다.

캡처에 성공하면 위에 파란색 글씨처럼 WPA handshake: ~~~~이렇게 뜹니다. 아마 캡처된 파일은 /root/안에 저장되어있을것입니다. 파일탐색기로 해당 파일의 이름을 알아와야합니다. 아마 와이파이의 이름으로 되어있을겁니다.

aircrack-ng -w [사전 파일 경로] [캡처된 파일 경로]

여기서 사전 파일이란, 그 와이파이 비밀번호에 대입해 볼 단어들의 모음을 말합니다. 직접 예상되는 암호들을 모아 만드셔도 좋고, 인터넷에서 다운받으셔도 좋습니다. 구글에 password dictionary라고 치면 많이 다운받을 수 있습니다. 하나 링크 걸어드리겠습니다.

사전 다운로드

사전을 직접 만드시려면 다음과 같은 형식으로 txt파일을 만드시면 됩니다

예상패스워드1
예상패스워드2
.
.
.
.
.
.
.

위 명령어를 실행하면 사전에 있는 단어들을 하나씩 대입해가며 비밀번호를 맞춰가고....

만약 사전에 맞는 비밀번호가 있다면 위와같이 패스워드가 나옵니다!

 

출처:https://www.youtube.com/watch?v=dgyUBVLvfDk

[해킹강좌] 03.윈도우 계정 비밀번호 해킹2 (Dictionary Attack)

IT/해킹

이번엔 Brute force attack에 이어 Dictionary Attack을 시도해보겠습니다. 

Dictionary Attack은 미리 예상 패스워드를 모아둔 파일을 이용하여 그 파일에 있는 문자열들을 하나하나 대입해보는 공격입니다. 패스워드를 미리 적어논 그 파일을 사전이라고 합니다.

1편에서 처럼 메모리를 덤프시켜놓고 위의 사진처럼 Attack 옵션을 Dictionary로 설정합니다.

Dictionary list를 눌러주고....

 

Add를 누르면 기본 사전이 나옵니다. 거기서 사전을 고르면..........

이렇게 추가가 되고 Close를 눌러줍니다.

그리고 어제와 같이 이 버튼을 눌르면 됩니다~~~~~ 패스워드가 사전에 들어있었으면 성공할겁니다.

오늘은 여기까지~

[해킹강좌] 03.윈도우 계정 비밀번호 해킹1 (Brute Force Attack)

IT/해킹

오늘은 Proactive Password Auditor(PPA)를 이용하여 윈도우 계정 비밀번호를 뚫는 실습을 해보겠습니다.

실제 상황이라면 피공격자 컴퓨터의 메모리 덤프를 떠오거나 SAM파일을 추출해서 비밀번호를 알아내겠지만, 오늘은 PPA를 이용하여 메모리 덤프 혹은 SAM파일을 따온 뒤 어떠한 방식으로 비밀번호를 알아내는지 보여드리겠습니다.

먼저 PPA를 다운로드 받읍시다! 유로프로그램이므로 트라이얼 버전을 준비했습니다.

다운로드

 

프로그램을 실행시키면 위와 같은 화면이 뜰겁니다. Dump 버튼을 누르면 사용자의 메모리를 덤프떠올겁니다. 메모리에는 우리 윈도우 계정의 비밀번호의 해시값이 저장되어 있습니다. 

아래 사용자 계정 목록에서 뚫고자 하는 계정을 선택하고 위의 Bruteforce attack탭에 들어갑니다.

해시함수의 일방향성 때문에 비밀번호를 뚫기 위해서는 무차별대입 공격 또는 사전 대입 공격을 사용해야 합니다. 여기서 무차별대입 공격에 대한 설정을 할 수 있습니다. 

All Latin은 A부터 Z까지 모든 알파벳을 다 넣어볼 것인지 정하는 옵션입니다. 

All Digits는 0에서부터 9까지 모든 숫자를 다 넣어볼 것인지 정하는 옵션입니다. 

Special은 특수문자를 다 넣어볼 것인지 정하는 옵션입니다.

Password Length는 비밀번호가 최소 몇자리부터 최대 몇자리 까지 넣어볼지 정하는 옵션입니다.

 

 

설정이 끝났으면 위와 같은 버튼을 누르면 Brute force attack이 진행되고, 조건에 맞게 잘 설정 했다면 비밀번호가 계정이름 옆에 나타날겁니다!

오늘은 여기까지 하고 다음 포스팅에선 사전 대입 공격에 대해 알아보겠습니다.

[해킹강좌] 비밀번호 알아내는법/SQL 인젝션 하는법

IT/해킹

SQL injection/웹해킹/해킹하는법/비밀번호 알아내기


오늘은 간단하게(​사실 칼리리눅스 캡쳐가 귀찮아서..) ​SQL 인젝션을 한번 해봅시다. 어떤 플랫폼이든, 인터넷만 되면 가능합니다.

SQL Injection이란 데이터베이스의 SQL쿼리를 이용해 데이터베이스의 정보를 빼오는 겁니다.


http://demo.testfire.net/
이 사이트는 각종 웹해킹을 시연해 볼 수 있게 만든 모의 사이트입니다. 필자가 애용하는 곳이죠. 다만..! 저는 아직 SQL 인젝션을 그리 잘하지 않기 때문에 제가 직접 설명하는것 보다 유용한 링크들을 걸어놓는것이 더 나을거 같단 생각이 드는군요(절대 귀찮아서가 아닙니다ㅎ)

http://m.egloos.zum.com/laydios/v/2089967
SQL인젝션 기초부터..

http://blog.lael.be/post/55
다양한 SQL인젝션 쿼리

http://m.youtube.com/watch?v=Rb3KqDbTF9A
SQL 인젝션 시연 영상

물론 이제 대부분의 사이트에서는 SQL인젝션은 거희 불가능 하다고 봐야하지만 일부 비주류 사이트에서는 여전히 유용합니다. 다만 아무리 악의가 없었다고 해도 SQL인젝션 시도만으로도 불법이니 꼭 제가 알려드린 사이트에서만 시연하시길 바라겠습니다..!

[해킹강좌]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는 이 블로그의 강좌들을 악용하는데 있어서 발생하는 책임을 대신 져주지 않습니다.

 

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

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