Yazar: wafadmin
-
temelde sql ve sql injection nedir?
SQL Nedir?
SQL (Structured Query Language), Yapılandırılmış Sorgu Dili anlamına gelir. Bu dil pek çok veritabanına hitap eder. Veri sistemlerinin gelişmesi sonucu bu verileri yönetebilme ihtiyacı SQL dilinin doğmasına sebep olmuştur. SQL komutları sayesinde veri tabanına veri ekleyebilir, mevcut veriyi silebilir ya da veriyi düzenleyebiliriz.
SQL Injection Nedir?
SQL injection, veri tabanı altyapısının bulunduğu tüm sistemlerde sıklıkla görülen bir siber güvenlik tehdidi olarak tanımlanır. Siber saldırı düzenleyen kişiler tarafından en çok tercih edilen yöntemlerden biri SQL injection’dır. Öyleki uzun süredir OWASP TOP 10’da yer alır.
SQL injection bir güvenlik açığıdır. Bir web sitesinde herhangi bir form doldurulduğunda arka planda bir SQL sorgusu çalışır. Bu sorgu veri tabanı ile iletişim sağlar. SQL injection temelde zararsız komutlar arasına zararlı kod parçacıklar eklenerek yetkisiz erişimler sağlanmasıdır. Örneğin, bir kullanıcı sisteme giriş yapmak istediğinde arka planda kullanıcı adı ve şifresini eşleştiren SQL sorgusu çalışır. Sorgu sonucunda sadece kendisinin yetkisi olduğu bilgileri görebilir. SQL sorgularının arasında bir kod parçacığı eklendiğinde yani SQLi yapıldığında sistemde kayıtlı tüm kullanıcıların bilgisine yetkisiz erişilebilir. Bu yetkisiz erişim ile sistemde kayıtlı tüm kullanıcı verilerini düzenleyebilir, dilediği gibi kullanabilir, farklı ortamlara yedekleyebilir ya da silebilir.
Örneğin, bir müşteri sisteme giriş sağlamak için kendi kullanıcı adı ve şifresini girmek durumundadır. Bu şekilde girdiği sistemde yalnızca kendine ait bilgilere erişimi sağlayabilir. Ancak SQL injection yöntemi ile bir saldırgan, pek çok farklı kullanıcının kişisel bilgilerine ve web uygulamasına dair diğer verilere erişim sağlayabilir. Burada meydana gelen SQL injection açığı sayesinde siber saldırı düzenleyen kişiler, verileri diledikleri gibi kullanabilir, farklı bir yere aktarabilir, silebilir ya da değiştirebilir.
SQL Injection Türleri?
1-Union SQLi
Web uygulamasındaki formda normal olan SQL sorgusunun yanına “union” komutu ile saldırganın zararlı sorgusu birleştirilir. Bu sorgu sonucunda saldırgan veri tabanında istediği bir veriye ulaşabilir. Union komutu iki farklı SQL sorgusunu tek sorguda birleştirmeye yarar. Örnek sorgu:
SELECT name, age, email FROM users WHERE username = ‘username’ UNION SELECT password, null, null FROM users WHERE username = ‘admin’;
2-Error-based SQLi
Saldırgan, web uygulamasında deneme yanılma yolları ile hata mesajlarından yararlanır. Hata mesajlarından aldığı bilgilerle veri tabanını keşfeder ve saldırıyı ona göre şekillendirir. Örnek sorgu:
SELECT name, age, email FROM users WHERE username = ‘username’ AND 1/0;
3-Time-based SQLi
Saldırgan burda web uygalamasındaki zaman gecikmelerinden faydalanır. Yapılan sorguları yavaşlatarak ya da durdurarak veri tabanını keşfeder ve saldırıyı gerçekleştirir. Örnek sorgu:
SELECT name, age, email FROM users WHERE username = ‘username’ AND IF(SLEEP(5),1,0);
4-Boolean-based SQLi
Saldırgan, web uygulamasına mantıksal ifadeleri kullanarak sorular sorar. Soruların çıktısındaki True ya da False değerlerine göre veri tabanını keşfeder. Örnek sorgu:
SELECT name, age, email FROM users WHERE username = ‘username’ AND (SELECT COUNT(*) FROM users) > 0;
5-Out-of-band SQLi
Saldırgan, veri tabanı dışındaki sistemlerle iletişime geçer. DNS sorguları ya da HTTP istekleri gibi veri tabanı dışındaki sistemlerle haberleşerek veri çalar. Örnek sorgu:
SELECT name, age, email FROM users WHERE username = ‘username’ AND extractvalue(1,concat(0x3a,(SELECT password FROM users WHERE username=’admin’)));
SQL Injection Saldırıları Nasıl Önlenir?
SQL injection saldırılarını önlemek için birkaç farklı önlem vardır. Bunlardan bazıları şöyledir:
1-Kullanıcı Girdilerinin doğrulanması
Kullanıcı girdileri kontrol edilip filtrelenmesi gerekir. Bu, saldırganların özel karakterler veya kod parçaları ekleyerek sorguları manipüle etmesini önler.
2-Sorguların Parametlendirilmesi
Sorguların parametrelerle oluşturulması, kullanıcı girdilerinin amacına uygun şekilde çalışmasını sağlar. Parametreli SQL kodu, saldırganların komut ekleseler bile sorgunun amacını değiştirmesini engeller
3-Kullanıcı izinlerini sınırlamak
Kullanıcılara ihtiyaç duydukları minimum izinler verilmelidir.
4-Güvenlik Duvarları
Güvenlik duvarlarını kullanarak SQL injection gibi saldırılar otomatik tespit edilir ve önlenebilir.
5-Güncel Yazılım
Güncel yazılımlar, güvenlik açıklarını kapatır ve SQL injection gibi saldırıları önleyebilir.
6-Sorgu izlenmesi
Web uygulamalarına yapılan sorguların incelenmesi, saldırıların tespit edilmesinde ve önlenmesinde büyük önem taşır.
-
Sosyal Medya Hesapları Üzerinde Tarama Aracı: SHERLOCK
SHERLOCK
Sherlock, Github’da bulunan ücretsiz ve açık kaynak kodlu bir osint aracıdır. Sherlock, verdiğiniz bir kullanıcı adını 300 farklı sosyal medya platformunda arar ve bulduğu sonuçları ekrana çıktı verir. İnsanlar genellikle sosyal medya platformlarında kullanmak için bir kullanıcı adı belirler. Bu kullanıcı adını her platformda kullanır. Bu araç sayesinde aradığınız kişiyi diğer sosyal medya platformlarında daha çabuk şekilde bulabilirsiniz. Başka bir örnek vermek gerekirse; bir işletme açacağınızı varsayalım. İşletmenin adını belirlerken sosyal medya platformlarında belirlediğiniz isimde bir hesap var mı yok mu öğrenmiş olursunuz.
Nasıl kullanılır?
Kullanmanız için ilk yapmanız gereken aracı kurmaktır. Kurulum aşaması;
sudo apt install sherlock

Kurulum bittikten sonra aracı kullanabilirsiniz.
sherlock yazıp ardından hiçbir parametre vermeden aramak istediğiniz kullanıcı adını yazarsanız sonuçları taramaya başlayacaktır.
sherlock sibermetin

Verilen kullanıcı adından 7 sonuç getirdi ve taramanın bittiğini bildirdi. İsterseniz sonuçlara direkt buradan gidebilirsiniz ya da sherlock, bulunduğunuz dizine verdiğiniz kullanıcı adında bir .txt dosyası oluşturuyor onu açarak da gidebilirsiniz.
cat sibermetin.txt

Her aracın parametreleri olduğu gibi bu aracın da farklı parametreleri var parametreleri ve nasıl kullanıldığını görmek için;
sherlock -h

