Siber güvenliğe giriş(Detaylı anlatım) (1 Viewer)

SQLMAP

Social Engineer
Joined
Apr 11, 2020
Credits
0
Rating - 0%
Merhabalar arkadaşlar bu konumda siber güvenlik alanına giriş yapacaksak nasıl bir yol izlemeliyiz, nelere dikkat etmeliyiz ve kendimizi geliştirmek için neler yapabiliriz bunları anlatmaya, kaynaklar (konunun sonunda) ve örnekler vermeye çalışacağım. Belirtmek istediğim bir başka şey ise konuda belirteceğim her şey bazı kesimler veya kişiler tarafından doğru bulunmayabilir ki elbette ben de söylediğim her şey doğru diyemem lakin yanlış gördüğünüz şeyleri ETİK kuralları çerçevesince medeni bir şekilde konuyu baltalamadan konu altında tartışıp fikir alışverişi yapabiliriz. Bunları belirttikten sonra daha fazla uzatmadan konumuza giriş yapalım.

Siber güvenlik denilince aklımıza birçok alan gelebilir. Aslında siber güvenlik şahsıma göre tek bir alan değil bir alanlar topluluğudur. Ben bu konuda ise kendi bilgimin olduğu kadarıyla “Web Güvenliği” ve “Ağ Güvenliği” alanlarında ki dikkate alınması gereken şeylerden bahsedeceğim. Bu iki alan kanımca aslında tamamen keskin sınırlarla birbirinden ayrılamazlar yani ben ağ güvenliğine yöneleceğim diyip web’e hiç bakmamak yada sıfır bilgim var demek mümkün olamaz. İki alan birbiriyle ilişki içinde bulunan, kesişim kümelerinin olduğu alanlardır. Bu yüzden konudaki başlıkları tek tek Web ve Ağ olarak ayırmadım. Bu hususu da belirttikten sonra izleyeceğimiz yoldaki köşe taşlarımıza geçelim.


1)Mantık-Sorgulama:

Bu konunun en önemli ve üzerinde en çok durulması gereken maddesi olarak “Mantık ve Sorgulama”yı görüyorum. Bu madde siber güvenlikte hangi alanla ilgilenirseniz ilgilenin hepsi için birinci madde niteliğindedir. Zaten bu maddeden sonra bahsedeceğimiz maddeler aslında bir nevi bu maddenin alt dallarıdır yani mantığı kavramak için yapılması ve bilinmesi gereken şeylerdir.

Yaptığınız veya yapacağınız işin çalışma mantığını ve nedenini bilmezseniz asla tam olarak belli bir konuma gelemezsiniz. Hazır bilgi üzerinden belli bir yere kadar gidebilirsiniz lakin devamında tıkanırsınız. Bu olay siber güvenlikte de geçerlidir. Kullandığınız sistemin çalışma mantığını bilmezseniz, ben bu butona bastım ama bastıktan sonra arkada nasıl olaylar döndü, arkada gerçekleşen olaylar neden bu şekilde gerçekleşti diye sorgulamazsanız 3-0 geride başlarsınız.

Hayatta her zaman sorgulamak insana bir şeyler kazandırır ama kaybettirmez. Eğer işin mantığını bilirseniz ve mantığını bilmek için sorgularsanız üstüne katacağınız bilgileri temelin üstüne oturtmak daha kolay olur. Bunun içinde kullanacağımız üç adet sorumuz var bunlar: Ne, neden ve nasıl. Çok sevdiğim bir hocam olan Engür Pişiricinin bir eğitimde bize en çok yönelttiği ve kafamıza vura vura sordurduğu sorulardır bunlar. Engür hocamın çok sevdiğim de bir sözü vardır onu da burada belirtmeden geçmeyeyim: “Eğer bir şeyin güvenliğini öğrenecekseniz öncelikle o şeyi bilmeniz gerekir. Bla bla güvenliğini öğreneceksen o bla bla’yı bileceksin. Ağ güvenliği öğreneceksen önce ağ bileceksin.” der bizi de ayak üstü fırçalar bu üç soruya yöneltirdi. Bu üç soruyu yönelterek sorgumuzu yapar ve işin mantığını kafamıza oturturuz. Bunu bir örnek ile size açıklamaya çalışayım.

