METASPLOIT 기본 명령어, 사용법

METASPLOIT 사용법

Metasploit은 펄스크립트를 사용하는 침투테스트도구이다.

1. METASPLOIT 경로
metasploit Kali Linux 기본적으로 설치되어 있다. Kali 기준으로 경로는 /usr/share/metasploit-framework/ .

Screen Shot 2015 03 26 at 11 22 55 AM

/user/share/metasploit-framework 경로를 살펴보면 msf* 다양한 실행파일들이 있다. 여기서 우리가 사용할 실행파일은 msfconsole metasploit framework console 약자고 저장되어있는 exploit 코드나 payload등을 간단하게 가져와 사용할수 있고 명령어를 통해 다른 기능들도 사용할 있다. GUI 버젼도 존재하지만 너무 느리고 멋이 없다.

msfconsole 실행하기에 앞서 exploit코드들이 있는 경로를 확인해보자. msfconsole framework 맞게 작성된 외부 파일을 가져와 임포트 하기 위해서는 경로를 알고 있는게 많은 exploit 코드들을 관리하기 편하다.

Screen Shot 2015 03 26 at 11 24 12 AM

/usr/share/metasploit-framework/modules/exploits 경로로 들어가면 exploit 코드들을 여러 분류로 나누어 정리해 놓았다. windows/ftp 관련 exploit 코드들만해도 엄청 많다. 모두 .rb 파일로 metasploit-framework ruby 프레임워크에 맞는 문법에 따라 작성된 코드만 해석할 있다.

msfconsole 이용해 exploit 테스트해 보려는데 msfconsole 있는 exploit코드에 맞는 버젼의 프로그램을 찾기가 귀찮아서 exploit-db 사이트에서 프로그램과 msfconsole exploit코드가 모두 업로드 되어있는 것을 찾았다.


BadBlue 라는 간단한 웹 서버 프로그램으로 더 이상 업데이트도 없고 회사가 없어진 것 같다.
exploit code파일은 16806.rb msfconsole 맞게 작성되어있다. 이제 파일을 msfconsole에서 임포트해야 한다. 
exploit code 모아놓은 폴더중 적당히 맞는 범주의 폴더에 16806.rb 파일을 넣고 msfconsole 실행 시킨다.

Screen Shot 2015 03 26 at 11 28 46 AM

