Siber güvenlik camiasının dikkatle izlediği, ya tamamen karşısında ya da yanında yer alınan Siber Mücadele eğitiminde nedir, ne değildir, neyi amaçlamaktadır sorularına yanıtlar aradığım bir blog yazısı olmasını amaçlamaktayım.
16 Haziran 2016 Perşembe
1 Haziran 2016 Çarşamba
PHP Versiyon Bilgisini Gizlemek
Bir başka güvenlik önlemi de PHP versiyon bilgisinin gizlenmesi. Her ne kadar kullandığınız sistemi güncelliyor olsanız da bu tarz bilgilerin gösterilmemesi her zaman avantaj olacaktır.
Öncelikle php.ini dosyasını bulmanız gerekmektedir.
PHP-FPM tercih edenler için: nano /etc/php5/fpm/php.ini
Apache Kullanıcıları LAMP ile kurdularsa: /etc/php5/apache2/php.ini
Linux dağıtımlarında yolu bulabilmek için aşağıdaki gibi bir arama yapabilirsiniz. PHP-FPM, PHP-CLI gibi birden fazla uygulama kullanıyorsanız web tarafına çalışan PHP-FPM değiştirmeniz yeterli olacaktır:
Güvenli günler diliyorum..
Öncelikle php.ini dosyasını bulmanız gerekmektedir.
PHP-FPM tercih edenler için: nano /etc/php5/fpm/php.ini
Apache Kullanıcıları LAMP ile kurdularsa: /etc/php5/apache2/php.ini
Linux dağıtımlarında yolu bulabilmek için aşağıdaki gibi bir arama yapabilirsiniz. PHP-FPM, PHP-CLI gibi birden fazla uygulama kullanıyorsanız web tarafına çalışan PHP-FPM değiştirmeniz yeterli olacaktır:
find /etc -type f -name 'php.ini'Dosyayı bulduktan sonra vi, vim veya nano gibi bir editör ile açıp expose_php satırı Off yapmalısınız:
nano /etc/php5/fpm/php.iniSonrasında php-fpm veya kullandığınız web sunucu servisini yeniden başlatmanız gerekecektir. PHP-FPM için:
service php5-fpm restart
Güvenli günler diliyorum..
2 Mayıs 2016 Pazartesi
Nginx Versiyonu Gizlemek ve Server Header Bilgisini Değiştirmek
Siber güvenlik alanında eğitim almaya başladım. İlk derslerde bilgi toplama amacıyla yapılan sunucu taramalarında web server versiyon bilgisinin ilgili versiyon için zafiyet taramalarında kullanıldığını gördük. Önceki yazımda da bahsettiğim gibi bende Nginx tercih ediyorum. Hızlı bir araştırma ile nasıl yapılacağını buldum ve kısaca paylaşmak istedim. Nginx versiyonu gizlemeyi ve yine Header bilgisinde yer alan Nginx'i değiştirmeyi anlatacağım.
25 Kasım 2015 Çarşamba
DigitalOcean Taşınma Maceram
Bir süredir barındırma sunucum bana maliyetli gelmeye başlamıştı. Malum dolar 3 TL bulunca ve sadece WHM için 40 TL civarında verince yok artık dedim ve DigitalOcean'a (DO) transfer olmaya kadar verdim. Aslında öncesinde "Linode mi (ek IP alınabiliyor) DigitalOcean mı" diye araştırınca ve Linode eski müşterilerinden bazı olumsuz yorumlar alında DO'ya transferde karar kıldık. Taşınma ile ilgili tüm notlarımı ihtiyacı olanlar için paylaşacağım.
Taşınmaya karar verdiyseniz DigitalOcean kayıt referans linkimi kullanabilirsiniz :)
https://m.do.co/c/b7276c06e18e
Taşınmaya karar verdiyseniz DigitalOcean kayıt referans linkimi kullanabilirsiniz :)
https://m.do.co/c/b7276c06e18e
5 Şubat 2015 Perşembe
QT5, MySQL 5.6 ve Ubuntu 14.04: QMYSQL driver not loaded
Yaklaşık 1 günümüzü harcadığımız ve sonunda çözdüğümüz problemi paylaşarak Türkçe kaynağa katkıda bulunmak istedim. Burada genel sorun QT'nin MySQL kütüphanesinin LAMPP / LEMP veya benzeri yöntemle kurulmasından veya Ubuntu ile gelen MySQL güncellemesi sırasında ilgili kütüphanenin değiştirilmesinden kaynaklandığını düşünüyorum. Bunun için yapılması gereken işlem ilk olarak QT kurulumunu SRC ile birlikte yapmış olmak. Sonrasında aşağıdaki komutları QT'nin kurulu olduğu klasöre göre bulup çalıştırmak.
İşlemleri yapmadan öncesinde Ubuntu için Lib Qt5 Sql5 kütüphanesini yükleyerek hatanın giderilip giderilmediğini denemenizi öneririm. Çözüm olursa daha fazla vakit ayırmamış olursunuz. Eğer yine çözüm olmaz ise sonraki aşamaları deneyebilirsiniz. Sonraki aşamaların denenmesi dizin yolları doğru olduğu sürece hiçbir problem oluşturmayacaktır.
sudo apt-get install libqt5sql5-mysql
Ben QT5.4 kurulumunu /home/aydin/Qt5.4.0/ klasörüne yaptım. ~/ home klasörünüzü işaret eder. Sizde aşağıdaki yolları buna göre düzenlemelisiniz.
cd ~/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/mysql
sudo ~/Qt5.4.0/5.4/gcc_64/bin/qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient_r" mysql.pro
sudo make
sudo make install
NOT: Lütfen her komut çalıştırdığınızda çıkan mesajı (varsa) kontrol ediniz. Not found'un "dosya bulunamadı" anlamına geldiğini ve sizdeki QT versiyonu veya MySQL yolu ile ilgili olarak ihtiyaç duyulan dosyanın bulunamadığını dikkate alınır.
Artık QT ve Python yolculuğu için ilk adımı attık. Bakalım daha ne sorunlarla karşılaşacağız ve tabi çözümlerini paylaşacağız.
9 Ocak 2015 Cuma
Sunucuda C99 / R57 vb PHP Arka Kapıları (Backdoor) Bulmak
Sunucu da C99 ve R57 php shell scriptlerini arayalım:
C99 Shell ara:
R57 Shell ara:
~10 Mb. 'dan büyük PHP dosyalarını ara (/home):
Küçük bir script ile tüm sunucuyu taramak yerine sadece public_html klasörlerini tarayabilirsiniz. Cpanel/WHM kullandığım CentOS sunucu için yazdığım basit bash scripti kendinize göre uyarlayabilirsiniz (/home/kullaniciadi/public_html/ klasörlerini tarar):
Gelişmiş özellikler ile Linux Malware Detect kullanabilirsiniz.
Kaynak: Cyberciti.biz (PHP güvenliği üzerine birçok konu var)
C99 Shell ara:
grep -iR 'c99shell' /home
find /home -name \*.php -type f -print0 | xargs -0 grep c99
R57 Shell ara:
grep -iR 'r57shell' /home
~10 Mb. 'dan büyük PHP dosyalarını ara (/home):
find /home -name "*.php" -type f -size +10000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'Tehlikeli PHP Fonksiyonları arayalım:
grep -RPn "(passthru|shell_exec|system|base64_decode|eval)" /home
Küçük bir script ile tüm sunucuyu taramak yerine sadece public_html klasörlerini tarayabilirsiniz. Cpanel/WHM kullandığım CentOS sunucu için yazdığım basit bash scripti kendinize göre uyarlayabilirsiniz (/home/kullaniciadi/public_html/ klasörlerini tarar):
#!/bin/bash
for d in /home/*/ ; do
grep -iR 'c99shell' "$d"public_html
grep -iR 'r57shell' "$d"public_html
grep -RPn "(passthru|shell_exec|system|base64_decode|eval)" "$d"public_html
find "$d"public_html -name \*.php -type f -print0 | xargs -0 grep c99
find "$d"public_html -name "*.php" -type f -size +10000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
done
Gelişmiş özellikler ile Linux Malware Detect kullanabilirsiniz.
Kaynak: Cyberciti.biz (PHP güvenliği üzerine birçok konu var)
28 Ekim 2014 Salı
Topluca Dosya Uzantısı Değiştirmek (Bash)
Debian ve türevleri üzerinde ihtiyacım olan ve bir klasörde bulunan dosyaların topluca uzantısını değiştirmek için aşağıdaki basit scripti yazdım. Üzerinde küçük oynamalarla dosyalar için daha farklı işlemlerde de kullanabilirsiniz.
Dosyayı ren.sh olarak kaydettikten sonra terminalden
ile dosyamızı çalıştırılabilir yapıyoruz ve çalıştırmamız yeterli
#!/bin/bashKısaca scripti açıklamak gerekirse ikinci satırda yer alan *.* kısmını tüm dosyalar olarak algılar ve sonrasında bir döngü içerisinde her dosyayı tek tek do ve done içerisine sokar. Do içerisinde mv ile dosyaları taşıyoruz ve taşırken ismini değiştiriyoruz. Uzantı kısmını .tr ile belirttiğimiz kısımdan değiştirebilirsiniz.
for file in *.*
do
mv -- "${file}" "${file%.*}.tr"
done
Dosyayı ren.sh olarak kaydettikten sonra terminalden
$ chmod +x ren.sh
ile dosyamızı çalıştırılabilir yapıyoruz ve çalıştırmamız yeterli
$ ./ren.shShell Scripting ilginizi çekiyorsa devamını getiremediğim Shell Scripting 1 konusu ön bilgi açısından işinize yarayabilir.
9 Ekim 2014 Perşembe
Debian Kurulum & Çözümler
Bu ilk debian kurulum ve kullanım deneyimim ve paylaşmak istedim. Yaşadığım sorunlar ve çözümlerini paylaşarak ilk kurulumlarda çıkabilecek olası sorunlara çözümleri tek yerden ulaşılmasını amaçlamaktayım.
Kurulumda ilk ve en önemli nokta anlayabileceğiniz bir dil (Türkçe / İngilizce gibi) seçtikten sonra gelen mesajları okumanız. Endişelenmeyin önemli işlemlerde Debian sizi 2. defa uyaracaktır ama yine de dikkatli olmakta fayda var.
Disk Bölümleme (windows ile birlikte kullanım)
Ubuntu, Mint gibi Debian türevlerinde bu işlemler çok basit şekilde yapılabilmekte fakat Debian'da dikkat edilmesi gereken küçük detaylar var. Gözünüz korkmasın çünkü gerçekten oldukça kolay ve basit. Öncelikle diskinizin Debian için bir bölümünün ayrıldığını düşünüyorum aksi halde diskin tamamında windows var ise bu durumda diske tamamen debian kurmak dışında bir alternatifiniz kalmıyor. Debian için yer ayırdıysanız ilgili alanı seçtikten sonra "Bölümü Sil" (bu anlama gelen ilgili satır) ile bölümü silin ve tekrar listeye gelip seçtikten sonra "Yeni Bölümü Otomatik Oluştur" seçmeniz yeterli. Bu durumda sizin yerinize ext4 ve takas alanlarını disk boyutuna göre otomatik oluşturacaktır. Sonrasında devam etmeniz yeterli..
Oluşturduğunuz Kullanıcıya Root Yetkisi Vermek
Kendi bilgisayarınız/laptopunuz da Debian kullanıyorsanız komut satırından root'a geçip (su komutu ile) komutlar yazmak hem zahmetli hem de tab ile komut tamamlama işlevini devre dışı bıraktığı için hoşlanmadığım bir durum (belki tab ile tamamlama etkinleştirilebiliyordur). Bu nedenle ben kullanıcıma gerekli durumlarda parolamı girerek root yetkisi vermek istiyorum. Bunun için komut satırından
sudo visudo
ile sudoer'i düzenleyebileceğiniz ayarlar dosyası nano editörü ile açılır. Burada root ALL=(ALL:ALL) ALL yazan satırı bulun ve altına root yerine kendi kullanıcı adınızı yazarak aynı satırı tamamlayın.
örn:aydin ALL=(ALL:ALL) ALL
Masaüstü Simgeleri
Klasik windows veya ubuntu gibi masaüstünüzde Bilgisayarım, Çöp Kutusu gibi simgelerin olması için Süper Tuşuna (windows tuşu) basıp Advanced Settings yazarak arayın ve çalıştırın. Desktop menüsünden istediğiniz seçenekleri aktif etmeniz yeterli. Diğer menülere de göz atmanızı tavsiye ederim.
Wireless Kart (Broadcom)
Non-free bir paket ve kurunca sorun düzeldi. https://packages.debian.org/wheezy/all/firmware-brcm80211/downloadChromium Türkçeleştirme
Eğer chromium kurduysanız ve ingilizce ise:# aptitude install chromium-browser-l10nKapatıp açmanız yeterli.
Grub Bekleme Süresini Kısaltma
# nano /etc/default/grubile grub ayarlarını açtıktan sonra
GRUB_TIMEOUT=5kısmındaki 5 saniyeyi düşürebilirsiniz. Sonrasında grub update etmeniz yani işlemi uygulamanız gerekmekte
# update-grub
Otomatik Başlat (Auto Start)
Guake gibi yazılımlar sürekli aktif olması gerekir. Bu durumda her yeniden başlatma sonrası tekrar çalıştırmalısınız. Bunun yerine otomatik başlamasını sağlayabilirsiniz. Bunun için ilgili yazılımı kurduktan sonra:
# cp /usr/share/applications/guake.desktop /etc/xdg/autostart/Burada guake için örnek verdik, siz istediğiniz yazılımı bu şekilde uygulayabilirsiniz.
Copy.com Client
AskUbuntu'da 13. maddede çok güzel açıklanmış:http://askubuntu.com/questions/299443/how-do-i-install-copy-file-syncing-software
Chromium (Chrome) Pepper Flash Eklentisi
Chromium (Chrome) kullanıyorsanız flash eklentisi olarak Google tarafından Chromium (Chrome) için geliştirilen Pepper Flash eklentisini kurmanız gerekmektedir. Aşağıdaki adımları izlemeniz yeterli olacak.
# sudo -s
# echo "deb http://ftp.dk.debian.org/debian wheezy-backports main contrib" >> /etc/apt/sources.list
# aptitude update
# aptitude -t wheezy-backports install pepperflashplugin-nonfree
Yeni sürüm kontrolü için:
# update-pepperflashplugin-nonfree --status
Son versiyona yükseltmek için:
# update-pepperflashplugin-nonfree --install
18 Eylül 2014 Perşembe
Ubuntu ile Bozuk Sektör Tarama
Çok sık karşılaşılan bozuk sektör (bad sector) bazen diski açılamaz veya kullanılamaz hale getiriyor. Birkaç sektör bile olsa diskin okuma yazma sorunları nedeniyle istediğiniz verilerin yedeğini dahi alamayabiliyorsunuz. Bu nedenle öncelikle bu sektörleri taramalı ve bir dosyaya kaydetmeli ve sonrasında da bozuk olarak işaretlenmelidir.
Bahsettiğimiz işlemler için badblocks ve fsck komutlarını kullanacağız.
Diskte bozuk sektör olup olmadığını sadece test etmek için:
Burada ben diskin tamamını taramak için sdb olarak belirttim fakat sizde sdc gibi 3. disk kullanıyor olabilirsiniz. Diskin sadece belirli bir bölümünü (birden fazla parçaya bölünmüş diskler için) taratmak için sdb1, sdb2, sdb3 gibi belirtebilirsiniz.
Yukarıda bahsedilen işlem sadece tarama işlemi yapacaktır. Eğer amacınız bu sektörleri tespit edip bahsettiğimiz gibi işaretlemek ise o zaman aşağıdaki komut ile sonucu dosyaya yazmalısınız.
Böylece hem tarama hem de tarama sonucunun dosyaya yazdırılması işlemini yapmış olursunuz.
Son adım olarak tespit edilmiş sektörleri kullanılmaması için işaretleyen komutu uygulayacağız:
NOT: badblocks işlemi disk boyutuna göre 6 saati geçebilmektedir. Ben testimi 500 gb bir disk üzerinde gerçekleştirdim ve yaklaşık 6 saat sürdü.
Bahsettiğimiz işlemler için badblocks ve fsck komutlarını kullanacağız.
Diskte bozuk sektör olup olmadığını sadece test etmek için:
sudo badblocks -sv /dev/sdb
Burada ben diskin tamamını taramak için sdb olarak belirttim fakat sizde sdc gibi 3. disk kullanıyor olabilirsiniz. Diskin sadece belirli bir bölümünü (birden fazla parçaya bölünmüş diskler için) taratmak için sdb1, sdb2, sdb3 gibi belirtebilirsiniz.
Yukarıda bahsedilen işlem sadece tarama işlemi yapacaktır. Eğer amacınız bu sektörleri tespit edip bahsettiğimiz gibi işaretlemek ise o zaman aşağıdaki komut ile sonucu dosyaya yazmalısınız.
sudo badblocks -sv /dev/sdb > /home/aydin/bozuk-sektorler
Böylece hem tarama hem de tarama sonucunun dosyaya yazdırılması işlemini yapmış olursunuz.
Son adım olarak tespit edilmiş sektörleri kullanılmaması için işaretleyen komutu uygulayacağız:
sudo fsck -l bozuk-sektorler /dev/sdb
NOT: badblocks işlemi disk boyutuna göre 6 saati geçebilmektedir. Ben testimi 500 gb bir disk üzerinde gerçekleştirdim ve yaklaşık 6 saat sürdü.
14 Temmuz 2014 Pazartesi
Kaydol:
Kayıtlar (Atom)