Nessus ve Nikto
Bu yazımızda web uygulama güvenliği denetiminin parlayan iki yıldızı Nessus ve Nikto uygulamalarına değineceğiz.
Giriş
Hemen hemen bütün güvenlik denetimlerinin olmaz ise olmaz adımı hedef sistemler üzerinde keşif gerçekleştirmektir. Hem keşif gerçekleştirmek hem de zafiyet taraması için açık kaynak kod dünyasında bu işlem için kullanılan en popüler araçlardan bir tanesi şüphesiz Nessus’dur.
Hem ticari hem de ücretsiz sürümleri ile bir çok kişi tarafından yaygın bir şekilde kullanılmaktadır.
Nikto Sullo tarafından geliştirilmiş açık kaynak kodlu, ufak ancak hızlı çalışan bir web keşif uygulamasıdır. Kurulum gerektirmeden kolay bir şekilde kullanılabiliyor olması özellikle web güvenlik denetimlerinde tercih edilmesine sebep olmuştur.
Bu yazıda öncelikle Nikto uygulamasının nasıl kullanılabileceğini ardından, Nessus ile entegre biçimde web güvenlik denetimlerinde nasıl kullanılacağı anlatılmaktadır.
Burada anlatılanlar tamamen Unix/Linux sistemlere özeldir. Nessus’un Nikto uygulamasını kullanmak için kullandığı “nikto.nasl” plugini Windows sistemler üzerinde çalışan Nessus, Nikto ile kullanılamaz. Bu makalede RedHat 5.3, Nessus 4.0.1 ve Nikto 2.03 sürümü kullanılmıştır.
Read more…
Blind SQL Injection
Bir çoğumuz SQL cümlecikleri kullanarak veritabanlarımızda listeleme, güncelleme ve ekleme işlemleri yaparız. Fakat bu kullandığımız SQL cümleciklerinin ne tür sıkıntılar doğurabileceğinin üzerinde pek durmayız. Bir yazılımcı için önemli olan tüm kullanıcı listesini çekmek ise “SELECT * FROM users” yazmaktır. Belli bir numaraya sahip bir kullanıcı çekmek için ise “SELECT * FROM users WHERE UserID=101” yazmak yetecektir. Fakat kullandığımız programlama teknikleri bir kullanıcının bilgilerini çekmek için yazılan SQL cümleciğini çok tehlikeli durumlara sokabilir. Bu aslında bazen kullanılan dilin, bazen de yazılımcının tekniğinin sonucudur. Yine de ucu açık bir tartışma konusu diyebiliriz.
SQL Injection için söylenecekler çok fazla olsa da temel de problemin ortaya çıkış nedeni; cümleciğin herhangi bir yerine eklenen kod parçacıklarıyla farkedilir. Örneğin; “ ` ” gönderip, sonucunun hata dönmesi gibi. Tabi bazen bu hata çıktılarıda işimizi görmeyebilir veya hata dönmeyebilir. Blind hem SQL Injection açığını barındırmasıyla birlikte sonucun her zaman true/false dönmesiyle ilgilenir. Aslında bu açıklığın ciddi bir problem oluşturması temel bir matematik probleminin varlığıyla meydana gelmektedir.
Yeni bir site..
1 aya kadar kendime ait tamamen özgür domain bir web sayfası açacağım.
Anasayfa sadece css+xhtml’den oluşan janjanlı birşey oldu (:
Blog olarak WP mi kullansam Drupal mi kararsız kaldım ama sanırım bu kadar tecrübeyi çöpe atıp drupal kurmak olmaz (:
Sitemde twitter benzeri bir uygulama kullanarak Notepad kısmı oluşturmayı düşünüyorum. Kısaca yazmak istediklerimi bu kısımdan duyurup blogu kirletmeyeceğim (: Bunun için twitterin clone scriptini buldum fakat benim istediğimden oldukça detaylı bir uygulama.
Benim istediğim oldukça basit bir şekilde admin panelinde facebook’taki “Şuan ne düşünüyorsun” kısmına benzer bir kısım olması yeter. Oradan gireceğim girdilerin anasayfada görünmesi bana yetecek.
Bunun için hazır bir script bulamazsam kendim yazacağım :/
Hala hosting firmasına karar vermiş değilim.. Buradan hosting satanlara duyrulur. Linux hosting arıyorum.
Şuan aklımdaki firma :
http://www.turhost.com
Tabiki daha iyi bir öneri gelirse değerlendireceğim.
Kısa ama öz..
Ekşi’de babürhan nickli üyenin güzeller güzeli girdisi (:
———————————————————————–
1) hayatında ankara’nın doğusuna geçmemiş ve pkk hakkındaki tek cümlesi “aaa onlar fakirlikten dağa çıkıyor” ise
süper hümanist türktür.
2) 2-3 salak kahvehane muhabbetiyle pkk’yı kürtleri çözmeye kalkmışsa o zaman cahil salak angut türktür. zaten anında göt edilir.
3) yok efendim ciddi ciddi uzun uzun yazıyorsa, olayın farkında, adam gibi argümanlarla yaklaşıyorsa o zaman çıldırtırıcı türktür.
çıldırırlar o zaman bu kürt faşistleri. saçmalarlar. uzun çetrefilli sözleri kalmaz o zaman, maskeleri düşer..
XHTML Strict, XHTML Transitional ve XHTML Frameset Arasındaki Fark
Eğer web sitenizi hazırlarken web standartlarına uygun HTML kodu yazmak istiyorsanız HTML sayfanızın başına html dosya tipini ve hangi standarta göre html kodu yazdığınızı belirten bir kod eklemeniz gerekiyor. validator.w3.org gibi uyumluluk kontrolü yapan siteler bu koda bakarak html kodunuzun uyumluluğunu denetliyor… XHTML için üç adet DTD (Document Type Definition) var. Bu arada hala HTML 4.01 standartını da kullanabileceğinizi hatırlatmak istiyorum.
Üç adet XHTML DTD var. Peki ne gibi durumlarda hangisini kullanacağız ? Sizin için hangisi en uygun ?
XHTML Strict DTD (Sıkı XHTML)
XHTML Strict eğer standartlara uygun kod yazmak istiyorsanız ve sayfanıza görünüm vermek için CSS (Cascading Style Sheets) kodlarını kullanacaksanız bu tip sizin için. XHTML Strict DTD kullanacağınız HTML kodlarınızın başına eklemeniz gerek kod;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>
XHTML Transitional DTD (Geçiş XHTML)
XHTML Transitional DTD eğer standartlara uygun kod yazmak istiyorsanız ve XHTML’in görünüm yeniliklerini yani CSS’i kullanmayacaksanız. Örneğin <font> gibi html etiketlerini kullanıyorsanız bu tip sizin için uygun.
XHTML Strict <font> <u> gibi etiketleri desteklemez.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML Frameset DTD (Çerçeveli XHTML)
XHTML Frameset DTD eğer standartlara uygun bir kod yazmak istiyor ve sayfanız çerçeveli bir tasarıma sahip ise bu döküman tipini kullanmalısınız.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
Kaynak :
Kısacık Html Eğitimi (:
BAZI STANDART HTML KODLARI :
<HTML></HTML>
<HEAD></HEAD>
<TITLE></TITLE>
<!– … –>
<BR></BR> veya <br />
<CENTER></CENTER>
<H?></H?> 1-5 arası değer. Yazı büyüklüğü.
<FONT SIZE=”sayı” COLOR=”renk” FACE=”yazı tipi”></FONT>
<U></U> Altıçizili
<I></I> İtalik
<SUP></SUP> Üstindis
<SUB></SUB> Altindis
<PRE></PRE> Web sayfasında yazdığınız metnin NodPad’e yazdığınız formatta görünmesi için bu deyim kullanılır.
<img src=”w3schools.jpg” width=”104″ height=”142″ />
Atam İzindeyiz..
“Bir takım şeyhlerin, dedelerin, seyyitlerin, çelebilerin, babaların, emirlerin arkasından sürüklenen ve falcılara, büyücülere, üfürükçülere, muskacılara talih ve hayatlarını emanet eden insanlardan mürekkep bir kütleye, medeni bir millet nazariyle bakılabilir mi?”
“Türkiye Cumhuriyeti şeyhler, dervişler, müritler, meczuplar memleketi olamaz. En doğru, en hakiki tarikat, medeniyet tarikatıdır.”
MySQL: Secure Web Apps – SQL Injection techniques
Bu adresten okuyabilirsiniz :
http://docs.google.com/Doc?docid=0ATn5yqW-bnJPZGhtZGNoZjVfNzloamRjeG1mdA&hl=tr-[ Bilgiler ]———————————————————————–
Title: “MySQL: Secure Web Apps – SQL Injection techniques”
Author: Omni
Website: http://omni.playhack.net
Date: 2009-02-26 (ISO 8601)
Translate : Serhat DÜNDAR ( CWKaradeniz / clbrTR / clbr.fentanyl / FenTanyL etc.. )
———————————————————————————
-[ Özet ]———————————————————————
0×01: Açıklama
0×02: SQL Injection
0×03: Giriş formlarını exploit etmek
0×04: Farklı SQL ifade tiplerini exploit etmek
0×05: Temel Fingerprinting
0×06: Standard Blind SQL Injection
0×07: Çift Sorgu
0×08: Filterelerin Kaçırdıkları
0×09: SQL Injection’dan Korunma
———————————————————————————
—[ 0x01: Açıklama ]
Merhaba, Yine birkaç satır daha yazmak için burada-sizinleyim. Web Uygulama Güvenliği ile ilgili ilgi çekici bir yazı olacağını düşünüyorum. Bu satırların amacı, size SQL İnj. Zaafları hakkında yardımcı olmaktır.
Burada kısa zaman önce bir çok şeyin açıklandığını biliyorum fakat bir çok kişi’den aldığım e-mailler’de kendi kodlarındaki sql inj. açıklarını nasıl bulup-düzelteceklerini soranları gördüm.
Bu yazıyı çok temel bilgilerini anlattığım; “PHP Underground Security” isimli makalenin ikinci bölümü olarak değerlendirebiliriz.
——————————————————————————-[/]
—[ 0x02: SQL Injection]
Bildiğiniz üzere; Web uygulamaları (LAMP mimarisi üzerine kurulmuş web uygulama dilleri) çeşitli verileri barındırmak için (resimler, yazılar, kullanıcı hesapları, kişisel bilgiler vb.) veritabanı kullanmaya ihtiyac duyar.
Web uygulamasıbu bilgilere SQL (Structured Query Language) kullanarak ulaşır.
Bu tipteki uygulamalar; veritabanını sorgulamak için (örnek olarak veritabanından veri çekmek gibi), bir veya birden çok Sql ifadesi inşa eder. Fakat bu sorgu bazen kullanıcı tarafından talep edilecek veri ile ilişkisiz olabilir. (Bunun hakkında biraz düşünün)
Peki ya SQL?
SQL; veritabanı içine kayıt eklemek, değiştirmek, kayıt okumak, düzenlemek için kullanılan bir DML’dir. (Data Manipulation Language)
Belirttiğimiz üzere web uygulamaları kullanıcı-tabanlı (kullanıcının bilgisi dahilinde) sorgu kullanır. Fakat; eğer kullanıcı-tabanlı veri; kullanımdan önce sağlıklı bir şekilde korunmamış ise saldırgana kendi kodunu enjecte etme imkanı sunar.
Soluk Soluğa..
Konuşacağım uyusan da Tek bir kelime bile duymasan da Biterken bir zamanlar Çok sevdiğimiz bu hikaye Dokunuyorum ellerine Aralanmış bacaklarına Eğilip ıslak ağzına Agzımı dayıyorum son kez Soluk soluğa Saçların darmadağın İç çamaşırların odaya saçılmış Dün ağladıktan sonra Makyajın yastığına akmış Uyandırmadan seni Sıyırıp üstünden herşeyi Terden ıslak vücudumu Vücuduna dayıyorum son kez Soluk soluğa Artık çok üzmüyor beni Hiç bir sey hissetmiyorum hatta Bir kaç anı sadece onlar da Silinir nasılsa zamanla Bırakmıştım uzun zamandır Ama ihtiyacım var şu anda Bazen bir içki şişesi Yaşam destek ünitesi Bu kez gerçekten giderken Gerçekten terkederken Sana kapıyı çekerken Uzun uzun bakıyorum son kez Soluk soluğa
Güvenlik Riskleri ve Saldırı Yöntemleri
Harun ŞEKER ve Ozan UÇAR tarafından hazırlanan, “Güvenlik Riskleri ve Saldırı Yöntemleri”(Afyon Kocatepe Üniveristesi Bilgi Güvenliği Semineri Sunumu)
Java Dersleri 8
… İlk 7 dersin devamıdır …
8.Video :
Ödünç Kitap Projesi :
Şuan Kisi ve Kitap sınıflarımız var.
- Hangi kişinin hangi kitabı ödünç aldığını henüz belirtmedik.
- Kisi ve Kitap sınıfları arasında bir bağlantı kurmalıyız.
- Test-First yani önce Test sınıflarını oluşturduğumuz geliştirme yöntemini uygulamaya devam edeceğiz.
İlk olarak KitapTest sınıfımızı açalım ve Kisi’yi test eden metodumuzu hazırlayalım.
Yapacağımız işlemlerin algoritması kısaca :
- testGetKisi() metodu hazırlayacağız.
- getKisi() metodu hazırlayacağız.
- Test’i çalıştıracağız.
KitapTest.Java :
public void testGetKisi() {
Kitap b2 = new Kitap(“Savas ve Baris”);
Kisi k2 = new Kisi();
k2.setIsim(“Serhat”);
// Bu metod, belirtilen kitabın bu kisiye kiralandıgını belirtiyor.
b2.setKisi(k2);
// Kitaba sahip olan kisiyi belirtecegiz.
Kisi testKisi = b2.getKisi();
String testIsim = testKisi.getIsim();
assertEquals(“Serhat”, testIsim);
}
Java Dersleri 4-7
İlk 4 dersin devamıdır..
.
.
.
Şimdi TestCase sınıfının bir nesnesi olan assertequals’i inceleyelim.
Assertequals’in temel mantığı :
assertEquals(“Beklenen Değer”, “gelen değer”);
şeklindedir. Bunu örnek üzerinde görelim :
package org.Serhatdundar.paket;
import junit.framework.TestCase;
public class KisiTest extends TestCase {
public void testKisi() {
Kisi k1 = new Kisi();
assertEquals(“serhat”, k1.getIsim());
assertEquals(19, k1.getYas());
}
public void testSetIsim() {
Kisi k2 = new Kisi();
k2.setIsim(“Serhat”);
assertEquals(“Serhat”, k2.getIsim());
}
public void testSetYas() {
Kisi k3 = new Kisi();
k3.setYas(19);
assertEquals(19, k3.getYas());
}
}
* assertEquals statik yani sabit bir metod’dur.
Statik Metod :
• Tamamen bir sınıfa bağlıdır.
• Sınıfın herhangi bir aşamasına bağlı değildir.
• Syntax yani sözdizimi .şeklindedir. Örneğin KisiTest.assertEquals(…)
• Eğer aynı sınıf içinde belirtiliyorsa kısmını atlayabiliriz. Bu ne anlama geliyor detaylı görelim:
HoldEm Poker günleri..

Deli gibi pokere sarmış durumdayım.
Oyunu öğrendiğim gecede 2k chip’i 150k yaptım (:
3.gece’de 1M’e ulaştım.
Oyun zeka, sabır, nefsine uymamak, içgüdü, cesaret ve diğer bi çok kişisel özellikle alakalı..
Öneriler :
Diğer kağıt oyunlarını unutun. Bu bambaşka bir dünya..
İlk el eğer check etmeniz gereken miktar masadaki toplam chip’inizi zorlamayacaksa her zaman ilk 3 kartı görmeye değer. Bu konuda oyun arkadaşlarınızın seviyesi oldukça önemli.
İlk 2 kart çok iyi göründüyse fakat görmeniz gereken bahis sizi aşıyorsa hırs yapmayın fold edin. Bu oyunda hırs insanı bitiren şeydir.
Eğer masada ilk 3 kartı görmenizi zorlaştıracak şekilde arttırımlar yapan buddy’leriniz varsa masadan kalkın..
Yüksek achv. sahibi, chip miktarı fazla kişiler oldukça çok blöf yapar (all-in yapmaktan aşırı zevk alırlar) eğer blöf yaptığını sezerseniz bahsi görmekten kaçınmayın. Sizin az miktarda chip’iniz olduğu için bunu riske edemeyeceğinizi düşünüyor olması yüksek olasılıktır.
İlk 2 kartınız oldukça iyise (KK QQ JJ AA AQ AK vs..) bir anda all-in yapmayın. Bu hem rakiplerinizi korkutup bahis arttırmalarını engeller hemde diğer 5 kartı görmeden bu hareketi yapmak aptallıktır. Ufak raise’ler veya check yapabilirsiniz. Straight ve üstüne çıktığınızda elin sizde olduğundan emin olduktan sonra (özellikle son tur) all-in yapmaktan kaçınmayın. Çünkü o ana kadar ortaya bir çok chip koymuş buddy’leriniz son bahsi görmeden FOLD etmek istemeyecektir. Zaten ortada bir çok chipleri vardır. Fold etmek onların zararına gibi görünür. Bu sayede daha fazla chip götürebilirsiniz.
Büyük kişilerin olduğu, büyük masalara, minimum chip değeri ile girmek mantıklıdır. Bir çok kez kaybedebilirsiniz (kör bahis yapılmasını önerdiğim durumlardandır) fakat 1 kez kazandığınızda çok büyük miktarlar alacağınız için bunu telafi eder.
Elinizde 50k chip var. Gidip 40k’lık masalara oturmanız yararınıza olur. Çünkü bu masalarda bir çok yüksek chipli kişi olacaktır. Bu masalara min. değer olan 4K ile girmeniz en iyisidir. Çünkü all-in yapıp hem rakibi kışkırtma imkanınız olur hemde kaybınızın miktarı az fakat sayısı çok, kazancınızın değeri çok çok fazla fakat miktarı az olur.
4K ile girip 10kez kaybettiğim olmuştur. Her seferinde kör bahis yaptım. Son seferde Flush yaptığımda masada 200K para birikmişti.! Yani kayıp 40K, kazanç 200K. Sabır kısmı burada önemli. Kaybettikçe sabretmelisiniz. Mutlaka iyi bir eliniz olacaktır. 10 kez kaybedersiniz fakat 11.de kazanabilirsiniz. Rakipler genelde 40K ile girdiğinden ellerine çok güvenirlerse aptalca bir hareket yapıp all-in yaptıkları çok görülmüştür (:
Masadan kalkmayı bilin. Hırs yapmaya asla gerek yoktur. Masada kaybınız büyük olabilir. Bunu telafi etmek için masada inatla durmak genelde zararınıza olur. Çünkü hırs ve sinirle oynanmaması gereken bir oyundur.
Boş zamanlarımda bu yazıyı güncelleyeceğim..
ISA, IAG ve Terminal Services Access Gateway
İhtiyaçlar:
Hangi Uygulamalar?
Kaç Kullanıcı?
Kullanıcıların Profili?
Güvenlik İhtiyaçları? (uygunluk, regülasyon)
Terminal Sunuculara Mobil kullanıcılar Firewall üzerinden erişebilir .
RDP yerine HTTP/S kullanılır.
Bağlantıdan AD/NPS/NAP kontrolleri yapılır.
.
.
Parçalanmış Paketler ve Güvenlik Sistemlerine Etkileri
Internetin temelini oluşturan TCP/IP kötü amaçlı kullanılabilecek çeşitli özelliklere sahiptir. Bunlardan biri de ağlar arası iletişimde çok sık kullanılan parçalanmış (fragmented) paketlerdir. Bu yazı parçalanmış paketlerin ne olduğu ve güvenlik yönünden ne gibi sakıncalar içerebileceğini anlatmaktadır.
Parçalanmış Paketler
Parçalanmış paketler(Fragmented Packets) konusu çoğu network ve güvenlik probleminin temelini teşkil etmektedir. Günümüzde tercih edilen NIDS/NIPS (Ağ tabanlı Saldırı Tespit ve Engelleme Sistemleri) sistemleri bu konuya bir çözüm getirse de hala eksik kalan, tam anlaşılmayan kısımlar vardır. Bu sebepledir ki günümüzde hala parçalanmış paketler aracılığıyla yapılan saldırılara karşı korunmasız olan popüler IPS yazılımları bulunmaktadır[1].
Bu yazıda parçalanmış paketlerin nasıl çalıştığı, ne gibi tehlikeler oluşturabileceği ve basit koruma yöntemlerinden bahsetmeye çalışacağım.
Yazı iki bölümden oluşmaktadı; ilk bölümde IP parçalamanın ne olduğu, hangi durumlarda nasıl gerçekleştiği, ikinci bölümde IP parçalamanın ne tip güvenlik zaafiyetlerine sebep olabileceği konuları üzerinde durulacaktır.
IP (Internet Protocol) Yapısı
Parçalanmış paketler konusunun iyi anlaşılabilmesi için öncelikle IP(Internet Protocol) paketinin temel yapısının bilinmesi gerekmektedir. IP paketinin yapısını analiz etmek Sniffer olarak adlandırılan çeşitli araçlar vasıtasıyla olur. Bu araçlardan bazıları aşağıdaki gibidir;
• Tcpdump
• Wireshark
• Snort
• Tshark
• Snoop
Linux ortamında paket analizi için en sık kullanılan araçlar tcpdump ve daha görsel bir araç olan Wireshark’dır.
Windows ortamları için windump, thsark ya da daha görsel bir yazılım olan Wireshark tercih edilmektedir.
| Tcpdump ile paket analizi yaparken dikkat edilmesi gereken en önemli nokta tcpdump’ın öntanımlı değerleri ile bir pakete ait 68/96 byte’ı göstermesidir. Bu değer bir ip paketinin başlık bilgilerini göstermeye yetecektir fakat paketin payload kısmı incelenmek istenirse bu değerden daha fazlasına ihtiyaç duyulur.
Tcpdump’la analiz yaparken –s 0 parametresini kullanarak bir pakete ait tüm alanları görmek mümkündür. Temel Tcpdump kullanımı için http://www.enderunix.org/docs/tcpdump.html adresinden faydalanabilirsiniz. |
MTU (Maximum Transfer Unit)
MTU değeri bir ağa girişteki maksimum kapasiteyi belirtir. Mesela Ethernet ağları için MTU değeri 1500 byte, FDDI için 4500 byte’dır. Bu demek oluyor ki ethernet ağa giren bir paketin boyutu maksimum 1500 byte, FDDI ağa giren bir paketin boyutu en fazla 4500 byte olabilir.
MTU değerleri farklı iki ağ arasında geçişlerde eğer ilk ortamın MTU değeri daha büyükse IP paketlerinde yeni girilecek ortama göre parçalama işlemi yapılır.
Read more…
