Bash Scripting Temelleri

Kendine saygısı olan her hackerin komut dosyası yazabiliyor olması gerekmektedir. Siz değerli SpySecurity.net takipçilerine bu serimizde hackerlar için programlama dillerinin temellerinden bahsedeceğiz. Faydalı olacağını umuyoruz.

Bir bilgisayar korsanı olarak, çoğu zaman, bazen birden çok araçtan gelen birden çok komutun kullanımını otomatikleştirmemiz gerekir. Seçkin bir bilgisayar korsanı olmak için, yalnızca gelişmiş shell komut dosyası oluşturma becerilerine sahip olmanız gerekmez, aynı zamanda Ruby (Metasploit açıkları Ruby’de yazılmıştır), Python (birçok bilgisayar korsanlığı aracı vardır) gibi yaygın olarak kullanılan komut dosyası dillerinden birinde komut dosyası yazma becerisine sahip olmanız gerekir.

Temel shell komut dosyası oluşturma ile başlayacağız, gelişmiş shell komut dosyası oluşturmaya geçeceğiz ve ardından ilerledikçe bilgisayar korsanlığı araçları geliştiren bu komut dosyası dillerinin her birine geçeceğiz. Nihai hedefimiz, kendi istismarlarımızı geliştirebilmek için yeterli komut dosyası yazma becerileri geliştirmek olacaktır.

1 – Shell Türleri

Shell, kullanıcı ile işletim sistemi arasındaki bir arayüzdür. Bu arayüz, komutları, programları çalıştırmamızı, dosyaları değiştirmemizi vb. sağlar.

Linux için bir dizi farklı shell vardır. Bunlara Korn shell’i, Z shell, C shell ve Bourne again shell yani BASH dahildir.

BASH shellneredeyse tüm Linux ve UNIX dağıtımlarında (Mac OS X ve Kali dahil) mevcut olduğundan, burada yalnızca BASH kabuğunu kullanacağız.

BASH shell neredeyse tüm Linux ve Unix dağıtımlarında (Mac OS X ve Kali dahil) mevcut olduğundan, bu yazımızda yalnızca BASH shell kullanacağız.

2 – BASH Temelleri

Bir shell betiği oluşturmak için bir metin düzenleyicisi kullanacağız. Linux’ta vi, vim, emacs, gedit, kate vb. olmak üzere herhangi bir metin düzenleyiciyi kullanabilirsiniz , ancak bu derslerde Pluma kullanacağım. Farklı bir düzenleyici kullanmak , komut dosyanızda veya işlevselliğinde herhangi bir fark yaratmamalıdır.

3 – Dahili BASH komutları

BASH shell komut dosyasından herhangi bir sistem komutunu, yardımcı programı veya uygulamayı çalıştırabilmenin yanı sıra, BASH kabuğu kendi komutlarından bazılarını içerir. Bunlar:

break, cd, continue, eval, exec, exit, export, getopts, hash, pwd,
readonly, return, set, shift, test, times, trap, umask and unset,alias, bind,builtin, command, declare, echo, enable, help, let, local, logout, printf, 
read, shopt, type, typeset, ulimit and unalias

Bu komutlar dahili BASH komutlarıdır.

4 – Yorum Satırları

Herhangi bir programlama dilinde olduğu gibi, bash yazarken de yorum satırı eklemek isteyebiliriz. Yorumlar sadece kendimize veya kodu okuyan başka birine, komut dosyasıyla veya komut dosyasının o bölümüyle ne yapmaya çalıştığımıza dair notlardır. Bu notlar veya “yorumlar” terminal tarafından okunmaz veya yürütülmez.

BASH kabuğu, “#” ile bir satırın önüne geçerek yorumları etkinleştirir, bu nedenle, bunun benim ilk betiğim olduğunu belirtmek istersem, metin düzenleyicimde yazabilirim;

#Bu benim ilk kodlamam!

Yorumlayıcı “#” işaretinden sonraki her şeyi yok sayar ve ardından bir sonraki satıra geçer.

