GithubHelp home page GithubHelp logo

30579096 / cve-2022-29072 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kagancapar/cve-2022-29072

0.0 0.0 0.0 43 KB

7-Zip through 21.07 on Windows allows privilege escalation and command execution when a file with the .7z extension is dragged to the Help>Contents area.

License: GNU General Public License v3.0

HTML 100.00%

cve-2022-29072's Introduction

INFORMATION

I haven't posted any poc code anywhere for privilege escalation attack. The poc codes found have nothing to do with privilege escalation. For your information.

7-zip hakkında

7-Zip, özgür ve ücretsiz bir dosya arşivleyicisidir. 7-Zip’in Komut İstemi sürümü Unix benzeri sistemler içinde düşünülmüş hatta AmigaOS bu saydıklarımıza dahil. Aynı zamanda DOS için de uyumlu Dost Portu için veya HX-DOS genişletişicisi ile Windows komut İstemcisi'nde çalıştırılabilir.

CVE-2022-29072

Türkçe yazacağım biraz da siz Türkçe öğrenin.

Öncelikle zafiyeti bulma hikayeme değinmek istiyorum. WinRAR üzerinde XXE zafiyetini gerçekleştiren bir payload gördüm. Aynı zamanda HTML Helper dosyasının kullanarak javascript üzerinden ActiveXObject ve WScript.Shell sayesinde komut çalıştırmaya imkan sağlıyordu. Bunun lolbinlerde kullanılan HTA'dan hiç bir farkı yoktu olayı nasıl lehime döüştürebileceğimi düşündüm.

(https://www.exploit-db.com/exploits/47526)

Aslında amacım 7z, zip, rar vb sıkıştırma teknolojilerinin uzantılarına çift tıkladıktan sonra hedef bilgisayar üzerinden reverse-shell alabilmekti bunun içinde HTML Helper dosyasını kullanabilir miyim diye düşünüyordum. WinAFL ile uzun fuzzing işlemleri sonrası FzGM.exe üzerinde heap-overflow olduğunu keşfettim fakat heap overflow sonrası yetkim yine aynı kullanıcı üzerinden olacağından bir anlamı da yoktu. Bu yüzden CreateRemoteThread kullanmadım çünkü API'i çağırmam gerekiyordu ve bu API'i tetikleyebilmek için bir chm dosyasına ihtiyacım vardı. Kaynak kodu incelediğimde özellikle iki yerde Windows API'ını çağırırken hatalı işlemler olduğunu farkettim ve bu direk yetkilendirme problemi yaratıyordu. Bu keşfetme noktam aşağıdaki resim de görüldüğü üzere FzGM.exe altında bir child process oluşturuyor. Normalde bu işlemin hh.exe üzerinde olmasını bekleriz.

7-zip-1

api

Eğer API'ı include etmeyip fonksiyon üzerinden doğru yapılandırma işlemi olsaydı hh.exe altında child process oluşturmasını beklerdim fakat 7-zip.chm dosyası bunu kendi üzerinden çağırmaktadır tipik bir örneği 7-zip.chm dosyasını editleyip komut çalıştırma işlemi uygularsanız o zamanda görebilirsiniz. Heap overflow sonrası çağırılan API'nin yetkilendirme sorunu sonra 7z.dll dosyası içerisinde bulunan hatalı yapılandırmadan faydalandım ki bunun için uzun bir süredir uğraşıyorum. CreateRemoteThread() yapmanın bir anlamı yok. Benim payload'ın içerisinde çalıştırmam ve çağırmam gereken şey HTML Helper API'ın bizzat kendisi değil 7-zip üzerinden bu API'ın hook edildiği nokta ve o noktayı execute edebilmem fakat bu payload sadece hh.exe entegrasyonu ile çalıştığı için bu yüzden sürükle bırak gibi fonksiyon ile çalışmaktadır. 7-zip.chm dosyasının, 7-zip üzerinden HELP butonu ile çağırılması ve buraya çağırılan adresin payload içerisinde yetkilendirme sorunu görülen "base pointer" yönlendirmem bizi bir üst kullanıcıya taşımaktadır. Buradan sonraki işlem ise payload'ın içerisinde psexec'in bulunması ve psexec -s cmd.exe komutuyla nt authority/system olarak system yetkisine yükselmesidir.

7-zip-2

poc video:

priv1.mp4

ActiveXObject bypass hakkında

Soruların bir çoğu da ActiveX uyarısı üzerineydi bu problemin en temel şöyle giderebilirsiniz. Payload çalışmadan önce;

<'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0' -Name '1201' -Value '0' -PropertyType "DWord"> kontrol sağlamaktadır eğer bu değeri 1 ise popup ekrana gelmektedir şayet 0 olarak yeni bir değer atandıysa bypass edilmektedir. Fakat belirtmek gerekirse ki o an hangi user payload'ı çalıştırıyorsa onu etkilemektedir.

Önemli not

Ben gereken noktaları geliştiriciye söyledim ve CVE tarafından da bu kabul edildi. İnsanların kendini otorite zannetmesi ve onlara exploit'i vermem gerektiği gibi bir algı oluşmasına anlam veremiyorum. Ben zaten güncelleme sonrası yayınlayacağımı belirttiğim halde henüz update olmadan yapılan bu saygısızlık sanıyorum kendini otorite görmekten geçmektedir. Ben yetki yükseltme saldırısının poc kodunu hiçbir zaman yayınlamak istemeyebilirim bu benim hür irademdir ve bunun doğruluğu sorgulamak noktasında kimin ne düşündüğü ile zerre ilgilenmiyorum.

Alınabilecek önlem

Birinci yöntem: Eğer 7-zip güncelleme geçmezse 7-zip.chm dosyasının silinmesi gerçekleştirilebilir. İkinci yöntem: Program içerisinde yer alan tüm kullanıcılar read ve execute yetkisi ile erişim sağlamalıdır.

Sigma kuralı

İlgili sigma kuralı https://github.com/kagancapar/CVE-2022-29072/blob/main/7z_CVE-2022-29072.yml

cve-2022-29072's People

Contributors

kagancapar avatar tsale avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.