Kategoriler
Linux Metasploit Siber Güvenlik

Metasploit (Msfconsole) Komutları

Terminalde “msfconsole” komutu ile metasploit aracını çalıştırıyoruz. Eğer banner ve diğer detayları görmek istemezseniz “msfconsole -q” yazabilirsiniz.

“help” komutu ile tüm komutları ve ne işe yaradığını öğrenmeniz mümkün. Gelelim bu listedekilerin ne işe yaradığına. Hepsini aşağıda özet bir biçimde sıraladım. Liste kabarık farkındayım. Ancak bilmeniz gerekenleri kırmızı renkle özellikle belirteceğim. Ne kadar bilirseniz o kadar iyi ama tüm tabloyu ezberlemek de zorunda değilsiniz. Kullanımlarını da tablonun altında göreceksiniz.

Tüm Metasploit (msfconsole) Komutlarının Özet Tablosu

back : Geçerli içerikten geri git pushm :
banner : Metasploit bannerlarını görüntüler. (Şu açılışta karşınıza çıkan rastgele bannerlar.) quit : Konsoldan çıkış.
cd  : Geçerli çalışma dizinini değiştirir. (Linux kullanıcıları bilir.) reload_all : Tanımlanmış tüm modül yollarından tüm modülleri yeniden yükler
color : Msfconsole’da oluşan çıktı renk içerecekse etkinleştirebilirsiniz. rename_job : İşi yeniden adlandırır.
connect : Bir host ile iletişim kurar. resource : Bir dosyada saklanan komutları çalıştır
edit : Seçilen exploiti veya modülü editör ile düzenlemeyi sağlar. route : Trafiğin yönlendirilmesini sağlar.
exit : Konsoldan çıkış. save : Veriyi depolar, kaydeder.
get : search : Exploit, payload ve diğer modülleri aramanızı sağlar.
getg : sessions : Oturumları listeler.
go_pro : Metasploit web GUI’yi başlatır. set : Bir değişkeni, bir değeri ayarlamayı sağlar.
grep : Yine linux kullanıcıları bilir. Search komutu ile çıkan sonuçlardan yalnızca istediklerinizi çıktı yapar. setg : Bir değişkeni, bir değeri global olarak ayarlar. Her modül seçiminde mevcut değişken hep aynı kalır.
info : Modüller hakkında bilgi verir. show : Modülleri listeler.
irb : irb scripting modunu başlatır. sleep : Verilen zaman aralığında işlem yapmaz.
jobs : İşlemleri görüntüler ve yönetir. spool
kill : İşlemi kapatır. threads
load : Eklenti yüklemek için kullanılır. unload : Mevcut eklentiyi kaldırır.
loadpatch : Verilen kaynaktan exploit vb. modülleri yükler. unset : Ayarlanan değişkeni iptal eder.
makerc : Bir dosyaya başlandıktan sonra girilen komutları kaydeder. unsetg : Ayarlanan global değişkeni iptal eder.
popm : En son modülü yığından çıkartır ve aktif hale getirir. use : İsmi verilen modülün seçilip kullanılmasını sağlar.
previous : Mevcut modül olarak önceden yüklenen modülü ayarlar. version : Konsol kütüphanesi sürüm numarasını gösterir.

run ve exploit

Bir modüle dair tüm hazırlığınızı yaptınız. Ve sonunda sistemde çalıştırmak istiyorsunuz. Bu durumda run veya exploit komutunu girmeniz yeterli.

back

Belirli bir modülle çalışmanız bittikten sonra veya bir modülü hata ile seçtiniz ise “back” komutu ile geçerli içeriğin dışına çıkabilirsiniz. Elbette bunu yapmanız şart değil. Bir modülün içindeyken de başka bir modül seçebilirsiniz.

msf auxiliary ( ms09_001_write )> back

background

Bir sisteme sızdınız ve aktif bir oturum yakaladınız. Diğer taraftan başka bir sisteme girmeniz gerekiyor. Bu durumda yakaladığınız aktif oturumu kaybetmeden diğer işlemleri yapmak için “background” komutunu yazmanız yeterli. Arkaplanda erişiminiz devam eder. Tekrar o erişime ihtiyacınız olursa “sessions” komutunu kullanabilirsiniz. Yazının devamında onu da anlattım.

banner

Metasploit açılışta size çeşitli bannerlarından birini gösterir. Diğerlerini görmek isterseniz “banner” yazmanız yeterli.

check

Diyelim ki sistemde bir exploiti, bir zafiyeti denemek istiyorsunuz. Ancak gerçekten sisteme girmeyi değil de sadece kontrol etmeyi istiyorsunuz. Exploitin o sistemde çalışıp çalışmadığını anlamak için parametreleri ayarladıktan sonra check yazmanız yeterli.