5 – İlk Programlama

İlk scriptimiz için ekrana “SpySecurity.net – Siber Güvenlik Blog” yazan bir mesaj döndüren basit bir script ile başlayacağız.

Shebang veya “#!” yazarak başlıyoruz. Bu, işletim sistemine, shebang’ı takip eden her şeyin, komut dosyamız için kullanmak istediğimiz yorumlayıcı olduğunu söyler.

Ardından , işletim sisteminin BASH kabuk yorumlayıcısını kullanmasını istediğimizi belirten /bin/bash ekleriz. Daha sonraki derslerde göreceğimiz gibi, PERL veya Python gibi diğer yorumlayıcıları kullanabiliriz, ancak burada BASH yorumlayıcısını kullanmak istiyoruz.

#! /bin/bash

Ardından, Linux’ta sisteme basitçe tekrarlamasını veya aşağıdakileri monitörümüze (stdout) geri “eko” yapmasını söyleyen bir komut olan echo’yu kullanıyoruz. Bu durumda ekrana ” SpySecurity.net – Siber Güvenlik Blog” yazdırılmasını istiyoruz. “Geri yankılanmak” istediğimiz metin veya mesajın çift tırnak içinde olduğuna dikkat edin.

echo “SpySecurity.net – Siber Güvenlik Blog

Dosyayı bash.sh olarak kaydettik ve metin düzenleyicisinden çıktık.

6 – Yürütme İzinlerini Ayarlamak

Dizinimize ls -la yazarak yeni dosyamızdaki izinlere bakalım.

Gördüğünüz gibi bash.sh dosyamız rw-r–r– (644) izinlerine sahip. Bu dosyanın sahibi yalnızca okuma (r) ve yazma (w) izinlerine sahiptir, ancak yürütme (x) izinleri yoktur. Bu betiği çalıştırmak için bize yürütme izinleri verecek şekilde değiştirmemiz gerekiyor. Bunu chmod komutu ile yapıyoruz. Sahip, grup ve tüm yürütme izinlerini vermek için şunu yazıyoruz:

chmod 755 bash.sh

Artık dosya üzerinde uzun bir listeleme (ls -l) yaptığımızda, yürütme izinlerine sahip olduğumuzu görebiliriz.

7 – Bash Betiğini Çalıştırmak

Basit betiğimizi çalıştırmak için şunu yazmamız yeterlidir: ./bash.sh

Dosya adından önceki ./ , sisteme bu betiği geçerli dizinde yürütmek istediğimizi söyler. Bu, bu dosya için PATH değişkenindeki dizinlere bakmamak, bunun yerine sadece mevcut dizine bakmak ve bash.sh’ı çalıştırmak anlamına gelir.

Daha sonra enter tuşuna bastığımızda, çok basit komut dosyamız terminalde çalışır.

SpySecurity.net – Siber Güvenlik Blog

Başarılı! Az önce ilk basit senaryomuzu tamamladık!

8 – Değişkenleri Kullanmak

Şimdi elimizde basit bir script var. Tek yaptığı bir mesajı geri yankılamak (echo ile). Daha gelişmiş komut dosyaları oluşturmak istiyorsak, muhtemelen bazı değişkenler eklemek isteyeceğiz.

Değişkenler, basitçe, bir şeyi bellekte tutabileceğimiz bir depolama alanıdır. Bu “bir şey” bazı harfler veya kelimeler (dizeler) veya sayılar olabilir. Değişebilecek değerlere sahip bir komut dosyasına işlevsellik eklemeye yardımcı olabilir.

Belirli bir bağlantı noktası açık olan savunmasız makineleri taramak için nmap kullanmak için daha önce yazdığım komut dosyasına geri dönelim. Unutmayın, ünlü bilgisayar korsanı Max Butler, milyonlarca kredi kartı numarasını hackleyebildiği Aloha POS’lu sistemleri bulmak için benzer bir komut dosyası kullanmıştı.

