기본 콘텐츠로 건너뛰기

Metasploit 기초

Metasploit은 콘솔, 커맨드라인, 그래픽을 지원하는 다수의 인터페이스를 제공한다.
함께 제공되는 유틸리티는 Metasploit 프레임워크의 내장 기능에 직접 접근할 수 있다.

1-1 MSFconsole


가장 많이 사용되고 거의 모든 기능을 쓸 수 있다.
Figure 1 Kali Linux 위치
Figure 2 MSFconsole 실행 화면

1-2 MSFcli


MSFconsole은 매우 다른 프레임워크 접근 방식을 사용한다.
  1. MSFcli는 다른 콘솔 도구와 같이 스크립트 수행과 명령 해석 기능에 중점을 둠.
  2. 프레임워크의 고유한 인터프리터를 사용하지 않고 커맨드라인에서 직접 수행된다.
  3. exploit과 보조 모듈을 실행시킬 수 있으므로 새로운 exploit을 개발하거나 모듈을 테스트할 때 유용하다.
위치는 MSFconsole과 같은 위치에 위치하고 있다. 다음은 MSFcli 실행화면이다.
Figure 3 MSFcli 실행 화면

1-3 MSFcli를 이용한 bind_tcp 공격


MSFcli를 이용하여 bind_tcp를 이용하여 공격을 수행한다. 다음의 실습 환경에서 공격을 수행했다.
  1. Kali Linux 1.10 ver (공격자)
  2. Window XP pro SP2 (공격 대상)
공격을 수행하는데 있어 XP의 방화벽이 꺼져있는 상태로 공격을 수행했다. 실제로 방화벽이 꺼진 상태의 취약한 시스템은 많이 있다고 책에서는 설명한다.
공격에 이용되는 모듈은 ms_08_067_netapi 모듈이다.
모듈을 사용하는 방법을 모른다면 O 옵션을 이용하여 모듈 사용법을 조회 할 수 있다.
Figure 4 ms_08_067_netapi 모듈의 사용법
이 모듈은 3가지 옵션으로 RHOST, RPORT, SMPIPE를 제공하며 P를 덧붙여 페이로드를 확인할 수 있다.
Figure 5 ms_08_067_netapi 페이로드 설명
사진에 나타나있는 페이로드 보다 더 많은 페이로드가 제공되니 직접 확인 바란다.
exploit에서 요구하는 옵션과 페이로드의 선택을 하고 난 뒤 E 옵션으로 공격을 수행한다.
Figure 6 ms_08_067_netapi 모듈을 이용한 공격 수행
공격 대상인 XP의 명령 프롬프트를 전달 받았으므로 공격은 성공했다.

1-4 Armitage


라파엘 머지에 의해 만들어진 완전한 대화형 GUI인 Armitage는 풍부한 기능을 무료로 사용 가능하다는 점이 매우 인상적이다.
실행 하기 전 PostgreSQL의 서비스를 시작해야 한다.
Figure 7 PostgreSQL 시작 명령
시작한 후 Armitage 를 시작하면 다음 과 같은 화면에서 connect 를 눌러 실행한다.
Figure 8 Armitage 연결 화면
Figure 9 Armitage 실행 화면

2. Metasploit 유틸리티


Metasploit 유틸리티는 특정 상황에서 유용하게 사용될 수 있게 프레임워크의 특별한 기능과 직접 연결된 인터페이스다.

2-1 MSFpayload


Metasploit의 구성 요소인 MSFpayload는 Shell Code를 생성하고 실행하며, 프레임워크의 외부 공격을 훨씬 유용하게 만들어준다.
유틸리티의 위치는 Kali Linux 기준 /usr/share/framwork2/msfpayload 에 위치해 있다.
지원하는 옵션 등 사용법은 다음과 같다.
Figure 10 msfpayload 사용법
MSFcli와 마찬가지로 페이로드 모듈에서 원하는 옵션으로 필수 변수나 선택적인 변수와 함께 S옵션을 이용하여 사용법을 참조한다.
Figure 11 win32_reverse 모듈의 사용법

2-2 MSFencode


