Security/Hacking

메타스플로잇, 메타스플로이트, metasploit

soccerda 2012. 8. 4. 20:44
반응형

얼마전 국내에 발간된 메타스플로잇 교제 원서자료입니다.

 

 

Metasploit_The_Penetration_Tester_Guide.pdf

 

기본 명령어

 

1 use

use 명령을 이용하면 원하는 모듈을 선택할 수 있고 그 명령과 관련된

커맨드로 들어간다.

참고로 생각이 나지 않을 시 탭을 두번 연달아 누르면 사용 가능한 모듈 이름을 확인할 수 있다.

2back

특정 모듈작업을 완료했거나 실수로 잘못된 모듈을 선택했다면 현재 선택된 모듈

밖으로 나가야 한다. 이 때 사용하는 것이 back 이다.

3 check

타켓의 시스템이 실제로 취약점을 가지고 있고 공격이 가능할 것인가

체크하는 명령어이다.

취약한 경우!!

취약하지 않은 경우!!

4 connect

msfconsole에 내장된 소형 netcat이라고 보면 된다.

ssl과 프록시를 지원하고 ip와 port 정보를 넣고 connect를 하면 연결할 수 있다.

netcat, ftp, telnet 등 원격 호스트에 연결할 수 있다.

5 irb

irb는 루비쉘을 띄워준다.

matasploit script를 만들 수 있고 또한 프레임 워크의 내부를 이해하는데 유용하다.

6 jobs

jobs는 백그라운드로 실행되는 모듈의 작업을 도와준다.

옵션을 이용해 목록을 볼 수도 있고 종료할 수도 있다.

7.1 load

load는 플러그인 디렉토리에서 플러그인을 로드하는 명령어이다.

기본 플러그인 디렉토리는 /opt/framework3/msf3/plugins 이다.

더 많은 정보는 help 창을 확인하면 된다.

7.2 unload

load명령어로 로딩된 플러그인을 제거할 때 사용하는 명령어이다.

7.3 loadpath

metasploit은 정의된 디렉토리에서 여러가지 정보를 가져오는데

제 3의 디렉토리에서 exploit, encoder, payload 등의 정보를 가져올 때

사용하는 명령어이다.

8. resource

resource명령은 msfconsole에 리소스파일이나 배치파일을 로드해 실행시킬 수 있다.

예를 들면 karmetasploit을 로드해 여러 모듈을 동시다발적으로 사용하거나

배치파일을 만들어낼 수도 있다.

9. route

route명령은 공격이 어느정도 진행되어 meterpreter 등의 쉘에서 사용하는 명령어이다.

victim의 route table을 수정할 때 사용한다.

사용법은 -h 옵션을 이용해 확인하면 된다.

위와 같이 route 또는 route list 라는 명령으로 victim의 route table을 확인할 수 있다.


10 info

이 명령은 모듈의 여러가지 정보를 볼 때 사용한다.

보통 옵션이나 취약점을 가지고 있는 시스템의 종류 등을 확인할 때 유용하게 사용된다.

11 show

show 명령은 각종 정보의 리스트를 보고 싶을 때 사용한다.

show auxiliary , show exploits , show payloads , show encoders , show nops

위에 나열한 것처럼 사용할 수 있다.

그리고 모듈 선택 후 쉘에서는 추가적으로 다음 명령을 더 사용할 수 있다.

show payloads , show options , show targets , show advanced

자세히 보면 show payloads 등은 처음에 나열한 목록에도 있는데

모듈을 선택하기 전의 쉘과 선택 후의 쉘에서 의미가 다르다.

모듈 선택 전 쉘에서는 전체 리스트가 출력되고

모듈 선택 후 쉘에서는 해당 모듈에서 사용 가능한 정보가 출력된다.

자주 쓰는 것은 show options이다.

해당 모듈의 옵션을 보는 것인데 모듈에 필요한 아규먼트등 모듈 정보 및 현재

설정된 내용등을 확인할 수 있다.

12.1 set

set은 자주 쓰는 명령이다.

모듈 사용에 필요한 아규먼트나 payload 등을 설정할 때 사용한다.

위 사진은 간단한 예를 설명하기 위한 사진이다.

특정 모듈의 옵션을 확인하고 set payload라는 명령을 이용해 payload를 설정한 뒤

다시 show options 명령을 이용해 내용을 확인해 보면 payload option이 추가된

것을 확인할 수 있다.

다시 말해 payload가 설정된 것이다.

그리고 set 명령을 이용해 각 아규먼트를 설정한다.

그리고 다시 show options로 확인해보면 각 아규먼트가 셋팅되어 있는 것을

볼 수 있다.

12.2 unset

unset은 설정된 아규먼트를 해제하는 명령어이다.

12.3 setg

set명령으로 여러가지 설정을 해도 모듈을 빠져나가면 설정 내용들이 사라진다.

여러 모듈을 동시다발적으로 사용할 시 모듈의 아규먼트를 계속 설정한다는 것은

귀찮은 일 중 하나일 것이다.

setg는 전역변수에 설정하는 방법으로 모듈을 빠져나가도 아규먼트 설정값이

없어지지 않는다.

12.4 unsetg

unsetg 명령으로 setg 명령으로 설정된 값들을 해제할 수 있다.

13 search

search 명령은 말 그대로 검색 명령어이다.

msfconsole은 광범위한 정규 표현 기반의 검색 기능이 포함되어 있다.

위의 옵션을 이용해 여러가지 정보를 검색할 수 있다.

옵션 없이 사용하면 전체에서 검색한다.

그리고 옵션과 함께 검색하는 방법은 다음과 같다.

search option:word

그리고 search cve:2011 platform:linux 와 같이 여러 옵션을 한번에 사용할 수도 있다.

14 sessions

여러 공격이 동시에 진행되면 여러 쉘이 필요하다

하지만 제공하는 쉘은 하나이고 이 하나의 쉘로 여러 공격을 처리해야 한다.

이 때 세션이라는 개념으로 맺어진 여러 세션을 처리한다.

옵션은 위와 같다.

위의 사진은 공격중인 세션을 background 명령으로 뒤로 보내고 원래의 쉘로 돌아온 뒤

sessions 라는 명령을 이용해 -l 옵션으로 리스트를 보고 -i 옵션으로 다시

선택을 해 돌아오는 예제의 사진이다.

15 exploit

이 명령어는 공격을 시작하는 명령이다.

공격 형태에 따라서 run이라는 명령을 사용할 수도 있다.

 

 

업데이트 하기

 

metasploit은 꾸준히 업데이트가 진행된다.

최신 보안으로 취약점 분석을 하려면 당연히 업데이트를 해주어야 한다.

metasploit을 업데이트 하고 싶다면 간단히 할 수 있다.

프레임워크안에 msfupdate가 있고 실행하면 업데이트가 진행된다.

그런데 물어보는 것이 있다.

업데이트를 할 때 인증서를 사용하는데 거부(R), 임시승인(t), 영구승인(p) 이다

필자는 p를 이용해 영구 승인 하겠다. 다음에 업데이트 할 때 또 물어볼 것이고

그때마다 답변하기 귀찮으니까..

엔터치고 진행한다.

그러면 이런 식으로 업데이트가 진행된다.

업데이트가 완료되었다.

msfconsole 을 이용해 콘솔환경으로 들어가면 정보를 볼 수 있다.

전 보다 exploit 이나 payload 등등이 늘어 있는 것을 확인할 수 있다.

반응형

'Security > Hacking' 카테고리의 다른 글

Nmap 을 이용한 포트스캔  (0) 2012.08.04