Gördüğünüz gibi, bu komut dosyası, 5505 numaralı bağlantı noktasını (Aloha bağlantı noktası teknik destek için açık bırakıldı) arayan bir dizi IP adresini taramak ve ardından bu bağlantı noktası açıkken tüm IP adreslerini içeren bir rapor oluşturmak için yazılmıştır. IP adresi aralığı, komut dosyasına “hard coded (sabit kodlama)” ve yalnızca komut dosyası açılıp düzenlenerek değiştirilebilir.

Bu komut dosyasını, bizden veya herhangi bir kullanıcıdan taranacak IP adresleri aralığını ve aranacak bağlantı noktasını soracak şekilde değiştirmek istersek ne olur? Bizden bu değerler istenseydi ve daha sonra komut dosyasına girilseydi, kullanımı çok daha kolay olmaz mıydı? Yani kullanıcıdan input istenseydi sanırım daha kolay olurdu, her seferinde kodu düzenlemek zorunda kalmazdık.

Bunu nasıl yapabileceğimize bir göz atalım.

9 – Komut dosyasına input ve değişkenler eklemek

İlk olarak, belirtilen alt ağı bir IP aralığı ile değiştirebiliriz. Bunu, ” FirstIP ” adlı bir değişken ve ardından ” LastIP ” adlı ikinci bir değişkenle yapabiliriz (değişkenin adı önemsizdir, ancak en iyi uygulama, ne tuttuğunu hatırlamanıza yardımcı olacak bir değişken adı kullanmaktır).

Ardından, port numarasını “port” adlı bir değişkenle değiştirebiliriz . Bu değişkenler, kullanıcının taramayı çalıştırmadan önce gireceği bilgileri tutacak depolama alanları olacaktır.

Ardından, kullanıcıdan bu değerleri istememiz gerekiyor. Bunu , bash.sh scriptini yazarken yukarıda öğrendiğimiz “echo” komutunu kullanarak yapabiliriz .

Böylece, “Başlangıç ​​IP adresini girin:” kelimelerini basitçe yazdırabiliriz ve bu, kullanıcıdan nmap taramasında ilk IP adresini isteyen ekranda görünecektir.

echo “Başlangıç ​​IP adresini girin:”

Şimdi ekranda bu istemi gören kullanıcı ilk IP adresini girecektir. Bu girdiyi kullanıcıdan almanın bir yoluna ihtiyacımız var. Bunu, değişkenin adının ardından read komutuyla yankı satırını takip ederek yapabiliriz. Read komutu klavyeden girilen bir değeri alır ve onu takip eden bir değişkene koyar.

read FirstIP

Yukarıdaki komut, kullanıcı tarafından girilen IP adresini FirstIP değişkenine koyacaktır . Ardından, bu değeri komut dosyamız boyunca FirstIP’de kullanabiliriz.

Elbette, önce kullanıcıdan bilgiyi girmesini isteyerek ve ardından onu yakalamak için bir okuma komutu kullanarak değişkenlerin her biri için aynısını yapabiliriz.

Ardından, yeni oluşturduğumuz ve doldurduğumuz değişkenleri kullanmak için betiğimizdeki nmap komutunu düzenlememiz yeterli. Değerin değişkende saklanmasını istediğimizde, değişken adının önüne $ koyabiliriz , örneğin $port.

Bu nedenle, ilk kullanıcı giriş IP’sinden başlayarak ikinci kullanıcı giriş IP’sinden başlayarak bir dizi IP adresini taramak için nmap kullanmak ve kullanıcı tarafından bir bağlantı noktası girişi aramak için nmap komutunu şu şekilde yeniden yazabiliriz:

nmap -sT $FirstIP-$LastIP -p $port -oG Aloha

Şimdi, komut dosyası yazılırken, FirstIP ile başlayan ve LastIP ile biten bir IP adresi aralığını tarayacak ve kullanıcının girdiği port numarasını tarayacaktır. Şimdi script dosyamızı kaydedelim ve nmap.sh olarak adlandıralım.