msf exploit(ms08_067_netapi) > check
[*] Verifying vulnerable status... (path: 0x0000005a)
[*] System is not vulnerable (status: 0x00000000)
[*] The target is not exploitable.
msf  exploit(ms08_067_netapi) >

color

Metasploit’in çıktılarını renkli veya renksiz bir biçimde tercih edebilirsiniz. Dikkat ederseniz aşağıdaki görselde seçtiğimiz exploit düz renk oldu.

connect

Telnet bağlantısı yapar gibi metasploit üzerinden de başka bir uzak makineye msfconsole içinden bağlanabilirsiniz. SSL, proxy, pivoting ve dosya aktarımını destekler. Connect komutu ile ip adresi ve port numarası belirtmeniz yeterli.

msf > connect 192.168.1.1 23
[*] Connected to 192.168.1.1:23
DD-WRT v24 std (c) 2008 NewMedia-NET GmbH
Release: 07/27/08 (SVN revision: 10011)
DD-WRT login:

edit

Edit komutu $VISUAL veya $EDITOR ile mevcut modülü düzenlemenizi sağlar. Varsayılan olarak Vim’de açar.

msf exploit(ms10_061_spoolss) > edit
[*] Launching /usr/bin/vim /usr/share/metasploit-framework/modules/exploits/windows/smb/ms10_061_spoolss.rb

##
# This module requires Metasploit: http//metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

require 'msf/core'
require 'msf/windows_error'
...(kodlar devam etmekte)

grep

Linux’taki grep komutuna oldukça benziyor. Örneğin arama işlemini grep ile gerçekleştirerek arama sonuçları içinde kısıtlamalar yapabilirsiniz. Aşağıda oracle aranmıştır ve yalnızca içinde http geçen modüller listelenmiştir.

msf > grep http search oracle

info

Bu komut sayesinde kullanmak istediğiniz modüle dair birçok bilgiye sahip olabilirsiniz.

  • Yazar ve lisans bilgileri
  • Güvenlik açığı referansları (örneğin: CVE, BID, vb.)
  • Modülün sahip olabileceği herhangi bir yük sınırlaması
msf  exploit(ms09_050_smb2_negotiate_func_index) > info exploit/windows/smb/ms09_050_smb2_negotiate_func_index 

       Name: Microsoft SRV2.SYS SMB Negotiate ProcessID Function Table Dereference
     Module: exploit/windows/smb/ms09_050_smb2_negotiate_func_index
    Version: 14774
   Platform: Windows
 Privileged: Yes
    License: Metasploit Framework License (BSD)
       Rank: Good

Provided by:
  Laurent Gaffie <[email protected]>
  hdm <[email protected]>
  sf <[email protected]>

Available targets:
  Id  Name
  --  ----
  0   Windows Vista SP1/SP2 and Server 2008 (x86)

Basic options:
  Name   Current Setting  Required  Description
  ----   ---------------  --------  -----------
  RHOST                   yes       The target address
  RPORT  445              yes       The target port
  WAIT   180              yes       The number of seconds to wait for the attack to complete.

Payload information:
  Space: 1024

Description:
  This module exploits an out of bounds function table dereference in 
  the SMB request validation code of the SRV2.SYS driver included with 
  Windows Vista, Windows 7 release candidates (not RTM), and Windows 
  2008 Server prior to R2. Windows Vista without SP1 does not seem 
  affected by this flaw.

References:
  http://www.microsoft.com/technet/security/bulletin/MS09-050.mspx
  http://cve.mitre.org/cgi-bin/cvename.cgi?name=2009-3103
  http://www.securityfocus.com/bid/36299
  http://www.osvdb.org/57799
  http://seclists.org/fulldisclosure/2009/Sep/0039.html
  http://www.microsoft.com/technet/security/Bulletin/MS09-050.mspx</[email protected]></[email protected]></[email protected]>

jobs

Arkaplanda çalışan modülleri gösterir. “jobs -l” komutu tüm işleri listeler. “jobs -K” tüm işleri kapatır.

kill

“kill 2” formatında kullanılır. “jobs” komutu ile listelenen işlerden istediğiniz birini kapatabilirsiniz. İş numarasını kill komutu ile kullanmanız yeterli.

msf exploit(ms10_002_aurora) > kill 0
Stopping job: 0...

[*] Server stopped.

search

Metasploit üzerinde bir işletim sistemi, bir servis veya bir modül tipi arıyorsunuz. Search komutunu kullanabilirsiniz.

  • “search platform: linux” yazmanız halinde linux platformunda işe yarar modülleri listeler.
  • “search type: auxiliary” şeklinde aramalarla modül tipi belirtebilirsiniz.
  • “search name: mysql” komutu ile mysql geçen modüllerin listelenmesini sağlarsınız.
  • “search author: dookie” komutu ile modülleri, yazan kişiye göre arayabilirsiniz.
  • “search cve(edb,cve,osvdb):****” Bu formatta istediğiniz numara ile arama yapabilirsiniz.
