NMAP nedir?

Kasım 18, 2009 fentanyl Yorum yapın

Nmap, sistem yöneticilerinin geniş ağlarını taramasında ve hangi istemci/sunucusunda hangi servislerin çalıştığını saptamasında kullanabileceği bir araç olarak tasarlandı.

Nmap geniş bir tarama yelpazesini destekler ; UDP, TCP Connect, TCP SYN (Yarı Açık), FTP Proxy Bounce Atağı, TCP FIN, TCP Xmass Tree, ICMP (Ping Sweep), ACK Sweep, SYN Sweep ve Null Scan bunlara birkaç örnektir. Bahsi geçen port türleriyle ilgili daha ayrıntılı bilgi bu yazının ilerleyen bölümlerinde ve Port Tarama Nedir? yazımızda bulunmaktadır. Nmap ayrıca gelişmiş özelliklere sahip bir araçtır, TCP/IP parmak izleri ile hedefin işletim sistemini saptayabilir, Stealth (Gizli) tarama yapabilir, taramalarında dinamik zamanlamalar kullanılabilir, paralel taramalar yapabilir, ping atarak aktif hostları bulabilir, RPC taraması yapabilir, esnek port ve hedef özelliklerine sahiptir.

Unutulmaması gereken en önemli nokta hedef sistemde açık olan portların nmap’in standart olarak nitelendirilen ve /etc/services dosyasından aldığı port numarası ve sunucu servis karşılaştırılmaları tablosu aracılığıyla tespit edilmiş olmasıdır.

Örnek olarak standart kullanımda 21/TCP ftp protokolü için kullanılan bir port olması dolayısıyla bu portu açık bulan nmap servisin ftp olduğunu bildirecektir, ancak o portu dinleyen servis farklı bir servis (örnegin vnc sunucusu) olabilir.

Şimdi neler yapabileceği anlatıldığına göre sıra bunların nasıl yapıldığını anlatmaya geldi.

Tarama Türleri

-sT  TCP Connect Scan : En basit anlamda çalışan tarama tekniğidir, hedef porta bağlanmak için SYN paket gönderir, karşılığında SYN/ACK paketi gelirse ACK paketi göndererek porta bağlanır ve portun açık olduğunu rapor eder, eğer SYN paketine RST cevabı gelirse portun kapalı olduğunu rapor eder. Bu tarama türünde extra paket özelliklerine sahip olmak gerekmediği için root olmayan kullanıcılarda kullanabilir. En kötü özelliği açılan tüm oturumların hedef sistem, Firewall yada IDS tarafından loglanıyor olmasıdır.

-sS TCP SYN Scan : Yarı açık olarakta tanınan SYN tarama oturumu tamamen açmaz, SYN paketinin karşılığında SYN/ACK paketi geldiğinde portun açık olduğunu rapor eder ve RST paketi göndererek oturumu kapatır, port kapalı ise hedef zaten direk RST cevabı gönderir. Bu yöntemi uygulayabilmek için root olmak gerekmektedir. IDS ve Firewall’lara yakalanma ihtimali ve loglanma ihtimali azdır.

-sF, -sX, -sN : Bu tarama yöntemleri ise sırayla gizli FIN , Xmass Tree ve Null Scan’dir. IDS ve Firewall’ların SYN taramaları loglayabileceğini düşünerek kullanılan yöntemlerdir. FIN, Xmass Tree ve Null scan paketlerinin gönderilmesi durumunda hedefin RFC 793’te açıklandığı gibi kapalı olan tüm portlar için RST cevabı göndermesi mantığına dayanır. Bu yöntem IPeye ve NmapNT ile windows platformunda da uygulanabilmektedir. Ayrıca bu tarama yöntemleri açık port buluyorsa (FIN taramada Windows sistemlerindeki tüm portlar açık olarak görünmektedir, çünkü Windows tabanlı sistemler bir oturuma ait olmayan FIN paketleri ile karşılaşıyorsa tümünü göz ardı ederler ve göz ardı edilen paketler standart olarak portun açık olduğu anlamına gelir.) hedefin sistemi Windows tabanlı değildir. Eğer SYN scan açık port buluyor ve bu tarama yöntemleri bulamıyor ise hedef Windows tabanlı bir sisteme sahip demektir. Nmap’in İşletim sistemi saptama özelliklerine bu durum dahildir. Windows’la aynı tepkiyi veren bazı sistemler ise Cisco, BSDI, HP/UX, MVS ve IRIX’ tir.

