Python Requests Modülü ve Api

Code library
Python Requests Modülünün Kurulması İlk olarak python3 için geçerli pip kurulur. Paket yüklü ise kodu çalıştırmanız sorun yaratmayacaktır. Ardından requests modülü kurulur. sudo apt-get install python3-pip pip3 install requests Windows kurulumu için aşağıdaki satır uygulanmalıdır. python -m pip install requests Requests modülünü kullandığımız zaman API Servere get isteği gönderilir. Bu isteği alan API server karşılık olarak Response Code(kod) ve Response Data(veri) gönderir. Gönderilen veri tipi genellikle JSON yapısındadır. JSON yapısı hakkında bilgi almak için ilgili yazımı okuyabilirsiniz. https://www.asimmisirli.com/json-file-yapisi-ve-php-ile-okumak/ Get: Basit tanım olarak, client ve server arasında oluşturulmuş istek tipidir. Biz buradaki istek şeklini post veya put şeklinde de değiştirilebilir. Response Code: Server tarafından geri gönderilen uluslararası tanımlanmış kodlardır. Yani her server aynı kod hatalarını barındırır. Response Kodların bazıları şunlardır: 200: İstek başarılı 301: Yönlendirme mevcut ilgili adrese yönlendirileceksiniz. 400: İstek…
Read More

Regular Expression ve PHP

Code library
Regex Nedir ? Türkçesi düzenli ifade anlamına gelir. Asıl amacı ise metin içeresinde istenilen ifadelerin bir pattern(desen) oluşturularak ulaşması hedeflenir. Regex Bazı Artıları şunlardır; Esnek ve karmaşık aramaları yapabilmeHer programlama dili tarafından desteklenirDinamik oluşturulan desen(pattern) sayesinde sizi ileride az sorunla karşılaştırır. Regex cheatsheet(kopya kağıdı) bazı ifadeler için . yeni satır hariç, tüm karakterler \w\d\s harf, rakam, boşluk \W\D\S harf, rakam, boşluk olmayanları alır [a-z] a ve z arasında bulunan tüm karakterleri alır [^a-e] a ve e arasında bulunmayan karakterleri alır. [0-9] 0 ile 9 arasında tüm rakamları alır ? Olabilir ya da olmayabilir \. \* Özel karakterler için sadece . veya * ifadelerine bakar. \/ / ifadesini seçer ^a a harfi ile başlayanları alır.String ifadenin başını alır. m$ m harfi bitenleri alır. String ifadenin sonunu alır. w{3} 3 tane w…
Read More

Pardus 19.5 İçin Self Signed SSL Ve Apache Yapılandırması

Linux
İşlemlerin yapılması için super user olmanız gerekmektedir. Bunun içinde aşağıdaki komutu uygulayabilirsiniz. sudo su Oluşturacağımız sertifikalar için gerekli dizinleri oluşturalım. Bu dizinleri oluştururken herhangi bir bağımlılık yoktur. İstediğiniz bir dizin altında oluşturabilirsiniz. İlk kez uygulayacak olanlar aynı şekilde yaparlar ise sorun yaşamayacaklardır. mkdir /root/certs && cd /root/certs /root/ dizini altına certs dizini oluşturup dizin içeresine gittik. openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out MyCertificate.crt -keyout MyKey.key Yazdığımız komut içeresindeki bazı terimlerin anlamları şu şekildedir. openssl: Basit komut satırıdır. OpenSSL oluşturmayı ve yönetmeyi sağlar. -days 365: Sertifikanın zamanı için ayarladığımız gün sayısıdır. -out: oluşturulan dosyaların outputlarıdır. -newkey rsa:4096: Key ve sertifika oluşturmayı sağlar. Paylaştırmak için 4096 bitlik RSA algoritmasını kullanılır. Karşımıza gelen yapılandırma ayalarında kendinize göre yapılandırma yapmalısınız. İlgili komut satırı girildikten sonra dizinde anahtarların(keys) oluştuğu görülmelidir.…
Read More

Json File Yapısı Ve PHP İle Okumak