DNS’i ele alalım. DNS’e dair yönelteceğimiz sorularımızı yukarıda belirttik. DNS ne? DNS neden var, ne işe yarar? DNS nasıl çalışır? Sorularımızı bu sırayla yöneltirsek temelimizi oluşturmamız daha kolay olur. Öncelikle DNS’in ne olduğunu sonrasında DNS’in tanımını bilerek ne işe yaradığını ve neden kullanıldığını en sonunda ise bunların ışığında DNS’in çalışma mantığını öğrenerek bu kavramı tamamen kafamızda oturturuz. Peki biz bu yolları izleyerek nasıl bir kazanım elde etmiş oluruz? İşin mantığını bildiğiniz için kendinizi saldırganın yerini koyarak DNS’in çalışma adımlarındaki güvenlik açıklarını, zaafiyetleri fark eder ona göre önleminizi alırsınız. Ya da bir sisteme sizden pentest yapmanız istenirse de bu bildiğiniz eksiklikleri kullanırız. Mesela DNS’in ve internet’in çalışma mantığını eğer anlayamazsınız “Ortadaki Adam Saldırısı”nı tam olarak kavrayamaz, kavrasanız bile tek yönlü olarak bilip çeşitli varyasyonlar üretemezsiniz.










2)Ağ(Network):

Yukarıda da belirttiğim gibi eğer kollayı sıvayıp ağ güvenliğine dalmak istiyorsak önce ağ öğrenmemiz, ağ temellerini atmamız gerekir. Yani eğer sektörde “Ya ben ağ güvenliğiyle uğraşıyorum ama ağ bilgim yok” derseniz size karşınızdakiler bir yerleriyle gülerler. Protokolleri, protokollerin çalışma mantığını, birbirleri ile ilişkilerini, ağ mantığını bilmeden yapamayız.







Mesela ağ ve bir sonraki madde olan web için kendi bölümümden bir örnek vereyim. Eğer siz insan(makina,sistem) fizyolojisini(normal işleyiş) bilmezseniz patolojisini(aksaklıklar, hasar, açıklar, zaafiyetler) anlayamazsınız. Yani mesela bir sistem’in yönetimini gerçekleştiriyorsunuz ve çalışan işlemlerde birkaç şey var, bunların sistemin normal işleyişinde var olması gereken olaylar mı olduğunu yoksa sistemdeki bir zaafiyetten mi kaynaklandığını anlamanız için öncelikle sistemin normal işleyişinin nasıl olduğunu bilmeniz gerekir. Aynı şekilde bir sisteme pentest yapacaksanız da ağ’ın temelindeki açıkları ve sömürülebilir noktaları bilip ona göre bildiğiniz zaafiyetlere yönlenirsiniz. Misal TCP syn attack yapacaksanız yada IP sahteciliği yapacaksanız(teorikte evet de pratik de çok zor) TCP’yi bilmelisiniz.

TCP’yi bilmelisiniz derken demek istediğim “Açılımı Transmission Control Protocol’dür, TCP/IP protokol takımının aktarım katmanı protokollerinden birisidir. Gelişmiş bilgisayar ağlarında paket anahtarlamalı bilgisayar iletişiminde kayıpsız veri gönderimi sağlayabilmek için TCP protokolü yazılmıştır.” şeklinde bana TCP’yi anlatmanız değildir. TCP bilmek derken çalışma mantığını, neden ihtiyaç olduğunu, ne olduğunu anlatmanızdır.

Ağ hakkındaki bilgilerinizi pekiştirmek için Cisco’nun bir simülasyonu var bunu kullanabilir. Kendi ağınızı kurup üstünde denemeler yapabilir, işleyişi takip edebilirsiniz. Bunu da belirtmiş olayım.


3)Web:

Evet gelelim en sevdiğim maddelerden birine. Bu maddeyi çok seviyorum çünkü bu madde forumda çoğunluğunun temel olarak ne kastedildiğini şahsıma göre anlamadığı ve çok iyi bildiğini iddia ettiği bir maddedir. Öncelikle gelelim şimdiliye kadar anlatılmış olan şahsıma göre de yanlış olan Web temeline. Bu temel şu şekilde: “Önce CMS Bruteforce, sonrasında Havij ile Sql İnjection bunun bir tık üstü olarak Sqlmap ile (temel düzeyde) sql injection, shell atma, config çekme....” ilerleyip gidiyor. Hatta hatırı sayılır kişiler tarafında “en basitinden (SQL,İSS,RFI,LFI,XSS)” şeklinde açıkların bilinmesi önerilmiştir. Şimdi adım adım bu temeli bir ele alalım.







a)CMS Bruteforce:

Allah affetsin zamanında ben de yaptım. Lakin sonrasında doğru yolu buldum. Şimdi burayı okuyanların aklına şu gelmesin. “CMS bruteforce yapanları aşağılıyor, hor görüyor.”. Birincisi bunu yapmam kendi ilkelerime aykırı gelir ikincisi bunu yapmak haddime değildir. Ben burada bunun yanlış kullanımını anlatacağım.

Şimdi ilk gelenlere CMS bruteforce ile başla denir. Karşıdaki de okeyler başlar CMS Bruteforce’a. Öncelikle burada ki yanlış yeni gelen ve temel olarak nerden başlamalıyım diyen kişiye temel diye CMS Bruteforce’u vermek. Şimdi gelelim ikinci yanlışa. Ben kimseye sakın CMS Bruteforce kullanma demem. Kullanacaksan kullan lakin orda 2 tane butona basıp çıkan siteyi burda allayıp pullayıp pazarlarsan ve başka insanlara bununla hava atarsan işte o zaman laf ederim. Arkadaşlar CMS Bruteforce’u kullanacaksanız kullanın ama lütfen çalışma mantığını bilerek kullanın. Hani diyorsanki kardeş ben günde illa bir defa CMS bruteforce açmadan yapamıyorum. Açın açmayın diyen yok lakin o program arkada neler yapıyor? Neden ben bu butona basıyorum. Bu butona bastığımda arkada noluyor? Bunları düşünerek araştırarak yapın.







Burda dikkatinizi çekmek istediğim bir nokta var. Bakın en baştan beri “Bruteforce” yapmayın demiyorum “CMS bruteforce” yapmayın, illa yapacaksanız da çalışma mantığını bilerek zevk için yapın diyorum çünkü bruteforce yapma dersek yanlış yapmış oluruz. Bruteforce doğru şekilde ve bilinçli kullanımlarında çok etkili ve bazen kullanılması şart olan bir yöntemdir. Bunun da altını çizelim.


b)SQL Injection:

Şimdi de buradaki yanlışlara değinelim. Kişiye öncelikle birkaç tane video atıp(sql açığı sorgulama, havij kullanımı, sqlmap kullanımı) sql injection yarım yamalak anlatılır. Bu birinci yanlışımız. İkinci yanlışımız ise “en basitinden (SQL,İSS,RFI,LFI,XSS)” tırnak içinde belirtildiği gibi bu açıkları basit olarak görmek. Madem bu kadar basit açıklar ve bu kadar kolay öğrenilebiliyor ise neden bu beyanlarda bulunan kişileri HackerOne tarzı sitelerde çok yüksek miktarlı ödemeler yapan şirketlerden ödül almış şekilde göremiyoruz?







Şimdi gelelim Web’in şahsıma göre doğru olan temeli nedir ve nasıl atılmalıdır o bölüme. Eğer kişiye web temeli verilecekse bunlar zaafiyetler değil web’in kendisi olmalıdır. Php, js, css, html, veritabanı yönetimi gibi şeyler verilmelidir ki kişi zaafiyetleri anlayabilsin. Buna 3 tane örnek vereceğim ilk örneğimiz “SQL injection” üstünden olacak. En basitinden mesela elinizde bir site var ve sitede sql var mı diye kontrol edeceksiniz. Nasıl yapılması anlatıldı? Sonuna tırnak işareti koyarak. Bizim yapmamız gereken şey neden tırnak işareti koyuyoruz? Ya da tırnak işareti yerine ünlem işareti koysak olmaz mı , olmazsa neden olur, olmazsa neden olmaz? Bu soruları yöneltmek ve atıyorum SQLMAP kullanıyorsunuz diyelim yada manuel olarak yapıyorsunuz. Select, where, get gibi girdileri neden veriyoruz? Bunlar neden bize bu çıktıları veriyor? Şeklinde sorular yönetip SQL sisteminin çalışma mantığını ve nasıl işlediğini bilmeliyiz ki bu soruların cevaplarını alabilelim.

