CVE-2023-32784 Açığı Nedir ? (KeePass Yazılımı)

a3b2jeo.png

logo.png


KeePass CVE-2023-32784 Nedir ?

CVE-2023-32784, açık metin ana parolasının bir bellek dökümünden kurtarılmasına olanak tanır. Bellek dökümü, tüm sistemin bir KeePass işlem dökümü, takas dosyası (pagefile.sys), hazırda bekletme dosyası (hiberfil.sys) veya RAM dökümü olabilir.

KeePass 2.X, şifre girişi için özel olarak geliştirilmiş bir metin kutusu olan
SecureTextBoxEx kullanır . Bu CVE'de kullanılan açık, yazılan her karakter için bellekte bir artık dize oluşturulmasıdır. .NET'in çalışma şekli nedeniyle, oluşturulduktan sonra ondan kurtulmak neredeyse imkansızdır. Örneğin, “Şifre” yazıldığında, şu artık dizilerle sonuçlanacaktır: •a, ••s, •••s, ••••w, •••••o, ••••••r , •••••••D. İlk karakter kurtarılamaz.

KeePass CVE-2023-32784 İle İlgili Zafiyet Senaryasounu İnceleyelim


Not :
Senaryoyu yeniden oluşturmak için Linux için KeePass 2.38 sürümü ile 18.04.1-Ubuntu kullanıyoruz. Kavram Kanıtı (PoC), aynı zamanda orijinal PoC'nin bir parçası olan bu Github deposunu temel alır.


Kullandığımız PoC, KeePass gizli anahtarını çıkarmak için aşağıdaki adımları izler:

İlk olarak, tüm dosyaları tarayın
/proc/<pid>/cmdlineve KeePass anahtar kelimesiyle olanların pid'ini saklayın.
/proc/<pid>/maps Ardından, bir kitaplıkla doğrudan ilişkili olmayan bellek haritalarının adreslerini edinin .
Son olarak, tüm bu haritaların hafızasını
/proc/<pid>/mem. Kullanıcı ana parolasını yazdığında kalan dizeleri, sırayla •a, ••s, •••s gibi görünen dizeleri bulmaya çalışmak için belleği ayrıştırın.


KeePass-Detection_3-1170x986.png


Yukarıdaki resimde görebileceğimiz gibi, ana anahtar ilk karakter olmadan ortaya çıkıyor.



KeePass CVE-2023-32784 Açığı Nasıl Tespit Edilir ?

/proc

Bu tür bir saldırıyı tespit etmek için, bilinmeyen bir işlemle klasöre erişimi izleyebilmeliyiz . Bu bir uyarıyı tetikler ve daha fazla araştırma yapabiliriz.

Bunu CNCF kapsamındaki açık kaynaklı bir projesini
Falco ile tespit etmeye çalışırsak , uyarılar göndererek bulut-native ortamlardaki olağandışı faaliyetlerin gerçek zamanlı tespitini sağlar. Bu senaryoda, Read ortam değişkenini /proc dosyalarından ayarlamamız veya yeni bir tane oluşturmamız gerekiyor .

Bu kuralı doğru bir şekilde tetiklemek için, KeePass ana parolasını elde etmek üzere PoC'de kullanılan /proc/<pid>/cmdline, /proc/<pid>/maps, veya okumasını yakalamak için koşulu değiştirmeliyiz ./proc/<pid>/mem


Kod:
- rule: Dump memory detection
  desc: An attempt to read process environment variables from /proc files
  condition: >
    open_read and container and (fd.name glob "/proc/*/mem" or fd.name glob "/proc/*/maps")
  output: >
    Detected process memory dump to search for credentials (proc.name=%proc.name proc.pname=%proc.pname fd.name=%fd.name container=%container.info evt.type=%evt.type evt.arg.request=%evt.arg.request proc.pid=%proc.pid proc.cwd=%proc.cwd proc.ppid=%proc.ppid proc.cmdline=%proc.cmdline proc.pcmdline=%proc.pcmdline)


Bu yeni kuralla, CVE-2023-32784 istismarını tespit edebiliyoruz.

19cc30d81f7dbeac9.png


Uyarı, tehdidini araştırmaya devam etmek için ihtiyacımız olan tüm bilgileri içerir.

Kod:
10:47:47.232147057: Warning Detected process memory dump to search for credentials (proc.name=dump proc.pname=sudo fd.name=/proc/2859/mem container=host (id=host) evt.type=openat evt.arg.request=<NA> proc.pid=2916 proc.cwd=/home/kpdemo/CVE-2023-32784-keepass-linux/ proc.ppid=2915 proc.cmdline=dump proc.pcmdline=sudo ./dump gparent=bash ggparent=gnome-terminal- gggparent=systemd proc.sid=2802 proc.exepath=/home/kpdemo/CVE-2023-32784-keepass-linux/dump user.uid=0 user.loginuid=1000 user.loginname=kpdemo user.name=root group.gid=0 group.name=root container.id=host container.name=host image=<NA>)

