남기면 좋잖아

8장 패스워드 크랙 진단 본문

Penetration testing/Kali Linux

8장 패스워드 크랙 진단

Beautiful Hugo 2017. 7. 3. 19:57
반응형

- Contents -



8.1 오프라인 패스워드 공격 도구

8.2 온라인 패스워드 공격 도구

8.3 네트워크 스니퍼 정보 획득




아~~ 정말 오랜만이네요.. 저번 장을 쓴지 벌써 한달이 지났어요.

학교가 시험기간에 가까워질 수록 바쁜건 어쩔 수 없는것같아요 ㅜㅜ

그래서 저희 공부도 시험기간 때문에 2주정도 쉬게되었는데, 방학되고나니 쉬긴 개뿔.. 공부합니다.


뭐 일단.. 시작하게 됬으니 끝을 봐야겠죠?


이번장은 8장 패스워드 크랙 진단 입니다.


8장에서는 로컬에서 사용할 수 있는 오프라인 패스워드 도구온라인 서비스를 이용해 패스워드를 크랙할 수 있는 방법을 살펴봅니다.

많은 도구가 있기때문에 적절한 환경에서 적절한 도구를 사용하시길 바랍니다.






8.1 오프라인 패스워드 공격 도구




획득한 계정 정보 파일에서 취약하게 암호화 설정돼 있는 정보는 오프라인 패스워드 도구를 활용하면 빠르게 획득할 수 있습니다.


시스템 진단에서의 취약한 패스워드 계정 정보를 활용하기 위해 사용할 수 있는 도구들에는 어떠한 것들이 있는지 한번 봅시다.




8.1.1 존더리퍼 : 패스워드 크랙


존더리퍼는 유닉스 계역 패스워드 크랙 도구입니다. 무료이며 오픈소스 도구입니다. 

칼리리눅스 바탕으로 실습이 진행 중이어서 별도의 설치는 필요없는데, 다른 플랫폼(센토스, 페도라, 윈도우 등)에서는 설치를 해야하니 

http://www.openwall.com/john 에서 각자 플랫폼에 맞게 설치해주시면 되겠습니다.


그리고 꼭 패스워드를 크랙하는 용도 이외에 서버를 관리할 때 서버에 취약한 패스워드를 사용하는 계정이 있는지 확인하는 용도로 이만한 도구가 없기 때문에 생각보다 유명한 도구로 알고 있습니다.




자 기본적으로 존더리퍼를 사용하시려면 계정과 패스워드 정보가 들어가있는 /etc/passwd 와 /etc/shadow 파일이 필요합니다.


기존의 백트랙에서는 존더리퍼가 설치되있는 경로에 가서 unshadow 명령을 썼어야 됬는데요.(매우 귀찮죠)

칼리리눅스에서는 혹시나 했는데 역시나 unshadow까지 bin디렉터리에 저장되어있어서 어디에서든 쓸 수 있었습니다.


여튼..


첫 번째로 필요한 작업은 /etc/passwd 와 /etc/shadow 파일을 복사해옵니다. 그걸 일반적인 cp 명령어가 아닌 unshadow 명령어를 써서 가져오는 거죠.



#unshadow /etc/passwd /etc/shadow > pw.list ( 두 파일을 pw.list란 이름으로 합치기 )

#john pw.list (존더리퍼로 pw.list 를 이용하여 크랙시도)


그 다음 john 명령을 써서 크랙을 돌려주시면 됩니다.

신기한게 pw.list 파일을 실제로 열어보시면 /etc/passwd 와 /etc/shadow파일이 서로 알맞게 합쳐진모습을 보실 수 있습니다.



8.1.2 hashcat : 암호 복구 도구


hashcat 은 세계에서 가장 빠른 CPU 기반의 암호 복구 도구입니다. hashcat이 지원하는 패스워드 크래킹 모드 종류와 암호화 알고리즘은 전부 타이핑 쳐드리기 힘들만큼 많군요.. 거의 전부라고 보시면 될것 같습니다.



제가 보여드리고 싶었는데, 해쉬파일들을 음 차마 구하진 못해서 간단한 시나리오식으로 알려드리겠습니다.

예를 들면 MD5 알고리즘으로 test.txt 파일이 해싱돼 있을 경우,


#hashcat -m 0 -a 3 hashdump.txt ?a?a?a?a -o /root/outfile.txt --force



해석해 보자면, 


-m : hash-type은 0

-a : 브루트포스 공격으로 진행

-?a : 예상되는 숫자나 문자열의 갯수

-o : 결과물 파일생성

--force : 오류를 무시하고 진행


이렇게 되네요.



결과물 파일에 이 해쉬값은 test라는 값이라는걸 출력했습니다.

또 hashcat이 콘솔환경 말고도 gui 버전으로도 있다고하니 관심있으신분들은 찾아보시면 아주 괜찮을 것 같습니다.




8.1.3 hash-identifier : 알고리즘 종류 식별


이 도구는 입력한 해시 값이 어떤 알고리즘인지 식별하는데 사용하는 아주 간단한 도구입니다.




실행시키면 위 화면과 같이 나타나고, HASH부분에 해시 값을 넣어 실행시키면 어떤 알고리즘인지 식별 해줍니다.


이 hash-identifier의 소스를 보면 입력된 값의 길이와 hs의 길이를 우선적으로 비교해보고 어떤 알고리즘인지 출력해주는 단순한 구조기 때문에 의미없는 값을 입력하더라도 조건만 만족한다면 정상적이 결과를 출력합니다.









8.2 온라인 패스워드 공격 도구




계정 정보를 획득하기 위해 항상 오프라인으로 가져와 크랙하는 것은 아니겠죠.