-sP Ping Sweep : Taranılan ağda hangi hostların aktif olduğuna ihtiyaç olduğunda kullanılan genel yöntem ICMP Echo paketleri gönderip cevap beklemektir, son zamanlarda bu ping isteklerinin Firewall’lar tarafından bloke edildiği düşünüldüğünde alternatif çözümler geliştirilmelidir. Bu durumda nmap TCP ACK paketi gönderiyor (standart olarak 80. porttan – değiştirilebilir), eğer porttan RST cevabı geliyorsa sistemin aktif olduğu rapor ediliyor. Diğer alternatif teknikte bir SYN paket gönderip hedeften SYN/ACK yada RST cevabı beklemektir, her iki cevapta sistemin aktif oldugunu gösterir. Root olmayan kulanıcılar için ise standart TCP Connect yöntemi kullanılır. Standart olarak ICMP ve ACK teknikleri paralel olarak uygulanır. Eğer bunun değiştirilmesi istenirse -P* parametreleri kullanılarak bu yöntemler değiştirilebilir. Ayrıca bu pingleme işlemi tamamlandığında sadece aktif sistemler taranır, bu seçenek ping taraması kullanmadan port taramaya geçmek isteniyorsa kullanılabilir.

-sU UDP Scan : Bu teknik hedef bilgisayarın UDP portlarından hangilerinin açık olduğunu saptamak için kullanılır.

(RFC 768) Hedef makinede açık olduğu düşünülen porta 0 byte’lik bir UDP paket göndermek ve “ICMP Port Unreachable” paketini beklemek temeline dayanır. Paket gelirse port kapalı gelmezse açık olduğuna karar verilir. Bazı insanlar UDP taramayı önemsemezler. Önemsemelerini gerektiren sebepler arasında Tftp, NFS, Snmp gibi protokollerin UDP üzerinden çalışması ve Solaris’in RPCBind açığı sayılabilir.

-sA ACK Scan : ACK tarama yöntemi Firewall`ların ACL`lerini bypass ederek tarama yapılmasını sağlar. Bazı Firewall`lar stateful yada basit paket filtreleme Firewall`ları olabilir, dışarıdan gelen SYN paketlerini bloke edebilir ancak ACK flag’lı paketin geçişine izin veriyor olabilir. Rastgele üretilmiş ack/sequence numaralarıyla yapılır. Cevap gelmezse yada ICMP port unreachable mesajı geliyorsa port filtrelenen bir porttur. Nmap genellikle portlar için unfiltered nitelemesi yapmaz. Bu taramada bulunan portları asla açıkca `open` olarak nitelendirmez.

-sW Window Scan : Bu gelişmis tarama türü ACK tarama türüne çok benzer, portların açık olup olmadığını taraması dışında bu portları filtered/unfiltered olarak nitelendirir ve çerçeve boyutundaki farklılıklardan hedefin işletim sistemini saptar. Aralarında AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD, OpenBSD, OpenStep, QNX, Rhapsody, SunOS 4.X, Ultrix, VAX ve VxWorks gibi işletim sistemlerininde bulunduğu işletim sistemlerinin bazı versiyonları bu durumdan etkilenir. Tam listeye ulaşabilmek için Nmap-Hackers posta listesinin arşivlerine bakılabilir.

-sR RPC Scan : RPC taramaları için diğer tarama türleriyle beraber kullanılır. Bütün TCP/UDP portları tarayarak açık bulduğu portlarda SunRPC`nin “NULL” komutlarını kullanarak rpc portlarını saptamaya çalışır, eğer rpc portu bulursa çalışan program ve sürümlerini saptamaya çalışır. Böylece Firewall yada diğer paket filtreleme cihazları hakkında bazı işe yarar bilgiler saptamaya çalışır. Decoy özelliği şu an için RPC taramalarda kullanılamıyor ancak bazı UDP RPC taramalarında bu özellik nmap`e eklenmiştir.

-b (ftp relay host) : Ftp protokolunun ilginç bir özelliği proxy için destek vermesidir (RFC 959). Bunun için öncelikle hedefin ftp sunucusuna bağlanmak gereklidir, daha sonra internette herhangi bir yerden o sunucuya bir dosya gönderilebilir. RFC nin yazıldığı 1985 yılından günümüze kadar ftp bu özelliğe sahip olabilir. Böylece bir ftp sunucu üzerinden TCP port tarama yapabilme imkanıda kazanılmış olur. Bu seçenek ile bu denemeler uygulanabilir.

