뉴비에욤

Metasploit - 각종 서비스 무작위대입 공격 (BruteForce Attack) 본문

Kali 2.0 & Metasploit/ETC

Metasploit - 각종 서비스 무작위대입 공격 (BruteForce Attack)

초보에욤 2016. 2. 11. 00:27

사전 준비

 

모의 침투에 사용되는 운영체제 답게 칼리 리눅스에는 기본적으로 계정 목록이 있는 파일과, 예상되는 비밀번호

목록이 있는 파일들을 제공한다. 이를 기반으로 하여 메타스플로잇을 통해 각종 서비스를 대상으로 유효한 계정을

찾는 무작위 대입 공격을 시도할 수 있다.

 

find 명령을 통하여 사용하고자 하는 파일을 검색한다.

* 실습은 "/user/share/w3af/w3af/core/controllers/bruteforce/" 폴더의 "user / password" 파일을 사용했다.

 

사용하고자 하는 파일은 기본적으로 위 사진과 같은 계정 목록들이 있다.

 

현재 디렉토리로 복사(cp 명령어 이용, 사진 생략)한 뒤 추가적으로 예상되는 계정들을 입력한다.

* sa => mssql admin

* root => linux admin

* postgres => postgresql user

* nobody => linux common user

 

사용하기 쉽게 bruteforce 폴더를 만들고 파일들을 옮긴(mkdir, mv 명령어 이용, 사진 생략)뒤 파일의 사이즈를 보면

위 사진과 같다. 참고로 위 사진에서의 password.txt 파일은 인터넷에서 받은 파일로써 상당한 사이즈를 자랑한다.

* 해당 비밀번호 파일은 총 63,941,069 개의 예상 비밀번호가 존재한다.

 

 

 

FTP 서비스 공격

msfconsole 명령어를 입력하고, ftp 서비스를 공격하기 위해 "auxiliary/scanner/ftp/ftp_login" 모듈을 이용한다.

해당 모듈에서 요구하는 옵션들은 위 사진과 같다.

 

 

set blank_passwords true => 모든 계정에 대해 빈 패스워드를 시도함

set pass_file /root/bruteforce/passwords.txt => 패스워드 목록 파일 경로

set rhosts 192.168.100.136 => 공격 대상 IP 주소/도메인

set threads 256 => 스캐닝 프로세스에서 사용하는 쓰레드 (클수록 빠르나, 너무 크면 락걸림)

set user_as_pass true => 모든 계정에 대해 패스워드를 계정명으로 시도함

set user_file /root/bruteforce/user.txt => 계정 목록 파일 경로

 

이전 사진에서 지정한 옵션을 기반으로 공격 시도하면 위와 같은 결과과 계속 출력 된다.

* 그러나 실패 시도까지 출력되기 때문에 스크린이 복잡해질 수 있다.

* 이럴 때는 verbose 옵션을 false로 지정(set verbose false) 하면 성공 결과만 출력 된다.

 

대상 서버의 FTP 서비스 사용 가능 계정이 출력 된다.

 

이전에는 실제 유효 계정을 찾았고, 위 사진은 해당 서버의 ftp 서비스에서 익명 계정의 허용 여부/허용 권한을

스캔하는 모듈을 사용한 결과이다. 해당 서버는 익명 계정을 이용하여 다운로드(READ 권한)를 할 수 있다.

 

 

 

기타 서비스 공격

 

위에서 보여주었던 FTP 서비스 공격과 유사한 방식으로 다양한 서비스를 공격할 수 있다.

SSH

1. "auxiliary/scanner/ssh/ssh_version" 모듈 이용 => ssh 서비스가 동작 중인 서버 스캔

2. "auxiliary/scanner/ssh/ssh_login " 모듈 이용 => (1)의 결과에서 보여지는 서버 주소를 기반으로 공격 수행

 

TELNET

1. "auxiliary/scanner/telnet/telnet_version"

2. "auxiliary/scanner/telnet/telnet_login"

 

 

 

 

 

Windows - NetBIOS 서비스 공격

 

우선 "auxiliary/scanner/netbios/nbname" 모듈을 이용하여 NetBIOS가 동작중인 서버를 찾는다.

물론 nmap 스캔 결과를 이용해도 무방하다.

 

위에서 보여준 ftp 서비스와 유사한 옵션을 제공한다.

 

각 옵션에 대하여 적절한 값을 세팅한다.

 

익스플로잇을 시도하면 유효 계정 정보를 얻을 수 있다.

* "status_logon_failure" 오류가 나는 경우 http://bob3rdnewbie.tistory.com/196 참고

 

칼리 리눅스에서는 윈도우즈의 유효 계정 정보를 좀 더 많이 덤프할 수 있는 "samrdump.py" 파일을 제공한다.

* 기본 경로는 "/usr/share/doc/python-impacket/examples/" 폴더에 위치한다.

이전에 얻은 계정 정보를 기반으로 해당 파일을 이용하면 덤프를 뜨면 위 사진과 같은 결과과 출력된다.

 

Comments