İstismarda belirtildiği gibi, saldırgan makinenizde yeterli izinlere ve yeteneklere sahipse, saldırgan her türlü kötü niyetli eylemi gerçekleştirebilir. Ancak, bu kural bize kimlik bilgilerimizin ihlal edilip edilmediğine dair bir gösterge verebilir ve buna göre hareket edebilir.


İşlem Belleğini Boşaltmak için Ne Yapılır ?


Bu tür bir teknik hakkında biraz daha araştırma yaparsak, benzer bir eylemi gerçekleştiren başka araçlar olduğunu görürüz. Bir çift görelim ve onları aynı şekilde nasıl tespit edeceğiz.

Mimipenguin Aracını Kullanalım

Mimipenguin 2.0, geçerli Linux masaüstü kullanıcısından oturum açma parolasını discharge için bir araçtır. Popüler Windows kimlik bilgisi çalma aracı mimikatz'ın arkasındaki fikirden uyarlanmıştır.

KeePass-Detection_2-1170x635.png


Araç, KeePass PoC'ye benzer bir şey yapmaya çalışır ancak bu durumda anahtarı bulamaz (çünkü CVE uygulanmamıştır). Ancak, sistem kimlik bilgilerini elde edebilir. Yukarıdaki resimde her iki uyarıyı da görebiliyoruz;

ilki, /proc/<pid>/mem.


Kod:
10:56:59.508184318: Warning Detected process memory dump to search for credentials (proc.name=python proc.pname=sudo fd.name=/proc/1114/mem container=host (id=host) evt.type=openat evt.arg.request=<NA> proc.pid=7194 proc.cwd=/home/kpdemo/mimipenguin/ proc.ppid=7193 proc.cmdline=python mimipenguin.py proc.pcmdline=sudo python mimipenguin.py gparent=bash ggparent=gnome-terminal- gggparent=systemd proc.sid=2802 proc.exepath=/usr/bin/python user.uid=0 user.loginuid=1000 user.loginname=kpdemo user.name=root group.gid=0 group.name=root container.id=host container.name=host image=<NA>)

/etc/shadow İkincisi , kullanıcının şifresini çıkardığı yerden erişim kazandığı yerdir .

Kod:
10:57:52.447428441: Warning Sensitive file opened for reading by non-trusted program (user=root user_loginuid=1000 program=python command=python mimipenguin.py pid=7194 file=/etc/shadow parent=sudo gparent=bash ggparent=gnome-terminal- gggparent=systemd container_id=host image=<NA>)


LaZagne Nedir ?


LaZagne projesi, yerel bir bilgisayarda saklanan çok sayıda parolayı almak için kullanılan açık kaynaklı bir uygulamadır. Bu durumda sadece belleğe odaklanmakla kalmaz, aynı zamanda farklı teknikler (düz metin, API, özel algoritmalar, veritabanları vb.) kullanarak kimlik bilgilerini de arar.

136fece999a4fa527.md.png


Bu örnekte, yine erişimi algılayan uyarıya sahibiz ve araç bize hem kullanıcının şifresini hem de kaydettiğimiz KeePass veritabanını bulduğunu gösteriyor.


Kod:
11:14:02.074516511: Warning Detected process memory dump to search for credentials (proc.name=python proc.pname=sudo fd.name=/proc/1114/maps container=host (id=host) evt.type=openat evt.arg.request=<NA> proc.pid=7253 proc.cwd=/home/kpdemo/LaZagne/Linux/ proc.ppid=7252 proc.cmdline=python laZagne.py all proc.pcmdline=sudo python laZagne.py all gparent=bash ggparent=gnome-terminal- gggparent=systemd proc.sid=2802 proc.exepath=/usr/bin/python user.uid=0 user.loginuid=1000 user.loginname=kpdemo user.name=root group.gid=0 group.name=root container.id=host container.name=host image=<NA>)


Bu Yazımızdan Ne Çıkardık ?

Kimlik bilgilerini toplamak, saldırganlar tarafından kullanılan çok yaygın bir tekniktir. Yanal olarak hareket etmelerini veya diğer hizmetleri etkilemelerini önlemek için bu tür eylemleri tespit etmek için gerekli tüm araçlara sahip olmak gerekir.

Falco, erişimi izlememize ve kötü niyetli davranışları tespit etmemize olanak tanıyan son bir güvenlik katmanı sağlar.

Son olarak, yeni sürüm olan KeePass 2.54'e yükseltmenizi şiddetle tavsiye ediyoruz.

Yararlandığım Kaynak : sysdig Güvenlik Yabancı Yazılım Şirketi



a3b2jeo.png
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.