Devamını okuyun…

C# Günleri – Gün 3

Kasım 15, 2009 fentanyl Yorum yapın

Visual C# 2008

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Proje1

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine(“msdundar”);

Console.Write(“To continue press any key”);

Console.ReadKey();

}

}

}

F5 veya Start Debugging ile derletip sonucu konsoldan görebiliriz.

Şimdi  öyle  bir  ayarlama  yapacağım  ki  bu uygulama çalıştırıldığı zaman ekrana bir pencerenin gelmesini sağlayacağım.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Proje1

{

class Program

{

static void Main(string[] args)

{

System.Windows.Forms.Form Form1;

Form1 = new System.Windows.Forms.Form();

Form1.Text = “MSDundar”;

System.Windows.Forms.Application.Run(Form1);

}

}

}

Bu kodu dikkatlice  incelerseniz using deyimiyle System.Windows.Forms adlı  namespace’deki  Class’lardan  yararlanılmak  istendiği  belirtilmiş.  Aynı satırı sizler yazmaya kalkışırsanız hata meydana gelir. Çünkü bu Namespace .NET  Framework  ile  gelen  System.Windows.Forms.dll  adlı  DLL dosyasında  yani  referansta  yer  almaktadır.  .NET  Framework’e  ait  klasöre baktığınızda bu dosyayı görebilirsiniz.

Konsol  uygulamaları  dahilinde  ekrana  pencere  getirmek  için  bu  DLL dosyasının konsol uygulamasına dahil edilmesi gerekiyor. Başka bir deyişle Express Edition’ın bu referans hakkında bilgilendirilmesi gerekir. Bunun  için Express Edition penceresi içinde yer alan Solution Explorer penceresinden yararlanıp  Add  Reference  diyalog  kutusunu  ekrana  getirip System.Windows.Forms.dll referansını uygulamaya dahil etmelisiniz.

Her  ne  kadar  burada  referansın uygulamaya  dahil  edildiğinden  söz  edilse  bile  gerçek  tam  böyle  değildir. Yapılan,  Express  Edition’ın  dolayısıyla  C#  derleyicisinin  bu  referanstan yararlanılmak istendiği konusunda haberdar edilmesinden ibarettir.

Yukarıda  verilen  kodun  üzerinde  biraz  duralım.  Main() metoduna  yazdığım  bu  satırların  ilkinde  “Form1”  adında  ve System.Windows.Forms  adlı  Namespace’teki  Form  sınıfı  tipinde  bir değişken  tanımlanmaktadır. Devamında  new  anahtar  kelimesi  ile  Form sınıfının  örneğini  alıp (yani  nesne  hazırlayıp)  referansını  Form1  adını verdiğim değişkene aktardım. En son olarak bu Form nesnesini Application sınıfının Run() metoduna parametre olarak verdim. Dikkat ederseniz burada tanımladığım  değişkene  Form1  adını  verdim.

C# Günleri – Gün 1&2

Kasım 14, 2009 fentanyl Yorum yapın

En az satır sayısına sahip, en basit C# kodu :

class Deneme

{

static void Main(string[] args)

{

}

}

Main() metoduna program içinde mutlaka yer vermeliyiz.

En az satıra sahip bu C# programındaki Main() metodunun hem static hem de  void  olduğunu  işaret  ettim.  C#  programlarının  başlangıç  noktası  olan Main() metodu(C  programlama  dilinde Main’den  fonksiyon  diye  söz  edilir) statik olmak zorundadır ama void olması zorunlu değildir. Metot geriye bir değer  göndermeyecekse  metot  adından  önce  void  yazılır.

Main() metodunun adından sonra parantezlerin arasına  “string[]  args”  yazdım.  Bu parantezin  içine  yazdıklarım  gerçekte dizi değişken  tanımlamaktan başka bir  şey değildir. Main  metodu  içinde tanımlanan  dizi  değişkene  “args”  adını  vermek  C#  programcılarının  bir alışkanlığıdır.