MSFpayload가 생성한 shell code는 기능은 완전하지만, 문자열 끝에 밑의 사진과 같은 여러 널문자가 포함되어 있다.
Figure 12 MSFpayload Shell Code
이러한 Shell Code에서의 널 문자는 결국 페이로드를 못 쓰게 만들어버린다.
또한 Shell code를 평 문으로 네트워크로 보내면 침입 탐지시스템(IDS)과 Antivirus 소프트웨어에 의해 탐지될 수 있다.
이 문제를 해결하기 위해 Metasploit 개발자는 MSFencode를 이용하여 문자를 encoding 할 수 있도록 지원하며, 이를 통해 비정상적인 문자로 인한 페이로드의 영향을 없애고 Antivirus 와 IDS의 탐지를 회피할 수 있다.
MSFencode에서 지원하는 옵션은 다음과 같다.
Figure 13 MSFencode 사용법
MSFencode는 특별한 상황을 위해 다수의 서로 다른 인코더를 포함하고 있다. 사용 가능한 인코더는 –l 옵션으로 확인 가능하다. 페이로드는 신뢰성 순서로 순위가 결정 된다는 점을 기억해 두자.

2-3 Nasm Shell


Nasm_shell.rb 유틸리티는 어셈블리 코드를 이해하고자 할 때 유용하게 사용된다.
Kali Linux 기준으로 Nasm_shell.rb 유틸리티의 위치는 다음과 같다. Jmp esp 명령에 대한 연산 코드도 같이 요청해 보았다.
Figure 14 Nasm_shell.rb 위치와 사용 

3. Metasploit Express와 Pro


Metasploit express와 pro버전은 상용 버전으로 우리가 현재 쓰고 있는 Kali Linux 1.10 ver에서 제공되는 커뮤니티 버전과는 다른 기능들이 있다.
기본적인 차이점은 다음과 같다.
  1. 커뮤니티 버전에서 지원하지 않는 도구들의 제공
  2. Pro 버전에서만 제공되는 보고서 작성 기능
상용버전의 특장점은 다음과 같다.
  1. 전문적인 모의해킹 전문가를 위해 만들어짐.
  2. 반복적인 작업을 줄여 업무 속도를 향상시켜준다.
  3. 자동화로 시간을 절약해줌으로써 구입 가격을 정당화한다.

댓글

이 블로그의 인기 게시물

SSH 크랙 , 보안 :: 메두사(Medusa) [소개, 사용법 ] [패스워드 크래킹]

외부에서 서버를 관리하기 위해서는 Telnet 과 같은 원격 쉘을 이용하게 됩니다. 이런 원격 쉘은 시스템에 직접 접근할수 있기 떄문에 특별한 관리와 보안이 필요합니다. 그래서 나온것이 SSH 바로 보안 쉘 입니다. 기본적으로 이동하는 패킷이 암호화 처리 되기 떄문에 TELNET보다는 매우 안전하다고 볼수 있습니다. 오늘은 이 SSH를 크랙하는 방법과 대책에 대해서 약간 알아보겠습니다. 이번에 소개할 툴은 메두사 입니다. 메두사는 Broute Force  공격에 사용되는 툴입니다. 설치 데비안계열 ( 데비안 , Ubuntu , 쿠분투 주분투 등등) 에서는 apt-get install medusa 로 간단하게 설치 할 수 있습니다. 메두사로 SSH서버를 크랙하는 방법에 대해 알아보겠습니다. 메두사의 메뉴얼입니다. 구조는 간단합니다. 상대 SSH서버를 확인한 후에 메두사로 무차별 대입공격을 시도합니다. 물론 상대 시스템에는 로그가 남을수 있겠지요.  일단 실험에 쓰일 노트북(공격자) 데스크탑(피해자) 입니다. 공격자 OS : Debian Net : wlan0 IP   : 192.168.0.26 피해자 OS : BackTrack4 Net : eth0 IP   : 192.168.0.3 ssh :  OpenSSh ( SSH1) 실험에 쓰일 피해자(backTrack)입니다.  현재 SSH서버를 가동하고 아무작업없이 대기중입니다. 공격자는 포트스캐너와 각종 툴들을 이용해 정보를 수집후  피해자가 SSH서버를 이용한다는것과 OpenSSH(SSH1)을 사용한다는 것을 알아냇다는 전제하에  시작하겠습니다. 공격자는 메두사 툴을 이용해 BruteForce공격을 시작합니다. medusa -h 192.168.0.3 -u root -P /home/noon/NOON/pass.txt -M ssh 사용된 옵션을 살펴 보자면 -h   :   호스트 주소입니다.  고로    타켓 주소 -u   :   크랙할 유저의 이름입니다.     유저 목록을 파일로 만들어서 사용할