msf > search cve:2011 author:jduck platform:linux

Matching Modules
================

   Name                                         Disclosure Date  Rank     Description
   ----                                         ---------------  ----     -----------
   exploit/linux/misc/netsupport_manager_agent  2011-01-08       average  NetSupport Manager Agent Remote Buffer Overflow

sessions

Bir exploit sayesinde sisteme girdiniz diyelim. Hatta birden fazla sisteme girdiniz. Bu durumda herhangi bir sisteme geçiş yapmak isterseniz “sessions -l” komutu ile aktif oturumları listeleyebilirsiniz. Daha sonra meterpreter çalıştırmak için “sessions -c <id>” komutu girmeniz yeterli. Veya o oturuma geçmek için “sessions -i <id>” komutunu girebilirsiniz.

 

msf exploit(3proxy) > sessions -l

Active sessions
===============

  Id  Description    Tunnel
  --  -----------    ------
  1   Command shell  192.168.1.101:33191 -> 192.168.1.104:4444
msf exploit(3proxy) > sessions -i 1
[*] Starting interaction with 1...

C:WINDOWSsystem32>

set

Bir modül seçtiniz ve kullanmaya başladınız. Gerekli parametreleri girmek istiyorsunuz. Bu durumda “set” komutunu kullanırsınız. Örnek vermek gerekirse : “set RHOST 127.0.0.1”

msf auxiliary(ms09_050_smb2_negotiate_func_index) > set RHOST 172.16.194.134
RHOST => 172.16.194.134

unset

Seçtiğiniz modülün parametresini hatalı girdiniz. Veya o parametreyi boş bırakmak istiyorsunuz. Bu durumda “unset” komutu işinize yarar. Örnek vermek gerekirse : “unset RHOST”. Diğer yandan “unset all” komutu ile modüle ait girdiğiniz tüm parametreleri sıfırlayabilirsiniz.

msf > unset THREADS
Unsetting THREADS...
msf > unset all
Flushing datastore...

setg

Bir hedefe karşı birden fazla modülü test edeceksiniz. Ancak sürekli olarak RHOST girmekten sıkıldınız diyelim. (Bu başka bir parametre de olabilir.) Bu durumda global bir değer atarsınız ve siz aksini söyleyinceye kadar metasploit, hangi modülde RHOST varsa hepsine sizin bir defa verdiğiniz değeri girer. Örneğin : “setg RHOST 127.0.0.1”

show

Bu komut göster anlamına gelmektedir. Aşağıda pekçok örnekte kullandık. Onları incelediğinizde daha iyi anlayacaksınız.

payload

Birçok payload mevcut. Hangisini nerede kullanacağımızı bilemiyoruz. Bu durumda mevcut exploiti seçtikten sonra show payloads yazdığımda exploite uygun payloadları bana listeleyecektir.

msf  exploit(ms08_067_netapi) > show payloads

Compatible Payloads
===================

   Name                                             Disclosure Date  Rank    Description
   ----                                             ---------------  ----    -----------
   generic/custom                                                    normal  Custom Payload
   generic/debug_trap                                                normal  Generic x86 Debug Trap
   generic/shell_bind_tcp                                            normal  Generic Command Shell, Bind TCP Inline
...snip...

options

Bir modülü seçtiniz ve kullanmak için hangi parametrelere ihtiyacınız var bilmek istiyorsunuz. “show options” veya “options” yazdığınızda girmeniz gereken parametreler size listelenir. “Required” kısmının altında yes yazanları girmek zorundasınız. No yazanları girmeseniz de modül çalışmayı dener. Ancak no yazanları girerseniz modülün gücüne güç katarsınız. Çalışma imkanı artacaktır.

msf exploit(ms08_067_netapi) > show options

Module options:

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOST                     yes       The target address
   RPORT    445              yes       Set the SMB service port
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)

Exploit target:

   Id  Name
   --  ----
   0   Automatic Targeting

use

Bir modül seçtiğinizde onu kullanmaya başlamanız için use komutunu kullanıp modülün adresini yazarsınız.

msf > use dos/windows/smb/ms09_001_write

Tab Tuşu

Tab tuşu linuxta büyük kolaylık. Kelimelerinizin birkaç harfinden sonra tab tuşuna basmanız halinde devamı otomatik tamamlanır. Aynı harflerle başlayan birden fazla komut varsa arka arkaya taba basın ve size hepsini sıralasın. Bu sayede tam anımsayamadığınız komutları da hatırlayabilirsiniz.

Bu yazı çok büyük oranda Offensive Security’nin metasploit klavuzundan çevrilmiştir. Açıklamalarda farklılıklar söz konusu. Bire bir çeviri değil.

https://www.offensive-security.com/metasploit-unleashed/msfconsole-commands/