Şimdi  yukarıda  verdiğim  C#  programının  başlangıç  noktası  olan  Main() metodu  içinde  bir  değişkene  yer  vereceğim.  Bu  değişkeni  Main() metodu içinde tanımladım. Değişkeni Main() metodu tarafından sınırlanan kod bloğu yerine Class bloğu içinde tanımlayabilirdim.

class Deneme

{

static void Main(string[] args)

{

int yil;

}

}

Gördüğünüz  gibi  C#  programlarında  değişken  tanımlanırken  önce değişkenin  tipi sonra adı yazılmaktadır. Buradaki  int bu değişkenin  integer yani  tamsayı  tipindeki  bilgileri  saklayabileceğini  işaret  etmektedir.

Main() metodu  içinde yaşayabilecek  “yil” adında ve  Integer tipindeki bilgilerin aktarılabileceği bir değişken tanımlanmıştır. Bu değişkeni Main() metodu  içinde  tanımladığım için yalnızca Main() metodunun sınırları içinde  yaşar.  Fark  etmiş  olabileceğiniz  gibi  C#  programlarında  Class  ve metot başlatılan satırlar hariç her satırın sonuna “;” konulmaktadır.

Şimdi yukarıda verdiğim basit C# kod dosyası içinde Mesaj() adını verdiğim

metodu  Main()  metodunun  içinden  işleteceğim.  Hazırladığım  metot  aynı

sınıfın içinde olduğu için herhangi bir hazırlık yapmadan direk adıyla çağırıp

işletmek mümkündür.

class Deneme

{

static void Main(string[] args)

{

int yil;

Mesaj();

}

static void Mesaj()

{

}

}

Bu  programı  aşağıdaki  gibi  düzenlemiş  olsaydım  değişen  bir  şey  olmazdı.

Çünkü  C#  derleyicisi Main() metodunu  bulup  programın  başlangıç  noktası

yapar. Bu kısa örnekte “yil” adını verdiğim değişkeni hiç kullanmadığım için

C# derleyicisi derleme sırasında uyarı mesajı verir.

class Deneme

{

static void Mesaj()

{

}

static void Main(string[] args)

{

int yil;

Mesaj();

System.Console.WriteLine(“MSDundar”);

}

}

Konsolda  yani  DOS  penceresinde çalışan  C#  projelerinde  ekrana  bilgi  yazma  işlemleri  .NET  Framework  ile gelen Console sınıfında tanımlı olan Write() veya WriteLine() metotları ile yapılmaktadır.

Bu  şekilde  düzenlenen  C#  uygulaması  DOS  penceresinde  derlenip çalıştırıldığında  ekrana  “MSDundar”  yazdırıldıktan  sonra  programın çalışması sona erer. Çünkü C# ile geliştirilmiş programların çalışması Main() metodunun sonuna gelindiğinde biter.

Mesaj()  metoduna  yazdığım  satır  hakkında  biraz  konuşmak  gerekirse; “System.Console.WriteLine(“MSDundar “);”  satırındaki  System  bir namespace’tir.

Kısaca  anlatmak  gerekirse  Class’lar  Namespace’lerin  içine yerleştirilmektedir.  System  adlı  Namespace  .NET  Framework  ile  gelen  en önemli  Namespace’tir  ve  çok  sayıda  Class’ı  barındırmaktadır.  DOS penceresine veya konsola bilgi yazmak üzere hazırladığım satırdaki Console bir Class’tır. Çok sayıda metoda sahip olan bu Class’ın sayesinde konsol yani DOS  penceresi  ile  ilgili  istenen  işlemler  yapılabilmektedir.  Bu  satırdaki WriteLine() ise Console sınıfının bir metodudur.

Hazırlayıp  derlediğim  C#  programı  ekrana  bu  bilgiyi  yazdıktan  sonra  yani Main()  metodunun  sonuna  gelindiğinde  çalışması  otomatik  olarak  sona erer. Şimdi  bu  örmekte  öyle  bir  ayarlama  yapalım  ki  programın  veya  exe dosyanın  çalışması  Enter  tuşuna  basıncaya  kadar  devam  etsin.  Programın çalışmasının Enter tuşuna basıncaya kadar devam etmesini sağlamak üzere Deneme adını verdiğim Class’ın Main() metoduna bazı eklemeler yaptım.

Devamını okuyun…

İstemci Güvenliğini Sağlamak, Güncelleştirmeler, Windows Server Update Services (WSUS)

