Linux yaygın bilinenin aksine kendi başına bir işletim sistemi değildir, sadece işletim sistemi çekirdeğidir ve günümüz kullanıcısının işletim sisteminden beklediği görevleri yerine getirmek ve kullanışlı bir çalışma ortamı oluşturmak anlamında bir altyapı sunmaz. Örneğin Linux çekirdeği bir işletim sisteminden beklenen CPU, bellek ve diğer donanım bileşenlerinin yönetimi ve organizasyonu konusunda çalışırken, kullanıcının programları başlatmak, yönetmek, dosya kopyalamak, oluşturmak, ağ ve internet bağlantısı kurmak gibi görevleri yerine getirmesi için bir imkân sağlamaz. Bunun için GNU araçları adı verilen açık kaynak kod araçlar topluluğu kullanılır.
Okumaya devam et “GNU Linux ve GNU felsefesi”İşletim Sistemi ve Linux
İşletim sistemi, özünde bir bilgisayar programdır. Bu bilgisayar programı, diğer bütün programlardan önce çalışarak bilgisayarın donanım birimlerini kontrolü altına alır ve diğer programların çalışabilmesi için uygun bir ortam hazırlar. İşletim sistemi, bilgisayar açık olduğu sürece RAM bellekte yüklü ve çalışır durumdadır. İşletim sistemi temel olarak, üzerinde çalışan programlara ihtiyaç duydukları CPU zamanını ve belleği (RAM) verimli şekilde tahsis etmek için çalışır. Donanımlardan veya kullanıcı programlarından gelen giriş/çıkış çağrılarını işler, diğer programlar ve donanım birimleri arasında yönlendirir. Esasında oldukça fazla görevi olan ve programcılık açısından oldukça karmaşık kabul edilebilecek bir program olan işletim sistemi, diğer programların daha kolay, sadece amaçlarına yönelik olarak programlanabilmesine imkân tanımış olur. Eğer işletim sistemi olmasaydı, her bir program CPU’yu ve RAM’i tek başına kullanmak isteyecekti ve donanımları yönetmek zorunda kalacaktı. Ayrıca bu kaynakları diğer programlar ile nasıl paylaşacağını bilemeyecekti. Diğer taraftan, farklı donanımlar üzerinde çalışması gerektiğinde de her bir donanım ile (üreticisi ve modeli farklı donanımlar) nasıl iletişim kuracağını (G/Ç işlemleri) bilmesi gerekecekti (bu görevi işletim sistemine yüklenen driver yazılımları sağlar). Görüleceği gibi tüm bu önemli ve kritik görevleri hakkıyla yerine getirebilecek bir işletim sistemi programı şarttır. Linux tüm bu görevleri ve daha fazlasını başarılı ve verimli şekilde icra edebilen en iyi işletim sistemidir. Daha doğrusu işletim sistemi çekirdeğidir.
Okumaya devam et “İşletim Sistemi ve Linux”Raspberry Pi Nedir?