Code library
Json File , genellikle sunucu ve istemci arasında veri aktarmında kullanılan dosya tipidir. Veri dönüştürmek için kullanılır. Dosya uzantısı .json şeklindedir. Json file içeresinde şu tür veri tipleri olabilir; StringNumberArrayObjectBooleanNull Örnek bir json file dosyasında üzerine adım adım inceleme yapalım. Bir SSL scan aracı üzerinden aldığım ekran çıktısını adım adım inceleyecek olursak; nesneleri(object) ve dizinleri(array) yapılarını görebilir. Json yapısı her zaman { ile başlar ve } her zaman parantezi ile biter. Oluşturulan her nesneden yada diziden sonra virgül koyulmalıdır. Json yapısı isim:değer çiftlerinden oluşur. Aşağıda ki ekran çıktısı üzerinden bazı nesnelere bakalım. "host": "asimmisirli.com",Burada host ismi asimmisirli.com değeri temsil etmektedir.. Yani siz asimmisirli.com değerini almak için host ismini kullanacaksınız. Yada diyelim ki siz ip adresini okuyup işlem yapmak istiyorsunuz. Bunun isim:değer çiftlerinden ip ismini alarak ip değerine ulaşabilirsiniz. "host": "asimmisirli.com",…
Read More

Metasploit süre yüzünden Crash olması ve Burp Suite ile Çözüm

Cyber Security
Hack The Box üzerinde 10.10.10.11 ip adresine sahip Arctic makinesi çözerken bir sorun ile karşılaştım. Biliyorsunuz ki Metasploit ile hedef sistemi sömürecek bir exploit bulduğumuz zaman uğraşmadan yada hata almadan sisteme erişim yapabileceğimizi düşünürüz. Burada hiç de böyle çalışmadı. Hedef sistem üzerinde delay(gecikme) mevcuttu ve bundan dolayı Metasploit düşüyordu. Yani uygun exploit olmasına rağmen ve desteklemesine rağmen exploitation gerçekleşmiyordu. Hedef sistem üzerinde Coldfusion 8.1 çalışıyor. İlgili yazılım ve sürüm araması msf içeresinde yapıldığında aşağıdaki gibi sonuç gelecektir. Rank seviyesine dikkat edilirse excellent(mükemmel) olduğunu görülür yani sorunsuz çalışması beklenir. Kullanacağımız exploit jsp(Hedef uygulama java tabanlı olduğu için) tabanında oluşturduğu backdoor(arka kapıyı) zafiyetli dizine yükleyip çalıştıracaktır. Çalıştırma işlemi sonunda bize reverse(ters) bağlantı sağlayacaktır. Metasploit belirli süre sonra düşmesi İlgili exploit kullanımı ve uygun değerlerin verilmesi aşağıdaki gibidir. use exploit/windows/http/coldfusion_fckeditor set rport 8500…
Read More

Adım Adım Buffer Overflow OSCP

Cyber Security
Buffer Overlow Lab Ortamı Kali linux ve Windows 7 (32bit) dağıtımları tercih edilmiştir. Windows 7 üzerinde güvenlik duvarının kapalı olması beklenmektedir. Aşağıdaki uygulamalar kurban(Windows7) üzerinde kurulur. Zafiyetli uygulama için https://www.exploit-db.com/exploits/38013 adresi üzerinden indirebilirsiniz. Immunity Debugger bu adresden indirebilirsiniz. https://www.immunityinc.com/products/debugger/ C:\Program Files\Immunity Inc\Immunity Debugger\PyCommands klasörü içeresine mona.py script atmanız gereklidir. Mona.py script  bu adresden indirilebilir. https://github.com/corelan/mona Basitçe Buffer Overflow Nedir? char value[10]; strpy(value,'I can write many word this'); 10 karakterden oluşan value değişkenine strcpy fonksiyonu ile istediğim uzunlukda kelime yazabilirim. Burada kullanılan fonksiyonun önemi bulunmamaktadır. Yazılımcı olarak kullanıcıdan aldığınız input(giriş) değerini kontrol etmeden programa aktardığınız zaman zafiyeti doğurmuş oluyorsunuz. Aslında programcı burada input değerinin uzunluğunu hesaplasaydı 26 karakter olacaktı. Uzunluk hesaplamasından sonra if(eğer)  ifadesi ile kontrol edip belleğe yazmaması beklenirdi. Kontrol giriş değerinden dolayı bellek taşması oluşmaktadır. Buffer Overflow Terimleri Hakkında…
Read More

LSASS Prosesi Dump ve Korunma Yöntemi