Kasım 2, 2009 fentanyl Yorum yapın

Wsus, sistem yöneticilerinin ağlarında bulunan, Windows işletim sistemine sahip bilgisayarlardaki güncellemeleri (Office, Exchange, SQL, Windows) takip etmelerini sağlayan bir servis yazılımıdır.

  • Windows Server 2008 R2 ile uyumludur.
  • Windows Server 2008 R2′deki BranchCache özelliğini destekler.
  • Windows 7 ve Windows Server 2008 R2 istemcisini destekler.
  • Rapor özelliği sunar.
  • WSUS 3.0 SP2 yalnız başına yüklenebilir veya WSUS 3.0 SP1′e güncelleme olarak kullanılabilir.

WSUS’u kurmak için minimum sistem gereksinimleri :


1. 6 GB boş disk alanı.

2. System partition NTFS ile formatlanmış olması.

3. IIS 5.0 (Windows 2000) ya da IIS 6 (Windows 2003/R2) kurulu olması gerekir.

4. Net Framework 1.1 SP1.

Devamını okuyun…

Güzel bir seminerdi..

Ekim 19, 2009 fentanyl Yorum yapın

Bugün Microsoft Certificied Application Developer | SOA Danışmanı Gökhan Öztopuz‘un seminerine katıldım. Yaklaşık 3,5 saat süren seminerde :

Web Temelleri (html, css, javascript, ajax, .NET)
Web servisleri (xml)
Ajax örnekleri
Azure
Bulut Bilişimi

Konuları üzerinde duruldu.

Yarın “Daron Yöndem” hocanın seminerine katılacağım.  O seminerde ise :

WPF ile 3D animasyonlar

LINQ ile veritabanı erişimi

Silverlight

konuları üzerinde durulacak.

Bugün ki seminere ait sunular :

BULUT BİLİŞİMİ-SAAS-AZURE

WEB SERVİSLERİ-

Web Temelleri

Kolay gelsin.

M.Serhat Dündar

Mod Security Kullanım Kılavuzu

Eylül 26, 2009 fentanyl Yorum yapın

Not: Bu döküman “Mod Security Reference Manual” dökümanından yararlanılarak yazılmıstır.

Zaman zaman içinde kendi yorumlarım ve örneklerim bulunmaktadır.

Giris

Mod Security Nedir?

Mod Security, Web uygulamaları için gelistirilmis açık kaynak kodlu güvenlik duvarıdır “Web Application Firewall (WAF)”. Mod Security web sunucusuna gömülü sekilde çalısır.

Kullandıgınız ve ya yazdıgınız web uygulamaları için saldırı tespit ve engelleme görevini üstlenir.

Neden Kullanırız?  Yararları Nelerdir?

1. Mod Seucirty HTTP trafigini son derece detaylı dinler (Bunu ileride auditlog kavramında görecegiz). Apachenin loglarını göz önünde tutarsak istek içerigi ve cevap içerigi gibi ibarelerin loglanmadıgını görürüz. Oysa Mod Security HTTP trafigi üzerinde her türlü veriyi kayıt altına alma yetenegine sahiptir. Hatta bu logları gruplamanıza ve ya daha okunur sekilde yazdırmanıza yardımcı olur. Bir çok log analiz standartını desteklemektir. Özellikle kendi içinde guarding log sitilinide bulundurmaktadır.