-
pyphisher nedir?
Güvenliğimiz, dijital çağda her zamankinden daha önemli hale geldi. Ancak, çevrim içi tehditler giderek daha sofistike hale gelirken, hassas bilgilerimize ulaşmak isteyen kötü niyetli kişilerin yöntemleri de daha karmaşıklaşıyor. Bu tür saldırılar arasında en yaygın ve etkili olanlardan biri phishing saldırılarıdır. 2022 Raporunda oltalama (phishing), bir diğer adıyla kimlik avı saldırısı %16 ile ikinci en yaygın ihlal nedeni olarak dikkat çekmektedir. Söz konusu saldırı türü 4,92 milyon dolar ile en maliyetli saldırı vektörü olarak kayıtlara geçti. Herhangi birimizin başına gelebilecek bu tür bir saldırıya karşı dikkatli olmak hayati öneme sahiptir. Bu yazımda örnek bir phising saldırısı ile instagram hesapları nasıl ele geçirilir ve ardından bu tür saldırılardan nasıl korunulacağından bahsedeceğim.
Yapılması gereken ilk şey gerekli ortamın hazırlanmasıdır. Öncelikle phising saldırılarında kullanılan bir araçtan bahsedip ardından kurulum aşamasından bahsedeceğim. PyPhisher, sosyal mühendislik tekniklerini kullanarak hedef kullanıcıların güvenlik bilgilerini ele geçirmeyi hedefleyen python ile yazılmış bir araçtır. Phishing saldırıları düzenlemek, sahte web sayfaları oluşturmak, kullanıcıları kandırmak için sosyal mühendislik taktikleri kullanmak gibi etik dışı faaliyetlerde kullanılmaktadır.
Kurulum aşaması
- Aracın çalışması için gerekli paketlerin indirilmesi
Gerekli paketler github reposundan indirilir.
git clone https://github.com/KasRoudra/PyPhisher.git

Repodan indirilen paketlerden sonra araç kullanıma hazırdır.
- Aracın çalıştırılması
Aracın indirildiği dizine gidip python3 komutuyla araç çalıştırılır.
Python3 pyphisher.py

- Gerekli konfigürasyonların yapılması
Bu yazıda instagram örneği verildiği için 5 numaralı script seçilir. 5 numaralı script normal instagram giriş panelinden farksız olduğu için seçilir.

Script seçildikten sonra web serverin ayağa kalkması için 1-2 dakika beklenir. Verilen 6 ayrı linkte kullanılabilir fakat daha gerçekçi olması için yöneltilen soruya evet denilir.

1 numaralı kısım;
Verilen URL’lerden ayrı olarak daha gerçekçi olması için “Özel bağlantı kullanmak ister misin?” sorusuna “Yes(y)” denilir.
2 numaralı kısım;
Oluşturulan sahte URL içinde geçecek domain adresi yazılır. İnstagram domain adresine benzemesi için “instagram.com” yazılabilir. Yapılan phising senaryosuna göre buralar farklı şekillerde doldurulabilir.
3 numaralı kısım;
Bir önceki adımda yazılan domainin yanına anahtar kelimeler girilebilir. Oluşturulan senaryoya göre istenilen anahtar kelimeler yazılabilir. Bu senaryo için “instagram-dava-sikayet” şeklinde girilir.
Adımlar tamamladıktan sonra oluşturulan sahte URL aşağıdaki şekilde görünmektedir:
https://instagram[.]com-instagram-dava-sikayet@shrtco.de/I7TNj
URL’i ve scripti kontrol etmek için adrese gidilir.

Kullanıcı adı: deneme123, şifre:123456789 olacak şekilde bir hesap girilir.

Kullanıcı adı şifre ile birlikte sahte URL’e erişen kişinin tarayıcı ve IP bilgisi de saldırganın eline geçmektedir.
Saldırganlar bu gibi araçları kullanılarak ele geçirilen hesabın e-posta adresi, telefon numarası ve şifrelerini değiştirerek hesapta kalıcılık sağlamaktadır.
Bu araç içerisinde birbirinden farklı 77 script bulunmaktadır. Oluşturulan senaryoya göre scriptler seçilip phising saldırıları yapılmaktadır.
Peki bu tür bir saldırıdan nasıl korunulur?
En iyi korunma yöntemi bilinçli olmaktır. Bir e-posta mesajı geldiyse bu mesajın yasal bir e-ticaret sitesinden ya da finans kurumu gibi yerlerden gelip gelmediğine, kişisel bilgilerinizin istenip istenmediğine dikkat etmelisiniz.
Hiçbir kurum ve kuruluş e-posta ile sizden kişisel bilgi talebinde bulunmaz. Kişisel bilgilerinizi isteyen e-postalara cevap vermemelisiniz.
E-postanın veya web sitenin yazımında hatalar olup olmadığına dikkat etmelisiniz.
Link aracılığıyla yönlendirildiğiniz web sitenin URL adresiyle yasal web sitenin URL adresinin aynı olup olmadığına dikkat etmelisiniz.
Hesaplarınızda kullandığınız şifreleri birbirinden farklı ve uzun yapmalısınız.
Şüpheli gördüğünüz, kimden geldiğini bilmediğiniz e-postaları dikkate almayınız mümkünse siliniz.
Şüphe ettiğiniz e-postalarda yer alan URL linklerine tıklamamalısınız.
Hiçbir şifrenizi e-posta ile açık olarak göndermemelisiniz.
Bir saldırı tespit ederseniz ve bu saldırı yasal bir şirketle ilişkiliyse, saldırıyı ilgili şirkete mutlaka bildirmelisiniz. Böylece kurumun sahte web sitesini kapatmasını, saldırganın izini sürmesini sağlayabilirsiniz.
Tabii ki, farkındalığı arttırmak için anlattığım bu araç yasal olarak kullanılması kesinlikle kabul edilemez ve bu olay etik açıdan tamamen yanlış bir davranıştır. Bu tür araçlar, kötü niyetli faaliyetlerde kullanılmamalıdır. Yalnızca etik ve yasal sınırlar içinde kullanılmalıdır. Unutmayın ki, siber güvenlik alanında etik ve yasal kurallara uymak çok önemlidir!
-
temel nmap parametreleri
Nmap
-sT => TCP portlarını tarar.
-sU => UDP portlarını tarar.
-sN => Daha hızlı tarama yapar. Sistemde log kaydı bırakmaz. Portun %100 açık olduğunu anlayamaz çünkü içerde bir yazılım SYN paketlerine otomatikman SYN ACK paketiyle cevap verebilir.
–top-ports=5000 => En bilinen 5000 portu tarar. (sayıyı değiştirebilirsin)
-O => Sistemde çalışan işletim sistemi tahmin eder.
-A => Hem işetim sistemi hemde versiyon taraması yapar.
-sV => Karşıda çalışan servislerin versiyonlarını gösterir.
-oN => Tarama çıktısını kaydeder.
-T1 => Yavaş tarama yapar firewalle takılma olasılığı düşüktür.
-T5 => Hızlı tarama yapar firewalle takılma olasılığı yüksektir.
NOT=> Hız parametresi verilmezse varsayılan olarak –T3 hızında tarama yapar.
-Pn => karşı sistemde pinglere cevap vermeyen bir önlem varsa taramada port kapalı görünebilir. Bu parametre ile sisteme ping atmadan portları kontrol eder.
-vv => Normalde tarama bitene kadar ekrana çıktı gelmez bu parametre de çıktı vere vere tarama yapar.
-sC => Script taraması yapar.
NOT => Scriptler zafiyet tespitlerinde kullanılır. Scriptler /usr/share/nmap/scripts dizininden bulunur.
Nmap –script-updatedb => Scriptleri günceller.
FİREWALL ATLATMA YÖNTEMLERİ
Firewall => Gelen giden paketlerin içeriğine bakar. Tehditleri engeller. Erişim izinlerinden sorumludur.
Normal bir nmap taraması yaparken firewall e takılabiliriz. Firewall e takılmamak için paketleri parçalayarak göndermek mantıklı olur onu da –f parametresi ile yaparız. Daha da parçalamak için –ff kullanabiliriz. Karşı sistemde tarama yaptığımız çok belli olmasın diye makineyi meşgul etmek işimize yarayabilir. –D (parantez koymadan herhangi bir ip gir) parametresini girersek verdiğimiz ip adresinden boş paketler gider ve sistemi meşgul etmiş oluruz o sırada biz de aradan sıyrılabiliriz. Bu işlemleri yaparken –T1 ya da –T2 parametreleri kullanılması önerilir.
–script=firewall-bypass => Bu script karşı tarafın cevabına göre hızlanıp yavaşlıyor, paketleri düzenliyor ve firewall e takılmadan tarama yapmaya çalışıyor.
-
kerberos ve asrep roasting
Kerberos nedir?
Kerberos, ağ üzerinde kimlik doğrulama protokolüdür. Bu protokol, kullanıcıların bir ağa erişimini kontrol etmek için kimliklerini doğrulamalarını sağlar. Kerberos, ilk olarak MIT (Massachusetts Institute of Technology) tarafından geliştirilmiştir ve birçok kuruluş tarafından desteklenmiştir. Açık kaynak kodlu bir protokoldür. Açık metin parolasını paylaşmadan güvenli olmayan bir ağda şifreli ve güvenli kimlik doğrulama sağlamak için geliştirilmiştir.
Kerberos, kullanıcıların kimliklerini doğrulamak için şifrelerini kullanır. Bu şifre, ağa bağlı bir veri tabanında saklanır. Kullanıcıların şifresi ayrıca, iletişim kuracakları kaynaklara göre şifrelenir.
Kerberos, ağ üzerindeki birçok kaynağa otomatik olarak erişim sağlayabilen tek bir oturum açma işlemi oluşturarak kullanıcılara kolaylık sağlar. Ticket temelli bir sistemdir. Ağ üzerinde gerçekleşen trafikte parolalar değil ticketlar kullanılır.
Microsoft, kerberos protokolü üzerinde çeşitli birkaç özelleştirmeler yaptıktan sonra Windows Server 2000 ve sonrasında varsayılan olarak kullanıma sunmuştur. Microsoft Active Directory ortamında nesnelerin (Kullanıcılar, Bilgisayarlar) kaynaklara (Dosya paylaşımı, Uzak masaüstü erişimi vb.) erişimi sırasına kimlik doğrulaması yapmak için kullanılır.
Kerberos protokolünün adımları
- Kullanıcı, bir kaynağa erişmek istediğinde kerberos istemcisine kimliğini ve parolasını girer.
- Kerberos istemcisi, kullanıcının kimliğini kerberos sunucusuna(KDC) doğrulamak için bir TGT(Ticket Granting Ticket) isteği gönderir.
- Kerberos sunucusu, kullanıcının kimliğini doğrulamak için bir AS_REQ (Authentication Service Request) bileti oluşturur ve bunu kerberos istemcisine gönderir.
- Kerberos istemcisi, AS_REP (Authentication Service Response) içeren bir TGT bileti alır. Bu TGT bileti, kullancının kimliğini doğrulamakta kullanılır ve belirli kaynaklara erişmek için daha küçük biletlere dönüştürülebilir.
- Kullanıcı, belirli bir kaynağa erişmek istediğinde kerberos istemcisine erişim isteği gider.
- Kerberos istemcisi, kullanıcının TGT’si ile TGT_REQ(Ticket Granting Service Request) bileti oluşturur ve bunu kerberos sunucusuna iletir.
- Kerberos sunucusu, kullanıcının kimliğini doğrular ve belirlenen kaynak için bir TGS_REP(Ticket Granting Service Response) bileti oluşturur.
- Kerberos istemcisi, TGS_REP bileti ile belirlenen kaynağa erişim talebi yapar.
- Kaynak sunucusu, TGS_REP bileti içindeki bilgileri kullanarak kullanıcıyı doğrular ve kaynağa erişim izni verir.
AS_REP Roasting Saldırısı Kerberosun Hangi Aşamasında Gerçekleşir?
Bu saldırıda, saldırganın belirlediği önceden doğrulama gerektirmeyen kullanıcı hesaplarını hedef alır. Bu hesaplar genel olarak sisteme hizmet eden ya da servis hesapları olur. Önceden doğrulama gerektirmeyen kullanıcı hesabı, şifreli AS_REP bileti talep edilerek kullanıcının şifre hash’ini elde etmenin mümkün olduğu hesaplar anlamına gelir.
Saldırgan, hedeflenen kullanıcı hesabı için bir AS_REP talebi gönderir ve KDC’den gelen yanıtta şifrelenmiş bilet bulunur. Saldırgan bu bileti çevrimdışı bir ortamda(John, Hashcat vs.) kırarak şifre hash’ini başarılı bir şekilde çıkarır. Saldırgan, bu şifre hash’i ile hedeflenen kullanıcı hesabına, ağdaki diğer sistemlere ve kaynaklara erişme hakkı kazanır.
AS_REP Roasting Saldırısı nasıl gerçekleştirilir?