원격 서비스(Telnet, FTP)를 대상으로 진행할 경우가 있으며, 온라인 서비스에서 제공하는 테이블 정보를 활용해 쉽게 크랙을 진행할 수 있습니다.



8.2.1 hydra : 로그인 크랙 도구


hydra는 다양한 프로토콜을 지원하는 로그인 크래커입니다. 새로운 모듈을 쉽게 추가할 수 있고, 유연하고 매우 빠른 것이 특징입니다.

여러 플랫폼에서 사용 가능하며 지원하는 프로토콜도 매우 많습니다.



간단하게 상황을 설정하면, FTP 서버의 로그인 아이디를 알고 있고 hydra로 브루트포스 공격을 이용해 패스워드를 크랙하는 예로



#hydra -l <로그인아이디> -P <패스워드 사전 파일> <타겟 IP> <프로토콜>



결과가 금방나왔는데요. 패스워드가 "toortoor" 라고 찾았습니다.

만약 아이디도 모르는 상황이라면 소문자 l 이 아니라 대문자 L 로 바꾸고 아이디 사전파일을 지정하면 됩니다.




8.2.2 findmyhash : 온라인 데이터베이스 활용 도구


findmyhash 는 온라인에서 지원하는 해시 DB를 이용하여 그 값들과 비교해 패스워드를 크랙하는 도구입니다.


간단하게 사용해보자면,




# findmyhash <옵션> <해시 알고리즘> <해시값 이나 해시값이 저장되있는 파일>


진행과정을 보게되면 무료 온라인 해시 크랙 서비스를 하고 있는 웹사이트에 입력한 해시값을 전송하여 이에대한 응답을 출력해줍니다.

저 같은 경우에는 패스워드를 test와 toortoor 로 MD5로 변환한 뒤 실험해봤는데 모두 찾지 못했다고 나오네요.(....)

뭐 여튼 이런 도구도 활용하여 해시값으로 되어있다면 한번 시도하는 것도 좋을 것 같습니다.








8.3 네트워크 스니퍼 정보 획득




동일 네트워크 대역에서 사용자와서버의 주요 정보를 제일 손쉽게 획득할 수 있는 방법 중 하나는 네트워크 스니핑/스푸핑 공격입니다.

평문으로 전송되는 모든 정보들은 쉽게 노출될 수 있죠.

이번에는 패킷 정보를 통해 중요 정보를 획득할 수 있는 도구들을 보겠습니다.



8.3.1 ettercap : 네트워크 스니핑 환경 만들기


ettercap 은 로컬 환경에서 중간자 공격을 할 수 있게 도와주는 공격 모음 도구입니다. ARP  프로토콜에서 자신을 중간자로 설정해 공격을 수행하구요. 스니핑 기능을 기본적으로 갖고 있으며, 여러가지 공격을 수행할 수 있습니다.

또한 플러그인을 통해 DNS 스푸핑, Dos 공격 등을 지원하며 사용하기에 따라 매우 유용하고 강력한 도구입니다.


ettercap은 콘솔환경으로도 할 수 있지만, GUI 환경을 지원하기 때문에 GUI로 테스트를 해봤습니다.



기본적으로 스니핑을 하는 방법을 보자면,


1. 먼저 칼리리눅스 메뉴에 Sniffing/Spoofing > ettercap-graphical 을 실행합니다.


2. 그리고 GUI 메뉴에서 Sniff > Unified sniffing 을 클릭하고 자신의 네트워크 인터페이스를 선택합니다.


   그럼 메뉴바가 좀 달라지는데요.

3. 이제 네트워크에 존재하는 호스트들을 확인하기 위해 Hosts > Scan for hosts를 클릭합니다.


4. Hosts > Hosts list 를 클릭합니다. 그럼 동일 네트워크에서 현재 살아있는 호스트목록들이 나오게 됩니다.


5. 호스트를 확인했다면 Start > Start sniffing 을 클릭하면 비로소 스니핑이 시작됩니다.



위 사진을 보시면 호스트 목록이 총 4개가 맥주소와 함께 나왔고, 

제가 테스트로 칼리리눅스가 아닌 제 호스트 컴퓨터에서 PUTTY로 취약점 서버에 Telnet 서비스를 통하여 접속해보았습니다.


그리고 칼리리눅스에서 확인을 한결과 맨밑에 줄에 포트번호, 아이디와 패스워드가 적나라 하게 나온걸 확인할 수 있었습니다..


이것 말고도 DNS 스푸핑공격도 이 도구를 통하여 테스트할 수 있었습니다.

아주 강력하고 유용한 도구인 것 같아요.








8장에도 역시 제가 소개해드린것 말고도 여러 툴들이 있는데, 역할이 중첩되보이거나 없거나 제대로 테스트가 안되거나 못한경우는 빼버렸습니다. ㅜㅜ

확실한건 위 소개해드린 도구들로도 충분히 유용하게 사용할 수 있다는 점입니다.

벌써 책이 끝나가고 있습니다. 다음에는 9장 무선 네트워크 진단 입니다. 기대되지 않을 수 없네요.

자 그러면 저는 여기서 마치도록하고 다음 9장에서 뵙도록 합시다. 다들 고생하시고 화이팅 합시다!



반응형

'Penetration testing > Kali Linux' 카테고리의 다른 글

7장 침투 심화 공격 단계  (0) 2017.07.03
6장 취약점 진단 단계  (0) 2017.07.02
5장 취약점 평가 단계  (0) 2017.05.26
칼리 리눅스 설치 후 초기 설정  (0) 2017.05.21
4장 정보 수집 상세 단계  (0) 2017.05.19
Comments