10 – Scriptin son halini çalıştıralım.

Gördüğünüz gibi, komut dosyası bizden ilk IP adresini, ardından son IP adresini ve taramak istediğimiz bağlantı noktasını istiyor. Bu bilgiyi topladıktan sonra nmap taraması yapar ve bizim belirttiğimiz portun açık olduğu aralıktaki tüm IP adreslerinin bir raporunu üretir.

Bu seriye devam edeceğiz, bizi takipte kalın.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu
hacklink al duşakabin fiyatları fethiye escort bayan escort - vip elit escort dizi film izle erotik film izle duşakabin hack forum casibom marsbahis marsbahisgirtr marsbahis matadorbet casibom nulled scriptfethiye escortvozolMedusabahis girişPendik EscortMaltepe Escortbetmavera girişفيديو اباحيiqosاباحي عربيMedusabahis girişhd pornoenobahishilarionbetvozol 6000downlight armatürtanıtım yazısı nedirDuşakabin Fiyatlarıduşakabin modelleriduşakabin tekerleğiduşakabin camıduşakabin temizliğiiqos heetsvozolheets sigaraMaltese Terriermatadorbetcasibom国产线播放免费人成视频播放marsbahissekabetcasibomwww.vozolsepet.com/elektronik sigara fiyatlarıonwingrandpashabetholiganbetimajbetcasibom girişasdasdiqosJojobetcasibomjojobetBetofficePusulabetholiganbetmarsbahis güncel adresmatbetvozolsahabetonwincasibomkralbetcasibombets10mobilbahispiabellacasinoholiganbetmeritkingSumak Sirkesi Nasıl YapılırcasinometropolDeneme Bonusu Veren Sitelergüvenilir slot sitelerigrandpashabetxxx videosazureiptvazureiptvbeyaziptvgüzeliptvgüzeliptviptv satın alklasbahisbahiscomTarafbetmarsbahispiabetbahiscomcercevehiltonbetbetkominstagram ban serviceunban instagram accountantika eşya alanlarwedden op voetbaldinamobetdinamobetdinamobetmavibetmavibet girişmavibet güncelbettiltpusulabetnehirsohbet.combahsegelparibahismostbet türkiyebets10dumanbetholiganbetbeylikduzu escortbetturkeybetturkeyparibahisstarzbetbahiscomRüyabetbycasinosıcak sohbet hattıstarzbetvegasslot girişsekabetcasibomdinamobetdinamobetonwinxslotdinamobettempobettipobetperabetvdcasinotipobethitbetlunabet girişkavbetcasibom1xbettarafbetpokerklasbetpasbetboomaltcasinomariobetwinxbetjojobetCasibomhitbet girisdinamobetbaywin girişjojobetklasbahisbetinebetorspinMatadorbetbayspin girişbaywin girişbetkomcasibomjojobetMarsbahis Girişjojobetpusulabettümbetjojobetbahsegelcasibom giriş twittersafirbettümbetmeritkingbetkanyongrandbettingkalebet7slotsdinamobetcasibomtumbettümbetsuperbahis yeni adresibetparksuperbetinvbetmariobetcasibomgrandpashabetcasibommarsbahisimajbetmatbetjojobetholiganbetsekabetonwinsahabetmatadorbetgrandpashabetnakitbahispiabellacasinomeritkingdumanbetdinamobetgalabetimajbetjojobetjojobetmatbetdinamobetgrandpashabetmavibetcasibomvbetmostbetbetmoongalabethiltonbetparibahisbetturkeybetnanomavibetelektronik sigarabetwoonvevobahisbetparksuperbetinvbetvbetgoldenbahisbetturkeybetturkeybetcupbetcupbahigobahigobetnanoasyabahismavibetjojobetlunabetcasibomjojobetdinamobetvdsmariobetholiganbetholiganbettipobetvdcasinomarsbahisvozol puff sigara