Do not require kerberos preauthantication kutucuğu işaretlendiğinde kreberos ön kimlik doğrulama devre dışı bırakılabilmektedir. Bu şekilde AS_REP Roasting saldırısı yapabilmek için bir zafiyet ortaya çıkmış oluyor.
Saldırgan preauthantication ayarı devre dışı bırakılmış kullanıcıları tespit ederek, bu kullanıcılara ait AS-REP paketlerini KDC üzerinden başarılı bir şekilde alabilmektedir. Aldığı paketi hashcat, john the ripper vs. araçları ile çevrimdışı kaba kuvvet saldırısı gerçekleştirerek kullanıcı parolalarını açık bir şekilde elde edebilmektedirler.
Kullanılan komut :.\rubeus.exe asreproast \user:sbarlow

Rubeus, AD ortamında saldırı,yetkisiz erişimleri tespit etmekte ve sömürmekte sıklıkla kullanılan bir araçtır. Rubeus, özellikle AS_REP Roasting saldırılarını tespit etmek için tasarlanmıştır.
AS_REP Roasting Zafiyeti Nasıl Giderilir?
Güçlü parola politikası
AS_REP Roasting saldırılarına karşı alınması gereken önlemlerden biri şifreler için ayrıntılı parola politikalarını kullanmaktır. Kuruluşların periyodik olarak sık sık değiştirilen, uzun ve karmaşık (25 veya daha fazla karakter) parolaları kullanıcılar için zorunlu hale getirilmelidir. Parolaların uzun ve karmaşık olması bu saldırıların en aza indirgenmesini sağlamak. Olası bir saldırıda hash bilgisi alınsa bile hash’in kırılma süresini oldukça uzatır.
Ön kimlik doğrulaması gerektirmeyen hesapların tespiti
AS_REP Roasting saldırılarına karşı alınası gereken önlemlerden biri de kerberos ön kimlik doğrulaması gerektirmeyecek şekilde ayarlanmış tüm kullanıcı hesaplarını tespit edip ardından bu hesaplarda ilgili ayarı etkinleştirmektir. Bu komut, ön kimlik doğrulaması aktif olmayan hesapları bulacaktır:
Get-ADUser -Filter ‘useraccountcontrol -band 4194304’ -Properties useraccountcontrol | Format-Table name