Cyber Security
LSASS Prosessi Hakkında     Lsass.exe prosesi farklı form yapılarında şifreleri saklayabilir. Bunlar; şifrelenmiş açık metin, Kerberos tickets, LM and NT hashleridir. Burada ki zafiyet local admin ya da system yetkileri gerekmeden lssas.dmp file dosyasını alınabilmesidir. Bir çok araç ya da method bellekten(ram) şifrelerin dump alabilir. Dump file içeresinde politikasız bir domain alanında bulunan kullanıcın bilgisayarında şifreler clear text tutuluyor olabilir, Daha önce yapılmaması beklenen Domain admin ile bilgisayarda oturumun açılmış olmasıyla hashlerin kalması, İçeresinden elde  edilen hashler ile pash the hash saldırısı yapılabilir., Elde edilen hash bilgilerine brute force yapılabilir. Lsass Prosesi Dump İşlemi Uzak masaüstü(rdp) ile bağlantı sağladığımız makine üzerinden LSASS dump işlemini gerçekleştireceğiz. Görevi yöneticisi üzerinden Details, lsass.exe işlemi seçilir, sağ tık ile create dump file işlemi yapılır. [caption id="attachment_839" align="alignnone" width="668"] lssas dump uygulaması[/caption] C:\Users\asim\AppData\Local\Temp\lsass.DMP İşlemin…
Read More

Lokal Zafiyet Araştırması için Kullanabilir Yaygın Araç ve Komutlar

Cyber Security
Windows Yetki yükseltmesi için lokal zafiyet araştırmasının yapılması     Exploit işlemi sonucunda elde ettiğimiz her oturum yüksek yetkili olması beklenmeyen durumdur. Bu durumlarda kullanabileceğimiz , daha doğrusu erişilen sistemin içeresinden aktif bilgi toplayabileceğimiz komut satırları ve otomatize araçlar bulunmaktadır. Bu araçların ve komutların ilgili sürüm ya da servisler ile bağımlıkları olduğundan dolayı her zaman çalışmayabilir. Windows komut satırı, Metasploit Exploit Suggester ve winPeas araçların kullanımını adım adım göstereceğim.   Windows Komut Satırları İle Bilgi Toplamak    Meterpreter oturumundan shell kabuğuna geçilir. Bu işlem ile cmd komut satırlarını kullanarak oturum elde ettiğimiz bilgisayar üzerinden bilgiler toplanır. [caption id="attachment_816" align="alignnone" width="929"] meterpreter shell[/caption] İşletim sistemi hakkında bilgi Edinmek systeminfo komutu ile OS version tespiti yapılabilir ve bununla ilgili kernel zafiyetlerini google üzerinden gerekli kernel zafiyetlerin araştırması yapılabilir.   systeminfo | findstr /B…
Read More

MongoDB ve Elasticsearch Path Değiştirme

Linux
Graylog sunucum üzerinde bulunan MongoDB ve Elasticsearch servislerin yeni oluşturduğum disk alanına taşıyacağım. Yeni bir depolama alanı bağlamak için şu yazımı okuyabilirsiniz; https://www.asimmisirli.com/linux-diskeklemek/   MongoDB path değiştirmek MongoDB  servisi durdurulur. # systemctl stop mongod mongod.conf yapılandırma dosyası nano editörü ile açılır. # nano /etc/mongod.conf Başlangıç ayarlarında dbPath: /var/lib/mongodb dizin satırı bu şekilde gelir. Ben veritabanı kaydetmek istediğim yeri /data/mongodb olarak değiştirdim. [caption id="attachment_786" align="aligncenter" width="801"] mongodb dizin değiştirme[/caption] Şimdi daha önce var olan mongodb dizini hedef belirtiğimiz dizine taşıyalım. Taşıma yapma amacımız verileri kaybetmemek. # mv /var/lib/mongodb /data/ MongoDB çalışabilmesi için izin ve sahipliye ihtiyacı bulunmaktadır. Bunun için aşağıdaki gibi sahiplik verilir. # chown -R mongodb:mongodb /data/mongodb/ Resimde görüldüğü gibi mongodb sahipliği verilmiştir. [caption id="attachment_787" align="aligncenter" width="741"] mongoDB dizin değiştirmek[/caption]   MongoDB servisi başlatılır ve durumuna bakılır. systemctl start mongod…
Read More