İkinci örneğimiz ise XSS zaafiyeti üzerinden olacak. Mesela XSS zaafiyeti var mı diye kontrol ediyorsunuz, atıyorum bunu alert verdirerek yapmaya çalışıyorsunuz ama biz bu alert’i nasıl verdiriyoruz, bu alert neden çıkıyor? Diye sorular yöneltmeliyiz. Alert’i verdirirken js kodu çalıştırıyorsunuz. Bu yüzden JavaScript bilmeliyiz. Eğer javascript bilmeden ben xss açığı kullanıyorum falan derseniz sadece kendinizi kandırmış olursunuz.








Üçüncü örneğimiz ise yine çok kullanılan yöntemlerden biri olan Login Bypass yönetimiyle ilgili olacak. Siz admin panelini karşınıza aldınız gittiniz admin ve pass bölümüne ''Or'='Or'' veya 1'or'1'='1 yazdınız panele girdiniz. Peki biz bu kodları kullanarak sisteme giriş nasıl yaptık? Neden bu kodları kullandık? Mesela ben “Taipan’=’Taipan” yazsaydım sisteme girmez miydi? Girmezse neden girmezdi veya girseydi neden girerdi? Şeklinde soruları yöneltip bunların mantığını kavramaya temelini öğrenmeye çalışmalıyız. Web konusunda diyebileceklerim bunlar.


4)Temel Linux Bilgisi:

Arkadaşlar size gidip kali linux kurun veya ubuntu kurun falan demeyeceğim lakin sanal makinede de olsa bir linux dağıtımına sahip olmanızı öneririm. Linux bilgisi sektörde vazgeçilmeyen şeylerden biridir. Temel komutları, dizinleri, server yönetimini, önemli dosya ve klasörleri bilmeniz gerekmektedir. Bash script yazamayan insan kendine şahsıma göre güvenlikçi dememelidir. Mesela çoğumuzun yaptığı bir şeyden örnek vereyim. Forumda birçok konuda anlatılan bir şeyden bahsedeceğim “Shell Atma”. Gittik bir siteye shell’i bastık shell ekranı karşımızda konularda hep “public_html” sekmesine ulaşmamız istenir. Peki neden bu sekme? Bu sekme aslında neye karşılık geliyor? Ya da shell üzerinde linux komutları çalıştırılabilir mi? Bu soruların cevaplarını alabilmemiz için linux temellerini bilmemiz gerekir. Tersten bakacak olursak mesela siz bir linux server’a sızdınız yada o server’ın üzerindeki siteler ve server size emanet. Siz nereye bakmalısınız? Hangi dizin’e dikkat etmelisiniz? Hangi dosyalardan bilgi toplayabilir yada toplanmasını engelleyebilirsiniz? Bu soruların yanıtları için de temel düzeyde linux bilgisi gereklidir. He tabi kimseye linux bilgini temelde tut, windows bilme falan demiyoruz yanlış anlaşılmasın. Windows bilgisinin de olması gerekmektedir tabi ki. Genel olarak işletim sistemleri hakkında bilgi diyebiliriz.







5)Python

Şimdi burda python dedim diye diğer dilleri es geçin demiyorum sakın yanlış anlaşılmasın. Daha yaygın ve basit kullanımından ötürü python diyorum. Python bilmek cidden hayat kurtarıyor. Python temellerinizi sağlam atıp “Python 4 Hackers” kısmına geçmenizi öneririm. Konunun en sonunda vereceğim CTF linkindeki soruları inceleyip neden bu kadar önemli olduğunu anlayabilirsiniz.








6)İngilizce