PAM(Privilege Access Management)
PAM, kulanıcıların gerektiği zaman gerektiği kaynağa erişebilmesini sağlar. Bu da saldırganların daha düşük erişimli hesaplardan daha yüksek erişimli hesaplara yükselmelerini önleyebilir.
Siber Güvenlik Farkındalık Eğitimleri Vermek
Kullanıcılarınızı AS_REP roasting saldırısı gibi potansiyel saldırılar konusunda bilinçlendirin. Bu sayede kullanıcılar dikkatsizlik ya da bilinçsizlik nedeniyle saldırganların taktiklerine karşı savunmasız olmalarını önleyebillir.
AS_REP Roasting Nasıl Tespit Edilir?
Pcap dosyası içinde
Normal bir AS_REP isteğininin bağlantılarında “Ticket Encryption Type” olarak windowsun belirttiği “Encryption Type” değerleri görünür. AS_REP Roasting saldırısı yapılan kullanıcılarda sadece “0XFFFFFFFF” değeri görünür.
Normal istekte “Service_Name” olarak loglar içerisinde “krbtgt” servisi geçmektedir. Saldırı yapılan kullanıcılarda ise “krbtgt/windomain.local” değeri geçmektedir.
Event Logları arasında
Event log, işletim sistemi, uygulamalar ve diğer yazılım bileşenleri tarafından üretilen olayların kaydedildiği bir veritabanıdır. Bu olaylar, sistem durumunu, hata ve uyarı mesajlarını, kullanıcı işlemlerini ve diğer önemli bilgileri içerir.
Event loglar, ağ güvenliği için de önemlidir. Bir ağda kullanıcı aktivitelerini izlemek, sistem sorunlarını tanımlamak ve olası güvenlik tehditlerini tespit etmek için kullanılabilirler. Bu nedenle, birçok güvenlik aracı, olay günlüklerini izleyen ve analiz eden özellikler içerir.
Event logları arasında birden fazla AS_REP oluşma isteği tespit edildiğinde, saldırının gerçekleşmiş olabileceğine işarettir.
Event logları arasında 4768 ID’li Tgt Request logu içerisinde Ön kimlik doğrulama olmadan yapılan istekler denetlenip saldırı tespit edilebilir.
Ayrıca bu yapılan isteklerin zayıf şifreleme politikası ile yapılmış mı bunun kontrolü de sağlanabilir.
UBA (Kullanıcı Davranış Analizi)
UBA araçları, kullanıcıların normalden farklı davranışlarını analiz edip uyarılar göndererek AS_REP roasting saldırısını tespit edebilir.
KAYNAKÇA;
https://serdaltarkanaltun.com/active-directory-red-team-senaryolari-1/
https://jsecurity101.medium.com/ioc-differences-between-kerberoasting-and-as-rep-roasting-4ae179cdf9ec
https://www.qomplx.com/blog/qomplx-knowledge-what-is-as-rep-roasting/
– https://forestall.io/blog/en/kerberos-protocol-security-1/
– https://ldapwiki.com/wiki/Kerberos%20Pre-Authentication
– https://www.kerberos.org/software/tutorial.html
– https://harmj0y.medium.com/roasting-as-reps-e6179a65216b
– https://attack.mitre.org/techniques/T1558/004/
– https://blog.netwrix.com/2022/11/03/cracking_ad_password_with_as_rep_roasting/
– https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/as-rep-roasting-using-rubeus-and-hashcat
-
Kali Linux Depolarını Kaynak Dosyasına Eklemek
Merhaba arkadaşlar, yakın zamanda yaşadığım bir sorunun çözümünü sizler içinde faydalı olacağını düşündüğüm için paylaşmak istedim. Kullandığım Linux dağıtımında Kali Linux’ta kullandığım bazı araçları kurmaya çalıştığımda hata mesajları alıyordum ve araçları kuramıyordum. Bu hatanın sebebi ‘etc/apt/source.list’ dosyasında Kali Linux depolarının eksik olmasından kaynaklıymış. Bir kaç basit işlem ile bu sorun kolaylıkla çözülebilmekte.
Kali Linux Deposunu Eklemek
Aşağıdaki işlemleri gerçekleştirerek Kali Linux deposunu source.list dosyasına ekleyebilirsiniz.
sudo nano etc/apt/source.list Bu komut ile source.list dosyasını açıyoruz. Ardından dosyaya aşağıdaki satırları ekliyoruz: deb https://http.kali.org/kali kali-rolling main non-free contrib deb-src https://http.kali.org/kali kali-rolling main non-free contrib Bunları kaynak dosyasına ekledikten sonra aşağıdaki kod ile güncelleme yapıyoruz ve işlemlerimiz tamamlanıyor.
sudo apt updateNO PUBKEY Hatası
Bu işlem sonrasında “The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY” hatası alabilirsiniz. Bu hata, eklediğiniz Kali Linux deposunun GPG anahtarının doğrulanamadığı anlamına gelir. Bu anahtar, Kali Linux deposuna güvenli bir şekilde erişmenizi sağlar. Hatanın çözümü için aşağıdaki adımları takip edebilirsiniz:
wget -q -O - https://archive.kali.org/archive-key.asc | sudo apt-key add -sudo apt updateBu işlemlerden sonra sorunlarınız çözülmüş olacaktır ve artık Kali Linux deposundaki bütün araçları rahatlıkla sisteminize kurabilirsiniz. Umarım sizler için faydalı bir yazı olmuştur. Keyifli forumlar 🙂
-
Zararlı Yazılım Analizi Nedir?
Merhaba arkadaşlar, uzun zamandır aklımda zararlı yazılım analizi hakkında bir blog serisi yazmak vardı ve bu serinin ilk yazısı ile karşınızdayım. Bu blog serisi, zararlı yazılım analizi hakkında bilgi veren bir seridir. Bu yazımızda, zararlı yazılım analizinin ne olduğu ve nasıl yapıldığı hakkında temel bilgiler vereceğim. Umarım yazımızı okurken keyif alırsınız.
Peki, zararlı yazılım analizi nedir?
Zararlı yazılım analizi, virüsler, solucanlar (worm), truva atları gibi kötü amaçlı yazılımların amaçlarını ve nasıl çalıştıklarını anlamaya çalıştığımız inceleme sürecidir. Bu süreçte bir çok yöntem kullanılmaktadır. Yazının devamında bu yöntemlerden bahsedeceğim. Zararlı yazılım analizinin amacı kurumların ve şahısların karşı karşıya oldukları tehditleri anlamalarında ve bunlara karşı önlemler geliştirmektir. Çoğu siber saldırıda zararlı yazılımlar kullanılır bu nedenle bu konu siber güvenlik alanıyla ilgilenenler için önemlidir.
Zararlı Yazılım Analizinin Adımları
Kötü amaçlı yazılım analizine yönelik pek çok farklı yaklaşım vardır ve belirli adımlar, analizin amaçlarına ve kaynaklarına bağlı olacaktır. Zararlı yazılım analizinin adımları:
- Zararlı Yazılımın Bir Kopyasını Edinmek: Kötü amaçlı yazılım analizinde ilk adım, Analiz etmek istediğiniz kötü amaçlı yazılım örneğinin bir kopyasını elde etmektir. Bu genellikle, kötü amaçlı yazılımı kötü amaçlı yazılım deposu veya güvenilir bir siber güvenlik web sitesi gibi saygın bir kaynaktan indirerek yapılabilir.
- Analiz Ortamının Hazırlanması: Kötü amaçlı yazılımları güvenli ve etkili bir şekilde analiz etmek için uygun bir analiz ortamı hazırlamak önemlidir. Bu, bir sanal alan veya sanal makine kurmayı veya analiz için gerekli olacak diğer araçları ve kaynakları yapılandırmayı içerebilir.
- Statik Analiz: Statik analiz, kötü amaçlı yazılımın kodunu ve diğer yönlerini fiilen çalıştırmadan incelemeyi içerir. Bu, ayrıştırıcı veya kod çözücü gibi araçlar kullanılarak yapılabilir ve kötü amaçlı yazılımın davranışı ve yetenekleri hakkında değerli bilgiler sağlayabilir.
- Dinamik Analiz: Dinamik analiz, kötü amaçlı yazılımı kontrollü bir ortamda çalıştırmayı ve yürütülürken davranışını gözlemlemeyi içerir. Bu, hata ayıklayıcı veya korumalı alan gibi araçlar kullanılarak yapılabilir ve kötü amaçlı yazılımın davranışı ve yetenekleri hakkında ek bilgiler sağlayabilir.
- Sonuçları Raporlamak: Analiz tamamlandıktan sonra, bir sonraki adım sonuçları analiz etmek ve sonuçlar hakkında sonuçlar çıkarmaktır.
Analiz Ortamının Hazırlanması
Analiz ortamının hazırlanması, ana sisteminizi riske atmadan kötü amaçlı yazılımı güvenli ve etkili bir şekilde analiz etmenize olanak tanıdığı için kötü amaçlı yazılım analizinde önemli bir adımdır.
- İşletim Sisteminin Seçilmesi: Zararlıyı analiz etmek için en iyi ortam onun hedef aldığı sistemdir. Elinizdeki örnek Windows 10 tabanlı sistemleri hedef alıyorsa sanal makinenize Windows 10 kurarak işe başlayabilirsiniz.
- Analiz Araçlarının Kurulması: Hem statik analiz aşamasında hem de dinamik analiz aşamasında bir çok yazılıma ihtiyaç duyacaksınız. Analiz sırasında makineniz izole bir ortamda olacağı için bu yazılımları sonradan yüklemeniz doğru olmayacaktır o yüzden ihtiyacınız olan bütün araçları belirleyip sanal makinenize kurmanız gerekecek. İleriki dönemde yazacağım yazılarda bu araçlara da değineceğim.
- Analiz Ortamının Yapılandırılması: Analiz araçları yüklendikten sonra sistemin izole edilmesi gerekmekte .Hem host makinemizin güvenliği hem de aynı ağ içinde bulunduğumuz diğer cihazların güvenliği için ağ yapılandırması ile sistemimizin dış ağa çıkmasını engelleyerek izole bir ortam oluşturmamız gerekli. Gerekli durumlarda başka sanal makineler üzerinden sahte bir internet simülasyonu oluşturularak zararlı yazılım ağ bağlantılarını da inceleyebiliriz. Makinemizi izole edip kendi host makinemizin güvenliğini sağladıktan sonra Windows güvenlik duvarı, virüs ve tehdit koruması özelliklerini kapatarak zararlı yazılımın rahat bir şekilde çalışabileceği bir ortam hazırlamalıyız.
- Analize Başlayın: Artık izole bir ortama ve analiz araçlarına sahip olduğumuza göre zararlı yazılım analizine başlayabilirsiniz.
Statik Analiz
Statik analiz, zararlı yazılımın incelenmesindeki ilk aşamadır. Bu aşamada zararlıyı çalıştırmadan onun hakkında olabildiğince çok bilgi edinmeye çalışırız ki dinamik analiz sırasında zararlı çalışırken nereleri kontrol etmemiz gerektiğini bilelim. Bu aşamada ilk yapabileceğiniz şey elinizdeki zararlının md5 hash değerini hesaplayıp virustotal veya benzeri sitelerde aramak. Bu sayede daha önce keşfedilmiş bir zararlı ile hakkında yazılmış raporlara ulaşabilirsiniz. Bundan sonra yapacağınız ilk şey zararlının dosya tipini belirlemektir.
Dosya Tipi: Zararlı yazılımlar analiz sırasında yanlışlıkla çalıştırılmasını önlemek için dosya uzantısı olmadan tutulur veya zararlıyı geliştiren kişi bunun dosya formatını gerçekte olduğu formattan daha farklı şekilde gösterebilir. Bu kısmı dosyanın özelliklerini inceleyerek veya bir kaç araç kullanarak rahatça halledebilirsiniz.
Stings Analizi: Dize analizi, kötü amaçlı yazılım analizinde analizle alakalı olabilecek anahtar kelimeleri veya kelime öbeklerini belirlemek için yaygın olarak kullanılan bir tekniktir. Bu metinler, yazılımın kodunda kullanılan fonksiyon adları, değişkenler, hata mesajları ve benzeri bilgileri içerebilir. Strings analizi, bir yazılımın ne yaptığını anlamaya çalışırken faydalı olabilir, çünkü bu bilgiler yazılımın amacını ve işleyişini hakkında ipuçları vermektedir.
Stringleri incelemek için BinText, Strings, BinWalk araçları kullanılabilir.
Aşağıda, string analizinde dikkatimizi çekebilecek bir kaç örnek verdim:
- cmd.exe: Bu dize genellikle kötü amaçlı yazılım tarafından, virüslü sistemde kötü amaçlı eylemler gerçekleştirmek için kullanılabilecek komut istemi komutlarını yürütmek için kullanılır.
- regedit.exe: Bu dize genellikle Windows işletim sisteminin kayıt defterini değiştirmek için kullanılan bir araç olan kayıt defteri düzenleyicisi’ni başlatmak için kullanılır. Kötü amaçlı yazılım, kayıt defterinde kalıcı olmasına veya tespitten kaçmasına izin veren değişiklikler yapmak için bunu kullanabilir.
- netstat -an: Bu dize, etkin TCP bağlantılarını ve kullandıkları adresleri ve bağlantı noktalarını görüntülemek için kullanılır. Kötü amaçlı yazılım, virüslü sistemdeki açık bağlantı noktalarını belirlemek ve potansiyel olarak bunlara bağlanmak için bunu kullanabilir.
Kullanılan DLL Dosyaları
DLL, dinamik bağlantı kitaplığı anlamına gelmektedir. DLL dosyaları belirli görevleri gerçekleştirmek için diğer programlar tarafından çağırılabilen kütüphanelerdir. DLL içe aktarmaları, bir kötü amaçlı yazılım örneğinin davranışı ve işlevselliği hakkında değerli bilgiler sağlayabilir ve analiz sürecinin önemli bir parçası olabilir. DLL dosyaları ile zararlı hakkında bir çok bilgi edinilebilir. Örneğin ağ ile ilgili bir DLL dosyasını kullanan zararlının bir yerlerle iletişime kurmaya çalıştığı anlamına gelebilir. Benzeri şekilde daha önceden tespit edilmiş zararlı yazılımların kullandıkları DLL dosyaları incelenerek birbirlerine benzer amaçlar için yapılmış zararlılar tespit edilebilir.
Kötü amaçlı yazılım, eylemlerini bir Windows sisteminde gerçekleştirmek için çok çeşitli dinamik bağlantı kitaplıkları (DLL’ler) kullanabilir. Kötü amaçlı yazılım tarafından kullanılan bazı yaygın DLL’ler şunları içerir:
- kernel32.dll: Windows işletim sisteminin bir parçasıdır ve işletim sisteminin çekirdeği ile etkileşim için işlevler içerir. Bu DLL, çeşitli işletim sistemi görevlerini gerçekleştirmek için kullanılır. Örneğin, bellek ayırma ve işlem oluşturma gibi işlemleri destekler. Bu dll dosyası kötü amaçlı yazılımlar tarafından bellek ayırma ve işlem oluşturma gibi eylemleri gerçekleştirmek için kullanılabilir.
- advapi32.dll: Bu DLL, Windows güvenlik sistemiyle etkileşime yönelik işlevleri içerir ve genellikle kötü amaçlı yazılımlar tarafından yeni kullanıcılar oluşturmak veya kullanıcı izinlerini değiştirmek için kullanılır.
- user32.dll: Windows kullanıcı arayüzüne yönelik işlevleri gerçekleştirir. Genellikle zararlılar tarafından yeni pencereler oluşturma veya kullanıcılara mesaj göndermek için kullanılır.
- shell32.dll: Windows kabuğu ile etkileşim için gerekli işlevleri içerir zararlılar tarafından genellikle yeni kısayollar veya başlat menüsünde değişiklikler yapmak için kullanılır.
- ws2_32.dll: Windows ağ sistemine yönelik işlevlere sahiptir. Zararlı yazılımlar tarafından ağ bağlantıları kurmak için kullanılabilir.
Paketleyiciler(Packer)
Paketleyici, yürütülebilir dosyaları tersine mühendislik ile analiz etmeyi daha zor hale getirmek için sıkıştırma işlemi yapan bir yazılımdır. Paketleyiciler kötü amaçlı yazılımların tespit edilmesi ve incelenmesini engellemenin yanında onları daha verimli ve düşük boyutlu hale getirebilmektedir.
Zararlı yazılım analizinde, zararlının paketlenip paketlenmediğini veya hangi algoritma ile paketlendiğini bilmek önemlidir. Paketleyicileri tanımlayabilmek için kullanılan bazı yöntemler şunlardır:
- Dosya Boyutu: Dosya boyutunun benzer dosyalardan küçük oluşu onun paketlendiğinin göstergesi olabilir.
- Paketleme Tespit Araçları: Yazılımın paketlenip paketlenmediğini, paketlendiyse hangi yazılım ile paketlendiğini tespit eden yazılımlar bulunmaktadır. Bunlara örnek olarak PEiD ve Exeinfo PE araçları örnek gösterilebilir.
Dinamik Analiz
Dinamik analiz, zararlının özel olarak hazırlanmış güvenli bir sandbox ortamında çalıştırılarak davranışlarının incelenmesiyle yapılan analiz yöntemidir. Bu aşamada kurduğu ağ iletişimi, oluşturduğu dosyalar veya sistemdeki değişiklikler incelenerek zararlının amacını tespit edilmeye çalışılır. Dinamik analiz için bazı temel adımlar şunlardır:
- İlk verileri toplayın: Örneği yürütmeden önce, onun hakkında mümkün olduğunca fazla bilgi toplayın. Bu, dosya adını, boyutunu ve mevcut diğer meta verileri içerebilir. Bu kısımları aslında statik analiz aşamasında hallediyoruz.
- Örneği yürütün: Kötü amaçlı yazılım örneğini yalıtılmış ortamda çalıştırın ve davranışını gözlemleyin. Bu, sistem kaynaklarının, ağ etkinliğinin ve meydana gelen diğer değişikliklerin izlenmesini içerebilir.
- Davranışı izleyin ve kaydedin: Örnek yürütülürken, dikkate değer davranışları veya gerçekleştirdiği eylemleri not edin. Bu, yeni dosyalar veya işlemler oluşturmayı, sistem ayarlarını değiştirmeyi veya harici sunucularla iletişim kurmayı içerebilir.
- Davranışı analiz edin: Örnek yürütmeyi bitirdikten sonra, gözlemlenen davranışı gözden geçirin ve kötü amaçlı yazılımın ne yapmaya çalıştığını anlamaya çalışın. Bu, örneğin kodunu anlamak için tersine mühendislik yapmayı veya amacını belirlemek için gerçekleştirdiği eylemleri analiz etmeyi içerebilir.
- Bulguları belgeleyin: Gözlemlenen davranış, çıkarılan sonuçlar ve daha fazla eylem için öneriler dahil olmak üzere dinamik analizin bulgularını belgeleyin. Bu belgeler, kötü amaçlı yazılımın nasıl ele alınacağına ve gelecekteki bulaşmalara karşı nasıl korunacağına ilişkin kararları bildirmek için kullanılabilir.
Ağ Trafiğini İnceleme
Birçok kötü amaçlı program harici sunucularla iletişim kurduğundan veya ağ üzerinden veri sızdırmaya çalıştığından, ağ etkinliğini izlemek kötü amaçlı yazılımları analiz etmenin önemli bir parçası olabilir. Kötü amaçlı yazılım analizi sırasında ağ etkinliğinin izlenebileceği bazı yollar şunlardır:
- Paket yakalama: Ağ etkinliğini izlemenin bir yolu, ağ üzerinden iletilen veri paketlerini yakalamak ve analiz etmektir. Bu, paketleri gerçek zamanlı olarak yakalamanıza ve incelemenize olanak tanıyan Wireshark gibi araçlar kullanılarak yapılabilir.
- Ağ trafiği analizi: Ağ trafiğini analiz etmek, kötü amaçlı yazılımın göstergesi olabilecek davranış kalıplarını veya olağandışı etkinlikleri belirlemeye yardımcı olabilir. Bu, kullanılan olağandışı protokolleri veya bağlantı noktalarını aramayı veya belirli IP adreslerine veya adreslerinden aktarılan büyük miktarda veriyi tanımlamayı içerebilir.
- Ağ saldırı tespiti: Ağ saldırı tespit sistemleri (NIDS), ağ trafiğini izlemek ve analistleri olası tehditlere karşı uyarmak için kullanılabilir. Bu sistemler, güvenlik açıklarından yararlanma veya kısıtlı kaynaklara erişme girişimleri gibi kötü amaçlı etkinlikleri belirlemek için kurallar veya imzalar kullanır.
- Bal Küpü(Honeypots): Bal küpü, saldırganları çekmek ve tuzağa düşürmek için tasarlanmış bir tuzak sistemdir. Analistler, bir ağ üzerinde bir bal küpü kurarak saldırganların davranışlarını gözlemleyebilir ve onların taktikleri ve teknikleri hakkında istihbarat toplayabilir.
Dosya İnceleme
Birçok kötü amaçlı program, hedeflerine ulaşmak için dosya oluşturduğundan, değiştirdiğinden veya sildiğinden, dosya sisteminin izlenmesi kötü amaçlı yazılım analizinin önemli bir parçası olabilir. Kötü amaçlı yazılım analizi sırasında dosya sistemi etkinliğinin izlenebileceği bazı yollar şunlardır:
- Dosya oluşturma ve değiştirme: Kötü amaçlı yazılım, sistemde kalıcılık sağlamak veya sızdırdığı verileri depolamak için dosyalar oluşturabilir veya değiştirebilir. Beklenmedik konumlarda dosyaların oluşturulması veya değiştirilmesi gibi olağandışı etkinlikler için dosya sisteminin izlenmesi, analistlerin olası kötü amaçlı yazılım etkinliklerini belirlemesine yardımcı olabilir.
- Dosya silme: Bazı kötü amaçlı yazılımlar, izlerini örtmek veya bir sistemin çalışmasını bozmak için dosyaları silmeye çalışabilir. Dosya sistemini beklenmeyen dosya silme işlemlerine karşı izlemek, analistlerin potansiyel kötü amaçlı yazılım etkinliğini belirlemesine ve bunlara yanıt vermesine yardımcı olabilir.
- Dosya erişimi: Belirli dosyalara çok sayıda okuma veya yazma işlemi gibi olağandışı dosya erişim kalıpları için dosya sistemini analiz etmek, analistlerin potansiyel olarak kötü niyetli etkinliği belirlemesine yardımcı olabilir.
- Dosya sistemi değişiklikleri: Kötü amaçlı yazılım, dosya izinlerini değiştirmek veya yeni dizinler oluşturmak gibi dosya sisteminde değişiklikler yapmaya çalışabilir. Dosya sistemini bu tür değişiklikler için izlemek, analistlerin olası kötü amaçlı yazılım etkinliklerini belirlemesine ve bunlara yanıt vermesine yardımcı olabilir.
Windows Registry İnceleme
Windows kayıt defteri, yapılandırma ayarlarını ve işletim sistemi ve yüklü programlarla ilgili bilgileri depolayan bir veri tabanıdır. Birçok kötü amaçlı program, kalıcılık sağlamak veya sistem ayarlarını değiştirmek için kayıt defterinde değişiklikler yaptığından, kayıt defterini izlemek kötü amaçlı yazılımları analiz etmenin önemli bir parçası olabilir.
Kötü amaçlı yazılım analizi sırasında kayıt defterinin izlenebileceği bazı yollar şunlardır:
- Kayıt defteri anahtarı oluşturma ve değiştirme: Kötü amaçlı yazılım, bir sistemde kalıcılık sağlamak veya sistem ayarlarını değiştirmek için kayıt defteri anahtarları oluşturabilir veya değiştirebilir. Beklenmedik konumlarda anahtarların oluşturulması veya değiştirilmesi gibi olağandışı etkinlikler için kayıt defterinin izlenmesi, analistlerin olası kötü amaçlı yazılım etkinliklerini belirlemesine yardımcı olabilir.
- Kayıt defteri anahtarının silinmesi: Bazı kötü amaçlı yazılımlar, izlerini örtmek veya bir sistemin çalışmasını bozmak için kayıt defteri anahtarlarını silmeye çalışabilir. Kayıt defterini beklenmeyen anahtar silme işlemlerine karşı izlemek, analistlerin potansiyel kötü amaçlı yazılım etkinliğini belirlemesine ve bunlara yanıt vermesine yardımcı olabilir.
- Başlangıç programları: Birçok program, işletim sistemi önyüklendiğinde otomatik olarak başlayacak şekilde kendilerini yapılandırır. Kötü amaçlı yazılımlar, bu mekanizmayı bir sistemde kalıcılık oluşturmak için de kullanabilir. Kayıt defterini otomatik olarak başlayacak şekilde ayarlanmış olağandışı veya beklenmeyen programlar açısından incelemek, analistlerin olası kötü amaçlı yazılımları belirlemesine yardımcı olabilir.
- Sistem ayarları: Kayıt defteri, amaçlarına ulaşmak için kötü amaçlı yazılım tarafından değiştirilebilen birçok sistem ayarı içerir. Sistem ayarlarında olağandışı veya beklenmeyen değişiklikler için kayıt defterini izlemek, analistlerin potansiyel kötü amaçlı yazılım etkinliğini belirlemesine yardımcı olabilir.
Process Aktivitesi İzleme
İşlem etkinliği izleme, bir yazılım parçasının veya bir sistemin yürütülürken davranışını izlemek ve gözlemlemek için kötü amaçlı yazılım analizinde kullanılan bir tekniktir. Dosyaları açma, ağa erişme veya yeni işlemler oluşturma gibi bir işlemin gerçekleştirdiği çeşitli etkinliklerin izlenmesini ve kaydedilmesini içerir.
Proses etkinliği izleme için aşağıdakiler de dahil olmak üzere çeşitli araçlar mevcuttur:
- Sysinternals Process Monitor: Bu, Microsoft tarafından geliştirilmiş, bir Windows sistemindeki işlemlerin etkinliklerini izlemenizi ve kaydetmenizi sağlayan ücretsiz bir araçtır.
- Process Hacker: Process Hacker, bir sistem izleme ve yönetme aracıdır. Bu araç, bir bilgisayarda çalışan tüm işlemleri (process) listeleyebilir ve bu işlemlerin ayrıntılı bilgilerini gösterir. Bu bilgiler arasında, işlemlerin kullandığı bellek miktarı, CPU kullanımı, açık dosyalar ve bağlı modüller gibi bilgiler yer alır.
- strace: Bu, yürütülürken bir işlemin sistem çağrılarını ve sinyallerini izlemenizi sağlayan Unix tabanlı bir yardımcı programdır.
- ltrace: Bu, strace’e benzer bir araçtır, ancak sistem çağrıları yerine bir süreç tarafından yapılan kütüphane çağrılarını izler.
Bu bloğun sonuna geldik. Umarım sizin için faydalı bir yazı olmuştur. Gelecekte burada anlatılanların daha da derinine inerek zararlı yazılım analizi serisine devam edeceğim. İlerideki yazılarımızda görüşmek üzere. Hoşça kalın!
-
VAPI Üzerinden Adım Adım Zafiyet Analizi
Günümüzde web uygulamaları ve servisler büyük oranda API’ler (Application Programming Interface) üzerinden çalışmakta ve kullanıcı ile sistem arasındaki iletişimi sağlamaktadır. API’lerin yaygınlaşmasıyla birlikte, bu ara yüzlerin güvenliği de kritik bir hale gelmiştir. Zayıf yetkilendirme kontrolleri, yanlış yapılandırmalar, gereksiz veri ifşaları ve hatalı sürüm yönetimi gibi problemler, saldırganların sistemlere yetkisiz erişim sağlamasına, hassas verileri ele geçirmesine ve servislerin istismar edilmesine yol açabilmektedir. OWASP tarafından yayımlanan API Security Top 10 listesi, bu tehditlerin en sık karşılaşılanlarını ortaya koymakta ve güvenli API geliştirme sürecinde yol göstermektedir. Bu çalışma kapsamında, API Security Top 10 senaryolarını içeren Vapi ctf’inin kurulumu ve farklı zafiyet senaryoları incelenmiş, saldırıların nasıl gerçekleştirilebildiği gözlemlenmiş ve her biri için çıkarımlar yapılmıştır.
Yeni başlayan öğrenciler için elimden geldiğince yazıyı basit ve anlaşılır bir şekilde hazırlamaya çalıştım.
KURULUM ADIMLARI
VAPI Nedir?
API’ler, uygulamaların birbirleriyle konuşmasını sağlayan köprülerdir. Günümüzde neredeyse her uygulama API kullanıyor. Bu yüzden güvenlik testlerinde API Pentest oldukça önemli.
VAPI ise güvenlik açıkları içeren, yani özellikle zafiyetli bırakılmış bir API uygulamasıdır. CTF mantığında çalışır ve API pentest pratiği yapmamıza olanak tanır.
VAPI Kurulumu
Adım 1: VAPI’yi indirmek
Öncelikle VAPI’nin GitHub reposunu bilgisayarımıza çekmemiz gerekiyor. Bunun için:
git clone https://github.com/roottusk/vapi
Ben kurulumu Kali Linux üzerinde yaptığım için /var/www/html dizinine gidip bu komutu çalıştırdım.
Adım 2: Docker ile çalıştırmak
İndirme işlemi bittikten sonra klasörün içine giriyoruz ve Docker Compose komutu ile ortamı başlatıyoruz.
docker-compose up
Bu komut ilk seferde eksik kütüphaneleri indirip gerekli güncellemeleri yapar. Sonraki çalıştırmalarda tekrar aynı komutla VAPI’yi başlatabiliriz.
Adım 3: Çalışır hale getirmek
Kurulum tamamlandığında VAPI şu adreste çalışıyor olacak:
Postman Kurulumu
API testlerinde en çok kullanılan araçlardan biri Postman’dir. API’lere kolayca istek atmamızı ve sonuçları görmemizi sağlar.
Adım 1: İndirme
Postman resmi sitesinden (www.postman.com) işletim sisteminize uygun sürümü indirin. Ben Kali Linux kullandığım için Linux sürümünü tercih ettim.
Adım 2: Arşivi açmak
İndirdiğimiz dosyanın olduğu klasöre gidip aşağıdaki komutla arşivi açıyoruz:
tar -xzf <indirilen-dosya-adı>
Adım 3: /opt dizinine taşımak
Postman klasörünü sistemde standart olarak kullanılan /opt dizinine taşıyoruz:
mv Postman /opt
Adım 4: Kolay çalıştırma için ayarlamak
Her seferinde terminalden uzun uzun uğraşmamak için kısayol oluşturuyoruz. Bunun için:
Dosya içine gerekli ayarları ekliyoruz (örneğin Exec=/opt/Postman/Postman). Kaydedip çıktığımızda Postman artık menüden kolayca açılabilir hale gelir.

