DIR Return Create A Forum - Home
---------------------------------------------------------
cyberturkis
HTML https://cybertukis.createaforum.com
---------------------------------------------------------
*****************************************************
DIR Return to: General Discussion
*****************************************************
#Post#: 8--------------------------------------------------
Siber Güvenliğe Giriş Kılavuzu // 'Taipan Siber
Güvenlik
DIR By: Gramenyo
Date: January 27, 2019, 2:50 pm
---------------------------------------------------------
[move]GRAMENYO[/img][/move]
HTML https://i.hizliresim.com/r5OdLz.png
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. Öncelikle belirtmek
istediğim birkaç şey var bunlardan bir tanesi
şuan konu açtığım kategorideki
HTML https://cybertukis.createaforum.com/index.php
adlı
[move]GRAMENYO[/move] hocamızın açtığı
konudan haberim var. Şimdi böyle bir konu forumda var neden
bir tane daha açıyorsun diyecek olan
arkadaşlarımız çıkabilir. Kesinlikle
söyleyebilirim ki bu konu tamamen doğru bir konu lakin
şahsıma göre eksik bir konu. Bu yüzden daha geniş
çaplı bir konu olması için bu konuyu
hazırladı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İKkuralları ç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 webe 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 Sorgulamayı 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 blayı 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.
DNSi ele alalım. DNSe 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 DNSin ne olduğunu sonrasında
DNSin tanımını bilerek ne işe
yaradığını ve neden
kullanıldığını en sonunda ise
bunların ışığında DNSin
ç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 DNSin ç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 DNSin ve internetin
ç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.
Resim yeniden boyutlandırıldı, orjinalini görmek
için tıklayın.
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 bir önceki konumda bkz:
HTML http://www.turkhackteam.org/siber-gu...me-taipan.html
NMAPi
anlattım ve mantığı üzerinde durdum.
Eğer siz konuda verdiğim ağ temellerine
vakıf olmadan konuyu okursanız NMAPin
çalışma mantığını anlamanız
da o kadar zor olur.
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 sistemin 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) TCPyi
bilmelisiniz.
TCPyi bilmelisiniz derken demek istediğim
Açılımı Transmission Control Protocoldü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 TCPyi
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
Cisconun 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 Bruteforcea.
Öncelikle burada ki yanlış yeni gelen ve temel olarak
nerden başlamalıyım diyen kişiye temel diye
CMS Bruteforceu 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 Bruteforceu
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.
Resim yeniden boyutlandırıldı, orjinalini görmek
için tıklayı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 Webin ş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 webin 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 alerti nasıl
verdiriyoruz, bu alert neden çıkıyor? Diye sorular
yöneltmeliyiz. Alerti 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.
Resim yeniden boyutlandırıldı, orjinalini görmek
için tıklayın.
Üçü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 shelli 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
servera sızdınız yada o serverın
üzerindeki siteler ve server size emanet. Siz nereye
bakmalısınız? Hangi dizine 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ürkiyede ü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.
Bir de DD co-adminimizin oluşturduğu bir liste var onu
da ekleyeyim
Kod:
HTML https://twitter.com/DDenekk/status/936258887598198784
8)CTFler
Abi büyük küçük demeyin gördüğünüz CTFe
katılabiliyorsanız katılın. CTFler edinilen
bilgilerin pekiştirilmesinde ve yeni bilgiler edinilmesinde
çok etkili bir yöntem. E tabi birde işin ucunda ödül de
oluyor. CTFlerin 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 CTFler için konu sonunda
birkaç tane link vereceğim ordan girip
uğraşabilirsiniz. Ayrıyetten üst düzey CTFler
hariç çevremdeki arkadaşlarla mizah olarak
belirlediğimiz ve girdiğimiz CTFlerde
karşımıza birçok kez çıkan CTFin 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 STMCTFin
sorularının ve çözümlerinin olduğu bir linki
paylaşıp bir sonraki ve son maddemize geçelim.
STMCTFin 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:
HTML https://github.com/stmctf/stmctf17
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.
Sektördeki Abilerimiz:
*****************************************************
Page 1 of 1