İngilizce olmadan belli bir yere kadar ilerleyebiliyorsunuz lakin kaynak konusunda çok sıkıntı çekiyorsunuz. Genelde düzgün ve faydalı kaynakların çoğunun ingilizce olması, Uluslararası iletişim dili olması, sektörde kullanımının yaygın olması nedeniyle ingilizce çok önemli bir köşe taşı.


7)Eğitimler ve Konferanslar

Türkiye’de ücretsiz birçok eğitim bulunmakta. Genelde eğitimler konferanslarla beraber olurlar lakin sadece konferanslar da olabiliyor. Kendinizi geliştirmeniz açısından eğitimler ve konferanslar çok önemli çünkü kısa sürede işin ehli kişilerden bilgi alımı yapıp genelde bunu test etme imkanı da buluyorsunuz. Mesela Türkiyede aklıma gelen birkaç tane ücretsiz eğitim veren(sınavla veya sınavsız),konferans düzenleyen etkinlik yazayım: Hacktrick, Linux Yaz Kampı, BGA, Cezeri SGA, CSCon, Akademik Bilişim Günleri, Lostar Yaz Kampı, Özgür Web Günleri şimdilik aklıma gelenler bunlar lakin konunun sonunda birçok şirket, topluluk ve şahıs linki vereceğim oradan takip edebilirsiniz. Ek olarak ücretli eğitimler de var ancak onları paylaşmak istemedim araştırıp bulabilirsiniz.






8)CTF’ler

Abi büyük küçük demeyin gördüğünüz CTF’e katılabiliyorsanız katılın. CTF’ler edinilen bilgilerin pekiştirilmesinde ve yeni bilgiler edinilmesinde çok etkili bir yöntem. E tabi birde işin ucunda ödül de oluyor. CTF’lerin başka güzel bir yanı ise soruları çözmek için uğraşırken araştırma yapıyorsunuz ve bu zaman diliminde araştırma yapıp öğrendiğiniz bilgiler başarıyla birleşince akılda daha çok kalıcı oluyorlar. Yukarıda belirttiğim şirket, topluluk veyahut etkinliklerde eğitime girişler genelde ctf ile oluyor yada eğitim sonunda CTF düzenleniyor. Bunlara ek olarak kendiniz istediğiniz zaman uğraşabileceğiniz CTF’ler için konu sonunda birkaç tane link vereceğim ordan girip uğraşabilirsiniz. Ayrıyetten üst düzey CTF’ler hariç çevremdeki arkadaşlarla mizah olarak belirlediğimiz ve girdiğimiz CTF’lerde karşımıza birçok kez çıkan “CTF’in 5 Farzı” dediğimiz unsurlar var onları da şöyle dizeyim:

-Linux Bilgisi
-Python Bilgisi
-Wireshark
-Kriptoloji(Ciddi matematik ister)
-Think Simple

Hele sonuncusu yani basit düşünme bazen soruların cevaplarını görünce o kadar içinizi acıtıyor ki “Lan ben neler yaptım bu muymuş” falan diyorsunuz. Bunları da belirtmiş olup yukarıdaki maddelerin önemini kavrayabilmeniz için son zamanlar bir CTF olan STMCTF’in sorularının ve çözümlerinin olduğu bir linki paylaşıp bir sonraki ve son maddemize geçelim. STMCTF’in sorularını incelemenizi kesinlikle öneririm. Şahsen hem ufkumu açtı hem de ne kadar düşük bir seviyede olduğumu fark edip çalışma azmi verdi.


Kod:





9)Sektördeki Abilerimiz, Topluluklar ile Günceli Takip Etmek:

Başlık biraz uzun ama maddeyi tamamen açıklar şekilde oldu. Türkçe kaynak sıkıntısı çekmemek için sektörde yer sahibi olan kişileri, toplulukları ve sayfaları takip ederek blog yazılarından, makalelerinde ve incelemelerinden faydalanmak size çok şey katar. Bunlara ek olarak da günceli takip ederek yenilikleri öğrenir ve kendi bilgilerimizle pekiştirip anlamaya çalışarak fransız kalmamış oluruz. Bu madde ile ilgili olan linkleri de konunun sonunda sizlerle paylaşacağım.
 
Last edited by a moderator:

Users who are viewing this thread

Top