Postman Konfigürasyonu
Collections eklemek
Postman’i açtığınızda sol menüde Collections kısmında VAPI testlerini görebilirsiniz. Eğer görünmüyorsa şu adımı izleyin:
- File > Import yolunu takip edin.
- İlk başta klonladığımız VAPI reposundan şu dosyayı seçin:
/vapi/postman/vAPI.postman_collection.json
Böylece VAPI collection Postman’e eklenmiş olur.
Environments ayarı
Her istekte tek tek adres ve değişken yazmak zaman kaybı olur. Bunun yerine Environment ayarı yapabiliriz.
- Yine File > Import yolunu takip edin.
- Reponun içindeki şu dosyayı seçin:
/vapi/postman/vAPI_ENV.postman_environment.json
Bu adımlarla VAPI’yi kurmuş ve Postman üzerinde testler için hazırlamış olduk. Artık çözüme geçebiliriz.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
API1 — BOLA (Broken Object Level Authorization) Zafiyeti
API güvenlik testlerinde en sık karşılaşılan açıkların başında BOLA (Broken Object Level Authorization) gelir. Bu açık, kullanıcıların kendi hesapları dışında başkalarının verilerine erişebilmesine olanak tanır.
Basitçe düşünelim:
Siz bir sosyal medya uygulamasında kendi profilinizi görüyorsunuz. Ancak URL’deki veya API isteğindeki id değerini değiştirerek başka bir kullanıcının bilgilerine de erişebiliyorsanız, işte bu bir BOLA açığıdır.
Şimdi VAPI üzerinde bunu nasıl yakaladığımızı adım adım inceleyelim
Bu API üzerinde üç farklı istek bulunuyor:
POST → Yeni kullanıcı oluşturmak için.
GET → Kullanıcı bilgilerini almak için.
PUT → Kullanıcı bilgilerini güncellemek için.
İlk olarak bir kullanıcı oluşturuyoruz.