Raspberry Pi’ın fotoğrafını yukarıda görebilirsiniz. Onu ilk defa görenler biraz garipseyeceklerdir. Raspberry Pi nedir ve onunla neler yapılabilir sorusu ile karşılaştığımda, bence ucu yeterince açık olan cevap şudur: “Raspberry Pi bir bilgisayardır ve bir bilgisayar ile neler yapabiliyorsanız daha fazlasını onunla yapabilirsiniz.” Raspberry Pi normal bir bilgisayara göre çok daha fazla avantaja ve yeteneğe sahiptir.
Okumaya devam et “Raspberry Pi Nedir?”WiFi 6: OFDMA ve MU-MIMO’nın farkı
OFDMA ve MU-MIMO birbirini tamamlayan teknolojilerdir. OFDMA, IoT sensörleri gibi düşük bant genişliğine sahip küçük paket uygulamalar için ideal olsa da, MU-MIMO görev açısından kritik sesli aramalar ve video akışı gibi yüksek bant genişliğine sahip uygulamalarda kapasiteyi ve verimliliği artırır.
Okumaya devam et “WiFi 6: OFDMA ve MU-MIMO’nın farkı”Avrdude Aracı ile Arduino Klonlamak
Arduino IDE, Arduino’ya kod yüklerken (upload) arka planda avrdude (AVR Downloader Uploader) isimli araçtan faydalanır. avrdude, STK500 protokolü ile Arduino Bootloader’ı ile konuşarak mikrodenetleyicinin flash belleğine yazar veya içeriğini okur (okuma/yazma yaparken kullanılan bootloader hakkındaki detayları ilerleyen paragraflarda bulacaksınız). avrdude.exe aracını “C:\Program Files (x86)\Arduino\hardware\tools\avr\bin” dizininde bulabilirsiniz. Arduino IDE’nin yükleme yapmak için kullandığı aşağıdaki komutu Arduino IDE üzerinde görmek için; Dosya->Tercihler menüsü ile ulaşılan yapılandırma ekranındaki derleme ve yükleme için “Ayrıntılı çıktı” seçeneğini etkinleştirebilirsiniz. Böylece Arduino IDE’nin avrdude aracını arka planda nasıl kullandığını görebilirsiniz.
1 |
avrdude -C"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega328p -carduino -PCOM4 -b115200 -D -Uflash:w:"hex_dosyasi.hex":i |
Elektromanyetik Alan ve İnsan Sağlığı
Elektromanyetik enerji uzayda sonsuza kadar yayılır. Bu elektromanyetik enerjinin 3 çeşit kaynağı vardır. Bu kaynak “alan” mıdır, “dalga” mıdır?
Doç. Dr. Selçuk Çömlekçi – Elektromanyetik Enerji Kullanımı ve Sağlık Etkileri
Okumaya devam et “Elektromanyetik Alan ve İnsan Sağlığı”DNS üzerinden veri sızdırma: DNS extfiltration örneği
SQLmap‘i kullanırken out-of-band yöntemlerinden biri ile karşılaştım; time based olmayan blind sql injection‘larda dışarıya hızlıca veri çıkarabilmek için kullanılan bir yöntem. Adı DNS extfiltration.
Bu yönteme göre;
Exploit SQL’i içine SQL’i çalıştıran sunucunun çözmesi gereken bir sub.domain koyularak sub üzerinden dışarıya veri çıkartılııyor. Domain tarafında ise; domain bizim kontrolümüzde olduğundan UDP 53’ü dinler durumdayız. UDP 53 standart olarak DNS trafiği taşıdığından güvenlik duvarlarından da rahatça geçebiliyor.
Okumaya devam et “DNS üzerinden veri sızdırma: DNS extfiltration örneği”Subdomain Takeover Zafiyeti Hakkında
Alt alan adını ele geçirmek anlamına gelen subdomain takeover az rastlanan ilginç zafiyetlerden birtanesidir ve alt domain’i ele geçirerek diğer saldırı vektörlerini çalıştırmak için kullanılır. Basitçe açıklayalım, hedefimizde alt.firma.com şeklinde bir alt domain olsun;
- alt.firma.com CNAME DNS kaydı ile alt.wordpress.com‘a yönlendirilmiştir.
(wordpress.com herkesin dilediği subdomain ile hesap açabileceği biryer) - alt.wordpress.com hesap silinmesi veya kullanımdan kalkması gibi bir nedenden dolayı devre dışı kalır.
- Artık saldırgan wordpress.com üzerinde alt adıyla kendine ait bir hesap açabilir ve dosyalarını yükleyebilir.
- alt.firma.com halen alt.wordpress.com‘a yönlendirilmiş olduğundan saldırganın eline geçmiş olur.
Bu dört madde subdomain takeover saldırısının en basit açıklamasıdır. WordPress.com gibi kullanıcı tanımlı subdomain’lere izin veren diğer altyapı sağlayıcı ve servislerin listesine buradan ve buradan bakabilirsiniz.
Okumaya devam et “Subdomain Takeover Zafiyeti Hakkında”sub.sh: Subdomain keşfi için en keyifli araç
Subdomain enumeration için birçok araç var. Bu nedenle yazının başlığı biraz iddialı olmuş olabilir. Bu tabiki benim kendi düşüncem ;)
Atak vektörünü genişletmek için hedef domain’in alt domain’lerini de kümeye dahil etmek gerekir. Bazı durumlarda alt domain’lerden ana domain’e yürümek veya diğer alt/ana domain’leri barındıran sunucu üzerinde erişim elde etmek mümkün olabilir.
Alt alanları tespit etmek için giriştiğim araştırma neticesinde, oldukça kapsamlı sonuçlar veren sub.sh aracını keşfetmiş ve burada tanıtmıştım. Araç birçok popüler çevrimiçi servisi ve aracı kullanarak çalışan bir combo araç. En sevdiğim yanı ise bir bash betiği olarak yazılmış olması.
Aracı birsüre kullandıktan sonra uzun zamandır güncellenmediğini ve buna bağlı olarak bazı eksikliklerinin ve çalışmayan kısımlarının olduğunu farkettim. CMD tarafından yazılan (2 yıl önce) sub.sh‘ı tamir etmek ve iyileştirmek için kendi github hesabım üzerinde bir çatal oluşturdum (fork) ve değişikliklerimi yaptım. Yaptığım bazı değişiklikler şunlardı:
- Used name servers for verifying subdomains ınstead of checking 80/443 (httprobe avoided).
- Some ortopedical improvements about outputs (file and screen).
- Updated depricated install method of go.
- Amass runs in passive mode in short scan (-s) otherwise runs in active brute mode.
Aracı yüklemek ve kullanmaya başlamak için aşağıdaki komutu çalıştırabilirsiniz:
1 |
curl -sL bit.ly/3bUdFHv | bash /dev/stdin -s example.com |
Elinizin altında deneme yapacak bir linux makine yoksa hemen bir goole cloud server üzerinde de çalıştırabilirsiniz. Bunun için şu bağlantıya tıklatmanız yeterli:
Sızma testleri için kullanılabilecek platform ve uygulamalar
Penatrasyon denemeleri için zafiyetli çevrimiçi/çevrimdışı uygulamaların listesinin yer aldığı sürekli güncellenen depo:
https://github.com/kaiiyer/awesome-vulnerable
SQLMap parametre ve seçenekleri
sqlmap oldukça fazla parametre ve seçeneğe sahip bir araç. Github sayfasında komut satırı seçenekleri hakkında uzun bir döküman yer alıyor. Bu dökümandaki bazı sık kullanılan seçenekleri türlerine göre gruplayarak Türkçe’ye çevirdim ve bazılarına deneyimlerimden elde ettiğim açıklamalar da ekledim. Bu sayfadaki parametre listesine ve açıklamalarına eklemeler yaparak sürekli olarak güncelleyeceğim. Konuyla ilgili olanlar sqlmap ile ilgili şurada karaladıklarıma da bakmak isteyebilirler.
Seçeneklerin gruplaması şu şekilde:
- Temel/zorunlu seçenekler
- Keşif (enumeration) seçenekleri
- Tespit seçenekleri
- Enjeksiyon seçenekleri
- İşletim sistemi erişim seçenekleri
- Dosya sistemi erişimi seçenekleri
- İstek (request) seçenekleri
- Optimizasyon seçenekleri
- Teknik seçenekleri
- Genel amaçlı seçenekler
CMD sub.sh ile subdomain keşfi
Daha önce burada amass aracını tanıtmıştım ve ardından burada da diğer araçlarla birlikte daha kapsamlı bir subdomain listesinin nasıl elde edilebileceğine yer vermiştim. Yeni keşfettiğim ve CMD (Cihan Mehmet DOĞAN) tarafından yazılmış olan sub.sh aracı verdiği çıktı kalitesi açısından tüm bunların papucunu dama atmış durumda. sub.sh taradığı servisler ve kullandığı araçlar bakımından oldukça tatminkar sonuçlar üretten pratik bir bash script’i. Script’i buradan inceleyebilirsiniz.
Okumaya devam et “CMD sub.sh ile subdomain keşfi”Alt alan (sub domains) keşfi yapalım
Bu yazıda amass, sublist3r, assetfinder ve subfinder komut satırı araçlarını kullanarak bir alan adına ait alt alan adlarının nasıl toplanabileceğini anlatacağım. Araçların özelliklerini ve kullanım şekillerini paylaşacağım. Ardından da kapsamlı bir liste elde etmek için bu araçların bulduğu alan adlarını tek bir listede toplayacağım (owasp-subs.txt
). Böylece saldırı yüzeyimizi genişletmiş, sızma denemeleri için daha fazla deneme yapabileğimiz alana sahip olabileceğiz.
OWASP amass kullanım örnekleri
Bir süre önce burada OWASP amass için kılavuz niteliğinde detaylı bir tanım yazısı yazmıştım. Bu yazıyı okumaya üşenenler için birkaç pratik kullanımından bahsedeceğim. Esasında amass aracının çalışma mantığını ve özelliklerini kavramanızı tavsiye ederim. Yine de amass’ın çalışmasını betimleyen diyagramları incelemeniz için aşağıya bırakıyorum. Diyagramların deposu için github sayfama bakabilirsiniz.
Okumaya devam et “OWASP amass kullanım örnekleri”OWAST Amass domain istihbarat aracı tanıyalım
OWASP Amass, açık kaynak bilgi toplama ve aktif keşif teknikleri kullanarak saldırı hedeflerinin ağ haritalamasını ve harici varlık keşfini gerçekleştirir. Aracın alt alan adlarını bulmak için kullandığı tekniklere buradan bakabilirsiniz. Bir OWASP projesi olan Amass, açık kaynak istihbaratı (OSINT) alanında kullanılan önemli blueteam araçlarından birisidir. Go dilinde yazılmış olan aracın temel odağı alan adı (domain name) istihbaratı ve keşfi yapmaktır.
Okumaya devam et “OWAST Amass domain istihbarat aracı tanıyalım”PHP’de SQL enjeksiyonları nasıl önlenir (PDO)
SQL enjeksiyonu, en yaygın şekilde var olan ve en çok zarar veren web uygulaması güvenlik açıklarından biridir. Neyse ki, hem programlama dilleri hem de RDBMS’lerin kendileri, web uygulaması geliştiricilerine veritabanını güvenli bir şekilde sorgulamanın bir yolunu (parametreli SQL sorguları) sağlamak için gelişti.
SQLi saldırılarından korunmak için parametreli sorgular kullanılır. Parametreli sorguların yazılması ve anlaşılması kolaydır ve bu geliştiriciyi bir ifadedeki gerçek değişkenler için yer tutucuları kullanarak tüm SQL ifadesini önceden tanımlamaya zorlar. Geliştirici SQL ifadesi tanımlandıktan sonra her parametreyi sorguya geçirerek veritabanının SQL komutu ile bir kullanıcı tarafından girilen veriler arasında ayrım yapabilmesini sağlar. SQL komutları bir saldırgan tarafından girilirse, parametreli sorgu girdiyi SQL komutunun aksine bir dize olarak değerlendirir.
Okumaya devam et “PHP’de SQL enjeksiyonları nasıl önlenir (PDO)”SQLi (SQL Injection) Açıkları ve Türleri
SQL Injection (SQLi), kötüniyetli SQL ifadelerini çalıştırmayı mümkün kılan bir enjeksiyon saldırısı türüdür. Bu ifadeler, bir web uygulamasının arkasındaki veritabanı sunucusunu suistimal eder. Saldırganlar, uygulama güvenlik önlemlerini atlatmak için SQLi güvenlik açıklarını kullanabilir. Bir web sayfasının veya web uygulamasının kimlik doğrulamasını ve yetkilendirmesini atlatabilir, veritabanını kopyalayabilir, kayıt ekleyebilir, kayıtları değiştirebilir ve veritabanını bulunduran sunucunun işletim sistemi üzerinde komut çalıştırarak sunucu üzerindeki diğer verilere erişim sağlayabilir ve sunucuyu ele geçirebilir. Ele geçirilen sunucuyu güvenlik duvarının arkasındaki ağa da erişim sağlamak için kullanabilir.
Okumaya devam et “SQLi (SQL Injection) Açıkları ve Türleri”