OllyDbg 64bit 실행방법

OllyDbg 1.1 은 기본적으로 64bit 환경을 지원하지 못합니다. 책의 디버깅 실습은 거의 대부분 OllyDbg 를 이용해서 진행됩니다.  그러나 OllyDbg 1.1 은 64bit 환경을 지원하지 못합니다.  <그림 1. Windows 7 64bit 에서 OllyDbg 1.1 실행시 예외 발생> 64bit OS 에서 "2장 Hello World 리버싱" 실습 예제 파일 HelloWorld.exe 를 OllyDbg 1.1 로 실행시키면 <그림 1>과 같이 예외가 발생하면서 ntdll.dll 모듈 영역의 코드에서 멈춰버립니다. (이것은 OllyDbg 1.1 의 버그입니다.) 64bit 환경에서 OllyDbg 사용할 수 있는 2 가지 방법 #1. 64bit OS + OllyDbg 2.0 OllyDbg 2.0 버전에서는 64bit에서 정상 실행 되지 않는 버그가 수정되었습니다. 다운로드 링크 :  http://www.ollydbg.de/odbg200.zip * 참고 최신 버전 OllyDbg 2.01 beta 2 는 실행 과정에 약간의 문제가 있습니다. 문제가 해결될 때까지는 OllyDbg 2.0 을 사용해 주시기 바랍니다. 위 링크에서 파일을 다운받아 압축을 해제한 후 실행하면 <그림 2> 와 같은 화면이 나타납니다. <그림 2 - Windows 7 64bit 에서 OllyDbg 2.0 으로 HelloWorld.exe 를 띄운 화면> <그림 2>의 화면을 책의  <그림 2.3>  처럼 보이게 하려면 다음과 같이 작업해 주시면 됩니다. 1) 내부의 CPU 윈도우를 최대화 시킵니다. 2) Code/Register/Dump/Stack Window 의 폰트를 변경합니다.    (각각의 창에서 마우스 우측 메뉴 - Appearance - Font - System f

인터넷 웹페이지 디버깅 피들러(fiddler) 사용법

인터넷 디벌깅 툴 피들러 입니다. 개발자들은 인터넷 디버깅 툴을 많이 사용하고 있는데요 인터넷 익스플러워 , 사파리 구글크롬등 디버깅 툴은 내장되어 있습니다.  하지만 원하는 값을 얻기 어렵거나 사용하기 어려운 점도 있습니다. 그래서 사용하기도 간편하고 필요한 기능도 많도 원하는 값을 쉽게 확인 할수 있는 디버깅 툴을 소개 해드리려 합니다. 알고 계시는 분도 많겠지만 피들러 (fiddler) 라는 툴입니다.  피들러에 대하 알아보도록 하겠습니다.  피들러(Fiddler) 설치 피들러 설치를 하기 위해 아래 사이트에 접속합니다.   http://www.telerik.com/fiddler 사이트에 접속하시면 FreeDownload 버튼이 보입니다. 클릭을 해서 피들러 설치를 진행합니다. ▶ 피들러는 닷넷 프레임워크를 사용하는데요 window 7 이상 제품군이시면  Fiddler for NET4을 선택하시고 미만이면 .net2를 선택 하세요  이제 Download Fiddler를 선택합니다.  ▶ 피들러 설치 진행화면이 나옵니다. I Agree를 클릭합니다.    ▶ 설치할 폴더를 선택 후 Install을 클릭합니다.    ▶ 설치가 완료되면 Close 를 클릭합니다.    ▶ 설치가 완료되면 브라우저를 새로 실행 하시고 도구> Fiddler를 선택합니다. 도구메뉴가 안보이시면 Alt를 누르시면 보입니다.    ▶ 우측에도 피들러 메뉴가 있습니다.  도구를 클릭 후 피들러를 클릭합니다.   ▶ 실행이 되면 아래와 같은 화면이 나오는데요  좌측 하든을 보시면 Capturing 가 보입니다. 캡쳐를 진행하는 중이구요 키보드중 F12키를 누르면 캡쳐 중지 다시 F12키를 누르면 캡쳐가 진행됩니다.  원하는 부