Gönderdikten sonra dönen cevapta (response body) kullanıcının sistemde aldığı id değerini görüyoruz.

Bu durumda yeni kullanıcımızın ID’si 5 olmuş oldu.Bir kullanıcı daha oluşturduğumda sistem ona 6 ID’sini verdi.
Artık elimizde ID’ler var. Sol panelden GET isteğini seçip id=5 gönderdiğimizde, sistem bize bu kullanıcıya ait bilgileri getiriyor.
id=6 yapıldığında da 6 numaralı id’ye sahip kullanıcı bilgilerini getiriyor. Yani başka bir kullanıcının ID’sini biliyorsak onun bilgilerine de erişebiliyoruz.
Peki ya sistemdeki diğer kullanıcılar?
id=1, id=2, id=3, id=4 değerlerini denediğimde sistemde daha önce kayıtlı olan bu kullanıcıların bilgilerine de erişebildiğimi gördüm.
Bu noktada BOLA açığının varlığı kesinleşmiş oldu. Yani herhangi bir yetkilendirme kontrolü olmadan, sadece ID değerini değiştirerek farklı kullanıcıların hassas bilgilerine erişim sağlayabiliyoruz.
Bu senaryoda öğrendiğimiz şeyler:
- BOLA açığı, API güvenliğinde en sık rastlanan zafiyetlerden biridir.
- Kullanıcıya ait verilerin ID gibi öngörülebilir değerlerle çağrılması, saldırganın diğer kullanıcıların bilgilerini elde etmesine yol açar.
Gerçek dünyada bu tür bir açık, kullanıcı verilerinin ifşa olmasına, hatta daha ileri düzeyde kimlik hırsızlığına kadar gidebilir.
-
Hedef Sistem veya Sistemler Hakkında Bilgi Toplama
Merhaba arkadaşlar bu yazımda sizlere hedef veya hedefler hakkında bilgi toplama aşamasından ve bilgi toplama araçlarından bahsetmeye çalışacağım.
BİLGİYİ TOPLAMA AŞAMASI
Eğer sızma testi yapacaksak yapacağımız ilk ve en önemli iş hedef hakkında keşif yapmak olucaktır. Hedef her zaman bir sistem değildir. Bazen bir mail adresi bazen bir kişi bazen de bir sunucu olabilir. Elimzdeki veriler ne kadar kaliteli olursa zafiyeti o kadar daha iyi keşfederiz. Bilgi toplama, aktif ve pasif bilgi toplama diye iki ana başlığa ayrılır.
1) PASİF BİLGİ TOPLAMA
Hedef sistem ile herhangi bir temasımız olmaz. Tamamen internet üzerindeki kaynaklar kullanılarak bilgi toplamaya çalışılır. Bu yüzden hedefimiz onun hakkında araştırmalar yaptığımızı farkedemez. Akılda kalıcı olması için günlük hayattan örnek vermek gerekirse;
Sınıfa yeni birisi geldi ve adını öğrenmek istiyorsunuz. Direkt ismini sormak yerine yoklama listesinden bakmak pasif bilgi toplamadır. Hedef onun hakkında bir şeyler öğrenmek istediğimizi farkedemez çünkü hedefle hiçbir şekilde temasımız olmadı.
- 1) PASİF BİLGİ TOPLAMA ARAÇLARI