2. Mod Security`nin bir avantajıda gerçek zamanlı veri analizi yapmasıdır. Bu ne demektir?

Kullanıcıların uygulamalarınız üzerinde ve ya web sunucunuza baglandıgı andan itibaren gelen giden veriler üzerinde istediginiz kontrolleri yapmanız demektir.

3. Saldırı tespit ve önleme için anında müdahaleler yapmanıza yarayan kurallar yazabilirsiniz.

Mod Security web uygulamalarınıza erismek isteyen saldırılara karsı anında tepki verir.

Bunu çogunlukla üç yolla yapar :

Devamını okuyun…

Sandcat – PHP, php.ini, httpd.conf Güvenliği

Eylül 11, 2009 fentanyl Yorum yapın

Tanım :

Syhunt firmasının en iyi ürünlerinden olan Sandcat’in, tamamen php scriptler için yazılmış hali “SandCat for PHP”.

Özellikler :

sandcatphp

** Sandcat’in paranoyak yapısını unutmamak lazım. Bütün $Post $Get $Sesion $Cookie karakterleri, echo komutu ve daha bir çoğu muhtemel tehlike onun için.

* Program sadece local olarak çalışmakta.

* Ücretsiz sürümünde tek seferde sadece 2 dosya için tarama yapabilirsiniz. Fakat tarama yapacağınız toplam dosya sayısı sınırsızdır.

Devamını okuyun…

Dranzer – ActiveX Nesnelerinin Güvenlik Testi Nasıl Yapılır?

Eylül 11, 2009 fentanyl Yorum yapın

Uzun zamandır activeX ile ilgili doğru düzgün bir güvenlik yazılımı görmemiştim. O yüzden bu yazılım gözümde bi kat daha değerli. Bugün security-database’de gezinirken rastladığım bu güzel programı paylaşmak istedim.

dranzer

Download :

http://sourceforge.net/projects/dranzer/

Usage (Kullanım) :

“dranzer.exe <secenekler>”

Seçenekler :

-o <outputfile> – Output Filename
-i <inputfile> – Use input file CLSID list
-d <notestfile> – Use don’t test CLSID List
-g – Generate base COM list
-k – Generate Kill Bit COM list
-l – Generate Interface Listings
-b – Load In Browser (IE)
-t – Test Interfaces Properties and Methods
-p – Test PARAMS (PropertyBag) in Internet Explorer
-s – Test PARAMS (Binary Scan) in Internet Explorer
-n – Print COM object information
-v – Print out version information
-r – Generate Kill Bit registry files

Örnek:

dranzer.exe -g

User Guide :

http://docs.google.com/Doc?docid=0ATn5yqW-bnJPZGhtZGNoZjVfMTAwYzU0NW04OXE&hl=tr

Döküman :

dranzer

Bakılması Tavsiye Kaynaklar :

http://www.cert.org/vuls/discovery/dranzer.html

M.Serhat Dündar

Devamını okuyun…

Gamja Vulnerability Scanner

Eylül 11, 2009 fentanyl Yorum yapın

Tanım :

Web application simple validation checking script for webpage
Simple Validation check Scanner – with all perimeter [ XSS , Validation Error , SQL Injection ...]
gamja v.1.6 – from screammingCSS+ Paros+ Private skill

Gereklilikler : wget , Perl

* Sisteminizde active perl kurulu olmalı.

* Programa ait dosyaları içeren .rar dosyasını unzip ettikten sonra C:\Perl\bin dizinine atınız.

* Komut satırı ile dizine inerek gamja.pl dosyasını çalıştırın.

terraaResim 1 : Komut satırı ve kullanım

Kullanımı usage kısmında belirtildiği şekildedir.

Yeni komut satırı gelene kadar sayfayı kapatmayınız.

Kullanım

“gamja.pl http://hedefsite[:port][/baslama/dizini]“

Detaylı Kullanım

“gamja.pl -v http://hedefsite[:port][/baslama/dizini]“

Tarama sonuçlarını C:\Perl\bin dizini içinde oluşacak 2 adet html dosyasından inceleyebilirsiniz.

terraa2

Download

http://sourceforge.net/projects/gamja/

M.Serhat DÜNDAR

Güvenli ASP.NET Prodüksiyon Ortamı

Eylül 8, 2009 fentanyl Yorum yapın

Web Uygulaması Güvenliği

Web uygulaması güvenliği sağlanırken genellikle akıllara ilk gelenler çeşitli kod enjeksiyonu zafiyetleri ve girdi doğrulama temelli yaklaşımlardır. SQL Injection’ı kesmek için parametrik sorgular, XSS’i kesmek için output encoding, LFI & RFI için doğru şekilde girdi doğrulama ve CSRF için de kritik fonksiyonaliteler için token uygulaması.

Oysa dünyanın en güvenli uygulamasını yazmış olsanız dahi, sunucu üzerinde tutulan bir klasörün izinlerini doğru şekilde düzenlemediyseniz , hack’lenmeniz işten bile değil ! Bundan dolayı işin kod kalitesi ile ilgili kısmını düşünürken, konfigürasyonel boyutunu da es geçmemek gerekmektedir.

ASP.NET

Günümüzde web uygulamaları bir çok programlama dili vasıtasıyla yazılabilmekte ve bir çok üretim ortamında çalışabilmektedir. Bu dillerden ve platformlardan önemli bir tanesi ise ASP.NET ‘dir.

ASP.NET ortamında geliştirilmiş uygulamaların konfigürasyon bilgileri web.config isimli dosyada tutulur.

Devamını okuyun…

MTTD Script – Validating Code&Penetration Testing&Translating

Ağustos 29, 2009 fentanyl Yorum yapın

Şimdilik sadece MTTD olarak yazacağım bu scripti. Çünkü pek duyulmamış bir script ve bulana kadar ömrümden ömür gitti (: Hemde özgür domainimle açacağım sitemde kullanacağım için süpriz olsun istiyorum.

Tam aradığım özellikleri içeren 324kb.’cık bi script. Kod yazarı Rus. Kendisine teşekkür mailimi attım ve türkçe tercümesini de yarın kendisine teşekkür mahiyetinde (vouw :) yollayacağımı bildirdim.

Validating işlemini tamamen bitirdim. Rus arkadaş baya bi yetenekliymiş.

Penetration Test kısmında şimdilik güvendiğim yazılımlardan olan Syhunt firmasının Sandcat’i ile script üzerinde bi kaç tarama yaptım :

ajax.lang.php, ajax.php dosyalarında XSS açıkları yaratması muhtemel satırlar bulundu.

Yine veritabanı bağlantı dosyalarında İnjection yaratması muhtemel satırlar bulundu.

** Sandcat’in paranoyak yapısını unutmamak lazım. Bütün $Post $Get $Sesion $Cookie karakterleri, echo komutu ve daha bir çoğu muhtemel tehlike onun için (:

Şuan oldukça uykulu olduğum için sandcat’i ve diğer frameworkleri kapatıp tüm işleri yarına bırakıyorum.

Saati yine 05.17 yaptım..

Categories: Blogroll

Web Açıklık Tarayıcıları – Bölüm 1

Ağustos 28, 2009 fentanyl Yorum yapın

Web uygulamalarında bulunan güvenlik zafiyetlerinin taşıdığı riskler, bu açıklıkları, günümüz siber güvenlik anlayışının en önemli konularından biri (belki de en önemlisi) haline getirmiştir. İstatistiklere göre her 10 web sitesinden 9’unda ciddi seviyede bir açıklığın olmasının yanında siber saldırıların %60’ından fazlasının web teknolojilerine yönelik gerçekleştirilmesi bu önemin açık bir nedenidir [1].

İki bölümden oluşacak bu yazının ilk bölümü, otomatik web zafiyet tarayıcılarının genellikle ilk fazı olan girdi noktası bulma algoritmaları ve etkinlikleri üzerine olacaktır.

Web uygulamalarında bulunan açıklıklar; SQL enjeksiyonu, XSS, yetersiz hata yönetimi, CSRF gibi sadece yazılımsal veya standartlarda bulunan dizayn tabanlı hatalar olmayıp, yönetimsel ve mantıksal hataları da içermektedir.

Bu yazılımlardaki güvenlik problemlerinin bulunması, düzeltilmelerindeki en önemli adımdır. Bu adımı gerçeklemek adına üç önemli yöntem; elle yapılan testler, web uygulama açıklık tarayıcıları, statik/dinamik kod analiz araçlarıdır. Ancak bilinmelidir ki, yazılımlarda bulunan risk seviyesi yüksek zafiyetlerin açığa çıkarılması sadece tek bir yöntemle mümkün veya uygulanabilir değildir. Bu nedenle kapsamlı bir risk haritası için her üç yönetimin de elden geldiğince uygulanması gerekir.

Otomatik web açıklık tarayıcılarının (WAT) kapsayıcı ve zaman açısından etkin olmaları, web güvenlik risk haritasının çıkarılmasında çok önemlidir. WAT çalışma süreçlerinin birçok safhası vardır ama işleyişleri genel olarak ikiye ayrılır; girdi keşfi ve zafiyet analizi.
Devamını okuyun…

Fuzz Testing

Ağustos 28, 2009 fentanyl Yorum yapın

Bu yazımızda uygulama test tekniklerinden birisi olan fuzz testing (fuzzing) tekniğini ve web uygulamalarına nasıl uygulanabileceğini göreceğiz.


Fuzz Testing (Fuzzing)

Bir uygulamada zafiyet tespit edebilmek için uygulamaya rastgele veriler göndererek, uygulamanın farklı isteklere verdiği cevapları analiz etmek isteyebiliriz. Bu rastgele veri gönderme işlemine fuzzing (fuzz testing), bu işlemi yapmaya yarayan araçlara ise fuzzer denilmektedir.

Fuzz testing; test yapılacak uygulamanın arka planında ki işlevsel ve yazılımsal özellikler bilinmediğinden ve gönderilen verilerin uygulamada oluşturduğu etki ve sonuçların analizine dayandığından, uygulama test tekniklerinden black-box kategorisine girmektedir [1,2].

1OY

Fuzz testing; yazılım geliştirme ve test süreçlerinde ve ters mühendislik işlemlerinde kullanıldığı gibi, web uygulamalarında zayıflık tespiti veya bilgi toplama amaçlı da kullanılmaktadır. Web uygulamaları için geliştirilmiş olan fuzzing araçlarını (fuzzer) iki kategoride inceleyebiliriz [3];

Devamını okuyun…

Web Açıklık Tarayıcıları – Bölüm 2

Ağustos 28, 2009 fentanyl Yorum yapın

İlk bakışta ve özellikle demolarda özellikleri ile baş döndüren bu araçlar, yakından tecrübe edildikçe ve üzerinde çalıştıkları teknolojiler/zafiyet detayları öğrenildikçe, başarmaya çalıştıkları görevin çok karmaşık ve zor olmasından, bazı durumlarda beklenildiği gibi çalışmadıkları görülmektedir.

Tekrarlamak gerekirse, bu yazıda otomatik tarayıcıların iddia ettikleri özelliklerin üzerine yoğunlaşılmıştır. İddia etmedikleri özellikler ise başka bir makale konusu olabilir (mesela, kullanıcı profili çapraz testleri, integer overflow, v.b.).

Tarayıcıyı Doğru Yolda Tutmak

Hassas verilerini son kullanıcılardan koruma güvenlik gereksinimi ile yazılan web uygulamaları, kimlik doğrulama ve yetkilendirme adımlarını gerçeklemektedirler. Bu uygulamaları uzaktan denetleyecek tarayıcıların, bu kontrollerden geçip uygulamanın dahili arayüzlerine ulaşması ve uygulamadan çıkmadan ulaşabildiği bütün arayüzleri denetlemesi gerekmektedir.

Tarayıcılar doğru yolda tutunabilmek için bir çok mantıklı seçenek getirmişlerdir; giriş makro kaydedicileri, logout link belirlenmesi, v.b. Bu seçenekler denetlenen uygulamaların çoğunluğunda (ağırlıklı olarak ASP.NET/PHP/ASP) işe yaramakla birlikte, bazı durumlarda yetersiz kalmakta ve taramaların eksik kalmasına neden olmaktadırlar.

Devamını okuyun…

Microsoft Security Essentials

Ağustos 28, 2009 fentanyl Yorum yapın

Microsoft Security Essentials, Microsoft’tan ücretsiz Anti-virüs Programı

MSE (Microsoft Security Essentials ), Microsoft’un yakın geçmişte (23 haziran 2009) betasını yayınladığı ücretsiz anti-virus programıdır. Windows Live OneCare’in devamı olarak görülen bu program, OneCare’dan farklı olarak en son anti-malware teknolojilerini içerir. Aynı zamanda bilgisayarınızın performansını, malware taraması süresince en üst seviyede tutmayı sağlayan bir uygulamadır.

Kod adı: Morro (MSE)

MSE (Microsoft Security Essentials ), Microsoft’un yakın geçmişte (23 haziran 2009) betasını yayınladığı ücretsiz anti-virus programıdır. Windows Live OneCare’in devamı olarak görülen bu program, OneCare’dan farklı olarak en son anti-malware teknolojilerini içerir. Aynı zamanda bilgisayarınızın performansını, malware taraması süresince en üst seviyede tutmayı sağlayan bir uygulamadır.

Projenin kod adı olan Morro (ingilizcede; tepedeki kale) bu programın dışarıdan gelen saldırılara karşı güçlü bir kale olacağını belirtmiş. Şu anki Beta testleri de bu durumu doğruluyor. Yalnızca Amerika, Çin ve Brezilya’ya açılan beta versiyonunu internet üzerinden edinmek mümkün. Performans, malware bulma ve malware’i etkisiz hale getirmek konularında oldukça iddialı.

Devamını okuyun…