GEEK하다. 재시작하면 계속 다른 ASCII ART 나온다. (http://www.network-science.de/ascii/ 문자를 ASCII ART 바꿔주는 사이트) 처음 화면에서는 metasploit version, 저장되어 있는 exploit, payloads 등등의 정보를 알려준다. exploit code 1420개나 있지만 바로 exploit code 실행시켜 공격에 성공할 있는 별로 없다. (운영체제, 버젼, 언어등 환경의 문제나 잘못된 exploit code)

2. METASPLOIT 명령어

먼저 콘솔 옵션들을 확인해 보자. help라고 치면 콘솔 옵션을 확인할 수 있다.


- 저장된 exploit code확인 명령어
msf > show exploits

Screen Shot 2015 03 26 at 11 38 17 AM

exploit code가 엄청나게 많다. 이름과 날짜와 위험수준 그리고 어떤 취약점을 이용하는 공격인지 어느 프로그램의 몇 버젼을 대상으로 하는지 간단한 설명이 써있다. 이중에서 내가 필요한 exploit code를 찾아 해킹공격을 할수있다.

앞에서 exploit code경로에 추가한 Badblue exploit code msfconsole 임포트하려면 reload_all 치면된다.

- 전체 module 다시 로딩
msf > reload_all

Screen Shot 2015 03 26 at 3 33 28 PM

경로에 추가한 exploit code를 임포트 했으면 이제 제대로 임포트가 되었는지 찾아보자.

- 저장된 자료(exploit, payloads, encoder)에서 문자열로 검색하기
msf > search “문자열

Screen Shot 2015 03 26 at 3 34 39 PM

msfconsole에서는 tab으로 자동완성도 안된다. 귀찮아서 그냥 /exploit/ 경로안에 바로 넣었다.. 추가한 exploit code 16806, BadBlue Buffer Overflow 보인다. 제대로 임포트가 되었다. 옛날에 백트랙인가 칼리인가에서 아무리 exploit 파일을 경로에 추가해도 임포트가 안된적이 있었다. 알고보니 컴퓨터에 metasploit 두개가 깔려 있었고 /bin/ 있는 msfconsole 경로가 아닌 다른곳에 설치되어 있는 msfconsole exploit 파일을 넣었었다. 임포트가 안될 때에는 msfconsole 바로 실행하지말고 ./msfconsole 이용해서 실행해보자.

exploit 장전하자. 

- exploit code 장전
msf > use “EXPLOIT_NAME”

쉘에도 exploit이 장전되었다. 이제 희생자를 조준하는 설정들을 맞춰줄 일이 남아있다. exploit 마다 다 설정들이 다르니 확인하면서 환경에 맞게 추가 해주면 된다.

- exploit option 보기
msf exploit(exploit) > show options

Screen Shot 2015 03 26 at 3 35 43 PM

BadBlue exploit코드의 설정은 몇개 없다. Proxies, RHOST, RPORT, VHOST 있는데 Required 채워주면 공격을 실행할 있고 나머지는 진짜 옵션이다. Description 설명에 맞는 값을 채워 넣어주면 된다.

희생자 (172.16.219.131) : Windows XP Pro SP3, BadBlue Webserver 
공격자 (172.16.219.130) : Kali Linux, msfconsole 

- option 설정하기
msf exploit(exploit) > set “NAME” “VALUE”

Screen Shot 2015 03 26 at 3 37 56 PM

RPORT 디폴트로 80으로 설정되어 있고(보통 타겟 프로그램 디폴트 ) set 명령어로 RHOST 설정해 주었다. show options 확인할 있다.

BadBlue exploit에는 필요 없지만 target, payload 공격자의 입맛에 맞게 수정할 있다.

- payload 선택하기
msf exploit(exploit) > set PAYLOAD “PAYLOAD_NAME”

- target 목록 보기
msf exploit(exploit) > show targets

- target 선택하기
msf exploit(exploit) > set  target “NUM”

이렇게 타겟에 맞게 옵션을 설정 해준다. 설정이 완료되면 설정에 맞게 공격을 수행할 수 있다.

3. EXPLOIT


- exploit 하기
msf exploit(exploit) > exploit

exploit 명령어를 입력하면 .rb 파일의 exploit코드를 실행한다.

Screen Shot 2015 03 26 at 3 41 22 PM

exploit 이 실행되면서 몇개의 로그가 찍히고 Meterprerter session이 성립된다. exploit 코드가정상적으로 실행되어 payload까지 진입하고 payload에 의해서 세션 연결이 되었다. (다른 payload를 사용하면 session을 맺지 않고 공격할수도 있다.) 쉽게 말해 타켓프로그램의 취약점을 이용해서 넷버스의 서버파일을 실행한것과 비슷하다.
여튼 meterpreter > 쉘이 떨어지면 공격에 성공한 것이다. meterpreter 쉘은 다양한 공격 명령들을 수행할 수 있다. 여기서도 help (?) 명령어를 치면 공격 가능한명령어들을 확인할 수 있다.

Screen Shot 2015 03 26 at 3 42 50 PM

굉장히 다양한 공격을 수행할 수있다.
난 희생자의 컴퓨터정보를 얻어오는 sysinfo 명령어와 상대 모니터출력을 흠쳐오는 screenshot 명령어를 수행해 보았다.

Screen Shot 2015 03 26 at 3 53 27 PM

희생자의 컴퓨터 정보를 알아내고 스크린샷도 저장이 되었다.

LtSQfmZa

희생자의 모니터도 흠쳐 볼 수있다.

댓글 9개:

  1. 작성자가 댓글을 삭제했습니다.

    답글삭제
  2. ㅎㅎㅎ 감사합니다

    답글삭제
  3. 안녕하세요 처음 공부중인 학생입니다 ㅠㅠ
    혹시 rb파일을 어떻게 msf콘솔에 올리는지 알려주실수 있을까요?
    파일은 일단 칼리리눅스에 다운했는데 드레그앤 드랍이 안되네요..

    답글삭제