Pasif bilgi toplamaya ilk olarak arama motorlarından başlamak bana daha mantıklı geliyor. Popüler arama motorlarının bazı arama operatörleri vardır. Bu operatörler aramak istediğimiz sonuçları tam olarak göstermeyi amaçlar. Binlerce site yerine bize lazım olanı bulur ve sunar.
Google’da kullanılan işimize yarayacak bazı operatörlerden bahsetmeye çalışayım.
1.1.1) İNTİTLE;
Bu operatörü kullandığımızda girdiğimiz parametrenin geçtiği başlıkları ve içeriğinde anahtar kelimemizin geçtiği web siteleri listeler. Örneğin;
Adli bilişim intitle:blog
Bunu google’da arattığımızda içeriğinde Adli bilişim olan blog sitelerini bize sunar.
1.1.2) İNURL;
Bu operatörün çalışma mantığı intitle ile aynıdır. Bu operatörün farkı sorgulanan kelimeyi indexlenen sitenin linkinde arar.
1.1.3) SİTE;
Bu operatörde yazdığımız kelimeyi belirttiğimiz site içinde arar. Örneğin;
kali site:adlibilisimtoplulugu.com
Bunu google’da aratırsak sadece adlibilisimtopluluğu sitesinde nerede kali kelimesi geçmişse onları karşımıza çıkarır.
1.1.4) RELATED;
Bu operatörde belirttiğimiz site benzerinde başka siteleri listeler. Örneğin;
related:pexels.com
pexels.com bir ücretsiz fotoğraf paylaşılan bir platform google’da bunu aratırsak karşımıza pexels.com benzeri siteler çıkar.
1.1.5) LİNK;
Bu operatörde girdiğimiz web siteyi başka hangi sitelerde paylaşıldığını gösterir. Örneğin;
link:sibermetin:com bunu google’da arattığımızda sibermetin web sitesinin başka hangi sitelerde paylaşıldığını gösterir.
1.1.6) FİLETYPE;
Bu operatörde aradığımızı şeyi hangi formatta istersek o şekilde karşımıza çıkarır. Örneğin;
Araba filetype:png arabayla ilgili png dosyaları listeler ya da siber filetype:pdf siberle ilgili pdfleri listeler.
Bu operatörler ve başka operatörler hakkında daha detaylı bilgiye ulaşmak için tıklayınız.
1.2) GOOGLE ADVANCED SEARCH
Tabi ki google benim gibi üşengeçleri düşünerek bu operatörleri yazmadan arama yapmamızı sağlayacak bir website geliştirmiş. Siteye şuradan ulaşabilirsiniz. Sitede nasıl arama yapacağımızı örnekler vererek açıklamış.
1.3) GOOGLE HACKİNG DATABASE
Google dorking olarak da adlandırılır. Web sitelerin yapılandırma ve bilgisayar kodundaki güvenlik açıklarını google search ve google applerini aracılığıyla kullanır. Bilgisayar korsanı tekniği de denilebilir. Google hacking database e ulaşmak için tıklayınız.
1.4) ARCHİVE.ORG
Archive.org web sitelerin dünden bugünde kaydını tutan dijital bir kütüphanedir. Bilgi almak istediğimiz hedef sitenin geçmişteki kayıtlarını gösterir. Bu kayıtları görmek ne işimize yarayacak? Demeyin. Hedef sitemiz şu anki açıklardan arınmış olabilir ya da firewall gibi bir çok engelle karşılaşabiliriz. Geçmişteki halini incelersek sistem hakkında unutulmuş bir bilgi ya da bir ipucu bulabiliriz. Bu bilgi belki de hedef sisteme sızmamızı kolaylaştıracaktır. Servise ulaşmak için tıklayınız.
1.5) WHOİS
Who is domain sorgusu yapar ve domaine ait bazı bilgileri sunar. Sorgulanan domain ne zaman, kaç yıllığına, kim tarafından kayıt edilmiş gibi bir çok soruya cevap verir. Bir çok whois servisi vardır. Bunlardan en popüleri whois.domaintools.com servisidir.
1.6)PİPL
Pipl bir insan arama motoru diyebiliriz. Aradığımız hedef hakkında tüm sosyal mecralarda detaylı inceleme yapıp bulduğu verileri sunar.
1.7)PEEKYOU.COM
Aynı pipl.com gibi insan arama motorudur. Sosyal mecralardan hedef hakkında bulduğu verileri sunar.
1.8)DNS SORGULAMA
Bir alan adına ait DNS kayıtlarını tespit eder. Birden fazla DNS sorgulayan araç vardır en popüler olanı DNSdumpster.com sitesidir.
2)AKTİF BİLGİ TOPLAMA
Aktif bilgi toplama pasif bilgi toplamanın tam tersi işlemidir. Aktif bilgi toplarken hedef web sunucusu ile doğrudan iletişime geçeriz bu yüzden sunucuda iz bırakırız. Hedefle doğrudan etkileşimimiz olduğundan dolayı aktif bilgi toplama deniliyor.
2.1)AKTİF BİLGİ TOPLAMA ARAÇLARI
2.1.1)DİG
Bu araç hedef web sitesinde bulunan IP, name server, mail server gibi daha bir çok adresleri sunar.
Kullanımı: dig (domain)
Örnek kullanım: dig microsoft.com
Bu komutu herhangi bir linux terminalinde kullanırsak karşımıza bu sonuçlar çıkar;
2.1.2)TheHarvester
Bu araç bilinen platform ve arama motorlarını kullanarak hedef sistem hakkında bilgileri toplayıp bize sunar.
Kullanımı : theHarvester –d (domain) –l (limit) –b (arama motoru ya da all)
Örnek kullanım: theHarvester –d microsoft.com –l 5 — b all
Bu komutu linux terminallerinden aratırsak microsoft.com tüm platformlarda arama yapar ve sonucu şu şekilde bize sunar;
2.1.3)DNSENUM
Dnsenum aracı hedef sisteme ait DNS kayıtlarını çıktı halinde sunar:
Kullanımı : dnsenum (domain)
Örnek kullanım: dnsenum microsoft.com
Bu komutu linux terminallerinden aratırsak karşımıza çıkacak sonuç tam da şöyle olur;
2.1.4)NSLOOKUP
Nslookup aracı da DNS kayıtlarını incelememizi sağlar. Fakat bu aracın 2 çeşit kullanımı vardır.
1)Aktif bilgi toplar yani hedef sistemle etkileşime geçer. Peki nasıl çalışır;
Linux terminaline nslookup komutunu yazıp aracı çalıştırıyoruz. Hedef sitenin domain adresini yazıyoruz ve sonuçları bize sunuyor
2)Pasif bilgi toplar yani hedef sistemle hiçbir şekilde etkileşimimiz olmaz.
Kullanımı: nslookup –querry=(nameserver{ns}or mailserver(mx) v.s.) (domain)
Örnek kullanım: nslookup — querry=mx google.com
2.1.5)DMİTR
Dmitry aracı birden fazla bilgi toplama aracının birleştirildiği bir aktif bilgi toplama aracıdır. Birden fazla aracın yaptığı işi kendisi tek yapar. Dmitrynin birden fazla argümanı vardır. Bunları görmek içim linux terminaline dmitry yazmamız yeterli olacaktır.
Örnek bir kullanım göstermek gerekirse;
dmitry –w microsoft.com
Press enter or click to view image in full size
kaynakça;
Ömer ÇITAK ETHICAL HACKING kitabı
wikipedia.com